
void sqlite3WindowCodeStep(Parse *pParse,Select *p,WhereInfo *pWInfo,int regGosub,int addrGosub)

{
  bool bVar1;
  undefined *puVar2;
  char *pcVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  undefined4 uVar7;
  undefined1 *puVar8;
  uint uVar9;
  u8 uVar16;
  undefined4 uVar10;
  int iVar11;
  undefined4 uVar12;
  int iVar13;
  int iVar14;
  Op *pOVar15;
  Expr *pExpr;
  ExprList *pEVar17;
  uint uVar18;
  undefined1 *puVar19;
  TableLock *pTVar20;
  Window *pWVar21;
  code *pcVar22;
  sqlite3 *psVar23;
  Parse *pParse_00;
  Vdbe *pVVar24;
  int iVar25;
  Window *pWVar26;
  ExprList *pEVar27;
  int iVar28;
  code *pcVar29;
  undefined *puVar30;
  int iVar31;
  code *pcVar32;
  undefined1 *puStack_60;
  code *pcStack_5c;
  int iStack_58;
  int iStack_50;
  code *pcStack_4c;
  ExprList *pEStack_48;
  int regSize;
  int iStack_2c;
  
  puVar30 = PTR___stack_chk_guard_0015ba2c;
  pWVar21 = p->pWin;
  iStack_2c = *(int *)PTR___stack_chk_guard_0015ba2c;
  uVar18._0_1_ = pWVar21->eType;
  uVar18._1_1_ = pWVar21->eStart;
  uVar18._2_1_ = pWVar21->eEnd;
  uVar18._3_1_ = pWVar21->field_0xf;
  if (pWVar21->eType == 'L') {
    if (((uVar18 & 0xffff00) == 0x575200) && (pWVar21->pOrderBy != (ExprList *)0x0))
    goto LAB_000c08b4;
    pVVar24 = pParse->pVdbe;
    if (pVVar24 == (Vdbe *)0x0) {
      pVVar24 = (Vdbe *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse);
    }
    puVar2 = PTR_LAB_0015b714;
    iVar25 = pParse->nTab;
    iVar4 = pParse->nMem;
    iVar6 = iVar4 + 3;
    iVar28 = pParse->nLabel + -2;
    pParse->nTab = iVar25 + 2;
    iVar11 = pParse->nLabel + -1;
    iVar5 = iVar4 + 1;
    pParse->nMem = iVar6;
    pParse->nLabel = iVar28;
    iVar4 = iVar4 + 2;
    iVar31 = iVar25 + 1;
    regSize = 0;
    (*(code *)(puVar2 + -0x7e94))(pParse,&p->pSrc,p->pWin,pWInfo,iVar5,iVar11,&regSize);
    pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);
    puStack_60 = (undefined1 *)(*pcVar22)(pVVar24,0xb,0,0,0);
    pcVar32 = (code *)(PTR_LAB_0015b710 + -0x3c14);
    (*pcVar32)(pVVar24,iVar11);
    (*pcVar22)(pVVar24,0x11,0,pVVar24->nOp + 3,0);
    (*pcVar22)(pVVar24,0x6f,iVar25,pWVar21->iEphCsr,0);
    (*pcVar22)(pVVar24,0x6f,iVar31,pWVar21->iEphCsr,0);
    if (pWVar21->pStart != (Expr *)0x0) {
      sqlite3ExprCode(pParse,pWVar21->pStart,iVar4);
      (*(code *)(PTR_LAB_0015b710 + -0x2920))(pParse,iVar4,0);
    }
    if (pWVar21->pEnd != (Expr *)0x0) {
      sqlite3ExprCode(pParse,pWVar21->pEnd,iVar6);
      (*(code *)(PTR_LAB_0015b710 + -0x2920))(pParse,iVar6,1);
      if ((pWVar21->pEnd != (Expr *)0x0) && (pWVar21->eStart == 'S')) {
        (*pcVar22)(pVVar24,0x39,iVar4,pVVar24->nOp + 2,iVar6);
        (*pcVar22)(pVVar24,0x4e,regSize,iVar4,0);
        (*pcVar22)(pVVar24,0x61,iVar4,iVar6,iVar6);
      }
    }
    if ((pWVar21->pStart != (Expr *)0x0) && (pWVar21->eEnd == 'U')) {
      (*pcVar22)(pVVar24,0x37,iVar4,pVVar24->nOp + 3,iVar6);
      (*pcVar22)(pVVar24,0x4e,regSize,iVar4,0);
      (*pcVar22)(pVVar24,0x4e,regSize,iVar6,0);
    }
    uVar7 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(pParse,pWVar21);
    (*pcVar22)(pVVar24,0x24,pWVar21->iEphCsr,iVar28,0);
    (*pcVar22)(pVVar24,0x24,iVar25,iVar28,0);
    if (0 < pVVar24->nOp) {
      pVVar24->aOp[pVVar24->nOp + -1].p5 = 1;
    }
    (*pcVar22)(pVVar24,0x24,iVar31,iVar28,0);
    iVar11 = pVVar24->nOp;
    if (0 < iVar11) {
      pVVar24->aOp[iVar11 + -1].p5 = 1;
      iVar11 = pVVar24->nOp;
    }
    if (pWVar21->eEnd == 'U') {
      iStack_50 = (*pcVar22)(pVVar24,0x2f,iVar6,0,1);
      iVar13 = pVVar24->nOp;
    }
    else {
      iStack_50 = 0;
      iVar13 = iVar11;
    }
    (*pcVar22)(pVVar24,5,iVar31,iVar13 + 2,0);
    iVar13 = (*pcVar22)(pVVar24,0xb,0,0,0);
    pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7af4);
    (*pcVar29)(pParse,pWVar21,iVar31,0,uVar7,regSize);
    if (pWVar21->eEnd == 'W') {
      (*pcVar22)(pVVar24,0xb,0,iVar11,0);
      iVar11 = pVVar24->nOp;
      if (iVar13 < 0) {
        iVar13 = iVar11 + -1;
      }
      if (pVVar24->db->mallocFailed == '\0') {
        pVVar24->aOp[iVar13].p2 = iVar11;
        uVar16 = pWVar21->eEnd;
      }
      else {
        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar11;
        uVar16 = pWVar21->eEnd;
      }
    }
    else {
      iVar31 = pVVar24->nOp;
      if (iVar13 < 0) {
        iVar13 = iVar31 + -1;
      }
      if (pVVar24->db->mallocFailed == '\0') {
        pOVar15 = pVVar24->aOp + iVar13;
      }
      else {
        pOVar15 = (Op *)(PTR_DAT_0015b5d8 + -0x4514);
      }
      pOVar15->p2 = iVar31;
      uVar16 = pWVar21->eEnd;
      if (uVar16 == 'U') {
        iVar13 = iVar31 + -1;
        if (-1 < iStack_50) {
          iVar13 = iStack_50;
        }
        if (pVVar24->db->mallocFailed == '\0') {
          pVVar24->aOp[iVar13].p2 = iVar31;
          uVar16 = pWVar21->eEnd;
        }
        else {
          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar31;
          uVar16 = pWVar21->eEnd;
        }
      }
    }
    if (uVar16 == 'S') {
      iStack_50 = (*pcVar22)(pVVar24,0x2f,iVar6,0,1);
    }
    if (pWVar21->eStart == 'S') {
      iVar6 = (*pcVar22)(pVVar24,0x2f,iVar4,0,1);
      (*(code *)(PTR_LAB_0015b710 + -0x2764))(pParse,pWVar21,0);
      (*(code *)(PTR_LAB_0015b710 + -0x2524))(pParse,pWVar21,regGosub,addrGosub);
      (*pcVar22)(pVVar24,5,pWVar21->iEphCsr,pVVar24->nOp + 2,0);
      (*pcVar22)(pVVar24,0xb,0,iVar28,0);
      uVar18 = (uint)pWVar21->eStart;
      if (uVar18 == 0x53) {
        iVar31 = pVVar24->nOp;
        if (iVar6 < 0) {
          iVar6 = iVar31 + -1;
        }
        goto LAB_000c1d20;
      }
    }
    else {
      (*(code *)(PTR_LAB_0015b710 + -0x2764))(pParse,pWVar21,0);
      (*(code *)(PTR_LAB_0015b710 + -0x2524))(pParse,pWVar21,regGosub,addrGosub);
      (*pcVar22)(pVVar24,5,pWVar21->iEphCsr,pVVar24->nOp + 2,0);
      (*pcVar22)(pVVar24,0xb,0,iVar28,0);
      uVar18 = (uint)pWVar21->eStart;
      if (uVar18 == 0x53) {
        iVar31 = pVVar24->nOp;
        iVar6 = 0;
LAB_000c1d20:
        if (pVVar24->db->mallocFailed == '\0') {
          pVVar24->aOp[iVar6].p2 = iVar31;
          uVar18 = (uint)pWVar21->eStart;
        }
        else {
          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar31;
          uVar18 = (uint)pWVar21->eStart;
        }
      }
    }
    if ((uVar18 - 0x52 < 2) || (uVar18 == 0x55)) {
      iVar6 = pParse->nLabel + -1;
      pParse->nLabel = iVar6;
      uVar16 = pWVar21->eStart;
      if (uVar16 == 'U') {
        (*pcVar22)(pVVar24,0x2f,iVar4,iVar6,1);
        uVar16 = pWVar21->eStart;
      }
      if (uVar16 == 'S') {
        (*pcVar22)(pVVar24,5,iVar25,pVVar24->nOp + 2,0);
        (*pcVar22)(pVVar24,0xb,0,iVar6,0);
      }
      else {
        (*pcVar22)(pVVar24,5,iVar25,pVVar24->nOp + 1,0);
      }
      (*pcVar29)(pParse,pWVar21,iVar25,1,uVar7,regSize);
      (*pcVar32)(pVVar24,iVar6);
    }
    if (pWVar21->eEnd == 'S') {
      iVar4 = pVVar24->nOp;
      if (iStack_50 < 0) {
        iStack_50 = iVar4 + -1;
      }
      if (pVVar24->db->mallocFailed == '\0') {
        pVVar24->aOp[iStack_50].p2 = iVar4;
      }
      else {
        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4;
      }
    }
    (*pcVar22)(pVVar24,0xb,0,iVar11,0);
    (*pcVar32)(pVVar24,iVar28);
    (*pcVar22)(pVVar24,0x8a,pWVar21->iEphCsr,0,0);
  }
  else {
    if ((uVar18 & 0xffff00) != 0x525700) {
LAB_000c08b4:
      pWVar26 = pWVar21;
      do {
        if (((((pWVar26->pFunc->funcFlags & 0x20000) != 0) ||
             (pcVar3 = pWVar26->pFunc->zName, pcVar3 == PTR_DAT_0015b694 + -0x7df4)) ||
            (pcVar3 == PTR_DAT_0015b694 + -0x7e00)) ||
           ((pcVar3 == PTR_DAT_0015b694 + -0x7e08 || (pcVar3 == PTR_DAT_0015b694 + -0x7e0c))))
        goto LAB_000c0c60;
        pWVar26 = pWVar26->pNextWin;
      } while (pWVar26 != (Window *)0x0);
      pParse_00 = (Parse *)pParse->pVdbe;
      if (pParse_00 == (Parse *)0x0) {
        pParse_00 = (Parse *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse);
      }
      pEVar17 = pWVar21->pPartition;
      iVar25 = pParse->nMem + 1;
      iVar4 = p->pSrc->a[0].iCursor;
      iVar28 = (int)(p->pSrc->a[0].pTab)->nCol;
      iVar5 = iVar28 + iVar25;
      iVar6 = iVar28 + 2 + pParse->nMem;
      if (pWVar21->eEnd == 'W') {
        pParse->nMem = iVar6;
        pEVar27 = (ExprList *)0x0;
        if (0 < iVar28) goto LAB_000c0980;
        if (pEVar17 != (ExprList *)0x0) {
          iStack_50 = pEVar17->nExpr;
          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);
          goto LAB_000c09d4;
        }
        pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);
        pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);
      }
      else {
        pEVar27 = pWVar21->pOrderBy;
        pParse->nMem = iVar6;
        if (iVar28 < 1) {
          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);
        }
        else {
LAB_000c0980:
          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);
          iVar6 = 0;
          do {
            iVar31 = iVar6 + 1;
            (*pcVar22)(pParse_00,0x5a,iVar4,iVar6,iVar25 + iVar6);
            iVar6 = iVar31;
          } while (iVar31 < iVar28);
        }
        puVar2 = PTR_LAB_0015b714;
        if (pEVar17 == (ExprList *)0x0) {
          if (pEVar27 == (ExprList *)0x0) {
            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);
            goto LAB_000c0b50;
          }
          iVar4 = pEVar27->nExpr;
          puStack_60 = (undefined1 *)iVar4;
          if (pWVar21->eType == 'V') {
            puVar19 = (undefined1 *)0x0;
            iVar6 = pWVar21->regPart;
            iStack_50 = iVar25 + pWVar21->nBufferCol;
            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);
            pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);
            goto LAB_000c1e74;
          }
          puVar8 = (undefined1 *)0x0;
          pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);
          (*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R');
          pTVar20 = pParse_00->aTableLock;
        }
        else {
          iStack_50 = pEVar17->nExpr;
          if (pEVar27 == (ExprList *)0x0) {
LAB_000c09d4:
            iVar4 = pWVar21->nBufferCol;
            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);
            iVar4 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar4,pWVar21->regPart,iStack_50);
            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pParse_00,uVar7,0xfffffff7);
            puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);
            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);
            (*pcVar32)(pParse,pWVar21,1);
            puStack_60 = (undefined1 *)iStack_50;
          }
          else {
            iVar6 = pWVar21->nBufferCol;
            iVar4 = pEVar27->nExpr;
            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);
            iVar6 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar6,pWVar21->regPart,iStack_50);
            pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);
            (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);
            puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar6 + 2,0,iVar6 + 2);
            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);
            (*pcVar32)(pParse,pWVar21,1);
            puVar19 = (undefined1 *)(*pcVar22)(pParse_00,0xb,0,0,0);
            iVar28 = pWVar21->nBufferCol;
            iVar6 = pWVar21->regPart;
            if (puVar8 != (undefined1 *)0x0) {
              pTVar20 = pParse_00->aTableLock;
              if ((int)puVar8 < 0) {
                puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);
              }
              if (pParse_00->db->mallocFailed == '\0') {
                ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;
              }
              else {
                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;
              }
            }
            puStack_60 = (undefined1 *)(iStack_50 + iVar4);
            if (pWVar21->eType == 'V') {
              iVar6 = iStack_50 + iVar6;
              iStack_50 = iVar25 + iVar28 + iStack_50;
LAB_000c1e74:
              pcStack_4c = (code *)(puVar2 + -0x7fc4);
              uVar7 = (*pcStack_4c)(pParse,pEVar27,0,0);
              iVar4 = (*pcVar22)(pParse_00,0x57,iStack_50,iVar6,iVar4);
              (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);
              puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);
            }
            else {
              puVar8 = (undefined1 *)0x0;
            }
            (*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R');
            if (puVar19 != (undefined1 *)0x0) {
              pTVar20 = pParse_00->aTableLock;
              if ((int)puVar19 < 0) {
                puVar19 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);
              }
              if (pParse_00->db->mallocFailed == '\0') {
                ((Op *)pParse_00->nTableLock)[(int)puVar19].p2 = (int)pTVar20;
              }
              else {
                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;
              }
            }
          }
          pTVar20 = pParse_00->aTableLock;
        }
        (*pcVar22)(pParse_00,0x24,pWVar21->iEphCsr,(undefined1 *)((int)&pTVar20->iDb + 3),0);
        (*pcVar22)(pParse_00,0xc,regGosub,addrGosub,0);
        (*pcVar22)(pParse_00,5,pWVar21->iEphCsr,
                   (undefined1 *)((int)&pParse_00->aTableLock[-1].zLockName + 3),0);
        (*pcVar22)(pParse_00,0x8a,pWVar21->iEphCsr,0,0);
        (*pcVar22)(pParse_00,0x4e,iVar25 + pWVar21->nBufferCol,pWVar21->regPart,(int)puStack_60 + -1
                  );
        if (puVar8 != (undefined1 *)0x0) {
          pTVar20 = pParse_00->aTableLock;
          if ((int)puVar8 < 0) {
            puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);
          }
          if (pParse_00->db->mallocFailed == '\0') {
            ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;
          }
          else {
            *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;
          }
        }
      }
LAB_000c0b50:
      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(pParse,pWVar21,0xffffffff,0,iVar25,0);
      if (pWVar21->nBufferCol < 1) {
        (*pcVar22)(pParse_00,0x4b,0,iVar5,0);
        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pParse_00,PTR_LAB_0015b5e8 + 0x53f4,0);
      }
      else {
        (*pcVar22)(pParse_00,0x66,iVar25,pWVar21->nBufferCol,iVar5);
      }
      (*pcVar22)(pParse_00,0x79,pWVar21->iEphCsr,iVar5 + 1,0);
      (*pcVar22)(pParse_00,0x7a,pWVar21->iEphCsr,iVar5,iVar5 + 1);
      (*(code *)(PTR_LAB_0015b710 + -0x18cc))(pWInfo);
      (*pcVar32)(pParse,pWVar21,1);
      (*pcVar22)(pParse_00,0x24,pWVar21->iEphCsr,
                 (undefined1 *)((int)&pParse_00->aTableLock->iDb + 3),0);
      (*pcVar22)(pParse_00,0xc,regGosub,addrGosub,0);
      puVar19 = &DAT_00000005;
      iVar5 = pWVar21->iEphCsr;
      (*pcVar22)();
      goto LAB_000c0f44;
    }
LAB_000c0c60:
    pVVar24 = pParse->pVdbe;
    if (pVVar24 == (Vdbe *)0x0) {
      pVVar24 = (Vdbe *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse);
      pEVar17 = pWVar21->pOrderBy;
      pEStack_48 = pWVar21->pPartition;
      if (pEVar17 != (ExprList *)0x0) goto LAB_000c0c7c;
LAB_000c1450:
      iStack_58 = 0;
      bVar1 = false;
    }
    else {
      pEStack_48 = pWVar21->pPartition;
      pEVar17 = pWVar21->pOrderBy;
      if (pEVar17 == (ExprList *)0x0) goto LAB_000c1450;
LAB_000c0c7c:
      iStack_58 = pEVar17->nExpr;
      uVar9._0_1_ = pWVar21->eType;
      uVar9._1_1_ = pWVar21->eStart;
      uVar9._2_1_ = pWVar21->eEnd;
      uVar9._3_1_ = pWVar21->field_0xf;
      bVar1 = (uVar9 & 0xffff00) == 0x525700;
    }
    puVar2 = PTR_LAB_0015b714;
    iVar4 = pParse->nMem;
    iVar28 = pParse->nTab;
    iVar6 = pParse->nLabel;
    iVar5 = iVar4 + iStack_58;
    iVar31 = iVar5 + 2;
    iVar25 = iVar6 + -2;
    pParse->nTab = iVar28 + 1;
    iVar5 = iVar5 + 1;
    pParse->nLabel = iVar25;
    pParse->nMem = iVar31;
    iVar6 = iVar6 + -1;
    (*(code *)(puVar2 + -0x7e94))(pParse,&p->pSrc,p->pWin,pWInfo,iVar5,iVar25,&regSize);
    pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);
    puStack_60 = (undefined1 *)(*pcVar22)(pVVar24,0xb,0,0,0);
    pcVar32 = (code *)(PTR_LAB_0015b710 + -0x3c14);
    (*pcVar32)(pVVar24,iVar25);
    (*pcVar22)(pVVar24,0x11,0,pVVar24->nOp + 2,0);
    (*pcVar22)(pVVar24,0x6f,iVar28,pWVar21->iEphCsr,0);
    uVar7 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(pParse,pWVar21);
    (*pcVar22)(pVVar24,0x46,0,iVar31,0);
    (*pcVar22)(pVVar24,0x24,iVar28,iVar6,0);
    (*pcVar22)(pVVar24,0x24,pWVar21->iEphCsr,iVar6,0);
    if (bVar1) {
      iVar25 = pVVar24->nOp;
      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(pParse,pWVar21,iVar28,0,uVar7,regSize);
      (*pcVar22)(pVVar24,5,iVar28,iVar25,0);
      (*pcVar22)(pVVar24,0x24,iVar28,iVar6,0);
      iStack_50 = pVVar24->nOp;
      if (pEVar17 != (ExprList *)0x0) goto LAB_000c0e28;
      pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);
    }
    else {
      iStack_50 = pVVar24->nOp;
      if (pEVar17 == (ExprList *)0x0) {
        pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);
      }
      else {
LAB_000c0e28:
        uVar16 = pWVar21->eStart;
        uVar10 = uVar7;
        if (pWVar21->eEnd == 'R') {
          if (pWVar21->eType == 'V') {
LAB_000c1544:
            iVar25 = pWVar21->nBufferCol;
            if (pEStack_48 == (ExprList *)0x0) {
              iVar11 = 0;
            }
            else {
              iVar11 = pEStack_48->nExpr;
              iVar25 = iVar25 + iVar11;
            }
            iVar11 = iVar11 + pWVar21->regPart;
            uVar12 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);
            iVar4 = iVar4 + 1;
            if (0 < iStack_58) {
              iVar13 = iStack_58 + iVar25;
              iVar14 = iVar4 - iVar25;
              do {
                (*pcVar22)(pVVar24,0x5a,iVar28,iVar25,iVar14 + iVar25);
                iVar25 = iVar25 + 1;
              } while (iVar25 != iVar13);
            }
            iVar25 = (*pcVar22)(pVVar24,0x57,iVar4,iVar11,iStack_58);
            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pVVar24,uVar12,0xfffffff7);
            iVar25 = (*pcVar22)(pVVar24,0x10,iVar25 + 2,0,iVar25 + 2);
            (*pcVar22)(pVVar24,0x4e,iVar4,iVar11,iStack_58 + -1);
            iVar4 = regSize;
            if (uVar16 != 'R') {
              uVar10 = 0;
              iVar4 = 0;
            }
            goto LAB_000c14a0;
          }
          if (uVar16 == 'R') goto LAB_000c1494;
          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);
          (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,0,0);
        }
        else if (uVar16 == 'R') {
          if (pWVar21->eType == 'V') goto LAB_000c1544;
LAB_000c1494:
          iVar25 = 0;
          iVar4 = regSize;
LAB_000c14a0:
          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);
          (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,uVar10,iVar4);
          if (iVar25 != 0) {
            iVar4 = pVVar24->nOp;
            if (iVar25 < 0) {
              iVar25 = iVar4 + -1;
            }
            if (pVVar24->db->mallocFailed == '\0') {
              pVVar24->aOp[iVar25].p2 = iVar4;
            }
            else {
              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4;
            }
          }
        }
        else {
          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);
        }
        if (bVar1) goto LAB_000c0e5c;
      }
      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(pParse,pWVar21,iVar28,0,uVar7,regSize);
    }
LAB_000c0e5c:
    (*pcVar22)(pVVar24,0x53,iVar31,1,0);
    (*pcVar22)(pVVar24,5,iVar28,iStack_50,0);
    (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,0,0);
    (*pcVar32)(pVVar24,iVar6);
    (*pcVar22)(pVVar24,0x8a,pWVar21->iEphCsr,0,0);
  }
  puVar19 = (undefined1 *)0x42;
  (*pcVar22)(pVVar24,0x42,iVar5,0,0);
  pParse_00 = (Parse *)pVVar24->nOp;
  if ((int)puStack_60 < 0) {
    puStack_60 = (undefined1 *)((int)&pParse_00[-1].pRename + 3);
  }
  if (pVVar24->db->mallocFailed == '\0') {
    pOVar15 = pVVar24->aOp + (int)puStack_60;
    puVar19 = puStack_60;
  }
  else {
    pOVar15 = (Op *)(PTR_DAT_0015b5d8 + -0x4514);
  }
  pOVar15->p2 = (int)pParse_00;
LAB_000c0f44:
  if (iStack_2c == *(int *)puVar30) {
    return;
  }
  puVar30 = PTR___stack_chk_fail_0015ba10;
  (*(code *)PTR___stack_chk_fail_0015ba10)();
  psVar23 = pParse_00->db;
  if (puVar19 == (undefined1 *)0x0) {
    if (psVar23->mallocFailed == '\0') {
      sqlite3ExprCode(pParse_00,(Expr *)0x0,iVar5);
      return;
    }
  }
  else {
    pExpr = (Expr *)(*(code *)(*(int *)(puVar30 + 0x997c0) + -0x271c))(psVar23);
    if (psVar23->mallocFailed == '\0') {
      sqlite3ExprCode(pParse_00,pExpr,iVar5);
    }
    if (pExpr != (Expr *)0x0) {
                    /* WARNING: Could not recover jumptable at 0x000c1fc0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      (*(code *)(*(int *)(puVar30 + 0x99780) + 0x7bc4))(psVar23,pExpr);
      return;
    }
  }
  return;
}



void FUN_000c082c(int param_1,int param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5)

{
  bool bVar1;
  uint uVar2;
  undefined *puVar3;
  undefined4 uVar4;
  int iVar5;
  char cVar10;
  undefined4 uVar6;
  undefined4 uVar7;
  int iVar8;
  int iVar9;
  int *piVar11;
  int iVar12;
  int iVar13;
  int iVar14;
  code *pcVar15;
  int *piVar16;
  int iVar17;
  int iVar18;
  int *piVar19;
  int iVar20;
  code *pcVar21;
  undefined *puVar22;
  int iVar23;
  code *pcVar24;
  int local_60;
  code *local_5c;
  int local_58;
  int local_50;
  code *local_4c;
  int *local_48;
  undefined4 local_30;
  int local_2c;
  
  puVar22 = PTR___stack_chk_guard_0015ba2c;
  iVar14 = *(int *)(param_2 + 0x44);
  local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;
  uVar2 = *(uint *)(iVar14 + 0xc) & 0xffff00;
  if (*(char *)(iVar14 + 0xc) == 'L') {
    if ((uVar2 == 0x575200) && (*(int *)(iVar14 + 8) != 0)) goto LAB_000c08b4;
    piVar11 = *(int **)(param_1 + 8);
    if (piVar11 == (int *)0x0) {
      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);
    }
    puVar3 = PTR_LAB_0015b714;
    iVar20 = *(int *)(param_1 + 0x28);
    iVar18 = *(int *)(param_1 + 0x2c);
    iVar17 = iVar18 + 3;
    iVar23 = *(int *)(param_1 + 0x38) + -2;
    *(int *)(param_1 + 0x28) = iVar20 + 2;
    iVar12 = *(int *)(param_1 + 0x38) + -1;
    iVar5 = iVar18 + 1;
    *(int *)(param_1 + 0x2c) = iVar17;
    *(int *)(param_1 + 0x38) = iVar23;
    iVar18 = iVar18 + 2;
    iVar9 = iVar20 + 1;
    local_30 = 0;
    (*(code *)(puVar3 + -0x7e94))
              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar12,&local_30
              );
    pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);
    local_60 = (*pcVar15)(piVar11,0xb,0,0,0);
    pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);
    (*pcVar24)(piVar11,iVar12);
    (*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 3,0);
    (*pcVar15)(piVar11,0x6f,iVar20,*(undefined4 *)(iVar14 + 0x24),0);
    (*pcVar15)(piVar11,0x6f,iVar9,*(undefined4 *)(iVar14 + 0x24),0);
    if (*(int *)(iVar14 + 0x10) != 0) {
      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x10),iVar18);
      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar18,0);
    }
    if (*(int *)(iVar14 + 0x14) != 0) {
      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x14),iVar17);
      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar17,1);
      if ((*(int *)(iVar14 + 0x14) != 0) && (*(char *)(iVar14 + 0xd) == 'S')) {
        (*pcVar15)(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17);
        (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);
        (*pcVar15)(piVar11,0x61,iVar18,iVar17,iVar17);
      }
    }
    if ((*(int *)(iVar14 + 0x10) != 0) && (*(char *)(iVar14 + 0xe) == 'U')) {
      (*pcVar15)(piVar11,0x37,iVar18,piVar11[0x1b] + 3,iVar17);
      (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);
      (*pcVar15)(piVar11,0x4e,local_30,iVar17,0);
    }
    uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);
    (*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar23,0);
    (*pcVar15)(piVar11,0x24,iVar20,iVar23,0);
    if (0 < piVar11[0x1b]) {
      *(undefined2 *)(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12) = 1;
    }
    (*pcVar15)(piVar11,0x24,iVar9,iVar23,0);
    iVar12 = piVar11[0x1b];
    if (0 < iVar12) {
      *(undefined2 *)(piVar11[0x1a] + iVar12 * 0x14 + -0x12) = 1;
      iVar12 = piVar11[0x1b];
    }
    if (*(char *)(iVar14 + 0xe) == 'U') {
      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);
      iVar13 = piVar11[0x1b];
    }
    else {
      local_50 = 0;
      iVar13 = iVar12;
    }
    (*pcVar15)(piVar11,5,iVar9,iVar13 + 2,0);
    iVar13 = (*pcVar15)(piVar11,0xb,0,0,0);
    pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7af4);
    (*pcVar21)(param_1,iVar14,iVar9,0,uVar4,local_30);
    if (*(char *)(iVar14 + 0xe) == 'W') {
      (*pcVar15)(piVar11,0xb,0,iVar12,0);
      iVar12 = piVar11[0x1b];
      if (iVar13 < 0) {
        iVar13 = iVar12 + -1;
      }
      if (*(char *)(*piVar11 + 0x51) == '\0') {
        *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar12;
        cVar10 = *(char *)(iVar14 + 0xe);
      }
      else {
        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12;
        cVar10 = *(char *)(iVar14 + 0xe);
      }
    }
    else {
      iVar9 = piVar11[0x1b];
      if (iVar13 < 0) {
        iVar13 = iVar9 + -1;
      }
      if (*(char *)(*piVar11 + 0x51) == '\0') {
        puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14);
      }
      else {
        puVar3 = PTR_DAT_0015b5d8 + -0x4514;
      }
      *(int *)(puVar3 + 8) = iVar9;
      cVar10 = *(char *)(iVar14 + 0xe);
      if (cVar10 == 'U') {
        iVar13 = iVar9 + -1;
        if (-1 < local_50) {
          iVar13 = local_50;
        }
        if (*(char *)(*piVar11 + 0x51) == '\0') {
          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;
          cVar10 = *(char *)(iVar14 + 0xe);
        }
        else {
          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;
          cVar10 = *(char *)(iVar14 + 0xe);
        }
      }
    }
    if (cVar10 == 'S') {
      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);
    }
    if (*(char *)(iVar14 + 0xd) == 'S') {
      iVar17 = (*pcVar15)(piVar11,0x2f,iVar18,0,1);
      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);
      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);
      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);
      (*pcVar15)(piVar11,0xb,0,iVar23,0);
      uVar2 = (uint)*(byte *)(iVar14 + 0xd);
      if (uVar2 == 0x53) {
        iVar9 = piVar11[0x1b];
        if (iVar17 < 0) {
          iVar17 = iVar9 + -1;
        }
        goto LAB_000c1d20;
      }
    }
    else {
      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);
      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);
      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);
      (*pcVar15)(piVar11,0xb,0,iVar23,0);
      uVar2 = (uint)*(byte *)(iVar14 + 0xd);
      if (uVar2 == 0x53) {
        iVar9 = piVar11[0x1b];
        iVar17 = 0;
LAB_000c1d20:
        if (*(char *)(*piVar11 + 0x51) == '\0') {
          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;
          uVar2 = (uint)*(byte *)(iVar14 + 0xd);
        }
        else {
          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;
          uVar2 = (uint)*(byte *)(iVar14 + 0xd);
        }
      }
    }
    if ((uVar2 - 0x52 < 2) || (uVar2 == 0x55)) {
      iVar17 = *(int *)(param_1 + 0x38) + -1;
      *(int *)(param_1 + 0x38) = iVar17;
      cVar10 = *(char *)(iVar14 + 0xd);
      if (cVar10 == 'U') {
        (*pcVar15)(piVar11,0x2f,iVar18,iVar17,1);
        cVar10 = *(char *)(iVar14 + 0xd);
      }
      if (cVar10 == 'S') {
        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 2,0);
        (*pcVar15)(piVar11,0xb,0,iVar17,0);
      }
      else {
        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0);
      }
      (*pcVar21)(param_1,iVar14,iVar20,1,uVar4,local_30);
      (*pcVar24)(piVar11,iVar17);
    }
    if (*(char *)(iVar14 + 0xe) == 'S') {
      iVar18 = piVar11[0x1b];
      if (local_50 < 0) {
        local_50 = iVar18 + -1;
      }
      if (*(char *)(*piVar11 + 0x51) == '\0') {
        *(int *)(piVar11[0x1a] + local_50 * 0x14 + 8) = iVar18;
      }
      else {
        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;
      }
    }
    (*pcVar15)(piVar11,0xb,0,iVar12,0);
    (*pcVar24)(piVar11,iVar23);
    (*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);
  }
  else {
    if (uVar2 != 0x525700) {
LAB_000c08b4:
      iVar18 = iVar14;
      do {
        if (((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||
             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),
             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||
           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))
        goto LAB_000c0c60;
        iVar18 = *(int *)(iVar18 + 0x18);
      } while (iVar18 != 0);
      piVar16 = *(int **)(param_1 + 8);
      if (piVar16 == (int *)0x0) {
        piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);
      }
      piVar11 = *(int **)(iVar14 + 4);
      iVar17 = *(int *)(param_1 + 0x2c) + 1;
      uVar4 = *(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30);
      iVar20 = (int)*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a);
      iVar18 = iVar20 + iVar17;
      iVar5 = iVar20 + 2 + *(int *)(param_1 + 0x2c);
      if (*(char *)(iVar14 + 0xe) == 'W') {
        *(int *)(param_1 + 0x2c) = iVar5;
        piVar19 = (int *)0x0;
        if (0 < iVar20) goto LAB_000c0980;
        if (piVar11 != (int *)0x0) {
          local_50 = *piVar11;
          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);
          goto LAB_000c09d4;
        }
        pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);
        pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);
      }
      else {
        piVar19 = *(int **)(iVar14 + 8);
        *(int *)(param_1 + 0x2c) = iVar5;
        if (iVar20 < 1) {
          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);
        }
        else {
LAB_000c0980:
          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);
          iVar5 = 0;
          do {
            iVar23 = iVar5 + 1;
            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);
            iVar5 = iVar23;
          } while (iVar23 < iVar20);
        }
        puVar3 = PTR_LAB_0015b714;
        if (piVar11 == (int *)0x0) {
          if (piVar19 == (int *)0x0) {
            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);
            goto LAB_000c0b50;
          }
          iVar5 = *piVar19;
          local_60 = iVar5;
          if (*(char *)(iVar14 + 0xc) == 'V') {
            iVar20 = 0;
            iVar23 = *(int *)(iVar14 + 0x38);
            local_50 = iVar17 + *(int *)(iVar14 + 0x40);
            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);
            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);
            goto LAB_000c1e74;
          }
          iVar5 = 0;
          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);
          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');
          iVar20 = piVar16[0x1b];
        }
        else {
          local_50 = *piVar11;
          if (piVar19 == (int *)0x0) {
LAB_000c09d4:
            iVar5 = *(int *)(iVar14 + 0x40);
            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);
            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);
            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);
            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);
            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);
            (*pcVar24)(param_1,iVar14,1);
            local_60 = local_50;
          }
          else {
            iVar20 = *(int *)(iVar14 + 0x40);
            iVar5 = *piVar19;
            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);
            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50
                               );
            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);
            (*local_5c)(piVar16,uVar4,0xfffffff7);
            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);
            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);
            (*pcVar24)(param_1,iVar14,1);
            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);
            iVar12 = *(int *)(iVar14 + 0x40);
            iVar23 = *(int *)(iVar14 + 0x38);
            if (iVar9 != 0) {
              iVar13 = piVar16[0x1b];
              if (iVar9 < 0) {
                iVar9 = iVar13 + -1;
              }
              if (*(char *)(*piVar16 + 0x51) == '\0') {
                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;
              }
              else {
                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;
              }
            }
            local_60 = local_50 + iVar5;
            if (*(char *)(iVar14 + 0xc) == 'V') {
              iVar23 = local_50 + iVar23;
              local_50 = iVar17 + iVar12 + local_50;
LAB_000c1e74:
              local_4c = (code *)(puVar3 + -0x7fc4);
              uVar4 = (*local_4c)(param_1,piVar19,0,0);
              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);
              (*local_5c)(piVar16,uVar4,0xfffffff7);
              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);
            }
            else {
              iVar5 = 0;
            }
            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');
            if (iVar20 != 0) {
              iVar23 = piVar16[0x1b];
              if (iVar20 < 0) {
                iVar20 = iVar23 + -1;
              }
              if (*(char *)(*piVar16 + 0x51) == '\0') {
                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;
              }
              else {
                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;
              }
            }
          }
          iVar20 = piVar16[0x1b];
        }
        (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);
        (*pcVar15)(piVar16,0xc,param_4,param_5,0);
        (*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);
        (*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);
        (*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),
                   local_60 + -1);
        if (iVar5 != 0) {
          iVar20 = piVar16[0x1b];
          if (iVar5 < 0) {
            iVar5 = iVar20 + -1;
          }
          if (*(char *)(*piVar16 + 0x51) == '\0') {
            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;
          }
          else {
            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;
          }
        }
      }
LAB_000c0b50:
      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,0xffffffff,0,iVar17,0);
      if (*(int *)(iVar14 + 0x40) < 1) {
        (*pcVar15)(piVar16,0x4b,0,iVar18,0);
        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0);
      }
      else {
        (*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);
      }
      (*pcVar15)(piVar16,0x79,*(undefined4 *)(iVar14 + 0x24),iVar18 + 1,0);
      (*pcVar15)(piVar16,0x7a,*(undefined4 *)(iVar14 + 0x24),iVar18,iVar18 + 1);
      (*(code *)(PTR_LAB_0015b710 + -0x18cc))(param_3);
      (*pcVar24)(param_1,iVar14,1);
      (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + 3,0);
      (*pcVar15)(piVar16,0xc,param_4,param_5,0);
      iVar18 = 5;
      iVar5 = *(int *)(iVar14 + 0x24);
      (*pcVar15)(piVar16,5,iVar5,piVar16[0x1b] + -1,0);
      goto LAB_000c0f44;
    }
LAB_000c0c60:
    piVar11 = *(int **)(param_1 + 8);
    if (piVar11 == (int *)0x0) {
      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);
      piVar16 = *(int **)(iVar14 + 8);
      local_48 = *(int **)(iVar14 + 4);
      if (piVar16 != (int *)0x0) goto LAB_000c0c7c;
LAB_000c1450:
      local_58 = 0;
      bVar1 = false;
    }
    else {
      local_48 = *(int **)(iVar14 + 4);
      piVar16 = *(int **)(iVar14 + 8);
      if (piVar16 == (int *)0x0) goto LAB_000c1450;
LAB_000c0c7c:
      local_58 = *piVar16;
      bVar1 = (*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700;
    }
    puVar3 = PTR_LAB_0015b714;
    iVar18 = *(int *)(param_1 + 0x2c);
    iVar23 = *(int *)(param_1 + 0x28);
    iVar17 = *(int *)(param_1 + 0x38);
    iVar5 = iVar18 + local_58;
    iVar9 = iVar5 + 2;
    iVar20 = iVar17 + -2;
    *(int *)(param_1 + 0x28) = iVar23 + 1;
    iVar5 = iVar5 + 1;
    *(int *)(param_1 + 0x38) = iVar20;
    *(int *)(param_1 + 0x2c) = iVar9;
    iVar17 = iVar17 + -1;
    (*(code *)(puVar3 + -0x7e94))
              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar20,&local_30
              );
    pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);
    local_60 = (*pcVar15)(piVar11,0xb,0,0,0);
    pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);
    (*pcVar24)(piVar11,iVar20);
    (*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 2,0);
    (*pcVar15)(piVar11,0x6f,iVar23,*(undefined4 *)(iVar14 + 0x24),0);
    uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);
    (*pcVar15)(piVar11,0x46,0,iVar9,0);
    (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);
    (*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar17,0);
    if (bVar1) {
      iVar20 = piVar11[0x1b];
      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);
      (*pcVar15)(piVar11,5,iVar23,iVar20,0);
      (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);
      local_50 = piVar11[0x1b];
      if (piVar16 != (int *)0x0) goto LAB_000c0e28;
      pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);
    }
    else {
      local_50 = piVar11[0x1b];
      if (piVar16 == (int *)0x0) {
        pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);
      }
      else {
LAB_000c0e28:
        cVar10 = *(char *)(iVar14 + 0xd);
        uVar6 = uVar4;
        if (*(char *)(iVar14 + 0xe) == 'R') {
          if (*(char *)(iVar14 + 0xc) == 'V') {
LAB_000c1544:
            iVar20 = *(int *)(iVar14 + 0x40);
            if (local_48 == (int *)0x0) {
              iVar12 = 0;
            }
            else {
              iVar12 = *local_48;
              iVar20 = iVar20 + iVar12;
            }
            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);
            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);
            iVar18 = iVar18 + 1;
            if (0 < local_58) {
              iVar13 = local_58 + iVar20;
              iVar8 = iVar18 - iVar20;
              do {
                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);
                iVar20 = iVar20 + 1;
              } while (iVar20 != iVar13);
            }
            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);
            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);
            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);
            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);
            uVar7 = local_30;
            if (cVar10 != 'R') {
              uVar6 = 0;
              uVar7 = 0;
            }
            goto LAB_000c14a0;
          }
          if (cVar10 == 'R') goto LAB_000c1494;
          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);
          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);
        }
        else if (cVar10 == 'R') {
          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;
LAB_000c1494:
          iVar20 = 0;
          uVar7 = local_30;
LAB_000c14a0:
          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);
          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);
          if (iVar20 != 0) {
            iVar18 = piVar11[0x1b];
            if (iVar20 < 0) {
              iVar20 = iVar18 + -1;
            }
            if (*(char *)(*piVar11 + 0x51) == '\0') {
              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;
            }
            else {
              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;
            }
          }
        }
        else {
          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);
        }
        if (bVar1) goto LAB_000c0e5c;
      }
      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);
    }
LAB_000c0e5c:
    (*pcVar15)(piVar11,0x53,iVar9,1,0);
    (*pcVar15)(piVar11,5,iVar23,local_50,0);
    (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);
    (*pcVar24)(piVar11,iVar17);
    (*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);
  }
  iVar18 = 0x42;
  (*pcVar15)(piVar11,0x42,iVar5,0,0);
  piVar16 = (int *)piVar11[0x1b];
  if (local_60 < 0) {
    local_60 = (int)piVar16 + -1;
  }
  if (*(char *)(*piVar11 + 0x51) == '\0') {
    puVar3 = (undefined *)(piVar11[0x1a] + local_60 * 0x14);
    iVar18 = local_60;
  }
  else {
    puVar3 = PTR_DAT_0015b5d8 + -0x4514;
  }
  *(int **)(puVar3 + 8) = piVar16;
LAB_000c0f44:
  if (local_2c == *(int *)puVar22) {
    return;
  }
  puVar22 = PTR___stack_chk_fail_0015ba10;
  (*(code *)PTR___stack_chk_fail_0015ba10)();
  iVar14 = *piVar16;
  if (iVar18 == 0) {
    if (*(char *)(iVar14 + 0x51) == '\0') {
      FUN_000c02d8();
      return;
    }
  }
  else {
    iVar18 = (*(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c))(iVar14);
    if (*(char *)(iVar14 + 0x51) == '\0') {
      FUN_000c02d8(piVar16,iVar18,iVar5);
    }
    if (iVar18 != 0) {
                    /* WARNING: Could not recover jumptable at 0x000c1fc0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      (*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4))(iVar14,iVar18);
      return;
    }
  }
  return;
}


lui gp,0xa
addiu gp,gp,0x2d84
addu gp,gp,t9
addiu sp,sp,-0x90
sw s6,0x80(sp)
sw s2,0x70(sp)
or s2,a0,zero
sw s1,0x6c(sp)
or s1,a1,zero
sw gp,0x20(sp)
sw ra,0x8c(sp)
sw s8,0x88(sp)
sw s7,0x84(sp)
sw s5,0x7c(sp)
sw s4,0x78(sp)
sw s3,0x74(sp)
sw s0,0x68(sp)
lw s6,-0x7b84(gp)
lw s0,0x44(a1)
li a1,0x4c
sw a2,0x2c(sp)
sw a3,0x9c(sp)
lw v0,0x0(s6)
lw v1,0xc(s0)
lbu a0,0xc(s0)
sw v0,0x64(sp)
lui v0,0xff
ori v0,v0,0xff00
beq a0,a1,0x000c0fac
_and v0,v1,v0
lui v1,0x52
addiu v1,v1,0x5700
beq v0,v1,0x000c0c60
_lw a1,-0x7f1c(gp)
lui t1,0x2
lw a2,-0x7f1c(gp)
or s5,s0,zero
lw a3,-0x7f1c(gp)
lw t0,-0x7f1c(gp)
addiu a1,a1,-0x7df4
addiu a2,a2,-0x7e00
addiu a3,a3,-0x7e08
addiu t0,t0,-0x7e0c
lw a0,0x20(s5)
lw v0,0x4(a0)
and v0,v0,t1
bne v0,zero,0x000c0c60
_nop
lw v0,0x20(a0)
beq v0,a1,0x000c0c60
_nop
beq v0,a2,0x000c0c60
_nop
beq v0,a3,0x000c0c60
_nop
beq v0,t0,0x000c0c60
_nop
lw s5,0x18(s5)
bne s5,zero,0x000c08d8
_nop
lw s3,0x8(s2)
beq s3,zero,0x000c1470
_lw t9,-0x7ea0(gp)
lw v0,0x20(s1)
li a1,0x57
lw a0,0x2c(s2)
lw v1,0x4(s0)
lbu a2,0xe(s0)
lw a3,0x18(v0)
addiu s4,a0,0x1
lw v0,0x30(v0)
sw v1,0x34(sp)
sw v0,0x30(sp)
lh s7,0x2a(a3)
addu v0,s7,s4
or v1,v0,zero
sw v0,0x38(sp)
addiu v1,v1,0x1
addiu v0,s7,0x2
sw v1,0x3c(sp)
beq a2,a1,0x000c1518
_addu v0,v0,a0
lw s5,0x8(s0)
blez s7,0x000c1f00
_sw v0,0x2c(s2)
lw s1,-0x7ea0(gp)
or s8,zero,zero
addiu s1,s1,-0x3890
addu v0,s4,s8
lw a2,0x30(sp)
or a3,s8,zero
li a1,0x5a
sw v0,0x10(sp)
addiu s8,s8,0x1
or t9,s1,zero
jalr t9
_or a0,s3,zero
slt v0,s8,s7
bne v0,zero,0x000c098c
_lw gp,0x20(sp)
lw v0,0x34(sp)
beq v0,zero,0x000c1a20
_nop
lw v0,0x0(v0)
bne s5,zero,0x000c18a0
_sw v0,0x40(sp)
lw t9,-0x7e9c(gp)
or a3,zero,zero
lw a1,0x34(sp)
or a2,zero,zero
lw s7,0x40(s0)
addiu t9,t9,-0x7fc4
jalr t9
_or a0,s2,zero
addu s7,s4,s7
lw s5,0x40(sp)
li a1,0x57
lw a3,0x38(s0)
or a2,s7,zero
or a0,s3,zero
or t9,s1,zero
sw s5,0x10(sp)
jalr t9
_or s8,v0,zero
lw gp,0x20(sp)
li a2,-0x9
or s7,v0,zero
or a1,s8,zero
lw t9,-0x7ef0(gp)
addiu t9,t9,-0x5958
jalr t9
_or a0,s3,zero
addiu a2,s7,0x2
or a3,zero,zero
li a1,0x10
sw a2,0x10(sp)
or t9,s1,zero
jalr t9
_or a0,s3,zero
li a2,0x1
lw gp,0x20(sp)
or a1,s0,zero
or a0,s2,zero
lw s8,-0x7ea0(gp)
addiu s8,s8,-0x2764
or t9,s8,zero
jalr t9
_or s7,v0,zero
sw s5,0x30(sp)
lw a3,0x6c(s3)
li a1,0x24
lw a2,0x24(s0)
or a0,s3,zero
or t9,s1,zero
sw zero,0x10(sp)
jalr t9
_addiu a3,a3,0x3
li a1,0xc
lw a3,0xa0(sp)
or a0,s3,zero
lw a2,0x9c(sp)
or t9,s1,zero
jalr t9
_sw zero,0x10(sp)
li a1,0x5
lw a3,0x6c(s3)
or a0,s3,zero
lw a2,0x24(s0)
or t9,s1,zero
sw zero,0x10(sp)
jalr t9
_addiu a3,a3,-0x1
or a3,zero,zero
lw a2,0x24(s0)
li a1,0x8a
or a0,s3,zero
or t9,s1,zero
jalr t9
_sw zero,0x10(sp)
li a1,0x4e
lw v0,0x30(sp)
or a0,s3,zero
lw a2,0x40(s0)
or t9,s1,zero
lw a3,0x38(s0)
addiu v0,v0,-0x1
addu a2,s4,a2
jalr t9
_sw v0,0x10(sp)
beq s7,zero,0x000c0b50
_lw gp,0x20(sp)
bgez s7,0x000c0b34
_lw a0,0x6c(s3)
addiu s7,a0,-0x1
lw v0,0x0(s3)
lbu v0,0x51(v0)
beq v0,zero,0x000c1af0
_sll v1,s7,0x2
lw v0,-0x7fd8(gp)
addiu v0,v0,-0x4514
sw a0,0x8(v0)
lw t9,-0x7e9c(gp)
or a3,zero,zero
li a2,-0x1
sw zero,0x14(sp)
sw s4,0x10(sp)
or a1,s0,zero
addiu t9,t9,-0x7af4
jalr t9
_or a0,s2,zero
lw a3,0x40(s0)
blez a3,0x000c1838
_lw v0,0x38(sp)
li a1,0x66
or a2,s4,zero
or a0,s3,zero
or t9,s1,zero
jalr t9
_sw v0,0x10(sp)
lw s4,0x3c(sp)
li a1,0x79
lw a2,0x24(s0)
or a0,s3,zero
or t9,s1,zero
sw zero,0x10(sp)
jalr t9
_or a3,s4,zero
li a1,0x7a
lw a2,0x24(s0)
or a0,s3,zero
lw a3,0x38(sp)
or t9,s1,zero
jalr t9
_sw s4,0x10(sp)
lw gp,0x20(sp)
lw t9,-0x7ea0(gp)
addiu t9,t9,-0x18cc
jalr t9
_lw a0,0x2c(sp)
li a2,0x1
or a1,s0,zero
or t9,s8,zero
jalr t9
_or a0,s2,zero
li a1,0x24
lw a3,0x6c(s3)
or a0,s3,zero
lw a2,0x24(s0)
or t9,s1,zero
sw zero,0x10(sp)
jalr t9
_addiu a3,a3,0x3
li a1,0xc
lw a3,0xa0(sp)
or a0,s3,zero
lw a2,0x9c(sp)
or t9,s1,zero
jalr t9
_sw zero,0x10(sp)
li a1,0x5
lw a3,0x6c(s3)
or a0,s3,zero
lw a2,0x24(s0)
or t9,s1,zero
sw zero,0x10(sp)
jalr t9
_addiu a3,a3,-0x1
b 0x000c0f44
_lw gp,0x20(sp)
lw s3,0x8(s2)
beq s3,zero,0x000c0f80
_lw t9,-0x7ea0(gp)
lw v0,0x4(s0)
lw s7,0x8(s0)
beq s7,zero,0x000c144c
_sw v0,0x48(sp)
lw v1,0x0(s7)
lw v0,0xc(s0)
sw v1,0x38(sp)
lui v1,0xff
ori v1,v1,0xff00
and v0,v0,v1
lui v1,0xffad
ori v1,v1,0xa900
addu v0,v0,v1
sltiu v0,v0,0x1
sw v0,0x34(sp)
lw v0,0x2c(s2)
addiu a1,s1,0x20
lw s4,0x28(s2)
lw a0,0x38(sp)
or v1,v0,zero
lw t9,-0x7e9c(gp)
sw v0,0x4c(sp)
addiu a2,s4,0x1
lw v0,0x38(s2)
addu a0,v1,a0
addiu v1,sp,0x60
lw a3,0x2c(sp)
addiu s5,a0,0x2
sw v1,0x18(sp)
addiu v1,v0,-0x2
sw a2,0x28(s2)
addiu a2,a0,0x1
sw v1,0x38(s2)
addiu t9,t9,-0x7e94
sw s5,0x2c(s2)
or a0,s2,zero
sw v1,0x14(sp)
addiu s8,v0,-0x1
sw a2,0x10(sp)
sw a2,0x3c(sp)
sw v1,0x2c(sp)
jalr t9
_lw a2,0x44(s1)
or a3,zero,zero
lw gp,0x20(sp)
or a2,zero,zero
li a1,0xb
sw zero,0x10(sp)
lw s1,-0x7ea0(gp)
addiu s1,s1,-0x3890
or t9,s1,zero
jalr t9
_or a0,s3,zero
or a0,s3,zero
lw gp,0x20(sp)
lw v1,0x2c(sp)
sw v0,0x30(sp)
or a1,v1,zero
lw v1,-0x7ea0(gp)
addiu t9,v1,-0x3c14
jalr t9
_sw t9,0x2c(sp)
or a2,zero,zero
lw a3,0x6c(s3)
li a1,0x11
or a0,s3,zero
sw zero,0x10(sp)
or t9,s1,zero
jalr t9
_addiu a3,a3,0x2
li a1,0x6f
lw a3,0x24(s0)
or a2,s4,zero
or a0,s3,zero
or t9,s1,zero
jalr t9
_sw zero,0x10(sp)
or a1,s0,zero
lw gp,0x20(sp)
lw t9,-0x7ea0(gp)
addiu t9,t9,-0x2e00
jalr t9
_or a0,s2,zero
or a2,zero,zero
li a1,0x46
sw zero,0x10(sp)
or a3,s5,zero
sw v0,0x44(sp)
or t9,s1,zero
jalr t9
_or a0,s3,zero
li a1,0x24
or a3,s8,zero
sw zero,0x10(sp)
or a2,s4,zero
or t9,s1,zero
jalr t9
_or a0,s3,zero
li a1,0x24
lw a2,0x24(s0)
or a3,s8,zero
sw zero,0x10(sp)
or t9,s1,zero
jalr t9
_or a0,s3,zero
lw v0,0x34(sp)
bne v0,zero,0x000c1698
_lw gp,0x20(sp)
lw v0,0x6c(s3)
beq s7,zero,0x000c1724
_sw v0,0x40(sp)
lbu a0,0xd(s0)
li v0,0x52
lbu v1,0xe(s0)
beq v1,v0,0x000c17e4
_sw a0,0x50(sp)
beq a0,v0,0x000c1488
_li v0,0x56
lw s7,-0x7e9c(gp)
addiu s7,s7,-0x7508
lw v0,0x34(sp)
beq v0,zero,0x000c1730
_lw v0,0x44(sp)
li a3,0x1
sw zero,0x10(sp)
li a1,0x53
or a2,s5,zero
or t9,s1,zero
jalr t9
_or a0,s3,zero
li a1,0x5
lw a3,0x40(sp)
or a2,s4,zero
or a0,s3,zero
or t9,s1,zero
jalr t9
_sw zero,0x10(sp)
or a2,s5,zero
lw v0,0xa0(sp)
or a1,s0,zero
lw a3,0x9c(sp)
or a0,s2,zero
or t9,s7,zero
sw zero,0x18(sp)
sw v0,0x10(sp)
jalr t9
_sw zero,0x14(sp)
or a1,s8,zero
lw t9,0x2c(sp)
jalr t9
_or a0,s3,zero
or a3,zero,zero
lw a2,0x24(s0)
li a1,0x8a
or a0,s3,zero
or t9,s1,zero
jalr t9
_sw zero,0x10(sp)
or a3,zero,zero
lw a2,0x3c(sp)
li a1,0x42
sw zero,0x10(sp)
or t9,s1,zero
jalr t9
_or a0,s3,zero
lw v0,0x30(sp)
lw gp,0x20(sp)
bgez v0,0x000c0f18
_lw a0,0x6c(s3)
addiu v0,a0,-0x1
sw v0,0x30(sp)
lw v0,0x0(s3)
lbu v0,0x51(v0)
bne v0,zero,0x000c1690
_lw v0,-0x7fd8(gp)
lw a1,0x30(sp)
lw v0,0x68(s3)
sll v1,a1,0x2
addu v1,v1,a1
sll v1,v1,0x2
addu v0,v0,v1
sw a0,0x8(v0)
lw v1,0x64(sp)
lw v0,0x0(s6)
bne v1,v0,0x000c1f34
_lw ra,0x8c(sp)
lw s8,0x88(sp)
lw s7,0x84(sp)
lw s6,0x80(sp)
lw s5,0x7c(sp)
lw s4,0x78(sp)
lw s3,0x74(sp)
lw s2,0x70(sp)
lw s1,0x6c(sp)
lw s0,0x68(sp)
jr ra
_addiu sp,sp,0x90
addiu t9,t9,-0x371c
jalr t9
_or a0,s2,zero
or s3,v0,zero
lw s7,0x8(s0)
lw v0,0x4(s0)
lw gp,0x20(sp)
bne s7,zero,0x000c0c7c
_sw v0,0x48(sp)
b 0x000c1450
_sw zero,0x38(sp)
lui v1,0x57
addiu v1,v1,0x5200
bne v0,v1,0x000c0fc8
_nop
lw v0,0x8(s0)
bne v0,zero,0x000c08b4
_lw a1,-0x7f1c(gp)
lw s3,0x8(s2)
beq s3,zero,0x000c1458
_lw t9,-0x7ea0(gp)
lw s4,0x28(s2)
addiu a0,sp,0x60
lw v0,0x2c(s2)
addiu a1,s1,0x20
lw s8,0x38(s2)
addiu v1,s4,0x2
lw t9,-0x7e9c(gp)
lw a3,0x2c(sp)
addiu a2,v0,0x3
sw a0,0x18(sp)
addiu s5,s8,-0x2
sw v1,0x28(s2)
addiu s8,s8,-0x1
addiu v1,v0,0x1
sw a2,0x2c(s2)
sw s5,0x38(s2)
addiu v0,v0,0x2
sw v1,0x10(sp)
addiu t9,t9,-0x7e94
sw s8,0x14(sp)
or a0,s2,zero
sw a2,0x3c(sp)
addiu s7,s4,0x1
sw v1,0x44(sp)
sw v0,0x38(sp)
sw zero,0x60(sp)
jalr t9
_lw a2,0x44(s1)
or a3,zero,zero
lw gp,0x20(sp)
or a2,zero,zero
li a1,0xb
sw zero,0x10(sp)
lw s1,-0x7ea0(gp)
addiu s1,s1,-0x3890
or t9,s1,zero
jalr t9
_or a0,s3,zero
or a1,s8,zero
lw gp,0x20(sp)
or a0,s3,zero
sw v0,0x30(sp)
lw v1,-0x7ea0(gp)
addiu t9,v1,-0x3c14
jalr t9
_sw t9,0x2c(sp)
or a2,zero,zero
lw a3,0x6c(s3)
li a1,0x11
or a0,s3,zero
sw zero,0x10(sp)
or t9,s1,zero
jalr t9
_addiu a3,a3,0x3
li a1,0x6f
lw a3,0x24(s0)
or a2,s4,zero
or a0,s3,zero
or t9,s1,zero
jalr t9
_sw zero,0x10(sp)
li a1,0x6f
lw a3,0x24(s0)
or a2,s7,zero
sw zero,0x10(sp)
or t9,s1,zero
jalr t9
_or a0,s3,zero
lw a1,0x10(s0)
beq a1,zero,0x000c1128
_lw gp,0x20(sp)
lw t9,-0x7d3c(gp)
or a0,s2,zero
lw s8,0x38(sp)
addiu t9,t9,0x2d8
bal 0x000c02d8
_or a2,s8,zero
or a2,zero,zero
lw gp,0x20(sp)
or a1,s8,zero
lw t9,-0x7ea0(gp)
addiu t9,t9,-0x2920
jalr t9
_or a0,s2,zero
lw gp,0x20(sp)
lw a1,0x14(s0)
beq a1,zero,0x000c1180
_lw t9,-0x7d3c(gp)
or a0,s2,zero
lw s8,0x3c(sp)
addiu t9,t9,0x2d8
bal 0x000c02d8
_or a2,s8,zero
li a2,0x1
lw gp,0x20(sp)
or a1,s8,zero
lw t9,-0x7ea0(gp)
addiu t9,t9,-0x2920
jalr t9
_or a0,s2,zero
lw v0,0x14(s0)
beq v0,zero,0x000c1180
_lw gp,0x20(sp)
lbu v1,0xd(s0)
li v0,0x53
beq v1,v0,0x000c1b80
_li a1,0x39
lw v0,0x10(s0)
beq v0,zero,0x000c1198
_li v0,0x55
lbu v1,0xe(s0)
beq v1,v0,0x000c1be0
_li a1,0x37
lw t9,-0x7ea0(gp)
or a1,s0,zero
addiu t9,t9,-0x2e00
jalr t9
_or a0,s2,zero
li a1,0x24
lw a2,0x24(s0)
or a3,s5,zero
or a0,s3,zero
sw zero,0x10(sp)
or t9,s1,zero
jalr t9
_sw v0,0x34(sp)
li a1,0x24
sw zero,0x10(sp)
or a3,s5,zero
or a2,s4,zero
or t9,s1,zero
jalr t9
_or a0,s3,zero
lw v1,0x6c(s3)
blez v1,0x000c120c
_sll v0,v1,0x2
lw a0,0x68(s3)
addu v0,v0,v1
li v1,0x1
sll v0,v0,0x2
addu v0,a0,v0
sh v1,-0x12(v0)
li a1,0x24
sw zero,0x10(sp)
or a3,s5,zero
or a2,s7,zero
or t9,s1,zero
jalr t9
_or a0,s3,zero
lw s8,0x6c(s3)
blez s8,0x000c1250
_sll v0,s8,0x2
lw v1,0x68(s3)
addu s8,v0,s8
li v0,0x1
sll s8,s8,0x2
addu s8,v1,s8
sh v0,-0x12(s8)
lw s8,0x6c(s3)
lbu v1,0xe(s0)
li v0,0x55
beq v1,v0,0x000c1b08
_li v0,0x1
sw zero,0x40(sp)
or a3,s8,zero
addiu a3,a3,0x2
sw zero,0x10(sp)
li a1,0x5
or a2,s7,zero
or t9,s1,zero
jalr t9
_or a0,s3,zero
or a3,zero,zero
or a2,zero,zero
sw zero,0x10(sp)
li a1,0xb
or t9,s1,zero
jalr t9
_or a0,s3,zero
or a2,s7,zero
lw gp,0x20(sp)
or a3,zero,zero
lw v1,0x34(sp)
or a0,s2,zero
or a1,s0,zero
lw s7,-0x7e9c(gp)
sw v1,0x10(sp)
lw v1,0x60(sp)
addiu t9,s7,-0x7af4
or s7,v0,zero
sw t9,0x48(sp)
jalr t9
_sw v1,0x14(sp)
li v0,0x57
lbu a0,0xe(s0)
beq a0,v0,0x000c1d50
_lw gp,0x20(sp)
bgez s7,0x000c12f4
_lw a1,0x6c(s3)
addiu s7,a1,-0x1
lw v0,0x0(s3)
lbu v0,0x51(v0)
bne v0,zero,0x000c1830
_lw v0,-0x7fd8(gp)
sll a0,s7,0x2
lw v0,0x68(s3)
addu v1,a0,s7
sll v1,v1,0x2
addu v0,v0,v1
sw a1,0x8(v0)
li v1,0x55
lbu v0,0xe(s0)
beq v0,v1,0x000c1a68
_nop
li v1,0x53
beq v0,v1,0x000c1da8
_li v0,0x1
lbu s7,0xd(s0)
li t0,0x53
beq s7,t0,0x000c1c68
_lw t9,-0x7ea0(gp)
or a2,zero,zero
or a1,s0,zero
addiu t9,t9,-0x2764
jalr t9
_or a0,s2,zero
or a1,s0,zero
lw gp,0x20(sp)
or a0,s2,zero
lw a3,0xa0(sp)
lw t9,-0x7ea0(gp)
addiu t9,t9,-0x2524
jalr t9
_lw a2,0x9c(sp)
li a1,0x5
lw a3,0x6c(s3)
or a0,s3,zero
lw a2,0x24(s0)
or t9,s1,zero
sw zero,0x10(sp)
jalr t9
_addiu a3,a3,0x2
or a2,zero,zero
li a1,0xb
sw zero,0x10(sp)
or a3,s5,zero
or t9,s1,zero
jalr t9
_or a0,s3,zero
li t0,0x53
lbu v1,0xd(s0)
beq v1,t0,0x000c1dd0
_lw gp,0x20(sp)
addiu v0,v1,-0x52
sltiu v0,v0,0x2
bne v0,zero,0x000c1760
_li v0,0x55
beq v1,v0,0x000c1760
_nop
lbu v1,0xe(s0)
li v0,0x53
beq v1,v0,0x000c187c
_lw v0,0x40(sp)
or a2,zero,zero
sw zero,0x10(sp)
li a1,0xb
or a3,s8,zero
or t9,s1,zero
jalr t9
_or a0,s3,zero
or a1,s5,zero
lw t9,0x2c(sp)
jalr t9
_or a0,s3,zero
or a3,zero,zero
lw a2,0x24(s0)
li a1,0x8a
or a0,s3,zero
or t9,s1,zero
jalr t9
_sw zero,0x10(sp)
or a3,zero,zero
li a1,0x42
lw a2,0x44(sp)
b 0x000c0ef4
_sw zero,0x10(sp)
sw zero,0x38(sp)
b 0x000c0ca8
_sw zero,0x34(sp)
addiu t9,t9,-0x371c
jalr t9
_or a0,s2,zero
lw gp,0x20(sp)
b 0x000c0fd4
_or s3,v0,zero
addiu t9,t9,-0x371c
jalr t9
_or a0,s2,zero
lw gp,0x20(sp)
b 0x000c0928
_or s3,v0,zero
lbu v1,0xc(s0)
beq v1,v0,0x000c1544
_lw v0,0x48(sp)
or t0,zero,zero
lw v1,0x60(sp)
lw v0,0x44(sp)
lw s7,-0x7e9c(gp)
or a2,s5,zero
lw a3,0x9c(sp)
or a1,s0,zero
sw v0,0x14(sp)
or a0,s2,zero
sw t0,0x38(sp)
addiu s7,s7,-0x7508
sw v1,0x18(sp)
lw v0,0xa0(sp)
or t9,s7,zero
jalr t9
_sw v0,0x10(sp)
lw t0,0x38(sp)
beq t0,zero,0x000c0e4c
_lw gp,0x20(sp)
bgez t0,0x000c14ec
_lw a0,0x6c(s3)
addiu t0,a0,-0x1
lw v0,0x0(s3)
lbu v0,0x51(v0)
bne v0,zero,0x000c1aa4
_lw v0,-0x7fd8(gp)
sll v1,t0,0x2
lw v0,0x68(s3)
addu v1,v1,t0
sll v1,v1,0x2
addu v0,v0,v1
b 0x000c0e4c
_sw a0,0x8(v0)
bgtz s7,0x000c0980
_sw v0,0x2c(s2)
lw v0,0x34(sp)
beq v0,zero,0x000c1f20
_nop
lw s1,-0x7ea0(gp)
lw v0,0x0(v0)
addiu s1,s1,-0x3890
b 0x000c09d4
_sw v0,0x40(sp)
lw v0,0x48(sp)
beq v0,zero,0x000c1e24
_lw t1,0x40(s0)
lw v0,0x0(v0)
addu t1,t1,v0
lw v1,0x38(s0)
or a3,zero,zero
lw t9,-0x7e9c(gp)
or a2,zero,zero
sw t1,0x48(sp)
or a1,s7,zero
addu v0,v0,v1
addiu t9,t9,-0x7fc4
or a0,s2,zero
jalr t9
_sw v0,0x58(sp)
lw v1,0x4c(sp)
lw t1,0x48(sp)
sw v0,0x5c(sp)
lw v0,0x38(sp)
addiu v1,v1,0x1
blez v0,0x000c15ec
_sw v1,0x54(sp)
lw v0,0x38(sp)
or s7,t1,zero
addu v0,v0,t1
sw v0,0x48(sp)
lw v0,0x54(sp)
subu v0,v0,t1
sw v0,0x4c(sp)
lw v0,0x4c(sp)
li a1,0x5a
or a3,s7,zero
or a2,s4,zero
addu v0,v0,s7
or a0,s3,zero
or t9,s1,zero
jalr t9
_sw v0,0x10(sp)
addiu s7,s7,0x1
lw v0,0x48(sp)
bne s7,v0,0x000c15bc
_lw v0,0x4c(sp)
lw v0,0x38(sp)
li a1,0x57
lw a3,0x58(sp)
or a0,s3,zero
lw a2,0x54(sp)
or t9,s1,zero
jalr t9
_sw v0,0x10(sp)
li a2,-0x9
lw gp,0x20(sp)
or s7,v0,zero
lw a1,0x5c(sp)
lw t9,-0x7ef0(gp)
addiu t9,t9,-0x5958
jalr t9
_or a0,s3,zero
addiu a2,s7,0x2
or a3,zero,zero
li a1,0x10
sw a2,0x10(sp)
or t9,s1,zero
jalr t9
_or a0,s3,zero
li a1,0x4e
lw v1,0x38(sp)
or a0,s3,zero
lw a3,0x58(sp)
or t9,s1,zero
lw a2,0x54(sp)
addiu v1,v1,-0x1
sw v0,0x38(sp)
jalr t9
_sw v1,0x10(sp)
li v0,0x52
lw v1,0x50(sp)
lw gp,0x20(sp)
beq v1,v0,0x000c1498
_lw t0,0x38(sp)
or v0,zero,zero
b 0x000c14a0
_or v1,zero,zero
b 0x000c0f40
_addiu v0,v0,-0x4514
lw v0,0x6c(s3)
or a3,zero,zero
lw t9,-0x7e9c(gp)
or a2,s4,zero
lw v1,0x60(sp)
or a1,s0,zero
sw v0,0x40(sp)
or a0,s2,zero
lw v0,0x44(sp)
addiu t9,t9,-0x7af4
sw v1,0x14(sp)
jalr t9
_sw v0,0x10(sp)
li a1,0x5
lw v0,0x40(sp)
or a2,s4,zero
or a0,s3,zero
sw zero,0x10(sp)
or t9,s1,zero
jalr t9
_or a3,v0,zero
li a1,0x24
sw zero,0x10(sp)
or a3,s8,zero
or a2,s4,zero
or t9,s1,zero
jalr t9
_or a0,s3,zero
lw v0,0x6c(s3)
lw gp,0x20(sp)
bne s7,zero,0x000c0e28
_sw v0,0x40(sp)
lw s7,-0x7e9c(gp)
b 0x000c0e58
_addiu s7,s7,-0x7508
lw s7,-0x7e9c(gp)
addiu s7,s7,-0x7508
lw v0,0x44(sp)
or a3,zero,zero
lw t9,-0x7e9c(gp)
or a2,s4,zero
or a1,s0,zero
sw v0,0x10(sp)
or a0,s2,zero
lw v0,0x60(sp)
addiu t9,t9,-0x7af4
jalr t9
_sw v0,0x14(sp)
b 0x000c0e5c
_li a3,0x1
lw v0,0x38(s2)
li v1,0x55
addiu s7,v0,-0x1
sw s7,0x38(s2)
lbu v0,0xd(s0)
beq v0,v1,0x000c1dec
_lw a2,0x38(sp)
li v1,0x53
beq v0,v1,0x000c1ab0
_lw a3,0x6c(s3)
addiu a3,a3,0x1
sw zero,0x10(sp)
li a1,0x5
or a2,s4,zero
or t9,s1,zero
jalr t9
_or a0,s3,zero
lw v0,0x34(sp)
li a3,0x1
lw t9,0x48(sp)
or a1,s0,zero
or a0,s2,zero
sw v0,0x10(sp)
or a2,s4,zero
lw v0,0x60(sp)
jalr t9
_sw v0,0x14(sp)
or a1,s7,zero
lw t9,0x2c(sp)
jalr t9
_or a0,s3,zero
b 0x000c13e0
_lw gp,0x20(sp)
lbu a0,0xc(s0)
li v0,0x56
beq a0,v0,0x000c1540
_lw v0,0x50(sp)
beq v0,v1,0x000c1494
_lw s7,-0x7e9c(gp)
or a2,s5,zero
lw v0,0xa0(sp)
or a1,s0,zero
lw a3,0x9c(sp)
or a0,s2,zero
addiu s7,s7,-0x7508
sw zero,0x18(sp)
sw zero,0x14(sp)
or t9,s7,zero
jalr t9
_sw v0,0x10(sp)
b 0x000c0e4c
_lw gp,0x20(sp)
b 0x000c1318
_addiu v0,v0,-0x4514
lw a3,0x38(sp)
or a2,zero,zero
li a1,0x4b
sw zero,0x10(sp)
or t9,s1,zero
jalr t9
_or a0,s3,zero
or a2,zero,zero
lw gp,0x20(sp)
or a0,s3,zero
lw a1,-0x7fc8(gp)
lw t9,-0x7ef0(gp)
addiu t9,t9,-0x5958
jalr t9
_addiu a1,a1,0x53f4
b 0x000c0b9c
_lw s4,0x3c(sp)
bltz v0,0x000c1c40
_lw a0,0x6c(s3)
lw v0,0x0(s3)
lbu v0,0x51(v0)
beq v0,zero,0x000c1b30
_lw v0,-0x7fd8(gp)
addiu v0,v0,-0x4514
b 0x000c13f0
_sw a0,0x8(v0)
lw v0,-0x7e9c(gp)
or a3,zero,zero
lw a1,0x34(sp)
or a2,zero,zero
lw s8,0x40(s0)
or a0,s2,zero
addiu t9,v0,-0x7fc4
lw s7,0x0(s5)
sw t9,0x44(sp)
jalr t9
_addu s8,s4,s8
li a1,0x57
lw v1,0x40(sp)
or a2,s8,zero
lw a3,0x38(s0)
or a0,s3,zero
or t9,s1,zero
sw v0,0x30(sp)
jalr t9
_sw v1,0x10(sp)
li a2,-0x9
lw gp,0x20(sp)
or s8,v0,zero
lw t0,0x30(sp)
or a0,s3,zero
lw v0,-0x7ef0(gp)
or a1,t0,zero
addiu t9,v0,-0x5958
jalr t9
_sw t9,0x34(sp)
addiu a2,s8,0x2
or a3,zero,zero
li a1,0x10
sw a2,0x10(sp)
or t9,s1,zero
jalr t9
_or a0,s3,zero
li a2,0x1
lw gp,0x20(sp)
or a1,s0,zero
or a0,s2,zero
lw s8,-0x7ea0(gp)
addiu s8,s8,-0x2764
or t9,s8,zero
jalr t9
_sw v0,0x30(sp)
or a3,zero,zero
li a1,0xb
sw zero,0x10(sp)
or a2,zero,zero
or t9,s1,zero
jalr t9
_or a0,s3,zero
lw t1,0x30(sp)
or t0,v0,zero
lw gp,0x20(sp)
lw a1,0x40(s0)
beq t1,zero,0x000c19b0
_lw a3,0x38(s0)
bltz t1,0x000c1c4c
_lw a2,0x6c(s3)
lw v0,0x0(s3)
lbu v0,0x51(v0)
beq v0,zero,0x000c1b50
_sll a0,t1,0x2
lw v0,-0x7fd8(gp)
addiu v0,v0,-0x4514
sw a2,0x8(v0)
lw v1,0x40(sp)
li v0,0x56
lbu a0,0xc(s0)
addu v1,v1,s7
beq a0,v0,0x000c1f0c
_sw v1,0x30(sp)
or s7,zero,zero
lbu a2,0xd(s0)
or a1,s0,zero
sw t0,0x34(sp)
or a0,s2,zero
or t9,s8,zero
xori a2,a2,0x52
jalr t9
_sltiu a2,a2,0x1
lw t0,0x34(sp)
beq t0,zero,0x000c0a80
_lw gp,0x20(sp)
bltz t0,0x000c1c54
_lw a0,0x6c(s3)
lw v0,0x0(s3)
lbu v0,0x51(v0)
beq v0,zero,0x000c1b68
_sll v1,t0,0x2
lw v0,-0x7fd8(gp)
addiu v0,v0,-0x4514
b 0x000c0a80
_sw a0,0x8(v0)
beq s5,zero,0x000c1c5c
_li v0,0x56
lw v1,0x0(s5)
lbu a0,0xc(s0)
beq a0,v0,0x000c1e40
_sw v1,0x30(sp)
lw s8,-0x7ea0(gp)
or a1,s0,zero
lbu a2,0xd(s0)
or a0,s2,zero
or s7,zero,zero
addiu s8,s8,-0x2764
xori a2,a2,0x52
or t9,s8,zero
jalr t9
_sltiu a2,a2,0x1
b 0x000c0a84
_lw a3,0x6c(s3)
lw v0,0x40(sp)
bltz v0,0x000c1a78
_addiu a0,a1,-0x1
lw a0,0x40(sp)
lw v0,0x0(s3)
lbu v0,0x51(v0)
bne v0,zero,0x000c1e10
_sll v1,a0,0x2
lw v0,0x68(s3)
addu v1,v1,a0
sll v1,v1,0x2
addu v0,v0,v1
sw a1,0x8(v0)
b 0x000c132c
_lbu v0,0xe(s0)
addiu v0,v0,-0x4514
b 0x000c0e4c
_sw a0,0x8(v0)
addiu a3,a3,0x2
sw zero,0x10(sp)
li a1,0x5
or a2,s4,zero
or t9,s1,zero
jalr t9
_or a0,s3,zero
or a2,zero,zero
li a1,0xb
sw zero,0x10(sp)
or a3,s7,zero
or t9,s1,zero
jalr t9
_or a0,s3,zero
b 0x000c17a8
_lw v0,0x34(sp)
lw v0,0x68(s3)
addu v1,v1,s7
sll v1,v1,0x2
addu v0,v0,v1
b 0x000c0b50
_sw a0,0x8(v0)
lw a2,0x3c(sp)
or a3,zero,zero
li a1,0x2f
sw v0,0x10(sp)
or t9,s1,zero
jalr t9
_or a0,s3,zero
lw a3,0x6c(s3)
b 0x000c1268
_sw v0,0x40(sp)
lw a1,0x40(sp)
lw v0,0x68(s3)
sll v1,a1,0x2
addu v1,v1,a1
sll v1,v1,0x2
addu v0,v0,v1
b 0x000c13f0
_sw a0,0x8(v0)
lw v0,0x68(s3)
addu a0,a0,t1
sll a0,a0,0x2
addu v0,v0,a0
b 0x000c19b0
_sw a2,0x8(v0)
lw v0,0x68(s3)
addu v1,v1,t0
sll v1,v1,0x2
addu v0,v0,v1
b 0x000c0a80
_sw a0,0x8(v0)
lw a3,0x6c(s3)
lw s8,0x3c(sp)
or a0,s3,zero
lw a2,0x38(sp)
or t9,s1,zero
addiu a3,a3,0x2
jalr t9
_sw s8,0x10(sp)
li a1,0x4e
lw a2,0x60(sp)
or a0,s3,zero
lw a3,0x38(sp)
or t9,s1,zero
jalr t9
_sw zero,0x10(sp)
li a1,0x61
lw a2,0x38(sp)
or a3,s8,zero
sw s8,0x10(sp)
or t9,s1,zero
jalr t9
_or a0,s3,zero
b 0x000c1180
_lw gp,0x20(sp)
lw a3,0x6c(s3)
lw s8,0x3c(sp)
or a0,s3,zero
lw a2,0x38(sp)
or t9,s1,zero
addiu a3,a3,0x3
jalr t9
_sw s8,0x10(sp)
li a1,0x4e
lw a2,0x60(sp)
or a0,s3,zero
lw a3,0x38(sp)
or t9,s1,zero
jalr t9
_sw zero,0x10(sp)
li a1,0x4e
lw a2,0x60(sp)
or a3,s8,zero
sw zero,0x10(sp)
or t9,s1,zero
jalr t9
_or a0,s3,zero
b 0x000c1198
_lw gp,0x20(sp)
addiu v0,a0,-0x1
b 0x000c1884
_sw v0,0x40(sp)
b 0x000c1994
_addiu t1,a2,-0x1
b 0x000c1a00
_addiu t0,a0,-0x1
lw s8,-0x7ea0(gp)
b 0x000c0b50
_addiu s8,s8,-0x2764
li v0,0x1
lw a2,0x38(sp)
or a3,zero,zero
li a1,0x2f
sw v0,0x10(sp)
or t9,s1,zero
jalr t9
_or a0,s3,zero
or a2,zero,zero
lw gp,0x20(sp)
or a1,s0,zero
sw v0,0x3c(sp)
lw t9,-0x7ea0(gp)
addiu t9,t9,-0x2764
jalr t9
_or a0,s2,zero
or a1,s0,zero
lw gp,0x20(sp)
or a0,s2,zero
lw a3,0xa0(sp)
lw t9,-0x7ea0(gp)
addiu t9,t9,-0x2524
jalr t9
_lw a2,0x9c(sp)
li a1,0x5
lw a3,0x6c(s3)
or a0,s3,zero
lw a2,0x24(s0)
or t9,s1,zero
sw zero,0x10(sp)
jalr t9
_addiu a3,a3,0x2
or a2,zero,zero
li a1,0xb
sw zero,0x10(sp)
or a3,s5,zero
or t9,s1,zero
jalr t9
_or a0,s3,zero
lbu v1,0xd(s0)
bne v1,s7,0x000c13c8
_lw gp,0x20(sp)
lw t0,0x3c(sp)
bgez t0,0x000c1d20
_lw a0,0x6c(s3)
addiu t0,a0,-0x1
lw v0,0x0(s3)
lbu v0,0x51(v0)
bne v0,zero,0x000c1ddc
_lw v0,-0x7fd8(gp)
sll v1,t0,0x2
lw v0,0x68(s3)
addu v1,v1,t0
sll v1,v1,0x2
addu v0,v0,v1
sw a0,0x8(v0)
b 0x000c13c8
_lbu v1,0xd(s0)
or a2,zero,zero
sw zero,0x10(sp)
li a1,0xb
or a3,s8,zero
or t9,s1,zero
jalr t9
_or a0,s3,zero
lw gp,0x20(sp)
bgez s7,0x000c1d7c
_lw s8,0x6c(s3)
addiu s7,s8,-0x1
lw v0,0x0(s3)
lbu v0,0x51(v0)
bne v0,zero,0x000c1e2c
_sll a0,s7,0x2
lw v0,0x68(s3)
addu v1,a0,s7
sll v1,v1,0x2
addu v0,v0,v1
sw s8,0x8(v0)
b 0x000c132c
_lbu v0,0xe(s0)
lw a2,0x3c(sp)
or a3,zero,zero
li a1,0x2f
sw v0,0x10(sp)
or t9,s1,zero
jalr t9
_or a0,s3,zero
lw gp,0x20(sp)
b 0x000c1338
_sw v0,0x40(sp)
lw a0,0x6c(s3)
b 0x000c1d20
_or t0,zero,zero
addiu v0,v0,-0x4514
sw a0,0x8(v0)
b 0x000c13c8
_lbu v1,0xd(s0)
li v0,0x1
li a1,0x2f
sw v0,0x10(sp)
or a3,s7,zero
or t9,s1,zero
jalr t9
_or a0,s3,zero
b 0x000c177c
_lbu v0,0xd(s0)
lw v0,-0x7fd8(gp)
addiu v0,v0,-0x4514
sw a1,0x8(v0)
b 0x000c132c
_lbu v0,0xe(s0)
b 0x000c1554
_or v0,zero,zero
lw v0,-0x7fd8(gp)
addiu v0,v0,-0x4514
sw s8,0x8(v0)
b 0x000c132c
_lbu v0,0xe(s0)
lw v0,-0x7e9c(gp)
or t0,zero,zero
lw t1,0x40(s0)
or s7,v1,zero
lw s8,-0x7ea0(gp)
addiu v0,v0,-0x7fc4
lw t2,0x38(s0)
addu t1,s4,t1
sw v0,0x44(sp)
addiu s8,s8,-0x2764
lw v0,-0x7ef0(gp)
addiu v0,v0,-0x5958
sw v0,0x34(sp)
lw t9,0x44(sp)
or a3,zero,zero
or a2,zero,zero
sw t0,0x40(sp)
or a1,s5,zero
sw t2,0x4c(sp)
sw t1,0x48(sp)
jalr t9
_or a0,s2,zero
li a1,0x57
lw t2,0x4c(sp)
or a0,s3,zero
lw t1,0x48(sp)
or t9,s1,zero
sw s7,0x10(sp)
or s5,v0,zero
or a3,t2,zero
jalr t9
_or a2,t1,zero
li a2,-0x9
lw t9,0x34(sp)
or s7,v0,zero
or a1,s5,zero
jalr t9
_or a0,s3,zero
addiu a2,s7,0x2
or a3,zero,zero
li a1,0x10
sw a2,0x10(sp)
or t9,s1,zero
jalr t9
_or a0,s3,zero
or s7,v0,zero
b 0x000c19cc
_lw t0,0x40(sp)
lw s1,-0x7ea0(gp)
b 0x000c09bc
_addiu s1,s1,-0x3890
lw v0,0x40(sp)
addu a1,s4,a1
addu t2,v0,a3
b 0x000c1e74
_addu t1,a1,v0
lw s1,-0x7ea0(gp)
lw s8,-0x7ea0(gp)
addiu s1,s1,-0x3890
b 0x000c0b50
_addiu s8,s8,-0x2764
lw t9,-0x7ba0(gp)
jalr t9
_nop
(translation_unit "void FUN_000c082c(int param_1,int param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5)\n\n{\n  bool bVar1;\n  uint uVar2;\n  undefined *puVar3;\n  undefined4 uVar4;\n  int iVar5;\n  char cVar10;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  int *piVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  code *pcVar15;\n  int *piVar16;\n  int iVar17;\n  int iVar18;\n  int *piVar19;\n  int iVar20;\n  code *pcVar21;\n  undefined *puVar22;\n  int iVar23;\n  code *pcVar24;\n  int local_60;\n  code *local_5c;\n  int local_58;\n  int local_50;\n  code *local_4c;\n  int *local_48;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar22 = PTR___stack_chk_guard_0015ba2c;\n  iVar14 = *(int *)(param_2 + 0x44);\n  local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  uVar2 = *(uint *)(iVar14 + 0xc) & 0xffff00;\n  if (*(char *)(iVar14 + 0xc) == 'L') {\n    if ((uVar2 == 0x575200) && (*(int *)(iVar14 + 8) != 0)) goto LAB_000c08b4;\n    piVar11 = *(int **)(param_1 + 8);\n    if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n    }\n    puVar3 = PTR_LAB_0015b714;\n    iVar20 = *(int *)(param_1 + 0x28);\n    iVar18 = *(int *)(param_1 + 0x2c);\n    iVar17 = iVar18 + 3;\n    iVar23 = *(int *)(param_1 + 0x38) + -2;\n    *(int *)(param_1 + 0x28) = iVar20 + 2;\n    iVar12 = *(int *)(param_1 + 0x38) + -1;\n    iVar5 = iVar18 + 1;\n    *(int *)(param_1 + 0x2c) = iVar17;\n    *(int *)(param_1 + 0x38) = iVar23;\n    iVar18 = iVar18 + 2;\n    iVar9 = iVar20 + 1;\n    local_30 = 0;\n    (*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar12,&local_30\n              );\n    pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    local_60 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar24)(piVar11,iVar12);\n    (*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 3,0);\n    (*pcVar15)(piVar11,0x6f,iVar20,*(undefined4 *)(iVar14 + 0x24),0);\n    (*pcVar15)(piVar11,0x6f,iVar9,*(undefined4 *)(iVar14 + 0x24),0);\n    if (*(int *)(iVar14 + 0x10) != 0) {\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x10),iVar18);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar18,0);\n    }\n    if (*(int *)(iVar14 + 0x14) != 0) {\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x14),iVar17);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar17,1);\n      if ((*(int *)(iVar14 + 0x14) != 0) && (*(char *)(iVar14 + 0xd) == 'S')) {\n        (*pcVar15)(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17);\n        (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n        (*pcVar15)(piVar11,0x61,iVar18,iVar17,iVar17);\n      }\n    }\n    if ((*(int *)(iVar14 + 0x10) != 0) && (*(char *)(iVar14 + 0xe) == 'U')) {\n      (*pcVar15)(piVar11,0x37,iVar18,piVar11[0x1b] + 3,iVar17);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar17,0);\n    }\n    uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);\n    (*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar23,0);\n    (*pcVar15)(piVar11,0x24,iVar20,iVar23,0);\n    if (0 < piVar11[0x1b]) {\n      *(undefined2 *)(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12) = 1;\n    }\n    (*pcVar15)(piVar11,0x24,iVar9,iVar23,0);\n    iVar12 = piVar11[0x1b];\n    if (0 < iVar12) {\n      *(undefined2 *)(piVar11[0x1a] + iVar12 * 0x14 + -0x12) = 1;\n      iVar12 = piVar11[0x1b];\n    }\n    if (*(char *)(iVar14 + 0xe) == 'U') {\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n      iVar13 = piVar11[0x1b];\n    }\n    else {\n      local_50 = 0;\n      iVar13 = iVar12;\n    }\n    (*pcVar15)(piVar11,5,iVar9,iVar13 + 2,0);\n    iVar13 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7af4);\n    (*pcVar21)(param_1,iVar14,iVar9,0,uVar4,local_30);\n    if (*(char *)(iVar14 + 0xe) == 'W') {\n      (*pcVar15)(piVar11,0xb,0,iVar12,0);\n      iVar12 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar12 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n    }\n    else {\n      iVar9 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar9 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14);\n      }\n      else {\n        puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n      }\n      *(int *)(puVar3 + 8) = iVar9;\n      cVar10 = *(char *)(iVar14 + 0xe);\n      if (cVar10 == 'U') {\n        iVar13 = iVar9 + -1;\n        if (-1 < local_50) {\n          iVar13 = local_50;\n        }\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n      }\n    }\n    if (cVar10 == 'S') {\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n    }\n    if (*(char *)(iVar14 + 0xd) == 'S') {\n      iVar17 = (*pcVar15)(piVar11,0x2f,iVar18,0,1);\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        if (iVar17 < 0) {\n          iVar17 = iVar9 + -1;\n        }\n        goto LAB_000c1d20;\n      }\n    }\n    else {\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        iVar17 = 0;\nLAB_000c1d20:\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n      }\n    }\n    if ((uVar2 - 0x52 < 2) || (uVar2 == 0x55)) {\n      iVar17 = *(int *)(param_1 + 0x38) + -1;\n      *(int *)(param_1 + 0x38) = iVar17;\n      cVar10 = *(char *)(iVar14 + 0xd);\n      if (cVar10 == 'U') {\n        (*pcVar15)(piVar11,0x2f,iVar18,iVar17,1);\n        cVar10 = *(char *)(iVar14 + 0xd);\n      }\n      if (cVar10 == 'S') {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 2,0);\n        (*pcVar15)(piVar11,0xb,0,iVar17,0);\n      }\n      else {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0);\n      }\n      (*pcVar21)(param_1,iVar14,iVar20,1,uVar4,local_30);\n      (*pcVar24)(piVar11,iVar17);\n    }\n    if (*(char *)(iVar14 + 0xe) == 'S') {\n      iVar18 = piVar11[0x1b];\n      if (local_50 < 0) {\n        local_50 = iVar18 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + local_50 * 0x14 + 8) = iVar18;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n      }\n    }\n    (*pcVar15)(piVar11,0xb,0,iVar12,0);\n    (*pcVar24)(piVar11,iVar23);\n    (*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n  }\n  else {\n    if (uVar2 != 0x525700) {\nLAB_000c08b4:\n      iVar18 = iVar14;\n      do {\n        if (((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        iVar18 = *(int *)(iVar18 + 0x18);\n      } while (iVar18 != 0);\n      piVar16 = *(int **)(param_1 + 8);\n      if (piVar16 == (int *)0x0) {\n        piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      }\n      piVar11 = *(int **)(iVar14 + 4);\n      iVar17 = *(int *)(param_1 + 0x2c) + 1;\n      uVar4 = *(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30);\n      iVar20 = (int)*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a);\n      iVar18 = iVar20 + iVar17;\n      iVar5 = iVar20 + 2 + *(int *)(param_1 + 0x2c);\n      if (*(char *)(iVar14 + 0xe) == 'W') {\n        *(int *)(param_1 + 0x2c) = iVar5;\n        piVar19 = (int *)0x0;\n        if (0 < iVar20) goto LAB_000c0980;\n        if (piVar11 != (int *)0x0) {\n          local_50 = *piVar11;\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }\n      else {\n        piVar19 = *(int **)(iVar14 + 8);\n        *(int *)(param_1 + 0x2c) = iVar5;\n        if (iVar20 < 1) {\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }\n        puVar3 = PTR_LAB_0015b714;\n        if (piVar11 == (int *)0x0) {\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }\n        else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }\n        (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);\n        (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n        (*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);\n        (*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n        (*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1);\n        if (iVar5 != 0) {\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }\n      }\nLAB_000c0b50:\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,0xffffffff,0,iVar17,0);\n      if (*(int *)(iVar14 + 0x40) < 1) {\n        (*pcVar15)(piVar16,0x4b,0,iVar18,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }\n      else {\n        (*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);\n      }\n      (*pcVar15)(piVar16,0x79,*(undefined4 *)(iVar14 + 0x24),iVar18 + 1,0);\n      (*pcVar15)(piVar16,0x7a,*(undefined4 *)(iVar14 + 0x24),iVar18,iVar18 + 1);\n      (*(code *)(PTR_LAB_0015b710 + -0x18cc))(param_3);\n      (*pcVar24)(param_1,iVar14,1);\n      (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + 3,0);\n      (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n      iVar18 = 5;\n      iVar5 = *(int *)(iVar14 + 0x24);\n      (*pcVar15)(piVar16,5,iVar5,piVar16[0x1b] + -1,0);\n      goto LAB_000c0f44;\n    }\nLAB_000c0c60:\n    piVar11 = *(int **)(param_1 + 8);\n    if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      piVar16 = *(int **)(iVar14 + 8);\n      local_48 = *(int **)(iVar14 + 4);\n      if (piVar16 != (int *)0x0) goto LAB_000c0c7c;\nLAB_000c1450:\n      local_58 = 0;\n      bVar1 = false;\n    }\n    else {\n      local_48 = *(int **)(iVar14 + 4);\n      piVar16 = *(int **)(iVar14 + 8);\n      if (piVar16 == (int *)0x0) goto LAB_000c1450;\nLAB_000c0c7c:\n      local_58 = *piVar16;\n      bVar1 = (*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700;\n    }\n    puVar3 = PTR_LAB_0015b714;\n    iVar18 = *(int *)(param_1 + 0x2c);\n    iVar23 = *(int *)(param_1 + 0x28);\n    iVar17 = *(int *)(param_1 + 0x38);\n    iVar5 = iVar18 + local_58;\n    iVar9 = iVar5 + 2;\n    iVar20 = iVar17 + -2;\n    *(int *)(param_1 + 0x28) = iVar23 + 1;\n    iVar5 = iVar5 + 1;\n    *(int *)(param_1 + 0x38) = iVar20;\n    *(int *)(param_1 + 0x2c) = iVar9;\n    iVar17 = iVar17 + -1;\n    (*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar20,&local_30\n              );\n    pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    local_60 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar24)(piVar11,iVar20);\n    (*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 2,0);\n    (*pcVar15)(piVar11,0x6f,iVar23,*(undefined4 *)(iVar14 + 0x24),0);\n    uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);\n    (*pcVar15)(piVar11,0x46,0,iVar9,0);\n    (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n    (*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar17,0);\n    if (bVar1) {\n      iVar20 = piVar11[0x1b];\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n      (*pcVar15)(piVar11,5,iVar23,iVar20,0);\n      (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n      local_50 = piVar11[0x1b];\n      if (piVar16 != (int *)0x0) goto LAB_000c0e28;\n      pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n    }\n    else {\n      local_50 = piVar11[0x1b];\n      if (piVar16 == (int *)0x0) {\n        pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);\n        uVar6 = uVar4;\n        if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n    }\nLAB_000c0e5c:\n    (*pcVar15)(piVar11,0x53,iVar9,1,0);\n    (*pcVar15)(piVar11,5,iVar23,local_50,0);\n    (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n    (*pcVar24)(piVar11,iVar17);\n    (*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n  }\n  iVar18 = 0x42;\n  (*pcVar15)(piVar11,0x42,iVar5,0,0);\n  piVar16 = (int *)piVar11[0x1b];\n  if (local_60 < 0) {\n    local_60 = (int)piVar16 + -1;\n  }\n  if (*(char *)(*piVar11 + 0x51) == '\0') {\n    puVar3 = (undefined *)(piVar11[0x1a] + local_60 * 0x14);\n    iVar18 = local_60;\n  }\n  else {\n    puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n  }\n  *(int **)(puVar3 + 8) = piVar16;\nLAB_000c0f44:\n  if (local_2c == *(int *)puVar22) {\n    return;\n  }\n  puVar22 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  iVar14 = *piVar16;\n  if (iVar18 == 0) {\n    if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8();\n      return;\n    }\n  }\n  else {\n    iVar18 = (*(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c))(iVar14);\n    if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8(piVar16,iVar18,iVar5);\n    }\n    if (iVar18 != 0) {\n                    /* WARNING: Could not recover jumptable at 0x000c1fc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4))(iVar14,iVar18);\n      return;\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_000c082c(int param_1,int param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5)\n\n{\n  bool bVar1;\n  uint uVar2;\n  undefined *puVar3;\n  undefined4 uVar4;\n  int iVar5;\n  char cVar10;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  int *piVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  code *pcVar15;\n  int *piVar16;\n  int iVar17;\n  int iVar18;\n  int *piVar19;\n  int iVar20;\n  code *pcVar21;\n  undefined *puVar22;\n  int iVar23;\n  code *pcVar24;\n  int local_60;\n  code *local_5c;\n  int local_58;\n  int local_50;\n  code *local_4c;\n  int *local_48;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar22 = PTR___stack_chk_guard_0015ba2c;\n  iVar14 = *(int *)(param_2 + 0x44);\n  local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  uVar2 = *(uint *)(iVar14 + 0xc) & 0xffff00;\n  if (*(char *)(iVar14 + 0xc) == 'L') {\n    if ((uVar2 == 0x575200) && (*(int *)(iVar14 + 8) != 0)) goto LAB_000c08b4;\n    piVar11 = *(int **)(param_1 + 8);\n    if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n    }\n    puVar3 = PTR_LAB_0015b714;\n    iVar20 = *(int *)(param_1 + 0x28);\n    iVar18 = *(int *)(param_1 + 0x2c);\n    iVar17 = iVar18 + 3;\n    iVar23 = *(int *)(param_1 + 0x38) + -2;\n    *(int *)(param_1 + 0x28) = iVar20 + 2;\n    iVar12 = *(int *)(param_1 + 0x38) + -1;\n    iVar5 = iVar18 + 1;\n    *(int *)(param_1 + 0x2c) = iVar17;\n    *(int *)(param_1 + 0x38) = iVar23;\n    iVar18 = iVar18 + 2;\n    iVar9 = iVar20 + 1;\n    local_30 = 0;\n    (*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar12,&local_30\n              );\n    pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    local_60 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar24)(piVar11,iVar12);\n    (*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 3,0);\n    (*pcVar15)(piVar11,0x6f,iVar20,*(undefined4 *)(iVar14 + 0x24),0);\n    (*pcVar15)(piVar11,0x6f,iVar9,*(undefined4 *)(iVar14 + 0x24),0);\n    if (*(int *)(iVar14 + 0x10) != 0) {\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x10),iVar18);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar18,0);\n    }\n    if (*(int *)(iVar14 + 0x14) != 0) {\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x14),iVar17);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar17,1);\n      if ((*(int *)(iVar14 + 0x14) != 0) && (*(char *)(iVar14 + 0xd) == 'S')) {\n        (*pcVar15)(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17);\n        (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n        (*pcVar15)(piVar11,0x61,iVar18,iVar17,iVar17);\n      }\n    }\n    if ((*(int *)(iVar14 + 0x10) != 0) && (*(char *)(iVar14 + 0xe) == 'U')) {\n      (*pcVar15)(piVar11,0x37,iVar18,piVar11[0x1b] + 3,iVar17);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar17,0);\n    }\n    uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);\n    (*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar23,0);\n    (*pcVar15)(piVar11,0x24,iVar20,iVar23,0);\n    if (0 < piVar11[0x1b]) {\n      *(undefined2 *)(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12) = 1;\n    }\n    (*pcVar15)(piVar11,0x24,iVar9,iVar23,0);\n    iVar12 = piVar11[0x1b];\n    if (0 < iVar12) {\n      *(undefined2 *)(piVar11[0x1a] + iVar12 * 0x14 + -0x12) = 1;\n      iVar12 = piVar11[0x1b];\n    }\n    if (*(char *)(iVar14 + 0xe) == 'U') {\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n      iVar13 = piVar11[0x1b];\n    }\n    else {\n      local_50 = 0;\n      iVar13 = iVar12;\n    }\n    (*pcVar15)(piVar11,5,iVar9,iVar13 + 2,0);\n    iVar13 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7af4);\n    (*pcVar21)(param_1,iVar14,iVar9,0,uVar4,local_30);\n    if (*(char *)(iVar14 + 0xe) == 'W') {\n      (*pcVar15)(piVar11,0xb,0,iVar12,0);\n      iVar12 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar12 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n    }\n    else {\n      iVar9 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar9 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14);\n      }\n      else {\n        puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n      }\n      *(int *)(puVar3 + 8) = iVar9;\n      cVar10 = *(char *)(iVar14 + 0xe);\n      if (cVar10 == 'U') {\n        iVar13 = iVar9 + -1;\n        if (-1 < local_50) {\n          iVar13 = local_50;\n        }\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n      }\n    }\n    if (cVar10 == 'S') {\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n    }\n    if (*(char *)(iVar14 + 0xd) == 'S') {\n      iVar17 = (*pcVar15)(piVar11,0x2f,iVar18,0,1);\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        if (iVar17 < 0) {\n          iVar17 = iVar9 + -1;\n        }\n        goto LAB_000c1d20;\n      }\n    }\n    else {\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        iVar17 = 0;\nLAB_000c1d20:\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n      }\n    }\n    if ((uVar2 - 0x52 < 2) || (uVar2 == 0x55)) {\n      iVar17 = *(int *)(param_1 + 0x38) + -1;\n      *(int *)(param_1 + 0x38) = iVar17;\n      cVar10 = *(char *)(iVar14 + 0xd);\n      if (cVar10 == 'U') {\n        (*pcVar15)(piVar11,0x2f,iVar18,iVar17,1);\n        cVar10 = *(char *)(iVar14 + 0xd);\n      }\n      if (cVar10 == 'S') {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 2,0);\n        (*pcVar15)(piVar11,0xb,0,iVar17,0);\n      }\n      else {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0);\n      }\n      (*pcVar21)(param_1,iVar14,iVar20,1,uVar4,local_30);\n      (*pcVar24)(piVar11,iVar17);\n    }\n    if (*(char *)(iVar14 + 0xe) == 'S') {\n      iVar18 = piVar11[0x1b];\n      if (local_50 < 0) {\n        local_50 = iVar18 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + local_50 * 0x14 + 8) = iVar18;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n      }\n    }\n    (*pcVar15)(piVar11,0xb,0,iVar12,0);\n    (*pcVar24)(piVar11,iVar23);\n    (*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n  }\n  else {\n    if (uVar2 != 0x525700) {\nLAB_000c08b4:\n      iVar18 = iVar14;\n      do {\n        if (((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        iVar18 = *(int *)(iVar18 + 0x18);\n      } while (iVar18 != 0);\n      piVar16 = *(int **)(param_1 + 8);\n      if (piVar16 == (int *)0x0) {\n        piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      }\n      piVar11 = *(int **)(iVar14 + 4);\n      iVar17 = *(int *)(param_1 + 0x2c) + 1;\n      uVar4 = *(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30);\n      iVar20 = (int)*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a);\n      iVar18 = iVar20 + iVar17;\n      iVar5 = iVar20 + 2 + *(int *)(param_1 + 0x2c);\n      if (*(char *)(iVar14 + 0xe) == 'W') {\n        *(int *)(param_1 + 0x2c) = iVar5;\n        piVar19 = (int *)0x0;\n        if (0 < iVar20) goto LAB_000c0980;\n        if (piVar11 != (int *)0x0) {\n          local_50 = *piVar11;\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }\n      else {\n        piVar19 = *(int **)(iVar14 + 8);\n        *(int *)(param_1 + 0x2c) = iVar5;\n        if (iVar20 < 1) {\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }\n        puVar3 = PTR_LAB_0015b714;\n        if (piVar11 == (int *)0x0) {\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }\n        else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }\n        (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);\n        (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n        (*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);\n        (*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n        (*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1);\n        if (iVar5 != 0) {\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }\n      }\nLAB_000c0b50:\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,0xffffffff,0,iVar17,0);\n      if (*(int *)(iVar14 + 0x40) < 1) {\n        (*pcVar15)(piVar16,0x4b,0,iVar18,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }\n      else {\n        (*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);\n      }\n      (*pcVar15)(piVar16,0x79,*(undefined4 *)(iVar14 + 0x24),iVar18 + 1,0);\n      (*pcVar15)(piVar16,0x7a,*(undefined4 *)(iVar14 + 0x24),iVar18,iVar18 + 1);\n      (*(code *)(PTR_LAB_0015b710 + -0x18cc))(param_3);\n      (*pcVar24)(param_1,iVar14,1);\n      (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + 3,0);\n      (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n      iVar18 = 5;\n      iVar5 = *(int *)(iVar14 + 0x24);\n      (*pcVar15)(piVar16,5,iVar5,piVar16[0x1b] + -1,0);\n      goto LAB_000c0f44;\n    }\nLAB_000c0c60:\n    piVar11 = *(int **)(param_1 + 8);\n    if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      piVar16 = *(int **)(iVar14 + 8);\n      local_48 = *(int **)(iVar14 + 4);\n      if (piVar16 != (int *)0x0) goto LAB_000c0c7c;\nLAB_000c1450:\n      local_58 = 0;\n      bVar1 = false;\n    }\n    else {\n      local_48 = *(int **)(iVar14 + 4);\n      piVar16 = *(int **)(iVar14 + 8);\n      if (piVar16 == (int *)0x0) goto LAB_000c1450;\nLAB_000c0c7c:\n      local_58 = *piVar16;\n      bVar1 = (*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700;\n    }\n    puVar3 = PTR_LAB_0015b714;\n    iVar18 = *(int *)(param_1 + 0x2c);\n    iVar23 = *(int *)(param_1 + 0x28);\n    iVar17 = *(int *)(param_1 + 0x38);\n    iVar5 = iVar18 + local_58;\n    iVar9 = iVar5 + 2;\n    iVar20 = iVar17 + -2;\n    *(int *)(param_1 + 0x28) = iVar23 + 1;\n    iVar5 = iVar5 + 1;\n    *(int *)(param_1 + 0x38) = iVar20;\n    *(int *)(param_1 + 0x2c) = iVar9;\n    iVar17 = iVar17 + -1;\n    (*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar20,&local_30\n              );\n    pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    local_60 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar24)(piVar11,iVar20);\n    (*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 2,0);\n    (*pcVar15)(piVar11,0x6f,iVar23,*(undefined4 *)(iVar14 + 0x24),0);\n    uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);\n    (*pcVar15)(piVar11,0x46,0,iVar9,0);\n    (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n    (*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar17,0);\n    if (bVar1) {\n      iVar20 = piVar11[0x1b];\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n      (*pcVar15)(piVar11,5,iVar23,iVar20,0);\n      (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n      local_50 = piVar11[0x1b];\n      if (piVar16 != (int *)0x0) goto LAB_000c0e28;\n      pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n    }\n    else {\n      local_50 = piVar11[0x1b];\n      if (piVar16 == (int *)0x0) {\n        pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);\n        uVar6 = uVar4;\n        if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n    }\nLAB_000c0e5c:\n    (*pcVar15)(piVar11,0x53,iVar9,1,0);\n    (*pcVar15)(piVar11,5,iVar23,local_50,0);\n    (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n    (*pcVar24)(piVar11,iVar17);\n    (*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n  }\n  iVar18 = 0x42;\n  (*pcVar15)(piVar11,0x42,iVar5,0,0);\n  piVar16 = (int *)piVar11[0x1b];\n  if (local_60 < 0) {\n    local_60 = (int)piVar16 + -1;\n  }\n  if (*(char *)(*piVar11 + 0x51) == '\0') {\n    puVar3 = (undefined *)(piVar11[0x1a] + local_60 * 0x14);\n    iVar18 = local_60;\n  }\n  else {\n    puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n  }\n  *(int **)(puVar3 + 8) = piVar16;\nLAB_000c0f44:\n  if (local_2c == *(int *)puVar22) {\n    return;\n  }\n  puVar22 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  iVar14 = *piVar16;\n  if (iVar18 == 0) {\n    if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8();\n      return;\n    }\n  }\n  else {\n    iVar18 = (*(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c))(iVar14);\n    if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8(piVar16,iVar18,iVar5);\n    }\n    if (iVar18 != 0) {\n                    /* WARNING: Could not recover jumptable at 0x000c1fc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4))(iVar14,iVar18);\n      return;\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_000c082c(int param_1,int param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5)" identifier (parameter_list "(int param_1,int param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) ))) (compound_statement "{\n  bool bVar1;\n  uint uVar2;\n  undefined *puVar3;\n  undefined4 uVar4;\n  int iVar5;\n  char cVar10;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  int *piVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  code *pcVar15;\n  int *piVar16;\n  int iVar17;\n  int iVar18;\n  int *piVar19;\n  int iVar20;\n  code *pcVar21;\n  undefined *puVar22;\n  int iVar23;\n  code *pcVar24;\n  int local_60;\n  code *local_5c;\n  int local_58;\n  int local_50;\n  code *local_4c;\n  int *local_48;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar22 = PTR___stack_chk_guard_0015ba2c;\n  iVar14 = *(int *)(param_2 + 0x44);\n  local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  uVar2 = *(uint *)(iVar14 + 0xc) & 0xffff00;\n  if (*(char *)(iVar14 + 0xc) == 'L') {\n    if ((uVar2 == 0x575200) && (*(int *)(iVar14 + 8) != 0)) goto LAB_000c08b4;\n    piVar11 = *(int **)(param_1 + 8);\n    if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n    }\n    puVar3 = PTR_LAB_0015b714;\n    iVar20 = *(int *)(param_1 + 0x28);\n    iVar18 = *(int *)(param_1 + 0x2c);\n    iVar17 = iVar18 + 3;\n    iVar23 = *(int *)(param_1 + 0x38) + -2;\n    *(int *)(param_1 + 0x28) = iVar20 + 2;\n    iVar12 = *(int *)(param_1 + 0x38) + -1;\n    iVar5 = iVar18 + 1;\n    *(int *)(param_1 + 0x2c) = iVar17;\n    *(int *)(param_1 + 0x38) = iVar23;\n    iVar18 = iVar18 + 2;\n    iVar9 = iVar20 + 1;\n    local_30 = 0;\n    (*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar12,&local_30\n              );\n    pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    local_60 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar24)(piVar11,iVar12);\n    (*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 3,0);\n    (*pcVar15)(piVar11,0x6f,iVar20,*(undefined4 *)(iVar14 + 0x24),0);\n    (*pcVar15)(piVar11,0x6f,iVar9,*(undefined4 *)(iVar14 + 0x24),0);\n    if (*(int *)(iVar14 + 0x10) != 0) {\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x10),iVar18);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar18,0);\n    }\n    if (*(int *)(iVar14 + 0x14) != 0) {\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x14),iVar17);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar17,1);\n      if ((*(int *)(iVar14 + 0x14) != 0) && (*(char *)(iVar14 + 0xd) == 'S')) {\n        (*pcVar15)(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17);\n        (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n        (*pcVar15)(piVar11,0x61,iVar18,iVar17,iVar17);\n      }\n    }\n    if ((*(int *)(iVar14 + 0x10) != 0) && (*(char *)(iVar14 + 0xe) == 'U')) {\n      (*pcVar15)(piVar11,0x37,iVar18,piVar11[0x1b] + 3,iVar17);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar17,0);\n    }\n    uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);\n    (*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar23,0);\n    (*pcVar15)(piVar11,0x24,iVar20,iVar23,0);\n    if (0 < piVar11[0x1b]) {\n      *(undefined2 *)(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12) = 1;\n    }\n    (*pcVar15)(piVar11,0x24,iVar9,iVar23,0);\n    iVar12 = piVar11[0x1b];\n    if (0 < iVar12) {\n      *(undefined2 *)(piVar11[0x1a] + iVar12 * 0x14 + -0x12) = 1;\n      iVar12 = piVar11[0x1b];\n    }\n    if (*(char *)(iVar14 + 0xe) == 'U') {\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n      iVar13 = piVar11[0x1b];\n    }\n    else {\n      local_50 = 0;\n      iVar13 = iVar12;\n    }\n    (*pcVar15)(piVar11,5,iVar9,iVar13 + 2,0);\n    iVar13 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7af4);\n    (*pcVar21)(param_1,iVar14,iVar9,0,uVar4,local_30);\n    if (*(char *)(iVar14 + 0xe) == 'W') {\n      (*pcVar15)(piVar11,0xb,0,iVar12,0);\n      iVar12 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar12 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n    }\n    else {\n      iVar9 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar9 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14);\n      }\n      else {\n        puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n      }\n      *(int *)(puVar3 + 8) = iVar9;\n      cVar10 = *(char *)(iVar14 + 0xe);\n      if (cVar10 == 'U') {\n        iVar13 = iVar9 + -1;\n        if (-1 < local_50) {\n          iVar13 = local_50;\n        }\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n      }\n    }\n    if (cVar10 == 'S') {\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n    }\n    if (*(char *)(iVar14 + 0xd) == 'S') {\n      iVar17 = (*pcVar15)(piVar11,0x2f,iVar18,0,1);\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        if (iVar17 < 0) {\n          iVar17 = iVar9 + -1;\n        }\n        goto LAB_000c1d20;\n      }\n    }\n    else {\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        iVar17 = 0;\nLAB_000c1d20:\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n      }\n    }\n    if ((uVar2 - 0x52 < 2) || (uVar2 == 0x55)) {\n      iVar17 = *(int *)(param_1 + 0x38) + -1;\n      *(int *)(param_1 + 0x38) = iVar17;\n      cVar10 = *(char *)(iVar14 + 0xd);\n      if (cVar10 == 'U') {\n        (*pcVar15)(piVar11,0x2f,iVar18,iVar17,1);\n        cVar10 = *(char *)(iVar14 + 0xd);\n      }\n      if (cVar10 == 'S') {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 2,0);\n        (*pcVar15)(piVar11,0xb,0,iVar17,0);\n      }\n      else {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0);\n      }\n      (*pcVar21)(param_1,iVar14,iVar20,1,uVar4,local_30);\n      (*pcVar24)(piVar11,iVar17);\n    }\n    if (*(char *)(iVar14 + 0xe) == 'S') {\n      iVar18 = piVar11[0x1b];\n      if (local_50 < 0) {\n        local_50 = iVar18 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + local_50 * 0x14 + 8) = iVar18;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n      }\n    }\n    (*pcVar15)(piVar11,0xb,0,iVar12,0);\n    (*pcVar24)(piVar11,iVar23);\n    (*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n  }\n  else {\n    if (uVar2 != 0x525700) {\nLAB_000c08b4:\n      iVar18 = iVar14;\n      do {\n        if (((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        iVar18 = *(int *)(iVar18 + 0x18);\n      } while (iVar18 != 0);\n      piVar16 = *(int **)(param_1 + 8);\n      if (piVar16 == (int *)0x0) {\n        piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      }\n      piVar11 = *(int **)(iVar14 + 4);\n      iVar17 = *(int *)(param_1 + 0x2c) + 1;\n      uVar4 = *(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30);\n      iVar20 = (int)*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a);\n      iVar18 = iVar20 + iVar17;\n      iVar5 = iVar20 + 2 + *(int *)(param_1 + 0x2c);\n      if (*(char *)(iVar14 + 0xe) == 'W') {\n        *(int *)(param_1 + 0x2c) = iVar5;\n        piVar19 = (int *)0x0;\n        if (0 < iVar20) goto LAB_000c0980;\n        if (piVar11 != (int *)0x0) {\n          local_50 = *piVar11;\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }\n      else {\n        piVar19 = *(int **)(iVar14 + 8);\n        *(int *)(param_1 + 0x2c) = iVar5;\n        if (iVar20 < 1) {\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }\n        puVar3 = PTR_LAB_0015b714;\n        if (piVar11 == (int *)0x0) {\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }\n        else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }\n        (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);\n        (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n        (*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);\n        (*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n        (*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1);\n        if (iVar5 != 0) {\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }\n      }\nLAB_000c0b50:\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,0xffffffff,0,iVar17,0);\n      if (*(int *)(iVar14 + 0x40) < 1) {\n        (*pcVar15)(piVar16,0x4b,0,iVar18,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }\n      else {\n        (*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);\n      }\n      (*pcVar15)(piVar16,0x79,*(undefined4 *)(iVar14 + 0x24),iVar18 + 1,0);\n      (*pcVar15)(piVar16,0x7a,*(undefined4 *)(iVar14 + 0x24),iVar18,iVar18 + 1);\n      (*(code *)(PTR_LAB_0015b710 + -0x18cc))(param_3);\n      (*pcVar24)(param_1,iVar14,1);\n      (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + 3,0);\n      (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n      iVar18 = 5;\n      iVar5 = *(int *)(iVar14 + 0x24);\n      (*pcVar15)(piVar16,5,iVar5,piVar16[0x1b] + -1,0);\n      goto LAB_000c0f44;\n    }\nLAB_000c0c60:\n    piVar11 = *(int **)(param_1 + 8);\n    if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      piVar16 = *(int **)(iVar14 + 8);\n      local_48 = *(int **)(iVar14 + 4);\n      if (piVar16 != (int *)0x0) goto LAB_000c0c7c;\nLAB_000c1450:\n      local_58 = 0;\n      bVar1 = false;\n    }\n    else {\n      local_48 = *(int **)(iVar14 + 4);\n      piVar16 = *(int **)(iVar14 + 8);\n      if (piVar16 == (int *)0x0) goto LAB_000c1450;\nLAB_000c0c7c:\n      local_58 = *piVar16;\n      bVar1 = (*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700;\n    }\n    puVar3 = PTR_LAB_0015b714;\n    iVar18 = *(int *)(param_1 + 0x2c);\n    iVar23 = *(int *)(param_1 + 0x28);\n    iVar17 = *(int *)(param_1 + 0x38);\n    iVar5 = iVar18 + local_58;\n    iVar9 = iVar5 + 2;\n    iVar20 = iVar17 + -2;\n    *(int *)(param_1 + 0x28) = iVar23 + 1;\n    iVar5 = iVar5 + 1;\n    *(int *)(param_1 + 0x38) = iVar20;\n    *(int *)(param_1 + 0x2c) = iVar9;\n    iVar17 = iVar17 + -1;\n    (*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar20,&local_30\n              );\n    pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    local_60 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar24)(piVar11,iVar20);\n    (*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 2,0);\n    (*pcVar15)(piVar11,0x6f,iVar23,*(undefined4 *)(iVar14 + 0x24),0);\n    uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);\n    (*pcVar15)(piVar11,0x46,0,iVar9,0);\n    (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n    (*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar17,0);\n    if (bVar1) {\n      iVar20 = piVar11[0x1b];\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n      (*pcVar15)(piVar11,5,iVar23,iVar20,0);\n      (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n      local_50 = piVar11[0x1b];\n      if (piVar16 != (int *)0x0) goto LAB_000c0e28;\n      pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n    }\n    else {\n      local_50 = piVar11[0x1b];\n      if (piVar16 == (int *)0x0) {\n        pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);\n        uVar6 = uVar4;\n        if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n    }\nLAB_000c0e5c:\n    (*pcVar15)(piVar11,0x53,iVar9,1,0);\n    (*pcVar15)(piVar11,5,iVar23,local_50,0);\n    (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n    (*pcVar24)(piVar11,iVar17);\n    (*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n  }\n  iVar18 = 0x42;\n  (*pcVar15)(piVar11,0x42,iVar5,0,0);\n  piVar16 = (int *)piVar11[0x1b];\n  if (local_60 < 0) {\n    local_60 = (int)piVar16 + -1;\n  }\n  if (*(char *)(*piVar11 + 0x51) == '\0') {\n    puVar3 = (undefined *)(piVar11[0x1a] + local_60 * 0x14);\n    iVar18 = local_60;\n  }\n  else {\n    puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n  }\n  *(int **)(puVar3 + 8) = piVar16;\nLAB_000c0f44:\n  if (local_2c == *(int *)puVar22) {\n    return;\n  }\n  puVar22 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  iVar14 = *piVar16;\n  if (iVar18 == 0) {\n    if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8();\n      return;\n    }\n  }\n  else {\n    iVar18 = (*(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c))(iVar14);\n    if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8(piVar16,iVar18,iVar5);\n    }\n    if (iVar18 != 0) {\n                    /* WARNING: Could not recover jumptable at 0x000c1fc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4))(iVar14,iVar18);\n      return;\n    }\n  }\n  return;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char cVar10;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "code *pcVar15;" type_identifier (pointer_declarator "*pcVar15" * identifier) ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "code *pcVar21;" type_identifier (pointer_declarator "*pcVar21" * identifier) ;) (declaration "undefined *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "code *pcVar24;" type_identifier (pointer_declarator "*pcVar24" * identifier) ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "code *local_5c;" type_identifier (pointer_declarator "*local_5c" * identifier) ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "code *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "int *local_48;" primitive_type (pointer_declarator "*local_48" * identifier) ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar22 = PTR___stack_chk_guard_0015ba2c;" (assignment_expression "puVar22 = PTR___stack_chk_guard_0015ba2c" identifier = identifier) ;) (expression_statement "iVar14 = *(int *)(param_2 + 0x44);" (assignment_expression "iVar14 = *(int *)(param_2 + 0x44)" identifier = (pointer_expression "*(int *)(param_2 + 0x44)" * (cast_expression "(int *)(param_2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x44)" ( (binary_expression "param_2 + 0x44" identifier + number_literal) ))))) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0015ba2c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0015ba2c" * (cast_expression "(int *)PTR___stack_chk_guard_0015ba2c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar2 = *(uint *)(iVar14 + 0xc) & 0xffff00;" (assignment_expression "uVar2 = *(uint *)(iVar14 + 0xc) & 0xffff00" identifier = (binary_expression "*(uint *)(iVar14 + 0xc) & 0xffff00" (pointer_expression "*(uint *)(iVar14 + 0xc)" * (cast_expression "(uint *)(iVar14 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xc)" ( (binary_expression "iVar14 + 0xc" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (*(char *)(iVar14 + 0xc) == 'L') {\n    if ((uVar2 == 0x575200) && (*(int *)(iVar14 + 8) != 0)) goto LAB_000c08b4;\n    piVar11 = *(int **)(param_1 + 8);\n    if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n    }\n    puVar3 = PTR_LAB_0015b714;\n    iVar20 = *(int *)(param_1 + 0x28);\n    iVar18 = *(int *)(param_1 + 0x2c);\n    iVar17 = iVar18 + 3;\n    iVar23 = *(int *)(param_1 + 0x38) + -2;\n    *(int *)(param_1 + 0x28) = iVar20 + 2;\n    iVar12 = *(int *)(param_1 + 0x38) + -1;\n    iVar5 = iVar18 + 1;\n    *(int *)(param_1 + 0x2c) = iVar17;\n    *(int *)(param_1 + 0x38) = iVar23;\n    iVar18 = iVar18 + 2;\n    iVar9 = iVar20 + 1;\n    local_30 = 0;\n    (*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar12,&local_30\n              );\n    pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    local_60 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar24)(piVar11,iVar12);\n    (*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 3,0);\n    (*pcVar15)(piVar11,0x6f,iVar20,*(undefined4 *)(iVar14 + 0x24),0);\n    (*pcVar15)(piVar11,0x6f,iVar9,*(undefined4 *)(iVar14 + 0x24),0);\n    if (*(int *)(iVar14 + 0x10) != 0) {\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x10),iVar18);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar18,0);\n    }\n    if (*(int *)(iVar14 + 0x14) != 0) {\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x14),iVar17);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar17,1);\n      if ((*(int *)(iVar14 + 0x14) != 0) && (*(char *)(iVar14 + 0xd) == 'S')) {\n        (*pcVar15)(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17);\n        (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n        (*pcVar15)(piVar11,0x61,iVar18,iVar17,iVar17);\n      }\n    }\n    if ((*(int *)(iVar14 + 0x10) != 0) && (*(char *)(iVar14 + 0xe) == 'U')) {\n      (*pcVar15)(piVar11,0x37,iVar18,piVar11[0x1b] + 3,iVar17);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar17,0);\n    }\n    uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);\n    (*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar23,0);\n    (*pcVar15)(piVar11,0x24,iVar20,iVar23,0);\n    if (0 < piVar11[0x1b]) {\n      *(undefined2 *)(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12) = 1;\n    }\n    (*pcVar15)(piVar11,0x24,iVar9,iVar23,0);\n    iVar12 = piVar11[0x1b];\n    if (0 < iVar12) {\n      *(undefined2 *)(piVar11[0x1a] + iVar12 * 0x14 + -0x12) = 1;\n      iVar12 = piVar11[0x1b];\n    }\n    if (*(char *)(iVar14 + 0xe) == 'U') {\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n      iVar13 = piVar11[0x1b];\n    }\n    else {\n      local_50 = 0;\n      iVar13 = iVar12;\n    }\n    (*pcVar15)(piVar11,5,iVar9,iVar13 + 2,0);\n    iVar13 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7af4);\n    (*pcVar21)(param_1,iVar14,iVar9,0,uVar4,local_30);\n    if (*(char *)(iVar14 + 0xe) == 'W') {\n      (*pcVar15)(piVar11,0xb,0,iVar12,0);\n      iVar12 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar12 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n    }\n    else {\n      iVar9 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar9 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14);\n      }\n      else {\n        puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n      }\n      *(int *)(puVar3 + 8) = iVar9;\n      cVar10 = *(char *)(iVar14 + 0xe);\n      if (cVar10 == 'U') {\n        iVar13 = iVar9 + -1;\n        if (-1 < local_50) {\n          iVar13 = local_50;\n        }\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n      }\n    }\n    if (cVar10 == 'S') {\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n    }\n    if (*(char *)(iVar14 + 0xd) == 'S') {\n      iVar17 = (*pcVar15)(piVar11,0x2f,iVar18,0,1);\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        if (iVar17 < 0) {\n          iVar17 = iVar9 + -1;\n        }\n        goto LAB_000c1d20;\n      }\n    }\n    else {\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        iVar17 = 0;\nLAB_000c1d20:\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n      }\n    }\n    if ((uVar2 - 0x52 < 2) || (uVar2 == 0x55)) {\n      iVar17 = *(int *)(param_1 + 0x38) + -1;\n      *(int *)(param_1 + 0x38) = iVar17;\n      cVar10 = *(char *)(iVar14 + 0xd);\n      if (cVar10 == 'U') {\n        (*pcVar15)(piVar11,0x2f,iVar18,iVar17,1);\n        cVar10 = *(char *)(iVar14 + 0xd);\n      }\n      if (cVar10 == 'S') {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 2,0);\n        (*pcVar15)(piVar11,0xb,0,iVar17,0);\n      }\n      else {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0);\n      }\n      (*pcVar21)(param_1,iVar14,iVar20,1,uVar4,local_30);\n      (*pcVar24)(piVar11,iVar17);\n    }\n    if (*(char *)(iVar14 + 0xe) == 'S') {\n      iVar18 = piVar11[0x1b];\n      if (local_50 < 0) {\n        local_50 = iVar18 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + local_50 * 0x14 + 8) = iVar18;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n      }\n    }\n    (*pcVar15)(piVar11,0xb,0,iVar12,0);\n    (*pcVar24)(piVar11,iVar23);\n    (*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n  }\n  else {\n    if (uVar2 != 0x525700) {\nLAB_000c08b4:\n      iVar18 = iVar14;\n      do {\n        if (((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        iVar18 = *(int *)(iVar18 + 0x18);\n      } while (iVar18 != 0);\n      piVar16 = *(int **)(param_1 + 8);\n      if (piVar16 == (int *)0x0) {\n        piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      }\n      piVar11 = *(int **)(iVar14 + 4);\n      iVar17 = *(int *)(param_1 + 0x2c) + 1;\n      uVar4 = *(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30);\n      iVar20 = (int)*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a);\n      iVar18 = iVar20 + iVar17;\n      iVar5 = iVar20 + 2 + *(int *)(param_1 + 0x2c);\n      if (*(char *)(iVar14 + 0xe) == 'W') {\n        *(int *)(param_1 + 0x2c) = iVar5;\n        piVar19 = (int *)0x0;\n        if (0 < iVar20) goto LAB_000c0980;\n        if (piVar11 != (int *)0x0) {\n          local_50 = *piVar11;\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }\n      else {\n        piVar19 = *(int **)(iVar14 + 8);\n        *(int *)(param_1 + 0x2c) = iVar5;\n        if (iVar20 < 1) {\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }\n        puVar3 = PTR_LAB_0015b714;\n        if (piVar11 == (int *)0x0) {\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }\n        else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }\n        (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);\n        (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n        (*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);\n        (*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n        (*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1);\n        if (iVar5 != 0) {\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }\n      }\nLAB_000c0b50:\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,0xffffffff,0,iVar17,0);\n      if (*(int *)(iVar14 + 0x40) < 1) {\n        (*pcVar15)(piVar16,0x4b,0,iVar18,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }\n      else {\n        (*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);\n      }\n      (*pcVar15)(piVar16,0x79,*(undefined4 *)(iVar14 + 0x24),iVar18 + 1,0);\n      (*pcVar15)(piVar16,0x7a,*(undefined4 *)(iVar14 + 0x24),iVar18,iVar18 + 1);\n      (*(code *)(PTR_LAB_0015b710 + -0x18cc))(param_3);\n      (*pcVar24)(param_1,iVar14,1);\n      (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + 3,0);\n      (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n      iVar18 = 5;\n      iVar5 = *(int *)(iVar14 + 0x24);\n      (*pcVar15)(piVar16,5,iVar5,piVar16[0x1b] + -1,0);\n      goto LAB_000c0f44;\n    }\nLAB_000c0c60:\n    piVar11 = *(int **)(param_1 + 8);\n    if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      piVar16 = *(int **)(iVar14 + 8);\n      local_48 = *(int **)(iVar14 + 4);\n      if (piVar16 != (int *)0x0) goto LAB_000c0c7c;\nLAB_000c1450:\n      local_58 = 0;\n      bVar1 = false;\n    }\n    else {\n      local_48 = *(int **)(iVar14 + 4);\n      piVar16 = *(int **)(iVar14 + 8);\n      if (piVar16 == (int *)0x0) goto LAB_000c1450;\nLAB_000c0c7c:\n      local_58 = *piVar16;\n      bVar1 = (*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700;\n    }\n    puVar3 = PTR_LAB_0015b714;\n    iVar18 = *(int *)(param_1 + 0x2c);\n    iVar23 = *(int *)(param_1 + 0x28);\n    iVar17 = *(int *)(param_1 + 0x38);\n    iVar5 = iVar18 + local_58;\n    iVar9 = iVar5 + 2;\n    iVar20 = iVar17 + -2;\n    *(int *)(param_1 + 0x28) = iVar23 + 1;\n    iVar5 = iVar5 + 1;\n    *(int *)(param_1 + 0x38) = iVar20;\n    *(int *)(param_1 + 0x2c) = iVar9;\n    iVar17 = iVar17 + -1;\n    (*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar20,&local_30\n              );\n    pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    local_60 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar24)(piVar11,iVar20);\n    (*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 2,0);\n    (*pcVar15)(piVar11,0x6f,iVar23,*(undefined4 *)(iVar14 + 0x24),0);\n    uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);\n    (*pcVar15)(piVar11,0x46,0,iVar9,0);\n    (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n    (*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar17,0);\n    if (bVar1) {\n      iVar20 = piVar11[0x1b];\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n      (*pcVar15)(piVar11,5,iVar23,iVar20,0);\n      (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n      local_50 = piVar11[0x1b];\n      if (piVar16 != (int *)0x0) goto LAB_000c0e28;\n      pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n    }\n    else {\n      local_50 = piVar11[0x1b];\n      if (piVar16 == (int *)0x0) {\n        pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);\n        uVar6 = uVar4;\n        if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n    }\nLAB_000c0e5c:\n    (*pcVar15)(piVar11,0x53,iVar9,1,0);\n    (*pcVar15)(piVar11,5,iVar23,local_50,0);\n    (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n    (*pcVar24)(piVar11,iVar17);\n    (*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n  }" if (parenthesized_expression "(*(char *)(iVar14 + 0xc) == 'L')" ( (binary_expression "*(char *)(iVar14 + 0xc) == 'L'" (pointer_expression "*(char *)(iVar14 + 0xc)" * (cast_expression "(char *)(iVar14 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xc)" ( (binary_expression "iVar14 + 0xc" identifier + number_literal) )))) == (char_literal "'L'" ' character ')) )) (compound_statement "{\n    if ((uVar2 == 0x575200) && (*(int *)(iVar14 + 8) != 0)) goto LAB_000c08b4;\n    piVar11 = *(int **)(param_1 + 8);\n    if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n    }\n    puVar3 = PTR_LAB_0015b714;\n    iVar20 = *(int *)(param_1 + 0x28);\n    iVar18 = *(int *)(param_1 + 0x2c);\n    iVar17 = iVar18 + 3;\n    iVar23 = *(int *)(param_1 + 0x38) + -2;\n    *(int *)(param_1 + 0x28) = iVar20 + 2;\n    iVar12 = *(int *)(param_1 + 0x38) + -1;\n    iVar5 = iVar18 + 1;\n    *(int *)(param_1 + 0x2c) = iVar17;\n    *(int *)(param_1 + 0x38) = iVar23;\n    iVar18 = iVar18 + 2;\n    iVar9 = iVar20 + 1;\n    local_30 = 0;\n    (*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar12,&local_30\n              );\n    pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    local_60 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar24)(piVar11,iVar12);\n    (*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 3,0);\n    (*pcVar15)(piVar11,0x6f,iVar20,*(undefined4 *)(iVar14 + 0x24),0);\n    (*pcVar15)(piVar11,0x6f,iVar9,*(undefined4 *)(iVar14 + 0x24),0);\n    if (*(int *)(iVar14 + 0x10) != 0) {\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x10),iVar18);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar18,0);\n    }\n    if (*(int *)(iVar14 + 0x14) != 0) {\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x14),iVar17);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar17,1);\n      if ((*(int *)(iVar14 + 0x14) != 0) && (*(char *)(iVar14 + 0xd) == 'S')) {\n        (*pcVar15)(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17);\n        (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n        (*pcVar15)(piVar11,0x61,iVar18,iVar17,iVar17);\n      }\n    }\n    if ((*(int *)(iVar14 + 0x10) != 0) && (*(char *)(iVar14 + 0xe) == 'U')) {\n      (*pcVar15)(piVar11,0x37,iVar18,piVar11[0x1b] + 3,iVar17);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar17,0);\n    }\n    uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);\n    (*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar23,0);\n    (*pcVar15)(piVar11,0x24,iVar20,iVar23,0);\n    if (0 < piVar11[0x1b]) {\n      *(undefined2 *)(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12) = 1;\n    }\n    (*pcVar15)(piVar11,0x24,iVar9,iVar23,0);\n    iVar12 = piVar11[0x1b];\n    if (0 < iVar12) {\n      *(undefined2 *)(piVar11[0x1a] + iVar12 * 0x14 + -0x12) = 1;\n      iVar12 = piVar11[0x1b];\n    }\n    if (*(char *)(iVar14 + 0xe) == 'U') {\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n      iVar13 = piVar11[0x1b];\n    }\n    else {\n      local_50 = 0;\n      iVar13 = iVar12;\n    }\n    (*pcVar15)(piVar11,5,iVar9,iVar13 + 2,0);\n    iVar13 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7af4);\n    (*pcVar21)(param_1,iVar14,iVar9,0,uVar4,local_30);\n    if (*(char *)(iVar14 + 0xe) == 'W') {\n      (*pcVar15)(piVar11,0xb,0,iVar12,0);\n      iVar12 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar12 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n    }\n    else {\n      iVar9 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar9 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14);\n      }\n      else {\n        puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n      }\n      *(int *)(puVar3 + 8) = iVar9;\n      cVar10 = *(char *)(iVar14 + 0xe);\n      if (cVar10 == 'U') {\n        iVar13 = iVar9 + -1;\n        if (-1 < local_50) {\n          iVar13 = local_50;\n        }\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n      }\n    }\n    if (cVar10 == 'S') {\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n    }\n    if (*(char *)(iVar14 + 0xd) == 'S') {\n      iVar17 = (*pcVar15)(piVar11,0x2f,iVar18,0,1);\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        if (iVar17 < 0) {\n          iVar17 = iVar9 + -1;\n        }\n        goto LAB_000c1d20;\n      }\n    }\n    else {\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        iVar17 = 0;\nLAB_000c1d20:\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n      }\n    }\n    if ((uVar2 - 0x52 < 2) || (uVar2 == 0x55)) {\n      iVar17 = *(int *)(param_1 + 0x38) + -1;\n      *(int *)(param_1 + 0x38) = iVar17;\n      cVar10 = *(char *)(iVar14 + 0xd);\n      if (cVar10 == 'U') {\n        (*pcVar15)(piVar11,0x2f,iVar18,iVar17,1);\n        cVar10 = *(char *)(iVar14 + 0xd);\n      }\n      if (cVar10 == 'S') {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 2,0);\n        (*pcVar15)(piVar11,0xb,0,iVar17,0);\n      }\n      else {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0);\n      }\n      (*pcVar21)(param_1,iVar14,iVar20,1,uVar4,local_30);\n      (*pcVar24)(piVar11,iVar17);\n    }\n    if (*(char *)(iVar14 + 0xe) == 'S') {\n      iVar18 = piVar11[0x1b];\n      if (local_50 < 0) {\n        local_50 = iVar18 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + local_50 * 0x14 + 8) = iVar18;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n      }\n    }\n    (*pcVar15)(piVar11,0xb,0,iVar12,0);\n    (*pcVar24)(piVar11,iVar23);\n    (*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n  }" { (if_statement "if ((uVar2 == 0x575200) && (*(int *)(iVar14 + 8) != 0)) goto LAB_000c08b4;" if (parenthesized_expression "((uVar2 == 0x575200) && (*(int *)(iVar14 + 8) != 0))" ( (binary_expression "(uVar2 == 0x575200) && (*(int *)(iVar14 + 8) != 0)" (parenthesized_expression "(uVar2 == 0x575200)" ( (binary_expression "uVar2 == 0x575200" identifier == number_literal) )) && (parenthesized_expression "(*(int *)(iVar14 + 8) != 0)" ( (binary_expression "*(int *)(iVar14 + 8) != 0" (pointer_expression "*(int *)(iVar14 + 8)" * (cast_expression "(int *)(iVar14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 8)" ( (binary_expression "iVar14 + 8" identifier + number_literal) )))) != number_literal) ))) )) (goto_statement "goto LAB_000c08b4;" goto statement_identifier ;)) (expression_statement "piVar11 = *(int **)(param_1 + 8);" (assignment_expression "piVar11 = *(int **)(param_1 + 8)" identifier = (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (if_statement "if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n    }" if (parenthesized_expression "(piVar11 == (int *)0x0)" ( (binary_expression "piVar11 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n    }" { (expression_statement "piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);" (assignment_expression "piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1)" identifier = (cast_expression "(int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x371c))" ( (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x371c)" * (cast_expression "(code *)(PTR_LAB_0015b710 + -0x371c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x371c)" ( (binary_expression "PTR_LAB_0015b710 + -0x371c" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))))) ;) })) (expression_statement "puVar3 = PTR_LAB_0015b714;" (assignment_expression "puVar3 = PTR_LAB_0015b714" identifier = identifier) ;) (expression_statement "iVar20 = *(int *)(param_1 + 0x28);" (assignment_expression "iVar20 = *(int *)(param_1 + 0x28)" identifier = (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = *(int *)(param_1 + 0x2c);" (assignment_expression "iVar18 = *(int *)(param_1 + 0x2c)" identifier = (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "iVar17 = iVar18 + 3;" (assignment_expression "iVar17 = iVar18 + 3" identifier = (binary_expression "iVar18 + 3" identifier + number_literal)) ;) (expression_statement "iVar23 = *(int *)(param_1 + 0x38) + -2;" (assignment_expression "iVar23 = *(int *)(param_1 + 0x38) + -2" identifier = (binary_expression "*(int *)(param_1 + 0x38) + -2" (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(param_1 + 0x28) = iVar20 + 2;" (assignment_expression "*(int *)(param_1 + 0x28) = iVar20 + 2" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "iVar20 + 2" identifier + number_literal)) ;) (expression_statement "iVar12 = *(int *)(param_1 + 0x38) + -1;" (assignment_expression "iVar12 = *(int *)(param_1 + 0x38) + -1" identifier = (binary_expression "*(int *)(param_1 + 0x38) + -1" (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar5 = iVar18 + 1;" (assignment_expression "iVar5 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(param_1 + 0x2c) = iVar17;" (assignment_expression "*(int *)(param_1 + 0x2c) = iVar17" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(param_1 + 0x38) = iVar23;" (assignment_expression "*(int *)(param_1 + 0x38) = iVar23" (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar18 = iVar18 + 2;" (assignment_expression "iVar18 = iVar18 + 2" identifier = (binary_expression "iVar18 + 2" identifier + number_literal)) ;) (expression_statement "iVar9 = iVar20 + 1;" (assignment_expression "iVar9 = iVar20 + 1" identifier = (binary_expression "iVar20 + 1" identifier + number_literal)) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "(*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar12,&local_30\n              );" (call_expression "(*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar12,&local_30\n              )" (parenthesized_expression "(*(code *)(puVar3 + -0x7e94))" ( (pointer_expression "*(code *)(puVar3 + -0x7e94)" * (cast_expression "(code *)(puVar3 + -0x7e94)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x7e94)" ( (binary_expression "puVar3 + -0x7e94" identifier + number_literal) )))) )) (argument_list "(param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar12,&local_30\n              )" ( identifier , (binary_expression "param_2 + 0x20" identifier + number_literal) , (pointer_expression "*(undefined4 *)(param_2 + 0x44)" * (cast_expression "(undefined4 *)(param_2 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x44)" ( (binary_expression "param_2 + 0x44" identifier + number_literal) )))) , identifier , identifier , identifier , (pointer_expression "&local_30" & identifier) ))) ;) (expression_statement "pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);" (assignment_expression "pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x3890)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x3890)" ( (binary_expression "PTR_LAB_0015b710 + -0x3890" identifier + number_literal) )))) ;) (expression_statement "local_60 = (*pcVar15)(piVar11,0xb,0,0,0);" (assignment_expression "local_60 = (*pcVar15)(piVar11,0xb,0,0,0)" identifier = (call_expression "(*pcVar15)(piVar11,0xb,0,0,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0xb,0,0,0)" ( identifier , number_literal , number_literal , number_literal , number_literal )))) ;) (expression_statement "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);" (assignment_expression "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x3c14)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x3c14)" ( (binary_expression "PTR_LAB_0015b710 + -0x3c14" identifier + number_literal) )))) ;) (expression_statement "(*pcVar24)(piVar11,iVar12);" (call_expression "(*pcVar24)(piVar11,iVar12)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(piVar11,iVar12)" ( identifier , identifier ))) ;) (expression_statement "(*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 3,0);" (call_expression "(*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 3,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x11,0,piVar11[0x1b] + 3,0)" ( identifier , number_literal , number_literal , (binary_expression "piVar11[0x1b] + 3" (subscript_expression "piVar11[0x1b]" identifier [ number_literal ]) + number_literal) , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar11,0x6f,iVar20,*(undefined4 *)(iVar14 + 0x24),0);" (call_expression "(*pcVar15)(piVar11,0x6f,iVar20,*(undefined4 *)(iVar14 + 0x24),0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x6f,iVar20,*(undefined4 *)(iVar14 + 0x24),0)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" * (cast_expression "(undefined4 *)(iVar14 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x24)" ( (binary_expression "iVar14 + 0x24" identifier + number_literal) )))) , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar11,0x6f,iVar9,*(undefined4 *)(iVar14 + 0x24),0);" (call_expression "(*pcVar15)(piVar11,0x6f,iVar9,*(undefined4 *)(iVar14 + 0x24),0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x6f,iVar9,*(undefined4 *)(iVar14 + 0x24),0)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" * (cast_expression "(undefined4 *)(iVar14 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x24)" ( (binary_expression "iVar14 + 0x24" identifier + number_literal) )))) , number_literal ))) ;) (if_statement "if (*(int *)(iVar14 + 0x10) != 0) {\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x10),iVar18);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar18,0);\n    }" if (parenthesized_expression "(*(int *)(iVar14 + 0x10) != 0)" ( (binary_expression "*(int *)(iVar14 + 0x10) != 0" (pointer_expression "*(int *)(iVar14 + 0x10)" * (cast_expression "(int *)(iVar14 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x10)" ( (binary_expression "iVar14 + 0x10" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x10),iVar18);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar18,0);\n    }" { (expression_statement "FUN_000c02d8(param_1,*(int *)(iVar14 + 0x10),iVar18);" (call_expression "FUN_000c02d8(param_1,*(int *)(iVar14 + 0x10),iVar18)" identifier (argument_list "(param_1,*(int *)(iVar14 + 0x10),iVar18)" ( identifier , (pointer_expression "*(int *)(iVar14 + 0x10)" * (cast_expression "(int *)(iVar14 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x10)" ( (binary_expression "iVar14 + 0x10" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "(*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar18,0);" (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar18,0)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x2920))" ( (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x2920)" * (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2920)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2920)" ( (binary_expression "PTR_LAB_0015b710 + -0x2920" identifier + number_literal) )))) )) (argument_list "(param_1,iVar18,0)" ( identifier , identifier , number_literal ))) ;) })) (if_statement "if (*(int *)(iVar14 + 0x14) != 0) {\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x14),iVar17);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar17,1);\n      if ((*(int *)(iVar14 + 0x14) != 0) && (*(char *)(iVar14 + 0xd) == 'S')) {\n        (*pcVar15)(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17);\n        (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n        (*pcVar15)(piVar11,0x61,iVar18,iVar17,iVar17);\n      }\n    }" if (parenthesized_expression "(*(int *)(iVar14 + 0x14) != 0)" ( (binary_expression "*(int *)(iVar14 + 0x14) != 0" (pointer_expression "*(int *)(iVar14 + 0x14)" * (cast_expression "(int *)(iVar14 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x14)" ( (binary_expression "iVar14 + 0x14" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x14),iVar17);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar17,1);\n      if ((*(int *)(iVar14 + 0x14) != 0) && (*(char *)(iVar14 + 0xd) == 'S')) {\n        (*pcVar15)(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17);\n        (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n        (*pcVar15)(piVar11,0x61,iVar18,iVar17,iVar17);\n      }\n    }" { (expression_statement "FUN_000c02d8(param_1,*(int *)(iVar14 + 0x14),iVar17);" (call_expression "FUN_000c02d8(param_1,*(int *)(iVar14 + 0x14),iVar17)" identifier (argument_list "(param_1,*(int *)(iVar14 + 0x14),iVar17)" ( identifier , (pointer_expression "*(int *)(iVar14 + 0x14)" * (cast_expression "(int *)(iVar14 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x14)" ( (binary_expression "iVar14 + 0x14" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "(*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar17,1);" (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar17,1)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x2920))" ( (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x2920)" * (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2920)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2920)" ( (binary_expression "PTR_LAB_0015b710 + -0x2920" identifier + number_literal) )))) )) (argument_list "(param_1,iVar17,1)" ( identifier , identifier , number_literal ))) ;) (if_statement "if ((*(int *)(iVar14 + 0x14) != 0) && (*(char *)(iVar14 + 0xd) == 'S')) {\n        (*pcVar15)(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17);\n        (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n        (*pcVar15)(piVar11,0x61,iVar18,iVar17,iVar17);\n      }" if (parenthesized_expression "((*(int *)(iVar14 + 0x14) != 0) && (*(char *)(iVar14 + 0xd) == 'S'))" ( (binary_expression "(*(int *)(iVar14 + 0x14) != 0) && (*(char *)(iVar14 + 0xd) == 'S')" (parenthesized_expression "(*(int *)(iVar14 + 0x14) != 0)" ( (binary_expression "*(int *)(iVar14 + 0x14) != 0" (pointer_expression "*(int *)(iVar14 + 0x14)" * (cast_expression "(int *)(iVar14 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x14)" ( (binary_expression "iVar14 + 0x14" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(char *)(iVar14 + 0xd) == 'S')" ( (binary_expression "*(char *)(iVar14 + 0xd) == 'S'" (pointer_expression "*(char *)(iVar14 + 0xd)" * (cast_expression "(char *)(iVar14 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xd)" ( (binary_expression "iVar14 + 0xd" identifier + number_literal) )))) == (char_literal "'S'" ' character ')) ))) )) (compound_statement "{\n        (*pcVar15)(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17);\n        (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n        (*pcVar15)(piVar11,0x61,iVar18,iVar17,iVar17);\n      }" { (expression_statement "(*pcVar15)(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17);" (call_expression "(*pcVar15)(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17)" ( identifier , number_literal , identifier , (binary_expression "piVar11[0x1b] + 2" (subscript_expression "piVar11[0x1b]" identifier [ number_literal ]) + number_literal) , identifier ))) ;) (expression_statement "(*pcVar15)(piVar11,0x4e,local_30,iVar18,0);" (call_expression "(*pcVar15)(piVar11,0x4e,local_30,iVar18,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x4e,local_30,iVar18,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar11,0x61,iVar18,iVar17,iVar17);" (call_expression "(*pcVar15)(piVar11,0x61,iVar18,iVar17,iVar17)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x61,iVar18,iVar17,iVar17)" ( identifier , number_literal , identifier , identifier , identifier ))) ;) })) })) (if_statement "if ((*(int *)(iVar14 + 0x10) != 0) && (*(char *)(iVar14 + 0xe) == 'U')) {\n      (*pcVar15)(piVar11,0x37,iVar18,piVar11[0x1b] + 3,iVar17);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar17,0);\n    }" if (parenthesized_expression "((*(int *)(iVar14 + 0x10) != 0) && (*(char *)(iVar14 + 0xe) == 'U'))" ( (binary_expression "(*(int *)(iVar14 + 0x10) != 0) && (*(char *)(iVar14 + 0xe) == 'U')" (parenthesized_expression "(*(int *)(iVar14 + 0x10) != 0)" ( (binary_expression "*(int *)(iVar14 + 0x10) != 0" (pointer_expression "*(int *)(iVar14 + 0x10)" * (cast_expression "(int *)(iVar14 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x10)" ( (binary_expression "iVar14 + 0x10" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(char *)(iVar14 + 0xe) == 'U')" ( (binary_expression "*(char *)(iVar14 + 0xe) == 'U'" (pointer_expression "*(char *)(iVar14 + 0xe)" * (cast_expression "(char *)(iVar14 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xe)" ( (binary_expression "iVar14 + 0xe" identifier + number_literal) )))) == (char_literal "'U'" ' character ')) ))) )) (compound_statement "{\n      (*pcVar15)(piVar11,0x37,iVar18,piVar11[0x1b] + 3,iVar17);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar17,0);\n    }" { (expression_statement "(*pcVar15)(piVar11,0x37,iVar18,piVar11[0x1b] + 3,iVar17);" (call_expression "(*pcVar15)(piVar11,0x37,iVar18,piVar11[0x1b] + 3,iVar17)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x37,iVar18,piVar11[0x1b] + 3,iVar17)" ( identifier , number_literal , identifier , (binary_expression "piVar11[0x1b] + 3" (subscript_expression "piVar11[0x1b]" identifier [ number_literal ]) + number_literal) , identifier ))) ;) (expression_statement "(*pcVar15)(piVar11,0x4e,local_30,iVar18,0);" (call_expression "(*pcVar15)(piVar11,0x4e,local_30,iVar18,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x4e,local_30,iVar18,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar11,0x4e,local_30,iVar17,0);" (call_expression "(*pcVar15)(piVar11,0x4e,local_30,iVar17,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x4e,local_30,iVar17,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) })) (expression_statement "uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);" (assignment_expression "uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14)" identifier = (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x2e00))" ( (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x2e00)" * (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2e00)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2e00)" ( (binary_expression "PTR_LAB_0015b710 + -0x2e00" identifier + number_literal) )))) )) (argument_list "(param_1,iVar14)" ( identifier , identifier )))) ;) (expression_statement "(*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar23,0);" (call_expression "(*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar23,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar23,0)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" * (cast_expression "(undefined4 *)(iVar14 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x24)" ( (binary_expression "iVar14 + 0x24" identifier + number_literal) )))) , identifier , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar11,0x24,iVar20,iVar23,0);" (call_expression "(*pcVar15)(piVar11,0x24,iVar20,iVar23,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x24,iVar20,iVar23,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (if_statement "if (0 < piVar11[0x1b]) {\n      *(undefined2 *)(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12) = 1;\n    }" if (parenthesized_expression "(0 < piVar11[0x1b])" ( (binary_expression "0 < piVar11[0x1b]" number_literal < (subscript_expression "piVar11[0x1b]" identifier [ number_literal ])) )) (compound_statement "{\n      *(undefined2 *)(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12) = 1;\n    }" { (expression_statement "*(undefined2 *)(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12) = 1;" (assignment_expression "*(undefined2 *)(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12) = 1" (pointer_expression "*(undefined2 *)(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12)" * (cast_expression "(undefined2 *)(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12)" ( (binary_expression "piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12" (binary_expression "piVar11[0x1a] + piVar11[0x1b] * 0x14" (subscript_expression "piVar11[0x1a]" identifier [ number_literal ]) + (binary_expression "piVar11[0x1b] * 0x14" (subscript_expression "piVar11[0x1b]" identifier [ number_literal ]) * number_literal)) + number_literal) )))) = number_literal) ;) })) (expression_statement "(*pcVar15)(piVar11,0x24,iVar9,iVar23,0);" (call_expression "(*pcVar15)(piVar11,0x24,iVar9,iVar23,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x24,iVar9,iVar23,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "iVar12 = piVar11[0x1b];" (assignment_expression "iVar12 = piVar11[0x1b]" identifier = (subscript_expression "piVar11[0x1b]" identifier [ number_literal ])) ;) (if_statement "if (0 < iVar12) {\n      *(undefined2 *)(piVar11[0x1a] + iVar12 * 0x14 + -0x12) = 1;\n      iVar12 = piVar11[0x1b];\n    }" if (parenthesized_expression "(0 < iVar12)" ( (binary_expression "0 < iVar12" number_literal < identifier) )) (compound_statement "{\n      *(undefined2 *)(piVar11[0x1a] + iVar12 * 0x14 + -0x12) = 1;\n      iVar12 = piVar11[0x1b];\n    }" { (expression_statement "*(undefined2 *)(piVar11[0x1a] + iVar12 * 0x14 + -0x12) = 1;" (assignment_expression "*(undefined2 *)(piVar11[0x1a] + iVar12 * 0x14 + -0x12) = 1" (pointer_expression "*(undefined2 *)(piVar11[0x1a] + iVar12 * 0x14 + -0x12)" * (cast_expression "(undefined2 *)(piVar11[0x1a] + iVar12 * 0x14 + -0x12)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar11[0x1a] + iVar12 * 0x14 + -0x12)" ( (binary_expression "piVar11[0x1a] + iVar12 * 0x14 + -0x12" (binary_expression "piVar11[0x1a] + iVar12 * 0x14" (subscript_expression "piVar11[0x1a]" identifier [ number_literal ]) + (binary_expression "iVar12 * 0x14" identifier * number_literal)) + number_literal) )))) = number_literal) ;) (expression_statement "iVar12 = piVar11[0x1b];" (assignment_expression "iVar12 = piVar11[0x1b]" identifier = (subscript_expression "piVar11[0x1b]" identifier [ number_literal ])) ;) })) (if_statement "if (*(char *)(iVar14 + 0xe) == 'U') {\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n      iVar13 = piVar11[0x1b];\n    }\n    else {\n      local_50 = 0;\n      iVar13 = iVar12;\n    }" if (parenthesized_expression "(*(char *)(iVar14 + 0xe) == 'U')" ( (binary_expression "*(char *)(iVar14 + 0xe) == 'U'" (pointer_expression "*(char *)(iVar14 + 0xe)" * (cast_expression "(char *)(iVar14 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xe)" ( (binary_expression "iVar14 + 0xe" identifier + number_literal) )))) == (char_literal "'U'" ' character ')) )) (compound_statement "{\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n      iVar13 = piVar11[0x1b];\n    }" { (expression_statement "local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);" (assignment_expression "local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1)" identifier = (call_expression "(*pcVar15)(piVar11,0x2f,iVar17,0,1)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x2f,iVar17,0,1)" ( identifier , number_literal , identifier , number_literal , number_literal )))) ;) (expression_statement "iVar13 = piVar11[0x1b];" (assignment_expression "iVar13 = piVar11[0x1b]" identifier = (subscript_expression "piVar11[0x1b]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      local_50 = 0;\n      iVar13 = iVar12;\n    }" else (compound_statement "{\n      local_50 = 0;\n      iVar13 = iVar12;\n    }" { (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "iVar13 = iVar12;" (assignment_expression "iVar13 = iVar12" identifier = identifier) ;) }))) (expression_statement "(*pcVar15)(piVar11,5,iVar9,iVar13 + 2,0);" (call_expression "(*pcVar15)(piVar11,5,iVar9,iVar13 + 2,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,5,iVar9,iVar13 + 2,0)" ( identifier , number_literal , identifier , (binary_expression "iVar13 + 2" identifier + number_literal) , number_literal ))) ;) (expression_statement "iVar13 = (*pcVar15)(piVar11,0xb,0,0,0);" (assignment_expression "iVar13 = (*pcVar15)(piVar11,0xb,0,0,0)" identifier = (call_expression "(*pcVar15)(piVar11,0xb,0,0,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0xb,0,0,0)" ( identifier , number_literal , number_literal , number_literal , number_literal )))) ;) (expression_statement "pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7af4);" (assignment_expression "pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7af4)" identifier = (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7af4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x7af4)" ( (binary_expression "PTR_LAB_0015b714 + -0x7af4" identifier + number_literal) )))) ;) (expression_statement "(*pcVar21)(param_1,iVar14,iVar9,0,uVar4,local_30);" (call_expression "(*pcVar21)(param_1,iVar14,iVar9,0,uVar4,local_30)" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "(param_1,iVar14,iVar9,0,uVar4,local_30)" ( identifier , identifier , identifier , number_literal , identifier , identifier ))) ;) (if_statement "if (*(char *)(iVar14 + 0xe) == 'W') {\n      (*pcVar15)(piVar11,0xb,0,iVar12,0);\n      iVar12 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar12 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n    }\n    else {\n      iVar9 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar9 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14);\n      }\n      else {\n        puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n      }\n      *(int *)(puVar3 + 8) = iVar9;\n      cVar10 = *(char *)(iVar14 + 0xe);\n      if (cVar10 == 'U') {\n        iVar13 = iVar9 + -1;\n        if (-1 < local_50) {\n          iVar13 = local_50;\n        }\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n      }\n    }" if (parenthesized_expression "(*(char *)(iVar14 + 0xe) == 'W')" ( (binary_expression "*(char *)(iVar14 + 0xe) == 'W'" (pointer_expression "*(char *)(iVar14 + 0xe)" * (cast_expression "(char *)(iVar14 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xe)" ( (binary_expression "iVar14 + 0xe" identifier + number_literal) )))) == (char_literal "'W'" ' character ')) )) (compound_statement "{\n      (*pcVar15)(piVar11,0xb,0,iVar12,0);\n      iVar12 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar12 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n    }" { (expression_statement "(*pcVar15)(piVar11,0xb,0,iVar12,0);" (call_expression "(*pcVar15)(piVar11,0xb,0,iVar12,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0xb,0,iVar12,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) (expression_statement "iVar12 = piVar11[0x1b];" (assignment_expression "iVar12 = piVar11[0x1b]" identifier = (subscript_expression "piVar11[0x1b]" identifier [ number_literal ])) ;) (if_statement "if (iVar13 < 0) {\n        iVar13 = iVar12 + -1;\n      }" if (parenthesized_expression "(iVar13 < 0)" ( (binary_expression "iVar13 < 0" identifier < number_literal) )) (compound_statement "{\n        iVar13 = iVar12 + -1;\n      }" { (expression_statement "iVar13 = iVar12 + -1;" (assignment_expression "iVar13 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) })) (if_statement "if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }" if (parenthesized_expression "(*(char *)(*piVar11 + 0x51) == '\0')" ( (binary_expression "*(char *)(*piVar11 + 0x51) == '\0'" (pointer_expression "*(char *)(*piVar11 + 0x51)" * (cast_expression "(char *)(*piVar11 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar11 + 0x51)" ( (binary_expression "*piVar11 + 0x51" (pointer_expression "*piVar11" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }" { (expression_statement "*(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar12;" (assignment_expression "*(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar12" (pointer_expression "*(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8)" * (cast_expression "(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar11[0x1a] + iVar13 * 0x14 + 8)" ( (binary_expression "piVar11[0x1a] + iVar13 * 0x14 + 8" (binary_expression "piVar11[0x1a] + iVar13 * 0x14" (subscript_expression "piVar11[0x1a]" identifier [ number_literal ]) + (binary_expression "iVar13 * 0x14" identifier * number_literal)) + number_literal) )))) = identifier) ;) (expression_statement "cVar10 = *(char *)(iVar14 + 0xe);" (assignment_expression "cVar10 = *(char *)(iVar14 + 0xe)" identifier = (pointer_expression "*(char *)(iVar14 + 0xe)" * (cast_expression "(char *)(iVar14 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xe)" ( (binary_expression "iVar14 + 0xe" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }" else (compound_statement "{\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }" { (expression_statement "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12;" (assignment_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12" (pointer_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c)" * (cast_expression "(int *)(PTR_DAT_0015b5d8 + -0x450c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x450c)" ( (binary_expression "PTR_DAT_0015b5d8 + -0x450c" identifier + number_literal) )))) = identifier) ;) (expression_statement "cVar10 = *(char *)(iVar14 + 0xe);" (assignment_expression "cVar10 = *(char *)(iVar14 + 0xe)" identifier = (pointer_expression "*(char *)(iVar14 + 0xe)" * (cast_expression "(char *)(iVar14 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xe)" ( (binary_expression "iVar14 + 0xe" identifier + number_literal) ))))) ;) }))) }) (else_clause "else {\n      iVar9 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar9 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14);\n      }\n      else {\n        puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n      }\n      *(int *)(puVar3 + 8) = iVar9;\n      cVar10 = *(char *)(iVar14 + 0xe);\n      if (cVar10 == 'U') {\n        iVar13 = iVar9 + -1;\n        if (-1 < local_50) {\n          iVar13 = local_50;\n        }\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n      }\n    }" else (compound_statement "{\n      iVar9 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar9 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14);\n      }\n      else {\n        puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n      }\n      *(int *)(puVar3 + 8) = iVar9;\n      cVar10 = *(char *)(iVar14 + 0xe);\n      if (cVar10 == 'U') {\n        iVar13 = iVar9 + -1;\n        if (-1 < local_50) {\n          iVar13 = local_50;\n        }\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n      }\n    }" { (expression_statement "iVar9 = piVar11[0x1b];" (assignment_expression "iVar9 = piVar11[0x1b]" identifier = (subscript_expression "piVar11[0x1b]" identifier [ number_literal ])) ;) (if_statement "if (iVar13 < 0) {\n        iVar13 = iVar9 + -1;\n      }" if (parenthesized_expression "(iVar13 < 0)" ( (binary_expression "iVar13 < 0" identifier < number_literal) )) (compound_statement "{\n        iVar13 = iVar9 + -1;\n      }" { (expression_statement "iVar13 = iVar9 + -1;" (assignment_expression "iVar13 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) })) (if_statement "if (*(char *)(*piVar11 + 0x51) == '\0') {\n        puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14);\n      }\n      else {\n        puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n      }" if (parenthesized_expression "(*(char *)(*piVar11 + 0x51) == '\0')" ( (binary_expression "*(char *)(*piVar11 + 0x51) == '\0'" (pointer_expression "*(char *)(*piVar11 + 0x51)" * (cast_expression "(char *)(*piVar11 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar11 + 0x51)" ( (binary_expression "*piVar11 + 0x51" (pointer_expression "*piVar11" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14);\n      }" { (expression_statement "puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14);" (assignment_expression "puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14)" identifier = (cast_expression "(undefined *)(piVar11[0x1a] + iVar13 * 0x14)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar11[0x1a] + iVar13 * 0x14)" ( (binary_expression "piVar11[0x1a] + iVar13 * 0x14" (subscript_expression "piVar11[0x1a]" identifier [ number_literal ]) + (binary_expression "iVar13 * 0x14" identifier * number_literal)) )))) ;) }) (else_clause "else {\n        puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n      }" else (compound_statement "{\n        puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n      }" { (expression_statement "puVar3 = PTR_DAT_0015b5d8 + -0x4514;" (assignment_expression "puVar3 = PTR_DAT_0015b5d8 + -0x4514" identifier = (binary_expression "PTR_DAT_0015b5d8 + -0x4514" identifier + number_literal)) ;) }))) (expression_statement "*(int *)(puVar3 + 8) = iVar9;" (assignment_expression "*(int *)(puVar3 + 8) = iVar9" (pointer_expression "*(int *)(puVar3 + 8)" * (cast_expression "(int *)(puVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 8)" ( (binary_expression "puVar3 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "cVar10 = *(char *)(iVar14 + 0xe);" (assignment_expression "cVar10 = *(char *)(iVar14 + 0xe)" identifier = (pointer_expression "*(char *)(iVar14 + 0xe)" * (cast_expression "(char *)(iVar14 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xe)" ( (binary_expression "iVar14 + 0xe" identifier + number_literal) ))))) ;) (if_statement "if (cVar10 == 'U') {\n        iVar13 = iVar9 + -1;\n        if (-1 < local_50) {\n          iVar13 = local_50;\n        }\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n      }" if (parenthesized_expression "(cVar10 == 'U')" ( (binary_expression "cVar10 == 'U'" identifier == (char_literal "'U'" ' character ')) )) (compound_statement "{\n        iVar13 = iVar9 + -1;\n        if (-1 < local_50) {\n          iVar13 = local_50;\n        }\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n      }" { (expression_statement "iVar13 = iVar9 + -1;" (assignment_expression "iVar13 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (if_statement "if (-1 < local_50) {\n          iVar13 = local_50;\n        }" if (parenthesized_expression "(-1 < local_50)" ( (binary_expression "-1 < local_50" number_literal < identifier) )) (compound_statement "{\n          iVar13 = local_50;\n        }" { (expression_statement "iVar13 = local_50;" (assignment_expression "iVar13 = local_50" identifier = identifier) ;) })) (if_statement "if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }" if (parenthesized_expression "(*(char *)(*piVar11 + 0x51) == '\0')" ( (binary_expression "*(char *)(*piVar11 + 0x51) == '\0'" (pointer_expression "*(char *)(*piVar11 + 0x51)" * (cast_expression "(char *)(*piVar11 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar11 + 0x51)" ( (binary_expression "*piVar11 + 0x51" (pointer_expression "*piVar11" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }" { (expression_statement "*(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;" (assignment_expression "*(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9" (pointer_expression "*(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8)" * (cast_expression "(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar11[0x1a] + iVar13 * 0x14 + 8)" ( (binary_expression "piVar11[0x1a] + iVar13 * 0x14 + 8" (binary_expression "piVar11[0x1a] + iVar13 * 0x14" (subscript_expression "piVar11[0x1a]" identifier [ number_literal ]) + (binary_expression "iVar13 * 0x14" identifier * number_literal)) + number_literal) )))) = identifier) ;) (expression_statement "cVar10 = *(char *)(iVar14 + 0xe);" (assignment_expression "cVar10 = *(char *)(iVar14 + 0xe)" identifier = (pointer_expression "*(char *)(iVar14 + 0xe)" * (cast_expression "(char *)(iVar14 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xe)" ( (binary_expression "iVar14 + 0xe" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }" else (compound_statement "{\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }" { (expression_statement "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;" (assignment_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9" (pointer_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c)" * (cast_expression "(int *)(PTR_DAT_0015b5d8 + -0x450c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x450c)" ( (binary_expression "PTR_DAT_0015b5d8 + -0x450c" identifier + number_literal) )))) = identifier) ;) (expression_statement "cVar10 = *(char *)(iVar14 + 0xe);" (assignment_expression "cVar10 = *(char *)(iVar14 + 0xe)" identifier = (pointer_expression "*(char *)(iVar14 + 0xe)" * (cast_expression "(char *)(iVar14 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xe)" ( (binary_expression "iVar14 + 0xe" identifier + number_literal) ))))) ;) }))) })) }))) (if_statement "if (cVar10 == 'S') {\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n    }" if (parenthesized_expression "(cVar10 == 'S')" ( (binary_expression "cVar10 == 'S'" identifier == (char_literal "'S'" ' character ')) )) (compound_statement "{\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n    }" { (expression_statement "local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);" (assignment_expression "local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1)" identifier = (call_expression "(*pcVar15)(piVar11,0x2f,iVar17,0,1)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x2f,iVar17,0,1)" ( identifier , number_literal , identifier , number_literal , number_literal )))) ;) })) (if_statement "if (*(char *)(iVar14 + 0xd) == 'S') {\n      iVar17 = (*pcVar15)(piVar11,0x2f,iVar18,0,1);\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        if (iVar17 < 0) {\n          iVar17 = iVar9 + -1;\n        }\n        goto LAB_000c1d20;\n      }\n    }\n    else {\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        iVar17 = 0;\nLAB_000c1d20:\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n      }\n    }" if (parenthesized_expression "(*(char *)(iVar14 + 0xd) == 'S')" ( (binary_expression "*(char *)(iVar14 + 0xd) == 'S'" (pointer_expression "*(char *)(iVar14 + 0xd)" * (cast_expression "(char *)(iVar14 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xd)" ( (binary_expression "iVar14 + 0xd" identifier + number_literal) )))) == (char_literal "'S'" ' character ')) )) (compound_statement "{\n      iVar17 = (*pcVar15)(piVar11,0x2f,iVar18,0,1);\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        if (iVar17 < 0) {\n          iVar17 = iVar9 + -1;\n        }\n        goto LAB_000c1d20;\n      }\n    }" { (expression_statement "iVar17 = (*pcVar15)(piVar11,0x2f,iVar18,0,1);" (assignment_expression "iVar17 = (*pcVar15)(piVar11,0x2f,iVar18,0,1)" identifier = (call_expression "(*pcVar15)(piVar11,0x2f,iVar18,0,1)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x2f,iVar18,0,1)" ( identifier , number_literal , identifier , number_literal , number_literal )))) ;) (expression_statement "(*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);" (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x2764))" ( (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x2764)" * (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2764)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2764)" ( (binary_expression "PTR_LAB_0015b710 + -0x2764" identifier + number_literal) )))) )) (argument_list "(param_1,iVar14,0)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);" (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x2524))" ( (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x2524)" * (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2524)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2524)" ( (binary_expression "PTR_LAB_0015b710 + -0x2524" identifier + number_literal) )))) )) (argument_list "(param_1,iVar14,param_4,param_5)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);" (call_expression "(*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" * (cast_expression "(undefined4 *)(iVar14 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x24)" ( (binary_expression "iVar14 + 0x24" identifier + number_literal) )))) , (binary_expression "piVar11[0x1b] + 2" (subscript_expression "piVar11[0x1b]" identifier [ number_literal ]) + number_literal) , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar11,0xb,0,iVar23,0);" (call_expression "(*pcVar15)(piVar11,0xb,0,iVar23,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0xb,0,iVar23,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) (expression_statement "uVar2 = (uint)*(byte *)(iVar14 + 0xd);" (assignment_expression "uVar2 = (uint)*(byte *)(iVar14 + 0xd)" identifier = (binary_expression "(uint)*(byte *)(iVar14 + 0xd)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar14 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xd)" ( (binary_expression "iVar14 + 0xd" identifier + number_literal) ))))) ;) (if_statement "if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        if (iVar17 < 0) {\n          iVar17 = iVar9 + -1;\n        }\n        goto LAB_000c1d20;\n      }" if (parenthesized_expression "(uVar2 == 0x53)" ( (binary_expression "uVar2 == 0x53" identifier == number_literal) )) (compound_statement "{\n        iVar9 = piVar11[0x1b];\n        if (iVar17 < 0) {\n          iVar17 = iVar9 + -1;\n        }\n        goto LAB_000c1d20;\n      }" { (expression_statement "iVar9 = piVar11[0x1b];" (assignment_expression "iVar9 = piVar11[0x1b]" identifier = (subscript_expression "piVar11[0x1b]" identifier [ number_literal ])) ;) (if_statement "if (iVar17 < 0) {\n          iVar17 = iVar9 + -1;\n        }" if (parenthesized_expression "(iVar17 < 0)" ( (binary_expression "iVar17 < 0" identifier < number_literal) )) (compound_statement "{\n          iVar17 = iVar9 + -1;\n        }" { (expression_statement "iVar17 = iVar9 + -1;" (assignment_expression "iVar17 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) })) (goto_statement "goto LAB_000c1d20;" goto statement_identifier ;) })) }) (else_clause "else {\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        iVar17 = 0;\nLAB_000c1d20:\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n      }\n    }" else (compound_statement "{\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        iVar17 = 0;\nLAB_000c1d20:\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n      }\n    }" { (expression_statement "(*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);" (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x2764))" ( (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x2764)" * (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2764)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2764)" ( (binary_expression "PTR_LAB_0015b710 + -0x2764" identifier + number_literal) )))) )) (argument_list "(param_1,iVar14,0)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);" (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x2524))" ( (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x2524)" * (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2524)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2524)" ( (binary_expression "PTR_LAB_0015b710 + -0x2524" identifier + number_literal) )))) )) (argument_list "(param_1,iVar14,param_4,param_5)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);" (call_expression "(*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" * (cast_expression "(undefined4 *)(iVar14 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x24)" ( (binary_expression "iVar14 + 0x24" identifier + number_literal) )))) , (binary_expression "piVar11[0x1b] + 2" (subscript_expression "piVar11[0x1b]" identifier [ number_literal ]) + number_literal) , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar11,0xb,0,iVar23,0);" (call_expression "(*pcVar15)(piVar11,0xb,0,iVar23,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0xb,0,iVar23,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) (expression_statement "uVar2 = (uint)*(byte *)(iVar14 + 0xd);" (assignment_expression "uVar2 = (uint)*(byte *)(iVar14 + 0xd)" identifier = (binary_expression "(uint)*(byte *)(iVar14 + 0xd)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar14 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xd)" ( (binary_expression "iVar14 + 0xd" identifier + number_literal) ))))) ;) (if_statement "if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        iVar17 = 0;\nLAB_000c1d20:\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n      }" if (parenthesized_expression "(uVar2 == 0x53)" ( (binary_expression "uVar2 == 0x53" identifier == number_literal) )) (compound_statement "{\n        iVar9 = piVar11[0x1b];\n        iVar17 = 0;\nLAB_000c1d20:\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n      }" { (expression_statement "iVar9 = piVar11[0x1b];" (assignment_expression "iVar9 = piVar11[0x1b]" identifier = (subscript_expression "piVar11[0x1b]" identifier [ number_literal ])) ;) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000c1d20:\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }" statement_identifier : (if_statement "if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }" if (parenthesized_expression "(*(char *)(*piVar11 + 0x51) == '\0')" ( (binary_expression "*(char *)(*piVar11 + 0x51) == '\0'" (pointer_expression "*(char *)(*piVar11 + 0x51)" * (cast_expression "(char *)(*piVar11 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar11 + 0x51)" ( (binary_expression "*piVar11 + 0x51" (pointer_expression "*piVar11" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }" { (expression_statement "*(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;" (assignment_expression "*(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9" (pointer_expression "*(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8)" * (cast_expression "(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar11[0x1a] + iVar17 * 0x14 + 8)" ( (binary_expression "piVar11[0x1a] + iVar17 * 0x14 + 8" (binary_expression "piVar11[0x1a] + iVar17 * 0x14" (subscript_expression "piVar11[0x1a]" identifier [ number_literal ]) + (binary_expression "iVar17 * 0x14" identifier * number_literal)) + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = (uint)*(byte *)(iVar14 + 0xd);" (assignment_expression "uVar2 = (uint)*(byte *)(iVar14 + 0xd)" identifier = (binary_expression "(uint)*(byte *)(iVar14 + 0xd)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar14 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xd)" ( (binary_expression "iVar14 + 0xd" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }" else (compound_statement "{\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }" { (expression_statement "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;" (assignment_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9" (pointer_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c)" * (cast_expression "(int *)(PTR_DAT_0015b5d8 + -0x450c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x450c)" ( (binary_expression "PTR_DAT_0015b5d8 + -0x450c" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = (uint)*(byte *)(iVar14 + 0xd);" (assignment_expression "uVar2 = (uint)*(byte *)(iVar14 + 0xd)" identifier = (binary_expression "(uint)*(byte *)(iVar14 + 0xd)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar14 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xd)" ( (binary_expression "iVar14 + 0xd" identifier + number_literal) ))))) ;) })))) })) }))) (if_statement "if ((uVar2 - 0x52 < 2) || (uVar2 == 0x55)) {\n      iVar17 = *(int *)(param_1 + 0x38) + -1;\n      *(int *)(param_1 + 0x38) = iVar17;\n      cVar10 = *(char *)(iVar14 + 0xd);\n      if (cVar10 == 'U') {\n        (*pcVar15)(piVar11,0x2f,iVar18,iVar17,1);\n        cVar10 = *(char *)(iVar14 + 0xd);\n      }\n      if (cVar10 == 'S') {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 2,0);\n        (*pcVar15)(piVar11,0xb,0,iVar17,0);\n      }\n      else {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0);\n      }\n      (*pcVar21)(param_1,iVar14,iVar20,1,uVar4,local_30);\n      (*pcVar24)(piVar11,iVar17);\n    }" if (parenthesized_expression "((uVar2 - 0x52 < 2) || (uVar2 == 0x55))" ( (binary_expression "(uVar2 - 0x52 < 2) || (uVar2 == 0x55)" (parenthesized_expression "(uVar2 - 0x52 < 2)" ( (binary_expression "uVar2 - 0x52 < 2" (binary_expression "uVar2 - 0x52" identifier - number_literal) < number_literal) )) || (parenthesized_expression "(uVar2 == 0x55)" ( (binary_expression "uVar2 == 0x55" identifier == number_literal) ))) )) (compound_statement "{\n      iVar17 = *(int *)(param_1 + 0x38) + -1;\n      *(int *)(param_1 + 0x38) = iVar17;\n      cVar10 = *(char *)(iVar14 + 0xd);\n      if (cVar10 == 'U') {\n        (*pcVar15)(piVar11,0x2f,iVar18,iVar17,1);\n        cVar10 = *(char *)(iVar14 + 0xd);\n      }\n      if (cVar10 == 'S') {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 2,0);\n        (*pcVar15)(piVar11,0xb,0,iVar17,0);\n      }\n      else {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0);\n      }\n      (*pcVar21)(param_1,iVar14,iVar20,1,uVar4,local_30);\n      (*pcVar24)(piVar11,iVar17);\n    }" { (expression_statement "iVar17 = *(int *)(param_1 + 0x38) + -1;" (assignment_expression "iVar17 = *(int *)(param_1 + 0x38) + -1" identifier = (binary_expression "*(int *)(param_1 + 0x38) + -1" (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(param_1 + 0x38) = iVar17;" (assignment_expression "*(int *)(param_1 + 0x38) = iVar17" (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "cVar10 = *(char *)(iVar14 + 0xd);" (assignment_expression "cVar10 = *(char *)(iVar14 + 0xd)" identifier = (pointer_expression "*(char *)(iVar14 + 0xd)" * (cast_expression "(char *)(iVar14 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xd)" ( (binary_expression "iVar14 + 0xd" identifier + number_literal) ))))) ;) (if_statement "if (cVar10 == 'U') {\n        (*pcVar15)(piVar11,0x2f,iVar18,iVar17,1);\n        cVar10 = *(char *)(iVar14 + 0xd);\n      }" if (parenthesized_expression "(cVar10 == 'U')" ( (binary_expression "cVar10 == 'U'" identifier == (char_literal "'U'" ' character ')) )) (compound_statement "{\n        (*pcVar15)(piVar11,0x2f,iVar18,iVar17,1);\n        cVar10 = *(char *)(iVar14 + 0xd);\n      }" { (expression_statement "(*pcVar15)(piVar11,0x2f,iVar18,iVar17,1);" (call_expression "(*pcVar15)(piVar11,0x2f,iVar18,iVar17,1)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x2f,iVar18,iVar17,1)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "cVar10 = *(char *)(iVar14 + 0xd);" (assignment_expression "cVar10 = *(char *)(iVar14 + 0xd)" identifier = (pointer_expression "*(char *)(iVar14 + 0xd)" * (cast_expression "(char *)(iVar14 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xd)" ( (binary_expression "iVar14 + 0xd" identifier + number_literal) ))))) ;) })) (if_statement "if (cVar10 == 'S') {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 2,0);\n        (*pcVar15)(piVar11,0xb,0,iVar17,0);\n      }\n      else {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0);\n      }" if (parenthesized_expression "(cVar10 == 'S')" ( (binary_expression "cVar10 == 'S'" identifier == (char_literal "'S'" ' character ')) )) (compound_statement "{\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 2,0);\n        (*pcVar15)(piVar11,0xb,0,iVar17,0);\n      }" { (expression_statement "(*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 2,0);" (call_expression "(*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 2,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,5,iVar20,piVar11[0x1b] + 2,0)" ( identifier , number_literal , identifier , (binary_expression "piVar11[0x1b] + 2" (subscript_expression "piVar11[0x1b]" identifier [ number_literal ]) + number_literal) , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar11,0xb,0,iVar17,0);" (call_expression "(*pcVar15)(piVar11,0xb,0,iVar17,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0xb,0,iVar17,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) }) (else_clause "else {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0);\n      }" else (compound_statement "{\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0);\n      }" { (expression_statement "(*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0);" (call_expression "(*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,5,iVar20,piVar11[0x1b] + 1,0)" ( identifier , number_literal , identifier , (binary_expression "piVar11[0x1b] + 1" (subscript_expression "piVar11[0x1b]" identifier [ number_literal ]) + number_literal) , number_literal ))) ;) }))) (expression_statement "(*pcVar21)(param_1,iVar14,iVar20,1,uVar4,local_30);" (call_expression "(*pcVar21)(param_1,iVar14,iVar20,1,uVar4,local_30)" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "(param_1,iVar14,iVar20,1,uVar4,local_30)" ( identifier , identifier , identifier , number_literal , identifier , identifier ))) ;) (expression_statement "(*pcVar24)(piVar11,iVar17);" (call_expression "(*pcVar24)(piVar11,iVar17)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(piVar11,iVar17)" ( identifier , identifier ))) ;) })) (if_statement "if (*(char *)(iVar14 + 0xe) == 'S') {\n      iVar18 = piVar11[0x1b];\n      if (local_50 < 0) {\n        local_50 = iVar18 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + local_50 * 0x14 + 8) = iVar18;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n      }\n    }" if (parenthesized_expression "(*(char *)(iVar14 + 0xe) == 'S')" ( (binary_expression "*(char *)(iVar14 + 0xe) == 'S'" (pointer_expression "*(char *)(iVar14 + 0xe)" * (cast_expression "(char *)(iVar14 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xe)" ( (binary_expression "iVar14 + 0xe" identifier + number_literal) )))) == (char_literal "'S'" ' character ')) )) (compound_statement "{\n      iVar18 = piVar11[0x1b];\n      if (local_50 < 0) {\n        local_50 = iVar18 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + local_50 * 0x14 + 8) = iVar18;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n      }\n    }" { (expression_statement "iVar18 = piVar11[0x1b];" (assignment_expression "iVar18 = piVar11[0x1b]" identifier = (subscript_expression "piVar11[0x1b]" identifier [ number_literal ])) ;) (if_statement "if (local_50 < 0) {\n        local_50 = iVar18 + -1;\n      }" if (parenthesized_expression "(local_50 < 0)" ( (binary_expression "local_50 < 0" identifier < number_literal) )) (compound_statement "{\n        local_50 = iVar18 + -1;\n      }" { (expression_statement "local_50 = iVar18 + -1;" (assignment_expression "local_50 = iVar18 + -1" identifier = (binary_expression "iVar18 + -1" identifier + number_literal)) ;) })) (if_statement "if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + local_50 * 0x14 + 8) = iVar18;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n      }" if (parenthesized_expression "(*(char *)(*piVar11 + 0x51) == '\0')" ( (binary_expression "*(char *)(*piVar11 + 0x51) == '\0'" (pointer_expression "*(char *)(*piVar11 + 0x51)" * (cast_expression "(char *)(*piVar11 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar11 + 0x51)" ( (binary_expression "*piVar11 + 0x51" (pointer_expression "*piVar11" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        *(int *)(piVar11[0x1a] + local_50 * 0x14 + 8) = iVar18;\n      }" { (expression_statement "*(int *)(piVar11[0x1a] + local_50 * 0x14 + 8) = iVar18;" (assignment_expression "*(int *)(piVar11[0x1a] + local_50 * 0x14 + 8) = iVar18" (pointer_expression "*(int *)(piVar11[0x1a] + local_50 * 0x14 + 8)" * (cast_expression "(int *)(piVar11[0x1a] + local_50 * 0x14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar11[0x1a] + local_50 * 0x14 + 8)" ( (binary_expression "piVar11[0x1a] + local_50 * 0x14 + 8" (binary_expression "piVar11[0x1a] + local_50 * 0x14" (subscript_expression "piVar11[0x1a]" identifier [ number_literal ]) + (binary_expression "local_50 * 0x14" identifier * number_literal)) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n      }" else (compound_statement "{\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n      }" { (expression_statement "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;" (assignment_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18" (pointer_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c)" * (cast_expression "(int *)(PTR_DAT_0015b5d8 + -0x450c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x450c)" ( (binary_expression "PTR_DAT_0015b5d8 + -0x450c" identifier + number_literal) )))) = identifier) ;) }))) })) (expression_statement "(*pcVar15)(piVar11,0xb,0,iVar12,0);" (call_expression "(*pcVar15)(piVar11,0xb,0,iVar12,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0xb,0,iVar12,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) (expression_statement "(*pcVar24)(piVar11,iVar23);" (call_expression "(*pcVar24)(piVar11,iVar23)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(piVar11,iVar23)" ( identifier , identifier ))) ;) (expression_statement "(*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);" (call_expression "(*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" * (cast_expression "(undefined4 *)(iVar14 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x24)" ( (binary_expression "iVar14 + 0x24" identifier + number_literal) )))) , number_literal , number_literal ))) ;) }) (else_clause "else {\n    if (uVar2 != 0x525700) {\nLAB_000c08b4:\n      iVar18 = iVar14;\n      do {\n        if (((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        iVar18 = *(int *)(iVar18 + 0x18);\n      } while (iVar18 != 0);\n      piVar16 = *(int **)(param_1 + 8);\n      if (piVar16 == (int *)0x0) {\n        piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      }\n      piVar11 = *(int **)(iVar14 + 4);\n      iVar17 = *(int *)(param_1 + 0x2c) + 1;\n      uVar4 = *(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30);\n      iVar20 = (int)*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a);\n      iVar18 = iVar20 + iVar17;\n      iVar5 = iVar20 + 2 + *(int *)(param_1 + 0x2c);\n      if (*(char *)(iVar14 + 0xe) == 'W') {\n        *(int *)(param_1 + 0x2c) = iVar5;\n        piVar19 = (int *)0x0;\n        if (0 < iVar20) goto LAB_000c0980;\n        if (piVar11 != (int *)0x0) {\n          local_50 = *piVar11;\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }\n      else {\n        piVar19 = *(int **)(iVar14 + 8);\n        *(int *)(param_1 + 0x2c) = iVar5;\n        if (iVar20 < 1) {\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }\n        puVar3 = PTR_LAB_0015b714;\n        if (piVar11 == (int *)0x0) {\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }\n        else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }\n        (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);\n        (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n        (*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);\n        (*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n        (*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1);\n        if (iVar5 != 0) {\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }\n      }\nLAB_000c0b50:\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,0xffffffff,0,iVar17,0);\n      if (*(int *)(iVar14 + 0x40) < 1) {\n        (*pcVar15)(piVar16,0x4b,0,iVar18,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }\n      else {\n        (*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);\n      }\n      (*pcVar15)(piVar16,0x79,*(undefined4 *)(iVar14 + 0x24),iVar18 + 1,0);\n      (*pcVar15)(piVar16,0x7a,*(undefined4 *)(iVar14 + 0x24),iVar18,iVar18 + 1);\n      (*(code *)(PTR_LAB_0015b710 + -0x18cc))(param_3);\n      (*pcVar24)(param_1,iVar14,1);\n      (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + 3,0);\n      (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n      iVar18 = 5;\n      iVar5 = *(int *)(iVar14 + 0x24);\n      (*pcVar15)(piVar16,5,iVar5,piVar16[0x1b] + -1,0);\n      goto LAB_000c0f44;\n    }\nLAB_000c0c60:\n    piVar11 = *(int **)(param_1 + 8);\n    if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      piVar16 = *(int **)(iVar14 + 8);\n      local_48 = *(int **)(iVar14 + 4);\n      if (piVar16 != (int *)0x0) goto LAB_000c0c7c;\nLAB_000c1450:\n      local_58 = 0;\n      bVar1 = false;\n    }\n    else {\n      local_48 = *(int **)(iVar14 + 4);\n      piVar16 = *(int **)(iVar14 + 8);\n      if (piVar16 == (int *)0x0) goto LAB_000c1450;\nLAB_000c0c7c:\n      local_58 = *piVar16;\n      bVar1 = (*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700;\n    }\n    puVar3 = PTR_LAB_0015b714;\n    iVar18 = *(int *)(param_1 + 0x2c);\n    iVar23 = *(int *)(param_1 + 0x28);\n    iVar17 = *(int *)(param_1 + 0x38);\n    iVar5 = iVar18 + local_58;\n    iVar9 = iVar5 + 2;\n    iVar20 = iVar17 + -2;\n    *(int *)(param_1 + 0x28) = iVar23 + 1;\n    iVar5 = iVar5 + 1;\n    *(int *)(param_1 + 0x38) = iVar20;\n    *(int *)(param_1 + 0x2c) = iVar9;\n    iVar17 = iVar17 + -1;\n    (*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar20,&local_30\n              );\n    pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    local_60 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar24)(piVar11,iVar20);\n    (*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 2,0);\n    (*pcVar15)(piVar11,0x6f,iVar23,*(undefined4 *)(iVar14 + 0x24),0);\n    uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);\n    (*pcVar15)(piVar11,0x46,0,iVar9,0);\n    (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n    (*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar17,0);\n    if (bVar1) {\n      iVar20 = piVar11[0x1b];\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n      (*pcVar15)(piVar11,5,iVar23,iVar20,0);\n      (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n      local_50 = piVar11[0x1b];\n      if (piVar16 != (int *)0x0) goto LAB_000c0e28;\n      pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n    }\n    else {\n      local_50 = piVar11[0x1b];\n      if (piVar16 == (int *)0x0) {\n        pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);\n        uVar6 = uVar4;\n        if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n    }\nLAB_000c0e5c:\n    (*pcVar15)(piVar11,0x53,iVar9,1,0);\n    (*pcVar15)(piVar11,5,iVar23,local_50,0);\n    (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n    (*pcVar24)(piVar11,iVar17);\n    (*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n  }" else (compound_statement "{\n    if (uVar2 != 0x525700) {\nLAB_000c08b4:\n      iVar18 = iVar14;\n      do {\n        if (((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        iVar18 = *(int *)(iVar18 + 0x18);\n      } while (iVar18 != 0);\n      piVar16 = *(int **)(param_1 + 8);\n      if (piVar16 == (int *)0x0) {\n        piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      }\n      piVar11 = *(int **)(iVar14 + 4);\n      iVar17 = *(int *)(param_1 + 0x2c) + 1;\n      uVar4 = *(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30);\n      iVar20 = (int)*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a);\n      iVar18 = iVar20 + iVar17;\n      iVar5 = iVar20 + 2 + *(int *)(param_1 + 0x2c);\n      if (*(char *)(iVar14 + 0xe) == 'W') {\n        *(int *)(param_1 + 0x2c) = iVar5;\n        piVar19 = (int *)0x0;\n        if (0 < iVar20) goto LAB_000c0980;\n        if (piVar11 != (int *)0x0) {\n          local_50 = *piVar11;\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }\n      else {\n        piVar19 = *(int **)(iVar14 + 8);\n        *(int *)(param_1 + 0x2c) = iVar5;\n        if (iVar20 < 1) {\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }\n        puVar3 = PTR_LAB_0015b714;\n        if (piVar11 == (int *)0x0) {\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }\n        else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }\n        (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);\n        (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n        (*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);\n        (*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n        (*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1);\n        if (iVar5 != 0) {\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }\n      }\nLAB_000c0b50:\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,0xffffffff,0,iVar17,0);\n      if (*(int *)(iVar14 + 0x40) < 1) {\n        (*pcVar15)(piVar16,0x4b,0,iVar18,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }\n      else {\n        (*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);\n      }\n      (*pcVar15)(piVar16,0x79,*(undefined4 *)(iVar14 + 0x24),iVar18 + 1,0);\n      (*pcVar15)(piVar16,0x7a,*(undefined4 *)(iVar14 + 0x24),iVar18,iVar18 + 1);\n      (*(code *)(PTR_LAB_0015b710 + -0x18cc))(param_3);\n      (*pcVar24)(param_1,iVar14,1);\n      (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + 3,0);\n      (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n      iVar18 = 5;\n      iVar5 = *(int *)(iVar14 + 0x24);\n      (*pcVar15)(piVar16,5,iVar5,piVar16[0x1b] + -1,0);\n      goto LAB_000c0f44;\n    }\nLAB_000c0c60:\n    piVar11 = *(int **)(param_1 + 8);\n    if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      piVar16 = *(int **)(iVar14 + 8);\n      local_48 = *(int **)(iVar14 + 4);\n      if (piVar16 != (int *)0x0) goto LAB_000c0c7c;\nLAB_000c1450:\n      local_58 = 0;\n      bVar1 = false;\n    }\n    else {\n      local_48 = *(int **)(iVar14 + 4);\n      piVar16 = *(int **)(iVar14 + 8);\n      if (piVar16 == (int *)0x0) goto LAB_000c1450;\nLAB_000c0c7c:\n      local_58 = *piVar16;\n      bVar1 = (*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700;\n    }\n    puVar3 = PTR_LAB_0015b714;\n    iVar18 = *(int *)(param_1 + 0x2c);\n    iVar23 = *(int *)(param_1 + 0x28);\n    iVar17 = *(int *)(param_1 + 0x38);\n    iVar5 = iVar18 + local_58;\n    iVar9 = iVar5 + 2;\n    iVar20 = iVar17 + -2;\n    *(int *)(param_1 + 0x28) = iVar23 + 1;\n    iVar5 = iVar5 + 1;\n    *(int *)(param_1 + 0x38) = iVar20;\n    *(int *)(param_1 + 0x2c) = iVar9;\n    iVar17 = iVar17 + -1;\n    (*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar20,&local_30\n              );\n    pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    local_60 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar24)(piVar11,iVar20);\n    (*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 2,0);\n    (*pcVar15)(piVar11,0x6f,iVar23,*(undefined4 *)(iVar14 + 0x24),0);\n    uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);\n    (*pcVar15)(piVar11,0x46,0,iVar9,0);\n    (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n    (*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar17,0);\n    if (bVar1) {\n      iVar20 = piVar11[0x1b];\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n      (*pcVar15)(piVar11,5,iVar23,iVar20,0);\n      (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n      local_50 = piVar11[0x1b];\n      if (piVar16 != (int *)0x0) goto LAB_000c0e28;\n      pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n    }\n    else {\n      local_50 = piVar11[0x1b];\n      if (piVar16 == (int *)0x0) {\n        pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);\n        uVar6 = uVar4;\n        if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n    }\nLAB_000c0e5c:\n    (*pcVar15)(piVar11,0x53,iVar9,1,0);\n    (*pcVar15)(piVar11,5,iVar23,local_50,0);\n    (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n    (*pcVar24)(piVar11,iVar17);\n    (*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n  }" { (if_statement "if (uVar2 != 0x525700) {\nLAB_000c08b4:\n      iVar18 = iVar14;\n      do {\n        if (((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        iVar18 = *(int *)(iVar18 + 0x18);\n      } while (iVar18 != 0);\n      piVar16 = *(int **)(param_1 + 8);\n      if (piVar16 == (int *)0x0) {\n        piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      }\n      piVar11 = *(int **)(iVar14 + 4);\n      iVar17 = *(int *)(param_1 + 0x2c) + 1;\n      uVar4 = *(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30);\n      iVar20 = (int)*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a);\n      iVar18 = iVar20 + iVar17;\n      iVar5 = iVar20 + 2 + *(int *)(param_1 + 0x2c);\n      if (*(char *)(iVar14 + 0xe) == 'W') {\n        *(int *)(param_1 + 0x2c) = iVar5;\n        piVar19 = (int *)0x0;\n        if (0 < iVar20) goto LAB_000c0980;\n        if (piVar11 != (int *)0x0) {\n          local_50 = *piVar11;\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }\n      else {\n        piVar19 = *(int **)(iVar14 + 8);\n        *(int *)(param_1 + 0x2c) = iVar5;\n        if (iVar20 < 1) {\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }\n        puVar3 = PTR_LAB_0015b714;\n        if (piVar11 == (int *)0x0) {\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }\n        else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }\n        (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);\n        (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n        (*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);\n        (*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n        (*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1);\n        if (iVar5 != 0) {\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }\n      }\nLAB_000c0b50:\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,0xffffffff,0,iVar17,0);\n      if (*(int *)(iVar14 + 0x40) < 1) {\n        (*pcVar15)(piVar16,0x4b,0,iVar18,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }\n      else {\n        (*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);\n      }\n      (*pcVar15)(piVar16,0x79,*(undefined4 *)(iVar14 + 0x24),iVar18 + 1,0);\n      (*pcVar15)(piVar16,0x7a,*(undefined4 *)(iVar14 + 0x24),iVar18,iVar18 + 1);\n      (*(code *)(PTR_LAB_0015b710 + -0x18cc))(param_3);\n      (*pcVar24)(param_1,iVar14,1);\n      (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + 3,0);\n      (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n      iVar18 = 5;\n      iVar5 = *(int *)(iVar14 + 0x24);\n      (*pcVar15)(piVar16,5,iVar5,piVar16[0x1b] + -1,0);\n      goto LAB_000c0f44;\n    }" if (parenthesized_expression "(uVar2 != 0x525700)" ( (binary_expression "uVar2 != 0x525700" identifier != number_literal) )) (compound_statement "{\nLAB_000c08b4:\n      iVar18 = iVar14;\n      do {\n        if (((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        iVar18 = *(int *)(iVar18 + 0x18);\n      } while (iVar18 != 0);\n      piVar16 = *(int **)(param_1 + 8);\n      if (piVar16 == (int *)0x0) {\n        piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      }\n      piVar11 = *(int **)(iVar14 + 4);\n      iVar17 = *(int *)(param_1 + 0x2c) + 1;\n      uVar4 = *(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30);\n      iVar20 = (int)*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a);\n      iVar18 = iVar20 + iVar17;\n      iVar5 = iVar20 + 2 + *(int *)(param_1 + 0x2c);\n      if (*(char *)(iVar14 + 0xe) == 'W') {\n        *(int *)(param_1 + 0x2c) = iVar5;\n        piVar19 = (int *)0x0;\n        if (0 < iVar20) goto LAB_000c0980;\n        if (piVar11 != (int *)0x0) {\n          local_50 = *piVar11;\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }\n      else {\n        piVar19 = *(int **)(iVar14 + 8);\n        *(int *)(param_1 + 0x2c) = iVar5;\n        if (iVar20 < 1) {\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }\n        puVar3 = PTR_LAB_0015b714;\n        if (piVar11 == (int *)0x0) {\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }\n        else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }\n        (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);\n        (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n        (*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);\n        (*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n        (*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1);\n        if (iVar5 != 0) {\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }\n      }\nLAB_000c0b50:\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,0xffffffff,0,iVar17,0);\n      if (*(int *)(iVar14 + 0x40) < 1) {\n        (*pcVar15)(piVar16,0x4b,0,iVar18,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }\n      else {\n        (*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);\n      }\n      (*pcVar15)(piVar16,0x79,*(undefined4 *)(iVar14 + 0x24),iVar18 + 1,0);\n      (*pcVar15)(piVar16,0x7a,*(undefined4 *)(iVar14 + 0x24),iVar18,iVar18 + 1);\n      (*(code *)(PTR_LAB_0015b710 + -0x18cc))(param_3);\n      (*pcVar24)(param_1,iVar14,1);\n      (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + 3,0);\n      (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n      iVar18 = 5;\n      iVar5 = *(int *)(iVar14 + 0x24);\n      (*pcVar15)(piVar16,5,iVar5,piVar16[0x1b] + -1,0);\n      goto LAB_000c0f44;\n    }" { (labeled_statement "LAB_000c08b4:\n      iVar18 = iVar14;" statement_identifier : (expression_statement "iVar18 = iVar14;" (assignment_expression "iVar18 = iVar14" identifier = identifier) ;)) (do_statement "do {\n        if (((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        iVar18 = *(int *)(iVar18 + 0x18);\n      } while (iVar18 != 0);" do (compound_statement "{\n        if (((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        iVar18 = *(int *)(iVar18 + 0x18);\n      }" { (if_statement "if (((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;" if (parenthesized_expression "(((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))" ( (binary_expression "((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c)))" (parenthesized_expression "((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00))" ( (binary_expression "(((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)" (parenthesized_expression "(((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4))" ( (binary_expression "((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)" (parenthesized_expression "((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0)" ( (binary_expression "(*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0" (parenthesized_expression "(*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000)" ( (binary_expression "*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000" (pointer_expression "*(uint *)(*(int *)(iVar18 + 0x20) + 4)" * (cast_expression "(uint *)(*(int *)(iVar18 + 0x20) + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0x20) + 4)" ( (binary_expression "*(int *)(iVar18 + 0x20) + 4" (pointer_expression "*(int *)(iVar18 + 0x20)" * (cast_expression "(int *)(iVar18 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x20)" ( (binary_expression "iVar18 + 0x20" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "(puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)" ( (comma_expression "puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4" (assignment_expression "puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20)" identifier = (pointer_expression "*(undefined **)(*(int *)(iVar18 + 0x20) + 0x20)" * (cast_expression "(undefined **)(*(int *)(iVar18 + 0x20) + 0x20)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar18 + 0x20) + 0x20)" ( (binary_expression "*(int *)(iVar18 + 0x20) + 0x20" (pointer_expression "*(int *)(iVar18 + 0x20)" * (cast_expression "(int *)(iVar18 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x20)" ( (binary_expression "iVar18 + 0x20" identifier + number_literal) )))) + number_literal) ))))) , (binary_expression "puVar3 == PTR_DAT_0015b694 + -0x7df4" identifier == (binary_expression "PTR_DAT_0015b694 + -0x7df4" identifier + number_literal))) ))) )) || (parenthesized_expression "(puVar3 == PTR_DAT_0015b694 + -0x7e00)" ( (binary_expression "puVar3 == PTR_DAT_0015b694 + -0x7e00" identifier == (binary_expression "PTR_DAT_0015b694 + -0x7e00" identifier + number_literal)) ))) )) || (parenthesized_expression "((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c)))" ( (parenthesized_expression "(puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))" ( (binary_expression "puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c)" (binary_expression "puVar3 == PTR_DAT_0015b694 + -0x7e08" identifier == (binary_expression "PTR_DAT_0015b694 + -0x7e08" identifier + number_literal)) || (parenthesized_expression "(puVar3 == PTR_DAT_0015b694 + -0x7e0c)" ( (binary_expression "puVar3 == PTR_DAT_0015b694 + -0x7e0c" identifier == (binary_expression "PTR_DAT_0015b694 + -0x7e0c" identifier + number_literal)) ))) )) ))) )) (goto_statement "goto LAB_000c0c60;" goto statement_identifier ;)) (expression_statement "iVar18 = *(int *)(iVar18 + 0x18);" (assignment_expression "iVar18 = *(int *)(iVar18 + 0x18)" identifier = (pointer_expression "*(int *)(iVar18 + 0x18)" * (cast_expression "(int *)(iVar18 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x18)" ( (binary_expression "iVar18 + 0x18" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) ;) (expression_statement "piVar16 = *(int **)(param_1 + 8);" (assignment_expression "piVar16 = *(int **)(param_1 + 8)" identifier = (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (if_statement "if (piVar16 == (int *)0x0) {\n        piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      }" if (parenthesized_expression "(piVar16 == (int *)0x0)" ( (binary_expression "piVar16 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      }" { (expression_statement "piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);" (assignment_expression "piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1)" identifier = (cast_expression "(int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x371c))" ( (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x371c)" * (cast_expression "(code *)(PTR_LAB_0015b710 + -0x371c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x371c)" ( (binary_expression "PTR_LAB_0015b710 + -0x371c" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))))) ;) })) (expression_statement "piVar11 = *(int **)(iVar14 + 4);" (assignment_expression "piVar11 = *(int **)(iVar14 + 4)" identifier = (pointer_expression "*(int **)(iVar14 + 4)" * (cast_expression "(int **)(iVar14 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 4)" ( (binary_expression "iVar14 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar17 = *(int *)(param_1 + 0x2c) + 1;" (assignment_expression "iVar17 = *(int *)(param_1 + 0x2c) + 1" identifier = (binary_expression "*(int *)(param_1 + 0x2c) + 1" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "uVar4 = *(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30);" (assignment_expression "uVar4 = *(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30)" identifier = (pointer_expression "*(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30)" * (cast_expression "(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0x20) + 0x30)" ( (binary_expression "*(int *)(param_2 + 0x20) + 0x30" (pointer_expression "*(int *)(param_2 + 0x20)" * (cast_expression "(int *)(param_2 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar20 = (int)*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a);" (assignment_expression "iVar20 = (int)*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a)" identifier = (cast_expression "(int)*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a)" * (cast_expression "(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a)" ( (binary_expression "*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a" (pointer_expression "*(int *)(*(int *)(param_2 + 0x20) + 0x18)" * (cast_expression "(int *)(*(int *)(param_2 + 0x20) + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0x20) + 0x18)" ( (binary_expression "*(int *)(param_2 + 0x20) + 0x18" (pointer_expression "*(int *)(param_2 + 0x20)" * (cast_expression "(int *)(param_2 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) )))) + number_literal) )))) + number_literal) )))))) ;) (expression_statement "iVar18 = iVar20 + iVar17;" (assignment_expression "iVar18 = iVar20 + iVar17" identifier = (binary_expression "iVar20 + iVar17" identifier + identifier)) ;) (expression_statement "iVar5 = iVar20 + 2 + *(int *)(param_1 + 0x2c);" (assignment_expression "iVar5 = iVar20 + 2 + *(int *)(param_1 + 0x2c)" identifier = (binary_expression "iVar20 + 2 + *(int *)(param_1 + 0x2c)" (binary_expression "iVar20 + 2" identifier + number_literal) + (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))))) ;) (if_statement "if (*(char *)(iVar14 + 0xe) == 'W') {\n        *(int *)(param_1 + 0x2c) = iVar5;\n        piVar19 = (int *)0x0;\n        if (0 < iVar20) goto LAB_000c0980;\n        if (piVar11 != (int *)0x0) {\n          local_50 = *piVar11;\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }\n      else {\n        piVar19 = *(int **)(iVar14 + 8);\n        *(int *)(param_1 + 0x2c) = iVar5;\n        if (iVar20 < 1) {\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }\n        puVar3 = PTR_LAB_0015b714;\n        if (piVar11 == (int *)0x0) {\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }\n        else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }\n        (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);\n        (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n        (*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);\n        (*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n        (*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1);\n        if (iVar5 != 0) {\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }\n      }" if (parenthesized_expression "(*(char *)(iVar14 + 0xe) == 'W')" ( (binary_expression "*(char *)(iVar14 + 0xe) == 'W'" (pointer_expression "*(char *)(iVar14 + 0xe)" * (cast_expression "(char *)(iVar14 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xe)" ( (binary_expression "iVar14 + 0xe" identifier + number_literal) )))) == (char_literal "'W'" ' character ')) )) (compound_statement "{\n        *(int *)(param_1 + 0x2c) = iVar5;\n        piVar19 = (int *)0x0;\n        if (0 < iVar20) goto LAB_000c0980;\n        if (piVar11 != (int *)0x0) {\n          local_50 = *piVar11;\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }" { (expression_statement "*(int *)(param_1 + 0x2c) = iVar5;" (assignment_expression "*(int *)(param_1 + 0x2c) = iVar5" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar19 = (int *)0x0;" (assignment_expression "piVar19 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (0 < iVar20) goto LAB_000c0980;" if (parenthesized_expression "(0 < iVar20)" ( (binary_expression "0 < iVar20" number_literal < identifier) )) (goto_statement "goto LAB_000c0980;" goto statement_identifier ;)) (if_statement "if (piVar11 != (int *)0x0) {\n          local_50 = *piVar11;\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }" if (parenthesized_expression "(piVar11 != (int *)0x0)" ( (binary_expression "piVar11 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_50 = *piVar11;\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }" { (expression_statement "local_50 = *piVar11;" (assignment_expression "local_50 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (expression_statement "pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);" (assignment_expression "pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x3890)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x3890)" ( (binary_expression "PTR_LAB_0015b710 + -0x3890" identifier + number_literal) )))) ;) (goto_statement "goto LAB_000c09d4;" goto statement_identifier ;) })) (expression_statement "pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);" (assignment_expression "pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x3890)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x3890)" ( (binary_expression "PTR_LAB_0015b710 + -0x3890" identifier + number_literal) )))) ;) (expression_statement "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);" (assignment_expression "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2764)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2764)" ( (binary_expression "PTR_LAB_0015b710 + -0x2764" identifier + number_literal) )))) ;) }) (else_clause "else {\n        piVar19 = *(int **)(iVar14 + 8);\n        *(int *)(param_1 + 0x2c) = iVar5;\n        if (iVar20 < 1) {\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }\n        puVar3 = PTR_LAB_0015b714;\n        if (piVar11 == (int *)0x0) {\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }\n        else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }\n        (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);\n        (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n        (*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);\n        (*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n        (*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1);\n        if (iVar5 != 0) {\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }\n      }" else (compound_statement "{\n        piVar19 = *(int **)(iVar14 + 8);\n        *(int *)(param_1 + 0x2c) = iVar5;\n        if (iVar20 < 1) {\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }\n        puVar3 = PTR_LAB_0015b714;\n        if (piVar11 == (int *)0x0) {\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }\n        else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }\n        (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);\n        (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n        (*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);\n        (*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n        (*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1);\n        if (iVar5 != 0) {\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }\n      }" { (expression_statement "piVar19 = *(int **)(iVar14 + 8);" (assignment_expression "piVar19 = *(int **)(iVar14 + 8)" identifier = (pointer_expression "*(int **)(iVar14 + 8)" * (cast_expression "(int **)(iVar14 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 8)" ( (binary_expression "iVar14 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(param_1 + 0x2c) = iVar5;" (assignment_expression "*(int *)(param_1 + 0x2c) = iVar5" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar20 < 1) {\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }" if (parenthesized_expression "(iVar20 < 1)" ( (binary_expression "iVar20 < 1" identifier < number_literal) )) (compound_statement "{\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }" { (expression_statement "pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);" (assignment_expression "pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x3890)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x3890)" ( (binary_expression "PTR_LAB_0015b710 + -0x3890" identifier + number_literal) )))) ;) }) (else_clause "else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }" else (compound_statement "{\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }" { (labeled_statement "LAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);" statement_identifier : (expression_statement "pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);" (assignment_expression "pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x3890)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x3890)" ( (binary_expression "PTR_LAB_0015b710 + -0x3890" identifier + number_literal) )))) ;)) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);" do (compound_statement "{\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          }" { (expression_statement "iVar23 = iVar5 + 1;" (assignment_expression "iVar23 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "(*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);" (call_expression "(*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5)" ( identifier , number_literal , identifier , identifier , (binary_expression "iVar17 + iVar5" identifier + identifier) ))) ;) (expression_statement "iVar5 = iVar23;" (assignment_expression "iVar5 = iVar23" identifier = identifier) ;) }) while (parenthesized_expression "(iVar23 < iVar20)" ( (binary_expression "iVar23 < iVar20" identifier < identifier) )) ;) }))) (expression_statement "puVar3 = PTR_LAB_0015b714;" (assignment_expression "puVar3 = PTR_LAB_0015b714" identifier = identifier) ;) (if_statement "if (piVar11 == (int *)0x0) {\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }\n        else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }" if (parenthesized_expression "(piVar11 == (int *)0x0)" ( (binary_expression "piVar11 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }" { (if_statement "if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }" if (parenthesized_expression "(piVar19 == (int *)0x0)" ( (binary_expression "piVar19 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }" { (expression_statement "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);" (assignment_expression "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2764)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2764)" ( (binary_expression "PTR_LAB_0015b710 + -0x2764" identifier + number_literal) )))) ;) (goto_statement "goto LAB_000c0b50;" goto statement_identifier ;) })) (expression_statement "iVar5 = *piVar19;" (assignment_expression "iVar5 = *piVar19" identifier = (pointer_expression "*piVar19" * identifier)) ;) (expression_statement "local_60 = iVar5;" (assignment_expression "local_60 = iVar5" identifier = identifier) ;) (if_statement "if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }" if (parenthesized_expression "(*(char *)(iVar14 + 0xc) == 'V')" ( (binary_expression "*(char *)(iVar14 + 0xc) == 'V'" (pointer_expression "*(char *)(iVar14 + 0xc)" * (cast_expression "(char *)(iVar14 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xc)" ( (binary_expression "iVar14 + 0xc" identifier + number_literal) )))) == (char_literal "'V'" ' character ')) )) (compound_statement "{\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }" { (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (expression_statement "iVar23 = *(int *)(iVar14 + 0x38);" (assignment_expression "iVar23 = *(int *)(iVar14 + 0x38)" identifier = (pointer_expression "*(int *)(iVar14 + 0x38)" * (cast_expression "(int *)(iVar14 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x38)" ( (binary_expression "iVar14 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "local_50 = iVar17 + *(int *)(iVar14 + 0x40);" (assignment_expression "local_50 = iVar17 + *(int *)(iVar14 + 0x40)" identifier = (binary_expression "iVar17 + *(int *)(iVar14 + 0x40)" identifier + (pointer_expression "*(int *)(iVar14 + 0x40)" * (cast_expression "(int *)(iVar14 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x40)" ( (binary_expression "iVar14 + 0x40" identifier + number_literal) )))))) ;) (expression_statement "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);" (assignment_expression "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2764)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2764)" ( (binary_expression "PTR_LAB_0015b710 + -0x2764" identifier + number_literal) )))) ;) (expression_statement "local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);" (assignment_expression "local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958)" identifier = (cast_expression "(code *)(PTR_LAB_0015b6c0 + -0x5958)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6c0 + -0x5958)" ( (binary_expression "PTR_LAB_0015b6c0 + -0x5958" identifier + number_literal) )))) ;) (goto_statement "goto LAB_000c1e74;" goto statement_identifier ;) })) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);" (assignment_expression "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2764)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2764)" ( (binary_expression "PTR_LAB_0015b710 + -0x2764" identifier + number_literal) )))) ;) (expression_statement "(*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');" (call_expression "(*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R')" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R')" ( identifier , identifier , (binary_expression "*(char *)(iVar14 + 0xd) == 'R'" (pointer_expression "*(char *)(iVar14 + 0xd)" * (cast_expression "(char *)(iVar14 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xd)" ( (binary_expression "iVar14 + 0xd" identifier + number_literal) )))) == (char_literal "'R'" ' character ')) ))) ;) (expression_statement "iVar20 = piVar16[0x1b];" (assignment_expression "iVar20 = piVar16[0x1b]" identifier = (subscript_expression "piVar16[0x1b]" identifier [ number_literal ])) ;) }) (else_clause "else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }" else (compound_statement "{\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }" { (expression_statement "local_50 = *piVar11;" (assignment_expression "local_50 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (if_statement "if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }" if (parenthesized_expression "(piVar19 == (int *)0x0)" ( (binary_expression "piVar19 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }" { (labeled_statement "LAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);" statement_identifier : (expression_statement "iVar5 = *(int *)(iVar14 + 0x40);" (assignment_expression "iVar5 = *(int *)(iVar14 + 0x40)" identifier = (pointer_expression "*(int *)(iVar14 + 0x40)" * (cast_expression "(int *)(iVar14 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x40)" ( (binary_expression "iVar14 + 0x40" identifier + number_literal) ))))) ;)) (expression_statement "uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);" (assignment_expression "uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0)" identifier = (call_expression "(*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b714 + -0x7fc4))" ( (pointer_expression "*(code *)(PTR_LAB_0015b714 + -0x7fc4)" * (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7fc4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x7fc4)" ( (binary_expression "PTR_LAB_0015b714 + -0x7fc4" identifier + number_literal) )))) )) (argument_list "(param_1,piVar11,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);" (assignment_expression "iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50)" identifier = (call_expression "(*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50)" ( identifier , number_literal , (binary_expression "iVar17 + iVar5" identifier + identifier) , (pointer_expression "*(undefined4 *)(iVar14 + 0x38)" * (cast_expression "(undefined4 *)(iVar14 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x38)" ( (binary_expression "iVar14 + 0x38" identifier + number_literal) )))) , identifier )))) ;) (expression_statement "(*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);" (call_expression "(*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b6c0 + -0x5958))" ( (pointer_expression "*(code *)(PTR_LAB_0015b6c0 + -0x5958)" * (cast_expression "(code *)(PTR_LAB_0015b6c0 + -0x5958)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6c0 + -0x5958)" ( (binary_expression "PTR_LAB_0015b6c0 + -0x5958" identifier + number_literal) )))) )) (argument_list "(piVar16,uVar4,0xfffffff7)" ( identifier , identifier , number_literal ))) ;) (expression_statement "iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);" (assignment_expression "iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2)" identifier = (call_expression "(*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,0x10,iVar5 + 2,0,iVar5 + 2)" ( identifier , number_literal , (binary_expression "iVar5 + 2" identifier + number_literal) , number_literal , (binary_expression "iVar5 + 2" identifier + number_literal) )))) ;) (expression_statement "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);" (assignment_expression "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2764)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2764)" ( (binary_expression "PTR_LAB_0015b710 + -0x2764" identifier + number_literal) )))) ;) (expression_statement "(*pcVar24)(param_1,iVar14,1);" (call_expression "(*pcVar24)(param_1,iVar14,1)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(param_1,iVar14,1)" ( identifier , identifier , number_literal ))) ;) (expression_statement "local_60 = local_50;" (assignment_expression "local_60 = local_50" identifier = identifier) ;) }) (else_clause "else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }" else (compound_statement "{\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }" { (expression_statement "iVar20 = *(int *)(iVar14 + 0x40);" (assignment_expression "iVar20 = *(int *)(iVar14 + 0x40)" identifier = (pointer_expression "*(int *)(iVar14 + 0x40)" * (cast_expression "(int *)(iVar14 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x40)" ( (binary_expression "iVar14 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *piVar19;" (assignment_expression "iVar5 = *piVar19" identifier = (pointer_expression "*piVar19" * identifier)) ;) (expression_statement "uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);" (assignment_expression "uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0)" identifier = (call_expression "(*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b714 + -0x7fc4))" ( (pointer_expression "*(code *)(PTR_LAB_0015b714 + -0x7fc4)" * (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7fc4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x7fc4)" ( (binary_expression "PTR_LAB_0015b714 + -0x7fc4" identifier + number_literal) )))) )) (argument_list "(param_1,piVar11,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );" (assignment_expression "iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               )" identifier = (call_expression "(*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               )" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               )" ( identifier , number_literal , (binary_expression "iVar17 + iVar20" identifier + identifier) , (pointer_expression "*(undefined4 *)(iVar14 + 0x38)" * (cast_expression "(undefined4 *)(iVar14 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x38)" ( (binary_expression "iVar14 + 0x38" identifier + number_literal) )))) , identifier )))) ;) (expression_statement "local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);" (assignment_expression "local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958)" identifier = (cast_expression "(code *)(PTR_LAB_0015b6c0 + -0x5958)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6c0 + -0x5958)" ( (binary_expression "PTR_LAB_0015b6c0 + -0x5958" identifier + number_literal) )))) ;) (expression_statement "(*local_5c)(piVar16,uVar4,0xfffffff7);" (call_expression "(*local_5c)(piVar16,uVar4,0xfffffff7)" (parenthesized_expression "(*local_5c)" ( (pointer_expression "*local_5c" * identifier) )) (argument_list "(piVar16,uVar4,0xfffffff7)" ( identifier , identifier , number_literal ))) ;) (expression_statement "iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);" (assignment_expression "iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2)" identifier = (call_expression "(*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,0x10,iVar20 + 2,0,iVar20 + 2)" ( identifier , number_literal , (binary_expression "iVar20 + 2" identifier + number_literal) , number_literal , (binary_expression "iVar20 + 2" identifier + number_literal) )))) ;) (expression_statement "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);" (assignment_expression "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2764)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2764)" ( (binary_expression "PTR_LAB_0015b710 + -0x2764" identifier + number_literal) )))) ;) (expression_statement "(*pcVar24)(param_1,iVar14,1);" (call_expression "(*pcVar24)(param_1,iVar14,1)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(param_1,iVar14,1)" ( identifier , identifier , number_literal ))) ;) (expression_statement "iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);" (assignment_expression "iVar20 = (*pcVar15)(piVar16,0xb,0,0,0)" identifier = (call_expression "(*pcVar15)(piVar16,0xb,0,0,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,0xb,0,0,0)" ( identifier , number_literal , number_literal , number_literal , number_literal )))) ;) (expression_statement "iVar12 = *(int *)(iVar14 + 0x40);" (assignment_expression "iVar12 = *(int *)(iVar14 + 0x40)" identifier = (pointer_expression "*(int *)(iVar14 + 0x40)" * (cast_expression "(int *)(iVar14 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x40)" ( (binary_expression "iVar14 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "iVar23 = *(int *)(iVar14 + 0x38);" (assignment_expression "iVar23 = *(int *)(iVar14 + 0x38)" identifier = (pointer_expression "*(int *)(iVar14 + 0x38)" * (cast_expression "(int *)(iVar14 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x38)" ( (binary_expression "iVar14 + 0x38" identifier + number_literal) ))))) ;) (if_statement "if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }" { (expression_statement "iVar13 = piVar16[0x1b];" (assignment_expression "iVar13 = piVar16[0x1b]" identifier = (subscript_expression "piVar16[0x1b]" identifier [ number_literal ])) ;) (if_statement "if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }" if (parenthesized_expression "(iVar9 < 0)" ( (binary_expression "iVar9 < 0" identifier < number_literal) )) (compound_statement "{\n                iVar9 = iVar13 + -1;\n              }" { (expression_statement "iVar9 = iVar13 + -1;" (assignment_expression "iVar9 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) })) (if_statement "if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }" if (parenthesized_expression "(*(char *)(*piVar16 + 0x51) == '\0')" ( (binary_expression "*(char *)(*piVar16 + 0x51) == '\0'" (pointer_expression "*(char *)(*piVar16 + 0x51)" * (cast_expression "(char *)(*piVar16 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar16 + 0x51)" ( (binary_expression "*piVar16 + 0x51" (pointer_expression "*piVar16" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }" { (expression_statement "*(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;" (assignment_expression "*(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13" (pointer_expression "*(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8)" * (cast_expression "(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar16[0x1a] + iVar9 * 0x14 + 8)" ( (binary_expression "piVar16[0x1a] + iVar9 * 0x14 + 8" (binary_expression "piVar16[0x1a] + iVar9 * 0x14" (subscript_expression "piVar16[0x1a]" identifier [ number_literal ]) + (binary_expression "iVar9 * 0x14" identifier * number_literal)) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }" else (compound_statement "{\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }" { (expression_statement "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;" (assignment_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13" (pointer_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c)" * (cast_expression "(int *)(PTR_DAT_0015b5d8 + -0x450c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x450c)" ( (binary_expression "PTR_DAT_0015b5d8 + -0x450c" identifier + number_literal) )))) = identifier) ;) }))) })) (expression_statement "local_60 = local_50 + iVar5;" (assignment_expression "local_60 = local_50 + iVar5" identifier = (binary_expression "local_50 + iVar5" identifier + identifier)) ;) (if_statement "if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }" if (parenthesized_expression "(*(char *)(iVar14 + 0xc) == 'V')" ( (binary_expression "*(char *)(iVar14 + 0xc) == 'V'" (pointer_expression "*(char *)(iVar14 + 0xc)" * (cast_expression "(char *)(iVar14 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xc)" ( (binary_expression "iVar14 + 0xc" identifier + number_literal) )))) == (char_literal "'V'" ' character ')) )) (compound_statement "{\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }" { (expression_statement "iVar23 = local_50 + iVar23;" (assignment_expression "iVar23 = local_50 + iVar23" identifier = (binary_expression "local_50 + iVar23" identifier + identifier)) ;) (expression_statement "local_50 = iVar17 + iVar12 + local_50;" (assignment_expression "local_50 = iVar17 + iVar12 + local_50" identifier = (binary_expression "iVar17 + iVar12 + local_50" (binary_expression "iVar17 + iVar12" identifier + identifier) + identifier)) ;) (labeled_statement "LAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);" statement_identifier : (expression_statement "local_4c = (code *)(puVar3 + -0x7fc4);" (assignment_expression "local_4c = (code *)(puVar3 + -0x7fc4)" identifier = (cast_expression "(code *)(puVar3 + -0x7fc4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x7fc4)" ( (binary_expression "puVar3 + -0x7fc4" identifier + number_literal) )))) ;)) (expression_statement "uVar4 = (*local_4c)(param_1,piVar19,0,0);" (assignment_expression "uVar4 = (*local_4c)(param_1,piVar19,0,0)" identifier = (call_expression "(*local_4c)(param_1,piVar19,0,0)" (parenthesized_expression "(*local_4c)" ( (pointer_expression "*local_4c" * identifier) )) (argument_list "(param_1,piVar19,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);" (assignment_expression "iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5)" identifier = (call_expression "(*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,0x57,local_50,iVar23,iVar5)" ( identifier , number_literal , identifier , identifier , identifier )))) ;) (expression_statement "(*local_5c)(piVar16,uVar4,0xfffffff7);" (call_expression "(*local_5c)(piVar16,uVar4,0xfffffff7)" (parenthesized_expression "(*local_5c)" ( (pointer_expression "*local_5c" * identifier) )) (argument_list "(piVar16,uVar4,0xfffffff7)" ( identifier , identifier , number_literal ))) ;) (expression_statement "iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);" (assignment_expression "iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2)" identifier = (call_expression "(*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,0x10,iVar5 + 2,0,iVar5 + 2)" ( identifier , number_literal , (binary_expression "iVar5 + 2" identifier + number_literal) , number_literal , (binary_expression "iVar5 + 2" identifier + number_literal) )))) ;) }) (else_clause "else {\n              iVar5 = 0;\n            }" else (compound_statement "{\n              iVar5 = 0;\n            }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) }))) (expression_statement "(*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');" (call_expression "(*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R')" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R')" ( identifier , identifier , (binary_expression "*(char *)(iVar14 + 0xd) == 'R'" (pointer_expression "*(char *)(iVar14 + 0xd)" * (cast_expression "(char *)(iVar14 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xd)" ( (binary_expression "iVar14 + 0xd" identifier + number_literal) )))) == (char_literal "'R'" ' character ')) ))) ;) (if_statement "if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }" { (expression_statement "iVar23 = piVar16[0x1b];" (assignment_expression "iVar23 = piVar16[0x1b]" identifier = (subscript_expression "piVar16[0x1b]" identifier [ number_literal ])) ;) (if_statement "if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }" if (parenthesized_expression "(iVar20 < 0)" ( (binary_expression "iVar20 < 0" identifier < number_literal) )) (compound_statement "{\n                iVar20 = iVar23 + -1;\n              }" { (expression_statement "iVar20 = iVar23 + -1;" (assignment_expression "iVar20 = iVar23 + -1" identifier = (binary_expression "iVar23 + -1" identifier + number_literal)) ;) })) (if_statement "if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }" if (parenthesized_expression "(*(char *)(*piVar16 + 0x51) == '\0')" ( (binary_expression "*(char *)(*piVar16 + 0x51) == '\0'" (pointer_expression "*(char *)(*piVar16 + 0x51)" * (cast_expression "(char *)(*piVar16 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar16 + 0x51)" ( (binary_expression "*piVar16 + 0x51" (pointer_expression "*piVar16" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }" { (expression_statement "*(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;" (assignment_expression "*(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23" (pointer_expression "*(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8)" * (cast_expression "(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar16[0x1a] + iVar20 * 0x14 + 8)" ( (binary_expression "piVar16[0x1a] + iVar20 * 0x14 + 8" (binary_expression "piVar16[0x1a] + iVar20 * 0x14" (subscript_expression "piVar16[0x1a]" identifier [ number_literal ]) + (binary_expression "iVar20 * 0x14" identifier * number_literal)) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }" else (compound_statement "{\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }" { (expression_statement "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;" (assignment_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23" (pointer_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c)" * (cast_expression "(int *)(PTR_DAT_0015b5d8 + -0x450c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x450c)" ( (binary_expression "PTR_DAT_0015b5d8 + -0x450c" identifier + number_literal) )))) = identifier) ;) }))) })) }))) (expression_statement "iVar20 = piVar16[0x1b];" (assignment_expression "iVar20 = piVar16[0x1b]" identifier = (subscript_expression "piVar16[0x1b]" identifier [ number_literal ])) ;) }))) (expression_statement "(*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);" (call_expression "(*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" * (cast_expression "(undefined4 *)(iVar14 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x24)" ( (binary_expression "iVar14 + 0x24" identifier + number_literal) )))) , (binary_expression "iVar20 + 3" identifier + number_literal) , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar16,0xc,param_4,param_5,0);" (call_expression "(*pcVar15)(piVar16,0xc,param_4,param_5,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,0xc,param_4,param_5,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);" (call_expression "(*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" * (cast_expression "(undefined4 *)(iVar14 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x24)" ( (binary_expression "iVar14 + 0x24" identifier + number_literal) )))) , (binary_expression "piVar16[0x1b] + -1" (subscript_expression "piVar16[0x1b]" identifier [ number_literal ]) + number_literal) , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);" (call_expression "(*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" * (cast_expression "(undefined4 *)(iVar14 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x24)" ( (binary_expression "iVar14 + 0x24" identifier + number_literal) )))) , number_literal , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1);" (call_expression "(*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1)" ( identifier , number_literal , (binary_expression "iVar17 + *(int *)(iVar14 + 0x40)" identifier + (pointer_expression "*(int *)(iVar14 + 0x40)" * (cast_expression "(int *)(iVar14 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x40)" ( (binary_expression "iVar14 + 0x40" identifier + number_literal) ))))) , (pointer_expression "*(undefined4 *)(iVar14 + 0x38)" * (cast_expression "(undefined4 *)(iVar14 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x38)" ( (binary_expression "iVar14 + 0x38" identifier + number_literal) )))) , (binary_expression "local_60 + -1" identifier + number_literal) ))) ;) (if_statement "if (iVar5 != 0) {\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }" { (expression_statement "iVar20 = piVar16[0x1b];" (assignment_expression "iVar20 = piVar16[0x1b]" identifier = (subscript_expression "piVar16[0x1b]" identifier [ number_literal ])) ;) (if_statement "if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n            iVar5 = iVar20 + -1;\n          }" { (expression_statement "iVar5 = iVar20 + -1;" (assignment_expression "iVar5 = iVar20 + -1" identifier = (binary_expression "iVar20 + -1" identifier + number_literal)) ;) })) (if_statement "if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }" if (parenthesized_expression "(*(char *)(*piVar16 + 0x51) == '\0')" ( (binary_expression "*(char *)(*piVar16 + 0x51) == '\0'" (pointer_expression "*(char *)(*piVar16 + 0x51)" * (cast_expression "(char *)(*piVar16 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar16 + 0x51)" ( (binary_expression "*piVar16 + 0x51" (pointer_expression "*piVar16" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }" { (expression_statement "*(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;" (assignment_expression "*(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20" (pointer_expression "*(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8)" * (cast_expression "(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar16[0x1a] + iVar5 * 0x14 + 8)" ( (binary_expression "piVar16[0x1a] + iVar5 * 0x14 + 8" (binary_expression "piVar16[0x1a] + iVar5 * 0x14" (subscript_expression "piVar16[0x1a]" identifier [ number_literal ]) + (binary_expression "iVar5 * 0x14" identifier * number_literal)) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }" else (compound_statement "{\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }" { (expression_statement "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;" (assignment_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20" (pointer_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c)" * (cast_expression "(int *)(PTR_DAT_0015b5d8 + -0x450c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x450c)" ( (binary_expression "PTR_DAT_0015b5d8 + -0x450c" identifier + number_literal) )))) = identifier) ;) }))) })) }))) (labeled_statement "LAB_000c0b50:\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,0xffffffff,0,iVar17,0);" statement_identifier : (expression_statement "(*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,0xffffffff,0,iVar17,0);" (call_expression "(*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,0xffffffff,0,iVar17,0)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b714 + -0x7af4))" ( (pointer_expression "*(code *)(PTR_LAB_0015b714 + -0x7af4)" * (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7af4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x7af4)" ( (binary_expression "PTR_LAB_0015b714 + -0x7af4" identifier + number_literal) )))) )) (argument_list "(param_1,iVar14,0xffffffff,0,iVar17,0)" ( identifier , identifier , number_literal , number_literal , identifier , number_literal ))) ;)) (if_statement "if (*(int *)(iVar14 + 0x40) < 1) {\n        (*pcVar15)(piVar16,0x4b,0,iVar18,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }\n      else {\n        (*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);\n      }" if (parenthesized_expression "(*(int *)(iVar14 + 0x40) < 1)" ( (binary_expression "*(int *)(iVar14 + 0x40) < 1" (pointer_expression "*(int *)(iVar14 + 0x40)" * (cast_expression "(int *)(iVar14 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x40)" ( (binary_expression "iVar14 + 0x40" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n        (*pcVar15)(piVar16,0x4b,0,iVar18,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }" { (expression_statement "(*pcVar15)(piVar16,0x4b,0,iVar18,0);" (call_expression "(*pcVar15)(piVar16,0x4b,0,iVar18,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,0x4b,0,iVar18,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) (expression_statement "(*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0);" (call_expression "(*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b6c0 + -0x5958))" ( (pointer_expression "*(code *)(PTR_LAB_0015b6c0 + -0x5958)" * (cast_expression "(code *)(PTR_LAB_0015b6c0 + -0x5958)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6c0 + -0x5958)" ( (binary_expression "PTR_LAB_0015b6c0 + -0x5958" identifier + number_literal) )))) )) (argument_list "(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0)" ( identifier , (binary_expression "PTR_LAB_0015b5e8 + 0x53f4" identifier + number_literal) , number_literal ))) ;) }) (else_clause "else {\n        (*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);\n      }" else (compound_statement "{\n        (*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);\n      }" { (expression_statement "(*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);" (call_expression "(*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18)" ( identifier , number_literal , identifier , (pointer_expression "*(int *)(iVar14 + 0x40)" * (cast_expression "(int *)(iVar14 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x40)" ( (binary_expression "iVar14 + 0x40" identifier + number_literal) )))) , identifier ))) ;) }))) (expression_statement "(*pcVar15)(piVar16,0x79,*(undefined4 *)(iVar14 + 0x24),iVar18 + 1,0);" (call_expression "(*pcVar15)(piVar16,0x79,*(undefined4 *)(iVar14 + 0x24),iVar18 + 1,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,0x79,*(undefined4 *)(iVar14 + 0x24),iVar18 + 1,0)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" * (cast_expression "(undefined4 *)(iVar14 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x24)" ( (binary_expression "iVar14 + 0x24" identifier + number_literal) )))) , (binary_expression "iVar18 + 1" identifier + number_literal) , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar16,0x7a,*(undefined4 *)(iVar14 + 0x24),iVar18,iVar18 + 1);" (call_expression "(*pcVar15)(piVar16,0x7a,*(undefined4 *)(iVar14 + 0x24),iVar18,iVar18 + 1)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,0x7a,*(undefined4 *)(iVar14 + 0x24),iVar18,iVar18 + 1)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" * (cast_expression "(undefined4 *)(iVar14 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x24)" ( (binary_expression "iVar14 + 0x24" identifier + number_literal) )))) , identifier , (binary_expression "iVar18 + 1" identifier + number_literal) ))) ;) (expression_statement "(*(code *)(PTR_LAB_0015b710 + -0x18cc))(param_3);" (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x18cc))(param_3)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x18cc))" ( (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x18cc)" * (cast_expression "(code *)(PTR_LAB_0015b710 + -0x18cc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x18cc)" ( (binary_expression "PTR_LAB_0015b710 + -0x18cc" identifier + number_literal) )))) )) (argument_list "(param_3)" ( identifier ))) ;) (expression_statement "(*pcVar24)(param_1,iVar14,1);" (call_expression "(*pcVar24)(param_1,iVar14,1)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(param_1,iVar14,1)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + 3,0);" (call_expression "(*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + 3,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + 3,0)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" * (cast_expression "(undefined4 *)(iVar14 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x24)" ( (binary_expression "iVar14 + 0x24" identifier + number_literal) )))) , (binary_expression "piVar16[0x1b] + 3" (subscript_expression "piVar16[0x1b]" identifier [ number_literal ]) + number_literal) , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar16,0xc,param_4,param_5,0);" (call_expression "(*pcVar15)(piVar16,0xc,param_4,param_5,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,0xc,param_4,param_5,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "iVar18 = 5;" (assignment_expression "iVar18 = 5" identifier = number_literal) ;) (expression_statement "iVar5 = *(int *)(iVar14 + 0x24);" (assignment_expression "iVar5 = *(int *)(iVar14 + 0x24)" identifier = (pointer_expression "*(int *)(iVar14 + 0x24)" * (cast_expression "(int *)(iVar14 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x24)" ( (binary_expression "iVar14 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar15)(piVar16,5,iVar5,piVar16[0x1b] + -1,0);" (call_expression "(*pcVar15)(piVar16,5,iVar5,piVar16[0x1b] + -1,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,5,iVar5,piVar16[0x1b] + -1,0)" ( identifier , number_literal , identifier , (binary_expression "piVar16[0x1b] + -1" (subscript_expression "piVar16[0x1b]" identifier [ number_literal ]) + number_literal) , number_literal ))) ;) (goto_statement "goto LAB_000c0f44;" goto statement_identifier ;) })) (labeled_statement "LAB_000c0c60:\n    piVar11 = *(int **)(param_1 + 8);" statement_identifier : (expression_statement "piVar11 = *(int **)(param_1 + 8);" (assignment_expression "piVar11 = *(int **)(param_1 + 8)" identifier = (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;)) (if_statement "if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      piVar16 = *(int **)(iVar14 + 8);\n      local_48 = *(int **)(iVar14 + 4);\n      if (piVar16 != (int *)0x0) goto LAB_000c0c7c;\nLAB_000c1450:\n      local_58 = 0;\n      bVar1 = false;\n    }\n    else {\n      local_48 = *(int **)(iVar14 + 4);\n      piVar16 = *(int **)(iVar14 + 8);\n      if (piVar16 == (int *)0x0) goto LAB_000c1450;\nLAB_000c0c7c:\n      local_58 = *piVar16;\n      bVar1 = (*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700;\n    }" if (parenthesized_expression "(piVar11 == (int *)0x0)" ( (binary_expression "piVar11 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      piVar16 = *(int **)(iVar14 + 8);\n      local_48 = *(int **)(iVar14 + 4);\n      if (piVar16 != (int *)0x0) goto LAB_000c0c7c;\nLAB_000c1450:\n      local_58 = 0;\n      bVar1 = false;\n    }" { (expression_statement "piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);" (assignment_expression "piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1)" identifier = (cast_expression "(int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x371c))" ( (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x371c)" * (cast_expression "(code *)(PTR_LAB_0015b710 + -0x371c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x371c)" ( (binary_expression "PTR_LAB_0015b710 + -0x371c" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))))) ;) (expression_statement "piVar16 = *(int **)(iVar14 + 8);" (assignment_expression "piVar16 = *(int **)(iVar14 + 8)" identifier = (pointer_expression "*(int **)(iVar14 + 8)" * (cast_expression "(int **)(iVar14 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 8)" ( (binary_expression "iVar14 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_48 = *(int **)(iVar14 + 4);" (assignment_expression "local_48 = *(int **)(iVar14 + 4)" identifier = (pointer_expression "*(int **)(iVar14 + 4)" * (cast_expression "(int **)(iVar14 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 4)" ( (binary_expression "iVar14 + 4" identifier + number_literal) ))))) ;) (if_statement "if (piVar16 != (int *)0x0) goto LAB_000c0c7c;" if (parenthesized_expression "(piVar16 != (int *)0x0)" ( (binary_expression "piVar16 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000c0c7c;" goto statement_identifier ;)) (labeled_statement "LAB_000c1450:\n      local_58 = 0;" statement_identifier : (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;)) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) }) (else_clause "else {\n      local_48 = *(int **)(iVar14 + 4);\n      piVar16 = *(int **)(iVar14 + 8);\n      if (piVar16 == (int *)0x0) goto LAB_000c1450;\nLAB_000c0c7c:\n      local_58 = *piVar16;\n      bVar1 = (*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700;\n    }" else (compound_statement "{\n      local_48 = *(int **)(iVar14 + 4);\n      piVar16 = *(int **)(iVar14 + 8);\n      if (piVar16 == (int *)0x0) goto LAB_000c1450;\nLAB_000c0c7c:\n      local_58 = *piVar16;\n      bVar1 = (*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700;\n    }" { (expression_statement "local_48 = *(int **)(iVar14 + 4);" (assignment_expression "local_48 = *(int **)(iVar14 + 4)" identifier = (pointer_expression "*(int **)(iVar14 + 4)" * (cast_expression "(int **)(iVar14 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 4)" ( (binary_expression "iVar14 + 4" identifier + number_literal) ))))) ;) (expression_statement "piVar16 = *(int **)(iVar14 + 8);" (assignment_expression "piVar16 = *(int **)(iVar14 + 8)" identifier = (pointer_expression "*(int **)(iVar14 + 8)" * (cast_expression "(int **)(iVar14 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 8)" ( (binary_expression "iVar14 + 8" identifier + number_literal) ))))) ;) (if_statement "if (piVar16 == (int *)0x0) goto LAB_000c1450;" if (parenthesized_expression "(piVar16 == (int *)0x0)" ( (binary_expression "piVar16 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000c1450;" goto statement_identifier ;)) (labeled_statement "LAB_000c0c7c:\n      local_58 = *piVar16;" statement_identifier : (expression_statement "local_58 = *piVar16;" (assignment_expression "local_58 = *piVar16" identifier = (pointer_expression "*piVar16" * identifier)) ;)) (expression_statement "bVar1 = (*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700;" (assignment_expression "bVar1 = (*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700" identifier = (binary_expression "(*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700" (parenthesized_expression "(*(uint *)(iVar14 + 0xc) & 0xffff00)" ( (binary_expression "*(uint *)(iVar14 + 0xc) & 0xffff00" (pointer_expression "*(uint *)(iVar14 + 0xc)" * (cast_expression "(uint *)(iVar14 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xc)" ( (binary_expression "iVar14 + 0xc" identifier + number_literal) )))) & number_literal) )) == number_literal)) ;) }))) (expression_statement "puVar3 = PTR_LAB_0015b714;" (assignment_expression "puVar3 = PTR_LAB_0015b714" identifier = identifier) ;) (expression_statement "iVar18 = *(int *)(param_1 + 0x2c);" (assignment_expression "iVar18 = *(int *)(param_1 + 0x2c)" identifier = (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "iVar23 = *(int *)(param_1 + 0x28);" (assignment_expression "iVar23 = *(int *)(param_1 + 0x28)" identifier = (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "iVar17 = *(int *)(param_1 + 0x38);" (assignment_expression "iVar17 = *(int *)(param_1 + 0x38)" identifier = (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = iVar18 + local_58;" (assignment_expression "iVar5 = iVar18 + local_58" identifier = (binary_expression "iVar18 + local_58" identifier + identifier)) ;) (expression_statement "iVar9 = iVar5 + 2;" (assignment_expression "iVar9 = iVar5 + 2" identifier = (binary_expression "iVar5 + 2" identifier + number_literal)) ;) (expression_statement "iVar20 = iVar17 + -2;" (assignment_expression "iVar20 = iVar17 + -2" identifier = (binary_expression "iVar17 + -2" identifier + number_literal)) ;) (expression_statement "*(int *)(param_1 + 0x28) = iVar23 + 1;" (assignment_expression "*(int *)(param_1 + 0x28) = iVar23 + 1" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "iVar23 + 1" identifier + number_literal)) ;) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(param_1 + 0x38) = iVar20;" (assignment_expression "*(int *)(param_1 + 0x38) = iVar20" (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(param_1 + 0x2c) = iVar9;" (assignment_expression "*(int *)(param_1 + 0x2c) = iVar9" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "(*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar20,&local_30\n              );" (call_expression "(*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar20,&local_30\n              )" (parenthesized_expression "(*(code *)(puVar3 + -0x7e94))" ( (pointer_expression "*(code *)(puVar3 + -0x7e94)" * (cast_expression "(code *)(puVar3 + -0x7e94)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x7e94)" ( (binary_expression "puVar3 + -0x7e94" identifier + number_literal) )))) )) (argument_list "(param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar20,&local_30\n              )" ( identifier , (binary_expression "param_2 + 0x20" identifier + number_literal) , (pointer_expression "*(undefined4 *)(param_2 + 0x44)" * (cast_expression "(undefined4 *)(param_2 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x44)" ( (binary_expression "param_2 + 0x44" identifier + number_literal) )))) , identifier , identifier , identifier , (pointer_expression "&local_30" & identifier) ))) ;) (expression_statement "pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);" (assignment_expression "pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x3890)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x3890)" ( (binary_expression "PTR_LAB_0015b710 + -0x3890" identifier + number_literal) )))) ;) (expression_statement "local_60 = (*pcVar15)(piVar11,0xb,0,0,0);" (assignment_expression "local_60 = (*pcVar15)(piVar11,0xb,0,0,0)" identifier = (call_expression "(*pcVar15)(piVar11,0xb,0,0,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0xb,0,0,0)" ( identifier , number_literal , number_literal , number_literal , number_literal )))) ;) (expression_statement "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);" (assignment_expression "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x3c14)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x3c14)" ( (binary_expression "PTR_LAB_0015b710 + -0x3c14" identifier + number_literal) )))) ;) (expression_statement "(*pcVar24)(piVar11,iVar20);" (call_expression "(*pcVar24)(piVar11,iVar20)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(piVar11,iVar20)" ( identifier , identifier ))) ;) (expression_statement "(*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 2,0);" (call_expression "(*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 2,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x11,0,piVar11[0x1b] + 2,0)" ( identifier , number_literal , number_literal , (binary_expression "piVar11[0x1b] + 2" (subscript_expression "piVar11[0x1b]" identifier [ number_literal ]) + number_literal) , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar11,0x6f,iVar23,*(undefined4 *)(iVar14 + 0x24),0);" (call_expression "(*pcVar15)(piVar11,0x6f,iVar23,*(undefined4 *)(iVar14 + 0x24),0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x6f,iVar23,*(undefined4 *)(iVar14 + 0x24),0)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" * (cast_expression "(undefined4 *)(iVar14 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x24)" ( (binary_expression "iVar14 + 0x24" identifier + number_literal) )))) , number_literal ))) ;) (expression_statement "uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);" (assignment_expression "uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14)" identifier = (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x2e00))" ( (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x2e00)" * (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2e00)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2e00)" ( (binary_expression "PTR_LAB_0015b710 + -0x2e00" identifier + number_literal) )))) )) (argument_list "(param_1,iVar14)" ( identifier , identifier )))) ;) (expression_statement "(*pcVar15)(piVar11,0x46,0,iVar9,0);" (call_expression "(*pcVar15)(piVar11,0x46,0,iVar9,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x46,0,iVar9,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar11,0x24,iVar23,iVar17,0);" (call_expression "(*pcVar15)(piVar11,0x24,iVar23,iVar17,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x24,iVar23,iVar17,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar17,0);" (call_expression "(*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar17,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar17,0)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" * (cast_expression "(undefined4 *)(iVar14 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x24)" ( (binary_expression "iVar14 + 0x24" identifier + number_literal) )))) , identifier , number_literal ))) ;) (if_statement "if (bVar1) {\n      iVar20 = piVar11[0x1b];\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n      (*pcVar15)(piVar11,5,iVar23,iVar20,0);\n      (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n      local_50 = piVar11[0x1b];\n      if (piVar16 != (int *)0x0) goto LAB_000c0e28;\n      pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n    }\n    else {\n      local_50 = piVar11[0x1b];\n      if (piVar16 == (int *)0x0) {\n        pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);\n        uVar6 = uVar4;\n        if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n    }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n      iVar20 = piVar11[0x1b];\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n      (*pcVar15)(piVar11,5,iVar23,iVar20,0);\n      (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n      local_50 = piVar11[0x1b];\n      if (piVar16 != (int *)0x0) goto LAB_000c0e28;\n      pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n    }" { (expression_statement "iVar20 = piVar11[0x1b];" (assignment_expression "iVar20 = piVar11[0x1b]" identifier = (subscript_expression "piVar11[0x1b]" identifier [ number_literal ])) ;) (expression_statement "(*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);" (call_expression "(*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b714 + -0x7af4))" ( (pointer_expression "*(code *)(PTR_LAB_0015b714 + -0x7af4)" * (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7af4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x7af4)" ( (binary_expression "PTR_LAB_0015b714 + -0x7af4" identifier + number_literal) )))) )) (argument_list "(param_1,iVar14,iVar23,0,uVar4,local_30)" ( identifier , identifier , identifier , number_literal , identifier , identifier ))) ;) (expression_statement "(*pcVar15)(piVar11,5,iVar23,iVar20,0);" (call_expression "(*pcVar15)(piVar11,5,iVar23,iVar20,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,5,iVar23,iVar20,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar11,0x24,iVar23,iVar17,0);" (call_expression "(*pcVar15)(piVar11,0x24,iVar23,iVar17,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x24,iVar23,iVar17,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "local_50 = piVar11[0x1b];" (assignment_expression "local_50 = piVar11[0x1b]" identifier = (subscript_expression "piVar11[0x1b]" identifier [ number_literal ])) ;) (if_statement "if (piVar16 != (int *)0x0) goto LAB_000c0e28;" if (parenthesized_expression "(piVar16 != (int *)0x0)" ( (binary_expression "piVar16 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000c0e28;" goto statement_identifier ;)) (expression_statement "pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);" (assignment_expression "pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508)" identifier = (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7508)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x7508)" ( (binary_expression "PTR_LAB_0015b714 + -0x7508" identifier + number_literal) )))) ;) }) (else_clause "else {\n      local_50 = piVar11[0x1b];\n      if (piVar16 == (int *)0x0) {\n        pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);\n        uVar6 = uVar4;\n        if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n    }" else (compound_statement "{\n      local_50 = piVar11[0x1b];\n      if (piVar16 == (int *)0x0) {\n        pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);\n        uVar6 = uVar4;\n        if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n    }" { (expression_statement "local_50 = piVar11[0x1b];" (assignment_expression "local_50 = piVar11[0x1b]" identifier = (subscript_expression "piVar11[0x1b]" identifier [ number_literal ])) ;) (if_statement "if (piVar16 == (int *)0x0) {\n        pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);\n        uVar6 = uVar4;\n        if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }" if (parenthesized_expression "(piVar16 == (int *)0x0)" ( (binary_expression "piVar16 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }" { (expression_statement "pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);" (assignment_expression "pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508)" identifier = (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7508)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x7508)" ( (binary_expression "PTR_LAB_0015b714 + -0x7508" identifier + number_literal) )))) ;) }) (else_clause "else {\nLAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);\n        uVar6 = uVar4;\n        if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }" else (compound_statement "{\nLAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);\n        uVar6 = uVar4;\n        if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }" { (labeled_statement "LAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);" statement_identifier : (expression_statement "cVar10 = *(char *)(iVar14 + 0xd);" (assignment_expression "cVar10 = *(char *)(iVar14 + 0xd)" identifier = (pointer_expression "*(char *)(iVar14 + 0xd)" * (cast_expression "(char *)(iVar14 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xd)" ( (binary_expression "iVar14 + 0xd" identifier + number_literal) ))))) ;)) (expression_statement "uVar6 = uVar4;" (assignment_expression "uVar6 = uVar4" identifier = identifier) ;) (if_statement "if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }" if (parenthesized_expression "(*(char *)(iVar14 + 0xe) == 'R')" ( (binary_expression "*(char *)(iVar14 + 0xe) == 'R'" (pointer_expression "*(char *)(iVar14 + 0xe)" * (cast_expression "(char *)(iVar14 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xe)" ( (binary_expression "iVar14 + 0xe" identifier + number_literal) )))) == (char_literal "'R'" ' character ')) )) (compound_statement "{\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }" { (if_statement "if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }" if (parenthesized_expression "(*(char *)(iVar14 + 0xc) == 'V')" ( (binary_expression "*(char *)(iVar14 + 0xc) == 'V'" (pointer_expression "*(char *)(iVar14 + 0xc)" * (cast_expression "(char *)(iVar14 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xc)" ( (binary_expression "iVar14 + 0xc" identifier + number_literal) )))) == (char_literal "'V'" ' character ')) )) (compound_statement "{\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }" { (labeled_statement "LAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);" statement_identifier : (expression_statement "iVar20 = *(int *)(iVar14 + 0x40);" (assignment_expression "iVar20 = *(int *)(iVar14 + 0x40)" identifier = (pointer_expression "*(int *)(iVar14 + 0x40)" * (cast_expression "(int *)(iVar14 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x40)" ( (binary_expression "iVar14 + 0x40" identifier + number_literal) ))))) ;)) (if_statement "if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }" if (parenthesized_expression "(local_48 == (int *)0x0)" ( (binary_expression "local_48 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              iVar12 = 0;\n            }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) }) (else_clause "else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }" else (compound_statement "{\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }" { (expression_statement "iVar12 = *local_48;" (assignment_expression "iVar12 = *local_48" identifier = (pointer_expression "*local_48" * identifier)) ;) (expression_statement "iVar20 = iVar20 + iVar12;" (assignment_expression "iVar20 = iVar20 + iVar12" identifier = (binary_expression "iVar20 + iVar12" identifier + identifier)) ;) }))) (expression_statement "iVar12 = iVar12 + *(int *)(iVar14 + 0x38);" (assignment_expression "iVar12 = iVar12 + *(int *)(iVar14 + 0x38)" identifier = (binary_expression "iVar12 + *(int *)(iVar14 + 0x38)" identifier + (pointer_expression "*(int *)(iVar14 + 0x38)" * (cast_expression "(int *)(iVar14 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x38)" ( (binary_expression "iVar14 + 0x38" identifier + number_literal) )))))) ;) (expression_statement "uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);" (assignment_expression "uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0)" identifier = (call_expression "(*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b714 + -0x7fc4))" ( (pointer_expression "*(code *)(PTR_LAB_0015b714 + -0x7fc4)" * (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7fc4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x7fc4)" ( (binary_expression "PTR_LAB_0015b714 + -0x7fc4" identifier + number_literal) )))) )) (argument_list "(param_1,piVar16,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (if_statement "if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }" if (parenthesized_expression "(0 < local_58)" ( (binary_expression "0 < local_58" number_literal < identifier) )) (compound_statement "{\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }" { (expression_statement "iVar13 = local_58 + iVar20;" (assignment_expression "iVar13 = local_58 + iVar20" identifier = (binary_expression "local_58 + iVar20" identifier + identifier)) ;) (expression_statement "iVar8 = iVar18 - iVar20;" (assignment_expression "iVar8 = iVar18 - iVar20" identifier = (binary_expression "iVar18 - iVar20" identifier - identifier)) ;) (do_statement "do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);" do (compound_statement "{\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              }" { (expression_statement "(*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);" (call_expression "(*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20)" ( identifier , number_literal , identifier , identifier , (binary_expression "iVar8 + iVar20" identifier + identifier) ))) ;) (expression_statement "iVar20 = iVar20 + 1;" (assignment_expression "iVar20 = iVar20 + 1" identifier = (binary_expression "iVar20 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar20 != iVar13)" ( (binary_expression "iVar20 != iVar13" identifier != identifier) )) ;) })) (expression_statement "iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);" (assignment_expression "iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58)" identifier = (call_expression "(*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x57,iVar18,iVar12,local_58)" ( identifier , number_literal , identifier , identifier , identifier )))) ;) (expression_statement "(*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);" (call_expression "(*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b6c0 + -0x5958))" ( (pointer_expression "*(code *)(PTR_LAB_0015b6c0 + -0x5958)" * (cast_expression "(code *)(PTR_LAB_0015b6c0 + -0x5958)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6c0 + -0x5958)" ( (binary_expression "PTR_LAB_0015b6c0 + -0x5958" identifier + number_literal) )))) )) (argument_list "(piVar11,uVar7,0xfffffff7)" ( identifier , identifier , number_literal ))) ;) (expression_statement "iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);" (assignment_expression "iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2)" identifier = (call_expression "(*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x10,iVar20 + 2,0,iVar20 + 2)" ( identifier , number_literal , (binary_expression "iVar20 + 2" identifier + number_literal) , number_literal , (binary_expression "iVar20 + 2" identifier + number_literal) )))) ;) (expression_statement "(*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);" (call_expression "(*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x4e,iVar18,iVar12,local_58 + -1)" ( identifier , number_literal , identifier , identifier , (binary_expression "local_58 + -1" identifier + number_literal) ))) ;) (expression_statement "uVar7 = local_30;" (assignment_expression "uVar7 = local_30" identifier = identifier) ;) (if_statement "if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }" if (parenthesized_expression "(cVar10 != 'R')" ( (binary_expression "cVar10 != 'R'" identifier != (char_literal "'R'" ' character ')) )) (compound_statement "{\n              uVar6 = 0;\n              uVar7 = 0;\n            }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) })) (goto_statement "goto LAB_000c14a0;" goto statement_identifier ;) })) (if_statement "if (cVar10 == 'R') goto LAB_000c1494;" if (parenthesized_expression "(cVar10 == 'R')" ( (binary_expression "cVar10 == 'R'" identifier == (char_literal "'R'" ' character ')) )) (goto_statement "goto LAB_000c1494;" goto statement_identifier ;)) (expression_statement "pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);" (assignment_expression "pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508)" identifier = (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7508)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x7508)" ( (binary_expression "PTR_LAB_0015b714 + -0x7508" identifier + number_literal) )))) ;) (expression_statement "(*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);" (call_expression "(*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0)" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "(param_1,iVar14,iVar9,param_4,param_5,0,0)" ( identifier , identifier , identifier , identifier , identifier , number_literal , number_literal ))) ;) }) (else_clause "else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }" else (if_statement "if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }" if (parenthesized_expression "(cVar10 == 'R')" ( (binary_expression "cVar10 == 'R'" identifier == (char_literal "'R'" ' character ')) )) (compound_statement "{\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }" { (if_statement "if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;" if (parenthesized_expression "(*(char *)(iVar14 + 0xc) == 'V')" ( (binary_expression "*(char *)(iVar14 + 0xc) == 'V'" (pointer_expression "*(char *)(iVar14 + 0xc)" * (cast_expression "(char *)(iVar14 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xc)" ( (binary_expression "iVar14 + 0xc" identifier + number_literal) )))) == (char_literal "'V'" ' character ')) )) (goto_statement "goto LAB_000c1544;" goto statement_identifier ;)) (labeled_statement "LAB_000c1494:\n          iVar20 = 0;" statement_identifier : (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;)) (expression_statement "uVar7 = local_30;" (assignment_expression "uVar7 = local_30" identifier = identifier) ;) (labeled_statement "LAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);" statement_identifier : (expression_statement "pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);" (assignment_expression "pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508)" identifier = (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7508)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x7508)" ( (binary_expression "PTR_LAB_0015b714 + -0x7508" identifier + number_literal) )))) ;)) (expression_statement "(*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);" (call_expression "(*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7)" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (if_statement "if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }" { (expression_statement "iVar18 = piVar11[0x1b];" (assignment_expression "iVar18 = piVar11[0x1b]" identifier = (subscript_expression "piVar11[0x1b]" identifier [ number_literal ])) ;) (if_statement "if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }" if (parenthesized_expression "(iVar20 < 0)" ( (binary_expression "iVar20 < 0" identifier < number_literal) )) (compound_statement "{\n              iVar20 = iVar18 + -1;\n            }" { (expression_statement "iVar20 = iVar18 + -1;" (assignment_expression "iVar20 = iVar18 + -1" identifier = (binary_expression "iVar18 + -1" identifier + number_literal)) ;) })) (if_statement "if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }" if (parenthesized_expression "(*(char *)(*piVar11 + 0x51) == '\0')" ( (binary_expression "*(char *)(*piVar11 + 0x51) == '\0'" (pointer_expression "*(char *)(*piVar11 + 0x51)" * (cast_expression "(char *)(*piVar11 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar11 + 0x51)" ( (binary_expression "*piVar11 + 0x51" (pointer_expression "*piVar11" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }" { (expression_statement "*(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;" (assignment_expression "*(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18" (pointer_expression "*(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8)" * (cast_expression "(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar11[0x1a] + iVar20 * 0x14 + 8)" ( (binary_expression "piVar11[0x1a] + iVar20 * 0x14 + 8" (binary_expression "piVar11[0x1a] + iVar20 * 0x14" (subscript_expression "piVar11[0x1a]" identifier [ number_literal ]) + (binary_expression "iVar20 * 0x14" identifier * number_literal)) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }" else (compound_statement "{\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }" { (expression_statement "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;" (assignment_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18" (pointer_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c)" * (cast_expression "(int *)(PTR_DAT_0015b5d8 + -0x450c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x450c)" ( (binary_expression "PTR_DAT_0015b5d8 + -0x450c" identifier + number_literal) )))) = identifier) ;) }))) })) }) (else_clause "else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }" else (compound_statement "{\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }" { (expression_statement "pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);" (assignment_expression "pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508)" identifier = (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7508)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x7508)" ( (binary_expression "PTR_LAB_0015b714 + -0x7508" identifier + number_literal) )))) ;) }))))) (if_statement "if (bVar1) goto LAB_000c0e5c;" if (parenthesized_expression "(bVar1)" ( identifier )) (goto_statement "goto LAB_000c0e5c;" goto statement_identifier ;)) }))) (expression_statement "(*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);" (call_expression "(*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b714 + -0x7af4))" ( (pointer_expression "*(code *)(PTR_LAB_0015b714 + -0x7af4)" * (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7af4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x7af4)" ( (binary_expression "PTR_LAB_0015b714 + -0x7af4" identifier + number_literal) )))) )) (argument_list "(param_1,iVar14,iVar23,0,uVar4,local_30)" ( identifier , identifier , identifier , number_literal , identifier , identifier ))) ;) }))) (labeled_statement "LAB_000c0e5c:\n    (*pcVar15)(piVar11,0x53,iVar9,1,0);" statement_identifier : (expression_statement "(*pcVar15)(piVar11,0x53,iVar9,1,0);" (call_expression "(*pcVar15)(piVar11,0x53,iVar9,1,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x53,iVar9,1,0)" ( identifier , number_literal , identifier , number_literal , number_literal ))) ;)) (expression_statement "(*pcVar15)(piVar11,5,iVar23,local_50,0);" (call_expression "(*pcVar15)(piVar11,5,iVar23,local_50,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,5,iVar23,local_50,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "(*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);" (call_expression "(*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0)" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "(param_1,iVar14,iVar9,param_4,param_5,0,0)" ( identifier , identifier , identifier , identifier , identifier , number_literal , number_literal ))) ;) (expression_statement "(*pcVar24)(piVar11,iVar17);" (call_expression "(*pcVar24)(piVar11,iVar17)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(piVar11,iVar17)" ( identifier , identifier ))) ;) (expression_statement "(*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);" (call_expression "(*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" * (cast_expression "(undefined4 *)(iVar14 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x24)" ( (binary_expression "iVar14 + 0x24" identifier + number_literal) )))) , number_literal , number_literal ))) ;) }))) (expression_statement "iVar18 = 0x42;" (assignment_expression "iVar18 = 0x42" identifier = number_literal) ;) (expression_statement "(*pcVar15)(piVar11,0x42,iVar5,0,0);" (call_expression "(*pcVar15)(piVar11,0x42,iVar5,0,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x42,iVar5,0,0)" ( identifier , number_literal , identifier , number_literal , number_literal ))) ;) (expression_statement "piVar16 = (int *)piVar11[0x1b];" (assignment_expression "piVar16 = (int *)piVar11[0x1b]" identifier = (cast_expression "(int *)piVar11[0x1b]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[0x1b]" identifier [ number_literal ]))) ;) (if_statement "if (local_60 < 0) {\n    local_60 = (int)piVar16 + -1;\n  }" if (parenthesized_expression "(local_60 < 0)" ( (binary_expression "local_60 < 0" identifier < number_literal) )) (compound_statement "{\n    local_60 = (int)piVar16 + -1;\n  }" { (expression_statement "local_60 = (int)piVar16 + -1;" (assignment_expression "local_60 = (int)piVar16 + -1" identifier = (binary_expression "(int)piVar16 + -1" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) })) (if_statement "if (*(char *)(*piVar11 + 0x51) == '\0') {\n    puVar3 = (undefined *)(piVar11[0x1a] + local_60 * 0x14);\n    iVar18 = local_60;\n  }\n  else {\n    puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n  }" if (parenthesized_expression "(*(char *)(*piVar11 + 0x51) == '\0')" ( (binary_expression "*(char *)(*piVar11 + 0x51) == '\0'" (pointer_expression "*(char *)(*piVar11 + 0x51)" * (cast_expression "(char *)(*piVar11 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar11 + 0x51)" ( (binary_expression "*piVar11 + 0x51" (pointer_expression "*piVar11" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    puVar3 = (undefined *)(piVar11[0x1a] + local_60 * 0x14);\n    iVar18 = local_60;\n  }" { (expression_statement "puVar3 = (undefined *)(piVar11[0x1a] + local_60 * 0x14);" (assignment_expression "puVar3 = (undefined *)(piVar11[0x1a] + local_60 * 0x14)" identifier = (cast_expression "(undefined *)(piVar11[0x1a] + local_60 * 0x14)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar11[0x1a] + local_60 * 0x14)" ( (binary_expression "piVar11[0x1a] + local_60 * 0x14" (subscript_expression "piVar11[0x1a]" identifier [ number_literal ]) + (binary_expression "local_60 * 0x14" identifier * number_literal)) )))) ;) (expression_statement "iVar18 = local_60;" (assignment_expression "iVar18 = local_60" identifier = identifier) ;) }) (else_clause "else {\n    puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n  }" else (compound_statement "{\n    puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n  }" { (expression_statement "puVar3 = PTR_DAT_0015b5d8 + -0x4514;" (assignment_expression "puVar3 = PTR_DAT_0015b5d8 + -0x4514" identifier = (binary_expression "PTR_DAT_0015b5d8 + -0x4514" identifier + number_literal)) ;) }))) (expression_statement "*(int **)(puVar3 + 8) = piVar16;" (assignment_expression "*(int **)(puVar3 + 8) = piVar16" (pointer_expression "*(int **)(puVar3 + 8)" * (cast_expression "(int **)(puVar3 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 8)" ( (binary_expression "puVar3 + 8" identifier + number_literal) )))) = identifier) ;) (labeled_statement "LAB_000c0f44:\n  if (local_2c == *(int *)puVar22) {\n    return;\n  }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar22) {\n    return;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar22)" ( (binary_expression "local_2c == *(int *)puVar22" identifier == (pointer_expression "*(int *)puVar22" * (cast_expression "(int *)puVar22" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "puVar22 = PTR___stack_chk_fail_0015ba10;" (assignment_expression "puVar22 = PTR___stack_chk_fail_0015ba10" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0015ba10)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015ba10)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015ba10)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0015ba10" * (cast_expression "(code *)PTR___stack_chk_fail_0015ba10" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar14 = *piVar16;" (assignment_expression "iVar14 = *piVar16" identifier = (pointer_expression "*piVar16" * identifier)) ;) (if_statement "if (iVar18 == 0) {\n    if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8();\n      return;\n    }\n  }\n  else {\n    iVar18 = (*(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c))(iVar14);\n    if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8(piVar16,iVar18,iVar5);\n    }\n    if (iVar18 != 0) {\n                    /* WARNING: Could not recover jumptable at 0x000c1fc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4))(iVar14,iVar18);\n      return;\n    }\n  }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n    if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8();\n      return;\n    }\n  }" { (if_statement "if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8();\n      return;\n    }" if (parenthesized_expression "(*(char *)(iVar14 + 0x51) == '\0')" ( (binary_expression "*(char *)(iVar14 + 0x51) == '\0'" (pointer_expression "*(char *)(iVar14 + 0x51)" * (cast_expression "(char *)(iVar14 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x51)" ( (binary_expression "iVar14 + 0x51" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_000c02d8();\n      return;\n    }" { (expression_statement "FUN_000c02d8();" (call_expression "FUN_000c02d8()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n    iVar18 = (*(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c))(iVar14);\n    if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8(piVar16,iVar18,iVar5);\n    }\n    if (iVar18 != 0) {\n                    /* WARNING: Could not recover jumptable at 0x000c1fc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4))(iVar14,iVar18);\n      return;\n    }\n  }" else (compound_statement "{\n    iVar18 = (*(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c))(iVar14);\n    if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8(piVar16,iVar18,iVar5);\n    }\n    if (iVar18 != 0) {\n                    /* WARNING: Could not recover jumptable at 0x000c1fc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4))(iVar14,iVar18);\n      return;\n    }\n  }" { (expression_statement "iVar18 = (*(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c))(iVar14);" (assignment_expression "iVar18 = (*(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c))(iVar14)" identifier = (call_expression "(*(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c))(iVar14)" (parenthesized_expression "(*(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c))" ( (pointer_expression "*(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c)" * (cast_expression "(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar22 + 0x997c0) + -0x271c)" ( (binary_expression "*(int *)(puVar22 + 0x997c0) + -0x271c" (pointer_expression "*(int *)(puVar22 + 0x997c0)" * (cast_expression "(int *)(puVar22 + 0x997c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0x997c0)" ( (binary_expression "puVar22 + 0x997c0" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(iVar14)" ( identifier )))) ;) (if_statement "if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8(piVar16,iVar18,iVar5);\n    }" if (parenthesized_expression "(*(char *)(iVar14 + 0x51) == '\0')" ( (binary_expression "*(char *)(iVar14 + 0x51) == '\0'" (pointer_expression "*(char *)(iVar14 + 0x51)" * (cast_expression "(char *)(iVar14 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x51)" ( (binary_expression "iVar14 + 0x51" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_000c02d8(piVar16,iVar18,iVar5);\n    }" { (expression_statement "FUN_000c02d8(piVar16,iVar18,iVar5);" (call_expression "FUN_000c02d8(piVar16,iVar18,iVar5)" identifier (argument_list "(piVar16,iVar18,iVar5)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if (iVar18 != 0) {\n                    /* WARNING: Could not recover jumptable at 0x000c1fc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4))(iVar14,iVar18);\n      return;\n    }" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x000c1fc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4))(iVar14,iVar18);\n      return;\n    }" { comment comment (expression_statement "(*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4))(iVar14,iVar18);" (call_expression "(*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4))(iVar14,iVar18)" (parenthesized_expression "(*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4))" ( (pointer_expression "*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4)" * (cast_expression "(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar22 + 0x99780) + 0x7bc4)" ( (binary_expression "*(int *)(puVar22 + 0x99780) + 0x7bc4" (pointer_expression "*(int *)(puVar22 + 0x99780)" * (cast_expression "(int *)(puVar22 + 0x99780)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0x99780)" ( (binary_expression "puVar22 + 0x99780" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(iVar14,iVar18)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })) }))) (return_statement "return;" return ;) })))
(translation_unit "void sqlite3WindowCodeStep(Parse *pParse,Select *p,WhereInfo *pWInfo,int regGosub,int addrGosub)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  char *pcVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 uVar7;\n  undefined1 *puVar8;\n  uint uVar9;\n  u8 uVar16;\n  undefined4 uVar10;\n  int iVar11;\n  undefined4 uVar12;\n  int iVar13;\n  int iVar14;\n  Op *pOVar15;\n  Expr *pExpr;\n  ExprList *pEVar17;\n  uint uVar18;\n  undefined1 *puVar19;\n  TableLock *pTVar20;\n  Window *pWVar21;\n  code *pcVar22;\n  sqlite3 *psVar23;\n  Parse *pParse_00;\n  Vdbe *pVVar24;\n  int iVar25;\n  Window *pWVar26;\n  ExprList *pEVar27;\n  int iVar28;\n  code *pcVar29;\n  undefined *puVar30;\n  int iVar31;\n  code *pcVar32;\n  undefined1 *puStack_60;\n  code *pcStack_5c;\n  int iStack_58;\n  int iStack_50;\n  code *pcStack_4c;\n  ExprList *pEStack_48;\n  int regSize;\n  int iStack_2c;\n  \n  puVar30 = PTR___stack_chk_guard_0015ba2c;\n  pWVar21 = p->pWin;\n  iStack_2c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  uVar18._0_1_ = pWVar21->eType;\n  uVar18._1_1_ = pWVar21->eStart;\n  uVar18._2_1_ = pWVar21->eEnd;\n  uVar18._3_1_ = pWVar21->field_0xf;\n  if (pWVar21->eType == 'L') {\n    if (((uVar18 & 0xffff00) == 0x575200) && (pWVar21->pOrderBy != (ExprList *)0x0))\n    goto LAB_000c08b4;\n    pVVar24 = pParse->pVdbe;\n    if (pVVar24 == (Vdbe *)0x0) {\n      pVVar24 = (Vdbe *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse);\n    }\n    puVar2 = PTR_LAB_0015b714;\n    iVar25 = pParse->nTab;\n    iVar4 = pParse->nMem;\n    iVar6 = iVar4 + 3;\n    iVar28 = pParse->nLabel + -2;\n    pParse->nTab = iVar25 + 2;\n    iVar11 = pParse->nLabel + -1;\n    iVar5 = iVar4 + 1;\n    pParse->nMem = iVar6;\n    pParse->nLabel = iVar28;\n    iVar4 = iVar4 + 2;\n    iVar31 = iVar25 + 1;\n    regSize = 0;\n    (*(code *)(puVar2 + -0x7e94))(pParse,&p->pSrc,p->pWin,pWInfo,iVar5,iVar11,&regSize);\n    pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    puStack_60 = (undefined1 *)(*pcVar22)(pVVar24,0xb,0,0,0);\n    pcVar32 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar32)(pVVar24,iVar11);\n    (*pcVar22)(pVVar24,0x11,0,pVVar24->nOp + 3,0);\n    (*pcVar22)(pVVar24,0x6f,iVar25,pWVar21->iEphCsr,0);\n    (*pcVar22)(pVVar24,0x6f,iVar31,pWVar21->iEphCsr,0);\n    if (pWVar21->pStart != (Expr *)0x0) {\n      sqlite3ExprCode(pParse,pWVar21->pStart,iVar4);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(pParse,iVar4,0);\n    }\n    if (pWVar21->pEnd != (Expr *)0x0) {\n      sqlite3ExprCode(pParse,pWVar21->pEnd,iVar6);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(pParse,iVar6,1);\n      if ((pWVar21->pEnd != (Expr *)0x0) && (pWVar21->eStart == 'S')) {\n        (*pcVar22)(pVVar24,0x39,iVar4,pVVar24->nOp + 2,iVar6);\n        (*pcVar22)(pVVar24,0x4e,regSize,iVar4,0);\n        (*pcVar22)(pVVar24,0x61,iVar4,iVar6,iVar6);\n      }\n    }\n    if ((pWVar21->pStart != (Expr *)0x0) && (pWVar21->eEnd == 'U')) {\n      (*pcVar22)(pVVar24,0x37,iVar4,pVVar24->nOp + 3,iVar6);\n      (*pcVar22)(pVVar24,0x4e,regSize,iVar4,0);\n      (*pcVar22)(pVVar24,0x4e,regSize,iVar6,0);\n    }\n    uVar7 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(pParse,pWVar21);\n    (*pcVar22)(pVVar24,0x24,pWVar21->iEphCsr,iVar28,0);\n    (*pcVar22)(pVVar24,0x24,iVar25,iVar28,0);\n    if (0 < pVVar24->nOp) {\n      pVVar24->aOp[pVVar24->nOp + -1].p5 = 1;\n    }\n    (*pcVar22)(pVVar24,0x24,iVar31,iVar28,0);\n    iVar11 = pVVar24->nOp;\n    if (0 < iVar11) {\n      pVVar24->aOp[iVar11 + -1].p5 = 1;\n      iVar11 = pVVar24->nOp;\n    }\n    if (pWVar21->eEnd == 'U') {\n      iStack_50 = (*pcVar22)(pVVar24,0x2f,iVar6,0,1);\n      iVar13 = pVVar24->nOp;\n    }\n    else {\n      iStack_50 = 0;\n      iVar13 = iVar11;\n    }\n    (*pcVar22)(pVVar24,5,iVar31,iVar13 + 2,0);\n    iVar13 = (*pcVar22)(pVVar24,0xb,0,0,0);\n    pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7af4);\n    (*pcVar29)(pParse,pWVar21,iVar31,0,uVar7,regSize);\n    if (pWVar21->eEnd == 'W') {\n      (*pcVar22)(pVVar24,0xb,0,iVar11,0);\n      iVar11 = pVVar24->nOp;\n      if (iVar13 < 0) {\n        iVar13 = iVar11 + -1;\n      }\n      if (pVVar24->db->mallocFailed == '\0') {\n        pVVar24->aOp[iVar13].p2 = iVar11;\n        uVar16 = pWVar21->eEnd;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar11;\n        uVar16 = pWVar21->eEnd;\n      }\n    }\n    else {\n      iVar31 = pVVar24->nOp;\n      if (iVar13 < 0) {\n        iVar13 = iVar31 + -1;\n      }\n      if (pVVar24->db->mallocFailed == '\0') {\n        pOVar15 = pVVar24->aOp + iVar13;\n      }\n      else {\n        pOVar15 = (Op *)(PTR_DAT_0015b5d8 + -0x4514);\n      }\n      pOVar15->p2 = iVar31;\n      uVar16 = pWVar21->eEnd;\n      if (uVar16 == 'U') {\n        iVar13 = iVar31 + -1;\n        if (-1 < iStack_50) {\n          iVar13 = iStack_50;\n        }\n        if (pVVar24->db->mallocFailed == '\0') {\n          pVVar24->aOp[iVar13].p2 = iVar31;\n          uVar16 = pWVar21->eEnd;\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar31;\n          uVar16 = pWVar21->eEnd;\n        }\n      }\n    }\n    if (uVar16 == 'S') {\n      iStack_50 = (*pcVar22)(pVVar24,0x2f,iVar6,0,1);\n    }\n    if (pWVar21->eStart == 'S') {\n      iVar6 = (*pcVar22)(pVVar24,0x2f,iVar4,0,1);\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(pParse,pWVar21,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(pParse,pWVar21,regGosub,addrGosub);\n      (*pcVar22)(pVVar24,5,pWVar21->iEphCsr,pVVar24->nOp + 2,0);\n      (*pcVar22)(pVVar24,0xb,0,iVar28,0);\n      uVar18 = (uint)pWVar21->eStart;\n      if (uVar18 == 0x53) {\n        iVar31 = pVVar24->nOp;\n        if (iVar6 < 0) {\n          iVar6 = iVar31 + -1;\n        }\n        goto LAB_000c1d20;\n      }\n    }\n    else {\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(pParse,pWVar21,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(pParse,pWVar21,regGosub,addrGosub);\n      (*pcVar22)(pVVar24,5,pWVar21->iEphCsr,pVVar24->nOp + 2,0);\n      (*pcVar22)(pVVar24,0xb,0,iVar28,0);\n      uVar18 = (uint)pWVar21->eStart;\n      if (uVar18 == 0x53) {\n        iVar31 = pVVar24->nOp;\n        iVar6 = 0;\nLAB_000c1d20:\n        if (pVVar24->db->mallocFailed == '\0') {\n          pVVar24->aOp[iVar6].p2 = iVar31;\n          uVar18 = (uint)pWVar21->eStart;\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar31;\n          uVar18 = (uint)pWVar21->eStart;\n        }\n      }\n    }\n    if ((uVar18 - 0x52 < 2) || (uVar18 == 0x55)) {\n      iVar6 = pParse->nLabel + -1;\n      pParse->nLabel = iVar6;\n      uVar16 = pWVar21->eStart;\n      if (uVar16 == 'U') {\n        (*pcVar22)(pVVar24,0x2f,iVar4,iVar6,1);\n        uVar16 = pWVar21->eStart;\n      }\n      if (uVar16 == 'S') {\n        (*pcVar22)(pVVar24,5,iVar25,pVVar24->nOp + 2,0);\n        (*pcVar22)(pVVar24,0xb,0,iVar6,0);\n      }\n      else {\n        (*pcVar22)(pVVar24,5,iVar25,pVVar24->nOp + 1,0);\n      }\n      (*pcVar29)(pParse,pWVar21,iVar25,1,uVar7,regSize);\n      (*pcVar32)(pVVar24,iVar6);\n    }\n    if (pWVar21->eEnd == 'S') {\n      iVar4 = pVVar24->nOp;\n      if (iStack_50 < 0) {\n        iStack_50 = iVar4 + -1;\n      }\n      if (pVVar24->db->mallocFailed == '\0') {\n        pVVar24->aOp[iStack_50].p2 = iVar4;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4;\n      }\n    }\n    (*pcVar22)(pVVar24,0xb,0,iVar11,0);\n    (*pcVar32)(pVVar24,iVar28);\n    (*pcVar22)(pVVar24,0x8a,pWVar21->iEphCsr,0,0);\n  }\n  else {\n    if ((uVar18 & 0xffff00) != 0x525700) {\nLAB_000c08b4:\n      pWVar26 = pWVar21;\n      do {\n        if (((((pWVar26->pFunc->funcFlags & 0x20000) != 0) ||\n             (pcVar3 = pWVar26->pFunc->zName, pcVar3 == PTR_DAT_0015b694 + -0x7df4)) ||\n            (pcVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((pcVar3 == PTR_DAT_0015b694 + -0x7e08 || (pcVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        pWVar26 = pWVar26->pNextWin;\n      } while (pWVar26 != (Window *)0x0);\n      pParse_00 = (Parse *)pParse->pVdbe;\n      if (pParse_00 == (Parse *)0x0) {\n        pParse_00 = (Parse *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse);\n      }\n      pEVar17 = pWVar21->pPartition;\n      iVar25 = pParse->nMem + 1;\n      iVar4 = p->pSrc->a[0].iCursor;\n      iVar28 = (int)(p->pSrc->a[0].pTab)->nCol;\n      iVar5 = iVar28 + iVar25;\n      iVar6 = iVar28 + 2 + pParse->nMem;\n      if (pWVar21->eEnd == 'W') {\n        pParse->nMem = iVar6;\n        pEVar27 = (ExprList *)0x0;\n        if (0 < iVar28) goto LAB_000c0980;\n        if (pEVar17 != (ExprList *)0x0) {\n          iStack_50 = pEVar17->nExpr;\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }\n      else {\n        pEVar27 = pWVar21->pOrderBy;\n        pParse->nMem = iVar6;\n        if (iVar28 < 1) {\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar6 = 0;\n          do {\n            iVar31 = iVar6 + 1;\n            (*pcVar22)(pParse_00,0x5a,iVar4,iVar6,iVar25 + iVar6);\n            iVar6 = iVar31;\n          } while (iVar31 < iVar28);\n        }\n        puVar2 = PTR_LAB_0015b714;\n        if (pEVar17 == (ExprList *)0x0) {\n          if (pEVar27 == (ExprList *)0x0) {\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar4 = pEVar27->nExpr;\n          puStack_60 = (undefined1 *)iVar4;\n          if (pWVar21->eType == 'V') {\n            puVar19 = (undefined1 *)0x0;\n            iVar6 = pWVar21->regPart;\n            iStack_50 = iVar25 + pWVar21->nBufferCol;\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          puVar8 = (undefined1 *)0x0;\n          pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R');\n          pTVar20 = pParse_00->aTableLock;\n        }\n        else {\n          iStack_50 = pEVar17->nExpr;\n          if (pEVar27 == (ExprList *)0x0) {\nLAB_000c09d4:\n            iVar4 = pWVar21->nBufferCol;\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar4 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar4,pWVar21->regPart,iStack_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pParse_00,uVar7,0xfffffff7);\n            puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar32)(pParse,pWVar21,1);\n            puStack_60 = (undefined1 *)iStack_50;\n          }\n          else {\n            iVar6 = pWVar21->nBufferCol;\n            iVar4 = pEVar27->nExpr;\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar6 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar6,pWVar21->regPart,iStack_50);\n            pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);\n            puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar6 + 2,0,iVar6 + 2);\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar32)(pParse,pWVar21,1);\n            puVar19 = (undefined1 *)(*pcVar22)(pParse_00,0xb,0,0,0);\n            iVar28 = pWVar21->nBufferCol;\n            iVar6 = pWVar21->regPart;\n            if (puVar8 != (undefined1 *)0x0) {\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar8 < 0) {\n                puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }\n            puStack_60 = (undefined1 *)(iStack_50 + iVar4);\n            if (pWVar21->eType == 'V') {\n              iVar6 = iStack_50 + iVar6;\n              iStack_50 = iVar25 + iVar28 + iStack_50;\nLAB_000c1e74:\n              pcStack_4c = (code *)(puVar2 + -0x7fc4);\n              uVar7 = (*pcStack_4c)(pParse,pEVar27,0,0);\n              iVar4 = (*pcVar22)(pParse_00,0x57,iStack_50,iVar6,iVar4);\n              (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);\n              puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);\n            }\n            else {\n              puVar8 = (undefined1 *)0x0;\n            }\n            (*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R');\n            if (puVar19 != (undefined1 *)0x0) {\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar19 < 0) {\n                puVar19 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar19].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }\n          }\n          pTVar20 = pParse_00->aTableLock;\n        }\n        (*pcVar22)(pParse_00,0x24,pWVar21->iEphCsr,(undefined1 *)((int)&pTVar20->iDb + 3),0);\n        (*pcVar22)(pParse_00,0xc,regGosub,addrGosub,0);\n        (*pcVar22)(pParse_00,5,pWVar21->iEphCsr,\n                   (undefined1 *)((int)&pParse_00->aTableLock[-1].zLockName + 3),0);\n        (*pcVar22)(pParse_00,0x8a,pWVar21->iEphCsr,0,0);\n        (*pcVar22)(pParse_00,0x4e,iVar25 + pWVar21->nBufferCol,pWVar21->regPart,(int)puStack_60 + -1\n                  );\n        if (puVar8 != (undefined1 *)0x0) {\n          pTVar20 = pParse_00->aTableLock;\n          if ((int)puVar8 < 0) {\n            puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n          }\n          if (pParse_00->db->mallocFailed == '\0') {\n            ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;\n          }\n          else {\n            *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n          }\n        }\n      }\nLAB_000c0b50:\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(pParse,pWVar21,0xffffffff,0,iVar25,0);\n      if (pWVar21->nBufferCol < 1) {\n        (*pcVar22)(pParse_00,0x4b,0,iVar5,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pParse_00,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }\n      else {\n        (*pcVar22)(pParse_00,0x66,iVar25,pWVar21->nBufferCol,iVar5);\n      }\n      (*pcVar22)(pParse_00,0x79,pWVar21->iEphCsr,iVar5 + 1,0);\n      (*pcVar22)(pParse_00,0x7a,pWVar21->iEphCsr,iVar5,iVar5 + 1);\n      (*(code *)(PTR_LAB_0015b710 + -0x18cc))(pWInfo);\n      (*pcVar32)(pParse,pWVar21,1);\n      (*pcVar22)(pParse_00,0x24,pWVar21->iEphCsr,\n                 (undefined1 *)((int)&pParse_00->aTableLock->iDb + 3),0);\n      (*pcVar22)(pParse_00,0xc,regGosub,addrGosub,0);\n      puVar19 = &DAT_00000005;\n      iVar5 = pWVar21->iEphCsr;\n      (*pcVar22)();\n      goto LAB_000c0f44;\n    }\nLAB_000c0c60:\n    pVVar24 = pParse->pVdbe;\n    if (pVVar24 == (Vdbe *)0x0) {\n      pVVar24 = (Vdbe *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse);\n      pEVar17 = pWVar21->pOrderBy;\n      pEStack_48 = pWVar21->pPartition;\n      if (pEVar17 != (ExprList *)0x0) goto LAB_000c0c7c;\nLAB_000c1450:\n      iStack_58 = 0;\n      bVar1 = false;\n    }\n    else {\n      pEStack_48 = pWVar21->pPartition;\n      pEVar17 = pWVar21->pOrderBy;\n      if (pEVar17 == (ExprList *)0x0) goto LAB_000c1450;\nLAB_000c0c7c:\n      iStack_58 = pEVar17->nExpr;\n      uVar9._0_1_ = pWVar21->eType;\n      uVar9._1_1_ = pWVar21->eStart;\n      uVar9._2_1_ = pWVar21->eEnd;\n      uVar9._3_1_ = pWVar21->field_0xf;\n      bVar1 = (uVar9 & 0xffff00) == 0x525700;\n    }\n    puVar2 = PTR_LAB_0015b714;\n    iVar4 = pParse->nMem;\n    iVar28 = pParse->nTab;\n    iVar6 = pParse->nLabel;\n    iVar5 = iVar4 + iStack_58;\n    iVar31 = iVar5 + 2;\n    iVar25 = iVar6 + -2;\n    pParse->nTab = iVar28 + 1;\n    iVar5 = iVar5 + 1;\n    pParse->nLabel = iVar25;\n    pParse->nMem = iVar31;\n    iVar6 = iVar6 + -1;\n    (*(code *)(puVar2 + -0x7e94))(pParse,&p->pSrc,p->pWin,pWInfo,iVar5,iVar25,&regSize);\n    pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    puStack_60 = (undefined1 *)(*pcVar22)(pVVar24,0xb,0,0,0);\n    pcVar32 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar32)(pVVar24,iVar25);\n    (*pcVar22)(pVVar24,0x11,0,pVVar24->nOp + 2,0);\n    (*pcVar22)(pVVar24,0x6f,iVar28,pWVar21->iEphCsr,0);\n    uVar7 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(pParse,pWVar21);\n    (*pcVar22)(pVVar24,0x46,0,iVar31,0);\n    (*pcVar22)(pVVar24,0x24,iVar28,iVar6,0);\n    (*pcVar22)(pVVar24,0x24,pWVar21->iEphCsr,iVar6,0);\n    if (bVar1) {\n      iVar25 = pVVar24->nOp;\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(pParse,pWVar21,iVar28,0,uVar7,regSize);\n      (*pcVar22)(pVVar24,5,iVar28,iVar25,0);\n      (*pcVar22)(pVVar24,0x24,iVar28,iVar6,0);\n      iStack_50 = pVVar24->nOp;\n      if (pEVar17 != (ExprList *)0x0) goto LAB_000c0e28;\n      pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n    }\n    else {\n      iStack_50 = pVVar24->nOp;\n      if (pEVar17 == (ExprList *)0x0) {\n        pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        uVar16 = pWVar21->eStart;\n        uVar10 = uVar7;\n        if (pWVar21->eEnd == 'R') {\n          if (pWVar21->eType == 'V') {\nLAB_000c1544:\n            iVar25 = pWVar21->nBufferCol;\n            if (pEStack_48 == (ExprList *)0x0) {\n              iVar11 = 0;\n            }\n            else {\n              iVar11 = pEStack_48->nExpr;\n              iVar25 = iVar25 + iVar11;\n            }\n            iVar11 = iVar11 + pWVar21->regPart;\n            uVar12 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar4 = iVar4 + 1;\n            if (0 < iStack_58) {\n              iVar13 = iStack_58 + iVar25;\n              iVar14 = iVar4 - iVar25;\n              do {\n                (*pcVar22)(pVVar24,0x5a,iVar28,iVar25,iVar14 + iVar25);\n                iVar25 = iVar25 + 1;\n              } while (iVar25 != iVar13);\n            }\n            iVar25 = (*pcVar22)(pVVar24,0x57,iVar4,iVar11,iStack_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pVVar24,uVar12,0xfffffff7);\n            iVar25 = (*pcVar22)(pVVar24,0x10,iVar25 + 2,0,iVar25 + 2);\n            (*pcVar22)(pVVar24,0x4e,iVar4,iVar11,iStack_58 + -1);\n            iVar4 = regSize;\n            if (uVar16 != 'R') {\n              uVar10 = 0;\n              iVar4 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (uVar16 == 'R') goto LAB_000c1494;\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,0,0);\n        }\n        else if (uVar16 == 'R') {\n          if (pWVar21->eType == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar25 = 0;\n          iVar4 = regSize;\nLAB_000c14a0:\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,uVar10,iVar4);\n          if (iVar25 != 0) {\n            iVar4 = pVVar24->nOp;\n            if (iVar25 < 0) {\n              iVar25 = iVar4 + -1;\n            }\n            if (pVVar24->db->mallocFailed == '\0') {\n              pVVar24->aOp[iVar25].p2 = iVar4;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4;\n            }\n          }\n        }\n        else {\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(pParse,pWVar21,iVar28,0,uVar7,regSize);\n    }\nLAB_000c0e5c:\n    (*pcVar22)(pVVar24,0x53,iVar31,1,0);\n    (*pcVar22)(pVVar24,5,iVar28,iStack_50,0);\n    (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,0,0);\n    (*pcVar32)(pVVar24,iVar6);\n    (*pcVar22)(pVVar24,0x8a,pWVar21->iEphCsr,0,0);\n  }\n  puVar19 = (undefined1 *)0x42;\n  (*pcVar22)(pVVar24,0x42,iVar5,0,0);\n  pParse_00 = (Parse *)pVVar24->nOp;\n  if ((int)puStack_60 < 0) {\n    puStack_60 = (undefined1 *)((int)&pParse_00[-1].pRename + 3);\n  }\n  if (pVVar24->db->mallocFailed == '\0') {\n    pOVar15 = pVVar24->aOp + (int)puStack_60;\n    puVar19 = puStack_60;\n  }\n  else {\n    pOVar15 = (Op *)(PTR_DAT_0015b5d8 + -0x4514);\n  }\n  pOVar15->p2 = (int)pParse_00;\nLAB_000c0f44:\n  if (iStack_2c == *(int *)puVar30) {\n    return;\n  }\n  puVar30 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  psVar23 = pParse_00->db;\n  if (puVar19 == (undefined1 *)0x0) {\n    if (psVar23->mallocFailed == '\0') {\n      sqlite3ExprCode(pParse_00,(Expr *)0x0,iVar5);\n      return;\n    }\n  }\n  else {\n    pExpr = (Expr *)(*(code *)(*(int *)(puVar30 + 0x997c0) + -0x271c))(psVar23);\n    if (psVar23->mallocFailed == '\0') {\n      sqlite3ExprCode(pParse_00,pExpr,iVar5);\n    }\n    if (pExpr != (Expr *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x000c1fc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)(*(int *)(puVar30 + 0x99780) + 0x7bc4))(psVar23,pExpr);\n      return;\n    }\n  }\n  return;\n}\n\n" (function_definition "void sqlite3WindowCodeStep(Parse *pParse,Select *p,WhereInfo *pWInfo,int regGosub,int addrGosub)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  char *pcVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 uVar7;\n  undefined1 *puVar8;\n  uint uVar9;\n  u8 uVar16;\n  undefined4 uVar10;\n  int iVar11;\n  undefined4 uVar12;\n  int iVar13;\n  int iVar14;\n  Op *pOVar15;\n  Expr *pExpr;\n  ExprList *pEVar17;\n  uint uVar18;\n  undefined1 *puVar19;\n  TableLock *pTVar20;\n  Window *pWVar21;\n  code *pcVar22;\n  sqlite3 *psVar23;\n  Parse *pParse_00;\n  Vdbe *pVVar24;\n  int iVar25;\n  Window *pWVar26;\n  ExprList *pEVar27;\n  int iVar28;\n  code *pcVar29;\n  undefined *puVar30;\n  int iVar31;\n  code *pcVar32;\n  undefined1 *puStack_60;\n  code *pcStack_5c;\n  int iStack_58;\n  int iStack_50;\n  code *pcStack_4c;\n  ExprList *pEStack_48;\n  int regSize;\n  int iStack_2c;\n  \n  puVar30 = PTR___stack_chk_guard_0015ba2c;\n  pWVar21 = p->pWin;\n  iStack_2c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  uVar18._0_1_ = pWVar21->eType;\n  uVar18._1_1_ = pWVar21->eStart;\n  uVar18._2_1_ = pWVar21->eEnd;\n  uVar18._3_1_ = pWVar21->field_0xf;\n  if (pWVar21->eType == 'L') {\n    if (((uVar18 & 0xffff00) == 0x575200) && (pWVar21->pOrderBy != (ExprList *)0x0))\n    goto LAB_000c08b4;\n    pVVar24 = pParse->pVdbe;\n    if (pVVar24 == (Vdbe *)0x0) {\n      pVVar24 = (Vdbe *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse);\n    }\n    puVar2 = PTR_LAB_0015b714;\n    iVar25 = pParse->nTab;\n    iVar4 = pParse->nMem;\n    iVar6 = iVar4 + 3;\n    iVar28 = pParse->nLabel + -2;\n    pParse->nTab = iVar25 + 2;\n    iVar11 = pParse->nLabel + -1;\n    iVar5 = iVar4 + 1;\n    pParse->nMem = iVar6;\n    pParse->nLabel = iVar28;\n    iVar4 = iVar4 + 2;\n    iVar31 = iVar25 + 1;\n    regSize = 0;\n    (*(code *)(puVar2 + -0x7e94))(pParse,&p->pSrc,p->pWin,pWInfo,iVar5,iVar11,&regSize);\n    pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    puStack_60 = (undefined1 *)(*pcVar22)(pVVar24,0xb,0,0,0);\n    pcVar32 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar32)(pVVar24,iVar11);\n    (*pcVar22)(pVVar24,0x11,0,pVVar24->nOp + 3,0);\n    (*pcVar22)(pVVar24,0x6f,iVar25,pWVar21->iEphCsr,0);\n    (*pcVar22)(pVVar24,0x6f,iVar31,pWVar21->iEphCsr,0);\n    if (pWVar21->pStart != (Expr *)0x0) {\n      sqlite3ExprCode(pParse,pWVar21->pStart,iVar4);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(pParse,iVar4,0);\n    }\n    if (pWVar21->pEnd != (Expr *)0x0) {\n      sqlite3ExprCode(pParse,pWVar21->pEnd,iVar6);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(pParse,iVar6,1);\n      if ((pWVar21->pEnd != (Expr *)0x0) && (pWVar21->eStart == 'S')) {\n        (*pcVar22)(pVVar24,0x39,iVar4,pVVar24->nOp + 2,iVar6);\n        (*pcVar22)(pVVar24,0x4e,regSize,iVar4,0);\n        (*pcVar22)(pVVar24,0x61,iVar4,iVar6,iVar6);\n      }\n    }\n    if ((pWVar21->pStart != (Expr *)0x0) && (pWVar21->eEnd == 'U')) {\n      (*pcVar22)(pVVar24,0x37,iVar4,pVVar24->nOp + 3,iVar6);\n      (*pcVar22)(pVVar24,0x4e,regSize,iVar4,0);\n      (*pcVar22)(pVVar24,0x4e,regSize,iVar6,0);\n    }\n    uVar7 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(pParse,pWVar21);\n    (*pcVar22)(pVVar24,0x24,pWVar21->iEphCsr,iVar28,0);\n    (*pcVar22)(pVVar24,0x24,iVar25,iVar28,0);\n    if (0 < pVVar24->nOp) {\n      pVVar24->aOp[pVVar24->nOp + -1].p5 = 1;\n    }\n    (*pcVar22)(pVVar24,0x24,iVar31,iVar28,0);\n    iVar11 = pVVar24->nOp;\n    if (0 < iVar11) {\n      pVVar24->aOp[iVar11 + -1].p5 = 1;\n      iVar11 = pVVar24->nOp;\n    }\n    if (pWVar21->eEnd == 'U') {\n      iStack_50 = (*pcVar22)(pVVar24,0x2f,iVar6,0,1);\n      iVar13 = pVVar24->nOp;\n    }\n    else {\n      iStack_50 = 0;\n      iVar13 = iVar11;\n    }\n    (*pcVar22)(pVVar24,5,iVar31,iVar13 + 2,0);\n    iVar13 = (*pcVar22)(pVVar24,0xb,0,0,0);\n    pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7af4);\n    (*pcVar29)(pParse,pWVar21,iVar31,0,uVar7,regSize);\n    if (pWVar21->eEnd == 'W') {\n      (*pcVar22)(pVVar24,0xb,0,iVar11,0);\n      iVar11 = pVVar24->nOp;\n      if (iVar13 < 0) {\n        iVar13 = iVar11 + -1;\n      }\n      if (pVVar24->db->mallocFailed == '\0') {\n        pVVar24->aOp[iVar13].p2 = iVar11;\n        uVar16 = pWVar21->eEnd;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar11;\n        uVar16 = pWVar21->eEnd;\n      }\n    }\n    else {\n      iVar31 = pVVar24->nOp;\n      if (iVar13 < 0) {\n        iVar13 = iVar31 + -1;\n      }\n      if (pVVar24->db->mallocFailed == '\0') {\n        pOVar15 = pVVar24->aOp + iVar13;\n      }\n      else {\n        pOVar15 = (Op *)(PTR_DAT_0015b5d8 + -0x4514);\n      }\n      pOVar15->p2 = iVar31;\n      uVar16 = pWVar21->eEnd;\n      if (uVar16 == 'U') {\n        iVar13 = iVar31 + -1;\n        if (-1 < iStack_50) {\n          iVar13 = iStack_50;\n        }\n        if (pVVar24->db->mallocFailed == '\0') {\n          pVVar24->aOp[iVar13].p2 = iVar31;\n          uVar16 = pWVar21->eEnd;\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar31;\n          uVar16 = pWVar21->eEnd;\n        }\n      }\n    }\n    if (uVar16 == 'S') {\n      iStack_50 = (*pcVar22)(pVVar24,0x2f,iVar6,0,1);\n    }\n    if (pWVar21->eStart == 'S') {\n      iVar6 = (*pcVar22)(pVVar24,0x2f,iVar4,0,1);\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(pParse,pWVar21,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(pParse,pWVar21,regGosub,addrGosub);\n      (*pcVar22)(pVVar24,5,pWVar21->iEphCsr,pVVar24->nOp + 2,0);\n      (*pcVar22)(pVVar24,0xb,0,iVar28,0);\n      uVar18 = (uint)pWVar21->eStart;\n      if (uVar18 == 0x53) {\n        iVar31 = pVVar24->nOp;\n        if (iVar6 < 0) {\n          iVar6 = iVar31 + -1;\n        }\n        goto LAB_000c1d20;\n      }\n    }\n    else {\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(pParse,pWVar21,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(pParse,pWVar21,regGosub,addrGosub);\n      (*pcVar22)(pVVar24,5,pWVar21->iEphCsr,pVVar24->nOp + 2,0);\n      (*pcVar22)(pVVar24,0xb,0,iVar28,0);\n      uVar18 = (uint)pWVar21->eStart;\n      if (uVar18 == 0x53) {\n        iVar31 = pVVar24->nOp;\n        iVar6 = 0;\nLAB_000c1d20:\n        if (pVVar24->db->mallocFailed == '\0') {\n          pVVar24->aOp[iVar6].p2 = iVar31;\n          uVar18 = (uint)pWVar21->eStart;\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar31;\n          uVar18 = (uint)pWVar21->eStart;\n        }\n      }\n    }\n    if ((uVar18 - 0x52 < 2) || (uVar18 == 0x55)) {\n      iVar6 = pParse->nLabel + -1;\n      pParse->nLabel = iVar6;\n      uVar16 = pWVar21->eStart;\n      if (uVar16 == 'U') {\n        (*pcVar22)(pVVar24,0x2f,iVar4,iVar6,1);\n        uVar16 = pWVar21->eStart;\n      }\n      if (uVar16 == 'S') {\n        (*pcVar22)(pVVar24,5,iVar25,pVVar24->nOp + 2,0);\n        (*pcVar22)(pVVar24,0xb,0,iVar6,0);\n      }\n      else {\n        (*pcVar22)(pVVar24,5,iVar25,pVVar24->nOp + 1,0);\n      }\n      (*pcVar29)(pParse,pWVar21,iVar25,1,uVar7,regSize);\n      (*pcVar32)(pVVar24,iVar6);\n    }\n    if (pWVar21->eEnd == 'S') {\n      iVar4 = pVVar24->nOp;\n      if (iStack_50 < 0) {\n        iStack_50 = iVar4 + -1;\n      }\n      if (pVVar24->db->mallocFailed == '\0') {\n        pVVar24->aOp[iStack_50].p2 = iVar4;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4;\n      }\n    }\n    (*pcVar22)(pVVar24,0xb,0,iVar11,0);\n    (*pcVar32)(pVVar24,iVar28);\n    (*pcVar22)(pVVar24,0x8a,pWVar21->iEphCsr,0,0);\n  }\n  else {\n    if ((uVar18 & 0xffff00) != 0x525700) {\nLAB_000c08b4:\n      pWVar26 = pWVar21;\n      do {\n        if (((((pWVar26->pFunc->funcFlags & 0x20000) != 0) ||\n             (pcVar3 = pWVar26->pFunc->zName, pcVar3 == PTR_DAT_0015b694 + -0x7df4)) ||\n            (pcVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((pcVar3 == PTR_DAT_0015b694 + -0x7e08 || (pcVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        pWVar26 = pWVar26->pNextWin;\n      } while (pWVar26 != (Window *)0x0);\n      pParse_00 = (Parse *)pParse->pVdbe;\n      if (pParse_00 == (Parse *)0x0) {\n        pParse_00 = (Parse *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse);\n      }\n      pEVar17 = pWVar21->pPartition;\n      iVar25 = pParse->nMem + 1;\n      iVar4 = p->pSrc->a[0].iCursor;\n      iVar28 = (int)(p->pSrc->a[0].pTab)->nCol;\n      iVar5 = iVar28 + iVar25;\n      iVar6 = iVar28 + 2 + pParse->nMem;\n      if (pWVar21->eEnd == 'W') {\n        pParse->nMem = iVar6;\n        pEVar27 = (ExprList *)0x0;\n        if (0 < iVar28) goto LAB_000c0980;\n        if (pEVar17 != (ExprList *)0x0) {\n          iStack_50 = pEVar17->nExpr;\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }\n      else {\n        pEVar27 = pWVar21->pOrderBy;\n        pParse->nMem = iVar6;\n        if (iVar28 < 1) {\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar6 = 0;\n          do {\n            iVar31 = iVar6 + 1;\n            (*pcVar22)(pParse_00,0x5a,iVar4,iVar6,iVar25 + iVar6);\n            iVar6 = iVar31;\n          } while (iVar31 < iVar28);\n        }\n        puVar2 = PTR_LAB_0015b714;\n        if (pEVar17 == (ExprList *)0x0) {\n          if (pEVar27 == (ExprList *)0x0) {\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar4 = pEVar27->nExpr;\n          puStack_60 = (undefined1 *)iVar4;\n          if (pWVar21->eType == 'V') {\n            puVar19 = (undefined1 *)0x0;\n            iVar6 = pWVar21->regPart;\n            iStack_50 = iVar25 + pWVar21->nBufferCol;\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          puVar8 = (undefined1 *)0x0;\n          pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R');\n          pTVar20 = pParse_00->aTableLock;\n        }\n        else {\n          iStack_50 = pEVar17->nExpr;\n          if (pEVar27 == (ExprList *)0x0) {\nLAB_000c09d4:\n            iVar4 = pWVar21->nBufferCol;\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar4 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar4,pWVar21->regPart,iStack_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pParse_00,uVar7,0xfffffff7);\n            puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar32)(pParse,pWVar21,1);\n            puStack_60 = (undefined1 *)iStack_50;\n          }\n          else {\n            iVar6 = pWVar21->nBufferCol;\n            iVar4 = pEVar27->nExpr;\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar6 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar6,pWVar21->regPart,iStack_50);\n            pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);\n            puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar6 + 2,0,iVar6 + 2);\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar32)(pParse,pWVar21,1);\n            puVar19 = (undefined1 *)(*pcVar22)(pParse_00,0xb,0,0,0);\n            iVar28 = pWVar21->nBufferCol;\n            iVar6 = pWVar21->regPart;\n            if (puVar8 != (undefined1 *)0x0) {\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar8 < 0) {\n                puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }\n            puStack_60 = (undefined1 *)(iStack_50 + iVar4);\n            if (pWVar21->eType == 'V') {\n              iVar6 = iStack_50 + iVar6;\n              iStack_50 = iVar25 + iVar28 + iStack_50;\nLAB_000c1e74:\n              pcStack_4c = (code *)(puVar2 + -0x7fc4);\n              uVar7 = (*pcStack_4c)(pParse,pEVar27,0,0);\n              iVar4 = (*pcVar22)(pParse_00,0x57,iStack_50,iVar6,iVar4);\n              (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);\n              puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);\n            }\n            else {\n              puVar8 = (undefined1 *)0x0;\n            }\n            (*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R');\n            if (puVar19 != (undefined1 *)0x0) {\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar19 < 0) {\n                puVar19 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar19].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }\n          }\n          pTVar20 = pParse_00->aTableLock;\n        }\n        (*pcVar22)(pParse_00,0x24,pWVar21->iEphCsr,(undefined1 *)((int)&pTVar20->iDb + 3),0);\n        (*pcVar22)(pParse_00,0xc,regGosub,addrGosub,0);\n        (*pcVar22)(pParse_00,5,pWVar21->iEphCsr,\n                   (undefined1 *)((int)&pParse_00->aTableLock[-1].zLockName + 3),0);\n        (*pcVar22)(pParse_00,0x8a,pWVar21->iEphCsr,0,0);\n        (*pcVar22)(pParse_00,0x4e,iVar25 + pWVar21->nBufferCol,pWVar21->regPart,(int)puStack_60 + -1\n                  );\n        if (puVar8 != (undefined1 *)0x0) {\n          pTVar20 = pParse_00->aTableLock;\n          if ((int)puVar8 < 0) {\n            puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n          }\n          if (pParse_00->db->mallocFailed == '\0') {\n            ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;\n          }\n          else {\n            *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n          }\n        }\n      }\nLAB_000c0b50:\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(pParse,pWVar21,0xffffffff,0,iVar25,0);\n      if (pWVar21->nBufferCol < 1) {\n        (*pcVar22)(pParse_00,0x4b,0,iVar5,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pParse_00,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }\n      else {\n        (*pcVar22)(pParse_00,0x66,iVar25,pWVar21->nBufferCol,iVar5);\n      }\n      (*pcVar22)(pParse_00,0x79,pWVar21->iEphCsr,iVar5 + 1,0);\n      (*pcVar22)(pParse_00,0x7a,pWVar21->iEphCsr,iVar5,iVar5 + 1);\n      (*(code *)(PTR_LAB_0015b710 + -0x18cc))(pWInfo);\n      (*pcVar32)(pParse,pWVar21,1);\n      (*pcVar22)(pParse_00,0x24,pWVar21->iEphCsr,\n                 (undefined1 *)((int)&pParse_00->aTableLock->iDb + 3),0);\n      (*pcVar22)(pParse_00,0xc,regGosub,addrGosub,0);\n      puVar19 = &DAT_00000005;\n      iVar5 = pWVar21->iEphCsr;\n      (*pcVar22)();\n      goto LAB_000c0f44;\n    }\nLAB_000c0c60:\n    pVVar24 = pParse->pVdbe;\n    if (pVVar24 == (Vdbe *)0x0) {\n      pVVar24 = (Vdbe *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse);\n      pEVar17 = pWVar21->pOrderBy;\n      pEStack_48 = pWVar21->pPartition;\n      if (pEVar17 != (ExprList *)0x0) goto LAB_000c0c7c;\nLAB_000c1450:\n      iStack_58 = 0;\n      bVar1 = false;\n    }\n    else {\n      pEStack_48 = pWVar21->pPartition;\n      pEVar17 = pWVar21->pOrderBy;\n      if (pEVar17 == (ExprList *)0x0) goto LAB_000c1450;\nLAB_000c0c7c:\n      iStack_58 = pEVar17->nExpr;\n      uVar9._0_1_ = pWVar21->eType;\n      uVar9._1_1_ = pWVar21->eStart;\n      uVar9._2_1_ = pWVar21->eEnd;\n      uVar9._3_1_ = pWVar21->field_0xf;\n      bVar1 = (uVar9 & 0xffff00) == 0x525700;\n    }\n    puVar2 = PTR_LAB_0015b714;\n    iVar4 = pParse->nMem;\n    iVar28 = pParse->nTab;\n    iVar6 = pParse->nLabel;\n    iVar5 = iVar4 + iStack_58;\n    iVar31 = iVar5 + 2;\n    iVar25 = iVar6 + -2;\n    pParse->nTab = iVar28 + 1;\n    iVar5 = iVar5 + 1;\n    pParse->nLabel = iVar25;\n    pParse->nMem = iVar31;\n    iVar6 = iVar6 + -1;\n    (*(code *)(puVar2 + -0x7e94))(pParse,&p->pSrc,p->pWin,pWInfo,iVar5,iVar25,&regSize);\n    pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    puStack_60 = (undefined1 *)(*pcVar22)(pVVar24,0xb,0,0,0);\n    pcVar32 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar32)(pVVar24,iVar25);\n    (*pcVar22)(pVVar24,0x11,0,pVVar24->nOp + 2,0);\n    (*pcVar22)(pVVar24,0x6f,iVar28,pWVar21->iEphCsr,0);\n    uVar7 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(pParse,pWVar21);\n    (*pcVar22)(pVVar24,0x46,0,iVar31,0);\n    (*pcVar22)(pVVar24,0x24,iVar28,iVar6,0);\n    (*pcVar22)(pVVar24,0x24,pWVar21->iEphCsr,iVar6,0);\n    if (bVar1) {\n      iVar25 = pVVar24->nOp;\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(pParse,pWVar21,iVar28,0,uVar7,regSize);\n      (*pcVar22)(pVVar24,5,iVar28,iVar25,0);\n      (*pcVar22)(pVVar24,0x24,iVar28,iVar6,0);\n      iStack_50 = pVVar24->nOp;\n      if (pEVar17 != (ExprList *)0x0) goto LAB_000c0e28;\n      pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n    }\n    else {\n      iStack_50 = pVVar24->nOp;\n      if (pEVar17 == (ExprList *)0x0) {\n        pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        uVar16 = pWVar21->eStart;\n        uVar10 = uVar7;\n        if (pWVar21->eEnd == 'R') {\n          if (pWVar21->eType == 'V') {\nLAB_000c1544:\n            iVar25 = pWVar21->nBufferCol;\n            if (pEStack_48 == (ExprList *)0x0) {\n              iVar11 = 0;\n            }\n            else {\n              iVar11 = pEStack_48->nExpr;\n              iVar25 = iVar25 + iVar11;\n            }\n            iVar11 = iVar11 + pWVar21->regPart;\n            uVar12 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar4 = iVar4 + 1;\n            if (0 < iStack_58) {\n              iVar13 = iStack_58 + iVar25;\n              iVar14 = iVar4 - iVar25;\n              do {\n                (*pcVar22)(pVVar24,0x5a,iVar28,iVar25,iVar14 + iVar25);\n                iVar25 = iVar25 + 1;\n              } while (iVar25 != iVar13);\n            }\n            iVar25 = (*pcVar22)(pVVar24,0x57,iVar4,iVar11,iStack_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pVVar24,uVar12,0xfffffff7);\n            iVar25 = (*pcVar22)(pVVar24,0x10,iVar25 + 2,0,iVar25 + 2);\n            (*pcVar22)(pVVar24,0x4e,iVar4,iVar11,iStack_58 + -1);\n            iVar4 = regSize;\n            if (uVar16 != 'R') {\n              uVar10 = 0;\n              iVar4 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (uVar16 == 'R') goto LAB_000c1494;\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,0,0);\n        }\n        else if (uVar16 == 'R') {\n          if (pWVar21->eType == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar25 = 0;\n          iVar4 = regSize;\nLAB_000c14a0:\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,uVar10,iVar4);\n          if (iVar25 != 0) {\n            iVar4 = pVVar24->nOp;\n            if (iVar25 < 0) {\n              iVar25 = iVar4 + -1;\n            }\n            if (pVVar24->db->mallocFailed == '\0') {\n              pVVar24->aOp[iVar25].p2 = iVar4;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4;\n            }\n          }\n        }\n        else {\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(pParse,pWVar21,iVar28,0,uVar7,regSize);\n    }\nLAB_000c0e5c:\n    (*pcVar22)(pVVar24,0x53,iVar31,1,0);\n    (*pcVar22)(pVVar24,5,iVar28,iStack_50,0);\n    (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,0,0);\n    (*pcVar32)(pVVar24,iVar6);\n    (*pcVar22)(pVVar24,0x8a,pWVar21->iEphCsr,0,0);\n  }\n  puVar19 = (undefined1 *)0x42;\n  (*pcVar22)(pVVar24,0x42,iVar5,0,0);\n  pParse_00 = (Parse *)pVVar24->nOp;\n  if ((int)puStack_60 < 0) {\n    puStack_60 = (undefined1 *)((int)&pParse_00[-1].pRename + 3);\n  }\n  if (pVVar24->db->mallocFailed == '\0') {\n    pOVar15 = pVVar24->aOp + (int)puStack_60;\n    puVar19 = puStack_60;\n  }\n  else {\n    pOVar15 = (Op *)(PTR_DAT_0015b5d8 + -0x4514);\n  }\n  pOVar15->p2 = (int)pParse_00;\nLAB_000c0f44:\n  if (iStack_2c == *(int *)puVar30) {\n    return;\n  }\n  puVar30 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  psVar23 = pParse_00->db;\n  if (puVar19 == (undefined1 *)0x0) {\n    if (psVar23->mallocFailed == '\0') {\n      sqlite3ExprCode(pParse_00,(Expr *)0x0,iVar5);\n      return;\n    }\n  }\n  else {\n    pExpr = (Expr *)(*(code *)(*(int *)(puVar30 + 0x997c0) + -0x271c))(psVar23);\n    if (psVar23->mallocFailed == '\0') {\n      sqlite3ExprCode(pParse_00,pExpr,iVar5);\n    }\n    if (pExpr != (Expr *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x000c1fc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)(*(int *)(puVar30 + 0x99780) + 0x7bc4))(psVar23,pExpr);\n      return;\n    }\n  }\n  return;\n}" primitive_type (function_declarator "sqlite3WindowCodeStep(Parse *pParse,Select *p,WhereInfo *pWInfo,int regGosub,int addrGosub)" identifier (parameter_list "(Parse *pParse,Select *p,WhereInfo *pWInfo,int regGosub,int addrGosub)" ( (parameter_declaration "Parse *pParse" type_identifier (pointer_declarator "*pParse" * identifier)) , (parameter_declaration "Select *p" type_identifier (pointer_declarator "*p" * identifier)) , (parameter_declaration "WhereInfo *pWInfo" type_identifier (pointer_declarator "*pWInfo" * identifier)) , (parameter_declaration "int regGosub" primitive_type identifier) , (parameter_declaration "int addrGosub" primitive_type identifier) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  char *pcVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 uVar7;\n  undefined1 *puVar8;\n  uint uVar9;\n  u8 uVar16;\n  undefined4 uVar10;\n  int iVar11;\n  undefined4 uVar12;\n  int iVar13;\n  int iVar14;\n  Op *pOVar15;\n  Expr *pExpr;\n  ExprList *pEVar17;\n  uint uVar18;\n  undefined1 *puVar19;\n  TableLock *pTVar20;\n  Window *pWVar21;\n  code *pcVar22;\n  sqlite3 *psVar23;\n  Parse *pParse_00;\n  Vdbe *pVVar24;\n  int iVar25;\n  Window *pWVar26;\n  ExprList *pEVar27;\n  int iVar28;\n  code *pcVar29;\n  undefined *puVar30;\n  int iVar31;\n  code *pcVar32;\n  undefined1 *puStack_60;\n  code *pcStack_5c;\n  int iStack_58;\n  int iStack_50;\n  code *pcStack_4c;\n  ExprList *pEStack_48;\n  int regSize;\n  int iStack_2c;\n  \n  puVar30 = PTR___stack_chk_guard_0015ba2c;\n  pWVar21 = p->pWin;\n  iStack_2c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  uVar18._0_1_ = pWVar21->eType;\n  uVar18._1_1_ = pWVar21->eStart;\n  uVar18._2_1_ = pWVar21->eEnd;\n  uVar18._3_1_ = pWVar21->field_0xf;\n  if (pWVar21->eType == 'L') {\n    if (((uVar18 & 0xffff00) == 0x575200) && (pWVar21->pOrderBy != (ExprList *)0x0))\n    goto LAB_000c08b4;\n    pVVar24 = pParse->pVdbe;\n    if (pVVar24 == (Vdbe *)0x0) {\n      pVVar24 = (Vdbe *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse);\n    }\n    puVar2 = PTR_LAB_0015b714;\n    iVar25 = pParse->nTab;\n    iVar4 = pParse->nMem;\n    iVar6 = iVar4 + 3;\n    iVar28 = pParse->nLabel + -2;\n    pParse->nTab = iVar25 + 2;\n    iVar11 = pParse->nLabel + -1;\n    iVar5 = iVar4 + 1;\n    pParse->nMem = iVar6;\n    pParse->nLabel = iVar28;\n    iVar4 = iVar4 + 2;\n    iVar31 = iVar25 + 1;\n    regSize = 0;\n    (*(code *)(puVar2 + -0x7e94))(pParse,&p->pSrc,p->pWin,pWInfo,iVar5,iVar11,&regSize);\n    pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    puStack_60 = (undefined1 *)(*pcVar22)(pVVar24,0xb,0,0,0);\n    pcVar32 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar32)(pVVar24,iVar11);\n    (*pcVar22)(pVVar24,0x11,0,pVVar24->nOp + 3,0);\n    (*pcVar22)(pVVar24,0x6f,iVar25,pWVar21->iEphCsr,0);\n    (*pcVar22)(pVVar24,0x6f,iVar31,pWVar21->iEphCsr,0);\n    if (pWVar21->pStart != (Expr *)0x0) {\n      sqlite3ExprCode(pParse,pWVar21->pStart,iVar4);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(pParse,iVar4,0);\n    }\n    if (pWVar21->pEnd != (Expr *)0x0) {\n      sqlite3ExprCode(pParse,pWVar21->pEnd,iVar6);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(pParse,iVar6,1);\n      if ((pWVar21->pEnd != (Expr *)0x0) && (pWVar21->eStart == 'S')) {\n        (*pcVar22)(pVVar24,0x39,iVar4,pVVar24->nOp + 2,iVar6);\n        (*pcVar22)(pVVar24,0x4e,regSize,iVar4,0);\n        (*pcVar22)(pVVar24,0x61,iVar4,iVar6,iVar6);\n      }\n    }\n    if ((pWVar21->pStart != (Expr *)0x0) && (pWVar21->eEnd == 'U')) {\n      (*pcVar22)(pVVar24,0x37,iVar4,pVVar24->nOp + 3,iVar6);\n      (*pcVar22)(pVVar24,0x4e,regSize,iVar4,0);\n      (*pcVar22)(pVVar24,0x4e,regSize,iVar6,0);\n    }\n    uVar7 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(pParse,pWVar21);\n    (*pcVar22)(pVVar24,0x24,pWVar21->iEphCsr,iVar28,0);\n    (*pcVar22)(pVVar24,0x24,iVar25,iVar28,0);\n    if (0 < pVVar24->nOp) {\n      pVVar24->aOp[pVVar24->nOp + -1].p5 = 1;\n    }\n    (*pcVar22)(pVVar24,0x24,iVar31,iVar28,0);\n    iVar11 = pVVar24->nOp;\n    if (0 < iVar11) {\n      pVVar24->aOp[iVar11 + -1].p5 = 1;\n      iVar11 = pVVar24->nOp;\n    }\n    if (pWVar21->eEnd == 'U') {\n      iStack_50 = (*pcVar22)(pVVar24,0x2f,iVar6,0,1);\n      iVar13 = pVVar24->nOp;\n    }\n    else {\n      iStack_50 = 0;\n      iVar13 = iVar11;\n    }\n    (*pcVar22)(pVVar24,5,iVar31,iVar13 + 2,0);\n    iVar13 = (*pcVar22)(pVVar24,0xb,0,0,0);\n    pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7af4);\n    (*pcVar29)(pParse,pWVar21,iVar31,0,uVar7,regSize);\n    if (pWVar21->eEnd == 'W') {\n      (*pcVar22)(pVVar24,0xb,0,iVar11,0);\n      iVar11 = pVVar24->nOp;\n      if (iVar13 < 0) {\n        iVar13 = iVar11 + -1;\n      }\n      if (pVVar24->db->mallocFailed == '\0') {\n        pVVar24->aOp[iVar13].p2 = iVar11;\n        uVar16 = pWVar21->eEnd;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar11;\n        uVar16 = pWVar21->eEnd;\n      }\n    }\n    else {\n      iVar31 = pVVar24->nOp;\n      if (iVar13 < 0) {\n        iVar13 = iVar31 + -1;\n      }\n      if (pVVar24->db->mallocFailed == '\0') {\n        pOVar15 = pVVar24->aOp + iVar13;\n      }\n      else {\n        pOVar15 = (Op *)(PTR_DAT_0015b5d8 + -0x4514);\n      }\n      pOVar15->p2 = iVar31;\n      uVar16 = pWVar21->eEnd;\n      if (uVar16 == 'U') {\n        iVar13 = iVar31 + -1;\n        if (-1 < iStack_50) {\n          iVar13 = iStack_50;\n        }\n        if (pVVar24->db->mallocFailed == '\0') {\n          pVVar24->aOp[iVar13].p2 = iVar31;\n          uVar16 = pWVar21->eEnd;\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar31;\n          uVar16 = pWVar21->eEnd;\n        }\n      }\n    }\n    if (uVar16 == 'S') {\n      iStack_50 = (*pcVar22)(pVVar24,0x2f,iVar6,0,1);\n    }\n    if (pWVar21->eStart == 'S') {\n      iVar6 = (*pcVar22)(pVVar24,0x2f,iVar4,0,1);\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(pParse,pWVar21,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(pParse,pWVar21,regGosub,addrGosub);\n      (*pcVar22)(pVVar24,5,pWVar21->iEphCsr,pVVar24->nOp + 2,0);\n      (*pcVar22)(pVVar24,0xb,0,iVar28,0);\n      uVar18 = (uint)pWVar21->eStart;\n      if (uVar18 == 0x53) {\n        iVar31 = pVVar24->nOp;\n        if (iVar6 < 0) {\n          iVar6 = iVar31 + -1;\n        }\n        goto LAB_000c1d20;\n      }\n    }\n    else {\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(pParse,pWVar21,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(pParse,pWVar21,regGosub,addrGosub);\n      (*pcVar22)(pVVar24,5,pWVar21->iEphCsr,pVVar24->nOp + 2,0);\n      (*pcVar22)(pVVar24,0xb,0,iVar28,0);\n      uVar18 = (uint)pWVar21->eStart;\n      if (uVar18 == 0x53) {\n        iVar31 = pVVar24->nOp;\n        iVar6 = 0;\nLAB_000c1d20:\n        if (pVVar24->db->mallocFailed == '\0') {\n          pVVar24->aOp[iVar6].p2 = iVar31;\n          uVar18 = (uint)pWVar21->eStart;\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar31;\n          uVar18 = (uint)pWVar21->eStart;\n        }\n      }\n    }\n    if ((uVar18 - 0x52 < 2) || (uVar18 == 0x55)) {\n      iVar6 = pParse->nLabel + -1;\n      pParse->nLabel = iVar6;\n      uVar16 = pWVar21->eStart;\n      if (uVar16 == 'U') {\n        (*pcVar22)(pVVar24,0x2f,iVar4,iVar6,1);\n        uVar16 = pWVar21->eStart;\n      }\n      if (uVar16 == 'S') {\n        (*pcVar22)(pVVar24,5,iVar25,pVVar24->nOp + 2,0);\n        (*pcVar22)(pVVar24,0xb,0,iVar6,0);\n      }\n      else {\n        (*pcVar22)(pVVar24,5,iVar25,pVVar24->nOp + 1,0);\n      }\n      (*pcVar29)(pParse,pWVar21,iVar25,1,uVar7,regSize);\n      (*pcVar32)(pVVar24,iVar6);\n    }\n    if (pWVar21->eEnd == 'S') {\n      iVar4 = pVVar24->nOp;\n      if (iStack_50 < 0) {\n        iStack_50 = iVar4 + -1;\n      }\n      if (pVVar24->db->mallocFailed == '\0') {\n        pVVar24->aOp[iStack_50].p2 = iVar4;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4;\n      }\n    }\n    (*pcVar22)(pVVar24,0xb,0,iVar11,0);\n    (*pcVar32)(pVVar24,iVar28);\n    (*pcVar22)(pVVar24,0x8a,pWVar21->iEphCsr,0,0);\n  }\n  else {\n    if ((uVar18 & 0xffff00) != 0x525700) {\nLAB_000c08b4:\n      pWVar26 = pWVar21;\n      do {\n        if (((((pWVar26->pFunc->funcFlags & 0x20000) != 0) ||\n             (pcVar3 = pWVar26->pFunc->zName, pcVar3 == PTR_DAT_0015b694 + -0x7df4)) ||\n            (pcVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((pcVar3 == PTR_DAT_0015b694 + -0x7e08 || (pcVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        pWVar26 = pWVar26->pNextWin;\n      } while (pWVar26 != (Window *)0x0);\n      pParse_00 = (Parse *)pParse->pVdbe;\n      if (pParse_00 == (Parse *)0x0) {\n        pParse_00 = (Parse *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse);\n      }\n      pEVar17 = pWVar21->pPartition;\n      iVar25 = pParse->nMem + 1;\n      iVar4 = p->pSrc->a[0].iCursor;\n      iVar28 = (int)(p->pSrc->a[0].pTab)->nCol;\n      iVar5 = iVar28 + iVar25;\n      iVar6 = iVar28 + 2 + pParse->nMem;\n      if (pWVar21->eEnd == 'W') {\n        pParse->nMem = iVar6;\n        pEVar27 = (ExprList *)0x0;\n        if (0 < iVar28) goto LAB_000c0980;\n        if (pEVar17 != (ExprList *)0x0) {\n          iStack_50 = pEVar17->nExpr;\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }\n      else {\n        pEVar27 = pWVar21->pOrderBy;\n        pParse->nMem = iVar6;\n        if (iVar28 < 1) {\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar6 = 0;\n          do {\n            iVar31 = iVar6 + 1;\n            (*pcVar22)(pParse_00,0x5a,iVar4,iVar6,iVar25 + iVar6);\n            iVar6 = iVar31;\n          } while (iVar31 < iVar28);\n        }\n        puVar2 = PTR_LAB_0015b714;\n        if (pEVar17 == (ExprList *)0x0) {\n          if (pEVar27 == (ExprList *)0x0) {\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar4 = pEVar27->nExpr;\n          puStack_60 = (undefined1 *)iVar4;\n          if (pWVar21->eType == 'V') {\n            puVar19 = (undefined1 *)0x0;\n            iVar6 = pWVar21->regPart;\n            iStack_50 = iVar25 + pWVar21->nBufferCol;\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          puVar8 = (undefined1 *)0x0;\n          pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R');\n          pTVar20 = pParse_00->aTableLock;\n        }\n        else {\n          iStack_50 = pEVar17->nExpr;\n          if (pEVar27 == (ExprList *)0x0) {\nLAB_000c09d4:\n            iVar4 = pWVar21->nBufferCol;\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar4 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar4,pWVar21->regPart,iStack_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pParse_00,uVar7,0xfffffff7);\n            puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar32)(pParse,pWVar21,1);\n            puStack_60 = (undefined1 *)iStack_50;\n          }\n          else {\n            iVar6 = pWVar21->nBufferCol;\n            iVar4 = pEVar27->nExpr;\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar6 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar6,pWVar21->regPart,iStack_50);\n            pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);\n            puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar6 + 2,0,iVar6 + 2);\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar32)(pParse,pWVar21,1);\n            puVar19 = (undefined1 *)(*pcVar22)(pParse_00,0xb,0,0,0);\n            iVar28 = pWVar21->nBufferCol;\n            iVar6 = pWVar21->regPart;\n            if (puVar8 != (undefined1 *)0x0) {\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar8 < 0) {\n                puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }\n            puStack_60 = (undefined1 *)(iStack_50 + iVar4);\n            if (pWVar21->eType == 'V') {\n              iVar6 = iStack_50 + iVar6;\n              iStack_50 = iVar25 + iVar28 + iStack_50;\nLAB_000c1e74:\n              pcStack_4c = (code *)(puVar2 + -0x7fc4);\n              uVar7 = (*pcStack_4c)(pParse,pEVar27,0,0);\n              iVar4 = (*pcVar22)(pParse_00,0x57,iStack_50,iVar6,iVar4);\n              (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);\n              puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);\n            }\n            else {\n              puVar8 = (undefined1 *)0x0;\n            }\n            (*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R');\n            if (puVar19 != (undefined1 *)0x0) {\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar19 < 0) {\n                puVar19 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar19].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }\n          }\n          pTVar20 = pParse_00->aTableLock;\n        }\n        (*pcVar22)(pParse_00,0x24,pWVar21->iEphCsr,(undefined1 *)((int)&pTVar20->iDb + 3),0);\n        (*pcVar22)(pParse_00,0xc,regGosub,addrGosub,0);\n        (*pcVar22)(pParse_00,5,pWVar21->iEphCsr,\n                   (undefined1 *)((int)&pParse_00->aTableLock[-1].zLockName + 3),0);\n        (*pcVar22)(pParse_00,0x8a,pWVar21->iEphCsr,0,0);\n        (*pcVar22)(pParse_00,0x4e,iVar25 + pWVar21->nBufferCol,pWVar21->regPart,(int)puStack_60 + -1\n                  );\n        if (puVar8 != (undefined1 *)0x0) {\n          pTVar20 = pParse_00->aTableLock;\n          if ((int)puVar8 < 0) {\n            puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n          }\n          if (pParse_00->db->mallocFailed == '\0') {\n            ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;\n          }\n          else {\n            *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n          }\n        }\n      }\nLAB_000c0b50:\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(pParse,pWVar21,0xffffffff,0,iVar25,0);\n      if (pWVar21->nBufferCol < 1) {\n        (*pcVar22)(pParse_00,0x4b,0,iVar5,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pParse_00,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }\n      else {\n        (*pcVar22)(pParse_00,0x66,iVar25,pWVar21->nBufferCol,iVar5);\n      }\n      (*pcVar22)(pParse_00,0x79,pWVar21->iEphCsr,iVar5 + 1,0);\n      (*pcVar22)(pParse_00,0x7a,pWVar21->iEphCsr,iVar5,iVar5 + 1);\n      (*(code *)(PTR_LAB_0015b710 + -0x18cc))(pWInfo);\n      (*pcVar32)(pParse,pWVar21,1);\n      (*pcVar22)(pParse_00,0x24,pWVar21->iEphCsr,\n                 (undefined1 *)((int)&pParse_00->aTableLock->iDb + 3),0);\n      (*pcVar22)(pParse_00,0xc,regGosub,addrGosub,0);\n      puVar19 = &DAT_00000005;\n      iVar5 = pWVar21->iEphCsr;\n      (*pcVar22)();\n      goto LAB_000c0f44;\n    }\nLAB_000c0c60:\n    pVVar24 = pParse->pVdbe;\n    if (pVVar24 == (Vdbe *)0x0) {\n      pVVar24 = (Vdbe *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse);\n      pEVar17 = pWVar21->pOrderBy;\n      pEStack_48 = pWVar21->pPartition;\n      if (pEVar17 != (ExprList *)0x0) goto LAB_000c0c7c;\nLAB_000c1450:\n      iStack_58 = 0;\n      bVar1 = false;\n    }\n    else {\n      pEStack_48 = pWVar21->pPartition;\n      pEVar17 = pWVar21->pOrderBy;\n      if (pEVar17 == (ExprList *)0x0) goto LAB_000c1450;\nLAB_000c0c7c:\n      iStack_58 = pEVar17->nExpr;\n      uVar9._0_1_ = pWVar21->eType;\n      uVar9._1_1_ = pWVar21->eStart;\n      uVar9._2_1_ = pWVar21->eEnd;\n      uVar9._3_1_ = pWVar21->field_0xf;\n      bVar1 = (uVar9 & 0xffff00) == 0x525700;\n    }\n    puVar2 = PTR_LAB_0015b714;\n    iVar4 = pParse->nMem;\n    iVar28 = pParse->nTab;\n    iVar6 = pParse->nLabel;\n    iVar5 = iVar4 + iStack_58;\n    iVar31 = iVar5 + 2;\n    iVar25 = iVar6 + -2;\n    pParse->nTab = iVar28 + 1;\n    iVar5 = iVar5 + 1;\n    pParse->nLabel = iVar25;\n    pParse->nMem = iVar31;\n    iVar6 = iVar6 + -1;\n    (*(code *)(puVar2 + -0x7e94))(pParse,&p->pSrc,p->pWin,pWInfo,iVar5,iVar25,&regSize);\n    pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    puStack_60 = (undefined1 *)(*pcVar22)(pVVar24,0xb,0,0,0);\n    pcVar32 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar32)(pVVar24,iVar25);\n    (*pcVar22)(pVVar24,0x11,0,pVVar24->nOp + 2,0);\n    (*pcVar22)(pVVar24,0x6f,iVar28,pWVar21->iEphCsr,0);\n    uVar7 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(pParse,pWVar21);\n    (*pcVar22)(pVVar24,0x46,0,iVar31,0);\n    (*pcVar22)(pVVar24,0x24,iVar28,iVar6,0);\n    (*pcVar22)(pVVar24,0x24,pWVar21->iEphCsr,iVar6,0);\n    if (bVar1) {\n      iVar25 = pVVar24->nOp;\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(pParse,pWVar21,iVar28,0,uVar7,regSize);\n      (*pcVar22)(pVVar24,5,iVar28,iVar25,0);\n      (*pcVar22)(pVVar24,0x24,iVar28,iVar6,0);\n      iStack_50 = pVVar24->nOp;\n      if (pEVar17 != (ExprList *)0x0) goto LAB_000c0e28;\n      pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n    }\n    else {\n      iStack_50 = pVVar24->nOp;\n      if (pEVar17 == (ExprList *)0x0) {\n        pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        uVar16 = pWVar21->eStart;\n        uVar10 = uVar7;\n        if (pWVar21->eEnd == 'R') {\n          if (pWVar21->eType == 'V') {\nLAB_000c1544:\n            iVar25 = pWVar21->nBufferCol;\n            if (pEStack_48 == (ExprList *)0x0) {\n              iVar11 = 0;\n            }\n            else {\n              iVar11 = pEStack_48->nExpr;\n              iVar25 = iVar25 + iVar11;\n            }\n            iVar11 = iVar11 + pWVar21->regPart;\n            uVar12 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar4 = iVar4 + 1;\n            if (0 < iStack_58) {\n              iVar13 = iStack_58 + iVar25;\n              iVar14 = iVar4 - iVar25;\n              do {\n                (*pcVar22)(pVVar24,0x5a,iVar28,iVar25,iVar14 + iVar25);\n                iVar25 = iVar25 + 1;\n              } while (iVar25 != iVar13);\n            }\n            iVar25 = (*pcVar22)(pVVar24,0x57,iVar4,iVar11,iStack_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pVVar24,uVar12,0xfffffff7);\n            iVar25 = (*pcVar22)(pVVar24,0x10,iVar25 + 2,0,iVar25 + 2);\n            (*pcVar22)(pVVar24,0x4e,iVar4,iVar11,iStack_58 + -1);\n            iVar4 = regSize;\n            if (uVar16 != 'R') {\n              uVar10 = 0;\n              iVar4 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (uVar16 == 'R') goto LAB_000c1494;\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,0,0);\n        }\n        else if (uVar16 == 'R') {\n          if (pWVar21->eType == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar25 = 0;\n          iVar4 = regSize;\nLAB_000c14a0:\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,uVar10,iVar4);\n          if (iVar25 != 0) {\n            iVar4 = pVVar24->nOp;\n            if (iVar25 < 0) {\n              iVar25 = iVar4 + -1;\n            }\n            if (pVVar24->db->mallocFailed == '\0') {\n              pVVar24->aOp[iVar25].p2 = iVar4;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4;\n            }\n          }\n        }\n        else {\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(pParse,pWVar21,iVar28,0,uVar7,regSize);\n    }\nLAB_000c0e5c:\n    (*pcVar22)(pVVar24,0x53,iVar31,1,0);\n    (*pcVar22)(pVVar24,5,iVar28,iStack_50,0);\n    (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,0,0);\n    (*pcVar32)(pVVar24,iVar6);\n    (*pcVar22)(pVVar24,0x8a,pWVar21->iEphCsr,0,0);\n  }\n  puVar19 = (undefined1 *)0x42;\n  (*pcVar22)(pVVar24,0x42,iVar5,0,0);\n  pParse_00 = (Parse *)pVVar24->nOp;\n  if ((int)puStack_60 < 0) {\n    puStack_60 = (undefined1 *)((int)&pParse_00[-1].pRename + 3);\n  }\n  if (pVVar24->db->mallocFailed == '\0') {\n    pOVar15 = pVVar24->aOp + (int)puStack_60;\n    puVar19 = puStack_60;\n  }\n  else {\n    pOVar15 = (Op *)(PTR_DAT_0015b5d8 + -0x4514);\n  }\n  pOVar15->p2 = (int)pParse_00;\nLAB_000c0f44:\n  if (iStack_2c == *(int *)puVar30) {\n    return;\n  }\n  puVar30 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  psVar23 = pParse_00->db;\n  if (puVar19 == (undefined1 *)0x0) {\n    if (psVar23->mallocFailed == '\0') {\n      sqlite3ExprCode(pParse_00,(Expr *)0x0,iVar5);\n      return;\n    }\n  }\n  else {\n    pExpr = (Expr *)(*(code *)(*(int *)(puVar30 + 0x997c0) + -0x271c))(psVar23);\n    if (psVar23->mallocFailed == '\0') {\n      sqlite3ExprCode(pParse_00,pExpr,iVar5);\n    }\n    if (pExpr != (Expr *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x000c1fc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)(*(int *)(puVar30 + 0x99780) + 0x7bc4))(psVar23,pExpr);\n      return;\n    }\n  }\n  return;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined1 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "u8 uVar16;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "Op *pOVar15;" type_identifier (pointer_declarator "*pOVar15" * identifier) ;) (declaration "Expr *pExpr;" type_identifier (pointer_declarator "*pExpr" * identifier) ;) (declaration "ExprList *pEVar17;" type_identifier (pointer_declarator "*pEVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "undefined1 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "TableLock *pTVar20;" type_identifier (pointer_declarator "*pTVar20" * identifier) ;) (declaration "Window *pWVar21;" type_identifier (pointer_declarator "*pWVar21" * identifier) ;) (declaration "code *pcVar22;" type_identifier (pointer_declarator "*pcVar22" * identifier) ;) (declaration "sqlite3 *psVar23;" type_identifier (pointer_declarator "*psVar23" * identifier) ;) (declaration "Parse *pParse_00;" type_identifier (pointer_declarator "*pParse_00" * identifier) ;) (declaration "Vdbe *pVVar24;" type_identifier (pointer_declarator "*pVVar24" * identifier) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "Window *pWVar26;" type_identifier (pointer_declarator "*pWVar26" * identifier) ;) (declaration "ExprList *pEVar27;" type_identifier (pointer_declarator "*pEVar27" * identifier) ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "code *pcVar29;" type_identifier (pointer_declarator "*pcVar29" * identifier) ;) (declaration "undefined *puVar30;" type_identifier (pointer_declarator "*puVar30" * identifier) ;) (declaration "int iVar31;" primitive_type identifier ;) (declaration "code *pcVar32;" type_identifier (pointer_declarator "*pcVar32" * identifier) ;) (declaration "undefined1 *puStack_60;" type_identifier (pointer_declarator "*puStack_60" * identifier) ;) (declaration "code *pcStack_5c;" type_identifier (pointer_declarator "*pcStack_5c" * identifier) ;) (declaration "int iStack_58;" primitive_type identifier ;) (declaration "int iStack_50;" primitive_type identifier ;) (declaration "code *pcStack_4c;" type_identifier (pointer_declarator "*pcStack_4c" * identifier) ;) (declaration "ExprList *pEStack_48;" type_identifier (pointer_declarator "*pEStack_48" * identifier) ;) (declaration "int regSize;" primitive_type identifier ;) (declaration "int iStack_2c;" primitive_type identifier ;) (expression_statement "puVar30 = PTR___stack_chk_guard_0015ba2c;" (assignment_expression "puVar30 = PTR___stack_chk_guard_0015ba2c" identifier = identifier) ;) (expression_statement "pWVar21 = p->pWin;" (assignment_expression "pWVar21 = p->pWin" identifier = (field_expression "p->pWin" identifier -> field_identifier)) ;) (expression_statement "iStack_2c = *(int *)PTR___stack_chk_guard_0015ba2c;" (assignment_expression "iStack_2c = *(int *)PTR___stack_chk_guard_0015ba2c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0015ba2c" * (cast_expression "(int *)PTR___stack_chk_guard_0015ba2c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar18._0_1_ = pWVar21->eType;" (assignment_expression "uVar18._0_1_ = pWVar21->eType" (field_expression "uVar18._0_1_" identifier . field_identifier) = (field_expression "pWVar21->eType" identifier -> field_identifier)) ;) (expression_statement "uVar18._1_1_ = pWVar21->eStart;" (assignment_expression "uVar18._1_1_ = pWVar21->eStart" (field_expression "uVar18._1_1_" identifier . field_identifier) = (field_expression "pWVar21->eStart" identifier -> field_identifier)) ;) (expression_statement "uVar18._2_1_ = pWVar21->eEnd;" (assignment_expression "uVar18._2_1_ = pWVar21->eEnd" (field_expression "uVar18._2_1_" identifier . field_identifier) = (field_expression "pWVar21->eEnd" identifier -> field_identifier)) ;) (expression_statement "uVar18._3_1_ = pWVar21->field_0xf;" (assignment_expression "uVar18._3_1_ = pWVar21->field_0xf" (field_expression "uVar18._3_1_" identifier . field_identifier) = (field_expression "pWVar21->field_0xf" identifier -> field_identifier)) ;) (if_statement "if (pWVar21->eType == 'L') {\n    if (((uVar18 & 0xffff00) == 0x575200) && (pWVar21->pOrderBy != (ExprList *)0x0))\n    goto LAB_000c08b4;\n    pVVar24 = pParse->pVdbe;\n    if (pVVar24 == (Vdbe *)0x0) {\n      pVVar24 = (Vdbe *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse);\n    }\n    puVar2 = PTR_LAB_0015b714;\n    iVar25 = pParse->nTab;\n    iVar4 = pParse->nMem;\n    iVar6 = iVar4 + 3;\n    iVar28 = pParse->nLabel + -2;\n    pParse->nTab = iVar25 + 2;\n    iVar11 = pParse->nLabel + -1;\n    iVar5 = iVar4 + 1;\n    pParse->nMem = iVar6;\n    pParse->nLabel = iVar28;\n    iVar4 = iVar4 + 2;\n    iVar31 = iVar25 + 1;\n    regSize = 0;\n    (*(code *)(puVar2 + -0x7e94))(pParse,&p->pSrc,p->pWin,pWInfo,iVar5,iVar11,&regSize);\n    pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    puStack_60 = (undefined1 *)(*pcVar22)(pVVar24,0xb,0,0,0);\n    pcVar32 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar32)(pVVar24,iVar11);\n    (*pcVar22)(pVVar24,0x11,0,pVVar24->nOp + 3,0);\n    (*pcVar22)(pVVar24,0x6f,iVar25,pWVar21->iEphCsr,0);\n    (*pcVar22)(pVVar24,0x6f,iVar31,pWVar21->iEphCsr,0);\n    if (pWVar21->pStart != (Expr *)0x0) {\n      sqlite3ExprCode(pParse,pWVar21->pStart,iVar4);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(pParse,iVar4,0);\n    }\n    if (pWVar21->pEnd != (Expr *)0x0) {\n      sqlite3ExprCode(pParse,pWVar21->pEnd,iVar6);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(pParse,iVar6,1);\n      if ((pWVar21->pEnd != (Expr *)0x0) && (pWVar21->eStart == 'S')) {\n        (*pcVar22)(pVVar24,0x39,iVar4,pVVar24->nOp + 2,iVar6);\n        (*pcVar22)(pVVar24,0x4e,regSize,iVar4,0);\n        (*pcVar22)(pVVar24,0x61,iVar4,iVar6,iVar6);\n      }\n    }\n    if ((pWVar21->pStart != (Expr *)0x0) && (pWVar21->eEnd == 'U')) {\n      (*pcVar22)(pVVar24,0x37,iVar4,pVVar24->nOp + 3,iVar6);\n      (*pcVar22)(pVVar24,0x4e,regSize,iVar4,0);\n      (*pcVar22)(pVVar24,0x4e,regSize,iVar6,0);\n    }\n    uVar7 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(pParse,pWVar21);\n    (*pcVar22)(pVVar24,0x24,pWVar21->iEphCsr,iVar28,0);\n    (*pcVar22)(pVVar24,0x24,iVar25,iVar28,0);\n    if (0 < pVVar24->nOp) {\n      pVVar24->aOp[pVVar24->nOp + -1].p5 = 1;\n    }\n    (*pcVar22)(pVVar24,0x24,iVar31,iVar28,0);\n    iVar11 = pVVar24->nOp;\n    if (0 < iVar11) {\n      pVVar24->aOp[iVar11 + -1].p5 = 1;\n      iVar11 = pVVar24->nOp;\n    }\n    if (pWVar21->eEnd == 'U') {\n      iStack_50 = (*pcVar22)(pVVar24,0x2f,iVar6,0,1);\n      iVar13 = pVVar24->nOp;\n    }\n    else {\n      iStack_50 = 0;\n      iVar13 = iVar11;\n    }\n    (*pcVar22)(pVVar24,5,iVar31,iVar13 + 2,0);\n    iVar13 = (*pcVar22)(pVVar24,0xb,0,0,0);\n    pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7af4);\n    (*pcVar29)(pParse,pWVar21,iVar31,0,uVar7,regSize);\n    if (pWVar21->eEnd == 'W') {\n      (*pcVar22)(pVVar24,0xb,0,iVar11,0);\n      iVar11 = pVVar24->nOp;\n      if (iVar13 < 0) {\n        iVar13 = iVar11 + -1;\n      }\n      if (pVVar24->db->mallocFailed == '\0') {\n        pVVar24->aOp[iVar13].p2 = iVar11;\n        uVar16 = pWVar21->eEnd;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar11;\n        uVar16 = pWVar21->eEnd;\n      }\n    }\n    else {\n      iVar31 = pVVar24->nOp;\n      if (iVar13 < 0) {\n        iVar13 = iVar31 + -1;\n      }\n      if (pVVar24->db->mallocFailed == '\0') {\n        pOVar15 = pVVar24->aOp + iVar13;\n      }\n      else {\n        pOVar15 = (Op *)(PTR_DAT_0015b5d8 + -0x4514);\n      }\n      pOVar15->p2 = iVar31;\n      uVar16 = pWVar21->eEnd;\n      if (uVar16 == 'U') {\n        iVar13 = iVar31 + -1;\n        if (-1 < iStack_50) {\n          iVar13 = iStack_50;\n        }\n        if (pVVar24->db->mallocFailed == '\0') {\n          pVVar24->aOp[iVar13].p2 = iVar31;\n          uVar16 = pWVar21->eEnd;\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar31;\n          uVar16 = pWVar21->eEnd;\n        }\n      }\n    }\n    if (uVar16 == 'S') {\n      iStack_50 = (*pcVar22)(pVVar24,0x2f,iVar6,0,1);\n    }\n    if (pWVar21->eStart == 'S') {\n      iVar6 = (*pcVar22)(pVVar24,0x2f,iVar4,0,1);\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(pParse,pWVar21,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(pParse,pWVar21,regGosub,addrGosub);\n      (*pcVar22)(pVVar24,5,pWVar21->iEphCsr,pVVar24->nOp + 2,0);\n      (*pcVar22)(pVVar24,0xb,0,iVar28,0);\n      uVar18 = (uint)pWVar21->eStart;\n      if (uVar18 == 0x53) {\n        iVar31 = pVVar24->nOp;\n        if (iVar6 < 0) {\n          iVar6 = iVar31 + -1;\n        }\n        goto LAB_000c1d20;\n      }\n    }\n    else {\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(pParse,pWVar21,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(pParse,pWVar21,regGosub,addrGosub);\n      (*pcVar22)(pVVar24,5,pWVar21->iEphCsr,pVVar24->nOp + 2,0);\n      (*pcVar22)(pVVar24,0xb,0,iVar28,0);\n      uVar18 = (uint)pWVar21->eStart;\n      if (uVar18 == 0x53) {\n        iVar31 = pVVar24->nOp;\n        iVar6 = 0;\nLAB_000c1d20:\n        if (pVVar24->db->mallocFailed == '\0') {\n          pVVar24->aOp[iVar6].p2 = iVar31;\n          uVar18 = (uint)pWVar21->eStart;\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar31;\n          uVar18 = (uint)pWVar21->eStart;\n        }\n      }\n    }\n    if ((uVar18 - 0x52 < 2) || (uVar18 == 0x55)) {\n      iVar6 = pParse->nLabel + -1;\n      pParse->nLabel = iVar6;\n      uVar16 = pWVar21->eStart;\n      if (uVar16 == 'U') {\n        (*pcVar22)(pVVar24,0x2f,iVar4,iVar6,1);\n        uVar16 = pWVar21->eStart;\n      }\n      if (uVar16 == 'S') {\n        (*pcVar22)(pVVar24,5,iVar25,pVVar24->nOp + 2,0);\n        (*pcVar22)(pVVar24,0xb,0,iVar6,0);\n      }\n      else {\n        (*pcVar22)(pVVar24,5,iVar25,pVVar24->nOp + 1,0);\n      }\n      (*pcVar29)(pParse,pWVar21,iVar25,1,uVar7,regSize);\n      (*pcVar32)(pVVar24,iVar6);\n    }\n    if (pWVar21->eEnd == 'S') {\n      iVar4 = pVVar24->nOp;\n      if (iStack_50 < 0) {\n        iStack_50 = iVar4 + -1;\n      }\n      if (pVVar24->db->mallocFailed == '\0') {\n        pVVar24->aOp[iStack_50].p2 = iVar4;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4;\n      }\n    }\n    (*pcVar22)(pVVar24,0xb,0,iVar11,0);\n    (*pcVar32)(pVVar24,iVar28);\n    (*pcVar22)(pVVar24,0x8a,pWVar21->iEphCsr,0,0);\n  }\n  else {\n    if ((uVar18 & 0xffff00) != 0x525700) {\nLAB_000c08b4:\n      pWVar26 = pWVar21;\n      do {\n        if (((((pWVar26->pFunc->funcFlags & 0x20000) != 0) ||\n             (pcVar3 = pWVar26->pFunc->zName, pcVar3 == PTR_DAT_0015b694 + -0x7df4)) ||\n            (pcVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((pcVar3 == PTR_DAT_0015b694 + -0x7e08 || (pcVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        pWVar26 = pWVar26->pNextWin;\n      } while (pWVar26 != (Window *)0x0);\n      pParse_00 = (Parse *)pParse->pVdbe;\n      if (pParse_00 == (Parse *)0x0) {\n        pParse_00 = (Parse *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse);\n      }\n      pEVar17 = pWVar21->pPartition;\n      iVar25 = pParse->nMem + 1;\n      iVar4 = p->pSrc->a[0].iCursor;\n      iVar28 = (int)(p->pSrc->a[0].pTab)->nCol;\n      iVar5 = iVar28 + iVar25;\n      iVar6 = iVar28 + 2 + pParse->nMem;\n      if (pWVar21->eEnd == 'W') {\n        pParse->nMem = iVar6;\n        pEVar27 = (ExprList *)0x0;\n        if (0 < iVar28) goto LAB_000c0980;\n        if (pEVar17 != (ExprList *)0x0) {\n          iStack_50 = pEVar17->nExpr;\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }\n      else {\n        pEVar27 = pWVar21->pOrderBy;\n        pParse->nMem = iVar6;\n        if (iVar28 < 1) {\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar6 = 0;\n          do {\n            iVar31 = iVar6 + 1;\n            (*pcVar22)(pParse_00,0x5a,iVar4,iVar6,iVar25 + iVar6);\n            iVar6 = iVar31;\n          } while (iVar31 < iVar28);\n        }\n        puVar2 = PTR_LAB_0015b714;\n        if (pEVar17 == (ExprList *)0x0) {\n          if (pEVar27 == (ExprList *)0x0) {\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar4 = pEVar27->nExpr;\n          puStack_60 = (undefined1 *)iVar4;\n          if (pWVar21->eType == 'V') {\n            puVar19 = (undefined1 *)0x0;\n            iVar6 = pWVar21->regPart;\n            iStack_50 = iVar25 + pWVar21->nBufferCol;\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          puVar8 = (undefined1 *)0x0;\n          pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R');\n          pTVar20 = pParse_00->aTableLock;\n        }\n        else {\n          iStack_50 = pEVar17->nExpr;\n          if (pEVar27 == (ExprList *)0x0) {\nLAB_000c09d4:\n            iVar4 = pWVar21->nBufferCol;\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar4 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar4,pWVar21->regPart,iStack_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pParse_00,uVar7,0xfffffff7);\n            puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar32)(pParse,pWVar21,1);\n            puStack_60 = (undefined1 *)iStack_50;\n          }\n          else {\n            iVar6 = pWVar21->nBufferCol;\n            iVar4 = pEVar27->nExpr;\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar6 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar6,pWVar21->regPart,iStack_50);\n            pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);\n            puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar6 + 2,0,iVar6 + 2);\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar32)(pParse,pWVar21,1);\n            puVar19 = (undefined1 *)(*pcVar22)(pParse_00,0xb,0,0,0);\n            iVar28 = pWVar21->nBufferCol;\n            iVar6 = pWVar21->regPart;\n            if (puVar8 != (undefined1 *)0x0) {\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar8 < 0) {\n                puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }\n            puStack_60 = (undefined1 *)(iStack_50 + iVar4);\n            if (pWVar21->eType == 'V') {\n              iVar6 = iStack_50 + iVar6;\n              iStack_50 = iVar25 + iVar28 + iStack_50;\nLAB_000c1e74:\n              pcStack_4c = (code *)(puVar2 + -0x7fc4);\n              uVar7 = (*pcStack_4c)(pParse,pEVar27,0,0);\n              iVar4 = (*pcVar22)(pParse_00,0x57,iStack_50,iVar6,iVar4);\n              (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);\n              puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);\n            }\n            else {\n              puVar8 = (undefined1 *)0x0;\n            }\n            (*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R');\n            if (puVar19 != (undefined1 *)0x0) {\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar19 < 0) {\n                puVar19 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar19].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }\n          }\n          pTVar20 = pParse_00->aTableLock;\n        }\n        (*pcVar22)(pParse_00,0x24,pWVar21->iEphCsr,(undefined1 *)((int)&pTVar20->iDb + 3),0);\n        (*pcVar22)(pParse_00,0xc,regGosub,addrGosub,0);\n        (*pcVar22)(pParse_00,5,pWVar21->iEphCsr,\n                   (undefined1 *)((int)&pParse_00->aTableLock[-1].zLockName + 3),0);\n        (*pcVar22)(pParse_00,0x8a,pWVar21->iEphCsr,0,0);\n        (*pcVar22)(pParse_00,0x4e,iVar25 + pWVar21->nBufferCol,pWVar21->regPart,(int)puStack_60 + -1\n                  );\n        if (puVar8 != (undefined1 *)0x0) {\n          pTVar20 = pParse_00->aTableLock;\n          if ((int)puVar8 < 0) {\n            puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n          }\n          if (pParse_00->db->mallocFailed == '\0') {\n            ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;\n          }\n          else {\n            *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n          }\n        }\n      }\nLAB_000c0b50:\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(pParse,pWVar21,0xffffffff,0,iVar25,0);\n      if (pWVar21->nBufferCol < 1) {\n        (*pcVar22)(pParse_00,0x4b,0,iVar5,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pParse_00,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }\n      else {\n        (*pcVar22)(pParse_00,0x66,iVar25,pWVar21->nBufferCol,iVar5);\n      }\n      (*pcVar22)(pParse_00,0x79,pWVar21->iEphCsr,iVar5 + 1,0);\n      (*pcVar22)(pParse_00,0x7a,pWVar21->iEphCsr,iVar5,iVar5 + 1);\n      (*(code *)(PTR_LAB_0015b710 + -0x18cc))(pWInfo);\n      (*pcVar32)(pParse,pWVar21,1);\n      (*pcVar22)(pParse_00,0x24,pWVar21->iEphCsr,\n                 (undefined1 *)((int)&pParse_00->aTableLock->iDb + 3),0);\n      (*pcVar22)(pParse_00,0xc,regGosub,addrGosub,0);\n      puVar19 = &DAT_00000005;\n      iVar5 = pWVar21->iEphCsr;\n      (*pcVar22)();\n      goto LAB_000c0f44;\n    }\nLAB_000c0c60:\n    pVVar24 = pParse->pVdbe;\n    if (pVVar24 == (Vdbe *)0x0) {\n      pVVar24 = (Vdbe *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse);\n      pEVar17 = pWVar21->pOrderBy;\n      pEStack_48 = pWVar21->pPartition;\n      if (pEVar17 != (ExprList *)0x0) goto LAB_000c0c7c;\nLAB_000c1450:\n      iStack_58 = 0;\n      bVar1 = false;\n    }\n    else {\n      pEStack_48 = pWVar21->pPartition;\n      pEVar17 = pWVar21->pOrderBy;\n      if (pEVar17 == (ExprList *)0x0) goto LAB_000c1450;\nLAB_000c0c7c:\n      iStack_58 = pEVar17->nExpr;\n      uVar9._0_1_ = pWVar21->eType;\n      uVar9._1_1_ = pWVar21->eStart;\n      uVar9._2_1_ = pWVar21->eEnd;\n      uVar9._3_1_ = pWVar21->field_0xf;\n      bVar1 = (uVar9 & 0xffff00) == 0x525700;\n    }\n    puVar2 = PTR_LAB_0015b714;\n    iVar4 = pParse->nMem;\n    iVar28 = pParse->nTab;\n    iVar6 = pParse->nLabel;\n    iVar5 = iVar4 + iStack_58;\n    iVar31 = iVar5 + 2;\n    iVar25 = iVar6 + -2;\n    pParse->nTab = iVar28 + 1;\n    iVar5 = iVar5 + 1;\n    pParse->nLabel = iVar25;\n    pParse->nMem = iVar31;\n    iVar6 = iVar6 + -1;\n    (*(code *)(puVar2 + -0x7e94))(pParse,&p->pSrc,p->pWin,pWInfo,iVar5,iVar25,&regSize);\n    pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    puStack_60 = (undefined1 *)(*pcVar22)(pVVar24,0xb,0,0,0);\n    pcVar32 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar32)(pVVar24,iVar25);\n    (*pcVar22)(pVVar24,0x11,0,pVVar24->nOp + 2,0);\n    (*pcVar22)(pVVar24,0x6f,iVar28,pWVar21->iEphCsr,0);\n    uVar7 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(pParse,pWVar21);\n    (*pcVar22)(pVVar24,0x46,0,iVar31,0);\n    (*pcVar22)(pVVar24,0x24,iVar28,iVar6,0);\n    (*pcVar22)(pVVar24,0x24,pWVar21->iEphCsr,iVar6,0);\n    if (bVar1) {\n      iVar25 = pVVar24->nOp;\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(pParse,pWVar21,iVar28,0,uVar7,regSize);\n      (*pcVar22)(pVVar24,5,iVar28,iVar25,0);\n      (*pcVar22)(pVVar24,0x24,iVar28,iVar6,0);\n      iStack_50 = pVVar24->nOp;\n      if (pEVar17 != (ExprList *)0x0) goto LAB_000c0e28;\n      pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n    }\n    else {\n      iStack_50 = pVVar24->nOp;\n      if (pEVar17 == (ExprList *)0x0) {\n        pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        uVar16 = pWVar21->eStart;\n        uVar10 = uVar7;\n        if (pWVar21->eEnd == 'R') {\n          if (pWVar21->eType == 'V') {\nLAB_000c1544:\n            iVar25 = pWVar21->nBufferCol;\n            if (pEStack_48 == (ExprList *)0x0) {\n              iVar11 = 0;\n            }\n            else {\n              iVar11 = pEStack_48->nExpr;\n              iVar25 = iVar25 + iVar11;\n            }\n            iVar11 = iVar11 + pWVar21->regPart;\n            uVar12 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar4 = iVar4 + 1;\n            if (0 < iStack_58) {\n              iVar13 = iStack_58 + iVar25;\n              iVar14 = iVar4 - iVar25;\n              do {\n                (*pcVar22)(pVVar24,0x5a,iVar28,iVar25,iVar14 + iVar25);\n                iVar25 = iVar25 + 1;\n              } while (iVar25 != iVar13);\n            }\n            iVar25 = (*pcVar22)(pVVar24,0x57,iVar4,iVar11,iStack_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pVVar24,uVar12,0xfffffff7);\n            iVar25 = (*pcVar22)(pVVar24,0x10,iVar25 + 2,0,iVar25 + 2);\n            (*pcVar22)(pVVar24,0x4e,iVar4,iVar11,iStack_58 + -1);\n            iVar4 = regSize;\n            if (uVar16 != 'R') {\n              uVar10 = 0;\n              iVar4 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (uVar16 == 'R') goto LAB_000c1494;\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,0,0);\n        }\n        else if (uVar16 == 'R') {\n          if (pWVar21->eType == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar25 = 0;\n          iVar4 = regSize;\nLAB_000c14a0:\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,uVar10,iVar4);\n          if (iVar25 != 0) {\n            iVar4 = pVVar24->nOp;\n            if (iVar25 < 0) {\n              iVar25 = iVar4 + -1;\n            }\n            if (pVVar24->db->mallocFailed == '\0') {\n              pVVar24->aOp[iVar25].p2 = iVar4;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4;\n            }\n          }\n        }\n        else {\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(pParse,pWVar21,iVar28,0,uVar7,regSize);\n    }\nLAB_000c0e5c:\n    (*pcVar22)(pVVar24,0x53,iVar31,1,0);\n    (*pcVar22)(pVVar24,5,iVar28,iStack_50,0);\n    (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,0,0);\n    (*pcVar32)(pVVar24,iVar6);\n    (*pcVar22)(pVVar24,0x8a,pWVar21->iEphCsr,0,0);\n  }" if (parenthesized_expression "(pWVar21->eType == 'L')" ( (binary_expression "pWVar21->eType == 'L'" (field_expression "pWVar21->eType" identifier -> field_identifier) == (char_literal "'L'" ' character ')) )) (compound_statement "{\n    if (((uVar18 & 0xffff00) == 0x575200) && (pWVar21->pOrderBy != (ExprList *)0x0))\n    goto LAB_000c08b4;\n    pVVar24 = pParse->pVdbe;\n    if (pVVar24 == (Vdbe *)0x0) {\n      pVVar24 = (Vdbe *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse);\n    }\n    puVar2 = PTR_LAB_0015b714;\n    iVar25 = pParse->nTab;\n    iVar4 = pParse->nMem;\n    iVar6 = iVar4 + 3;\n    iVar28 = pParse->nLabel + -2;\n    pParse->nTab = iVar25 + 2;\n    iVar11 = pParse->nLabel + -1;\n    iVar5 = iVar4 + 1;\n    pParse->nMem = iVar6;\n    pParse->nLabel = iVar28;\n    iVar4 = iVar4 + 2;\n    iVar31 = iVar25 + 1;\n    regSize = 0;\n    (*(code *)(puVar2 + -0x7e94))(pParse,&p->pSrc,p->pWin,pWInfo,iVar5,iVar11,&regSize);\n    pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    puStack_60 = (undefined1 *)(*pcVar22)(pVVar24,0xb,0,0,0);\n    pcVar32 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar32)(pVVar24,iVar11);\n    (*pcVar22)(pVVar24,0x11,0,pVVar24->nOp + 3,0);\n    (*pcVar22)(pVVar24,0x6f,iVar25,pWVar21->iEphCsr,0);\n    (*pcVar22)(pVVar24,0x6f,iVar31,pWVar21->iEphCsr,0);\n    if (pWVar21->pStart != (Expr *)0x0) {\n      sqlite3ExprCode(pParse,pWVar21->pStart,iVar4);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(pParse,iVar4,0);\n    }\n    if (pWVar21->pEnd != (Expr *)0x0) {\n      sqlite3ExprCode(pParse,pWVar21->pEnd,iVar6);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(pParse,iVar6,1);\n      if ((pWVar21->pEnd != (Expr *)0x0) && (pWVar21->eStart == 'S')) {\n        (*pcVar22)(pVVar24,0x39,iVar4,pVVar24->nOp + 2,iVar6);\n        (*pcVar22)(pVVar24,0x4e,regSize,iVar4,0);\n        (*pcVar22)(pVVar24,0x61,iVar4,iVar6,iVar6);\n      }\n    }\n    if ((pWVar21->pStart != (Expr *)0x0) && (pWVar21->eEnd == 'U')) {\n      (*pcVar22)(pVVar24,0x37,iVar4,pVVar24->nOp + 3,iVar6);\n      (*pcVar22)(pVVar24,0x4e,regSize,iVar4,0);\n      (*pcVar22)(pVVar24,0x4e,regSize,iVar6,0);\n    }\n    uVar7 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(pParse,pWVar21);\n    (*pcVar22)(pVVar24,0x24,pWVar21->iEphCsr,iVar28,0);\n    (*pcVar22)(pVVar24,0x24,iVar25,iVar28,0);\n    if (0 < pVVar24->nOp) {\n      pVVar24->aOp[pVVar24->nOp + -1].p5 = 1;\n    }\n    (*pcVar22)(pVVar24,0x24,iVar31,iVar28,0);\n    iVar11 = pVVar24->nOp;\n    if (0 < iVar11) {\n      pVVar24->aOp[iVar11 + -1].p5 = 1;\n      iVar11 = pVVar24->nOp;\n    }\n    if (pWVar21->eEnd == 'U') {\n      iStack_50 = (*pcVar22)(pVVar24,0x2f,iVar6,0,1);\n      iVar13 = pVVar24->nOp;\n    }\n    else {\n      iStack_50 = 0;\n      iVar13 = iVar11;\n    }\n    (*pcVar22)(pVVar24,5,iVar31,iVar13 + 2,0);\n    iVar13 = (*pcVar22)(pVVar24,0xb,0,0,0);\n    pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7af4);\n    (*pcVar29)(pParse,pWVar21,iVar31,0,uVar7,regSize);\n    if (pWVar21->eEnd == 'W') {\n      (*pcVar22)(pVVar24,0xb,0,iVar11,0);\n      iVar11 = pVVar24->nOp;\n      if (iVar13 < 0) {\n        iVar13 = iVar11 + -1;\n      }\n      if (pVVar24->db->mallocFailed == '\0') {\n        pVVar24->aOp[iVar13].p2 = iVar11;\n        uVar16 = pWVar21->eEnd;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar11;\n        uVar16 = pWVar21->eEnd;\n      }\n    }\n    else {\n      iVar31 = pVVar24->nOp;\n      if (iVar13 < 0) {\n        iVar13 = iVar31 + -1;\n      }\n      if (pVVar24->db->mallocFailed == '\0') {\n        pOVar15 = pVVar24->aOp + iVar13;\n      }\n      else {\n        pOVar15 = (Op *)(PTR_DAT_0015b5d8 + -0x4514);\n      }\n      pOVar15->p2 = iVar31;\n      uVar16 = pWVar21->eEnd;\n      if (uVar16 == 'U') {\n        iVar13 = iVar31 + -1;\n        if (-1 < iStack_50) {\n          iVar13 = iStack_50;\n        }\n        if (pVVar24->db->mallocFailed == '\0') {\n          pVVar24->aOp[iVar13].p2 = iVar31;\n          uVar16 = pWVar21->eEnd;\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar31;\n          uVar16 = pWVar21->eEnd;\n        }\n      }\n    }\n    if (uVar16 == 'S') {\n      iStack_50 = (*pcVar22)(pVVar24,0x2f,iVar6,0,1);\n    }\n    if (pWVar21->eStart == 'S') {\n      iVar6 = (*pcVar22)(pVVar24,0x2f,iVar4,0,1);\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(pParse,pWVar21,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(pParse,pWVar21,regGosub,addrGosub);\n      (*pcVar22)(pVVar24,5,pWVar21->iEphCsr,pVVar24->nOp + 2,0);\n      (*pcVar22)(pVVar24,0xb,0,iVar28,0);\n      uVar18 = (uint)pWVar21->eStart;\n      if (uVar18 == 0x53) {\n        iVar31 = pVVar24->nOp;\n        if (iVar6 < 0) {\n          iVar6 = iVar31 + -1;\n        }\n        goto LAB_000c1d20;\n      }\n    }\n    else {\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(pParse,pWVar21,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(pParse,pWVar21,regGosub,addrGosub);\n      (*pcVar22)(pVVar24,5,pWVar21->iEphCsr,pVVar24->nOp + 2,0);\n      (*pcVar22)(pVVar24,0xb,0,iVar28,0);\n      uVar18 = (uint)pWVar21->eStart;\n      if (uVar18 == 0x53) {\n        iVar31 = pVVar24->nOp;\n        iVar6 = 0;\nLAB_000c1d20:\n        if (pVVar24->db->mallocFailed == '\0') {\n          pVVar24->aOp[iVar6].p2 = iVar31;\n          uVar18 = (uint)pWVar21->eStart;\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar31;\n          uVar18 = (uint)pWVar21->eStart;\n        }\n      }\n    }\n    if ((uVar18 - 0x52 < 2) || (uVar18 == 0x55)) {\n      iVar6 = pParse->nLabel + -1;\n      pParse->nLabel = iVar6;\n      uVar16 = pWVar21->eStart;\n      if (uVar16 == 'U') {\n        (*pcVar22)(pVVar24,0x2f,iVar4,iVar6,1);\n        uVar16 = pWVar21->eStart;\n      }\n      if (uVar16 == 'S') {\n        (*pcVar22)(pVVar24,5,iVar25,pVVar24->nOp + 2,0);\n        (*pcVar22)(pVVar24,0xb,0,iVar6,0);\n      }\n      else {\n        (*pcVar22)(pVVar24,5,iVar25,pVVar24->nOp + 1,0);\n      }\n      (*pcVar29)(pParse,pWVar21,iVar25,1,uVar7,regSize);\n      (*pcVar32)(pVVar24,iVar6);\n    }\n    if (pWVar21->eEnd == 'S') {\n      iVar4 = pVVar24->nOp;\n      if (iStack_50 < 0) {\n        iStack_50 = iVar4 + -1;\n      }\n      if (pVVar24->db->mallocFailed == '\0') {\n        pVVar24->aOp[iStack_50].p2 = iVar4;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4;\n      }\n    }\n    (*pcVar22)(pVVar24,0xb,0,iVar11,0);\n    (*pcVar32)(pVVar24,iVar28);\n    (*pcVar22)(pVVar24,0x8a,pWVar21->iEphCsr,0,0);\n  }" { (if_statement "if (((uVar18 & 0xffff00) == 0x575200) && (pWVar21->pOrderBy != (ExprList *)0x0))\n    goto LAB_000c08b4;" if (parenthesized_expression "(((uVar18 & 0xffff00) == 0x575200) && (pWVar21->pOrderBy != (ExprList *)0x0))" ( (binary_expression "((uVar18 & 0xffff00) == 0x575200) && (pWVar21->pOrderBy != (ExprList *)0x0)" (parenthesized_expression "((uVar18 & 0xffff00) == 0x575200)" ( (binary_expression "(uVar18 & 0xffff00) == 0x575200" (parenthesized_expression "(uVar18 & 0xffff00)" ( (binary_expression "uVar18 & 0xffff00" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(pWVar21->pOrderBy != (ExprList *)0x0)" ( (binary_expression "pWVar21->pOrderBy != (ExprList *)0x0" (field_expression "pWVar21->pOrderBy" identifier -> field_identifier) != (cast_expression "(ExprList *)0x0" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_000c08b4;" goto statement_identifier ;)) (expression_statement "pVVar24 = pParse->pVdbe;" (assignment_expression "pVVar24 = pParse->pVdbe" identifier = (field_expression "pParse->pVdbe" identifier -> field_identifier)) ;) (if_statement "if (pVVar24 == (Vdbe *)0x0) {\n      pVVar24 = (Vdbe *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse);\n    }" if (parenthesized_expression "(pVVar24 == (Vdbe *)0x0)" ( (binary_expression "pVVar24 == (Vdbe *)0x0" identifier == (cast_expression "(Vdbe *)0x0" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pVVar24 = (Vdbe *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse);\n    }" { (expression_statement "pVVar24 = (Vdbe *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse);" (assignment_expression "pVVar24 = (Vdbe *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse)" identifier = (cast_expression "(Vdbe *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse)" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x371c))" ( (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x371c)" * (cast_expression "(code *)(PTR_LAB_0015b710 + -0x371c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x371c)" ( (binary_expression "PTR_LAB_0015b710 + -0x371c" identifier + number_literal) )))) )) (argument_list "(pParse)" ( identifier ))))) ;) })) (expression_statement "puVar2 = PTR_LAB_0015b714;" (assignment_expression "puVar2 = PTR_LAB_0015b714" identifier = identifier) ;) (expression_statement "iVar25 = pParse->nTab;" (assignment_expression "iVar25 = pParse->nTab" identifier = (field_expression "pParse->nTab" identifier -> field_identifier)) ;) (expression_statement "iVar4 = pParse->nMem;" (assignment_expression "iVar4 = pParse->nMem" identifier = (field_expression "pParse->nMem" identifier -> field_identifier)) ;) (expression_statement "iVar6 = iVar4 + 3;" (assignment_expression "iVar6 = iVar4 + 3" identifier = (binary_expression "iVar4 + 3" identifier + number_literal)) ;) (expression_statement "iVar28 = pParse->nLabel + -2;" (assignment_expression "iVar28 = pParse->nLabel + -2" identifier = (binary_expression "pParse->nLabel + -2" (field_expression "pParse->nLabel" identifier -> field_identifier) + number_literal)) ;) (expression_statement "pParse->nTab = iVar25 + 2;" (assignment_expression "pParse->nTab = iVar25 + 2" (field_expression "pParse->nTab" identifier -> field_identifier) = (binary_expression "iVar25 + 2" identifier + number_literal)) ;) (expression_statement "iVar11 = pParse->nLabel + -1;" (assignment_expression "iVar11 = pParse->nLabel + -1" identifier = (binary_expression "pParse->nLabel + -1" (field_expression "pParse->nLabel" identifier -> field_identifier) + number_literal)) ;) (expression_statement "iVar5 = iVar4 + 1;" (assignment_expression "iVar5 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "pParse->nMem = iVar6;" (assignment_expression "pParse->nMem = iVar6" (field_expression "pParse->nMem" identifier -> field_identifier) = identifier) ;) (expression_statement "pParse->nLabel = iVar28;" (assignment_expression "pParse->nLabel = iVar28" (field_expression "pParse->nLabel" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar4 = iVar4 + 2;" (assignment_expression "iVar4 = iVar4 + 2" identifier = (binary_expression "iVar4 + 2" identifier + number_literal)) ;) (expression_statement "iVar31 = iVar25 + 1;" (assignment_expression "iVar31 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;) (expression_statement "regSize = 0;" (assignment_expression "regSize = 0" identifier = number_literal) ;) (expression_statement "(*(code *)(puVar2 + -0x7e94))(pParse,&p->pSrc,p->pWin,pWInfo,iVar5,iVar11,&regSize);" (call_expression "(*(code *)(puVar2 + -0x7e94))(pParse,&p->pSrc,p->pWin,pWInfo,iVar5,iVar11,&regSize)" (parenthesized_expression "(*(code *)(puVar2 + -0x7e94))" ( (pointer_expression "*(code *)(puVar2 + -0x7e94)" * (cast_expression "(code *)(puVar2 + -0x7e94)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x7e94)" ( (binary_expression "puVar2 + -0x7e94" identifier + number_literal) )))) )) (argument_list "(pParse,&p->pSrc,p->pWin,pWInfo,iVar5,iVar11,&regSize)" ( identifier , (pointer_expression "&p->pSrc" & (field_expression "p->pSrc" identifier -> field_identifier)) , (field_expression "p->pWin" identifier -> field_identifier) , identifier , identifier , identifier , (pointer_expression "&regSize" & identifier) ))) ;) (expression_statement "pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);" (assignment_expression "pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x3890)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x3890)" ( (binary_expression "PTR_LAB_0015b710 + -0x3890" identifier + number_literal) )))) ;) (expression_statement "puStack_60 = (undefined1 *)(*pcVar22)(pVVar24,0xb,0,0,0);" (assignment_expression "puStack_60 = (undefined1 *)(*pcVar22)(pVVar24,0xb,0,0,0)" identifier = (cast_expression "(undefined1 *)(*pcVar22)(pVVar24,0xb,0,0,0)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar22)(pVVar24,0xb,0,0,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0xb,0,0,0)" ( identifier , number_literal , number_literal , number_literal , number_literal ))))) ;) (expression_statement "pcVar32 = (code *)(PTR_LAB_0015b710 + -0x3c14);" (assignment_expression "pcVar32 = (code *)(PTR_LAB_0015b710 + -0x3c14)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x3c14)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x3c14)" ( (binary_expression "PTR_LAB_0015b710 + -0x3c14" identifier + number_literal) )))) ;) (expression_statement "(*pcVar32)(pVVar24,iVar11);" (call_expression "(*pcVar32)(pVVar24,iVar11)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(pVVar24,iVar11)" ( identifier , identifier ))) ;) (expression_statement "(*pcVar22)(pVVar24,0x11,0,pVVar24->nOp + 3,0);" (call_expression "(*pcVar22)(pVVar24,0x11,0,pVVar24->nOp + 3,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0x11,0,pVVar24->nOp + 3,0)" ( identifier , number_literal , number_literal , (binary_expression "pVVar24->nOp + 3" (field_expression "pVVar24->nOp" identifier -> field_identifier) + number_literal) , number_literal ))) ;) (expression_statement "(*pcVar22)(pVVar24,0x6f,iVar25,pWVar21->iEphCsr,0);" (call_expression "(*pcVar22)(pVVar24,0x6f,iVar25,pWVar21->iEphCsr,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0x6f,iVar25,pWVar21->iEphCsr,0)" ( identifier , number_literal , identifier , (field_expression "pWVar21->iEphCsr" identifier -> field_identifier) , number_literal ))) ;) (expression_statement "(*pcVar22)(pVVar24,0x6f,iVar31,pWVar21->iEphCsr,0);" (call_expression "(*pcVar22)(pVVar24,0x6f,iVar31,pWVar21->iEphCsr,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0x6f,iVar31,pWVar21->iEphCsr,0)" ( identifier , number_literal , identifier , (field_expression "pWVar21->iEphCsr" identifier -> field_identifier) , number_literal ))) ;) (if_statement "if (pWVar21->pStart != (Expr *)0x0) {\n      sqlite3ExprCode(pParse,pWVar21->pStart,iVar4);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(pParse,iVar4,0);\n    }" if (parenthesized_expression "(pWVar21->pStart != (Expr *)0x0)" ( (binary_expression "pWVar21->pStart != (Expr *)0x0" (field_expression "pWVar21->pStart" identifier -> field_identifier) != (cast_expression "(Expr *)0x0" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      sqlite3ExprCode(pParse,pWVar21->pStart,iVar4);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(pParse,iVar4,0);\n    }" { (expression_statement "sqlite3ExprCode(pParse,pWVar21->pStart,iVar4);" (call_expression "sqlite3ExprCode(pParse,pWVar21->pStart,iVar4)" identifier (argument_list "(pParse,pWVar21->pStart,iVar4)" ( identifier , (field_expression "pWVar21->pStart" identifier -> field_identifier) , identifier ))) ;) (expression_statement "(*(code *)(PTR_LAB_0015b710 + -0x2920))(pParse,iVar4,0);" (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x2920))(pParse,iVar4,0)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x2920))" ( (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x2920)" * (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2920)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2920)" ( (binary_expression "PTR_LAB_0015b710 + -0x2920" identifier + number_literal) )))) )) (argument_list "(pParse,iVar4,0)" ( identifier , identifier , number_literal ))) ;) })) (if_statement "if (pWVar21->pEnd != (Expr *)0x0) {\n      sqlite3ExprCode(pParse,pWVar21->pEnd,iVar6);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(pParse,iVar6,1);\n      if ((pWVar21->pEnd != (Expr *)0x0) && (pWVar21->eStart == 'S')) {\n        (*pcVar22)(pVVar24,0x39,iVar4,pVVar24->nOp + 2,iVar6);\n        (*pcVar22)(pVVar24,0x4e,regSize,iVar4,0);\n        (*pcVar22)(pVVar24,0x61,iVar4,iVar6,iVar6);\n      }\n    }" if (parenthesized_expression "(pWVar21->pEnd != (Expr *)0x0)" ( (binary_expression "pWVar21->pEnd != (Expr *)0x0" (field_expression "pWVar21->pEnd" identifier -> field_identifier) != (cast_expression "(Expr *)0x0" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      sqlite3ExprCode(pParse,pWVar21->pEnd,iVar6);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(pParse,iVar6,1);\n      if ((pWVar21->pEnd != (Expr *)0x0) && (pWVar21->eStart == 'S')) {\n        (*pcVar22)(pVVar24,0x39,iVar4,pVVar24->nOp + 2,iVar6);\n        (*pcVar22)(pVVar24,0x4e,regSize,iVar4,0);\n        (*pcVar22)(pVVar24,0x61,iVar4,iVar6,iVar6);\n      }\n    }" { (expression_statement "sqlite3ExprCode(pParse,pWVar21->pEnd,iVar6);" (call_expression "sqlite3ExprCode(pParse,pWVar21->pEnd,iVar6)" identifier (argument_list "(pParse,pWVar21->pEnd,iVar6)" ( identifier , (field_expression "pWVar21->pEnd" identifier -> field_identifier) , identifier ))) ;) (expression_statement "(*(code *)(PTR_LAB_0015b710 + -0x2920))(pParse,iVar6,1);" (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x2920))(pParse,iVar6,1)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x2920))" ( (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x2920)" * (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2920)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2920)" ( (binary_expression "PTR_LAB_0015b710 + -0x2920" identifier + number_literal) )))) )) (argument_list "(pParse,iVar6,1)" ( identifier , identifier , number_literal ))) ;) (if_statement "if ((pWVar21->pEnd != (Expr *)0x0) && (pWVar21->eStart == 'S')) {\n        (*pcVar22)(pVVar24,0x39,iVar4,pVVar24->nOp + 2,iVar6);\n        (*pcVar22)(pVVar24,0x4e,regSize,iVar4,0);\n        (*pcVar22)(pVVar24,0x61,iVar4,iVar6,iVar6);\n      }" if (parenthesized_expression "((pWVar21->pEnd != (Expr *)0x0) && (pWVar21->eStart == 'S'))" ( (binary_expression "(pWVar21->pEnd != (Expr *)0x0) && (pWVar21->eStart == 'S')" (parenthesized_expression "(pWVar21->pEnd != (Expr *)0x0)" ( (binary_expression "pWVar21->pEnd != (Expr *)0x0" (field_expression "pWVar21->pEnd" identifier -> field_identifier) != (cast_expression "(Expr *)0x0" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pWVar21->eStart == 'S')" ( (binary_expression "pWVar21->eStart == 'S'" (field_expression "pWVar21->eStart" identifier -> field_identifier) == (char_literal "'S'" ' character ')) ))) )) (compound_statement "{\n        (*pcVar22)(pVVar24,0x39,iVar4,pVVar24->nOp + 2,iVar6);\n        (*pcVar22)(pVVar24,0x4e,regSize,iVar4,0);\n        (*pcVar22)(pVVar24,0x61,iVar4,iVar6,iVar6);\n      }" { (expression_statement "(*pcVar22)(pVVar24,0x39,iVar4,pVVar24->nOp + 2,iVar6);" (call_expression "(*pcVar22)(pVVar24,0x39,iVar4,pVVar24->nOp + 2,iVar6)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0x39,iVar4,pVVar24->nOp + 2,iVar6)" ( identifier , number_literal , identifier , (binary_expression "pVVar24->nOp + 2" (field_expression "pVVar24->nOp" identifier -> field_identifier) + number_literal) , identifier ))) ;) (expression_statement "(*pcVar22)(pVVar24,0x4e,regSize,iVar4,0);" (call_expression "(*pcVar22)(pVVar24,0x4e,regSize,iVar4,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0x4e,regSize,iVar4,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "(*pcVar22)(pVVar24,0x61,iVar4,iVar6,iVar6);" (call_expression "(*pcVar22)(pVVar24,0x61,iVar4,iVar6,iVar6)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0x61,iVar4,iVar6,iVar6)" ( identifier , number_literal , identifier , identifier , identifier ))) ;) })) })) (if_statement "if ((pWVar21->pStart != (Expr *)0x0) && (pWVar21->eEnd == 'U')) {\n      (*pcVar22)(pVVar24,0x37,iVar4,pVVar24->nOp + 3,iVar6);\n      (*pcVar22)(pVVar24,0x4e,regSize,iVar4,0);\n      (*pcVar22)(pVVar24,0x4e,regSize,iVar6,0);\n    }" if (parenthesized_expression "((pWVar21->pStart != (Expr *)0x0) && (pWVar21->eEnd == 'U'))" ( (binary_expression "(pWVar21->pStart != (Expr *)0x0) && (pWVar21->eEnd == 'U')" (parenthesized_expression "(pWVar21->pStart != (Expr *)0x0)" ( (binary_expression "pWVar21->pStart != (Expr *)0x0" (field_expression "pWVar21->pStart" identifier -> field_identifier) != (cast_expression "(Expr *)0x0" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pWVar21->eEnd == 'U')" ( (binary_expression "pWVar21->eEnd == 'U'" (field_expression "pWVar21->eEnd" identifier -> field_identifier) == (char_literal "'U'" ' character ')) ))) )) (compound_statement "{\n      (*pcVar22)(pVVar24,0x37,iVar4,pVVar24->nOp + 3,iVar6);\n      (*pcVar22)(pVVar24,0x4e,regSize,iVar4,0);\n      (*pcVar22)(pVVar24,0x4e,regSize,iVar6,0);\n    }" { (expression_statement "(*pcVar22)(pVVar24,0x37,iVar4,pVVar24->nOp + 3,iVar6);" (call_expression "(*pcVar22)(pVVar24,0x37,iVar4,pVVar24->nOp + 3,iVar6)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0x37,iVar4,pVVar24->nOp + 3,iVar6)" ( identifier , number_literal , identifier , (binary_expression "pVVar24->nOp + 3" (field_expression "pVVar24->nOp" identifier -> field_identifier) + number_literal) , identifier ))) ;) (expression_statement "(*pcVar22)(pVVar24,0x4e,regSize,iVar4,0);" (call_expression "(*pcVar22)(pVVar24,0x4e,regSize,iVar4,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0x4e,regSize,iVar4,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "(*pcVar22)(pVVar24,0x4e,regSize,iVar6,0);" (call_expression "(*pcVar22)(pVVar24,0x4e,regSize,iVar6,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0x4e,regSize,iVar6,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) })) (expression_statement "uVar7 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(pParse,pWVar21);" (assignment_expression "uVar7 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(pParse,pWVar21)" identifier = (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x2e00))(pParse,pWVar21)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x2e00))" ( (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x2e00)" * (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2e00)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2e00)" ( (binary_expression "PTR_LAB_0015b710 + -0x2e00" identifier + number_literal) )))) )) (argument_list "(pParse,pWVar21)" ( identifier , identifier )))) ;) (expression_statement "(*pcVar22)(pVVar24,0x24,pWVar21->iEphCsr,iVar28,0);" (call_expression "(*pcVar22)(pVVar24,0x24,pWVar21->iEphCsr,iVar28,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0x24,pWVar21->iEphCsr,iVar28,0)" ( identifier , number_literal , (field_expression "pWVar21->iEphCsr" identifier -> field_identifier) , identifier , number_literal ))) ;) (expression_statement "(*pcVar22)(pVVar24,0x24,iVar25,iVar28,0);" (call_expression "(*pcVar22)(pVVar24,0x24,iVar25,iVar28,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0x24,iVar25,iVar28,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (if_statement "if (0 < pVVar24->nOp) {\n      pVVar24->aOp[pVVar24->nOp + -1].p5 = 1;\n    }" if (parenthesized_expression "(0 < pVVar24->nOp)" ( (binary_expression "0 < pVVar24->nOp" number_literal < (field_expression "pVVar24->nOp" identifier -> field_identifier)) )) (compound_statement "{\n      pVVar24->aOp[pVVar24->nOp + -1].p5 = 1;\n    }" { (expression_statement "pVVar24->aOp[pVVar24->nOp + -1].p5 = 1;" (assignment_expression "pVVar24->aOp[pVVar24->nOp + -1].p5 = 1" (field_expression "pVVar24->aOp[pVVar24->nOp + -1].p5" (subscript_expression "pVVar24->aOp[pVVar24->nOp + -1]" (field_expression "pVVar24->aOp" identifier -> field_identifier) [ (binary_expression "pVVar24->nOp + -1" (field_expression "pVVar24->nOp" identifier -> field_identifier) + number_literal) ]) . field_identifier) = number_literal) ;) })) (expression_statement "(*pcVar22)(pVVar24,0x24,iVar31,iVar28,0);" (call_expression "(*pcVar22)(pVVar24,0x24,iVar31,iVar28,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0x24,iVar31,iVar28,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "iVar11 = pVVar24->nOp;" (assignment_expression "iVar11 = pVVar24->nOp" identifier = (field_expression "pVVar24->nOp" identifier -> field_identifier)) ;) (if_statement "if (0 < iVar11) {\n      pVVar24->aOp[iVar11 + -1].p5 = 1;\n      iVar11 = pVVar24->nOp;\n    }" if (parenthesized_expression "(0 < iVar11)" ( (binary_expression "0 < iVar11" number_literal < identifier) )) (compound_statement "{\n      pVVar24->aOp[iVar11 + -1].p5 = 1;\n      iVar11 = pVVar24->nOp;\n    }" { (expression_statement "pVVar24->aOp[iVar11 + -1].p5 = 1;" (assignment_expression "pVVar24->aOp[iVar11 + -1].p5 = 1" (field_expression "pVVar24->aOp[iVar11 + -1].p5" (subscript_expression "pVVar24->aOp[iVar11 + -1]" (field_expression "pVVar24->aOp" identifier -> field_identifier) [ (binary_expression "iVar11 + -1" identifier + number_literal) ]) . field_identifier) = number_literal) ;) (expression_statement "iVar11 = pVVar24->nOp;" (assignment_expression "iVar11 = pVVar24->nOp" identifier = (field_expression "pVVar24->nOp" identifier -> field_identifier)) ;) })) (if_statement "if (pWVar21->eEnd == 'U') {\n      iStack_50 = (*pcVar22)(pVVar24,0x2f,iVar6,0,1);\n      iVar13 = pVVar24->nOp;\n    }\n    else {\n      iStack_50 = 0;\n      iVar13 = iVar11;\n    }" if (parenthesized_expression "(pWVar21->eEnd == 'U')" ( (binary_expression "pWVar21->eEnd == 'U'" (field_expression "pWVar21->eEnd" identifier -> field_identifier) == (char_literal "'U'" ' character ')) )) (compound_statement "{\n      iStack_50 = (*pcVar22)(pVVar24,0x2f,iVar6,0,1);\n      iVar13 = pVVar24->nOp;\n    }" { (expression_statement "iStack_50 = (*pcVar22)(pVVar24,0x2f,iVar6,0,1);" (assignment_expression "iStack_50 = (*pcVar22)(pVVar24,0x2f,iVar6,0,1)" identifier = (call_expression "(*pcVar22)(pVVar24,0x2f,iVar6,0,1)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0x2f,iVar6,0,1)" ( identifier , number_literal , identifier , number_literal , number_literal )))) ;) (expression_statement "iVar13 = pVVar24->nOp;" (assignment_expression "iVar13 = pVVar24->nOp" identifier = (field_expression "pVVar24->nOp" identifier -> field_identifier)) ;) }) (else_clause "else {\n      iStack_50 = 0;\n      iVar13 = iVar11;\n    }" else (compound_statement "{\n      iStack_50 = 0;\n      iVar13 = iVar11;\n    }" { (expression_statement "iStack_50 = 0;" (assignment_expression "iStack_50 = 0" identifier = number_literal) ;) (expression_statement "iVar13 = iVar11;" (assignment_expression "iVar13 = iVar11" identifier = identifier) ;) }))) (expression_statement "(*pcVar22)(pVVar24,5,iVar31,iVar13 + 2,0);" (call_expression "(*pcVar22)(pVVar24,5,iVar31,iVar13 + 2,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,5,iVar31,iVar13 + 2,0)" ( identifier , number_literal , identifier , (binary_expression "iVar13 + 2" identifier + number_literal) , number_literal ))) ;) (expression_statement "iVar13 = (*pcVar22)(pVVar24,0xb,0,0,0);" (assignment_expression "iVar13 = (*pcVar22)(pVVar24,0xb,0,0,0)" identifier = (call_expression "(*pcVar22)(pVVar24,0xb,0,0,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0xb,0,0,0)" ( identifier , number_literal , number_literal , number_literal , number_literal )))) ;) (expression_statement "pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7af4);" (assignment_expression "pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7af4)" identifier = (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7af4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x7af4)" ( (binary_expression "PTR_LAB_0015b714 + -0x7af4" identifier + number_literal) )))) ;) (expression_statement "(*pcVar29)(pParse,pWVar21,iVar31,0,uVar7,regSize);" (call_expression "(*pcVar29)(pParse,pWVar21,iVar31,0,uVar7,regSize)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(pParse,pWVar21,iVar31,0,uVar7,regSize)" ( identifier , identifier , identifier , number_literal , identifier , identifier ))) ;) (if_statement "if (pWVar21->eEnd == 'W') {\n      (*pcVar22)(pVVar24,0xb,0,iVar11,0);\n      iVar11 = pVVar24->nOp;\n      if (iVar13 < 0) {\n        iVar13 = iVar11 + -1;\n      }\n      if (pVVar24->db->mallocFailed == '\0') {\n        pVVar24->aOp[iVar13].p2 = iVar11;\n        uVar16 = pWVar21->eEnd;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar11;\n        uVar16 = pWVar21->eEnd;\n      }\n    }\n    else {\n      iVar31 = pVVar24->nOp;\n      if (iVar13 < 0) {\n        iVar13 = iVar31 + -1;\n      }\n      if (pVVar24->db->mallocFailed == '\0') {\n        pOVar15 = pVVar24->aOp + iVar13;\n      }\n      else {\n        pOVar15 = (Op *)(PTR_DAT_0015b5d8 + -0x4514);\n      }\n      pOVar15->p2 = iVar31;\n      uVar16 = pWVar21->eEnd;\n      if (uVar16 == 'U') {\n        iVar13 = iVar31 + -1;\n        if (-1 < iStack_50) {\n          iVar13 = iStack_50;\n        }\n        if (pVVar24->db->mallocFailed == '\0') {\n          pVVar24->aOp[iVar13].p2 = iVar31;\n          uVar16 = pWVar21->eEnd;\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar31;\n          uVar16 = pWVar21->eEnd;\n        }\n      }\n    }" if (parenthesized_expression "(pWVar21->eEnd == 'W')" ( (binary_expression "pWVar21->eEnd == 'W'" (field_expression "pWVar21->eEnd" identifier -> field_identifier) == (char_literal "'W'" ' character ')) )) (compound_statement "{\n      (*pcVar22)(pVVar24,0xb,0,iVar11,0);\n      iVar11 = pVVar24->nOp;\n      if (iVar13 < 0) {\n        iVar13 = iVar11 + -1;\n      }\n      if (pVVar24->db->mallocFailed == '\0') {\n        pVVar24->aOp[iVar13].p2 = iVar11;\n        uVar16 = pWVar21->eEnd;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar11;\n        uVar16 = pWVar21->eEnd;\n      }\n    }" { (expression_statement "(*pcVar22)(pVVar24,0xb,0,iVar11,0);" (call_expression "(*pcVar22)(pVVar24,0xb,0,iVar11,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0xb,0,iVar11,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) (expression_statement "iVar11 = pVVar24->nOp;" (assignment_expression "iVar11 = pVVar24->nOp" identifier = (field_expression "pVVar24->nOp" identifier -> field_identifier)) ;) (if_statement "if (iVar13 < 0) {\n        iVar13 = iVar11 + -1;\n      }" if (parenthesized_expression "(iVar13 < 0)" ( (binary_expression "iVar13 < 0" identifier < number_literal) )) (compound_statement "{\n        iVar13 = iVar11 + -1;\n      }" { (expression_statement "iVar13 = iVar11 + -1;" (assignment_expression "iVar13 = iVar11 + -1" identifier = (binary_expression "iVar11 + -1" identifier + number_literal)) ;) })) (if_statement "if (pVVar24->db->mallocFailed == '\0') {\n        pVVar24->aOp[iVar13].p2 = iVar11;\n        uVar16 = pWVar21->eEnd;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar11;\n        uVar16 = pWVar21->eEnd;\n      }" if (parenthesized_expression "(pVVar24->db->mallocFailed == '\0')" ( (binary_expression "pVVar24->db->mallocFailed == '\0'" (field_expression "pVVar24->db->mallocFailed" (field_expression "pVVar24->db" identifier -> field_identifier) -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pVVar24->aOp[iVar13].p2 = iVar11;\n        uVar16 = pWVar21->eEnd;\n      }" { (expression_statement "pVVar24->aOp[iVar13].p2 = iVar11;" (assignment_expression "pVVar24->aOp[iVar13].p2 = iVar11" (field_expression "pVVar24->aOp[iVar13].p2" (subscript_expression "pVVar24->aOp[iVar13]" (field_expression "pVVar24->aOp" identifier -> field_identifier) [ identifier ]) . field_identifier) = identifier) ;) (expression_statement "uVar16 = pWVar21->eEnd;" (assignment_expression "uVar16 = pWVar21->eEnd" identifier = (field_expression "pWVar21->eEnd" identifier -> field_identifier)) ;) }) (else_clause "else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar11;\n        uVar16 = pWVar21->eEnd;\n      }" else (compound_statement "{\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar11;\n        uVar16 = pWVar21->eEnd;\n      }" { (expression_statement "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar11;" (assignment_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar11" (pointer_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c)" * (cast_expression "(int *)(PTR_DAT_0015b5d8 + -0x450c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x450c)" ( (binary_expression "PTR_DAT_0015b5d8 + -0x450c" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar16 = pWVar21->eEnd;" (assignment_expression "uVar16 = pWVar21->eEnd" identifier = (field_expression "pWVar21->eEnd" identifier -> field_identifier)) ;) }))) }) (else_clause "else {\n      iVar31 = pVVar24->nOp;\n      if (iVar13 < 0) {\n        iVar13 = iVar31 + -1;\n      }\n      if (pVVar24->db->mallocFailed == '\0') {\n        pOVar15 = pVVar24->aOp + iVar13;\n      }\n      else {\n        pOVar15 = (Op *)(PTR_DAT_0015b5d8 + -0x4514);\n      }\n      pOVar15->p2 = iVar31;\n      uVar16 = pWVar21->eEnd;\n      if (uVar16 == 'U') {\n        iVar13 = iVar31 + -1;\n        if (-1 < iStack_50) {\n          iVar13 = iStack_50;\n        }\n        if (pVVar24->db->mallocFailed == '\0') {\n          pVVar24->aOp[iVar13].p2 = iVar31;\n          uVar16 = pWVar21->eEnd;\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar31;\n          uVar16 = pWVar21->eEnd;\n        }\n      }\n    }" else (compound_statement "{\n      iVar31 = pVVar24->nOp;\n      if (iVar13 < 0) {\n        iVar13 = iVar31 + -1;\n      }\n      if (pVVar24->db->mallocFailed == '\0') {\n        pOVar15 = pVVar24->aOp + iVar13;\n      }\n      else {\n        pOVar15 = (Op *)(PTR_DAT_0015b5d8 + -0x4514);\n      }\n      pOVar15->p2 = iVar31;\n      uVar16 = pWVar21->eEnd;\n      if (uVar16 == 'U') {\n        iVar13 = iVar31 + -1;\n        if (-1 < iStack_50) {\n          iVar13 = iStack_50;\n        }\n        if (pVVar24->db->mallocFailed == '\0') {\n          pVVar24->aOp[iVar13].p2 = iVar31;\n          uVar16 = pWVar21->eEnd;\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar31;\n          uVar16 = pWVar21->eEnd;\n        }\n      }\n    }" { (expression_statement "iVar31 = pVVar24->nOp;" (assignment_expression "iVar31 = pVVar24->nOp" identifier = (field_expression "pVVar24->nOp" identifier -> field_identifier)) ;) (if_statement "if (iVar13 < 0) {\n        iVar13 = iVar31 + -1;\n      }" if (parenthesized_expression "(iVar13 < 0)" ( (binary_expression "iVar13 < 0" identifier < number_literal) )) (compound_statement "{\n        iVar13 = iVar31 + -1;\n      }" { (expression_statement "iVar13 = iVar31 + -1;" (assignment_expression "iVar13 = iVar31 + -1" identifier = (binary_expression "iVar31 + -1" identifier + number_literal)) ;) })) (if_statement "if (pVVar24->db->mallocFailed == '\0') {\n        pOVar15 = pVVar24->aOp + iVar13;\n      }\n      else {\n        pOVar15 = (Op *)(PTR_DAT_0015b5d8 + -0x4514);\n      }" if (parenthesized_expression "(pVVar24->db->mallocFailed == '\0')" ( (binary_expression "pVVar24->db->mallocFailed == '\0'" (field_expression "pVVar24->db->mallocFailed" (field_expression "pVVar24->db" identifier -> field_identifier) -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pOVar15 = pVVar24->aOp + iVar13;\n      }" { (expression_statement "pOVar15 = pVVar24->aOp + iVar13;" (assignment_expression "pOVar15 = pVVar24->aOp + iVar13" identifier = (binary_expression "pVVar24->aOp + iVar13" (field_expression "pVVar24->aOp" identifier -> field_identifier) + identifier)) ;) }) (else_clause "else {\n        pOVar15 = (Op *)(PTR_DAT_0015b5d8 + -0x4514);\n      }" else (compound_statement "{\n        pOVar15 = (Op *)(PTR_DAT_0015b5d8 + -0x4514);\n      }" { (expression_statement "pOVar15 = (Op *)(PTR_DAT_0015b5d8 + -0x4514);" (assignment_expression "pOVar15 = (Op *)(PTR_DAT_0015b5d8 + -0x4514)" identifier = (cast_expression "(Op *)(PTR_DAT_0015b5d8 + -0x4514)" ( (type_descriptor "Op *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x4514)" ( (binary_expression "PTR_DAT_0015b5d8 + -0x4514" identifier + number_literal) )))) ;) }))) (expression_statement "pOVar15->p2 = iVar31;" (assignment_expression "pOVar15->p2 = iVar31" (field_expression "pOVar15->p2" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar16 = pWVar21->eEnd;" (assignment_expression "uVar16 = pWVar21->eEnd" identifier = (field_expression "pWVar21->eEnd" identifier -> field_identifier)) ;) (if_statement "if (uVar16 == 'U') {\n        iVar13 = iVar31 + -1;\n        if (-1 < iStack_50) {\n          iVar13 = iStack_50;\n        }\n        if (pVVar24->db->mallocFailed == '\0') {\n          pVVar24->aOp[iVar13].p2 = iVar31;\n          uVar16 = pWVar21->eEnd;\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar31;\n          uVar16 = pWVar21->eEnd;\n        }\n      }" if (parenthesized_expression "(uVar16 == 'U')" ( (binary_expression "uVar16 == 'U'" identifier == (char_literal "'U'" ' character ')) )) (compound_statement "{\n        iVar13 = iVar31 + -1;\n        if (-1 < iStack_50) {\n          iVar13 = iStack_50;\n        }\n        if (pVVar24->db->mallocFailed == '\0') {\n          pVVar24->aOp[iVar13].p2 = iVar31;\n          uVar16 = pWVar21->eEnd;\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar31;\n          uVar16 = pWVar21->eEnd;\n        }\n      }" { (expression_statement "iVar13 = iVar31 + -1;" (assignment_expression "iVar13 = iVar31 + -1" identifier = (binary_expression "iVar31 + -1" identifier + number_literal)) ;) (if_statement "if (-1 < iStack_50) {\n          iVar13 = iStack_50;\n        }" if (parenthesized_expression "(-1 < iStack_50)" ( (binary_expression "-1 < iStack_50" number_literal < identifier) )) (compound_statement "{\n          iVar13 = iStack_50;\n        }" { (expression_statement "iVar13 = iStack_50;" (assignment_expression "iVar13 = iStack_50" identifier = identifier) ;) })) (if_statement "if (pVVar24->db->mallocFailed == '\0') {\n          pVVar24->aOp[iVar13].p2 = iVar31;\n          uVar16 = pWVar21->eEnd;\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar31;\n          uVar16 = pWVar21->eEnd;\n        }" if (parenthesized_expression "(pVVar24->db->mallocFailed == '\0')" ( (binary_expression "pVVar24->db->mallocFailed == '\0'" (field_expression "pVVar24->db->mallocFailed" (field_expression "pVVar24->db" identifier -> field_identifier) -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          pVVar24->aOp[iVar13].p2 = iVar31;\n          uVar16 = pWVar21->eEnd;\n        }" { (expression_statement "pVVar24->aOp[iVar13].p2 = iVar31;" (assignment_expression "pVVar24->aOp[iVar13].p2 = iVar31" (field_expression "pVVar24->aOp[iVar13].p2" (subscript_expression "pVVar24->aOp[iVar13]" (field_expression "pVVar24->aOp" identifier -> field_identifier) [ identifier ]) . field_identifier) = identifier) ;) (expression_statement "uVar16 = pWVar21->eEnd;" (assignment_expression "uVar16 = pWVar21->eEnd" identifier = (field_expression "pWVar21->eEnd" identifier -> field_identifier)) ;) }) (else_clause "else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar31;\n          uVar16 = pWVar21->eEnd;\n        }" else (compound_statement "{\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar31;\n          uVar16 = pWVar21->eEnd;\n        }" { (expression_statement "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar31;" (assignment_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar31" (pointer_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c)" * (cast_expression "(int *)(PTR_DAT_0015b5d8 + -0x450c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x450c)" ( (binary_expression "PTR_DAT_0015b5d8 + -0x450c" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar16 = pWVar21->eEnd;" (assignment_expression "uVar16 = pWVar21->eEnd" identifier = (field_expression "pWVar21->eEnd" identifier -> field_identifier)) ;) }))) })) }))) (if_statement "if (uVar16 == 'S') {\n      iStack_50 = (*pcVar22)(pVVar24,0x2f,iVar6,0,1);\n    }" if (parenthesized_expression "(uVar16 == 'S')" ( (binary_expression "uVar16 == 'S'" identifier == (char_literal "'S'" ' character ')) )) (compound_statement "{\n      iStack_50 = (*pcVar22)(pVVar24,0x2f,iVar6,0,1);\n    }" { (expression_statement "iStack_50 = (*pcVar22)(pVVar24,0x2f,iVar6,0,1);" (assignment_expression "iStack_50 = (*pcVar22)(pVVar24,0x2f,iVar6,0,1)" identifier = (call_expression "(*pcVar22)(pVVar24,0x2f,iVar6,0,1)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0x2f,iVar6,0,1)" ( identifier , number_literal , identifier , number_literal , number_literal )))) ;) })) (if_statement "if (pWVar21->eStart == 'S') {\n      iVar6 = (*pcVar22)(pVVar24,0x2f,iVar4,0,1);\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(pParse,pWVar21,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(pParse,pWVar21,regGosub,addrGosub);\n      (*pcVar22)(pVVar24,5,pWVar21->iEphCsr,pVVar24->nOp + 2,0);\n      (*pcVar22)(pVVar24,0xb,0,iVar28,0);\n      uVar18 = (uint)pWVar21->eStart;\n      if (uVar18 == 0x53) {\n        iVar31 = pVVar24->nOp;\n        if (iVar6 < 0) {\n          iVar6 = iVar31 + -1;\n        }\n        goto LAB_000c1d20;\n      }\n    }\n    else {\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(pParse,pWVar21,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(pParse,pWVar21,regGosub,addrGosub);\n      (*pcVar22)(pVVar24,5,pWVar21->iEphCsr,pVVar24->nOp + 2,0);\n      (*pcVar22)(pVVar24,0xb,0,iVar28,0);\n      uVar18 = (uint)pWVar21->eStart;\n      if (uVar18 == 0x53) {\n        iVar31 = pVVar24->nOp;\n        iVar6 = 0;\nLAB_000c1d20:\n        if (pVVar24->db->mallocFailed == '\0') {\n          pVVar24->aOp[iVar6].p2 = iVar31;\n          uVar18 = (uint)pWVar21->eStart;\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar31;\n          uVar18 = (uint)pWVar21->eStart;\n        }\n      }\n    }" if (parenthesized_expression "(pWVar21->eStart == 'S')" ( (binary_expression "pWVar21->eStart == 'S'" (field_expression "pWVar21->eStart" identifier -> field_identifier) == (char_literal "'S'" ' character ')) )) (compound_statement "{\n      iVar6 = (*pcVar22)(pVVar24,0x2f,iVar4,0,1);\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(pParse,pWVar21,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(pParse,pWVar21,regGosub,addrGosub);\n      (*pcVar22)(pVVar24,5,pWVar21->iEphCsr,pVVar24->nOp + 2,0);\n      (*pcVar22)(pVVar24,0xb,0,iVar28,0);\n      uVar18 = (uint)pWVar21->eStart;\n      if (uVar18 == 0x53) {\n        iVar31 = pVVar24->nOp;\n        if (iVar6 < 0) {\n          iVar6 = iVar31 + -1;\n        }\n        goto LAB_000c1d20;\n      }\n    }" { (expression_statement "iVar6 = (*pcVar22)(pVVar24,0x2f,iVar4,0,1);" (assignment_expression "iVar6 = (*pcVar22)(pVVar24,0x2f,iVar4,0,1)" identifier = (call_expression "(*pcVar22)(pVVar24,0x2f,iVar4,0,1)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0x2f,iVar4,0,1)" ( identifier , number_literal , identifier , number_literal , number_literal )))) ;) (expression_statement "(*(code *)(PTR_LAB_0015b710 + -0x2764))(pParse,pWVar21,0);" (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x2764))(pParse,pWVar21,0)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x2764))" ( (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x2764)" * (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2764)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2764)" ( (binary_expression "PTR_LAB_0015b710 + -0x2764" identifier + number_literal) )))) )) (argument_list "(pParse,pWVar21,0)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(*(code *)(PTR_LAB_0015b710 + -0x2524))(pParse,pWVar21,regGosub,addrGosub);" (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x2524))(pParse,pWVar21,regGosub,addrGosub)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x2524))" ( (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x2524)" * (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2524)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2524)" ( (binary_expression "PTR_LAB_0015b710 + -0x2524" identifier + number_literal) )))) )) (argument_list "(pParse,pWVar21,regGosub,addrGosub)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*pcVar22)(pVVar24,5,pWVar21->iEphCsr,pVVar24->nOp + 2,0);" (call_expression "(*pcVar22)(pVVar24,5,pWVar21->iEphCsr,pVVar24->nOp + 2,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,5,pWVar21->iEphCsr,pVVar24->nOp + 2,0)" ( identifier , number_literal , (field_expression "pWVar21->iEphCsr" identifier -> field_identifier) , (binary_expression "pVVar24->nOp + 2" (field_expression "pVVar24->nOp" identifier -> field_identifier) + number_literal) , number_literal ))) ;) (expression_statement "(*pcVar22)(pVVar24,0xb,0,iVar28,0);" (call_expression "(*pcVar22)(pVVar24,0xb,0,iVar28,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0xb,0,iVar28,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) (expression_statement "uVar18 = (uint)pWVar21->eStart;" (assignment_expression "uVar18 = (uint)pWVar21->eStart" identifier = (cast_expression "(uint)pWVar21->eStart" ( (type_descriptor "uint" type_identifier) ) (field_expression "pWVar21->eStart" identifier -> field_identifier))) ;) (if_statement "if (uVar18 == 0x53) {\n        iVar31 = pVVar24->nOp;\n        if (iVar6 < 0) {\n          iVar6 = iVar31 + -1;\n        }\n        goto LAB_000c1d20;\n      }" if (parenthesized_expression "(uVar18 == 0x53)" ( (binary_expression "uVar18 == 0x53" identifier == number_literal) )) (compound_statement "{\n        iVar31 = pVVar24->nOp;\n        if (iVar6 < 0) {\n          iVar6 = iVar31 + -1;\n        }\n        goto LAB_000c1d20;\n      }" { (expression_statement "iVar31 = pVVar24->nOp;" (assignment_expression "iVar31 = pVVar24->nOp" identifier = (field_expression "pVVar24->nOp" identifier -> field_identifier)) ;) (if_statement "if (iVar6 < 0) {\n          iVar6 = iVar31 + -1;\n        }" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (compound_statement "{\n          iVar6 = iVar31 + -1;\n        }" { (expression_statement "iVar6 = iVar31 + -1;" (assignment_expression "iVar6 = iVar31 + -1" identifier = (binary_expression "iVar31 + -1" identifier + number_literal)) ;) })) (goto_statement "goto LAB_000c1d20;" goto statement_identifier ;) })) }) (else_clause "else {\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(pParse,pWVar21,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(pParse,pWVar21,regGosub,addrGosub);\n      (*pcVar22)(pVVar24,5,pWVar21->iEphCsr,pVVar24->nOp + 2,0);\n      (*pcVar22)(pVVar24,0xb,0,iVar28,0);\n      uVar18 = (uint)pWVar21->eStart;\n      if (uVar18 == 0x53) {\n        iVar31 = pVVar24->nOp;\n        iVar6 = 0;\nLAB_000c1d20:\n        if (pVVar24->db->mallocFailed == '\0') {\n          pVVar24->aOp[iVar6].p2 = iVar31;\n          uVar18 = (uint)pWVar21->eStart;\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar31;\n          uVar18 = (uint)pWVar21->eStart;\n        }\n      }\n    }" else (compound_statement "{\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(pParse,pWVar21,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(pParse,pWVar21,regGosub,addrGosub);\n      (*pcVar22)(pVVar24,5,pWVar21->iEphCsr,pVVar24->nOp + 2,0);\n      (*pcVar22)(pVVar24,0xb,0,iVar28,0);\n      uVar18 = (uint)pWVar21->eStart;\n      if (uVar18 == 0x53) {\n        iVar31 = pVVar24->nOp;\n        iVar6 = 0;\nLAB_000c1d20:\n        if (pVVar24->db->mallocFailed == '\0') {\n          pVVar24->aOp[iVar6].p2 = iVar31;\n          uVar18 = (uint)pWVar21->eStart;\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar31;\n          uVar18 = (uint)pWVar21->eStart;\n        }\n      }\n    }" { (expression_statement "(*(code *)(PTR_LAB_0015b710 + -0x2764))(pParse,pWVar21,0);" (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x2764))(pParse,pWVar21,0)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x2764))" ( (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x2764)" * (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2764)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2764)" ( (binary_expression "PTR_LAB_0015b710 + -0x2764" identifier + number_literal) )))) )) (argument_list "(pParse,pWVar21,0)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(*(code *)(PTR_LAB_0015b710 + -0x2524))(pParse,pWVar21,regGosub,addrGosub);" (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x2524))(pParse,pWVar21,regGosub,addrGosub)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x2524))" ( (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x2524)" * (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2524)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2524)" ( (binary_expression "PTR_LAB_0015b710 + -0x2524" identifier + number_literal) )))) )) (argument_list "(pParse,pWVar21,regGosub,addrGosub)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*pcVar22)(pVVar24,5,pWVar21->iEphCsr,pVVar24->nOp + 2,0);" (call_expression "(*pcVar22)(pVVar24,5,pWVar21->iEphCsr,pVVar24->nOp + 2,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,5,pWVar21->iEphCsr,pVVar24->nOp + 2,0)" ( identifier , number_literal , (field_expression "pWVar21->iEphCsr" identifier -> field_identifier) , (binary_expression "pVVar24->nOp + 2" (field_expression "pVVar24->nOp" identifier -> field_identifier) + number_literal) , number_literal ))) ;) (expression_statement "(*pcVar22)(pVVar24,0xb,0,iVar28,0);" (call_expression "(*pcVar22)(pVVar24,0xb,0,iVar28,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0xb,0,iVar28,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) (expression_statement "uVar18 = (uint)pWVar21->eStart;" (assignment_expression "uVar18 = (uint)pWVar21->eStart" identifier = (cast_expression "(uint)pWVar21->eStart" ( (type_descriptor "uint" type_identifier) ) (field_expression "pWVar21->eStart" identifier -> field_identifier))) ;) (if_statement "if (uVar18 == 0x53) {\n        iVar31 = pVVar24->nOp;\n        iVar6 = 0;\nLAB_000c1d20:\n        if (pVVar24->db->mallocFailed == '\0') {\n          pVVar24->aOp[iVar6].p2 = iVar31;\n          uVar18 = (uint)pWVar21->eStart;\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar31;\n          uVar18 = (uint)pWVar21->eStart;\n        }\n      }" if (parenthesized_expression "(uVar18 == 0x53)" ( (binary_expression "uVar18 == 0x53" identifier == number_literal) )) (compound_statement "{\n        iVar31 = pVVar24->nOp;\n        iVar6 = 0;\nLAB_000c1d20:\n        if (pVVar24->db->mallocFailed == '\0') {\n          pVVar24->aOp[iVar6].p2 = iVar31;\n          uVar18 = (uint)pWVar21->eStart;\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar31;\n          uVar18 = (uint)pWVar21->eStart;\n        }\n      }" { (expression_statement "iVar31 = pVVar24->nOp;" (assignment_expression "iVar31 = pVVar24->nOp" identifier = (field_expression "pVVar24->nOp" identifier -> field_identifier)) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000c1d20:\n        if (pVVar24->db->mallocFailed == '\0') {\n          pVVar24->aOp[iVar6].p2 = iVar31;\n          uVar18 = (uint)pWVar21->eStart;\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar31;\n          uVar18 = (uint)pWVar21->eStart;\n        }" statement_identifier : (if_statement "if (pVVar24->db->mallocFailed == '\0') {\n          pVVar24->aOp[iVar6].p2 = iVar31;\n          uVar18 = (uint)pWVar21->eStart;\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar31;\n          uVar18 = (uint)pWVar21->eStart;\n        }" if (parenthesized_expression "(pVVar24->db->mallocFailed == '\0')" ( (binary_expression "pVVar24->db->mallocFailed == '\0'" (field_expression "pVVar24->db->mallocFailed" (field_expression "pVVar24->db" identifier -> field_identifier) -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          pVVar24->aOp[iVar6].p2 = iVar31;\n          uVar18 = (uint)pWVar21->eStart;\n        }" { (expression_statement "pVVar24->aOp[iVar6].p2 = iVar31;" (assignment_expression "pVVar24->aOp[iVar6].p2 = iVar31" (field_expression "pVVar24->aOp[iVar6].p2" (subscript_expression "pVVar24->aOp[iVar6]" (field_expression "pVVar24->aOp" identifier -> field_identifier) [ identifier ]) . field_identifier) = identifier) ;) (expression_statement "uVar18 = (uint)pWVar21->eStart;" (assignment_expression "uVar18 = (uint)pWVar21->eStart" identifier = (cast_expression "(uint)pWVar21->eStart" ( (type_descriptor "uint" type_identifier) ) (field_expression "pWVar21->eStart" identifier -> field_identifier))) ;) }) (else_clause "else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar31;\n          uVar18 = (uint)pWVar21->eStart;\n        }" else (compound_statement "{\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar31;\n          uVar18 = (uint)pWVar21->eStart;\n        }" { (expression_statement "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar31;" (assignment_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar31" (pointer_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c)" * (cast_expression "(int *)(PTR_DAT_0015b5d8 + -0x450c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x450c)" ( (binary_expression "PTR_DAT_0015b5d8 + -0x450c" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar18 = (uint)pWVar21->eStart;" (assignment_expression "uVar18 = (uint)pWVar21->eStart" identifier = (cast_expression "(uint)pWVar21->eStart" ( (type_descriptor "uint" type_identifier) ) (field_expression "pWVar21->eStart" identifier -> field_identifier))) ;) })))) })) }))) (if_statement "if ((uVar18 - 0x52 < 2) || (uVar18 == 0x55)) {\n      iVar6 = pParse->nLabel + -1;\n      pParse->nLabel = iVar6;\n      uVar16 = pWVar21->eStart;\n      if (uVar16 == 'U') {\n        (*pcVar22)(pVVar24,0x2f,iVar4,iVar6,1);\n        uVar16 = pWVar21->eStart;\n      }\n      if (uVar16 == 'S') {\n        (*pcVar22)(pVVar24,5,iVar25,pVVar24->nOp + 2,0);\n        (*pcVar22)(pVVar24,0xb,0,iVar6,0);\n      }\n      else {\n        (*pcVar22)(pVVar24,5,iVar25,pVVar24->nOp + 1,0);\n      }\n      (*pcVar29)(pParse,pWVar21,iVar25,1,uVar7,regSize);\n      (*pcVar32)(pVVar24,iVar6);\n    }" if (parenthesized_expression "((uVar18 - 0x52 < 2) || (uVar18 == 0x55))" ( (binary_expression "(uVar18 - 0x52 < 2) || (uVar18 == 0x55)" (parenthesized_expression "(uVar18 - 0x52 < 2)" ( (binary_expression "uVar18 - 0x52 < 2" (binary_expression "uVar18 - 0x52" identifier - number_literal) < number_literal) )) || (parenthesized_expression "(uVar18 == 0x55)" ( (binary_expression "uVar18 == 0x55" identifier == number_literal) ))) )) (compound_statement "{\n      iVar6 = pParse->nLabel + -1;\n      pParse->nLabel = iVar6;\n      uVar16 = pWVar21->eStart;\n      if (uVar16 == 'U') {\n        (*pcVar22)(pVVar24,0x2f,iVar4,iVar6,1);\n        uVar16 = pWVar21->eStart;\n      }\n      if (uVar16 == 'S') {\n        (*pcVar22)(pVVar24,5,iVar25,pVVar24->nOp + 2,0);\n        (*pcVar22)(pVVar24,0xb,0,iVar6,0);\n      }\n      else {\n        (*pcVar22)(pVVar24,5,iVar25,pVVar24->nOp + 1,0);\n      }\n      (*pcVar29)(pParse,pWVar21,iVar25,1,uVar7,regSize);\n      (*pcVar32)(pVVar24,iVar6);\n    }" { (expression_statement "iVar6 = pParse->nLabel + -1;" (assignment_expression "iVar6 = pParse->nLabel + -1" identifier = (binary_expression "pParse->nLabel + -1" (field_expression "pParse->nLabel" identifier -> field_identifier) + number_literal)) ;) (expression_statement "pParse->nLabel = iVar6;" (assignment_expression "pParse->nLabel = iVar6" (field_expression "pParse->nLabel" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar16 = pWVar21->eStart;" (assignment_expression "uVar16 = pWVar21->eStart" identifier = (field_expression "pWVar21->eStart" identifier -> field_identifier)) ;) (if_statement "if (uVar16 == 'U') {\n        (*pcVar22)(pVVar24,0x2f,iVar4,iVar6,1);\n        uVar16 = pWVar21->eStart;\n      }" if (parenthesized_expression "(uVar16 == 'U')" ( (binary_expression "uVar16 == 'U'" identifier == (char_literal "'U'" ' character ')) )) (compound_statement "{\n        (*pcVar22)(pVVar24,0x2f,iVar4,iVar6,1);\n        uVar16 = pWVar21->eStart;\n      }" { (expression_statement "(*pcVar22)(pVVar24,0x2f,iVar4,iVar6,1);" (call_expression "(*pcVar22)(pVVar24,0x2f,iVar4,iVar6,1)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0x2f,iVar4,iVar6,1)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "uVar16 = pWVar21->eStart;" (assignment_expression "uVar16 = pWVar21->eStart" identifier = (field_expression "pWVar21->eStart" identifier -> field_identifier)) ;) })) (if_statement "if (uVar16 == 'S') {\n        (*pcVar22)(pVVar24,5,iVar25,pVVar24->nOp + 2,0);\n        (*pcVar22)(pVVar24,0xb,0,iVar6,0);\n      }\n      else {\n        (*pcVar22)(pVVar24,5,iVar25,pVVar24->nOp + 1,0);\n      }" if (parenthesized_expression "(uVar16 == 'S')" ( (binary_expression "uVar16 == 'S'" identifier == (char_literal "'S'" ' character ')) )) (compound_statement "{\n        (*pcVar22)(pVVar24,5,iVar25,pVVar24->nOp + 2,0);\n        (*pcVar22)(pVVar24,0xb,0,iVar6,0);\n      }" { (expression_statement "(*pcVar22)(pVVar24,5,iVar25,pVVar24->nOp + 2,0);" (call_expression "(*pcVar22)(pVVar24,5,iVar25,pVVar24->nOp + 2,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,5,iVar25,pVVar24->nOp + 2,0)" ( identifier , number_literal , identifier , (binary_expression "pVVar24->nOp + 2" (field_expression "pVVar24->nOp" identifier -> field_identifier) + number_literal) , number_literal ))) ;) (expression_statement "(*pcVar22)(pVVar24,0xb,0,iVar6,0);" (call_expression "(*pcVar22)(pVVar24,0xb,0,iVar6,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0xb,0,iVar6,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) }) (else_clause "else {\n        (*pcVar22)(pVVar24,5,iVar25,pVVar24->nOp + 1,0);\n      }" else (compound_statement "{\n        (*pcVar22)(pVVar24,5,iVar25,pVVar24->nOp + 1,0);\n      }" { (expression_statement "(*pcVar22)(pVVar24,5,iVar25,pVVar24->nOp + 1,0);" (call_expression "(*pcVar22)(pVVar24,5,iVar25,pVVar24->nOp + 1,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,5,iVar25,pVVar24->nOp + 1,0)" ( identifier , number_literal , identifier , (binary_expression "pVVar24->nOp + 1" (field_expression "pVVar24->nOp" identifier -> field_identifier) + number_literal) , number_literal ))) ;) }))) (expression_statement "(*pcVar29)(pParse,pWVar21,iVar25,1,uVar7,regSize);" (call_expression "(*pcVar29)(pParse,pWVar21,iVar25,1,uVar7,regSize)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(pParse,pWVar21,iVar25,1,uVar7,regSize)" ( identifier , identifier , identifier , number_literal , identifier , identifier ))) ;) (expression_statement "(*pcVar32)(pVVar24,iVar6);" (call_expression "(*pcVar32)(pVVar24,iVar6)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(pVVar24,iVar6)" ( identifier , identifier ))) ;) })) (if_statement "if (pWVar21->eEnd == 'S') {\n      iVar4 = pVVar24->nOp;\n      if (iStack_50 < 0) {\n        iStack_50 = iVar4 + -1;\n      }\n      if (pVVar24->db->mallocFailed == '\0') {\n        pVVar24->aOp[iStack_50].p2 = iVar4;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4;\n      }\n    }" if (parenthesized_expression "(pWVar21->eEnd == 'S')" ( (binary_expression "pWVar21->eEnd == 'S'" (field_expression "pWVar21->eEnd" identifier -> field_identifier) == (char_literal "'S'" ' character ')) )) (compound_statement "{\n      iVar4 = pVVar24->nOp;\n      if (iStack_50 < 0) {\n        iStack_50 = iVar4 + -1;\n      }\n      if (pVVar24->db->mallocFailed == '\0') {\n        pVVar24->aOp[iStack_50].p2 = iVar4;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4;\n      }\n    }" { (expression_statement "iVar4 = pVVar24->nOp;" (assignment_expression "iVar4 = pVVar24->nOp" identifier = (field_expression "pVVar24->nOp" identifier -> field_identifier)) ;) (if_statement "if (iStack_50 < 0) {\n        iStack_50 = iVar4 + -1;\n      }" if (parenthesized_expression "(iStack_50 < 0)" ( (binary_expression "iStack_50 < 0" identifier < number_literal) )) (compound_statement "{\n        iStack_50 = iVar4 + -1;\n      }" { (expression_statement "iStack_50 = iVar4 + -1;" (assignment_expression "iStack_50 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;) })) (if_statement "if (pVVar24->db->mallocFailed == '\0') {\n        pVVar24->aOp[iStack_50].p2 = iVar4;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4;\n      }" if (parenthesized_expression "(pVVar24->db->mallocFailed == '\0')" ( (binary_expression "pVVar24->db->mallocFailed == '\0'" (field_expression "pVVar24->db->mallocFailed" (field_expression "pVVar24->db" identifier -> field_identifier) -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pVVar24->aOp[iStack_50].p2 = iVar4;\n      }" { (expression_statement "pVVar24->aOp[iStack_50].p2 = iVar4;" (assignment_expression "pVVar24->aOp[iStack_50].p2 = iVar4" (field_expression "pVVar24->aOp[iStack_50].p2" (subscript_expression "pVVar24->aOp[iStack_50]" (field_expression "pVVar24->aOp" identifier -> field_identifier) [ identifier ]) . field_identifier) = identifier) ;) }) (else_clause "else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4;\n      }" else (compound_statement "{\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4;\n      }" { (expression_statement "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4;" (assignment_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4" (pointer_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c)" * (cast_expression "(int *)(PTR_DAT_0015b5d8 + -0x450c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x450c)" ( (binary_expression "PTR_DAT_0015b5d8 + -0x450c" identifier + number_literal) )))) = identifier) ;) }))) })) (expression_statement "(*pcVar22)(pVVar24,0xb,0,iVar11,0);" (call_expression "(*pcVar22)(pVVar24,0xb,0,iVar11,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0xb,0,iVar11,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) (expression_statement "(*pcVar32)(pVVar24,iVar28);" (call_expression "(*pcVar32)(pVVar24,iVar28)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(pVVar24,iVar28)" ( identifier , identifier ))) ;) (expression_statement "(*pcVar22)(pVVar24,0x8a,pWVar21->iEphCsr,0,0);" (call_expression "(*pcVar22)(pVVar24,0x8a,pWVar21->iEphCsr,0,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0x8a,pWVar21->iEphCsr,0,0)" ( identifier , number_literal , (field_expression "pWVar21->iEphCsr" identifier -> field_identifier) , number_literal , number_literal ))) ;) }) (else_clause "else {\n    if ((uVar18 & 0xffff00) != 0x525700) {\nLAB_000c08b4:\n      pWVar26 = pWVar21;\n      do {\n        if (((((pWVar26->pFunc->funcFlags & 0x20000) != 0) ||\n             (pcVar3 = pWVar26->pFunc->zName, pcVar3 == PTR_DAT_0015b694 + -0x7df4)) ||\n            (pcVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((pcVar3 == PTR_DAT_0015b694 + -0x7e08 || (pcVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        pWVar26 = pWVar26->pNextWin;\n      } while (pWVar26 != (Window *)0x0);\n      pParse_00 = (Parse *)pParse->pVdbe;\n      if (pParse_00 == (Parse *)0x0) {\n        pParse_00 = (Parse *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse);\n      }\n      pEVar17 = pWVar21->pPartition;\n      iVar25 = pParse->nMem + 1;\n      iVar4 = p->pSrc->a[0].iCursor;\n      iVar28 = (int)(p->pSrc->a[0].pTab)->nCol;\n      iVar5 = iVar28 + iVar25;\n      iVar6 = iVar28 + 2 + pParse->nMem;\n      if (pWVar21->eEnd == 'W') {\n        pParse->nMem = iVar6;\n        pEVar27 = (ExprList *)0x0;\n        if (0 < iVar28) goto LAB_000c0980;\n        if (pEVar17 != (ExprList *)0x0) {\n          iStack_50 = pEVar17->nExpr;\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }\n      else {\n        pEVar27 = pWVar21->pOrderBy;\n        pParse->nMem = iVar6;\n        if (iVar28 < 1) {\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar6 = 0;\n          do {\n            iVar31 = iVar6 + 1;\n            (*pcVar22)(pParse_00,0x5a,iVar4,iVar6,iVar25 + iVar6);\n            iVar6 = iVar31;\n          } while (iVar31 < iVar28);\n        }\n        puVar2 = PTR_LAB_0015b714;\n        if (pEVar17 == (ExprList *)0x0) {\n          if (pEVar27 == (ExprList *)0x0) {\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar4 = pEVar27->nExpr;\n          puStack_60 = (undefined1 *)iVar4;\n          if (pWVar21->eType == 'V') {\n            puVar19 = (undefined1 *)0x0;\n            iVar6 = pWVar21->regPart;\n            iStack_50 = iVar25 + pWVar21->nBufferCol;\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          puVar8 = (undefined1 *)0x0;\n          pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R');\n          pTVar20 = pParse_00->aTableLock;\n        }\n        else {\n          iStack_50 = pEVar17->nExpr;\n          if (pEVar27 == (ExprList *)0x0) {\nLAB_000c09d4:\n            iVar4 = pWVar21->nBufferCol;\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar4 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar4,pWVar21->regPart,iStack_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pParse_00,uVar7,0xfffffff7);\n            puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar32)(pParse,pWVar21,1);\n            puStack_60 = (undefined1 *)iStack_50;\n          }\n          else {\n            iVar6 = pWVar21->nBufferCol;\n            iVar4 = pEVar27->nExpr;\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar6 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar6,pWVar21->regPart,iStack_50);\n            pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);\n            puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar6 + 2,0,iVar6 + 2);\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar32)(pParse,pWVar21,1);\n            puVar19 = (undefined1 *)(*pcVar22)(pParse_00,0xb,0,0,0);\n            iVar28 = pWVar21->nBufferCol;\n            iVar6 = pWVar21->regPart;\n            if (puVar8 != (undefined1 *)0x0) {\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar8 < 0) {\n                puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }\n            puStack_60 = (undefined1 *)(iStack_50 + iVar4);\n            if (pWVar21->eType == 'V') {\n              iVar6 = iStack_50 + iVar6;\n              iStack_50 = iVar25 + iVar28 + iStack_50;\nLAB_000c1e74:\n              pcStack_4c = (code *)(puVar2 + -0x7fc4);\n              uVar7 = (*pcStack_4c)(pParse,pEVar27,0,0);\n              iVar4 = (*pcVar22)(pParse_00,0x57,iStack_50,iVar6,iVar4);\n              (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);\n              puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);\n            }\n            else {\n              puVar8 = (undefined1 *)0x0;\n            }\n            (*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R');\n            if (puVar19 != (undefined1 *)0x0) {\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar19 < 0) {\n                puVar19 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar19].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }\n          }\n          pTVar20 = pParse_00->aTableLock;\n        }\n        (*pcVar22)(pParse_00,0x24,pWVar21->iEphCsr,(undefined1 *)((int)&pTVar20->iDb + 3),0);\n        (*pcVar22)(pParse_00,0xc,regGosub,addrGosub,0);\n        (*pcVar22)(pParse_00,5,pWVar21->iEphCsr,\n                   (undefined1 *)((int)&pParse_00->aTableLock[-1].zLockName + 3),0);\n        (*pcVar22)(pParse_00,0x8a,pWVar21->iEphCsr,0,0);\n        (*pcVar22)(pParse_00,0x4e,iVar25 + pWVar21->nBufferCol,pWVar21->regPart,(int)puStack_60 + -1\n                  );\n        if (puVar8 != (undefined1 *)0x0) {\n          pTVar20 = pParse_00->aTableLock;\n          if ((int)puVar8 < 0) {\n            puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n          }\n          if (pParse_00->db->mallocFailed == '\0') {\n            ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;\n          }\n          else {\n            *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n          }\n        }\n      }\nLAB_000c0b50:\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(pParse,pWVar21,0xffffffff,0,iVar25,0);\n      if (pWVar21->nBufferCol < 1) {\n        (*pcVar22)(pParse_00,0x4b,0,iVar5,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pParse_00,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }\n      else {\n        (*pcVar22)(pParse_00,0x66,iVar25,pWVar21->nBufferCol,iVar5);\n      }\n      (*pcVar22)(pParse_00,0x79,pWVar21->iEphCsr,iVar5 + 1,0);\n      (*pcVar22)(pParse_00,0x7a,pWVar21->iEphCsr,iVar5,iVar5 + 1);\n      (*(code *)(PTR_LAB_0015b710 + -0x18cc))(pWInfo);\n      (*pcVar32)(pParse,pWVar21,1);\n      (*pcVar22)(pParse_00,0x24,pWVar21->iEphCsr,\n                 (undefined1 *)((int)&pParse_00->aTableLock->iDb + 3),0);\n      (*pcVar22)(pParse_00,0xc,regGosub,addrGosub,0);\n      puVar19 = &DAT_00000005;\n      iVar5 = pWVar21->iEphCsr;\n      (*pcVar22)();\n      goto LAB_000c0f44;\n    }\nLAB_000c0c60:\n    pVVar24 = pParse->pVdbe;\n    if (pVVar24 == (Vdbe *)0x0) {\n      pVVar24 = (Vdbe *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse);\n      pEVar17 = pWVar21->pOrderBy;\n      pEStack_48 = pWVar21->pPartition;\n      if (pEVar17 != (ExprList *)0x0) goto LAB_000c0c7c;\nLAB_000c1450:\n      iStack_58 = 0;\n      bVar1 = false;\n    }\n    else {\n      pEStack_48 = pWVar21->pPartition;\n      pEVar17 = pWVar21->pOrderBy;\n      if (pEVar17 == (ExprList *)0x0) goto LAB_000c1450;\nLAB_000c0c7c:\n      iStack_58 = pEVar17->nExpr;\n      uVar9._0_1_ = pWVar21->eType;\n      uVar9._1_1_ = pWVar21->eStart;\n      uVar9._2_1_ = pWVar21->eEnd;\n      uVar9._3_1_ = pWVar21->field_0xf;\n      bVar1 = (uVar9 & 0xffff00) == 0x525700;\n    }\n    puVar2 = PTR_LAB_0015b714;\n    iVar4 = pParse->nMem;\n    iVar28 = pParse->nTab;\n    iVar6 = pParse->nLabel;\n    iVar5 = iVar4 + iStack_58;\n    iVar31 = iVar5 + 2;\n    iVar25 = iVar6 + -2;\n    pParse->nTab = iVar28 + 1;\n    iVar5 = iVar5 + 1;\n    pParse->nLabel = iVar25;\n    pParse->nMem = iVar31;\n    iVar6 = iVar6 + -1;\n    (*(code *)(puVar2 + -0x7e94))(pParse,&p->pSrc,p->pWin,pWInfo,iVar5,iVar25,&regSize);\n    pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    puStack_60 = (undefined1 *)(*pcVar22)(pVVar24,0xb,0,0,0);\n    pcVar32 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar32)(pVVar24,iVar25);\n    (*pcVar22)(pVVar24,0x11,0,pVVar24->nOp + 2,0);\n    (*pcVar22)(pVVar24,0x6f,iVar28,pWVar21->iEphCsr,0);\n    uVar7 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(pParse,pWVar21);\n    (*pcVar22)(pVVar24,0x46,0,iVar31,0);\n    (*pcVar22)(pVVar24,0x24,iVar28,iVar6,0);\n    (*pcVar22)(pVVar24,0x24,pWVar21->iEphCsr,iVar6,0);\n    if (bVar1) {\n      iVar25 = pVVar24->nOp;\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(pParse,pWVar21,iVar28,0,uVar7,regSize);\n      (*pcVar22)(pVVar24,5,iVar28,iVar25,0);\n      (*pcVar22)(pVVar24,0x24,iVar28,iVar6,0);\n      iStack_50 = pVVar24->nOp;\n      if (pEVar17 != (ExprList *)0x0) goto LAB_000c0e28;\n      pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n    }\n    else {\n      iStack_50 = pVVar24->nOp;\n      if (pEVar17 == (ExprList *)0x0) {\n        pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        uVar16 = pWVar21->eStart;\n        uVar10 = uVar7;\n        if (pWVar21->eEnd == 'R') {\n          if (pWVar21->eType == 'V') {\nLAB_000c1544:\n            iVar25 = pWVar21->nBufferCol;\n            if (pEStack_48 == (ExprList *)0x0) {\n              iVar11 = 0;\n            }\n            else {\n              iVar11 = pEStack_48->nExpr;\n              iVar25 = iVar25 + iVar11;\n            }\n            iVar11 = iVar11 + pWVar21->regPart;\n            uVar12 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar4 = iVar4 + 1;\n            if (0 < iStack_58) {\n              iVar13 = iStack_58 + iVar25;\n              iVar14 = iVar4 - iVar25;\n              do {\n                (*pcVar22)(pVVar24,0x5a,iVar28,iVar25,iVar14 + iVar25);\n                iVar25 = iVar25 + 1;\n              } while (iVar25 != iVar13);\n            }\n            iVar25 = (*pcVar22)(pVVar24,0x57,iVar4,iVar11,iStack_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pVVar24,uVar12,0xfffffff7);\n            iVar25 = (*pcVar22)(pVVar24,0x10,iVar25 + 2,0,iVar25 + 2);\n            (*pcVar22)(pVVar24,0x4e,iVar4,iVar11,iStack_58 + -1);\n            iVar4 = regSize;\n            if (uVar16 != 'R') {\n              uVar10 = 0;\n              iVar4 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (uVar16 == 'R') goto LAB_000c1494;\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,0,0);\n        }\n        else if (uVar16 == 'R') {\n          if (pWVar21->eType == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar25 = 0;\n          iVar4 = regSize;\nLAB_000c14a0:\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,uVar10,iVar4);\n          if (iVar25 != 0) {\n            iVar4 = pVVar24->nOp;\n            if (iVar25 < 0) {\n              iVar25 = iVar4 + -1;\n            }\n            if (pVVar24->db->mallocFailed == '\0') {\n              pVVar24->aOp[iVar25].p2 = iVar4;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4;\n            }\n          }\n        }\n        else {\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(pParse,pWVar21,iVar28,0,uVar7,regSize);\n    }\nLAB_000c0e5c:\n    (*pcVar22)(pVVar24,0x53,iVar31,1,0);\n    (*pcVar22)(pVVar24,5,iVar28,iStack_50,0);\n    (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,0,0);\n    (*pcVar32)(pVVar24,iVar6);\n    (*pcVar22)(pVVar24,0x8a,pWVar21->iEphCsr,0,0);\n  }" else (compound_statement "{\n    if ((uVar18 & 0xffff00) != 0x525700) {\nLAB_000c08b4:\n      pWVar26 = pWVar21;\n      do {\n        if (((((pWVar26->pFunc->funcFlags & 0x20000) != 0) ||\n             (pcVar3 = pWVar26->pFunc->zName, pcVar3 == PTR_DAT_0015b694 + -0x7df4)) ||\n            (pcVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((pcVar3 == PTR_DAT_0015b694 + -0x7e08 || (pcVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        pWVar26 = pWVar26->pNextWin;\n      } while (pWVar26 != (Window *)0x0);\n      pParse_00 = (Parse *)pParse->pVdbe;\n      if (pParse_00 == (Parse *)0x0) {\n        pParse_00 = (Parse *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse);\n      }\n      pEVar17 = pWVar21->pPartition;\n      iVar25 = pParse->nMem + 1;\n      iVar4 = p->pSrc->a[0].iCursor;\n      iVar28 = (int)(p->pSrc->a[0].pTab)->nCol;\n      iVar5 = iVar28 + iVar25;\n      iVar6 = iVar28 + 2 + pParse->nMem;\n      if (pWVar21->eEnd == 'W') {\n        pParse->nMem = iVar6;\n        pEVar27 = (ExprList *)0x0;\n        if (0 < iVar28) goto LAB_000c0980;\n        if (pEVar17 != (ExprList *)0x0) {\n          iStack_50 = pEVar17->nExpr;\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }\n      else {\n        pEVar27 = pWVar21->pOrderBy;\n        pParse->nMem = iVar6;\n        if (iVar28 < 1) {\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar6 = 0;\n          do {\n            iVar31 = iVar6 + 1;\n            (*pcVar22)(pParse_00,0x5a,iVar4,iVar6,iVar25 + iVar6);\n            iVar6 = iVar31;\n          } while (iVar31 < iVar28);\n        }\n        puVar2 = PTR_LAB_0015b714;\n        if (pEVar17 == (ExprList *)0x0) {\n          if (pEVar27 == (ExprList *)0x0) {\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar4 = pEVar27->nExpr;\n          puStack_60 = (undefined1 *)iVar4;\n          if (pWVar21->eType == 'V') {\n            puVar19 = (undefined1 *)0x0;\n            iVar6 = pWVar21->regPart;\n            iStack_50 = iVar25 + pWVar21->nBufferCol;\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          puVar8 = (undefined1 *)0x0;\n          pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R');\n          pTVar20 = pParse_00->aTableLock;\n        }\n        else {\n          iStack_50 = pEVar17->nExpr;\n          if (pEVar27 == (ExprList *)0x0) {\nLAB_000c09d4:\n            iVar4 = pWVar21->nBufferCol;\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar4 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar4,pWVar21->regPart,iStack_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pParse_00,uVar7,0xfffffff7);\n            puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar32)(pParse,pWVar21,1);\n            puStack_60 = (undefined1 *)iStack_50;\n          }\n          else {\n            iVar6 = pWVar21->nBufferCol;\n            iVar4 = pEVar27->nExpr;\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar6 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar6,pWVar21->regPart,iStack_50);\n            pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);\n            puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar6 + 2,0,iVar6 + 2);\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar32)(pParse,pWVar21,1);\n            puVar19 = (undefined1 *)(*pcVar22)(pParse_00,0xb,0,0,0);\n            iVar28 = pWVar21->nBufferCol;\n            iVar6 = pWVar21->regPart;\n            if (puVar8 != (undefined1 *)0x0) {\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar8 < 0) {\n                puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }\n            puStack_60 = (undefined1 *)(iStack_50 + iVar4);\n            if (pWVar21->eType == 'V') {\n              iVar6 = iStack_50 + iVar6;\n              iStack_50 = iVar25 + iVar28 + iStack_50;\nLAB_000c1e74:\n              pcStack_4c = (code *)(puVar2 + -0x7fc4);\n              uVar7 = (*pcStack_4c)(pParse,pEVar27,0,0);\n              iVar4 = (*pcVar22)(pParse_00,0x57,iStack_50,iVar6,iVar4);\n              (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);\n              puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);\n            }\n            else {\n              puVar8 = (undefined1 *)0x0;\n            }\n            (*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R');\n            if (puVar19 != (undefined1 *)0x0) {\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar19 < 0) {\n                puVar19 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar19].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }\n          }\n          pTVar20 = pParse_00->aTableLock;\n        }\n        (*pcVar22)(pParse_00,0x24,pWVar21->iEphCsr,(undefined1 *)((int)&pTVar20->iDb + 3),0);\n        (*pcVar22)(pParse_00,0xc,regGosub,addrGosub,0);\n        (*pcVar22)(pParse_00,5,pWVar21->iEphCsr,\n                   (undefined1 *)((int)&pParse_00->aTableLock[-1].zLockName + 3),0);\n        (*pcVar22)(pParse_00,0x8a,pWVar21->iEphCsr,0,0);\n        (*pcVar22)(pParse_00,0x4e,iVar25 + pWVar21->nBufferCol,pWVar21->regPart,(int)puStack_60 + -1\n                  );\n        if (puVar8 != (undefined1 *)0x0) {\n          pTVar20 = pParse_00->aTableLock;\n          if ((int)puVar8 < 0) {\n            puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n          }\n          if (pParse_00->db->mallocFailed == '\0') {\n            ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;\n          }\n          else {\n            *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n          }\n        }\n      }\nLAB_000c0b50:\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(pParse,pWVar21,0xffffffff,0,iVar25,0);\n      if (pWVar21->nBufferCol < 1) {\n        (*pcVar22)(pParse_00,0x4b,0,iVar5,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pParse_00,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }\n      else {\n        (*pcVar22)(pParse_00,0x66,iVar25,pWVar21->nBufferCol,iVar5);\n      }\n      (*pcVar22)(pParse_00,0x79,pWVar21->iEphCsr,iVar5 + 1,0);\n      (*pcVar22)(pParse_00,0x7a,pWVar21->iEphCsr,iVar5,iVar5 + 1);\n      (*(code *)(PTR_LAB_0015b710 + -0x18cc))(pWInfo);\n      (*pcVar32)(pParse,pWVar21,1);\n      (*pcVar22)(pParse_00,0x24,pWVar21->iEphCsr,\n                 (undefined1 *)((int)&pParse_00->aTableLock->iDb + 3),0);\n      (*pcVar22)(pParse_00,0xc,regGosub,addrGosub,0);\n      puVar19 = &DAT_00000005;\n      iVar5 = pWVar21->iEphCsr;\n      (*pcVar22)();\n      goto LAB_000c0f44;\n    }\nLAB_000c0c60:\n    pVVar24 = pParse->pVdbe;\n    if (pVVar24 == (Vdbe *)0x0) {\n      pVVar24 = (Vdbe *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse);\n      pEVar17 = pWVar21->pOrderBy;\n      pEStack_48 = pWVar21->pPartition;\n      if (pEVar17 != (ExprList *)0x0) goto LAB_000c0c7c;\nLAB_000c1450:\n      iStack_58 = 0;\n      bVar1 = false;\n    }\n    else {\n      pEStack_48 = pWVar21->pPartition;\n      pEVar17 = pWVar21->pOrderBy;\n      if (pEVar17 == (ExprList *)0x0) goto LAB_000c1450;\nLAB_000c0c7c:\n      iStack_58 = pEVar17->nExpr;\n      uVar9._0_1_ = pWVar21->eType;\n      uVar9._1_1_ = pWVar21->eStart;\n      uVar9._2_1_ = pWVar21->eEnd;\n      uVar9._3_1_ = pWVar21->field_0xf;\n      bVar1 = (uVar9 & 0xffff00) == 0x525700;\n    }\n    puVar2 = PTR_LAB_0015b714;\n    iVar4 = pParse->nMem;\n    iVar28 = pParse->nTab;\n    iVar6 = pParse->nLabel;\n    iVar5 = iVar4 + iStack_58;\n    iVar31 = iVar5 + 2;\n    iVar25 = iVar6 + -2;\n    pParse->nTab = iVar28 + 1;\n    iVar5 = iVar5 + 1;\n    pParse->nLabel = iVar25;\n    pParse->nMem = iVar31;\n    iVar6 = iVar6 + -1;\n    (*(code *)(puVar2 + -0x7e94))(pParse,&p->pSrc,p->pWin,pWInfo,iVar5,iVar25,&regSize);\n    pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    puStack_60 = (undefined1 *)(*pcVar22)(pVVar24,0xb,0,0,0);\n    pcVar32 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar32)(pVVar24,iVar25);\n    (*pcVar22)(pVVar24,0x11,0,pVVar24->nOp + 2,0);\n    (*pcVar22)(pVVar24,0x6f,iVar28,pWVar21->iEphCsr,0);\n    uVar7 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(pParse,pWVar21);\n    (*pcVar22)(pVVar24,0x46,0,iVar31,0);\n    (*pcVar22)(pVVar24,0x24,iVar28,iVar6,0);\n    (*pcVar22)(pVVar24,0x24,pWVar21->iEphCsr,iVar6,0);\n    if (bVar1) {\n      iVar25 = pVVar24->nOp;\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(pParse,pWVar21,iVar28,0,uVar7,regSize);\n      (*pcVar22)(pVVar24,5,iVar28,iVar25,0);\n      (*pcVar22)(pVVar24,0x24,iVar28,iVar6,0);\n      iStack_50 = pVVar24->nOp;\n      if (pEVar17 != (ExprList *)0x0) goto LAB_000c0e28;\n      pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n    }\n    else {\n      iStack_50 = pVVar24->nOp;\n      if (pEVar17 == (ExprList *)0x0) {\n        pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        uVar16 = pWVar21->eStart;\n        uVar10 = uVar7;\n        if (pWVar21->eEnd == 'R') {\n          if (pWVar21->eType == 'V') {\nLAB_000c1544:\n            iVar25 = pWVar21->nBufferCol;\n            if (pEStack_48 == (ExprList *)0x0) {\n              iVar11 = 0;\n            }\n            else {\n              iVar11 = pEStack_48->nExpr;\n              iVar25 = iVar25 + iVar11;\n            }\n            iVar11 = iVar11 + pWVar21->regPart;\n            uVar12 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar4 = iVar4 + 1;\n            if (0 < iStack_58) {\n              iVar13 = iStack_58 + iVar25;\n              iVar14 = iVar4 - iVar25;\n              do {\n                (*pcVar22)(pVVar24,0x5a,iVar28,iVar25,iVar14 + iVar25);\n                iVar25 = iVar25 + 1;\n              } while (iVar25 != iVar13);\n            }\n            iVar25 = (*pcVar22)(pVVar24,0x57,iVar4,iVar11,iStack_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pVVar24,uVar12,0xfffffff7);\n            iVar25 = (*pcVar22)(pVVar24,0x10,iVar25 + 2,0,iVar25 + 2);\n            (*pcVar22)(pVVar24,0x4e,iVar4,iVar11,iStack_58 + -1);\n            iVar4 = regSize;\n            if (uVar16 != 'R') {\n              uVar10 = 0;\n              iVar4 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (uVar16 == 'R') goto LAB_000c1494;\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,0,0);\n        }\n        else if (uVar16 == 'R') {\n          if (pWVar21->eType == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar25 = 0;\n          iVar4 = regSize;\nLAB_000c14a0:\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,uVar10,iVar4);\n          if (iVar25 != 0) {\n            iVar4 = pVVar24->nOp;\n            if (iVar25 < 0) {\n              iVar25 = iVar4 + -1;\n            }\n            if (pVVar24->db->mallocFailed == '\0') {\n              pVVar24->aOp[iVar25].p2 = iVar4;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4;\n            }\n          }\n        }\n        else {\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(pParse,pWVar21,iVar28,0,uVar7,regSize);\n    }\nLAB_000c0e5c:\n    (*pcVar22)(pVVar24,0x53,iVar31,1,0);\n    (*pcVar22)(pVVar24,5,iVar28,iStack_50,0);\n    (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,0,0);\n    (*pcVar32)(pVVar24,iVar6);\n    (*pcVar22)(pVVar24,0x8a,pWVar21->iEphCsr,0,0);\n  }" { (if_statement "if ((uVar18 & 0xffff00) != 0x525700) {\nLAB_000c08b4:\n      pWVar26 = pWVar21;\n      do {\n        if (((((pWVar26->pFunc->funcFlags & 0x20000) != 0) ||\n             (pcVar3 = pWVar26->pFunc->zName, pcVar3 == PTR_DAT_0015b694 + -0x7df4)) ||\n            (pcVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((pcVar3 == PTR_DAT_0015b694 + -0x7e08 || (pcVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        pWVar26 = pWVar26->pNextWin;\n      } while (pWVar26 != (Window *)0x0);\n      pParse_00 = (Parse *)pParse->pVdbe;\n      if (pParse_00 == (Parse *)0x0) {\n        pParse_00 = (Parse *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse);\n      }\n      pEVar17 = pWVar21->pPartition;\n      iVar25 = pParse->nMem + 1;\n      iVar4 = p->pSrc->a[0].iCursor;\n      iVar28 = (int)(p->pSrc->a[0].pTab)->nCol;\n      iVar5 = iVar28 + iVar25;\n      iVar6 = iVar28 + 2 + pParse->nMem;\n      if (pWVar21->eEnd == 'W') {\n        pParse->nMem = iVar6;\n        pEVar27 = (ExprList *)0x0;\n        if (0 < iVar28) goto LAB_000c0980;\n        if (pEVar17 != (ExprList *)0x0) {\n          iStack_50 = pEVar17->nExpr;\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }\n      else {\n        pEVar27 = pWVar21->pOrderBy;\n        pParse->nMem = iVar6;\n        if (iVar28 < 1) {\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar6 = 0;\n          do {\n            iVar31 = iVar6 + 1;\n            (*pcVar22)(pParse_00,0x5a,iVar4,iVar6,iVar25 + iVar6);\n            iVar6 = iVar31;\n          } while (iVar31 < iVar28);\n        }\n        puVar2 = PTR_LAB_0015b714;\n        if (pEVar17 == (ExprList *)0x0) {\n          if (pEVar27 == (ExprList *)0x0) {\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar4 = pEVar27->nExpr;\n          puStack_60 = (undefined1 *)iVar4;\n          if (pWVar21->eType == 'V') {\n            puVar19 = (undefined1 *)0x0;\n            iVar6 = pWVar21->regPart;\n            iStack_50 = iVar25 + pWVar21->nBufferCol;\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          puVar8 = (undefined1 *)0x0;\n          pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R');\n          pTVar20 = pParse_00->aTableLock;\n        }\n        else {\n          iStack_50 = pEVar17->nExpr;\n          if (pEVar27 == (ExprList *)0x0) {\nLAB_000c09d4:\n            iVar4 = pWVar21->nBufferCol;\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar4 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar4,pWVar21->regPart,iStack_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pParse_00,uVar7,0xfffffff7);\n            puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar32)(pParse,pWVar21,1);\n            puStack_60 = (undefined1 *)iStack_50;\n          }\n          else {\n            iVar6 = pWVar21->nBufferCol;\n            iVar4 = pEVar27->nExpr;\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar6 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar6,pWVar21->regPart,iStack_50);\n            pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);\n            puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar6 + 2,0,iVar6 + 2);\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar32)(pParse,pWVar21,1);\n            puVar19 = (undefined1 *)(*pcVar22)(pParse_00,0xb,0,0,0);\n            iVar28 = pWVar21->nBufferCol;\n            iVar6 = pWVar21->regPart;\n            if (puVar8 != (undefined1 *)0x0) {\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar8 < 0) {\n                puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }\n            puStack_60 = (undefined1 *)(iStack_50 + iVar4);\n            if (pWVar21->eType == 'V') {\n              iVar6 = iStack_50 + iVar6;\n              iStack_50 = iVar25 + iVar28 + iStack_50;\nLAB_000c1e74:\n              pcStack_4c = (code *)(puVar2 + -0x7fc4);\n              uVar7 = (*pcStack_4c)(pParse,pEVar27,0,0);\n              iVar4 = (*pcVar22)(pParse_00,0x57,iStack_50,iVar6,iVar4);\n              (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);\n              puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);\n            }\n            else {\n              puVar8 = (undefined1 *)0x0;\n            }\n            (*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R');\n            if (puVar19 != (undefined1 *)0x0) {\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar19 < 0) {\n                puVar19 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar19].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }\n          }\n          pTVar20 = pParse_00->aTableLock;\n        }\n        (*pcVar22)(pParse_00,0x24,pWVar21->iEphCsr,(undefined1 *)((int)&pTVar20->iDb + 3),0);\n        (*pcVar22)(pParse_00,0xc,regGosub,addrGosub,0);\n        (*pcVar22)(pParse_00,5,pWVar21->iEphCsr,\n                   (undefined1 *)((int)&pParse_00->aTableLock[-1].zLockName + 3),0);\n        (*pcVar22)(pParse_00,0x8a,pWVar21->iEphCsr,0,0);\n        (*pcVar22)(pParse_00,0x4e,iVar25 + pWVar21->nBufferCol,pWVar21->regPart,(int)puStack_60 + -1\n                  );\n        if (puVar8 != (undefined1 *)0x0) {\n          pTVar20 = pParse_00->aTableLock;\n          if ((int)puVar8 < 0) {\n            puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n          }\n          if (pParse_00->db->mallocFailed == '\0') {\n            ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;\n          }\n          else {\n            *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n          }\n        }\n      }\nLAB_000c0b50:\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(pParse,pWVar21,0xffffffff,0,iVar25,0);\n      if (pWVar21->nBufferCol < 1) {\n        (*pcVar22)(pParse_00,0x4b,0,iVar5,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pParse_00,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }\n      else {\n        (*pcVar22)(pParse_00,0x66,iVar25,pWVar21->nBufferCol,iVar5);\n      }\n      (*pcVar22)(pParse_00,0x79,pWVar21->iEphCsr,iVar5 + 1,0);\n      (*pcVar22)(pParse_00,0x7a,pWVar21->iEphCsr,iVar5,iVar5 + 1);\n      (*(code *)(PTR_LAB_0015b710 + -0x18cc))(pWInfo);\n      (*pcVar32)(pParse,pWVar21,1);\n      (*pcVar22)(pParse_00,0x24,pWVar21->iEphCsr,\n                 (undefined1 *)((int)&pParse_00->aTableLock->iDb + 3),0);\n      (*pcVar22)(pParse_00,0xc,regGosub,addrGosub,0);\n      puVar19 = &DAT_00000005;\n      iVar5 = pWVar21->iEphCsr;\n      (*pcVar22)();\n      goto LAB_000c0f44;\n    }" if (parenthesized_expression "((uVar18 & 0xffff00) != 0x525700)" ( (binary_expression "(uVar18 & 0xffff00) != 0x525700" (parenthesized_expression "(uVar18 & 0xffff00)" ( (binary_expression "uVar18 & 0xffff00" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_000c08b4:\n      pWVar26 = pWVar21;\n      do {\n        if (((((pWVar26->pFunc->funcFlags & 0x20000) != 0) ||\n             (pcVar3 = pWVar26->pFunc->zName, pcVar3 == PTR_DAT_0015b694 + -0x7df4)) ||\n            (pcVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((pcVar3 == PTR_DAT_0015b694 + -0x7e08 || (pcVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        pWVar26 = pWVar26->pNextWin;\n      } while (pWVar26 != (Window *)0x0);\n      pParse_00 = (Parse *)pParse->pVdbe;\n      if (pParse_00 == (Parse *)0x0) {\n        pParse_00 = (Parse *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse);\n      }\n      pEVar17 = pWVar21->pPartition;\n      iVar25 = pParse->nMem + 1;\n      iVar4 = p->pSrc->a[0].iCursor;\n      iVar28 = (int)(p->pSrc->a[0].pTab)->nCol;\n      iVar5 = iVar28 + iVar25;\n      iVar6 = iVar28 + 2 + pParse->nMem;\n      if (pWVar21->eEnd == 'W') {\n        pParse->nMem = iVar6;\n        pEVar27 = (ExprList *)0x0;\n        if (0 < iVar28) goto LAB_000c0980;\n        if (pEVar17 != (ExprList *)0x0) {\n          iStack_50 = pEVar17->nExpr;\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }\n      else {\n        pEVar27 = pWVar21->pOrderBy;\n        pParse->nMem = iVar6;\n        if (iVar28 < 1) {\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar6 = 0;\n          do {\n            iVar31 = iVar6 + 1;\n            (*pcVar22)(pParse_00,0x5a,iVar4,iVar6,iVar25 + iVar6);\n            iVar6 = iVar31;\n          } while (iVar31 < iVar28);\n        }\n        puVar2 = PTR_LAB_0015b714;\n        if (pEVar17 == (ExprList *)0x0) {\n          if (pEVar27 == (ExprList *)0x0) {\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar4 = pEVar27->nExpr;\n          puStack_60 = (undefined1 *)iVar4;\n          if (pWVar21->eType == 'V') {\n            puVar19 = (undefined1 *)0x0;\n            iVar6 = pWVar21->regPart;\n            iStack_50 = iVar25 + pWVar21->nBufferCol;\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          puVar8 = (undefined1 *)0x0;\n          pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R');\n          pTVar20 = pParse_00->aTableLock;\n        }\n        else {\n          iStack_50 = pEVar17->nExpr;\n          if (pEVar27 == (ExprList *)0x0) {\nLAB_000c09d4:\n            iVar4 = pWVar21->nBufferCol;\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar4 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar4,pWVar21->regPart,iStack_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pParse_00,uVar7,0xfffffff7);\n            puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar32)(pParse,pWVar21,1);\n            puStack_60 = (undefined1 *)iStack_50;\n          }\n          else {\n            iVar6 = pWVar21->nBufferCol;\n            iVar4 = pEVar27->nExpr;\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar6 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar6,pWVar21->regPart,iStack_50);\n            pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);\n            puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar6 + 2,0,iVar6 + 2);\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar32)(pParse,pWVar21,1);\n            puVar19 = (undefined1 *)(*pcVar22)(pParse_00,0xb,0,0,0);\n            iVar28 = pWVar21->nBufferCol;\n            iVar6 = pWVar21->regPart;\n            if (puVar8 != (undefined1 *)0x0) {\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar8 < 0) {\n                puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }\n            puStack_60 = (undefined1 *)(iStack_50 + iVar4);\n            if (pWVar21->eType == 'V') {\n              iVar6 = iStack_50 + iVar6;\n              iStack_50 = iVar25 + iVar28 + iStack_50;\nLAB_000c1e74:\n              pcStack_4c = (code *)(puVar2 + -0x7fc4);\n              uVar7 = (*pcStack_4c)(pParse,pEVar27,0,0);\n              iVar4 = (*pcVar22)(pParse_00,0x57,iStack_50,iVar6,iVar4);\n              (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);\n              puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);\n            }\n            else {\n              puVar8 = (undefined1 *)0x0;\n            }\n            (*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R');\n            if (puVar19 != (undefined1 *)0x0) {\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar19 < 0) {\n                puVar19 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar19].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }\n          }\n          pTVar20 = pParse_00->aTableLock;\n        }\n        (*pcVar22)(pParse_00,0x24,pWVar21->iEphCsr,(undefined1 *)((int)&pTVar20->iDb + 3),0);\n        (*pcVar22)(pParse_00,0xc,regGosub,addrGosub,0);\n        (*pcVar22)(pParse_00,5,pWVar21->iEphCsr,\n                   (undefined1 *)((int)&pParse_00->aTableLock[-1].zLockName + 3),0);\n        (*pcVar22)(pParse_00,0x8a,pWVar21->iEphCsr,0,0);\n        (*pcVar22)(pParse_00,0x4e,iVar25 + pWVar21->nBufferCol,pWVar21->regPart,(int)puStack_60 + -1\n                  );\n        if (puVar8 != (undefined1 *)0x0) {\n          pTVar20 = pParse_00->aTableLock;\n          if ((int)puVar8 < 0) {\n            puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n          }\n          if (pParse_00->db->mallocFailed == '\0') {\n            ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;\n          }\n          else {\n            *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n          }\n        }\n      }\nLAB_000c0b50:\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(pParse,pWVar21,0xffffffff,0,iVar25,0);\n      if (pWVar21->nBufferCol < 1) {\n        (*pcVar22)(pParse_00,0x4b,0,iVar5,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pParse_00,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }\n      else {\n        (*pcVar22)(pParse_00,0x66,iVar25,pWVar21->nBufferCol,iVar5);\n      }\n      (*pcVar22)(pParse_00,0x79,pWVar21->iEphCsr,iVar5 + 1,0);\n      (*pcVar22)(pParse_00,0x7a,pWVar21->iEphCsr,iVar5,iVar5 + 1);\n      (*(code *)(PTR_LAB_0015b710 + -0x18cc))(pWInfo);\n      (*pcVar32)(pParse,pWVar21,1);\n      (*pcVar22)(pParse_00,0x24,pWVar21->iEphCsr,\n                 (undefined1 *)((int)&pParse_00->aTableLock->iDb + 3),0);\n      (*pcVar22)(pParse_00,0xc,regGosub,addrGosub,0);\n      puVar19 = &DAT_00000005;\n      iVar5 = pWVar21->iEphCsr;\n      (*pcVar22)();\n      goto LAB_000c0f44;\n    }" { (labeled_statement "LAB_000c08b4:\n      pWVar26 = pWVar21;" statement_identifier : (expression_statement "pWVar26 = pWVar21;" (assignment_expression "pWVar26 = pWVar21" identifier = identifier) ;)) (do_statement "do {\n        if (((((pWVar26->pFunc->funcFlags & 0x20000) != 0) ||\n             (pcVar3 = pWVar26->pFunc->zName, pcVar3 == PTR_DAT_0015b694 + -0x7df4)) ||\n            (pcVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((pcVar3 == PTR_DAT_0015b694 + -0x7e08 || (pcVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        pWVar26 = pWVar26->pNextWin;\n      } while (pWVar26 != (Window *)0x0);" do (compound_statement "{\n        if (((((pWVar26->pFunc->funcFlags & 0x20000) != 0) ||\n             (pcVar3 = pWVar26->pFunc->zName, pcVar3 == PTR_DAT_0015b694 + -0x7df4)) ||\n            (pcVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((pcVar3 == PTR_DAT_0015b694 + -0x7e08 || (pcVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        pWVar26 = pWVar26->pNextWin;\n      }" { (if_statement "if (((((pWVar26->pFunc->funcFlags & 0x20000) != 0) ||\n             (pcVar3 = pWVar26->pFunc->zName, pcVar3 == PTR_DAT_0015b694 + -0x7df4)) ||\n            (pcVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((pcVar3 == PTR_DAT_0015b694 + -0x7e08 || (pcVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;" if (parenthesized_expression "(((((pWVar26->pFunc->funcFlags & 0x20000) != 0) ||\n             (pcVar3 = pWVar26->pFunc->zName, pcVar3 == PTR_DAT_0015b694 + -0x7df4)) ||\n            (pcVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((pcVar3 == PTR_DAT_0015b694 + -0x7e08 || (pcVar3 == PTR_DAT_0015b694 + -0x7e0c))))" ( (binary_expression "((((pWVar26->pFunc->funcFlags & 0x20000) != 0) ||\n             (pcVar3 = pWVar26->pFunc->zName, pcVar3 == PTR_DAT_0015b694 + -0x7df4)) ||\n            (pcVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((pcVar3 == PTR_DAT_0015b694 + -0x7e08 || (pcVar3 == PTR_DAT_0015b694 + -0x7e0c)))" (parenthesized_expression "((((pWVar26->pFunc->funcFlags & 0x20000) != 0) ||\n             (pcVar3 = pWVar26->pFunc->zName, pcVar3 == PTR_DAT_0015b694 + -0x7df4)) ||\n            (pcVar3 == PTR_DAT_0015b694 + -0x7e00))" ( (binary_expression "(((pWVar26->pFunc->funcFlags & 0x20000) != 0) ||\n             (pcVar3 = pWVar26->pFunc->zName, pcVar3 == PTR_DAT_0015b694 + -0x7df4)) ||\n            (pcVar3 == PTR_DAT_0015b694 + -0x7e00)" (parenthesized_expression "(((pWVar26->pFunc->funcFlags & 0x20000) != 0) ||\n             (pcVar3 = pWVar26->pFunc->zName, pcVar3 == PTR_DAT_0015b694 + -0x7df4))" ( (binary_expression "((pWVar26->pFunc->funcFlags & 0x20000) != 0) ||\n             (pcVar3 = pWVar26->pFunc->zName, pcVar3 == PTR_DAT_0015b694 + -0x7df4)" (parenthesized_expression "((pWVar26->pFunc->funcFlags & 0x20000) != 0)" ( (binary_expression "(pWVar26->pFunc->funcFlags & 0x20000) != 0" (parenthesized_expression "(pWVar26->pFunc->funcFlags & 0x20000)" ( (binary_expression "pWVar26->pFunc->funcFlags & 0x20000" (field_expression "pWVar26->pFunc->funcFlags" (field_expression "pWVar26->pFunc" identifier -> field_identifier) -> field_identifier) & number_literal) )) != number_literal) )) || (parenthesized_expression "(pcVar3 = pWVar26->pFunc->zName, pcVar3 == PTR_DAT_0015b694 + -0x7df4)" ( (comma_expression "pcVar3 = pWVar26->pFunc->zName, pcVar3 == PTR_DAT_0015b694 + -0x7df4" (assignment_expression "pcVar3 = pWVar26->pFunc->zName" identifier = (field_expression "pWVar26->pFunc->zName" (field_expression "pWVar26->pFunc" identifier -> field_identifier) -> field_identifier)) , (binary_expression "pcVar3 == PTR_DAT_0015b694 + -0x7df4" identifier == (binary_expression "PTR_DAT_0015b694 + -0x7df4" identifier + number_literal))) ))) )) || (parenthesized_expression "(pcVar3 == PTR_DAT_0015b694 + -0x7e00)" ( (binary_expression "pcVar3 == PTR_DAT_0015b694 + -0x7e00" identifier == (binary_expression "PTR_DAT_0015b694 + -0x7e00" identifier + number_literal)) ))) )) || (parenthesized_expression "((pcVar3 == PTR_DAT_0015b694 + -0x7e08 || (pcVar3 == PTR_DAT_0015b694 + -0x7e0c)))" ( (parenthesized_expression "(pcVar3 == PTR_DAT_0015b694 + -0x7e08 || (pcVar3 == PTR_DAT_0015b694 + -0x7e0c))" ( (binary_expression "pcVar3 == PTR_DAT_0015b694 + -0x7e08 || (pcVar3 == PTR_DAT_0015b694 + -0x7e0c)" (binary_expression "pcVar3 == PTR_DAT_0015b694 + -0x7e08" identifier == (binary_expression "PTR_DAT_0015b694 + -0x7e08" identifier + number_literal)) || (parenthesized_expression "(pcVar3 == PTR_DAT_0015b694 + -0x7e0c)" ( (binary_expression "pcVar3 == PTR_DAT_0015b694 + -0x7e0c" identifier == (binary_expression "PTR_DAT_0015b694 + -0x7e0c" identifier + number_literal)) ))) )) ))) )) (goto_statement "goto LAB_000c0c60;" goto statement_identifier ;)) (expression_statement "pWVar26 = pWVar26->pNextWin;" (assignment_expression "pWVar26 = pWVar26->pNextWin" identifier = (field_expression "pWVar26->pNextWin" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(pWVar26 != (Window *)0x0)" ( (binary_expression "pWVar26 != (Window *)0x0" identifier != (cast_expression "(Window *)0x0" ( (type_descriptor "Window *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pParse_00 = (Parse *)pParse->pVdbe;" (assignment_expression "pParse_00 = (Parse *)pParse->pVdbe" identifier = (cast_expression "(Parse *)pParse->pVdbe" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pParse->pVdbe" identifier -> field_identifier))) ;) (if_statement "if (pParse_00 == (Parse *)0x0) {\n        pParse_00 = (Parse *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse);\n      }" if (parenthesized_expression "(pParse_00 == (Parse *)0x0)" ( (binary_expression "pParse_00 == (Parse *)0x0" identifier == (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pParse_00 = (Parse *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse);\n      }" { (expression_statement "pParse_00 = (Parse *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse);" (assignment_expression "pParse_00 = (Parse *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse)" identifier = (cast_expression "(Parse *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse)" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x371c))" ( (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x371c)" * (cast_expression "(code *)(PTR_LAB_0015b710 + -0x371c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x371c)" ( (binary_expression "PTR_LAB_0015b710 + -0x371c" identifier + number_literal) )))) )) (argument_list "(pParse)" ( identifier ))))) ;) })) (expression_statement "pEVar17 = pWVar21->pPartition;" (assignment_expression "pEVar17 = pWVar21->pPartition" identifier = (field_expression "pWVar21->pPartition" identifier -> field_identifier)) ;) (expression_statement "iVar25 = pParse->nMem + 1;" (assignment_expression "iVar25 = pParse->nMem + 1" identifier = (binary_expression "pParse->nMem + 1" (field_expression "pParse->nMem" identifier -> field_identifier) + number_literal)) ;) (expression_statement "iVar4 = p->pSrc->a[0].iCursor;" (assignment_expression "iVar4 = p->pSrc->a[0].iCursor" identifier = (field_expression "p->pSrc->a[0].iCursor" (subscript_expression "p->pSrc->a[0]" (field_expression "p->pSrc->a" (field_expression "p->pSrc" identifier -> field_identifier) -> field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "iVar28 = (int)(p->pSrc->a[0].pTab)->nCol;" (assignment_expression "iVar28 = (int)(p->pSrc->a[0].pTab)->nCol" identifier = (cast_expression "(int)(p->pSrc->a[0].pTab)->nCol" ( (type_descriptor "int" primitive_type) ) (field_expression "(p->pSrc->a[0].pTab)->nCol" (parenthesized_expression "(p->pSrc->a[0].pTab)" ( (field_expression "p->pSrc->a[0].pTab" (subscript_expression "p->pSrc->a[0]" (field_expression "p->pSrc->a" (field_expression "p->pSrc" identifier -> field_identifier) -> field_identifier) [ number_literal ]) . field_identifier) )) -> field_identifier))) ;) (expression_statement "iVar5 = iVar28 + iVar25;" (assignment_expression "iVar5 = iVar28 + iVar25" identifier = (binary_expression "iVar28 + iVar25" identifier + identifier)) ;) (expression_statement "iVar6 = iVar28 + 2 + pParse->nMem;" (assignment_expression "iVar6 = iVar28 + 2 + pParse->nMem" identifier = (binary_expression "iVar28 + 2 + pParse->nMem" (binary_expression "iVar28 + 2" identifier + number_literal) + (field_expression "pParse->nMem" identifier -> field_identifier))) ;) (if_statement "if (pWVar21->eEnd == 'W') {\n        pParse->nMem = iVar6;\n        pEVar27 = (ExprList *)0x0;\n        if (0 < iVar28) goto LAB_000c0980;\n        if (pEVar17 != (ExprList *)0x0) {\n          iStack_50 = pEVar17->nExpr;\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }\n      else {\n        pEVar27 = pWVar21->pOrderBy;\n        pParse->nMem = iVar6;\n        if (iVar28 < 1) {\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar6 = 0;\n          do {\n            iVar31 = iVar6 + 1;\n            (*pcVar22)(pParse_00,0x5a,iVar4,iVar6,iVar25 + iVar6);\n            iVar6 = iVar31;\n          } while (iVar31 < iVar28);\n        }\n        puVar2 = PTR_LAB_0015b714;\n        if (pEVar17 == (ExprList *)0x0) {\n          if (pEVar27 == (ExprList *)0x0) {\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar4 = pEVar27->nExpr;\n          puStack_60 = (undefined1 *)iVar4;\n          if (pWVar21->eType == 'V') {\n            puVar19 = (undefined1 *)0x0;\n            iVar6 = pWVar21->regPart;\n            iStack_50 = iVar25 + pWVar21->nBufferCol;\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          puVar8 = (undefined1 *)0x0;\n          pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R');\n          pTVar20 = pParse_00->aTableLock;\n        }\n        else {\n          iStack_50 = pEVar17->nExpr;\n          if (pEVar27 == (ExprList *)0x0) {\nLAB_000c09d4:\n            iVar4 = pWVar21->nBufferCol;\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar4 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar4,pWVar21->regPart,iStack_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pParse_00,uVar7,0xfffffff7);\n            puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar32)(pParse,pWVar21,1);\n            puStack_60 = (undefined1 *)iStack_50;\n          }\n          else {\n            iVar6 = pWVar21->nBufferCol;\n            iVar4 = pEVar27->nExpr;\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar6 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar6,pWVar21->regPart,iStack_50);\n            pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);\n            puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar6 + 2,0,iVar6 + 2);\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar32)(pParse,pWVar21,1);\n            puVar19 = (undefined1 *)(*pcVar22)(pParse_00,0xb,0,0,0);\n            iVar28 = pWVar21->nBufferCol;\n            iVar6 = pWVar21->regPart;\n            if (puVar8 != (undefined1 *)0x0) {\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar8 < 0) {\n                puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }\n            puStack_60 = (undefined1 *)(iStack_50 + iVar4);\n            if (pWVar21->eType == 'V') {\n              iVar6 = iStack_50 + iVar6;\n              iStack_50 = iVar25 + iVar28 + iStack_50;\nLAB_000c1e74:\n              pcStack_4c = (code *)(puVar2 + -0x7fc4);\n              uVar7 = (*pcStack_4c)(pParse,pEVar27,0,0);\n              iVar4 = (*pcVar22)(pParse_00,0x57,iStack_50,iVar6,iVar4);\n              (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);\n              puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);\n            }\n            else {\n              puVar8 = (undefined1 *)0x0;\n            }\n            (*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R');\n            if (puVar19 != (undefined1 *)0x0) {\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar19 < 0) {\n                puVar19 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar19].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }\n          }\n          pTVar20 = pParse_00->aTableLock;\n        }\n        (*pcVar22)(pParse_00,0x24,pWVar21->iEphCsr,(undefined1 *)((int)&pTVar20->iDb + 3),0);\n        (*pcVar22)(pParse_00,0xc,regGosub,addrGosub,0);\n        (*pcVar22)(pParse_00,5,pWVar21->iEphCsr,\n                   (undefined1 *)((int)&pParse_00->aTableLock[-1].zLockName + 3),0);\n        (*pcVar22)(pParse_00,0x8a,pWVar21->iEphCsr,0,0);\n        (*pcVar22)(pParse_00,0x4e,iVar25 + pWVar21->nBufferCol,pWVar21->regPart,(int)puStack_60 + -1\n                  );\n        if (puVar8 != (undefined1 *)0x0) {\n          pTVar20 = pParse_00->aTableLock;\n          if ((int)puVar8 < 0) {\n            puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n          }\n          if (pParse_00->db->mallocFailed == '\0') {\n            ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;\n          }\n          else {\n            *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n          }\n        }\n      }" if (parenthesized_expression "(pWVar21->eEnd == 'W')" ( (binary_expression "pWVar21->eEnd == 'W'" (field_expression "pWVar21->eEnd" identifier -> field_identifier) == (char_literal "'W'" ' character ')) )) (compound_statement "{\n        pParse->nMem = iVar6;\n        pEVar27 = (ExprList *)0x0;\n        if (0 < iVar28) goto LAB_000c0980;\n        if (pEVar17 != (ExprList *)0x0) {\n          iStack_50 = pEVar17->nExpr;\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }" { (expression_statement "pParse->nMem = iVar6;" (assignment_expression "pParse->nMem = iVar6" (field_expression "pParse->nMem" identifier -> field_identifier) = identifier) ;) (expression_statement "pEVar27 = (ExprList *)0x0;" (assignment_expression "pEVar27 = (ExprList *)0x0" identifier = (cast_expression "(ExprList *)0x0" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (0 < iVar28) goto LAB_000c0980;" if (parenthesized_expression "(0 < iVar28)" ( (binary_expression "0 < iVar28" number_literal < identifier) )) (goto_statement "goto LAB_000c0980;" goto statement_identifier ;)) (if_statement "if (pEVar17 != (ExprList *)0x0) {\n          iStack_50 = pEVar17->nExpr;\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }" if (parenthesized_expression "(pEVar17 != (ExprList *)0x0)" ( (binary_expression "pEVar17 != (ExprList *)0x0" identifier != (cast_expression "(ExprList *)0x0" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iStack_50 = pEVar17->nExpr;\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }" { (expression_statement "iStack_50 = pEVar17->nExpr;" (assignment_expression "iStack_50 = pEVar17->nExpr" identifier = (field_expression "pEVar17->nExpr" identifier -> field_identifier)) ;) (expression_statement "pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);" (assignment_expression "pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x3890)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x3890)" ( (binary_expression "PTR_LAB_0015b710 + -0x3890" identifier + number_literal) )))) ;) (goto_statement "goto LAB_000c09d4;" goto statement_identifier ;) })) (expression_statement "pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);" (assignment_expression "pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x3890)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x3890)" ( (binary_expression "PTR_LAB_0015b710 + -0x3890" identifier + number_literal) )))) ;) (expression_statement "pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);" (assignment_expression "pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2764)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2764)" ( (binary_expression "PTR_LAB_0015b710 + -0x2764" identifier + number_literal) )))) ;) }) (else_clause "else {\n        pEVar27 = pWVar21->pOrderBy;\n        pParse->nMem = iVar6;\n        if (iVar28 < 1) {\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar6 = 0;\n          do {\n            iVar31 = iVar6 + 1;\n            (*pcVar22)(pParse_00,0x5a,iVar4,iVar6,iVar25 + iVar6);\n            iVar6 = iVar31;\n          } while (iVar31 < iVar28);\n        }\n        puVar2 = PTR_LAB_0015b714;\n        if (pEVar17 == (ExprList *)0x0) {\n          if (pEVar27 == (ExprList *)0x0) {\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar4 = pEVar27->nExpr;\n          puStack_60 = (undefined1 *)iVar4;\n          if (pWVar21->eType == 'V') {\n            puVar19 = (undefined1 *)0x0;\n            iVar6 = pWVar21->regPart;\n            iStack_50 = iVar25 + pWVar21->nBufferCol;\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          puVar8 = (undefined1 *)0x0;\n          pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R');\n          pTVar20 = pParse_00->aTableLock;\n        }\n        else {\n          iStack_50 = pEVar17->nExpr;\n          if (pEVar27 == (ExprList *)0x0) {\nLAB_000c09d4:\n            iVar4 = pWVar21->nBufferCol;\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar4 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar4,pWVar21->regPart,iStack_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pParse_00,uVar7,0xfffffff7);\n            puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar32)(pParse,pWVar21,1);\n            puStack_60 = (undefined1 *)iStack_50;\n          }\n          else {\n            iVar6 = pWVar21->nBufferCol;\n            iVar4 = pEVar27->nExpr;\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar6 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar6,pWVar21->regPart,iStack_50);\n            pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);\n            puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar6 + 2,0,iVar6 + 2);\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar32)(pParse,pWVar21,1);\n            puVar19 = (undefined1 *)(*pcVar22)(pParse_00,0xb,0,0,0);\n            iVar28 = pWVar21->nBufferCol;\n            iVar6 = pWVar21->regPart;\n            if (puVar8 != (undefined1 *)0x0) {\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar8 < 0) {\n                puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }\n            puStack_60 = (undefined1 *)(iStack_50 + iVar4);\n            if (pWVar21->eType == 'V') {\n              iVar6 = iStack_50 + iVar6;\n              iStack_50 = iVar25 + iVar28 + iStack_50;\nLAB_000c1e74:\n              pcStack_4c = (code *)(puVar2 + -0x7fc4);\n              uVar7 = (*pcStack_4c)(pParse,pEVar27,0,0);\n              iVar4 = (*pcVar22)(pParse_00,0x57,iStack_50,iVar6,iVar4);\n              (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);\n              puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);\n            }\n            else {\n              puVar8 = (undefined1 *)0x0;\n            }\n            (*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R');\n            if (puVar19 != (undefined1 *)0x0) {\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar19 < 0) {\n                puVar19 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar19].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }\n          }\n          pTVar20 = pParse_00->aTableLock;\n        }\n        (*pcVar22)(pParse_00,0x24,pWVar21->iEphCsr,(undefined1 *)((int)&pTVar20->iDb + 3),0);\n        (*pcVar22)(pParse_00,0xc,regGosub,addrGosub,0);\n        (*pcVar22)(pParse_00,5,pWVar21->iEphCsr,\n                   (undefined1 *)((int)&pParse_00->aTableLock[-1].zLockName + 3),0);\n        (*pcVar22)(pParse_00,0x8a,pWVar21->iEphCsr,0,0);\n        (*pcVar22)(pParse_00,0x4e,iVar25 + pWVar21->nBufferCol,pWVar21->regPart,(int)puStack_60 + -1\n                  );\n        if (puVar8 != (undefined1 *)0x0) {\n          pTVar20 = pParse_00->aTableLock;\n          if ((int)puVar8 < 0) {\n            puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n          }\n          if (pParse_00->db->mallocFailed == '\0') {\n            ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;\n          }\n          else {\n            *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n          }\n        }\n      }" else (compound_statement "{\n        pEVar27 = pWVar21->pOrderBy;\n        pParse->nMem = iVar6;\n        if (iVar28 < 1) {\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar6 = 0;\n          do {\n            iVar31 = iVar6 + 1;\n            (*pcVar22)(pParse_00,0x5a,iVar4,iVar6,iVar25 + iVar6);\n            iVar6 = iVar31;\n          } while (iVar31 < iVar28);\n        }\n        puVar2 = PTR_LAB_0015b714;\n        if (pEVar17 == (ExprList *)0x0) {\n          if (pEVar27 == (ExprList *)0x0) {\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar4 = pEVar27->nExpr;\n          puStack_60 = (undefined1 *)iVar4;\n          if (pWVar21->eType == 'V') {\n            puVar19 = (undefined1 *)0x0;\n            iVar6 = pWVar21->regPart;\n            iStack_50 = iVar25 + pWVar21->nBufferCol;\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          puVar8 = (undefined1 *)0x0;\n          pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R');\n          pTVar20 = pParse_00->aTableLock;\n        }\n        else {\n          iStack_50 = pEVar17->nExpr;\n          if (pEVar27 == (ExprList *)0x0) {\nLAB_000c09d4:\n            iVar4 = pWVar21->nBufferCol;\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar4 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar4,pWVar21->regPart,iStack_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pParse_00,uVar7,0xfffffff7);\n            puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar32)(pParse,pWVar21,1);\n            puStack_60 = (undefined1 *)iStack_50;\n          }\n          else {\n            iVar6 = pWVar21->nBufferCol;\n            iVar4 = pEVar27->nExpr;\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar6 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar6,pWVar21->regPart,iStack_50);\n            pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);\n            puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar6 + 2,0,iVar6 + 2);\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar32)(pParse,pWVar21,1);\n            puVar19 = (undefined1 *)(*pcVar22)(pParse_00,0xb,0,0,0);\n            iVar28 = pWVar21->nBufferCol;\n            iVar6 = pWVar21->regPart;\n            if (puVar8 != (undefined1 *)0x0) {\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar8 < 0) {\n                puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }\n            puStack_60 = (undefined1 *)(iStack_50 + iVar4);\n            if (pWVar21->eType == 'V') {\n              iVar6 = iStack_50 + iVar6;\n              iStack_50 = iVar25 + iVar28 + iStack_50;\nLAB_000c1e74:\n              pcStack_4c = (code *)(puVar2 + -0x7fc4);\n              uVar7 = (*pcStack_4c)(pParse,pEVar27,0,0);\n              iVar4 = (*pcVar22)(pParse_00,0x57,iStack_50,iVar6,iVar4);\n              (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);\n              puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);\n            }\n            else {\n              puVar8 = (undefined1 *)0x0;\n            }\n            (*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R');\n            if (puVar19 != (undefined1 *)0x0) {\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar19 < 0) {\n                puVar19 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar19].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }\n          }\n          pTVar20 = pParse_00->aTableLock;\n        }\n        (*pcVar22)(pParse_00,0x24,pWVar21->iEphCsr,(undefined1 *)((int)&pTVar20->iDb + 3),0);\n        (*pcVar22)(pParse_00,0xc,regGosub,addrGosub,0);\n        (*pcVar22)(pParse_00,5,pWVar21->iEphCsr,\n                   (undefined1 *)((int)&pParse_00->aTableLock[-1].zLockName + 3),0);\n        (*pcVar22)(pParse_00,0x8a,pWVar21->iEphCsr,0,0);\n        (*pcVar22)(pParse_00,0x4e,iVar25 + pWVar21->nBufferCol,pWVar21->regPart,(int)puStack_60 + -1\n                  );\n        if (puVar8 != (undefined1 *)0x0) {\n          pTVar20 = pParse_00->aTableLock;\n          if ((int)puVar8 < 0) {\n            puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n          }\n          if (pParse_00->db->mallocFailed == '\0') {\n            ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;\n          }\n          else {\n            *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n          }\n        }\n      }" { (expression_statement "pEVar27 = pWVar21->pOrderBy;" (assignment_expression "pEVar27 = pWVar21->pOrderBy" identifier = (field_expression "pWVar21->pOrderBy" identifier -> field_identifier)) ;) (expression_statement "pParse->nMem = iVar6;" (assignment_expression "pParse->nMem = iVar6" (field_expression "pParse->nMem" identifier -> field_identifier) = identifier) ;) (if_statement "if (iVar28 < 1) {\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar6 = 0;\n          do {\n            iVar31 = iVar6 + 1;\n            (*pcVar22)(pParse_00,0x5a,iVar4,iVar6,iVar25 + iVar6);\n            iVar6 = iVar31;\n          } while (iVar31 < iVar28);\n        }" if (parenthesized_expression "(iVar28 < 1)" ( (binary_expression "iVar28 < 1" identifier < number_literal) )) (compound_statement "{\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }" { (expression_statement "pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);" (assignment_expression "pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x3890)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x3890)" ( (binary_expression "PTR_LAB_0015b710 + -0x3890" identifier + number_literal) )))) ;) }) (else_clause "else {\nLAB_000c0980:\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar6 = 0;\n          do {\n            iVar31 = iVar6 + 1;\n            (*pcVar22)(pParse_00,0x5a,iVar4,iVar6,iVar25 + iVar6);\n            iVar6 = iVar31;\n          } while (iVar31 < iVar28);\n        }" else (compound_statement "{\nLAB_000c0980:\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar6 = 0;\n          do {\n            iVar31 = iVar6 + 1;\n            (*pcVar22)(pParse_00,0x5a,iVar4,iVar6,iVar25 + iVar6);\n            iVar6 = iVar31;\n          } while (iVar31 < iVar28);\n        }" { (labeled_statement "LAB_000c0980:\n          pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);" statement_identifier : (expression_statement "pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);" (assignment_expression "pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x3890)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x3890)" ( (binary_expression "PTR_LAB_0015b710 + -0x3890" identifier + number_literal) )))) ;)) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (do_statement "do {\n            iVar31 = iVar6 + 1;\n            (*pcVar22)(pParse_00,0x5a,iVar4,iVar6,iVar25 + iVar6);\n            iVar6 = iVar31;\n          } while (iVar31 < iVar28);" do (compound_statement "{\n            iVar31 = iVar6 + 1;\n            (*pcVar22)(pParse_00,0x5a,iVar4,iVar6,iVar25 + iVar6);\n            iVar6 = iVar31;\n          }" { (expression_statement "iVar31 = iVar6 + 1;" (assignment_expression "iVar31 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (expression_statement "(*pcVar22)(pParse_00,0x5a,iVar4,iVar6,iVar25 + iVar6);" (call_expression "(*pcVar22)(pParse_00,0x5a,iVar4,iVar6,iVar25 + iVar6)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pParse_00,0x5a,iVar4,iVar6,iVar25 + iVar6)" ( identifier , number_literal , identifier , identifier , (binary_expression "iVar25 + iVar6" identifier + identifier) ))) ;) (expression_statement "iVar6 = iVar31;" (assignment_expression "iVar6 = iVar31" identifier = identifier) ;) }) while (parenthesized_expression "(iVar31 < iVar28)" ( (binary_expression "iVar31 < iVar28" identifier < identifier) )) ;) }))) (expression_statement "puVar2 = PTR_LAB_0015b714;" (assignment_expression "puVar2 = PTR_LAB_0015b714" identifier = identifier) ;) (if_statement "if (pEVar17 == (ExprList *)0x0) {\n          if (pEVar27 == (ExprList *)0x0) {\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar4 = pEVar27->nExpr;\n          puStack_60 = (undefined1 *)iVar4;\n          if (pWVar21->eType == 'V') {\n            puVar19 = (undefined1 *)0x0;\n            iVar6 = pWVar21->regPart;\n            iStack_50 = iVar25 + pWVar21->nBufferCol;\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          puVar8 = (undefined1 *)0x0;\n          pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R');\n          pTVar20 = pParse_00->aTableLock;\n        }\n        else {\n          iStack_50 = pEVar17->nExpr;\n          if (pEVar27 == (ExprList *)0x0) {\nLAB_000c09d4:\n            iVar4 = pWVar21->nBufferCol;\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar4 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar4,pWVar21->regPart,iStack_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pParse_00,uVar7,0xfffffff7);\n            puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar32)(pParse,pWVar21,1);\n            puStack_60 = (undefined1 *)iStack_50;\n          }\n          else {\n            iVar6 = pWVar21->nBufferCol;\n            iVar4 = pEVar27->nExpr;\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar6 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar6,pWVar21->regPart,iStack_50);\n            pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);\n            puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar6 + 2,0,iVar6 + 2);\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar32)(pParse,pWVar21,1);\n            puVar19 = (undefined1 *)(*pcVar22)(pParse_00,0xb,0,0,0);\n            iVar28 = pWVar21->nBufferCol;\n            iVar6 = pWVar21->regPart;\n            if (puVar8 != (undefined1 *)0x0) {\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar8 < 0) {\n                puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }\n            puStack_60 = (undefined1 *)(iStack_50 + iVar4);\n            if (pWVar21->eType == 'V') {\n              iVar6 = iStack_50 + iVar6;\n              iStack_50 = iVar25 + iVar28 + iStack_50;\nLAB_000c1e74:\n              pcStack_4c = (code *)(puVar2 + -0x7fc4);\n              uVar7 = (*pcStack_4c)(pParse,pEVar27,0,0);\n              iVar4 = (*pcVar22)(pParse_00,0x57,iStack_50,iVar6,iVar4);\n              (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);\n              puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);\n            }\n            else {\n              puVar8 = (undefined1 *)0x0;\n            }\n            (*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R');\n            if (puVar19 != (undefined1 *)0x0) {\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar19 < 0) {\n                puVar19 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar19].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }\n          }\n          pTVar20 = pParse_00->aTableLock;\n        }" if (parenthesized_expression "(pEVar17 == (ExprList *)0x0)" ( (binary_expression "pEVar17 == (ExprList *)0x0" identifier == (cast_expression "(ExprList *)0x0" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (pEVar27 == (ExprList *)0x0) {\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar4 = pEVar27->nExpr;\n          puStack_60 = (undefined1 *)iVar4;\n          if (pWVar21->eType == 'V') {\n            puVar19 = (undefined1 *)0x0;\n            iVar6 = pWVar21->regPart;\n            iStack_50 = iVar25 + pWVar21->nBufferCol;\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          puVar8 = (undefined1 *)0x0;\n          pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R');\n          pTVar20 = pParse_00->aTableLock;\n        }" { (if_statement "if (pEVar27 == (ExprList *)0x0) {\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }" if (parenthesized_expression "(pEVar27 == (ExprList *)0x0)" ( (binary_expression "pEVar27 == (ExprList *)0x0" identifier == (cast_expression "(ExprList *)0x0" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }" { (expression_statement "pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);" (assignment_expression "pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2764)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2764)" ( (binary_expression "PTR_LAB_0015b710 + -0x2764" identifier + number_literal) )))) ;) (goto_statement "goto LAB_000c0b50;" goto statement_identifier ;) })) (expression_statement "iVar4 = pEVar27->nExpr;" (assignment_expression "iVar4 = pEVar27->nExpr" identifier = (field_expression "pEVar27->nExpr" identifier -> field_identifier)) ;) (expression_statement "puStack_60 = (undefined1 *)iVar4;" (assignment_expression "puStack_60 = (undefined1 *)iVar4" identifier = (cast_expression "(undefined1 *)iVar4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (pWVar21->eType == 'V') {\n            puVar19 = (undefined1 *)0x0;\n            iVar6 = pWVar21->regPart;\n            iStack_50 = iVar25 + pWVar21->nBufferCol;\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }" if (parenthesized_expression "(pWVar21->eType == 'V')" ( (binary_expression "pWVar21->eType == 'V'" (field_expression "pWVar21->eType" identifier -> field_identifier) == (char_literal "'V'" ' character ')) )) (compound_statement "{\n            puVar19 = (undefined1 *)0x0;\n            iVar6 = pWVar21->regPart;\n            iStack_50 = iVar25 + pWVar21->nBufferCol;\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }" { (expression_statement "puVar19 = (undefined1 *)0x0;" (assignment_expression "puVar19 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar6 = pWVar21->regPart;" (assignment_expression "iVar6 = pWVar21->regPart" identifier = (field_expression "pWVar21->regPart" identifier -> field_identifier)) ;) (expression_statement "iStack_50 = iVar25 + pWVar21->nBufferCol;" (assignment_expression "iStack_50 = iVar25 + pWVar21->nBufferCol" identifier = (binary_expression "iVar25 + pWVar21->nBufferCol" identifier + (field_expression "pWVar21->nBufferCol" identifier -> field_identifier))) ;) (expression_statement "pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);" (assignment_expression "pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2764)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2764)" ( (binary_expression "PTR_LAB_0015b710 + -0x2764" identifier + number_literal) )))) ;) (expression_statement "pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);" (assignment_expression "pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958)" identifier = (cast_expression "(code *)(PTR_LAB_0015b6c0 + -0x5958)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6c0 + -0x5958)" ( (binary_expression "PTR_LAB_0015b6c0 + -0x5958" identifier + number_literal) )))) ;) (goto_statement "goto LAB_000c1e74;" goto statement_identifier ;) })) (expression_statement "puVar8 = (undefined1 *)0x0;" (assignment_expression "puVar8 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);" (assignment_expression "pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2764)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2764)" ( (binary_expression "PTR_LAB_0015b710 + -0x2764" identifier + number_literal) )))) ;) (expression_statement "(*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R');" (call_expression "(*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R')" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(pParse,pWVar21,pWVar21->eStart == 'R')" ( identifier , identifier , (binary_expression "pWVar21->eStart == 'R'" (field_expression "pWVar21->eStart" identifier -> field_identifier) == (char_literal "'R'" ' character ')) ))) ;) (expression_statement "pTVar20 = pParse_00->aTableLock;" (assignment_expression "pTVar20 = pParse_00->aTableLock" identifier = (field_expression "pParse_00->aTableLock" identifier -> field_identifier)) ;) }) (else_clause "else {\n          iStack_50 = pEVar17->nExpr;\n          if (pEVar27 == (ExprList *)0x0) {\nLAB_000c09d4:\n            iVar4 = pWVar21->nBufferCol;\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar4 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar4,pWVar21->regPart,iStack_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pParse_00,uVar7,0xfffffff7);\n            puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar32)(pParse,pWVar21,1);\n            puStack_60 = (undefined1 *)iStack_50;\n          }\n          else {\n            iVar6 = pWVar21->nBufferCol;\n            iVar4 = pEVar27->nExpr;\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar6 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar6,pWVar21->regPart,iStack_50);\n            pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);\n            puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar6 + 2,0,iVar6 + 2);\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar32)(pParse,pWVar21,1);\n            puVar19 = (undefined1 *)(*pcVar22)(pParse_00,0xb,0,0,0);\n            iVar28 = pWVar21->nBufferCol;\n            iVar6 = pWVar21->regPart;\n            if (puVar8 != (undefined1 *)0x0) {\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar8 < 0) {\n                puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }\n            puStack_60 = (undefined1 *)(iStack_50 + iVar4);\n            if (pWVar21->eType == 'V') {\n              iVar6 = iStack_50 + iVar6;\n              iStack_50 = iVar25 + iVar28 + iStack_50;\nLAB_000c1e74:\n              pcStack_4c = (code *)(puVar2 + -0x7fc4);\n              uVar7 = (*pcStack_4c)(pParse,pEVar27,0,0);\n              iVar4 = (*pcVar22)(pParse_00,0x57,iStack_50,iVar6,iVar4);\n              (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);\n              puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);\n            }\n            else {\n              puVar8 = (undefined1 *)0x0;\n            }\n            (*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R');\n            if (puVar19 != (undefined1 *)0x0) {\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar19 < 0) {\n                puVar19 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar19].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }\n          }\n          pTVar20 = pParse_00->aTableLock;\n        }" else (compound_statement "{\n          iStack_50 = pEVar17->nExpr;\n          if (pEVar27 == (ExprList *)0x0) {\nLAB_000c09d4:\n            iVar4 = pWVar21->nBufferCol;\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar4 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar4,pWVar21->regPart,iStack_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pParse_00,uVar7,0xfffffff7);\n            puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar32)(pParse,pWVar21,1);\n            puStack_60 = (undefined1 *)iStack_50;\n          }\n          else {\n            iVar6 = pWVar21->nBufferCol;\n            iVar4 = pEVar27->nExpr;\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar6 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar6,pWVar21->regPart,iStack_50);\n            pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);\n            puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar6 + 2,0,iVar6 + 2);\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar32)(pParse,pWVar21,1);\n            puVar19 = (undefined1 *)(*pcVar22)(pParse_00,0xb,0,0,0);\n            iVar28 = pWVar21->nBufferCol;\n            iVar6 = pWVar21->regPart;\n            if (puVar8 != (undefined1 *)0x0) {\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar8 < 0) {\n                puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }\n            puStack_60 = (undefined1 *)(iStack_50 + iVar4);\n            if (pWVar21->eType == 'V') {\n              iVar6 = iStack_50 + iVar6;\n              iStack_50 = iVar25 + iVar28 + iStack_50;\nLAB_000c1e74:\n              pcStack_4c = (code *)(puVar2 + -0x7fc4);\n              uVar7 = (*pcStack_4c)(pParse,pEVar27,0,0);\n              iVar4 = (*pcVar22)(pParse_00,0x57,iStack_50,iVar6,iVar4);\n              (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);\n              puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);\n            }\n            else {\n              puVar8 = (undefined1 *)0x0;\n            }\n            (*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R');\n            if (puVar19 != (undefined1 *)0x0) {\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar19 < 0) {\n                puVar19 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar19].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }\n          }\n          pTVar20 = pParse_00->aTableLock;\n        }" { (expression_statement "iStack_50 = pEVar17->nExpr;" (assignment_expression "iStack_50 = pEVar17->nExpr" identifier = (field_expression "pEVar17->nExpr" identifier -> field_identifier)) ;) (if_statement "if (pEVar27 == (ExprList *)0x0) {\nLAB_000c09d4:\n            iVar4 = pWVar21->nBufferCol;\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar4 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar4,pWVar21->regPart,iStack_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pParse_00,uVar7,0xfffffff7);\n            puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar32)(pParse,pWVar21,1);\n            puStack_60 = (undefined1 *)iStack_50;\n          }\n          else {\n            iVar6 = pWVar21->nBufferCol;\n            iVar4 = pEVar27->nExpr;\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar6 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar6,pWVar21->regPart,iStack_50);\n            pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);\n            puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar6 + 2,0,iVar6 + 2);\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar32)(pParse,pWVar21,1);\n            puVar19 = (undefined1 *)(*pcVar22)(pParse_00,0xb,0,0,0);\n            iVar28 = pWVar21->nBufferCol;\n            iVar6 = pWVar21->regPart;\n            if (puVar8 != (undefined1 *)0x0) {\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar8 < 0) {\n                puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }\n            puStack_60 = (undefined1 *)(iStack_50 + iVar4);\n            if (pWVar21->eType == 'V') {\n              iVar6 = iStack_50 + iVar6;\n              iStack_50 = iVar25 + iVar28 + iStack_50;\nLAB_000c1e74:\n              pcStack_4c = (code *)(puVar2 + -0x7fc4);\n              uVar7 = (*pcStack_4c)(pParse,pEVar27,0,0);\n              iVar4 = (*pcVar22)(pParse_00,0x57,iStack_50,iVar6,iVar4);\n              (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);\n              puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);\n            }\n            else {\n              puVar8 = (undefined1 *)0x0;\n            }\n            (*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R');\n            if (puVar19 != (undefined1 *)0x0) {\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar19 < 0) {\n                puVar19 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar19].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }\n          }" if (parenthesized_expression "(pEVar27 == (ExprList *)0x0)" ( (binary_expression "pEVar27 == (ExprList *)0x0" identifier == (cast_expression "(ExprList *)0x0" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000c09d4:\n            iVar4 = pWVar21->nBufferCol;\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar4 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar4,pWVar21->regPart,iStack_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pParse_00,uVar7,0xfffffff7);\n            puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar32)(pParse,pWVar21,1);\n            puStack_60 = (undefined1 *)iStack_50;\n          }" { (labeled_statement "LAB_000c09d4:\n            iVar4 = pWVar21->nBufferCol;" statement_identifier : (expression_statement "iVar4 = pWVar21->nBufferCol;" (assignment_expression "iVar4 = pWVar21->nBufferCol" identifier = (field_expression "pWVar21->nBufferCol" identifier -> field_identifier)) ;)) (expression_statement "uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);" (assignment_expression "uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0)" identifier = (call_expression "(*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b714 + -0x7fc4))" ( (pointer_expression "*(code *)(PTR_LAB_0015b714 + -0x7fc4)" * (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7fc4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x7fc4)" ( (binary_expression "PTR_LAB_0015b714 + -0x7fc4" identifier + number_literal) )))) )) (argument_list "(pParse,pEVar17,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "iVar4 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar4,pWVar21->regPart,iStack_50);" (assignment_expression "iVar4 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar4,pWVar21->regPart,iStack_50)" identifier = (call_expression "(*pcVar22)(pParse_00,0x57,iVar25 + iVar4,pWVar21->regPart,iStack_50)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pParse_00,0x57,iVar25 + iVar4,pWVar21->regPart,iStack_50)" ( identifier , number_literal , (binary_expression "iVar25 + iVar4" identifier + identifier) , (field_expression "pWVar21->regPart" identifier -> field_identifier) , identifier )))) ;) (expression_statement "(*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pParse_00,uVar7,0xfffffff7);" (call_expression "(*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pParse_00,uVar7,0xfffffff7)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b6c0 + -0x5958))" ( (pointer_expression "*(code *)(PTR_LAB_0015b6c0 + -0x5958)" * (cast_expression "(code *)(PTR_LAB_0015b6c0 + -0x5958)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6c0 + -0x5958)" ( (binary_expression "PTR_LAB_0015b6c0 + -0x5958" identifier + number_literal) )))) )) (argument_list "(pParse_00,uVar7,0xfffffff7)" ( identifier , identifier , number_literal ))) ;) (expression_statement "puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);" (assignment_expression "puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2)" identifier = (cast_expression "(undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2)" ( identifier , number_literal , (binary_expression "iVar4 + 2" identifier + number_literal) , number_literal , (binary_expression "iVar4 + 2" identifier + number_literal) ))))) ;) (expression_statement "pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);" (assignment_expression "pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2764)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2764)" ( (binary_expression "PTR_LAB_0015b710 + -0x2764" identifier + number_literal) )))) ;) (expression_statement "(*pcVar32)(pParse,pWVar21,1);" (call_expression "(*pcVar32)(pParse,pWVar21,1)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(pParse,pWVar21,1)" ( identifier , identifier , number_literal ))) ;) (expression_statement "puStack_60 = (undefined1 *)iStack_50;" (assignment_expression "puStack_60 = (undefined1 *)iStack_50" identifier = (cast_expression "(undefined1 *)iStack_50" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) (else_clause "else {\n            iVar6 = pWVar21->nBufferCol;\n            iVar4 = pEVar27->nExpr;\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar6 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar6,pWVar21->regPart,iStack_50);\n            pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);\n            puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar6 + 2,0,iVar6 + 2);\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar32)(pParse,pWVar21,1);\n            puVar19 = (undefined1 *)(*pcVar22)(pParse_00,0xb,0,0,0);\n            iVar28 = pWVar21->nBufferCol;\n            iVar6 = pWVar21->regPart;\n            if (puVar8 != (undefined1 *)0x0) {\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar8 < 0) {\n                puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }\n            puStack_60 = (undefined1 *)(iStack_50 + iVar4);\n            if (pWVar21->eType == 'V') {\n              iVar6 = iStack_50 + iVar6;\n              iStack_50 = iVar25 + iVar28 + iStack_50;\nLAB_000c1e74:\n              pcStack_4c = (code *)(puVar2 + -0x7fc4);\n              uVar7 = (*pcStack_4c)(pParse,pEVar27,0,0);\n              iVar4 = (*pcVar22)(pParse_00,0x57,iStack_50,iVar6,iVar4);\n              (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);\n              puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);\n            }\n            else {\n              puVar8 = (undefined1 *)0x0;\n            }\n            (*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R');\n            if (puVar19 != (undefined1 *)0x0) {\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar19 < 0) {\n                puVar19 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar19].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }\n          }" else (compound_statement "{\n            iVar6 = pWVar21->nBufferCol;\n            iVar4 = pEVar27->nExpr;\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar6 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar6,pWVar21->regPart,iStack_50);\n            pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);\n            puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar6 + 2,0,iVar6 + 2);\n            pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar32)(pParse,pWVar21,1);\n            puVar19 = (undefined1 *)(*pcVar22)(pParse_00,0xb,0,0,0);\n            iVar28 = pWVar21->nBufferCol;\n            iVar6 = pWVar21->regPart;\n            if (puVar8 != (undefined1 *)0x0) {\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar8 < 0) {\n                puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }\n            puStack_60 = (undefined1 *)(iStack_50 + iVar4);\n            if (pWVar21->eType == 'V') {\n              iVar6 = iStack_50 + iVar6;\n              iStack_50 = iVar25 + iVar28 + iStack_50;\nLAB_000c1e74:\n              pcStack_4c = (code *)(puVar2 + -0x7fc4);\n              uVar7 = (*pcStack_4c)(pParse,pEVar27,0,0);\n              iVar4 = (*pcVar22)(pParse_00,0x57,iStack_50,iVar6,iVar4);\n              (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);\n              puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);\n            }\n            else {\n              puVar8 = (undefined1 *)0x0;\n            }\n            (*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R');\n            if (puVar19 != (undefined1 *)0x0) {\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar19 < 0) {\n                puVar19 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar19].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }\n          }" { (expression_statement "iVar6 = pWVar21->nBufferCol;" (assignment_expression "iVar6 = pWVar21->nBufferCol" identifier = (field_expression "pWVar21->nBufferCol" identifier -> field_identifier)) ;) (expression_statement "iVar4 = pEVar27->nExpr;" (assignment_expression "iVar4 = pEVar27->nExpr" identifier = (field_expression "pEVar27->nExpr" identifier -> field_identifier)) ;) (expression_statement "uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);" (assignment_expression "uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0)" identifier = (call_expression "(*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b714 + -0x7fc4))" ( (pointer_expression "*(code *)(PTR_LAB_0015b714 + -0x7fc4)" * (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7fc4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x7fc4)" ( (binary_expression "PTR_LAB_0015b714 + -0x7fc4" identifier + number_literal) )))) )) (argument_list "(pParse,pEVar17,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "iVar6 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar6,pWVar21->regPart,iStack_50);" (assignment_expression "iVar6 = (*pcVar22)(pParse_00,0x57,iVar25 + iVar6,pWVar21->regPart,iStack_50)" identifier = (call_expression "(*pcVar22)(pParse_00,0x57,iVar25 + iVar6,pWVar21->regPart,iStack_50)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pParse_00,0x57,iVar25 + iVar6,pWVar21->regPart,iStack_50)" ( identifier , number_literal , (binary_expression "iVar25 + iVar6" identifier + identifier) , (field_expression "pWVar21->regPart" identifier -> field_identifier) , identifier )))) ;) (expression_statement "pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);" (assignment_expression "pcStack_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958)" identifier = (cast_expression "(code *)(PTR_LAB_0015b6c0 + -0x5958)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6c0 + -0x5958)" ( (binary_expression "PTR_LAB_0015b6c0 + -0x5958" identifier + number_literal) )))) ;) (expression_statement "(*pcStack_5c)(pParse_00,uVar7,0xfffffff7);" (call_expression "(*pcStack_5c)(pParse_00,uVar7,0xfffffff7)" (parenthesized_expression "(*pcStack_5c)" ( (pointer_expression "*pcStack_5c" * identifier) )) (argument_list "(pParse_00,uVar7,0xfffffff7)" ( identifier , identifier , number_literal ))) ;) (expression_statement "puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar6 + 2,0,iVar6 + 2);" (assignment_expression "puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar6 + 2,0,iVar6 + 2)" identifier = (cast_expression "(undefined1 *)(*pcVar22)(pParse_00,0x10,iVar6 + 2,0,iVar6 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar22)(pParse_00,0x10,iVar6 + 2,0,iVar6 + 2)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pParse_00,0x10,iVar6 + 2,0,iVar6 + 2)" ( identifier , number_literal , (binary_expression "iVar6 + 2" identifier + number_literal) , number_literal , (binary_expression "iVar6 + 2" identifier + number_literal) ))))) ;) (expression_statement "pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764);" (assignment_expression "pcVar32 = (code *)(PTR_LAB_0015b710 + -0x2764)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2764)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2764)" ( (binary_expression "PTR_LAB_0015b710 + -0x2764" identifier + number_literal) )))) ;) (expression_statement "(*pcVar32)(pParse,pWVar21,1);" (call_expression "(*pcVar32)(pParse,pWVar21,1)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(pParse,pWVar21,1)" ( identifier , identifier , number_literal ))) ;) (expression_statement "puVar19 = (undefined1 *)(*pcVar22)(pParse_00,0xb,0,0,0);" (assignment_expression "puVar19 = (undefined1 *)(*pcVar22)(pParse_00,0xb,0,0,0)" identifier = (cast_expression "(undefined1 *)(*pcVar22)(pParse_00,0xb,0,0,0)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar22)(pParse_00,0xb,0,0,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pParse_00,0xb,0,0,0)" ( identifier , number_literal , number_literal , number_literal , number_literal ))))) ;) (expression_statement "iVar28 = pWVar21->nBufferCol;" (assignment_expression "iVar28 = pWVar21->nBufferCol" identifier = (field_expression "pWVar21->nBufferCol" identifier -> field_identifier)) ;) (expression_statement "iVar6 = pWVar21->regPart;" (assignment_expression "iVar6 = pWVar21->regPart" identifier = (field_expression "pWVar21->regPart" identifier -> field_identifier)) ;) (if_statement "if (puVar8 != (undefined1 *)0x0) {\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar8 < 0) {\n                puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }" if (parenthesized_expression "(puVar8 != (undefined1 *)0x0)" ( (binary_expression "puVar8 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar8 < 0) {\n                puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }" { (expression_statement "pTVar20 = pParse_00->aTableLock;" (assignment_expression "pTVar20 = pParse_00->aTableLock" identifier = (field_expression "pParse_00->aTableLock" identifier -> field_identifier)) ;) (if_statement "if ((int)puVar8 < 0) {\n                puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }" if (parenthesized_expression "((int)puVar8 < 0)" ( (binary_expression "(int)puVar8 < 0" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }" { (expression_statement "puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);" (assignment_expression "puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3)" identifier = (cast_expression "(undefined1 *)((int)&pTVar20[-1].zLockName + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pTVar20[-1].zLockName + 3)" ( (binary_expression "(int)&pTVar20[-1].zLockName + 3" (cast_expression "(int)&pTVar20[-1].zLockName" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pTVar20[-1].zLockName" & (field_expression "pTVar20[-1].zLockName" (subscript_expression "pTVar20[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) })) (if_statement "if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }" if (parenthesized_expression "(pParse_00->db->mallocFailed == '\0')" ( (binary_expression "pParse_00->db->mallocFailed == '\0'" (field_expression "pParse_00->db->mallocFailed" (field_expression "pParse_00->db" identifier -> field_identifier) -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;\n              }" { (expression_statement "((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;" (assignment_expression "((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20" (field_expression "((Op *)pParse_00->nTableLock)[(int)puVar8].p2" (subscript_expression "((Op *)pParse_00->nTableLock)[(int)puVar8]" (parenthesized_expression "((Op *)pParse_00->nTableLock)" ( (cast_expression "(Op *)pParse_00->nTableLock" ( (type_descriptor "Op *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pParse_00->nTableLock" identifier -> field_identifier)) )) [ (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) ]) . field_identifier) = (cast_expression "(int)pTVar20" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }" else (compound_statement "{\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }" { (expression_statement "*(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;" (assignment_expression "*(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20" (pointer_expression "*(TableLock **)(PTR_DAT_0015b5d8 + -0x450c)" * (cast_expression "(TableLock **)(PTR_DAT_0015b5d8 + -0x450c)" ( (type_descriptor "TableLock **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x450c)" ( (binary_expression "PTR_DAT_0015b5d8 + -0x450c" identifier + number_literal) )))) = identifier) ;) }))) })) (expression_statement "puStack_60 = (undefined1 *)(iStack_50 + iVar4);" (assignment_expression "puStack_60 = (undefined1 *)(iStack_50 + iVar4)" identifier = (cast_expression "(undefined1 *)(iStack_50 + iVar4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_50 + iVar4)" ( (binary_expression "iStack_50 + iVar4" identifier + identifier) )))) ;) (if_statement "if (pWVar21->eType == 'V') {\n              iVar6 = iStack_50 + iVar6;\n              iStack_50 = iVar25 + iVar28 + iStack_50;\nLAB_000c1e74:\n              pcStack_4c = (code *)(puVar2 + -0x7fc4);\n              uVar7 = (*pcStack_4c)(pParse,pEVar27,0,0);\n              iVar4 = (*pcVar22)(pParse_00,0x57,iStack_50,iVar6,iVar4);\n              (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);\n              puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);\n            }\n            else {\n              puVar8 = (undefined1 *)0x0;\n            }" if (parenthesized_expression "(pWVar21->eType == 'V')" ( (binary_expression "pWVar21->eType == 'V'" (field_expression "pWVar21->eType" identifier -> field_identifier) == (char_literal "'V'" ' character ')) )) (compound_statement "{\n              iVar6 = iStack_50 + iVar6;\n              iStack_50 = iVar25 + iVar28 + iStack_50;\nLAB_000c1e74:\n              pcStack_4c = (code *)(puVar2 + -0x7fc4);\n              uVar7 = (*pcStack_4c)(pParse,pEVar27,0,0);\n              iVar4 = (*pcVar22)(pParse_00,0x57,iStack_50,iVar6,iVar4);\n              (*pcStack_5c)(pParse_00,uVar7,0xfffffff7);\n              puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);\n            }" { (expression_statement "iVar6 = iStack_50 + iVar6;" (assignment_expression "iVar6 = iStack_50 + iVar6" identifier = (binary_expression "iStack_50 + iVar6" identifier + identifier)) ;) (expression_statement "iStack_50 = iVar25 + iVar28 + iStack_50;" (assignment_expression "iStack_50 = iVar25 + iVar28 + iStack_50" identifier = (binary_expression "iVar25 + iVar28 + iStack_50" (binary_expression "iVar25 + iVar28" identifier + identifier) + identifier)) ;) (labeled_statement "LAB_000c1e74:\n              pcStack_4c = (code *)(puVar2 + -0x7fc4);" statement_identifier : (expression_statement "pcStack_4c = (code *)(puVar2 + -0x7fc4);" (assignment_expression "pcStack_4c = (code *)(puVar2 + -0x7fc4)" identifier = (cast_expression "(code *)(puVar2 + -0x7fc4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x7fc4)" ( (binary_expression "puVar2 + -0x7fc4" identifier + number_literal) )))) ;)) (expression_statement "uVar7 = (*pcStack_4c)(pParse,pEVar27,0,0);" (assignment_expression "uVar7 = (*pcStack_4c)(pParse,pEVar27,0,0)" identifier = (call_expression "(*pcStack_4c)(pParse,pEVar27,0,0)" (parenthesized_expression "(*pcStack_4c)" ( (pointer_expression "*pcStack_4c" * identifier) )) (argument_list "(pParse,pEVar27,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "iVar4 = (*pcVar22)(pParse_00,0x57,iStack_50,iVar6,iVar4);" (assignment_expression "iVar4 = (*pcVar22)(pParse_00,0x57,iStack_50,iVar6,iVar4)" identifier = (call_expression "(*pcVar22)(pParse_00,0x57,iStack_50,iVar6,iVar4)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pParse_00,0x57,iStack_50,iVar6,iVar4)" ( identifier , number_literal , identifier , identifier , identifier )))) ;) (expression_statement "(*pcStack_5c)(pParse_00,uVar7,0xfffffff7);" (call_expression "(*pcStack_5c)(pParse_00,uVar7,0xfffffff7)" (parenthesized_expression "(*pcStack_5c)" ( (pointer_expression "*pcStack_5c" * identifier) )) (argument_list "(pParse_00,uVar7,0xfffffff7)" ( identifier , identifier , number_literal ))) ;) (expression_statement "puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2);" (assignment_expression "puVar8 = (undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2)" identifier = (cast_expression "(undefined1 *)(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar22)(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pParse_00,0x10,iVar4 + 2,0,iVar4 + 2)" ( identifier , number_literal , (binary_expression "iVar4 + 2" identifier + number_literal) , number_literal , (binary_expression "iVar4 + 2" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              puVar8 = (undefined1 *)0x0;\n            }" else (compound_statement "{\n              puVar8 = (undefined1 *)0x0;\n            }" { (expression_statement "puVar8 = (undefined1 *)0x0;" (assignment_expression "puVar8 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "(*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R');" (call_expression "(*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R')" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(pParse,pWVar21,pWVar21->eStart == 'R')" ( identifier , identifier , (binary_expression "pWVar21->eStart == 'R'" (field_expression "pWVar21->eStart" identifier -> field_identifier) == (char_literal "'R'" ' character ')) ))) ;) (if_statement "if (puVar19 != (undefined1 *)0x0) {\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar19 < 0) {\n                puVar19 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar19].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }" if (parenthesized_expression "(puVar19 != (undefined1 *)0x0)" ( (binary_expression "puVar19 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pTVar20 = pParse_00->aTableLock;\n              if ((int)puVar19 < 0) {\n                puVar19 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }\n              if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar19].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }\n            }" { (expression_statement "pTVar20 = pParse_00->aTableLock;" (assignment_expression "pTVar20 = pParse_00->aTableLock" identifier = (field_expression "pParse_00->aTableLock" identifier -> field_identifier)) ;) (if_statement "if ((int)puVar19 < 0) {\n                puVar19 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }" if (parenthesized_expression "((int)puVar19 < 0)" ( (binary_expression "(int)puVar19 < 0" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                puVar19 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n              }" { (expression_statement "puVar19 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);" (assignment_expression "puVar19 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3)" identifier = (cast_expression "(undefined1 *)((int)&pTVar20[-1].zLockName + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pTVar20[-1].zLockName + 3)" ( (binary_expression "(int)&pTVar20[-1].zLockName + 3" (cast_expression "(int)&pTVar20[-1].zLockName" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pTVar20[-1].zLockName" & (field_expression "pTVar20[-1].zLockName" (subscript_expression "pTVar20[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) })) (if_statement "if (pParse_00->db->mallocFailed == '\0') {\n                ((Op *)pParse_00->nTableLock)[(int)puVar19].p2 = (int)pTVar20;\n              }\n              else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }" if (parenthesized_expression "(pParse_00->db->mallocFailed == '\0')" ( (binary_expression "pParse_00->db->mallocFailed == '\0'" (field_expression "pParse_00->db->mallocFailed" (field_expression "pParse_00->db" identifier -> field_identifier) -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                ((Op *)pParse_00->nTableLock)[(int)puVar19].p2 = (int)pTVar20;\n              }" { (expression_statement "((Op *)pParse_00->nTableLock)[(int)puVar19].p2 = (int)pTVar20;" (assignment_expression "((Op *)pParse_00->nTableLock)[(int)puVar19].p2 = (int)pTVar20" (field_expression "((Op *)pParse_00->nTableLock)[(int)puVar19].p2" (subscript_expression "((Op *)pParse_00->nTableLock)[(int)puVar19]" (parenthesized_expression "((Op *)pParse_00->nTableLock)" ( (cast_expression "(Op *)pParse_00->nTableLock" ( (type_descriptor "Op *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pParse_00->nTableLock" identifier -> field_identifier)) )) [ (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) ]) . field_identifier) = (cast_expression "(int)pTVar20" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }" else (compound_statement "{\n                *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n              }" { (expression_statement "*(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;" (assignment_expression "*(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20" (pointer_expression "*(TableLock **)(PTR_DAT_0015b5d8 + -0x450c)" * (cast_expression "(TableLock **)(PTR_DAT_0015b5d8 + -0x450c)" ( (type_descriptor "TableLock **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x450c)" ( (binary_expression "PTR_DAT_0015b5d8 + -0x450c" identifier + number_literal) )))) = identifier) ;) }))) })) }))) (expression_statement "pTVar20 = pParse_00->aTableLock;" (assignment_expression "pTVar20 = pParse_00->aTableLock" identifier = (field_expression "pParse_00->aTableLock" identifier -> field_identifier)) ;) }))) (expression_statement "(*pcVar22)(pParse_00,0x24,pWVar21->iEphCsr,(undefined1 *)((int)&pTVar20->iDb + 3),0);" (call_expression "(*pcVar22)(pParse_00,0x24,pWVar21->iEphCsr,(undefined1 *)((int)&pTVar20->iDb + 3),0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pParse_00,0x24,pWVar21->iEphCsr,(undefined1 *)((int)&pTVar20->iDb + 3),0)" ( identifier , number_literal , (field_expression "pWVar21->iEphCsr" identifier -> field_identifier) , (cast_expression "(undefined1 *)((int)&pTVar20->iDb + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pTVar20->iDb + 3)" ( (binary_expression "(int)&pTVar20->iDb + 3" (cast_expression "(int)&pTVar20->iDb" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pTVar20->iDb" & (field_expression "pTVar20->iDb" identifier -> field_identifier))) + number_literal) ))) , number_literal ))) ;) (expression_statement "(*pcVar22)(pParse_00,0xc,regGosub,addrGosub,0);" (call_expression "(*pcVar22)(pParse_00,0xc,regGosub,addrGosub,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pParse_00,0xc,regGosub,addrGosub,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "(*pcVar22)(pParse_00,5,pWVar21->iEphCsr,\n                   (undefined1 *)((int)&pParse_00->aTableLock[-1].zLockName + 3),0);" (call_expression "(*pcVar22)(pParse_00,5,pWVar21->iEphCsr,\n                   (undefined1 *)((int)&pParse_00->aTableLock[-1].zLockName + 3),0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pParse_00,5,pWVar21->iEphCsr,\n                   (undefined1 *)((int)&pParse_00->aTableLock[-1].zLockName + 3),0)" ( identifier , number_literal , (field_expression "pWVar21->iEphCsr" identifier -> field_identifier) , (cast_expression "(undefined1 *)((int)&pParse_00->aTableLock[-1].zLockName + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pParse_00->aTableLock[-1].zLockName + 3)" ( (binary_expression "(int)&pParse_00->aTableLock[-1].zLockName + 3" (cast_expression "(int)&pParse_00->aTableLock[-1].zLockName" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pParse_00->aTableLock[-1].zLockName" & (field_expression "pParse_00->aTableLock[-1].zLockName" (subscript_expression "pParse_00->aTableLock[-1]" (field_expression "pParse_00->aTableLock" identifier -> field_identifier) [ number_literal ]) . field_identifier))) + number_literal) ))) , number_literal ))) ;) (expression_statement "(*pcVar22)(pParse_00,0x8a,pWVar21->iEphCsr,0,0);" (call_expression "(*pcVar22)(pParse_00,0x8a,pWVar21->iEphCsr,0,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pParse_00,0x8a,pWVar21->iEphCsr,0,0)" ( identifier , number_literal , (field_expression "pWVar21->iEphCsr" identifier -> field_identifier) , number_literal , number_literal ))) ;) (expression_statement "(*pcVar22)(pParse_00,0x4e,iVar25 + pWVar21->nBufferCol,pWVar21->regPart,(int)puStack_60 + -1\n                  );" (call_expression "(*pcVar22)(pParse_00,0x4e,iVar25 + pWVar21->nBufferCol,pWVar21->regPart,(int)puStack_60 + -1\n                  )" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pParse_00,0x4e,iVar25 + pWVar21->nBufferCol,pWVar21->regPart,(int)puStack_60 + -1\n                  )" ( identifier , number_literal , (binary_expression "iVar25 + pWVar21->nBufferCol" identifier + (field_expression "pWVar21->nBufferCol" identifier -> field_identifier)) , (field_expression "pWVar21->regPart" identifier -> field_identifier) , (binary_expression "(int)puStack_60 + -1" (cast_expression "(int)puStack_60" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ;) (if_statement "if (puVar8 != (undefined1 *)0x0) {\n          pTVar20 = pParse_00->aTableLock;\n          if ((int)puVar8 < 0) {\n            puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n          }\n          if (pParse_00->db->mallocFailed == '\0') {\n            ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;\n          }\n          else {\n            *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n          }\n        }" if (parenthesized_expression "(puVar8 != (undefined1 *)0x0)" ( (binary_expression "puVar8 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pTVar20 = pParse_00->aTableLock;\n          if ((int)puVar8 < 0) {\n            puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n          }\n          if (pParse_00->db->mallocFailed == '\0') {\n            ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;\n          }\n          else {\n            *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n          }\n        }" { (expression_statement "pTVar20 = pParse_00->aTableLock;" (assignment_expression "pTVar20 = pParse_00->aTableLock" identifier = (field_expression "pParse_00->aTableLock" identifier -> field_identifier)) ;) (if_statement "if ((int)puVar8 < 0) {\n            puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n          }" if (parenthesized_expression "((int)puVar8 < 0)" ( (binary_expression "(int)puVar8 < 0" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);\n          }" { (expression_statement "puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3);" (assignment_expression "puVar8 = (undefined1 *)((int)&pTVar20[-1].zLockName + 3)" identifier = (cast_expression "(undefined1 *)((int)&pTVar20[-1].zLockName + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pTVar20[-1].zLockName + 3)" ( (binary_expression "(int)&pTVar20[-1].zLockName + 3" (cast_expression "(int)&pTVar20[-1].zLockName" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pTVar20[-1].zLockName" & (field_expression "pTVar20[-1].zLockName" (subscript_expression "pTVar20[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) })) (if_statement "if (pParse_00->db->mallocFailed == '\0') {\n            ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;\n          }\n          else {\n            *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n          }" if (parenthesized_expression "(pParse_00->db->mallocFailed == '\0')" ( (binary_expression "pParse_00->db->mallocFailed == '\0'" (field_expression "pParse_00->db->mallocFailed" (field_expression "pParse_00->db" identifier -> field_identifier) -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            ((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;\n          }" { (expression_statement "((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20;" (assignment_expression "((Op *)pParse_00->nTableLock)[(int)puVar8].p2 = (int)pTVar20" (field_expression "((Op *)pParse_00->nTableLock)[(int)puVar8].p2" (subscript_expression "((Op *)pParse_00->nTableLock)[(int)puVar8]" (parenthesized_expression "((Op *)pParse_00->nTableLock)" ( (cast_expression "(Op *)pParse_00->nTableLock" ( (type_descriptor "Op *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pParse_00->nTableLock" identifier -> field_identifier)) )) [ (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) ]) . field_identifier) = (cast_expression "(int)pTVar20" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) (else_clause "else {\n            *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n          }" else (compound_statement "{\n            *(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;\n          }" { (expression_statement "*(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20;" (assignment_expression "*(TableLock **)(PTR_DAT_0015b5d8 + -0x450c) = pTVar20" (pointer_expression "*(TableLock **)(PTR_DAT_0015b5d8 + -0x450c)" * (cast_expression "(TableLock **)(PTR_DAT_0015b5d8 + -0x450c)" ( (type_descriptor "TableLock **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x450c)" ( (binary_expression "PTR_DAT_0015b5d8 + -0x450c" identifier + number_literal) )))) = identifier) ;) }))) })) }))) (labeled_statement "LAB_000c0b50:\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(pParse,pWVar21,0xffffffff,0,iVar25,0);" statement_identifier : (expression_statement "(*(code *)(PTR_LAB_0015b714 + -0x7af4))(pParse,pWVar21,0xffffffff,0,iVar25,0);" (call_expression "(*(code *)(PTR_LAB_0015b714 + -0x7af4))(pParse,pWVar21,0xffffffff,0,iVar25,0)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b714 + -0x7af4))" ( (pointer_expression "*(code *)(PTR_LAB_0015b714 + -0x7af4)" * (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7af4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x7af4)" ( (binary_expression "PTR_LAB_0015b714 + -0x7af4" identifier + number_literal) )))) )) (argument_list "(pParse,pWVar21,0xffffffff,0,iVar25,0)" ( identifier , identifier , number_literal , number_literal , identifier , number_literal ))) ;)) (if_statement "if (pWVar21->nBufferCol < 1) {\n        (*pcVar22)(pParse_00,0x4b,0,iVar5,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pParse_00,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }\n      else {\n        (*pcVar22)(pParse_00,0x66,iVar25,pWVar21->nBufferCol,iVar5);\n      }" if (parenthesized_expression "(pWVar21->nBufferCol < 1)" ( (binary_expression "pWVar21->nBufferCol < 1" (field_expression "pWVar21->nBufferCol" identifier -> field_identifier) < number_literal) )) (compound_statement "{\n        (*pcVar22)(pParse_00,0x4b,0,iVar5,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pParse_00,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }" { (expression_statement "(*pcVar22)(pParse_00,0x4b,0,iVar5,0);" (call_expression "(*pcVar22)(pParse_00,0x4b,0,iVar5,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pParse_00,0x4b,0,iVar5,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) (expression_statement "(*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pParse_00,PTR_LAB_0015b5e8 + 0x53f4,0);" (call_expression "(*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pParse_00,PTR_LAB_0015b5e8 + 0x53f4,0)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b6c0 + -0x5958))" ( (pointer_expression "*(code *)(PTR_LAB_0015b6c0 + -0x5958)" * (cast_expression "(code *)(PTR_LAB_0015b6c0 + -0x5958)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6c0 + -0x5958)" ( (binary_expression "PTR_LAB_0015b6c0 + -0x5958" identifier + number_literal) )))) )) (argument_list "(pParse_00,PTR_LAB_0015b5e8 + 0x53f4,0)" ( identifier , (binary_expression "PTR_LAB_0015b5e8 + 0x53f4" identifier + number_literal) , number_literal ))) ;) }) (else_clause "else {\n        (*pcVar22)(pParse_00,0x66,iVar25,pWVar21->nBufferCol,iVar5);\n      }" else (compound_statement "{\n        (*pcVar22)(pParse_00,0x66,iVar25,pWVar21->nBufferCol,iVar5);\n      }" { (expression_statement "(*pcVar22)(pParse_00,0x66,iVar25,pWVar21->nBufferCol,iVar5);" (call_expression "(*pcVar22)(pParse_00,0x66,iVar25,pWVar21->nBufferCol,iVar5)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pParse_00,0x66,iVar25,pWVar21->nBufferCol,iVar5)" ( identifier , number_literal , identifier , (field_expression "pWVar21->nBufferCol" identifier -> field_identifier) , identifier ))) ;) }))) (expression_statement "(*pcVar22)(pParse_00,0x79,pWVar21->iEphCsr,iVar5 + 1,0);" (call_expression "(*pcVar22)(pParse_00,0x79,pWVar21->iEphCsr,iVar5 + 1,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pParse_00,0x79,pWVar21->iEphCsr,iVar5 + 1,0)" ( identifier , number_literal , (field_expression "pWVar21->iEphCsr" identifier -> field_identifier) , (binary_expression "iVar5 + 1" identifier + number_literal) , number_literal ))) ;) (expression_statement "(*pcVar22)(pParse_00,0x7a,pWVar21->iEphCsr,iVar5,iVar5 + 1);" (call_expression "(*pcVar22)(pParse_00,0x7a,pWVar21->iEphCsr,iVar5,iVar5 + 1)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pParse_00,0x7a,pWVar21->iEphCsr,iVar5,iVar5 + 1)" ( identifier , number_literal , (field_expression "pWVar21->iEphCsr" identifier -> field_identifier) , identifier , (binary_expression "iVar5 + 1" identifier + number_literal) ))) ;) (expression_statement "(*(code *)(PTR_LAB_0015b710 + -0x18cc))(pWInfo);" (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x18cc))(pWInfo)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x18cc))" ( (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x18cc)" * (cast_expression "(code *)(PTR_LAB_0015b710 + -0x18cc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x18cc)" ( (binary_expression "PTR_LAB_0015b710 + -0x18cc" identifier + number_literal) )))) )) (argument_list "(pWInfo)" ( identifier ))) ;) (expression_statement "(*pcVar32)(pParse,pWVar21,1);" (call_expression "(*pcVar32)(pParse,pWVar21,1)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(pParse,pWVar21,1)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(*pcVar22)(pParse_00,0x24,pWVar21->iEphCsr,\n                 (undefined1 *)((int)&pParse_00->aTableLock->iDb + 3),0);" (call_expression "(*pcVar22)(pParse_00,0x24,pWVar21->iEphCsr,\n                 (undefined1 *)((int)&pParse_00->aTableLock->iDb + 3),0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pParse_00,0x24,pWVar21->iEphCsr,\n                 (undefined1 *)((int)&pParse_00->aTableLock->iDb + 3),0)" ( identifier , number_literal , (field_expression "pWVar21->iEphCsr" identifier -> field_identifier) , (cast_expression "(undefined1 *)((int)&pParse_00->aTableLock->iDb + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pParse_00->aTableLock->iDb + 3)" ( (binary_expression "(int)&pParse_00->aTableLock->iDb + 3" (cast_expression "(int)&pParse_00->aTableLock->iDb" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pParse_00->aTableLock->iDb" & (field_expression "pParse_00->aTableLock->iDb" (field_expression "pParse_00->aTableLock" identifier -> field_identifier) -> field_identifier))) + number_literal) ))) , number_literal ))) ;) (expression_statement "(*pcVar22)(pParse_00,0xc,regGosub,addrGosub,0);" (call_expression "(*pcVar22)(pParse_00,0xc,regGosub,addrGosub,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pParse_00,0xc,regGosub,addrGosub,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "puVar19 = &DAT_00000005;" (assignment_expression "puVar19 = &DAT_00000005" identifier = (pointer_expression "&DAT_00000005" & identifier)) ;) (expression_statement "iVar5 = pWVar21->iEphCsr;" (assignment_expression "iVar5 = pWVar21->iEphCsr" identifier = (field_expression "pWVar21->iEphCsr" identifier -> field_identifier)) ;) (expression_statement "(*pcVar22)();" (call_expression "(*pcVar22)()" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "()" ( ))) ;) (goto_statement "goto LAB_000c0f44;" goto statement_identifier ;) })) (labeled_statement "LAB_000c0c60:\n    pVVar24 = pParse->pVdbe;" statement_identifier : (expression_statement "pVVar24 = pParse->pVdbe;" (assignment_expression "pVVar24 = pParse->pVdbe" identifier = (field_expression "pParse->pVdbe" identifier -> field_identifier)) ;)) (if_statement "if (pVVar24 == (Vdbe *)0x0) {\n      pVVar24 = (Vdbe *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse);\n      pEVar17 = pWVar21->pOrderBy;\n      pEStack_48 = pWVar21->pPartition;\n      if (pEVar17 != (ExprList *)0x0) goto LAB_000c0c7c;\nLAB_000c1450:\n      iStack_58 = 0;\n      bVar1 = false;\n    }\n    else {\n      pEStack_48 = pWVar21->pPartition;\n      pEVar17 = pWVar21->pOrderBy;\n      if (pEVar17 == (ExprList *)0x0) goto LAB_000c1450;\nLAB_000c0c7c:\n      iStack_58 = pEVar17->nExpr;\n      uVar9._0_1_ = pWVar21->eType;\n      uVar9._1_1_ = pWVar21->eStart;\n      uVar9._2_1_ = pWVar21->eEnd;\n      uVar9._3_1_ = pWVar21->field_0xf;\n      bVar1 = (uVar9 & 0xffff00) == 0x525700;\n    }" if (parenthesized_expression "(pVVar24 == (Vdbe *)0x0)" ( (binary_expression "pVVar24 == (Vdbe *)0x0" identifier == (cast_expression "(Vdbe *)0x0" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pVVar24 = (Vdbe *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse);\n      pEVar17 = pWVar21->pOrderBy;\n      pEStack_48 = pWVar21->pPartition;\n      if (pEVar17 != (ExprList *)0x0) goto LAB_000c0c7c;\nLAB_000c1450:\n      iStack_58 = 0;\n      bVar1 = false;\n    }" { (expression_statement "pVVar24 = (Vdbe *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse);" (assignment_expression "pVVar24 = (Vdbe *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse)" identifier = (cast_expression "(Vdbe *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse)" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x371c))(pParse)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x371c))" ( (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x371c)" * (cast_expression "(code *)(PTR_LAB_0015b710 + -0x371c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x371c)" ( (binary_expression "PTR_LAB_0015b710 + -0x371c" identifier + number_literal) )))) )) (argument_list "(pParse)" ( identifier ))))) ;) (expression_statement "pEVar17 = pWVar21->pOrderBy;" (assignment_expression "pEVar17 = pWVar21->pOrderBy" identifier = (field_expression "pWVar21->pOrderBy" identifier -> field_identifier)) ;) (expression_statement "pEStack_48 = pWVar21->pPartition;" (assignment_expression "pEStack_48 = pWVar21->pPartition" identifier = (field_expression "pWVar21->pPartition" identifier -> field_identifier)) ;) (if_statement "if (pEVar17 != (ExprList *)0x0) goto LAB_000c0c7c;" if (parenthesized_expression "(pEVar17 != (ExprList *)0x0)" ( (binary_expression "pEVar17 != (ExprList *)0x0" identifier != (cast_expression "(ExprList *)0x0" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000c0c7c;" goto statement_identifier ;)) (labeled_statement "LAB_000c1450:\n      iStack_58 = 0;" statement_identifier : (expression_statement "iStack_58 = 0;" (assignment_expression "iStack_58 = 0" identifier = number_literal) ;)) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) }) (else_clause "else {\n      pEStack_48 = pWVar21->pPartition;\n      pEVar17 = pWVar21->pOrderBy;\n      if (pEVar17 == (ExprList *)0x0) goto LAB_000c1450;\nLAB_000c0c7c:\n      iStack_58 = pEVar17->nExpr;\n      uVar9._0_1_ = pWVar21->eType;\n      uVar9._1_1_ = pWVar21->eStart;\n      uVar9._2_1_ = pWVar21->eEnd;\n      uVar9._3_1_ = pWVar21->field_0xf;\n      bVar1 = (uVar9 & 0xffff00) == 0x525700;\n    }" else (compound_statement "{\n      pEStack_48 = pWVar21->pPartition;\n      pEVar17 = pWVar21->pOrderBy;\n      if (pEVar17 == (ExprList *)0x0) goto LAB_000c1450;\nLAB_000c0c7c:\n      iStack_58 = pEVar17->nExpr;\n      uVar9._0_1_ = pWVar21->eType;\n      uVar9._1_1_ = pWVar21->eStart;\n      uVar9._2_1_ = pWVar21->eEnd;\n      uVar9._3_1_ = pWVar21->field_0xf;\n      bVar1 = (uVar9 & 0xffff00) == 0x525700;\n    }" { (expression_statement "pEStack_48 = pWVar21->pPartition;" (assignment_expression "pEStack_48 = pWVar21->pPartition" identifier = (field_expression "pWVar21->pPartition" identifier -> field_identifier)) ;) (expression_statement "pEVar17 = pWVar21->pOrderBy;" (assignment_expression "pEVar17 = pWVar21->pOrderBy" identifier = (field_expression "pWVar21->pOrderBy" identifier -> field_identifier)) ;) (if_statement "if (pEVar17 == (ExprList *)0x0) goto LAB_000c1450;" if (parenthesized_expression "(pEVar17 == (ExprList *)0x0)" ( (binary_expression "pEVar17 == (ExprList *)0x0" identifier == (cast_expression "(ExprList *)0x0" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000c1450;" goto statement_identifier ;)) (labeled_statement "LAB_000c0c7c:\n      iStack_58 = pEVar17->nExpr;" statement_identifier : (expression_statement "iStack_58 = pEVar17->nExpr;" (assignment_expression "iStack_58 = pEVar17->nExpr" identifier = (field_expression "pEVar17->nExpr" identifier -> field_identifier)) ;)) (expression_statement "uVar9._0_1_ = pWVar21->eType;" (assignment_expression "uVar9._0_1_ = pWVar21->eType" (field_expression "uVar9._0_1_" identifier . field_identifier) = (field_expression "pWVar21->eType" identifier -> field_identifier)) ;) (expression_statement "uVar9._1_1_ = pWVar21->eStart;" (assignment_expression "uVar9._1_1_ = pWVar21->eStart" (field_expression "uVar9._1_1_" identifier . field_identifier) = (field_expression "pWVar21->eStart" identifier -> field_identifier)) ;) (expression_statement "uVar9._2_1_ = pWVar21->eEnd;" (assignment_expression "uVar9._2_1_ = pWVar21->eEnd" (field_expression "uVar9._2_1_" identifier . field_identifier) = (field_expression "pWVar21->eEnd" identifier -> field_identifier)) ;) (expression_statement "uVar9._3_1_ = pWVar21->field_0xf;" (assignment_expression "uVar9._3_1_ = pWVar21->field_0xf" (field_expression "uVar9._3_1_" identifier . field_identifier) = (field_expression "pWVar21->field_0xf" identifier -> field_identifier)) ;) (expression_statement "bVar1 = (uVar9 & 0xffff00) == 0x525700;" (assignment_expression "bVar1 = (uVar9 & 0xffff00) == 0x525700" identifier = (binary_expression "(uVar9 & 0xffff00) == 0x525700" (parenthesized_expression "(uVar9 & 0xffff00)" ( (binary_expression "uVar9 & 0xffff00" identifier & number_literal) )) == number_literal)) ;) }))) (expression_statement "puVar2 = PTR_LAB_0015b714;" (assignment_expression "puVar2 = PTR_LAB_0015b714" identifier = identifier) ;) (expression_statement "iVar4 = pParse->nMem;" (assignment_expression "iVar4 = pParse->nMem" identifier = (field_expression "pParse->nMem" identifier -> field_identifier)) ;) (expression_statement "iVar28 = pParse->nTab;" (assignment_expression "iVar28 = pParse->nTab" identifier = (field_expression "pParse->nTab" identifier -> field_identifier)) ;) (expression_statement "iVar6 = pParse->nLabel;" (assignment_expression "iVar6 = pParse->nLabel" identifier = (field_expression "pParse->nLabel" identifier -> field_identifier)) ;) (expression_statement "iVar5 = iVar4 + iStack_58;" (assignment_expression "iVar5 = iVar4 + iStack_58" identifier = (binary_expression "iVar4 + iStack_58" identifier + identifier)) ;) (expression_statement "iVar31 = iVar5 + 2;" (assignment_expression "iVar31 = iVar5 + 2" identifier = (binary_expression "iVar5 + 2" identifier + number_literal)) ;) (expression_statement "iVar25 = iVar6 + -2;" (assignment_expression "iVar25 = iVar6 + -2" identifier = (binary_expression "iVar6 + -2" identifier + number_literal)) ;) (expression_statement "pParse->nTab = iVar28 + 1;" (assignment_expression "pParse->nTab = iVar28 + 1" (field_expression "pParse->nTab" identifier -> field_identifier) = (binary_expression "iVar28 + 1" identifier + number_literal)) ;) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "pParse->nLabel = iVar25;" (assignment_expression "pParse->nLabel = iVar25" (field_expression "pParse->nLabel" identifier -> field_identifier) = identifier) ;) (expression_statement "pParse->nMem = iVar31;" (assignment_expression "pParse->nMem = iVar31" (field_expression "pParse->nMem" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "(*(code *)(puVar2 + -0x7e94))(pParse,&p->pSrc,p->pWin,pWInfo,iVar5,iVar25,&regSize);" (call_expression "(*(code *)(puVar2 + -0x7e94))(pParse,&p->pSrc,p->pWin,pWInfo,iVar5,iVar25,&regSize)" (parenthesized_expression "(*(code *)(puVar2 + -0x7e94))" ( (pointer_expression "*(code *)(puVar2 + -0x7e94)" * (cast_expression "(code *)(puVar2 + -0x7e94)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x7e94)" ( (binary_expression "puVar2 + -0x7e94" identifier + number_literal) )))) )) (argument_list "(pParse,&p->pSrc,p->pWin,pWInfo,iVar5,iVar25,&regSize)" ( identifier , (pointer_expression "&p->pSrc" & (field_expression "p->pSrc" identifier -> field_identifier)) , (field_expression "p->pWin" identifier -> field_identifier) , identifier , identifier , identifier , (pointer_expression "&regSize" & identifier) ))) ;) (expression_statement "pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890);" (assignment_expression "pcVar22 = (code *)(PTR_LAB_0015b710 + -0x3890)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x3890)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x3890)" ( (binary_expression "PTR_LAB_0015b710 + -0x3890" identifier + number_literal) )))) ;) (expression_statement "puStack_60 = (undefined1 *)(*pcVar22)(pVVar24,0xb,0,0,0);" (assignment_expression "puStack_60 = (undefined1 *)(*pcVar22)(pVVar24,0xb,0,0,0)" identifier = (cast_expression "(undefined1 *)(*pcVar22)(pVVar24,0xb,0,0,0)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar22)(pVVar24,0xb,0,0,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0xb,0,0,0)" ( identifier , number_literal , number_literal , number_literal , number_literal ))))) ;) (expression_statement "pcVar32 = (code *)(PTR_LAB_0015b710 + -0x3c14);" (assignment_expression "pcVar32 = (code *)(PTR_LAB_0015b710 + -0x3c14)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x3c14)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x3c14)" ( (binary_expression "PTR_LAB_0015b710 + -0x3c14" identifier + number_literal) )))) ;) (expression_statement "(*pcVar32)(pVVar24,iVar25);" (call_expression "(*pcVar32)(pVVar24,iVar25)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(pVVar24,iVar25)" ( identifier , identifier ))) ;) (expression_statement "(*pcVar22)(pVVar24,0x11,0,pVVar24->nOp + 2,0);" (call_expression "(*pcVar22)(pVVar24,0x11,0,pVVar24->nOp + 2,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0x11,0,pVVar24->nOp + 2,0)" ( identifier , number_literal , number_literal , (binary_expression "pVVar24->nOp + 2" (field_expression "pVVar24->nOp" identifier -> field_identifier) + number_literal) , number_literal ))) ;) (expression_statement "(*pcVar22)(pVVar24,0x6f,iVar28,pWVar21->iEphCsr,0);" (call_expression "(*pcVar22)(pVVar24,0x6f,iVar28,pWVar21->iEphCsr,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0x6f,iVar28,pWVar21->iEphCsr,0)" ( identifier , number_literal , identifier , (field_expression "pWVar21->iEphCsr" identifier -> field_identifier) , number_literal ))) ;) (expression_statement "uVar7 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(pParse,pWVar21);" (assignment_expression "uVar7 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(pParse,pWVar21)" identifier = (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x2e00))(pParse,pWVar21)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x2e00))" ( (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x2e00)" * (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2e00)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2e00)" ( (binary_expression "PTR_LAB_0015b710 + -0x2e00" identifier + number_literal) )))) )) (argument_list "(pParse,pWVar21)" ( identifier , identifier )))) ;) (expression_statement "(*pcVar22)(pVVar24,0x46,0,iVar31,0);" (call_expression "(*pcVar22)(pVVar24,0x46,0,iVar31,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0x46,0,iVar31,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) (expression_statement "(*pcVar22)(pVVar24,0x24,iVar28,iVar6,0);" (call_expression "(*pcVar22)(pVVar24,0x24,iVar28,iVar6,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0x24,iVar28,iVar6,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "(*pcVar22)(pVVar24,0x24,pWVar21->iEphCsr,iVar6,0);" (call_expression "(*pcVar22)(pVVar24,0x24,pWVar21->iEphCsr,iVar6,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0x24,pWVar21->iEphCsr,iVar6,0)" ( identifier , number_literal , (field_expression "pWVar21->iEphCsr" identifier -> field_identifier) , identifier , number_literal ))) ;) (if_statement "if (bVar1) {\n      iVar25 = pVVar24->nOp;\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(pParse,pWVar21,iVar28,0,uVar7,regSize);\n      (*pcVar22)(pVVar24,5,iVar28,iVar25,0);\n      (*pcVar22)(pVVar24,0x24,iVar28,iVar6,0);\n      iStack_50 = pVVar24->nOp;\n      if (pEVar17 != (ExprList *)0x0) goto LAB_000c0e28;\n      pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n    }\n    else {\n      iStack_50 = pVVar24->nOp;\n      if (pEVar17 == (ExprList *)0x0) {\n        pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        uVar16 = pWVar21->eStart;\n        uVar10 = uVar7;\n        if (pWVar21->eEnd == 'R') {\n          if (pWVar21->eType == 'V') {\nLAB_000c1544:\n            iVar25 = pWVar21->nBufferCol;\n            if (pEStack_48 == (ExprList *)0x0) {\n              iVar11 = 0;\n            }\n            else {\n              iVar11 = pEStack_48->nExpr;\n              iVar25 = iVar25 + iVar11;\n            }\n            iVar11 = iVar11 + pWVar21->regPart;\n            uVar12 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar4 = iVar4 + 1;\n            if (0 < iStack_58) {\n              iVar13 = iStack_58 + iVar25;\n              iVar14 = iVar4 - iVar25;\n              do {\n                (*pcVar22)(pVVar24,0x5a,iVar28,iVar25,iVar14 + iVar25);\n                iVar25 = iVar25 + 1;\n              } while (iVar25 != iVar13);\n            }\n            iVar25 = (*pcVar22)(pVVar24,0x57,iVar4,iVar11,iStack_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pVVar24,uVar12,0xfffffff7);\n            iVar25 = (*pcVar22)(pVVar24,0x10,iVar25 + 2,0,iVar25 + 2);\n            (*pcVar22)(pVVar24,0x4e,iVar4,iVar11,iStack_58 + -1);\n            iVar4 = regSize;\n            if (uVar16 != 'R') {\n              uVar10 = 0;\n              iVar4 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (uVar16 == 'R') goto LAB_000c1494;\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,0,0);\n        }\n        else if (uVar16 == 'R') {\n          if (pWVar21->eType == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar25 = 0;\n          iVar4 = regSize;\nLAB_000c14a0:\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,uVar10,iVar4);\n          if (iVar25 != 0) {\n            iVar4 = pVVar24->nOp;\n            if (iVar25 < 0) {\n              iVar25 = iVar4 + -1;\n            }\n            if (pVVar24->db->mallocFailed == '\0') {\n              pVVar24->aOp[iVar25].p2 = iVar4;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4;\n            }\n          }\n        }\n        else {\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(pParse,pWVar21,iVar28,0,uVar7,regSize);\n    }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n      iVar25 = pVVar24->nOp;\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(pParse,pWVar21,iVar28,0,uVar7,regSize);\n      (*pcVar22)(pVVar24,5,iVar28,iVar25,0);\n      (*pcVar22)(pVVar24,0x24,iVar28,iVar6,0);\n      iStack_50 = pVVar24->nOp;\n      if (pEVar17 != (ExprList *)0x0) goto LAB_000c0e28;\n      pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n    }" { (expression_statement "iVar25 = pVVar24->nOp;" (assignment_expression "iVar25 = pVVar24->nOp" identifier = (field_expression "pVVar24->nOp" identifier -> field_identifier)) ;) (expression_statement "(*(code *)(PTR_LAB_0015b714 + -0x7af4))(pParse,pWVar21,iVar28,0,uVar7,regSize);" (call_expression "(*(code *)(PTR_LAB_0015b714 + -0x7af4))(pParse,pWVar21,iVar28,0,uVar7,regSize)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b714 + -0x7af4))" ( (pointer_expression "*(code *)(PTR_LAB_0015b714 + -0x7af4)" * (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7af4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x7af4)" ( (binary_expression "PTR_LAB_0015b714 + -0x7af4" identifier + number_literal) )))) )) (argument_list "(pParse,pWVar21,iVar28,0,uVar7,regSize)" ( identifier , identifier , identifier , number_literal , identifier , identifier ))) ;) (expression_statement "(*pcVar22)(pVVar24,5,iVar28,iVar25,0);" (call_expression "(*pcVar22)(pVVar24,5,iVar28,iVar25,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,5,iVar28,iVar25,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "(*pcVar22)(pVVar24,0x24,iVar28,iVar6,0);" (call_expression "(*pcVar22)(pVVar24,0x24,iVar28,iVar6,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0x24,iVar28,iVar6,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "iStack_50 = pVVar24->nOp;" (assignment_expression "iStack_50 = pVVar24->nOp" identifier = (field_expression "pVVar24->nOp" identifier -> field_identifier)) ;) (if_statement "if (pEVar17 != (ExprList *)0x0) goto LAB_000c0e28;" if (parenthesized_expression "(pEVar17 != (ExprList *)0x0)" ( (binary_expression "pEVar17 != (ExprList *)0x0" identifier != (cast_expression "(ExprList *)0x0" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000c0e28;" goto statement_identifier ;)) (expression_statement "pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);" (assignment_expression "pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508)" identifier = (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7508)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x7508)" ( (binary_expression "PTR_LAB_0015b714 + -0x7508" identifier + number_literal) )))) ;) }) (else_clause "else {\n      iStack_50 = pVVar24->nOp;\n      if (pEVar17 == (ExprList *)0x0) {\n        pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        uVar16 = pWVar21->eStart;\n        uVar10 = uVar7;\n        if (pWVar21->eEnd == 'R') {\n          if (pWVar21->eType == 'V') {\nLAB_000c1544:\n            iVar25 = pWVar21->nBufferCol;\n            if (pEStack_48 == (ExprList *)0x0) {\n              iVar11 = 0;\n            }\n            else {\n              iVar11 = pEStack_48->nExpr;\n              iVar25 = iVar25 + iVar11;\n            }\n            iVar11 = iVar11 + pWVar21->regPart;\n            uVar12 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar4 = iVar4 + 1;\n            if (0 < iStack_58) {\n              iVar13 = iStack_58 + iVar25;\n              iVar14 = iVar4 - iVar25;\n              do {\n                (*pcVar22)(pVVar24,0x5a,iVar28,iVar25,iVar14 + iVar25);\n                iVar25 = iVar25 + 1;\n              } while (iVar25 != iVar13);\n            }\n            iVar25 = (*pcVar22)(pVVar24,0x57,iVar4,iVar11,iStack_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pVVar24,uVar12,0xfffffff7);\n            iVar25 = (*pcVar22)(pVVar24,0x10,iVar25 + 2,0,iVar25 + 2);\n            (*pcVar22)(pVVar24,0x4e,iVar4,iVar11,iStack_58 + -1);\n            iVar4 = regSize;\n            if (uVar16 != 'R') {\n              uVar10 = 0;\n              iVar4 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (uVar16 == 'R') goto LAB_000c1494;\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,0,0);\n        }\n        else if (uVar16 == 'R') {\n          if (pWVar21->eType == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar25 = 0;\n          iVar4 = regSize;\nLAB_000c14a0:\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,uVar10,iVar4);\n          if (iVar25 != 0) {\n            iVar4 = pVVar24->nOp;\n            if (iVar25 < 0) {\n              iVar25 = iVar4 + -1;\n            }\n            if (pVVar24->db->mallocFailed == '\0') {\n              pVVar24->aOp[iVar25].p2 = iVar4;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4;\n            }\n          }\n        }\n        else {\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(pParse,pWVar21,iVar28,0,uVar7,regSize);\n    }" else (compound_statement "{\n      iStack_50 = pVVar24->nOp;\n      if (pEVar17 == (ExprList *)0x0) {\n        pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        uVar16 = pWVar21->eStart;\n        uVar10 = uVar7;\n        if (pWVar21->eEnd == 'R') {\n          if (pWVar21->eType == 'V') {\nLAB_000c1544:\n            iVar25 = pWVar21->nBufferCol;\n            if (pEStack_48 == (ExprList *)0x0) {\n              iVar11 = 0;\n            }\n            else {\n              iVar11 = pEStack_48->nExpr;\n              iVar25 = iVar25 + iVar11;\n            }\n            iVar11 = iVar11 + pWVar21->regPart;\n            uVar12 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar4 = iVar4 + 1;\n            if (0 < iStack_58) {\n              iVar13 = iStack_58 + iVar25;\n              iVar14 = iVar4 - iVar25;\n              do {\n                (*pcVar22)(pVVar24,0x5a,iVar28,iVar25,iVar14 + iVar25);\n                iVar25 = iVar25 + 1;\n              } while (iVar25 != iVar13);\n            }\n            iVar25 = (*pcVar22)(pVVar24,0x57,iVar4,iVar11,iStack_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pVVar24,uVar12,0xfffffff7);\n            iVar25 = (*pcVar22)(pVVar24,0x10,iVar25 + 2,0,iVar25 + 2);\n            (*pcVar22)(pVVar24,0x4e,iVar4,iVar11,iStack_58 + -1);\n            iVar4 = regSize;\n            if (uVar16 != 'R') {\n              uVar10 = 0;\n              iVar4 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (uVar16 == 'R') goto LAB_000c1494;\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,0,0);\n        }\n        else if (uVar16 == 'R') {\n          if (pWVar21->eType == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar25 = 0;\n          iVar4 = regSize;\nLAB_000c14a0:\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,uVar10,iVar4);\n          if (iVar25 != 0) {\n            iVar4 = pVVar24->nOp;\n            if (iVar25 < 0) {\n              iVar25 = iVar4 + -1;\n            }\n            if (pVVar24->db->mallocFailed == '\0') {\n              pVVar24->aOp[iVar25].p2 = iVar4;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4;\n            }\n          }\n        }\n        else {\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(pParse,pWVar21,iVar28,0,uVar7,regSize);\n    }" { (expression_statement "iStack_50 = pVVar24->nOp;" (assignment_expression "iStack_50 = pVVar24->nOp" identifier = (field_expression "pVVar24->nOp" identifier -> field_identifier)) ;) (if_statement "if (pEVar17 == (ExprList *)0x0) {\n        pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        uVar16 = pWVar21->eStart;\n        uVar10 = uVar7;\n        if (pWVar21->eEnd == 'R') {\n          if (pWVar21->eType == 'V') {\nLAB_000c1544:\n            iVar25 = pWVar21->nBufferCol;\n            if (pEStack_48 == (ExprList *)0x0) {\n              iVar11 = 0;\n            }\n            else {\n              iVar11 = pEStack_48->nExpr;\n              iVar25 = iVar25 + iVar11;\n            }\n            iVar11 = iVar11 + pWVar21->regPart;\n            uVar12 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar4 = iVar4 + 1;\n            if (0 < iStack_58) {\n              iVar13 = iStack_58 + iVar25;\n              iVar14 = iVar4 - iVar25;\n              do {\n                (*pcVar22)(pVVar24,0x5a,iVar28,iVar25,iVar14 + iVar25);\n                iVar25 = iVar25 + 1;\n              } while (iVar25 != iVar13);\n            }\n            iVar25 = (*pcVar22)(pVVar24,0x57,iVar4,iVar11,iStack_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pVVar24,uVar12,0xfffffff7);\n            iVar25 = (*pcVar22)(pVVar24,0x10,iVar25 + 2,0,iVar25 + 2);\n            (*pcVar22)(pVVar24,0x4e,iVar4,iVar11,iStack_58 + -1);\n            iVar4 = regSize;\n            if (uVar16 != 'R') {\n              uVar10 = 0;\n              iVar4 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (uVar16 == 'R') goto LAB_000c1494;\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,0,0);\n        }\n        else if (uVar16 == 'R') {\n          if (pWVar21->eType == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar25 = 0;\n          iVar4 = regSize;\nLAB_000c14a0:\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,uVar10,iVar4);\n          if (iVar25 != 0) {\n            iVar4 = pVVar24->nOp;\n            if (iVar25 < 0) {\n              iVar25 = iVar4 + -1;\n            }\n            if (pVVar24->db->mallocFailed == '\0') {\n              pVVar24->aOp[iVar25].p2 = iVar4;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4;\n            }\n          }\n        }\n        else {\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }" if (parenthesized_expression "(pEVar17 == (ExprList *)0x0)" ( (binary_expression "pEVar17 == (ExprList *)0x0" identifier == (cast_expression "(ExprList *)0x0" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }" { (expression_statement "pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);" (assignment_expression "pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508)" identifier = (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7508)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x7508)" ( (binary_expression "PTR_LAB_0015b714 + -0x7508" identifier + number_literal) )))) ;) }) (else_clause "else {\nLAB_000c0e28:\n        uVar16 = pWVar21->eStart;\n        uVar10 = uVar7;\n        if (pWVar21->eEnd == 'R') {\n          if (pWVar21->eType == 'V') {\nLAB_000c1544:\n            iVar25 = pWVar21->nBufferCol;\n            if (pEStack_48 == (ExprList *)0x0) {\n              iVar11 = 0;\n            }\n            else {\n              iVar11 = pEStack_48->nExpr;\n              iVar25 = iVar25 + iVar11;\n            }\n            iVar11 = iVar11 + pWVar21->regPart;\n            uVar12 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar4 = iVar4 + 1;\n            if (0 < iStack_58) {\n              iVar13 = iStack_58 + iVar25;\n              iVar14 = iVar4 - iVar25;\n              do {\n                (*pcVar22)(pVVar24,0x5a,iVar28,iVar25,iVar14 + iVar25);\n                iVar25 = iVar25 + 1;\n              } while (iVar25 != iVar13);\n            }\n            iVar25 = (*pcVar22)(pVVar24,0x57,iVar4,iVar11,iStack_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pVVar24,uVar12,0xfffffff7);\n            iVar25 = (*pcVar22)(pVVar24,0x10,iVar25 + 2,0,iVar25 + 2);\n            (*pcVar22)(pVVar24,0x4e,iVar4,iVar11,iStack_58 + -1);\n            iVar4 = regSize;\n            if (uVar16 != 'R') {\n              uVar10 = 0;\n              iVar4 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (uVar16 == 'R') goto LAB_000c1494;\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,0,0);\n        }\n        else if (uVar16 == 'R') {\n          if (pWVar21->eType == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar25 = 0;\n          iVar4 = regSize;\nLAB_000c14a0:\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,uVar10,iVar4);\n          if (iVar25 != 0) {\n            iVar4 = pVVar24->nOp;\n            if (iVar25 < 0) {\n              iVar25 = iVar4 + -1;\n            }\n            if (pVVar24->db->mallocFailed == '\0') {\n              pVVar24->aOp[iVar25].p2 = iVar4;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4;\n            }\n          }\n        }\n        else {\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }" else (compound_statement "{\nLAB_000c0e28:\n        uVar16 = pWVar21->eStart;\n        uVar10 = uVar7;\n        if (pWVar21->eEnd == 'R') {\n          if (pWVar21->eType == 'V') {\nLAB_000c1544:\n            iVar25 = pWVar21->nBufferCol;\n            if (pEStack_48 == (ExprList *)0x0) {\n              iVar11 = 0;\n            }\n            else {\n              iVar11 = pEStack_48->nExpr;\n              iVar25 = iVar25 + iVar11;\n            }\n            iVar11 = iVar11 + pWVar21->regPart;\n            uVar12 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar4 = iVar4 + 1;\n            if (0 < iStack_58) {\n              iVar13 = iStack_58 + iVar25;\n              iVar14 = iVar4 - iVar25;\n              do {\n                (*pcVar22)(pVVar24,0x5a,iVar28,iVar25,iVar14 + iVar25);\n                iVar25 = iVar25 + 1;\n              } while (iVar25 != iVar13);\n            }\n            iVar25 = (*pcVar22)(pVVar24,0x57,iVar4,iVar11,iStack_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pVVar24,uVar12,0xfffffff7);\n            iVar25 = (*pcVar22)(pVVar24,0x10,iVar25 + 2,0,iVar25 + 2);\n            (*pcVar22)(pVVar24,0x4e,iVar4,iVar11,iStack_58 + -1);\n            iVar4 = regSize;\n            if (uVar16 != 'R') {\n              uVar10 = 0;\n              iVar4 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (uVar16 == 'R') goto LAB_000c1494;\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,0,0);\n        }\n        else if (uVar16 == 'R') {\n          if (pWVar21->eType == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar25 = 0;\n          iVar4 = regSize;\nLAB_000c14a0:\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,uVar10,iVar4);\n          if (iVar25 != 0) {\n            iVar4 = pVVar24->nOp;\n            if (iVar25 < 0) {\n              iVar25 = iVar4 + -1;\n            }\n            if (pVVar24->db->mallocFailed == '\0') {\n              pVVar24->aOp[iVar25].p2 = iVar4;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4;\n            }\n          }\n        }\n        else {\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }" { (labeled_statement "LAB_000c0e28:\n        uVar16 = pWVar21->eStart;" statement_identifier : (expression_statement "uVar16 = pWVar21->eStart;" (assignment_expression "uVar16 = pWVar21->eStart" identifier = (field_expression "pWVar21->eStart" identifier -> field_identifier)) ;)) (expression_statement "uVar10 = uVar7;" (assignment_expression "uVar10 = uVar7" identifier = identifier) ;) (if_statement "if (pWVar21->eEnd == 'R') {\n          if (pWVar21->eType == 'V') {\nLAB_000c1544:\n            iVar25 = pWVar21->nBufferCol;\n            if (pEStack_48 == (ExprList *)0x0) {\n              iVar11 = 0;\n            }\n            else {\n              iVar11 = pEStack_48->nExpr;\n              iVar25 = iVar25 + iVar11;\n            }\n            iVar11 = iVar11 + pWVar21->regPart;\n            uVar12 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar4 = iVar4 + 1;\n            if (0 < iStack_58) {\n              iVar13 = iStack_58 + iVar25;\n              iVar14 = iVar4 - iVar25;\n              do {\n                (*pcVar22)(pVVar24,0x5a,iVar28,iVar25,iVar14 + iVar25);\n                iVar25 = iVar25 + 1;\n              } while (iVar25 != iVar13);\n            }\n            iVar25 = (*pcVar22)(pVVar24,0x57,iVar4,iVar11,iStack_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pVVar24,uVar12,0xfffffff7);\n            iVar25 = (*pcVar22)(pVVar24,0x10,iVar25 + 2,0,iVar25 + 2);\n            (*pcVar22)(pVVar24,0x4e,iVar4,iVar11,iStack_58 + -1);\n            iVar4 = regSize;\n            if (uVar16 != 'R') {\n              uVar10 = 0;\n              iVar4 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (uVar16 == 'R') goto LAB_000c1494;\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,0,0);\n        }\n        else if (uVar16 == 'R') {\n          if (pWVar21->eType == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar25 = 0;\n          iVar4 = regSize;\nLAB_000c14a0:\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,uVar10,iVar4);\n          if (iVar25 != 0) {\n            iVar4 = pVVar24->nOp;\n            if (iVar25 < 0) {\n              iVar25 = iVar4 + -1;\n            }\n            if (pVVar24->db->mallocFailed == '\0') {\n              pVVar24->aOp[iVar25].p2 = iVar4;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4;\n            }\n          }\n        }\n        else {\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }" if (parenthesized_expression "(pWVar21->eEnd == 'R')" ( (binary_expression "pWVar21->eEnd == 'R'" (field_expression "pWVar21->eEnd" identifier -> field_identifier) == (char_literal "'R'" ' character ')) )) (compound_statement "{\n          if (pWVar21->eType == 'V') {\nLAB_000c1544:\n            iVar25 = pWVar21->nBufferCol;\n            if (pEStack_48 == (ExprList *)0x0) {\n              iVar11 = 0;\n            }\n            else {\n              iVar11 = pEStack_48->nExpr;\n              iVar25 = iVar25 + iVar11;\n            }\n            iVar11 = iVar11 + pWVar21->regPart;\n            uVar12 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar4 = iVar4 + 1;\n            if (0 < iStack_58) {\n              iVar13 = iStack_58 + iVar25;\n              iVar14 = iVar4 - iVar25;\n              do {\n                (*pcVar22)(pVVar24,0x5a,iVar28,iVar25,iVar14 + iVar25);\n                iVar25 = iVar25 + 1;\n              } while (iVar25 != iVar13);\n            }\n            iVar25 = (*pcVar22)(pVVar24,0x57,iVar4,iVar11,iStack_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pVVar24,uVar12,0xfffffff7);\n            iVar25 = (*pcVar22)(pVVar24,0x10,iVar25 + 2,0,iVar25 + 2);\n            (*pcVar22)(pVVar24,0x4e,iVar4,iVar11,iStack_58 + -1);\n            iVar4 = regSize;\n            if (uVar16 != 'R') {\n              uVar10 = 0;\n              iVar4 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (uVar16 == 'R') goto LAB_000c1494;\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,0,0);\n        }" { (if_statement "if (pWVar21->eType == 'V') {\nLAB_000c1544:\n            iVar25 = pWVar21->nBufferCol;\n            if (pEStack_48 == (ExprList *)0x0) {\n              iVar11 = 0;\n            }\n            else {\n              iVar11 = pEStack_48->nExpr;\n              iVar25 = iVar25 + iVar11;\n            }\n            iVar11 = iVar11 + pWVar21->regPart;\n            uVar12 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar4 = iVar4 + 1;\n            if (0 < iStack_58) {\n              iVar13 = iStack_58 + iVar25;\n              iVar14 = iVar4 - iVar25;\n              do {\n                (*pcVar22)(pVVar24,0x5a,iVar28,iVar25,iVar14 + iVar25);\n                iVar25 = iVar25 + 1;\n              } while (iVar25 != iVar13);\n            }\n            iVar25 = (*pcVar22)(pVVar24,0x57,iVar4,iVar11,iStack_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pVVar24,uVar12,0xfffffff7);\n            iVar25 = (*pcVar22)(pVVar24,0x10,iVar25 + 2,0,iVar25 + 2);\n            (*pcVar22)(pVVar24,0x4e,iVar4,iVar11,iStack_58 + -1);\n            iVar4 = regSize;\n            if (uVar16 != 'R') {\n              uVar10 = 0;\n              iVar4 = 0;\n            }\n            goto LAB_000c14a0;\n          }" if (parenthesized_expression "(pWVar21->eType == 'V')" ( (binary_expression "pWVar21->eType == 'V'" (field_expression "pWVar21->eType" identifier -> field_identifier) == (char_literal "'V'" ' character ')) )) (compound_statement "{\nLAB_000c1544:\n            iVar25 = pWVar21->nBufferCol;\n            if (pEStack_48 == (ExprList *)0x0) {\n              iVar11 = 0;\n            }\n            else {\n              iVar11 = pEStack_48->nExpr;\n              iVar25 = iVar25 + iVar11;\n            }\n            iVar11 = iVar11 + pWVar21->regPart;\n            uVar12 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);\n            iVar4 = iVar4 + 1;\n            if (0 < iStack_58) {\n              iVar13 = iStack_58 + iVar25;\n              iVar14 = iVar4 - iVar25;\n              do {\n                (*pcVar22)(pVVar24,0x5a,iVar28,iVar25,iVar14 + iVar25);\n                iVar25 = iVar25 + 1;\n              } while (iVar25 != iVar13);\n            }\n            iVar25 = (*pcVar22)(pVVar24,0x57,iVar4,iVar11,iStack_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pVVar24,uVar12,0xfffffff7);\n            iVar25 = (*pcVar22)(pVVar24,0x10,iVar25 + 2,0,iVar25 + 2);\n            (*pcVar22)(pVVar24,0x4e,iVar4,iVar11,iStack_58 + -1);\n            iVar4 = regSize;\n            if (uVar16 != 'R') {\n              uVar10 = 0;\n              iVar4 = 0;\n            }\n            goto LAB_000c14a0;\n          }" { (labeled_statement "LAB_000c1544:\n            iVar25 = pWVar21->nBufferCol;" statement_identifier : (expression_statement "iVar25 = pWVar21->nBufferCol;" (assignment_expression "iVar25 = pWVar21->nBufferCol" identifier = (field_expression "pWVar21->nBufferCol" identifier -> field_identifier)) ;)) (if_statement "if (pEStack_48 == (ExprList *)0x0) {\n              iVar11 = 0;\n            }\n            else {\n              iVar11 = pEStack_48->nExpr;\n              iVar25 = iVar25 + iVar11;\n            }" if (parenthesized_expression "(pEStack_48 == (ExprList *)0x0)" ( (binary_expression "pEStack_48 == (ExprList *)0x0" identifier == (cast_expression "(ExprList *)0x0" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              iVar11 = 0;\n            }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) }) (else_clause "else {\n              iVar11 = pEStack_48->nExpr;\n              iVar25 = iVar25 + iVar11;\n            }" else (compound_statement "{\n              iVar11 = pEStack_48->nExpr;\n              iVar25 = iVar25 + iVar11;\n            }" { (expression_statement "iVar11 = pEStack_48->nExpr;" (assignment_expression "iVar11 = pEStack_48->nExpr" identifier = (field_expression "pEStack_48->nExpr" identifier -> field_identifier)) ;) (expression_statement "iVar25 = iVar25 + iVar11;" (assignment_expression "iVar25 = iVar25 + iVar11" identifier = (binary_expression "iVar25 + iVar11" identifier + identifier)) ;) }))) (expression_statement "iVar11 = iVar11 + pWVar21->regPart;" (assignment_expression "iVar11 = iVar11 + pWVar21->regPart" identifier = (binary_expression "iVar11 + pWVar21->regPart" identifier + (field_expression "pWVar21->regPart" identifier -> field_identifier))) ;) (expression_statement "uVar12 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0);" (assignment_expression "uVar12 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0)" identifier = (call_expression "(*(code *)(PTR_LAB_0015b714 + -0x7fc4))(pParse,pEVar17,0,0)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b714 + -0x7fc4))" ( (pointer_expression "*(code *)(PTR_LAB_0015b714 + -0x7fc4)" * (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7fc4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x7fc4)" ( (binary_expression "PTR_LAB_0015b714 + -0x7fc4" identifier + number_literal) )))) )) (argument_list "(pParse,pEVar17,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (if_statement "if (0 < iStack_58) {\n              iVar13 = iStack_58 + iVar25;\n              iVar14 = iVar4 - iVar25;\n              do {\n                (*pcVar22)(pVVar24,0x5a,iVar28,iVar25,iVar14 + iVar25);\n                iVar25 = iVar25 + 1;\n              } while (iVar25 != iVar13);\n            }" if (parenthesized_expression "(0 < iStack_58)" ( (binary_expression "0 < iStack_58" number_literal < identifier) )) (compound_statement "{\n              iVar13 = iStack_58 + iVar25;\n              iVar14 = iVar4 - iVar25;\n              do {\n                (*pcVar22)(pVVar24,0x5a,iVar28,iVar25,iVar14 + iVar25);\n                iVar25 = iVar25 + 1;\n              } while (iVar25 != iVar13);\n            }" { (expression_statement "iVar13 = iStack_58 + iVar25;" (assignment_expression "iVar13 = iStack_58 + iVar25" identifier = (binary_expression "iStack_58 + iVar25" identifier + identifier)) ;) (expression_statement "iVar14 = iVar4 - iVar25;" (assignment_expression "iVar14 = iVar4 - iVar25" identifier = (binary_expression "iVar4 - iVar25" identifier - identifier)) ;) (do_statement "do {\n                (*pcVar22)(pVVar24,0x5a,iVar28,iVar25,iVar14 + iVar25);\n                iVar25 = iVar25 + 1;\n              } while (iVar25 != iVar13);" do (compound_statement "{\n                (*pcVar22)(pVVar24,0x5a,iVar28,iVar25,iVar14 + iVar25);\n                iVar25 = iVar25 + 1;\n              }" { (expression_statement "(*pcVar22)(pVVar24,0x5a,iVar28,iVar25,iVar14 + iVar25);" (call_expression "(*pcVar22)(pVVar24,0x5a,iVar28,iVar25,iVar14 + iVar25)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0x5a,iVar28,iVar25,iVar14 + iVar25)" ( identifier , number_literal , identifier , identifier , (binary_expression "iVar14 + iVar25" identifier + identifier) ))) ;) (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar25 != iVar13)" ( (binary_expression "iVar25 != iVar13" identifier != identifier) )) ;) })) (expression_statement "iVar25 = (*pcVar22)(pVVar24,0x57,iVar4,iVar11,iStack_58);" (assignment_expression "iVar25 = (*pcVar22)(pVVar24,0x57,iVar4,iVar11,iStack_58)" identifier = (call_expression "(*pcVar22)(pVVar24,0x57,iVar4,iVar11,iStack_58)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0x57,iVar4,iVar11,iStack_58)" ( identifier , number_literal , identifier , identifier , identifier )))) ;) (expression_statement "(*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pVVar24,uVar12,0xfffffff7);" (call_expression "(*(code *)(PTR_LAB_0015b6c0 + -0x5958))(pVVar24,uVar12,0xfffffff7)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b6c0 + -0x5958))" ( (pointer_expression "*(code *)(PTR_LAB_0015b6c0 + -0x5958)" * (cast_expression "(code *)(PTR_LAB_0015b6c0 + -0x5958)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6c0 + -0x5958)" ( (binary_expression "PTR_LAB_0015b6c0 + -0x5958" identifier + number_literal) )))) )) (argument_list "(pVVar24,uVar12,0xfffffff7)" ( identifier , identifier , number_literal ))) ;) (expression_statement "iVar25 = (*pcVar22)(pVVar24,0x10,iVar25 + 2,0,iVar25 + 2);" (assignment_expression "iVar25 = (*pcVar22)(pVVar24,0x10,iVar25 + 2,0,iVar25 + 2)" identifier = (call_expression "(*pcVar22)(pVVar24,0x10,iVar25 + 2,0,iVar25 + 2)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0x10,iVar25 + 2,0,iVar25 + 2)" ( identifier , number_literal , (binary_expression "iVar25 + 2" identifier + number_literal) , number_literal , (binary_expression "iVar25 + 2" identifier + number_literal) )))) ;) (expression_statement "(*pcVar22)(pVVar24,0x4e,iVar4,iVar11,iStack_58 + -1);" (call_expression "(*pcVar22)(pVVar24,0x4e,iVar4,iVar11,iStack_58 + -1)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0x4e,iVar4,iVar11,iStack_58 + -1)" ( identifier , number_literal , identifier , identifier , (binary_expression "iStack_58 + -1" identifier + number_literal) ))) ;) (expression_statement "iVar4 = regSize;" (assignment_expression "iVar4 = regSize" identifier = identifier) ;) (if_statement "if (uVar16 != 'R') {\n              uVar10 = 0;\n              iVar4 = 0;\n            }" if (parenthesized_expression "(uVar16 != 'R')" ( (binary_expression "uVar16 != 'R'" identifier != (char_literal "'R'" ' character ')) )) (compound_statement "{\n              uVar10 = 0;\n              iVar4 = 0;\n            }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) })) (goto_statement "goto LAB_000c14a0;" goto statement_identifier ;) })) (if_statement "if (uVar16 == 'R') goto LAB_000c1494;" if (parenthesized_expression "(uVar16 == 'R')" ( (binary_expression "uVar16 == 'R'" identifier == (char_literal "'R'" ' character ')) )) (goto_statement "goto LAB_000c1494;" goto statement_identifier ;)) (expression_statement "pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);" (assignment_expression "pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508)" identifier = (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7508)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x7508)" ( (binary_expression "PTR_LAB_0015b714 + -0x7508" identifier + number_literal) )))) ;) (expression_statement "(*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,0,0);" (call_expression "(*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,0,0)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(pParse,pWVar21,iVar31,regGosub,addrGosub,0,0)" ( identifier , identifier , identifier , identifier , identifier , number_literal , number_literal ))) ;) }) (else_clause "else if (uVar16 == 'R') {\n          if (pWVar21->eType == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar25 = 0;\n          iVar4 = regSize;\nLAB_000c14a0:\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,uVar10,iVar4);\n          if (iVar25 != 0) {\n            iVar4 = pVVar24->nOp;\n            if (iVar25 < 0) {\n              iVar25 = iVar4 + -1;\n            }\n            if (pVVar24->db->mallocFailed == '\0') {\n              pVVar24->aOp[iVar25].p2 = iVar4;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4;\n            }\n          }\n        }\n        else {\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }" else (if_statement "if (uVar16 == 'R') {\n          if (pWVar21->eType == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar25 = 0;\n          iVar4 = regSize;\nLAB_000c14a0:\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,uVar10,iVar4);\n          if (iVar25 != 0) {\n            iVar4 = pVVar24->nOp;\n            if (iVar25 < 0) {\n              iVar25 = iVar4 + -1;\n            }\n            if (pVVar24->db->mallocFailed == '\0') {\n              pVVar24->aOp[iVar25].p2 = iVar4;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4;\n            }\n          }\n        }\n        else {\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }" if (parenthesized_expression "(uVar16 == 'R')" ( (binary_expression "uVar16 == 'R'" identifier == (char_literal "'R'" ' character ')) )) (compound_statement "{\n          if (pWVar21->eType == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar25 = 0;\n          iVar4 = regSize;\nLAB_000c14a0:\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,uVar10,iVar4);\n          if (iVar25 != 0) {\n            iVar4 = pVVar24->nOp;\n            if (iVar25 < 0) {\n              iVar25 = iVar4 + -1;\n            }\n            if (pVVar24->db->mallocFailed == '\0') {\n              pVVar24->aOp[iVar25].p2 = iVar4;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4;\n            }\n          }\n        }" { (if_statement "if (pWVar21->eType == 'V') goto LAB_000c1544;" if (parenthesized_expression "(pWVar21->eType == 'V')" ( (binary_expression "pWVar21->eType == 'V'" (field_expression "pWVar21->eType" identifier -> field_identifier) == (char_literal "'V'" ' character ')) )) (goto_statement "goto LAB_000c1544;" goto statement_identifier ;)) (labeled_statement "LAB_000c1494:\n          iVar25 = 0;" statement_identifier : (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;)) (expression_statement "iVar4 = regSize;" (assignment_expression "iVar4 = regSize" identifier = identifier) ;) (labeled_statement "LAB_000c14a0:\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);" statement_identifier : (expression_statement "pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);" (assignment_expression "pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508)" identifier = (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7508)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x7508)" ( (binary_expression "PTR_LAB_0015b714 + -0x7508" identifier + number_literal) )))) ;)) (expression_statement "(*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,uVar10,iVar4);" (call_expression "(*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,uVar10,iVar4)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(pParse,pWVar21,iVar31,regGosub,addrGosub,uVar10,iVar4)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (if_statement "if (iVar25 != 0) {\n            iVar4 = pVVar24->nOp;\n            if (iVar25 < 0) {\n              iVar25 = iVar4 + -1;\n            }\n            if (pVVar24->db->mallocFailed == '\0') {\n              pVVar24->aOp[iVar25].p2 = iVar4;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4;\n            }\n          }" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar4 = pVVar24->nOp;\n            if (iVar25 < 0) {\n              iVar25 = iVar4 + -1;\n            }\n            if (pVVar24->db->mallocFailed == '\0') {\n              pVVar24->aOp[iVar25].p2 = iVar4;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4;\n            }\n          }" { (expression_statement "iVar4 = pVVar24->nOp;" (assignment_expression "iVar4 = pVVar24->nOp" identifier = (field_expression "pVVar24->nOp" identifier -> field_identifier)) ;) (if_statement "if (iVar25 < 0) {\n              iVar25 = iVar4 + -1;\n            }" if (parenthesized_expression "(iVar25 < 0)" ( (binary_expression "iVar25 < 0" identifier < number_literal) )) (compound_statement "{\n              iVar25 = iVar4 + -1;\n            }" { (expression_statement "iVar25 = iVar4 + -1;" (assignment_expression "iVar25 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;) })) (if_statement "if (pVVar24->db->mallocFailed == '\0') {\n              pVVar24->aOp[iVar25].p2 = iVar4;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4;\n            }" if (parenthesized_expression "(pVVar24->db->mallocFailed == '\0')" ( (binary_expression "pVVar24->db->mallocFailed == '\0'" (field_expression "pVVar24->db->mallocFailed" (field_expression "pVVar24->db" identifier -> field_identifier) -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              pVVar24->aOp[iVar25].p2 = iVar4;\n            }" { (expression_statement "pVVar24->aOp[iVar25].p2 = iVar4;" (assignment_expression "pVVar24->aOp[iVar25].p2 = iVar4" (field_expression "pVVar24->aOp[iVar25].p2" (subscript_expression "pVVar24->aOp[iVar25]" (field_expression "pVVar24->aOp" identifier -> field_identifier) [ identifier ]) . field_identifier) = identifier) ;) }) (else_clause "else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4;\n            }" else (compound_statement "{\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4;\n            }" { (expression_statement "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4;" (assignment_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar4" (pointer_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c)" * (cast_expression "(int *)(PTR_DAT_0015b5d8 + -0x450c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x450c)" ( (binary_expression "PTR_DAT_0015b5d8 + -0x450c" identifier + number_literal) )))) = identifier) ;) }))) })) }) (else_clause "else {\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }" else (compound_statement "{\n          pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }" { (expression_statement "pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508);" (assignment_expression "pcVar29 = (code *)(PTR_LAB_0015b714 + -0x7508)" identifier = (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7508)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x7508)" ( (binary_expression "PTR_LAB_0015b714 + -0x7508" identifier + number_literal) )))) ;) }))))) (if_statement "if (bVar1) goto LAB_000c0e5c;" if (parenthesized_expression "(bVar1)" ( identifier )) (goto_statement "goto LAB_000c0e5c;" goto statement_identifier ;)) }))) (expression_statement "(*(code *)(PTR_LAB_0015b714 + -0x7af4))(pParse,pWVar21,iVar28,0,uVar7,regSize);" (call_expression "(*(code *)(PTR_LAB_0015b714 + -0x7af4))(pParse,pWVar21,iVar28,0,uVar7,regSize)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b714 + -0x7af4))" ( (pointer_expression "*(code *)(PTR_LAB_0015b714 + -0x7af4)" * (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7af4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x7af4)" ( (binary_expression "PTR_LAB_0015b714 + -0x7af4" identifier + number_literal) )))) )) (argument_list "(pParse,pWVar21,iVar28,0,uVar7,regSize)" ( identifier , identifier , identifier , number_literal , identifier , identifier ))) ;) }))) (labeled_statement "LAB_000c0e5c:\n    (*pcVar22)(pVVar24,0x53,iVar31,1,0);" statement_identifier : (expression_statement "(*pcVar22)(pVVar24,0x53,iVar31,1,0);" (call_expression "(*pcVar22)(pVVar24,0x53,iVar31,1,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0x53,iVar31,1,0)" ( identifier , number_literal , identifier , number_literal , number_literal ))) ;)) (expression_statement "(*pcVar22)(pVVar24,5,iVar28,iStack_50,0);" (call_expression "(*pcVar22)(pVVar24,5,iVar28,iStack_50,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,5,iVar28,iStack_50,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "(*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,0,0);" (call_expression "(*pcVar29)(pParse,pWVar21,iVar31,regGosub,addrGosub,0,0)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(pParse,pWVar21,iVar31,regGosub,addrGosub,0,0)" ( identifier , identifier , identifier , identifier , identifier , number_literal , number_literal ))) ;) (expression_statement "(*pcVar32)(pVVar24,iVar6);" (call_expression "(*pcVar32)(pVVar24,iVar6)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(pVVar24,iVar6)" ( identifier , identifier ))) ;) (expression_statement "(*pcVar22)(pVVar24,0x8a,pWVar21->iEphCsr,0,0);" (call_expression "(*pcVar22)(pVVar24,0x8a,pWVar21->iEphCsr,0,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0x8a,pWVar21->iEphCsr,0,0)" ( identifier , number_literal , (field_expression "pWVar21->iEphCsr" identifier -> field_identifier) , number_literal , number_literal ))) ;) }))) (expression_statement "puVar19 = (undefined1 *)0x42;" (assignment_expression "puVar19 = (undefined1 *)0x42" identifier = (cast_expression "(undefined1 *)0x42" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*pcVar22)(pVVar24,0x42,iVar5,0,0);" (call_expression "(*pcVar22)(pVVar24,0x42,iVar5,0,0)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pVVar24,0x42,iVar5,0,0)" ( identifier , number_literal , identifier , number_literal , number_literal ))) ;) (expression_statement "pParse_00 = (Parse *)pVVar24->nOp;" (assignment_expression "pParse_00 = (Parse *)pVVar24->nOp" identifier = (cast_expression "(Parse *)pVVar24->nOp" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pVVar24->nOp" identifier -> field_identifier))) ;) (if_statement "if ((int)puStack_60 < 0) {\n    puStack_60 = (undefined1 *)((int)&pParse_00[-1].pRename + 3);\n  }" if (parenthesized_expression "((int)puStack_60 < 0)" ( (binary_expression "(int)puStack_60 < 0" (cast_expression "(int)puStack_60" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    puStack_60 = (undefined1 *)((int)&pParse_00[-1].pRename + 3);\n  }" { (expression_statement "puStack_60 = (undefined1 *)((int)&pParse_00[-1].pRename + 3);" (assignment_expression "puStack_60 = (undefined1 *)((int)&pParse_00[-1].pRename + 3)" identifier = (cast_expression "(undefined1 *)((int)&pParse_00[-1].pRename + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pParse_00[-1].pRename + 3)" ( (binary_expression "(int)&pParse_00[-1].pRename + 3" (cast_expression "(int)&pParse_00[-1].pRename" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pParse_00[-1].pRename" & (field_expression "pParse_00[-1].pRename" (subscript_expression "pParse_00[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) })) (if_statement "if (pVVar24->db->mallocFailed == '\0') {\n    pOVar15 = pVVar24->aOp + (int)puStack_60;\n    puVar19 = puStack_60;\n  }\n  else {\n    pOVar15 = (Op *)(PTR_DAT_0015b5d8 + -0x4514);\n  }" if (parenthesized_expression "(pVVar24->db->mallocFailed == '\0')" ( (binary_expression "pVVar24->db->mallocFailed == '\0'" (field_expression "pVVar24->db->mallocFailed" (field_expression "pVVar24->db" identifier -> field_identifier) -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    pOVar15 = pVVar24->aOp + (int)puStack_60;\n    puVar19 = puStack_60;\n  }" { (expression_statement "pOVar15 = pVVar24->aOp + (int)puStack_60;" (assignment_expression "pOVar15 = pVVar24->aOp + (int)puStack_60" identifier = (binary_expression "pVVar24->aOp + (int)puStack_60" (field_expression "pVVar24->aOp" identifier -> field_identifier) + (cast_expression "(int)puStack_60" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar19 = puStack_60;" (assignment_expression "puVar19 = puStack_60" identifier = identifier) ;) }) (else_clause "else {\n    pOVar15 = (Op *)(PTR_DAT_0015b5d8 + -0x4514);\n  }" else (compound_statement "{\n    pOVar15 = (Op *)(PTR_DAT_0015b5d8 + -0x4514);\n  }" { (expression_statement "pOVar15 = (Op *)(PTR_DAT_0015b5d8 + -0x4514);" (assignment_expression "pOVar15 = (Op *)(PTR_DAT_0015b5d8 + -0x4514)" identifier = (cast_expression "(Op *)(PTR_DAT_0015b5d8 + -0x4514)" ( (type_descriptor "Op *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x4514)" ( (binary_expression "PTR_DAT_0015b5d8 + -0x4514" identifier + number_literal) )))) ;) }))) (expression_statement "pOVar15->p2 = (int)pParse_00;" (assignment_expression "pOVar15->p2 = (int)pParse_00" (field_expression "pOVar15->p2" identifier -> field_identifier) = (cast_expression "(int)pParse_00" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (labeled_statement "LAB_000c0f44:\n  if (iStack_2c == *(int *)puVar30) {\n    return;\n  }" statement_identifier : (if_statement "if (iStack_2c == *(int *)puVar30) {\n    return;\n  }" if (parenthesized_expression "(iStack_2c == *(int *)puVar30)" ( (binary_expression "iStack_2c == *(int *)puVar30" identifier == (pointer_expression "*(int *)puVar30" * (cast_expression "(int *)puVar30" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "puVar30 = PTR___stack_chk_fail_0015ba10;" (assignment_expression "puVar30 = PTR___stack_chk_fail_0015ba10" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0015ba10)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015ba10)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015ba10)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0015ba10" * (cast_expression "(code *)PTR___stack_chk_fail_0015ba10" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "psVar23 = pParse_00->db;" (assignment_expression "psVar23 = pParse_00->db" identifier = (field_expression "pParse_00->db" identifier -> field_identifier)) ;) (if_statement "if (puVar19 == (undefined1 *)0x0) {\n    if (psVar23->mallocFailed == '\0') {\n      sqlite3ExprCode(pParse_00,(Expr *)0x0,iVar5);\n      return;\n    }\n  }\n  else {\n    pExpr = (Expr *)(*(code *)(*(int *)(puVar30 + 0x997c0) + -0x271c))(psVar23);\n    if (psVar23->mallocFailed == '\0') {\n      sqlite3ExprCode(pParse_00,pExpr,iVar5);\n    }\n    if (pExpr != (Expr *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x000c1fc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)(*(int *)(puVar30 + 0x99780) + 0x7bc4))(psVar23,pExpr);\n      return;\n    }\n  }" if (parenthesized_expression "(puVar19 == (undefined1 *)0x0)" ( (binary_expression "puVar19 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (psVar23->mallocFailed == '\0') {\n      sqlite3ExprCode(pParse_00,(Expr *)0x0,iVar5);\n      return;\n    }\n  }" { (if_statement "if (psVar23->mallocFailed == '\0') {\n      sqlite3ExprCode(pParse_00,(Expr *)0x0,iVar5);\n      return;\n    }" if (parenthesized_expression "(psVar23->mallocFailed == '\0')" ( (binary_expression "psVar23->mallocFailed == '\0'" (field_expression "psVar23->mallocFailed" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      sqlite3ExprCode(pParse_00,(Expr *)0x0,iVar5);\n      return;\n    }" { (expression_statement "sqlite3ExprCode(pParse_00,(Expr *)0x0,iVar5);" (call_expression "sqlite3ExprCode(pParse_00,(Expr *)0x0,iVar5)" identifier (argument_list "(pParse_00,(Expr *)0x0,iVar5)" ( identifier , (cast_expression "(Expr *)0x0" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n    pExpr = (Expr *)(*(code *)(*(int *)(puVar30 + 0x997c0) + -0x271c))(psVar23);\n    if (psVar23->mallocFailed == '\0') {\n      sqlite3ExprCode(pParse_00,pExpr,iVar5);\n    }\n    if (pExpr != (Expr *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x000c1fc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)(*(int *)(puVar30 + 0x99780) + 0x7bc4))(psVar23,pExpr);\n      return;\n    }\n  }" else (compound_statement "{\n    pExpr = (Expr *)(*(code *)(*(int *)(puVar30 + 0x997c0) + -0x271c))(psVar23);\n    if (psVar23->mallocFailed == '\0') {\n      sqlite3ExprCode(pParse_00,pExpr,iVar5);\n    }\n    if (pExpr != (Expr *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x000c1fc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)(*(int *)(puVar30 + 0x99780) + 0x7bc4))(psVar23,pExpr);\n      return;\n    }\n  }" { (expression_statement "pExpr = (Expr *)(*(code *)(*(int *)(puVar30 + 0x997c0) + -0x271c))(psVar23);" (assignment_expression "pExpr = (Expr *)(*(code *)(*(int *)(puVar30 + 0x997c0) + -0x271c))(psVar23)" identifier = (cast_expression "(Expr *)(*(code *)(*(int *)(puVar30 + 0x997c0) + -0x271c))(psVar23)" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(*(int *)(puVar30 + 0x997c0) + -0x271c))(psVar23)" (parenthesized_expression "(*(code *)(*(int *)(puVar30 + 0x997c0) + -0x271c))" ( (pointer_expression "*(code *)(*(int *)(puVar30 + 0x997c0) + -0x271c)" * (cast_expression "(code *)(*(int *)(puVar30 + 0x997c0) + -0x271c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar30 + 0x997c0) + -0x271c)" ( (binary_expression "*(int *)(puVar30 + 0x997c0) + -0x271c" (pointer_expression "*(int *)(puVar30 + 0x997c0)" * (cast_expression "(int *)(puVar30 + 0x997c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + 0x997c0)" ( (binary_expression "puVar30 + 0x997c0" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(psVar23)" ( identifier ))))) ;) (if_statement "if (psVar23->mallocFailed == '\0') {\n      sqlite3ExprCode(pParse_00,pExpr,iVar5);\n    }" if (parenthesized_expression "(psVar23->mallocFailed == '\0')" ( (binary_expression "psVar23->mallocFailed == '\0'" (field_expression "psVar23->mallocFailed" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      sqlite3ExprCode(pParse_00,pExpr,iVar5);\n    }" { (expression_statement "sqlite3ExprCode(pParse_00,pExpr,iVar5);" (call_expression "sqlite3ExprCode(pParse_00,pExpr,iVar5)" identifier (argument_list "(pParse_00,pExpr,iVar5)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if (pExpr != (Expr *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x000c1fc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)(*(int *)(puVar30 + 0x99780) + 0x7bc4))(psVar23,pExpr);\n      return;\n    }" if (parenthesized_expression "(pExpr != (Expr *)0x0)" ( (binary_expression "pExpr != (Expr *)0x0" identifier != (cast_expression "(Expr *)0x0" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x000c1fc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)(*(int *)(puVar30 + 0x99780) + 0x7bc4))(psVar23,pExpr);\n      return;\n    }" { comment comment (expression_statement "(*(code *)(*(int *)(puVar30 + 0x99780) + 0x7bc4))(psVar23,pExpr);" (call_expression "(*(code *)(*(int *)(puVar30 + 0x99780) + 0x7bc4))(psVar23,pExpr)" (parenthesized_expression "(*(code *)(*(int *)(puVar30 + 0x99780) + 0x7bc4))" ( (pointer_expression "*(code *)(*(int *)(puVar30 + 0x99780) + 0x7bc4)" * (cast_expression "(code *)(*(int *)(puVar30 + 0x99780) + 0x7bc4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar30 + 0x99780) + 0x7bc4)" ( (binary_expression "*(int *)(puVar30 + 0x99780) + 0x7bc4" (pointer_expression "*(int *)(puVar30 + 0x99780)" * (cast_expression "(int *)(puVar30 + 0x99780)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + 0x99780)" ( (binary_expression "puVar30 + 0x99780" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(psVar23,pExpr)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })) }))) (return_statement "return;" return ;) })))
(translation_unit "void FUN_000c082c(int param_1,int param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5)\n\n{\n  bool bVar1;\n  uint uVar2;\n  undefined *puVar3;\n  undefined4 uVar4;\n  int iVar5;\n  char cVar10;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  int *piVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  code *pcVar15;\n  int *piVar16;\n  int iVar17;\n  int iVar18;\n  int *piVar19;\n  int iVar20;\n  code *pcVar21;\n  undefined *puVar22;\n  int iVar23;\n  code *pcVar24;\n  int local_60;\n  code *local_5c;\n  int local_58;\n  int local_50;\n  code *local_4c;\n  int *local_48;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar22 = PTR___stack_chk_guard_0015ba2c;\n  iVar14 = *(int *)(param_2 + 0x44);\n  local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  uVar2 = *(uint *)(iVar14 + 0xc) & 0xffff00;\n  if (*(char *)(iVar14 + 0xc) == 'L') {\n    if ((uVar2 == 0x575200) && (*(int *)(iVar14 + 8) != 0)) goto LAB_000c08b4;\n    piVar11 = *(int **)(param_1 + 8);\n    if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n    }\n    puVar3 = PTR_LAB_0015b714;\n    iVar20 = *(int *)(param_1 + 0x28);\n    iVar18 = *(int *)(param_1 + 0x2c);\n    iVar17 = iVar18 + 3;\n    iVar23 = *(int *)(param_1 + 0x38) + -2;\n    *(int *)(param_1 + 0x28) = iVar20 + 2;\n    iVar12 = *(int *)(param_1 + 0x38) + -1;\n    iVar5 = iVar18 + 1;\n    *(int *)(param_1 + 0x2c) = iVar17;\n    *(int *)(param_1 + 0x38) = iVar23;\n    iVar18 = iVar18 + 2;\n    iVar9 = iVar20 + 1;\n    local_30 = 0;\n    (*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar12,&local_30\n              );\n    pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    local_60 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar24)(piVar11,iVar12);\n    (*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 3,0);\n    (*pcVar15)(piVar11,0x6f,iVar20,*(undefined4 *)(iVar14 + 0x24),0);\n    (*pcVar15)(piVar11,0x6f,iVar9,*(undefined4 *)(iVar14 + 0x24),0);\n    if (*(int *)(iVar14 + 0x10) != 0) {\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x10),iVar18);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar18,0);\n    }\n    if (*(int *)(iVar14 + 0x14) != 0) {\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x14),iVar17);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar17,1);\n      if ((*(int *)(iVar14 + 0x14) != 0) && (*(char *)(iVar14 + 0xd) == 'S')) {\n        (*pcVar15)(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17);\n        (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n        (*pcVar15)(piVar11,0x61,iVar18,iVar17,iVar17);\n      }\n    }\n    if ((*(int *)(iVar14 + 0x10) != 0) && (*(char *)(iVar14 + 0xe) == 'U')) {\n      (*pcVar15)(piVar11,0x37,iVar18,piVar11[0x1b] + 3,iVar17);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar17,0);\n    }\n    uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);\n    (*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar23,0);\n    (*pcVar15)(piVar11,0x24,iVar20,iVar23,0);\n    if (0 < piVar11[0x1b]) {\n      *(undefined2 *)(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12) = 1;\n    }\n    (*pcVar15)(piVar11,0x24,iVar9,iVar23,0);\n    iVar12 = piVar11[0x1b];\n    if (0 < iVar12) {\n      *(undefined2 *)(piVar11[0x1a] + iVar12 * 0x14 + -0x12) = 1;\n      iVar12 = piVar11[0x1b];\n    }\n    if (*(char *)(iVar14 + 0xe) == 'U') {\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n      iVar13 = piVar11[0x1b];\n    }\n    else {\n      local_50 = 0;\n      iVar13 = iVar12;\n    }\n    (*pcVar15)(piVar11,5,iVar9,iVar13 + 2,0);\n    iVar13 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7af4);\n    (*pcVar21)(param_1,iVar14,iVar9,0,uVar4,local_30);\n    if (*(char *)(iVar14 + 0xe) == 'W') {\n      (*pcVar15)(piVar11,0xb,0,iVar12,0);\n      iVar12 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar12 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n    }\n    else {\n      iVar9 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar9 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14);\n      }\n      else {\n        puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n      }\n      *(int *)(puVar3 + 8) = iVar9;\n      cVar10 = *(char *)(iVar14 + 0xe);\n      if (cVar10 == 'U') {\n        iVar13 = iVar9 + -1;\n        if (-1 < local_50) {\n          iVar13 = local_50;\n        }\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n      }\n    }\n    if (cVar10 == 'S') {\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n    }\n    if (*(char *)(iVar14 + 0xd) == 'S') {\n      iVar17 = (*pcVar15)(piVar11,0x2f,iVar18,0,1);\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        if (iVar17 < 0) {\n          iVar17 = iVar9 + -1;\n        }\n        goto LAB_000c1d20;\n      }\n    }\n    else {\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        iVar17 = 0;\nLAB_000c1d20:\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n      }\n    }\n    if ((uVar2 - 0x52 < 2) || (uVar2 == 0x55)) {\n      iVar17 = *(int *)(param_1 + 0x38) + -1;\n      *(int *)(param_1 + 0x38) = iVar17;\n      cVar10 = *(char *)(iVar14 + 0xd);\n      if (cVar10 == 'U') {\n        (*pcVar15)(piVar11,0x2f,iVar18,iVar17,1);\n        cVar10 = *(char *)(iVar14 + 0xd);\n      }\n      if (cVar10 == 'S') {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 2,0);\n        (*pcVar15)(piVar11,0xb,0,iVar17,0);\n      }\n      else {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0);\n      }\n      (*pcVar21)(param_1,iVar14,iVar20,1,uVar4,local_30);\n      (*pcVar24)(piVar11,iVar17);\n    }\n    if (*(char *)(iVar14 + 0xe) == 'S') {\n      iVar18 = piVar11[0x1b];\n      if (local_50 < 0) {\n        local_50 = iVar18 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + local_50 * 0x14 + 8) = iVar18;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n      }\n    }\n    (*pcVar15)(piVar11,0xb,0,iVar12,0);\n    (*pcVar24)(piVar11,iVar23);\n    (*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n  }\n  else {\n    if (uVar2 != 0x525700) {\nLAB_000c08b4:\n      iVar18 = iVar14;\n      do {\n        if (((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        iVar18 = *(int *)(iVar18 + 0x18);\n      } while (iVar18 != 0);\n      piVar16 = *(int **)(param_1 + 8);\n      if (piVar16 == (int *)0x0) {\n        piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      }\n      piVar11 = *(int **)(iVar14 + 4);\n      iVar17 = *(int *)(param_1 + 0x2c) + 1;\n      uVar4 = *(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30);\n      iVar20 = (int)*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a);\n      iVar18 = iVar20 + iVar17;\n      iVar5 = iVar20 + 2 + *(int *)(param_1 + 0x2c);\n      if (*(char *)(iVar14 + 0xe) == 'W') {\n        *(int *)(param_1 + 0x2c) = iVar5;\n        piVar19 = (int *)0x0;\n        if (0 < iVar20) goto LAB_000c0980;\n        if (piVar11 != (int *)0x0) {\n          local_50 = *piVar11;\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }\n      else {\n        piVar19 = *(int **)(iVar14 + 8);\n        *(int *)(param_1 + 0x2c) = iVar5;\n        if (iVar20 < 1) {\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }\n        puVar3 = PTR_LAB_0015b714;\n        if (piVar11 == (int *)0x0) {\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }\n        else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }\n        (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);\n        (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n        (*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);\n        (*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n        (*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1);\n        if (iVar5 != 0) {\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }\n      }\nLAB_000c0b50:\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,0xffffffff,0,iVar17,0);\n      if (*(int *)(iVar14 + 0x40) < 1) {\n        (*pcVar15)(piVar16,0x4b,0,iVar18,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }\n      else {\n        (*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);\n      }\n      (*pcVar15)(piVar16,0x79,*(undefined4 *)(iVar14 + 0x24),iVar18 + 1,0);\n      (*pcVar15)(piVar16,0x7a,*(undefined4 *)(iVar14 + 0x24),iVar18,iVar18 + 1);\n      (*(code *)(PTR_LAB_0015b710 + -0x18cc))(param_3);\n      (*pcVar24)(param_1,iVar14,1);\n      (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + 3,0);\n      (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n      iVar18 = 5;\n      iVar5 = *(int *)(iVar14 + 0x24);\n      (*pcVar15)(piVar16,5,iVar5,piVar16[0x1b] + -1,0);\n      goto LAB_000c0f44;\n    }\nLAB_000c0c60:\n    piVar11 = *(int **)(param_1 + 8);\n    if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      piVar16 = *(int **)(iVar14 + 8);\n      local_48 = *(int **)(iVar14 + 4);\n      if (piVar16 != (int *)0x0) goto LAB_000c0c7c;\nLAB_000c1450:\n      local_58 = 0;\n      bVar1 = false;\n    }\n    else {\n      local_48 = *(int **)(iVar14 + 4);\n      piVar16 = *(int **)(iVar14 + 8);\n      if (piVar16 == (int *)0x0) goto LAB_000c1450;\nLAB_000c0c7c:\n      local_58 = *piVar16;\n      bVar1 = (*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700;\n    }\n    puVar3 = PTR_LAB_0015b714;\n    iVar18 = *(int *)(param_1 + 0x2c);\n    iVar23 = *(int *)(param_1 + 0x28);\n    iVar17 = *(int *)(param_1 + 0x38);\n    iVar5 = iVar18 + local_58;\n    iVar9 = iVar5 + 2;\n    iVar20 = iVar17 + -2;\n    *(int *)(param_1 + 0x28) = iVar23 + 1;\n    iVar5 = iVar5 + 1;\n    *(int *)(param_1 + 0x38) = iVar20;\n    *(int *)(param_1 + 0x2c) = iVar9;\n    iVar17 = iVar17 + -1;\n    (*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar20,&local_30\n              );\n    pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    local_60 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar24)(piVar11,iVar20);\n    (*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 2,0);\n    (*pcVar15)(piVar11,0x6f,iVar23,*(undefined4 *)(iVar14 + 0x24),0);\n    uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);\n    (*pcVar15)(piVar11,0x46,0,iVar9,0);\n    (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n    (*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar17,0);\n    if (bVar1) {\n      iVar20 = piVar11[0x1b];\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n      (*pcVar15)(piVar11,5,iVar23,iVar20,0);\n      (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n      local_50 = piVar11[0x1b];\n      if (piVar16 != (int *)0x0) goto LAB_000c0e28;\n      pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n    }\n    else {\n      local_50 = piVar11[0x1b];\n      if (piVar16 == (int *)0x0) {\n        pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);\n        uVar6 = uVar4;\n        if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n    }\nLAB_000c0e5c:\n    (*pcVar15)(piVar11,0x53,iVar9,1,0);\n    (*pcVar15)(piVar11,5,iVar23,local_50,0);\n    (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n    (*pcVar24)(piVar11,iVar17);\n    (*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n  }\n  iVar18 = 0x42;\n  (*pcVar15)(piVar11,0x42,iVar5,0,0);\n  piVar16 = (int *)piVar11[0x1b];\n  if (local_60 < 0) {\n    local_60 = (int)piVar16 + -1;\n  }\n  if (*(char *)(*piVar11 + 0x51) == '\0') {\n    puVar3 = (undefined *)(piVar11[0x1a] + local_60 * 0x14);\n    iVar18 = local_60;\n  }\n  else {\n    puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n  }\n  *(int **)(puVar3 + 8) = piVar16;\nLAB_000c0f44:\n  if (local_2c == *(int *)puVar22) {\n    return;\n  }\n  puVar22 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  iVar14 = *piVar16;\n  if (iVar18 == 0) {\n    if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8();\n      return;\n    }\n  }\n  else {\n    iVar18 = (*(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c))(iVar14);\n    if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8(piVar16,iVar18,iVar5);\n    }\n    if (iVar18 != 0) {\n                    \n                    \n      (*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4))(iVar14,iVar18);\n      return;\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_000c082c(int param_1,int param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5)\n\n{\n  bool bVar1;\n  uint uVar2;\n  undefined *puVar3;\n  undefined4 uVar4;\n  int iVar5;\n  char cVar10;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  int *piVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  code *pcVar15;\n  int *piVar16;\n  int iVar17;\n  int iVar18;\n  int *piVar19;\n  int iVar20;\n  code *pcVar21;\n  undefined *puVar22;\n  int iVar23;\n  code *pcVar24;\n  int local_60;\n  code *local_5c;\n  int local_58;\n  int local_50;\n  code *local_4c;\n  int *local_48;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar22 = PTR___stack_chk_guard_0015ba2c;\n  iVar14 = *(int *)(param_2 + 0x44);\n  local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  uVar2 = *(uint *)(iVar14 + 0xc) & 0xffff00;\n  if (*(char *)(iVar14 + 0xc) == 'L') {\n    if ((uVar2 == 0x575200) && (*(int *)(iVar14 + 8) != 0)) goto LAB_000c08b4;\n    piVar11 = *(int **)(param_1 + 8);\n    if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n    }\n    puVar3 = PTR_LAB_0015b714;\n    iVar20 = *(int *)(param_1 + 0x28);\n    iVar18 = *(int *)(param_1 + 0x2c);\n    iVar17 = iVar18 + 3;\n    iVar23 = *(int *)(param_1 + 0x38) + -2;\n    *(int *)(param_1 + 0x28) = iVar20 + 2;\n    iVar12 = *(int *)(param_1 + 0x38) + -1;\n    iVar5 = iVar18 + 1;\n    *(int *)(param_1 + 0x2c) = iVar17;\n    *(int *)(param_1 + 0x38) = iVar23;\n    iVar18 = iVar18 + 2;\n    iVar9 = iVar20 + 1;\n    local_30 = 0;\n    (*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar12,&local_30\n              );\n    pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    local_60 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar24)(piVar11,iVar12);\n    (*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 3,0);\n    (*pcVar15)(piVar11,0x6f,iVar20,*(undefined4 *)(iVar14 + 0x24),0);\n    (*pcVar15)(piVar11,0x6f,iVar9,*(undefined4 *)(iVar14 + 0x24),0);\n    if (*(int *)(iVar14 + 0x10) != 0) {\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x10),iVar18);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar18,0);\n    }\n    if (*(int *)(iVar14 + 0x14) != 0) {\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x14),iVar17);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar17,1);\n      if ((*(int *)(iVar14 + 0x14) != 0) && (*(char *)(iVar14 + 0xd) == 'S')) {\n        (*pcVar15)(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17);\n        (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n        (*pcVar15)(piVar11,0x61,iVar18,iVar17,iVar17);\n      }\n    }\n    if ((*(int *)(iVar14 + 0x10) != 0) && (*(char *)(iVar14 + 0xe) == 'U')) {\n      (*pcVar15)(piVar11,0x37,iVar18,piVar11[0x1b] + 3,iVar17);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar17,0);\n    }\n    uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);\n    (*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar23,0);\n    (*pcVar15)(piVar11,0x24,iVar20,iVar23,0);\n    if (0 < piVar11[0x1b]) {\n      *(undefined2 *)(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12) = 1;\n    }\n    (*pcVar15)(piVar11,0x24,iVar9,iVar23,0);\n    iVar12 = piVar11[0x1b];\n    if (0 < iVar12) {\n      *(undefined2 *)(piVar11[0x1a] + iVar12 * 0x14 + -0x12) = 1;\n      iVar12 = piVar11[0x1b];\n    }\n    if (*(char *)(iVar14 + 0xe) == 'U') {\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n      iVar13 = piVar11[0x1b];\n    }\n    else {\n      local_50 = 0;\n      iVar13 = iVar12;\n    }\n    (*pcVar15)(piVar11,5,iVar9,iVar13 + 2,0);\n    iVar13 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7af4);\n    (*pcVar21)(param_1,iVar14,iVar9,0,uVar4,local_30);\n    if (*(char *)(iVar14 + 0xe) == 'W') {\n      (*pcVar15)(piVar11,0xb,0,iVar12,0);\n      iVar12 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar12 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n    }\n    else {\n      iVar9 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar9 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14);\n      }\n      else {\n        puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n      }\n      *(int *)(puVar3 + 8) = iVar9;\n      cVar10 = *(char *)(iVar14 + 0xe);\n      if (cVar10 == 'U') {\n        iVar13 = iVar9 + -1;\n        if (-1 < local_50) {\n          iVar13 = local_50;\n        }\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n      }\n    }\n    if (cVar10 == 'S') {\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n    }\n    if (*(char *)(iVar14 + 0xd) == 'S') {\n      iVar17 = (*pcVar15)(piVar11,0x2f,iVar18,0,1);\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        if (iVar17 < 0) {\n          iVar17 = iVar9 + -1;\n        }\n        goto LAB_000c1d20;\n      }\n    }\n    else {\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        iVar17 = 0;\nLAB_000c1d20:\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n      }\n    }\n    if ((uVar2 - 0x52 < 2) || (uVar2 == 0x55)) {\n      iVar17 = *(int *)(param_1 + 0x38) + -1;\n      *(int *)(param_1 + 0x38) = iVar17;\n      cVar10 = *(char *)(iVar14 + 0xd);\n      if (cVar10 == 'U') {\n        (*pcVar15)(piVar11,0x2f,iVar18,iVar17,1);\n        cVar10 = *(char *)(iVar14 + 0xd);\n      }\n      if (cVar10 == 'S') {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 2,0);\n        (*pcVar15)(piVar11,0xb,0,iVar17,0);\n      }\n      else {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0);\n      }\n      (*pcVar21)(param_1,iVar14,iVar20,1,uVar4,local_30);\n      (*pcVar24)(piVar11,iVar17);\n    }\n    if (*(char *)(iVar14 + 0xe) == 'S') {\n      iVar18 = piVar11[0x1b];\n      if (local_50 < 0) {\n        local_50 = iVar18 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + local_50 * 0x14 + 8) = iVar18;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n      }\n    }\n    (*pcVar15)(piVar11,0xb,0,iVar12,0);\n    (*pcVar24)(piVar11,iVar23);\n    (*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n  }\n  else {\n    if (uVar2 != 0x525700) {\nLAB_000c08b4:\n      iVar18 = iVar14;\n      do {\n        if (((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        iVar18 = *(int *)(iVar18 + 0x18);\n      } while (iVar18 != 0);\n      piVar16 = *(int **)(param_1 + 8);\n      if (piVar16 == (int *)0x0) {\n        piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      }\n      piVar11 = *(int **)(iVar14 + 4);\n      iVar17 = *(int *)(param_1 + 0x2c) + 1;\n      uVar4 = *(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30);\n      iVar20 = (int)*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a);\n      iVar18 = iVar20 + iVar17;\n      iVar5 = iVar20 + 2 + *(int *)(param_1 + 0x2c);\n      if (*(char *)(iVar14 + 0xe) == 'W') {\n        *(int *)(param_1 + 0x2c) = iVar5;\n        piVar19 = (int *)0x0;\n        if (0 < iVar20) goto LAB_000c0980;\n        if (piVar11 != (int *)0x0) {\n          local_50 = *piVar11;\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }\n      else {\n        piVar19 = *(int **)(iVar14 + 8);\n        *(int *)(param_1 + 0x2c) = iVar5;\n        if (iVar20 < 1) {\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }\n        puVar3 = PTR_LAB_0015b714;\n        if (piVar11 == (int *)0x0) {\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }\n        else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }\n        (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);\n        (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n        (*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);\n        (*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n        (*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1);\n        if (iVar5 != 0) {\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }\n      }\nLAB_000c0b50:\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,0xffffffff,0,iVar17,0);\n      if (*(int *)(iVar14 + 0x40) < 1) {\n        (*pcVar15)(piVar16,0x4b,0,iVar18,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }\n      else {\n        (*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);\n      }\n      (*pcVar15)(piVar16,0x79,*(undefined4 *)(iVar14 + 0x24),iVar18 + 1,0);\n      (*pcVar15)(piVar16,0x7a,*(undefined4 *)(iVar14 + 0x24),iVar18,iVar18 + 1);\n      (*(code *)(PTR_LAB_0015b710 + -0x18cc))(param_3);\n      (*pcVar24)(param_1,iVar14,1);\n      (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + 3,0);\n      (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n      iVar18 = 5;\n      iVar5 = *(int *)(iVar14 + 0x24);\n      (*pcVar15)(piVar16,5,iVar5,piVar16[0x1b] + -1,0);\n      goto LAB_000c0f44;\n    }\nLAB_000c0c60:\n    piVar11 = *(int **)(param_1 + 8);\n    if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      piVar16 = *(int **)(iVar14 + 8);\n      local_48 = *(int **)(iVar14 + 4);\n      if (piVar16 != (int *)0x0) goto LAB_000c0c7c;\nLAB_000c1450:\n      local_58 = 0;\n      bVar1 = false;\n    }\n    else {\n      local_48 = *(int **)(iVar14 + 4);\n      piVar16 = *(int **)(iVar14 + 8);\n      if (piVar16 == (int *)0x0) goto LAB_000c1450;\nLAB_000c0c7c:\n      local_58 = *piVar16;\n      bVar1 = (*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700;\n    }\n    puVar3 = PTR_LAB_0015b714;\n    iVar18 = *(int *)(param_1 + 0x2c);\n    iVar23 = *(int *)(param_1 + 0x28);\n    iVar17 = *(int *)(param_1 + 0x38);\n    iVar5 = iVar18 + local_58;\n    iVar9 = iVar5 + 2;\n    iVar20 = iVar17 + -2;\n    *(int *)(param_1 + 0x28) = iVar23 + 1;\n    iVar5 = iVar5 + 1;\n    *(int *)(param_1 + 0x38) = iVar20;\n    *(int *)(param_1 + 0x2c) = iVar9;\n    iVar17 = iVar17 + -1;\n    (*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar20,&local_30\n              );\n    pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    local_60 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar24)(piVar11,iVar20);\n    (*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 2,0);\n    (*pcVar15)(piVar11,0x6f,iVar23,*(undefined4 *)(iVar14 + 0x24),0);\n    uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);\n    (*pcVar15)(piVar11,0x46,0,iVar9,0);\n    (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n    (*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar17,0);\n    if (bVar1) {\n      iVar20 = piVar11[0x1b];\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n      (*pcVar15)(piVar11,5,iVar23,iVar20,0);\n      (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n      local_50 = piVar11[0x1b];\n      if (piVar16 != (int *)0x0) goto LAB_000c0e28;\n      pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n    }\n    else {\n      local_50 = piVar11[0x1b];\n      if (piVar16 == (int *)0x0) {\n        pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);\n        uVar6 = uVar4;\n        if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n    }\nLAB_000c0e5c:\n    (*pcVar15)(piVar11,0x53,iVar9,1,0);\n    (*pcVar15)(piVar11,5,iVar23,local_50,0);\n    (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n    (*pcVar24)(piVar11,iVar17);\n    (*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n  }\n  iVar18 = 0x42;\n  (*pcVar15)(piVar11,0x42,iVar5,0,0);\n  piVar16 = (int *)piVar11[0x1b];\n  if (local_60 < 0) {\n    local_60 = (int)piVar16 + -1;\n  }\n  if (*(char *)(*piVar11 + 0x51) == '\0') {\n    puVar3 = (undefined *)(piVar11[0x1a] + local_60 * 0x14);\n    iVar18 = local_60;\n  }\n  else {\n    puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n  }\n  *(int **)(puVar3 + 8) = piVar16;\nLAB_000c0f44:\n  if (local_2c == *(int *)puVar22) {\n    return;\n  }\n  puVar22 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  iVar14 = *piVar16;\n  if (iVar18 == 0) {\n    if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8();\n      return;\n    }\n  }\n  else {\n    iVar18 = (*(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c))(iVar14);\n    if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8(piVar16,iVar18,iVar5);\n    }\n    if (iVar18 != 0) {\n                    \n                    \n      (*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4))(iVar14,iVar18);\n      return;\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_000c082c(int param_1,int param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5)" identifier (parameter_list "(int param_1,int param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) ))) (compound_statement "{\n  bool bVar1;\n  uint uVar2;\n  undefined *puVar3;\n  undefined4 uVar4;\n  int iVar5;\n  char cVar10;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  int *piVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  code *pcVar15;\n  int *piVar16;\n  int iVar17;\n  int iVar18;\n  int *piVar19;\n  int iVar20;\n  code *pcVar21;\n  undefined *puVar22;\n  int iVar23;\n  code *pcVar24;\n  int local_60;\n  code *local_5c;\n  int local_58;\n  int local_50;\n  code *local_4c;\n  int *local_48;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar22 = PTR___stack_chk_guard_0015ba2c;\n  iVar14 = *(int *)(param_2 + 0x44);\n  local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  uVar2 = *(uint *)(iVar14 + 0xc) & 0xffff00;\n  if (*(char *)(iVar14 + 0xc) == 'L') {\n    if ((uVar2 == 0x575200) && (*(int *)(iVar14 + 8) != 0)) goto LAB_000c08b4;\n    piVar11 = *(int **)(param_1 + 8);\n    if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n    }\n    puVar3 = PTR_LAB_0015b714;\n    iVar20 = *(int *)(param_1 + 0x28);\n    iVar18 = *(int *)(param_1 + 0x2c);\n    iVar17 = iVar18 + 3;\n    iVar23 = *(int *)(param_1 + 0x38) + -2;\n    *(int *)(param_1 + 0x28) = iVar20 + 2;\n    iVar12 = *(int *)(param_1 + 0x38) + -1;\n    iVar5 = iVar18 + 1;\n    *(int *)(param_1 + 0x2c) = iVar17;\n    *(int *)(param_1 + 0x38) = iVar23;\n    iVar18 = iVar18 + 2;\n    iVar9 = iVar20 + 1;\n    local_30 = 0;\n    (*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar12,&local_30\n              );\n    pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    local_60 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar24)(piVar11,iVar12);\n    (*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 3,0);\n    (*pcVar15)(piVar11,0x6f,iVar20,*(undefined4 *)(iVar14 + 0x24),0);\n    (*pcVar15)(piVar11,0x6f,iVar9,*(undefined4 *)(iVar14 + 0x24),0);\n    if (*(int *)(iVar14 + 0x10) != 0) {\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x10),iVar18);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar18,0);\n    }\n    if (*(int *)(iVar14 + 0x14) != 0) {\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x14),iVar17);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar17,1);\n      if ((*(int *)(iVar14 + 0x14) != 0) && (*(char *)(iVar14 + 0xd) == 'S')) {\n        (*pcVar15)(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17);\n        (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n        (*pcVar15)(piVar11,0x61,iVar18,iVar17,iVar17);\n      }\n    }\n    if ((*(int *)(iVar14 + 0x10) != 0) && (*(char *)(iVar14 + 0xe) == 'U')) {\n      (*pcVar15)(piVar11,0x37,iVar18,piVar11[0x1b] + 3,iVar17);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar17,0);\n    }\n    uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);\n    (*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar23,0);\n    (*pcVar15)(piVar11,0x24,iVar20,iVar23,0);\n    if (0 < piVar11[0x1b]) {\n      *(undefined2 *)(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12) = 1;\n    }\n    (*pcVar15)(piVar11,0x24,iVar9,iVar23,0);\n    iVar12 = piVar11[0x1b];\n    if (0 < iVar12) {\n      *(undefined2 *)(piVar11[0x1a] + iVar12 * 0x14 + -0x12) = 1;\n      iVar12 = piVar11[0x1b];\n    }\n    if (*(char *)(iVar14 + 0xe) == 'U') {\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n      iVar13 = piVar11[0x1b];\n    }\n    else {\n      local_50 = 0;\n      iVar13 = iVar12;\n    }\n    (*pcVar15)(piVar11,5,iVar9,iVar13 + 2,0);\n    iVar13 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7af4);\n    (*pcVar21)(param_1,iVar14,iVar9,0,uVar4,local_30);\n    if (*(char *)(iVar14 + 0xe) == 'W') {\n      (*pcVar15)(piVar11,0xb,0,iVar12,0);\n      iVar12 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar12 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n    }\n    else {\n      iVar9 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar9 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14);\n      }\n      else {\n        puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n      }\n      *(int *)(puVar3 + 8) = iVar9;\n      cVar10 = *(char *)(iVar14 + 0xe);\n      if (cVar10 == 'U') {\n        iVar13 = iVar9 + -1;\n        if (-1 < local_50) {\n          iVar13 = local_50;\n        }\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n      }\n    }\n    if (cVar10 == 'S') {\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n    }\n    if (*(char *)(iVar14 + 0xd) == 'S') {\n      iVar17 = (*pcVar15)(piVar11,0x2f,iVar18,0,1);\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        if (iVar17 < 0) {\n          iVar17 = iVar9 + -1;\n        }\n        goto LAB_000c1d20;\n      }\n    }\n    else {\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        iVar17 = 0;\nLAB_000c1d20:\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n      }\n    }\n    if ((uVar2 - 0x52 < 2) || (uVar2 == 0x55)) {\n      iVar17 = *(int *)(param_1 + 0x38) + -1;\n      *(int *)(param_1 + 0x38) = iVar17;\n      cVar10 = *(char *)(iVar14 + 0xd);\n      if (cVar10 == 'U') {\n        (*pcVar15)(piVar11,0x2f,iVar18,iVar17,1);\n        cVar10 = *(char *)(iVar14 + 0xd);\n      }\n      if (cVar10 == 'S') {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 2,0);\n        (*pcVar15)(piVar11,0xb,0,iVar17,0);\n      }\n      else {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0);\n      }\n      (*pcVar21)(param_1,iVar14,iVar20,1,uVar4,local_30);\n      (*pcVar24)(piVar11,iVar17);\n    }\n    if (*(char *)(iVar14 + 0xe) == 'S') {\n      iVar18 = piVar11[0x1b];\n      if (local_50 < 0) {\n        local_50 = iVar18 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + local_50 * 0x14 + 8) = iVar18;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n      }\n    }\n    (*pcVar15)(piVar11,0xb,0,iVar12,0);\n    (*pcVar24)(piVar11,iVar23);\n    (*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n  }\n  else {\n    if (uVar2 != 0x525700) {\nLAB_000c08b4:\n      iVar18 = iVar14;\n      do {\n        if (((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        iVar18 = *(int *)(iVar18 + 0x18);\n      } while (iVar18 != 0);\n      piVar16 = *(int **)(param_1 + 8);\n      if (piVar16 == (int *)0x0) {\n        piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      }\n      piVar11 = *(int **)(iVar14 + 4);\n      iVar17 = *(int *)(param_1 + 0x2c) + 1;\n      uVar4 = *(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30);\n      iVar20 = (int)*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a);\n      iVar18 = iVar20 + iVar17;\n      iVar5 = iVar20 + 2 + *(int *)(param_1 + 0x2c);\n      if (*(char *)(iVar14 + 0xe) == 'W') {\n        *(int *)(param_1 + 0x2c) = iVar5;\n        piVar19 = (int *)0x0;\n        if (0 < iVar20) goto LAB_000c0980;\n        if (piVar11 != (int *)0x0) {\n          local_50 = *piVar11;\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }\n      else {\n        piVar19 = *(int **)(iVar14 + 8);\n        *(int *)(param_1 + 0x2c) = iVar5;\n        if (iVar20 < 1) {\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }\n        puVar3 = PTR_LAB_0015b714;\n        if (piVar11 == (int *)0x0) {\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }\n        else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }\n        (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);\n        (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n        (*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);\n        (*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n        (*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1);\n        if (iVar5 != 0) {\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }\n      }\nLAB_000c0b50:\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,0xffffffff,0,iVar17,0);\n      if (*(int *)(iVar14 + 0x40) < 1) {\n        (*pcVar15)(piVar16,0x4b,0,iVar18,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }\n      else {\n        (*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);\n      }\n      (*pcVar15)(piVar16,0x79,*(undefined4 *)(iVar14 + 0x24),iVar18 + 1,0);\n      (*pcVar15)(piVar16,0x7a,*(undefined4 *)(iVar14 + 0x24),iVar18,iVar18 + 1);\n      (*(code *)(PTR_LAB_0015b710 + -0x18cc))(param_3);\n      (*pcVar24)(param_1,iVar14,1);\n      (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + 3,0);\n      (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n      iVar18 = 5;\n      iVar5 = *(int *)(iVar14 + 0x24);\n      (*pcVar15)(piVar16,5,iVar5,piVar16[0x1b] + -1,0);\n      goto LAB_000c0f44;\n    }\nLAB_000c0c60:\n    piVar11 = *(int **)(param_1 + 8);\n    if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      piVar16 = *(int **)(iVar14 + 8);\n      local_48 = *(int **)(iVar14 + 4);\n      if (piVar16 != (int *)0x0) goto LAB_000c0c7c;\nLAB_000c1450:\n      local_58 = 0;\n      bVar1 = false;\n    }\n    else {\n      local_48 = *(int **)(iVar14 + 4);\n      piVar16 = *(int **)(iVar14 + 8);\n      if (piVar16 == (int *)0x0) goto LAB_000c1450;\nLAB_000c0c7c:\n      local_58 = *piVar16;\n      bVar1 = (*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700;\n    }\n    puVar3 = PTR_LAB_0015b714;\n    iVar18 = *(int *)(param_1 + 0x2c);\n    iVar23 = *(int *)(param_1 + 0x28);\n    iVar17 = *(int *)(param_1 + 0x38);\n    iVar5 = iVar18 + local_58;\n    iVar9 = iVar5 + 2;\n    iVar20 = iVar17 + -2;\n    *(int *)(param_1 + 0x28) = iVar23 + 1;\n    iVar5 = iVar5 + 1;\n    *(int *)(param_1 + 0x38) = iVar20;\n    *(int *)(param_1 + 0x2c) = iVar9;\n    iVar17 = iVar17 + -1;\n    (*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar20,&local_30\n              );\n    pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    local_60 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar24)(piVar11,iVar20);\n    (*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 2,0);\n    (*pcVar15)(piVar11,0x6f,iVar23,*(undefined4 *)(iVar14 + 0x24),0);\n    uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);\n    (*pcVar15)(piVar11,0x46,0,iVar9,0);\n    (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n    (*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar17,0);\n    if (bVar1) {\n      iVar20 = piVar11[0x1b];\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n      (*pcVar15)(piVar11,5,iVar23,iVar20,0);\n      (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n      local_50 = piVar11[0x1b];\n      if (piVar16 != (int *)0x0) goto LAB_000c0e28;\n      pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n    }\n    else {\n      local_50 = piVar11[0x1b];\n      if (piVar16 == (int *)0x0) {\n        pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);\n        uVar6 = uVar4;\n        if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n    }\nLAB_000c0e5c:\n    (*pcVar15)(piVar11,0x53,iVar9,1,0);\n    (*pcVar15)(piVar11,5,iVar23,local_50,0);\n    (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n    (*pcVar24)(piVar11,iVar17);\n    (*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n  }\n  iVar18 = 0x42;\n  (*pcVar15)(piVar11,0x42,iVar5,0,0);\n  piVar16 = (int *)piVar11[0x1b];\n  if (local_60 < 0) {\n    local_60 = (int)piVar16 + -1;\n  }\n  if (*(char *)(*piVar11 + 0x51) == '\0') {\n    puVar3 = (undefined *)(piVar11[0x1a] + local_60 * 0x14);\n    iVar18 = local_60;\n  }\n  else {\n    puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n  }\n  *(int **)(puVar3 + 8) = piVar16;\nLAB_000c0f44:\n  if (local_2c == *(int *)puVar22) {\n    return;\n  }\n  puVar22 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  iVar14 = *piVar16;\n  if (iVar18 == 0) {\n    if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8();\n      return;\n    }\n  }\n  else {\n    iVar18 = (*(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c))(iVar14);\n    if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8(piVar16,iVar18,iVar5);\n    }\n    if (iVar18 != 0) {\n                    \n                    \n      (*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4))(iVar14,iVar18);\n      return;\n    }\n  }\n  return;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char cVar10;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "code *pcVar15;" type_identifier (pointer_declarator "*pcVar15" * identifier) ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "code *pcVar21;" type_identifier (pointer_declarator "*pcVar21" * identifier) ;) (declaration "undefined *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "code *pcVar24;" type_identifier (pointer_declarator "*pcVar24" * identifier) ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "code *local_5c;" type_identifier (pointer_declarator "*local_5c" * identifier) ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "code *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "int *local_48;" primitive_type (pointer_declarator "*local_48" * identifier) ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar22 = PTR___stack_chk_guard_0015ba2c;" (assignment_expression "puVar22 = PTR___stack_chk_guard_0015ba2c" identifier = identifier) ;) (expression_statement "iVar14 = *(int *)(param_2 + 0x44);" (assignment_expression "iVar14 = *(int *)(param_2 + 0x44)" identifier = (pointer_expression "*(int *)(param_2 + 0x44)" * (cast_expression "(int *)(param_2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x44)" ( (binary_expression "param_2 + 0x44" identifier + number_literal) ))))) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0015ba2c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0015ba2c" * (cast_expression "(int *)PTR___stack_chk_guard_0015ba2c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar2 = *(uint *)(iVar14 + 0xc) & 0xffff00;" (assignment_expression "uVar2 = *(uint *)(iVar14 + 0xc) & 0xffff00" identifier = (binary_expression "*(uint *)(iVar14 + 0xc) & 0xffff00" (pointer_expression "*(uint *)(iVar14 + 0xc)" * (cast_expression "(uint *)(iVar14 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xc)" ( (binary_expression "iVar14 + 0xc" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (*(char *)(iVar14 + 0xc) == 'L') {\n    if ((uVar2 == 0x575200) && (*(int *)(iVar14 + 8) != 0)) goto LAB_000c08b4;\n    piVar11 = *(int **)(param_1 + 8);\n    if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n    }\n    puVar3 = PTR_LAB_0015b714;\n    iVar20 = *(int *)(param_1 + 0x28);\n    iVar18 = *(int *)(param_1 + 0x2c);\n    iVar17 = iVar18 + 3;\n    iVar23 = *(int *)(param_1 + 0x38) + -2;\n    *(int *)(param_1 + 0x28) = iVar20 + 2;\n    iVar12 = *(int *)(param_1 + 0x38) + -1;\n    iVar5 = iVar18 + 1;\n    *(int *)(param_1 + 0x2c) = iVar17;\n    *(int *)(param_1 + 0x38) = iVar23;\n    iVar18 = iVar18 + 2;\n    iVar9 = iVar20 + 1;\n    local_30 = 0;\n    (*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar12,&local_30\n              );\n    pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    local_60 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar24)(piVar11,iVar12);\n    (*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 3,0);\n    (*pcVar15)(piVar11,0x6f,iVar20,*(undefined4 *)(iVar14 + 0x24),0);\n    (*pcVar15)(piVar11,0x6f,iVar9,*(undefined4 *)(iVar14 + 0x24),0);\n    if (*(int *)(iVar14 + 0x10) != 0) {\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x10),iVar18);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar18,0);\n    }\n    if (*(int *)(iVar14 + 0x14) != 0) {\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x14),iVar17);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar17,1);\n      if ((*(int *)(iVar14 + 0x14) != 0) && (*(char *)(iVar14 + 0xd) == 'S')) {\n        (*pcVar15)(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17);\n        (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n        (*pcVar15)(piVar11,0x61,iVar18,iVar17,iVar17);\n      }\n    }\n    if ((*(int *)(iVar14 + 0x10) != 0) && (*(char *)(iVar14 + 0xe) == 'U')) {\n      (*pcVar15)(piVar11,0x37,iVar18,piVar11[0x1b] + 3,iVar17);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar17,0);\n    }\n    uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);\n    (*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar23,0);\n    (*pcVar15)(piVar11,0x24,iVar20,iVar23,0);\n    if (0 < piVar11[0x1b]) {\n      *(undefined2 *)(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12) = 1;\n    }\n    (*pcVar15)(piVar11,0x24,iVar9,iVar23,0);\n    iVar12 = piVar11[0x1b];\n    if (0 < iVar12) {\n      *(undefined2 *)(piVar11[0x1a] + iVar12 * 0x14 + -0x12) = 1;\n      iVar12 = piVar11[0x1b];\n    }\n    if (*(char *)(iVar14 + 0xe) == 'U') {\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n      iVar13 = piVar11[0x1b];\n    }\n    else {\n      local_50 = 0;\n      iVar13 = iVar12;\n    }\n    (*pcVar15)(piVar11,5,iVar9,iVar13 + 2,0);\n    iVar13 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7af4);\n    (*pcVar21)(param_1,iVar14,iVar9,0,uVar4,local_30);\n    if (*(char *)(iVar14 + 0xe) == 'W') {\n      (*pcVar15)(piVar11,0xb,0,iVar12,0);\n      iVar12 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar12 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n    }\n    else {\n      iVar9 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar9 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14);\n      }\n      else {\n        puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n      }\n      *(int *)(puVar3 + 8) = iVar9;\n      cVar10 = *(char *)(iVar14 + 0xe);\n      if (cVar10 == 'U') {\n        iVar13 = iVar9 + -1;\n        if (-1 < local_50) {\n          iVar13 = local_50;\n        }\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n      }\n    }\n    if (cVar10 == 'S') {\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n    }\n    if (*(char *)(iVar14 + 0xd) == 'S') {\n      iVar17 = (*pcVar15)(piVar11,0x2f,iVar18,0,1);\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        if (iVar17 < 0) {\n          iVar17 = iVar9 + -1;\n        }\n        goto LAB_000c1d20;\n      }\n    }\n    else {\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        iVar17 = 0;\nLAB_000c1d20:\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n      }\n    }\n    if ((uVar2 - 0x52 < 2) || (uVar2 == 0x55)) {\n      iVar17 = *(int *)(param_1 + 0x38) + -1;\n      *(int *)(param_1 + 0x38) = iVar17;\n      cVar10 = *(char *)(iVar14 + 0xd);\n      if (cVar10 == 'U') {\n        (*pcVar15)(piVar11,0x2f,iVar18,iVar17,1);\n        cVar10 = *(char *)(iVar14 + 0xd);\n      }\n      if (cVar10 == 'S') {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 2,0);\n        (*pcVar15)(piVar11,0xb,0,iVar17,0);\n      }\n      else {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0);\n      }\n      (*pcVar21)(param_1,iVar14,iVar20,1,uVar4,local_30);\n      (*pcVar24)(piVar11,iVar17);\n    }\n    if (*(char *)(iVar14 + 0xe) == 'S') {\n      iVar18 = piVar11[0x1b];\n      if (local_50 < 0) {\n        local_50 = iVar18 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + local_50 * 0x14 + 8) = iVar18;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n      }\n    }\n    (*pcVar15)(piVar11,0xb,0,iVar12,0);\n    (*pcVar24)(piVar11,iVar23);\n    (*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n  }\n  else {\n    if (uVar2 != 0x525700) {\nLAB_000c08b4:\n      iVar18 = iVar14;\n      do {\n        if (((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        iVar18 = *(int *)(iVar18 + 0x18);\n      } while (iVar18 != 0);\n      piVar16 = *(int **)(param_1 + 8);\n      if (piVar16 == (int *)0x0) {\n        piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      }\n      piVar11 = *(int **)(iVar14 + 4);\n      iVar17 = *(int *)(param_1 + 0x2c) + 1;\n      uVar4 = *(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30);\n      iVar20 = (int)*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a);\n      iVar18 = iVar20 + iVar17;\n      iVar5 = iVar20 + 2 + *(int *)(param_1 + 0x2c);\n      if (*(char *)(iVar14 + 0xe) == 'W') {\n        *(int *)(param_1 + 0x2c) = iVar5;\n        piVar19 = (int *)0x0;\n        if (0 < iVar20) goto LAB_000c0980;\n        if (piVar11 != (int *)0x0) {\n          local_50 = *piVar11;\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }\n      else {\n        piVar19 = *(int **)(iVar14 + 8);\n        *(int *)(param_1 + 0x2c) = iVar5;\n        if (iVar20 < 1) {\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }\n        puVar3 = PTR_LAB_0015b714;\n        if (piVar11 == (int *)0x0) {\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }\n        else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }\n        (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);\n        (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n        (*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);\n        (*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n        (*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1);\n        if (iVar5 != 0) {\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }\n      }\nLAB_000c0b50:\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,0xffffffff,0,iVar17,0);\n      if (*(int *)(iVar14 + 0x40) < 1) {\n        (*pcVar15)(piVar16,0x4b,0,iVar18,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }\n      else {\n        (*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);\n      }\n      (*pcVar15)(piVar16,0x79,*(undefined4 *)(iVar14 + 0x24),iVar18 + 1,0);\n      (*pcVar15)(piVar16,0x7a,*(undefined4 *)(iVar14 + 0x24),iVar18,iVar18 + 1);\n      (*(code *)(PTR_LAB_0015b710 + -0x18cc))(param_3);\n      (*pcVar24)(param_1,iVar14,1);\n      (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + 3,0);\n      (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n      iVar18 = 5;\n      iVar5 = *(int *)(iVar14 + 0x24);\n      (*pcVar15)(piVar16,5,iVar5,piVar16[0x1b] + -1,0);\n      goto LAB_000c0f44;\n    }\nLAB_000c0c60:\n    piVar11 = *(int **)(param_1 + 8);\n    if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      piVar16 = *(int **)(iVar14 + 8);\n      local_48 = *(int **)(iVar14 + 4);\n      if (piVar16 != (int *)0x0) goto LAB_000c0c7c;\nLAB_000c1450:\n      local_58 = 0;\n      bVar1 = false;\n    }\n    else {\n      local_48 = *(int **)(iVar14 + 4);\n      piVar16 = *(int **)(iVar14 + 8);\n      if (piVar16 == (int *)0x0) goto LAB_000c1450;\nLAB_000c0c7c:\n      local_58 = *piVar16;\n      bVar1 = (*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700;\n    }\n    puVar3 = PTR_LAB_0015b714;\n    iVar18 = *(int *)(param_1 + 0x2c);\n    iVar23 = *(int *)(param_1 + 0x28);\n    iVar17 = *(int *)(param_1 + 0x38);\n    iVar5 = iVar18 + local_58;\n    iVar9 = iVar5 + 2;\n    iVar20 = iVar17 + -2;\n    *(int *)(param_1 + 0x28) = iVar23 + 1;\n    iVar5 = iVar5 + 1;\n    *(int *)(param_1 + 0x38) = iVar20;\n    *(int *)(param_1 + 0x2c) = iVar9;\n    iVar17 = iVar17 + -1;\n    (*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar20,&local_30\n              );\n    pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    local_60 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar24)(piVar11,iVar20);\n    (*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 2,0);\n    (*pcVar15)(piVar11,0x6f,iVar23,*(undefined4 *)(iVar14 + 0x24),0);\n    uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);\n    (*pcVar15)(piVar11,0x46,0,iVar9,0);\n    (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n    (*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar17,0);\n    if (bVar1) {\n      iVar20 = piVar11[0x1b];\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n      (*pcVar15)(piVar11,5,iVar23,iVar20,0);\n      (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n      local_50 = piVar11[0x1b];\n      if (piVar16 != (int *)0x0) goto LAB_000c0e28;\n      pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n    }\n    else {\n      local_50 = piVar11[0x1b];\n      if (piVar16 == (int *)0x0) {\n        pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);\n        uVar6 = uVar4;\n        if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n    }\nLAB_000c0e5c:\n    (*pcVar15)(piVar11,0x53,iVar9,1,0);\n    (*pcVar15)(piVar11,5,iVar23,local_50,0);\n    (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n    (*pcVar24)(piVar11,iVar17);\n    (*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n  }" if (parenthesized_expression "(*(char *)(iVar14 + 0xc) == 'L')" ( (binary_expression "*(char *)(iVar14 + 0xc) == 'L'" (pointer_expression "*(char *)(iVar14 + 0xc)" * (cast_expression "(char *)(iVar14 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xc)" ( (binary_expression "iVar14 + 0xc" identifier + number_literal) )))) == (char_literal "'L'" ' character ')) )) (compound_statement "{\n    if ((uVar2 == 0x575200) && (*(int *)(iVar14 + 8) != 0)) goto LAB_000c08b4;\n    piVar11 = *(int **)(param_1 + 8);\n    if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n    }\n    puVar3 = PTR_LAB_0015b714;\n    iVar20 = *(int *)(param_1 + 0x28);\n    iVar18 = *(int *)(param_1 + 0x2c);\n    iVar17 = iVar18 + 3;\n    iVar23 = *(int *)(param_1 + 0x38) + -2;\n    *(int *)(param_1 + 0x28) = iVar20 + 2;\n    iVar12 = *(int *)(param_1 + 0x38) + -1;\n    iVar5 = iVar18 + 1;\n    *(int *)(param_1 + 0x2c) = iVar17;\n    *(int *)(param_1 + 0x38) = iVar23;\n    iVar18 = iVar18 + 2;\n    iVar9 = iVar20 + 1;\n    local_30 = 0;\n    (*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar12,&local_30\n              );\n    pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    local_60 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar24)(piVar11,iVar12);\n    (*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 3,0);\n    (*pcVar15)(piVar11,0x6f,iVar20,*(undefined4 *)(iVar14 + 0x24),0);\n    (*pcVar15)(piVar11,0x6f,iVar9,*(undefined4 *)(iVar14 + 0x24),0);\n    if (*(int *)(iVar14 + 0x10) != 0) {\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x10),iVar18);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar18,0);\n    }\n    if (*(int *)(iVar14 + 0x14) != 0) {\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x14),iVar17);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar17,1);\n      if ((*(int *)(iVar14 + 0x14) != 0) && (*(char *)(iVar14 + 0xd) == 'S')) {\n        (*pcVar15)(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17);\n        (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n        (*pcVar15)(piVar11,0x61,iVar18,iVar17,iVar17);\n      }\n    }\n    if ((*(int *)(iVar14 + 0x10) != 0) && (*(char *)(iVar14 + 0xe) == 'U')) {\n      (*pcVar15)(piVar11,0x37,iVar18,piVar11[0x1b] + 3,iVar17);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar17,0);\n    }\n    uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);\n    (*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar23,0);\n    (*pcVar15)(piVar11,0x24,iVar20,iVar23,0);\n    if (0 < piVar11[0x1b]) {\n      *(undefined2 *)(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12) = 1;\n    }\n    (*pcVar15)(piVar11,0x24,iVar9,iVar23,0);\n    iVar12 = piVar11[0x1b];\n    if (0 < iVar12) {\n      *(undefined2 *)(piVar11[0x1a] + iVar12 * 0x14 + -0x12) = 1;\n      iVar12 = piVar11[0x1b];\n    }\n    if (*(char *)(iVar14 + 0xe) == 'U') {\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n      iVar13 = piVar11[0x1b];\n    }\n    else {\n      local_50 = 0;\n      iVar13 = iVar12;\n    }\n    (*pcVar15)(piVar11,5,iVar9,iVar13 + 2,0);\n    iVar13 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7af4);\n    (*pcVar21)(param_1,iVar14,iVar9,0,uVar4,local_30);\n    if (*(char *)(iVar14 + 0xe) == 'W') {\n      (*pcVar15)(piVar11,0xb,0,iVar12,0);\n      iVar12 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar12 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n    }\n    else {\n      iVar9 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar9 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14);\n      }\n      else {\n        puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n      }\n      *(int *)(puVar3 + 8) = iVar9;\n      cVar10 = *(char *)(iVar14 + 0xe);\n      if (cVar10 == 'U') {\n        iVar13 = iVar9 + -1;\n        if (-1 < local_50) {\n          iVar13 = local_50;\n        }\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n      }\n    }\n    if (cVar10 == 'S') {\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n    }\n    if (*(char *)(iVar14 + 0xd) == 'S') {\n      iVar17 = (*pcVar15)(piVar11,0x2f,iVar18,0,1);\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        if (iVar17 < 0) {\n          iVar17 = iVar9 + -1;\n        }\n        goto LAB_000c1d20;\n      }\n    }\n    else {\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        iVar17 = 0;\nLAB_000c1d20:\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n      }\n    }\n    if ((uVar2 - 0x52 < 2) || (uVar2 == 0x55)) {\n      iVar17 = *(int *)(param_1 + 0x38) + -1;\n      *(int *)(param_1 + 0x38) = iVar17;\n      cVar10 = *(char *)(iVar14 + 0xd);\n      if (cVar10 == 'U') {\n        (*pcVar15)(piVar11,0x2f,iVar18,iVar17,1);\n        cVar10 = *(char *)(iVar14 + 0xd);\n      }\n      if (cVar10 == 'S') {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 2,0);\n        (*pcVar15)(piVar11,0xb,0,iVar17,0);\n      }\n      else {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0);\n      }\n      (*pcVar21)(param_1,iVar14,iVar20,1,uVar4,local_30);\n      (*pcVar24)(piVar11,iVar17);\n    }\n    if (*(char *)(iVar14 + 0xe) == 'S') {\n      iVar18 = piVar11[0x1b];\n      if (local_50 < 0) {\n        local_50 = iVar18 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + local_50 * 0x14 + 8) = iVar18;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n      }\n    }\n    (*pcVar15)(piVar11,0xb,0,iVar12,0);\n    (*pcVar24)(piVar11,iVar23);\n    (*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n  }" { (if_statement "if ((uVar2 == 0x575200) && (*(int *)(iVar14 + 8) != 0)) goto LAB_000c08b4;" if (parenthesized_expression "((uVar2 == 0x575200) && (*(int *)(iVar14 + 8) != 0))" ( (binary_expression "(uVar2 == 0x575200) && (*(int *)(iVar14 + 8) != 0)" (parenthesized_expression "(uVar2 == 0x575200)" ( (binary_expression "uVar2 == 0x575200" identifier == number_literal) )) && (parenthesized_expression "(*(int *)(iVar14 + 8) != 0)" ( (binary_expression "*(int *)(iVar14 + 8) != 0" (pointer_expression "*(int *)(iVar14 + 8)" * (cast_expression "(int *)(iVar14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 8)" ( (binary_expression "iVar14 + 8" identifier + number_literal) )))) != number_literal) ))) )) (goto_statement "goto LAB_000c08b4;" goto statement_identifier ;)) (expression_statement "piVar11 = *(int **)(param_1 + 8);" (assignment_expression "piVar11 = *(int **)(param_1 + 8)" identifier = (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (if_statement "if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n    }" if (parenthesized_expression "(piVar11 == (int *)0x0)" ( (binary_expression "piVar11 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n    }" { (expression_statement "piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);" (assignment_expression "piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1)" identifier = (cast_expression "(int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x371c))" ( (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x371c)" * (cast_expression "(code *)(PTR_LAB_0015b710 + -0x371c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x371c)" ( (binary_expression "PTR_LAB_0015b710 + -0x371c" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))))) ;) })) (expression_statement "puVar3 = PTR_LAB_0015b714;" (assignment_expression "puVar3 = PTR_LAB_0015b714" identifier = identifier) ;) (expression_statement "iVar20 = *(int *)(param_1 + 0x28);" (assignment_expression "iVar20 = *(int *)(param_1 + 0x28)" identifier = (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = *(int *)(param_1 + 0x2c);" (assignment_expression "iVar18 = *(int *)(param_1 + 0x2c)" identifier = (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "iVar17 = iVar18 + 3;" (assignment_expression "iVar17 = iVar18 + 3" identifier = (binary_expression "iVar18 + 3" identifier + number_literal)) ;) (expression_statement "iVar23 = *(int *)(param_1 + 0x38) + -2;" (assignment_expression "iVar23 = *(int *)(param_1 + 0x38) + -2" identifier = (binary_expression "*(int *)(param_1 + 0x38) + -2" (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(param_1 + 0x28) = iVar20 + 2;" (assignment_expression "*(int *)(param_1 + 0x28) = iVar20 + 2" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "iVar20 + 2" identifier + number_literal)) ;) (expression_statement "iVar12 = *(int *)(param_1 + 0x38) + -1;" (assignment_expression "iVar12 = *(int *)(param_1 + 0x38) + -1" identifier = (binary_expression "*(int *)(param_1 + 0x38) + -1" (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar5 = iVar18 + 1;" (assignment_expression "iVar5 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(param_1 + 0x2c) = iVar17;" (assignment_expression "*(int *)(param_1 + 0x2c) = iVar17" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(param_1 + 0x38) = iVar23;" (assignment_expression "*(int *)(param_1 + 0x38) = iVar23" (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar18 = iVar18 + 2;" (assignment_expression "iVar18 = iVar18 + 2" identifier = (binary_expression "iVar18 + 2" identifier + number_literal)) ;) (expression_statement "iVar9 = iVar20 + 1;" (assignment_expression "iVar9 = iVar20 + 1" identifier = (binary_expression "iVar20 + 1" identifier + number_literal)) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "(*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar12,&local_30\n              );" (call_expression "(*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar12,&local_30\n              )" (parenthesized_expression "(*(code *)(puVar3 + -0x7e94))" ( (pointer_expression "*(code *)(puVar3 + -0x7e94)" * (cast_expression "(code *)(puVar3 + -0x7e94)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x7e94)" ( (binary_expression "puVar3 + -0x7e94" identifier + number_literal) )))) )) (argument_list "(param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar12,&local_30\n              )" ( identifier , (binary_expression "param_2 + 0x20" identifier + number_literal) , (pointer_expression "*(undefined4 *)(param_2 + 0x44)" * (cast_expression "(undefined4 *)(param_2 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x44)" ( (binary_expression "param_2 + 0x44" identifier + number_literal) )))) , identifier , identifier , identifier , (pointer_expression "&local_30" & identifier) ))) ;) (expression_statement "pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);" (assignment_expression "pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x3890)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x3890)" ( (binary_expression "PTR_LAB_0015b710 + -0x3890" identifier + number_literal) )))) ;) (expression_statement "local_60 = (*pcVar15)(piVar11,0xb,0,0,0);" (assignment_expression "local_60 = (*pcVar15)(piVar11,0xb,0,0,0)" identifier = (call_expression "(*pcVar15)(piVar11,0xb,0,0,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0xb,0,0,0)" ( identifier , number_literal , number_literal , number_literal , number_literal )))) ;) (expression_statement "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);" (assignment_expression "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x3c14)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x3c14)" ( (binary_expression "PTR_LAB_0015b710 + -0x3c14" identifier + number_literal) )))) ;) (expression_statement "(*pcVar24)(piVar11,iVar12);" (call_expression "(*pcVar24)(piVar11,iVar12)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(piVar11,iVar12)" ( identifier , identifier ))) ;) (expression_statement "(*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 3,0);" (call_expression "(*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 3,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x11,0,piVar11[0x1b] + 3,0)" ( identifier , number_literal , number_literal , (binary_expression "piVar11[0x1b] + 3" (subscript_expression "piVar11[0x1b]" identifier [ number_literal ]) + number_literal) , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar11,0x6f,iVar20,*(undefined4 *)(iVar14 + 0x24),0);" (call_expression "(*pcVar15)(piVar11,0x6f,iVar20,*(undefined4 *)(iVar14 + 0x24),0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x6f,iVar20,*(undefined4 *)(iVar14 + 0x24),0)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" * (cast_expression "(undefined4 *)(iVar14 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x24)" ( (binary_expression "iVar14 + 0x24" identifier + number_literal) )))) , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar11,0x6f,iVar9,*(undefined4 *)(iVar14 + 0x24),0);" (call_expression "(*pcVar15)(piVar11,0x6f,iVar9,*(undefined4 *)(iVar14 + 0x24),0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x6f,iVar9,*(undefined4 *)(iVar14 + 0x24),0)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" * (cast_expression "(undefined4 *)(iVar14 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x24)" ( (binary_expression "iVar14 + 0x24" identifier + number_literal) )))) , number_literal ))) ;) (if_statement "if (*(int *)(iVar14 + 0x10) != 0) {\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x10),iVar18);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar18,0);\n    }" if (parenthesized_expression "(*(int *)(iVar14 + 0x10) != 0)" ( (binary_expression "*(int *)(iVar14 + 0x10) != 0" (pointer_expression "*(int *)(iVar14 + 0x10)" * (cast_expression "(int *)(iVar14 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x10)" ( (binary_expression "iVar14 + 0x10" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x10),iVar18);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar18,0);\n    }" { (expression_statement "FUN_000c02d8(param_1,*(int *)(iVar14 + 0x10),iVar18);" (call_expression "FUN_000c02d8(param_1,*(int *)(iVar14 + 0x10),iVar18)" identifier (argument_list "(param_1,*(int *)(iVar14 + 0x10),iVar18)" ( identifier , (pointer_expression "*(int *)(iVar14 + 0x10)" * (cast_expression "(int *)(iVar14 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x10)" ( (binary_expression "iVar14 + 0x10" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "(*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar18,0);" (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar18,0)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x2920))" ( (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x2920)" * (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2920)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2920)" ( (binary_expression "PTR_LAB_0015b710 + -0x2920" identifier + number_literal) )))) )) (argument_list "(param_1,iVar18,0)" ( identifier , identifier , number_literal ))) ;) })) (if_statement "if (*(int *)(iVar14 + 0x14) != 0) {\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x14),iVar17);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar17,1);\n      if ((*(int *)(iVar14 + 0x14) != 0) && (*(char *)(iVar14 + 0xd) == 'S')) {\n        (*pcVar15)(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17);\n        (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n        (*pcVar15)(piVar11,0x61,iVar18,iVar17,iVar17);\n      }\n    }" if (parenthesized_expression "(*(int *)(iVar14 + 0x14) != 0)" ( (binary_expression "*(int *)(iVar14 + 0x14) != 0" (pointer_expression "*(int *)(iVar14 + 0x14)" * (cast_expression "(int *)(iVar14 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x14)" ( (binary_expression "iVar14 + 0x14" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x14),iVar17);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar17,1);\n      if ((*(int *)(iVar14 + 0x14) != 0) && (*(char *)(iVar14 + 0xd) == 'S')) {\n        (*pcVar15)(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17);\n        (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n        (*pcVar15)(piVar11,0x61,iVar18,iVar17,iVar17);\n      }\n    }" { (expression_statement "FUN_000c02d8(param_1,*(int *)(iVar14 + 0x14),iVar17);" (call_expression "FUN_000c02d8(param_1,*(int *)(iVar14 + 0x14),iVar17)" identifier (argument_list "(param_1,*(int *)(iVar14 + 0x14),iVar17)" ( identifier , (pointer_expression "*(int *)(iVar14 + 0x14)" * (cast_expression "(int *)(iVar14 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x14)" ( (binary_expression "iVar14 + 0x14" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "(*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar17,1);" (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar17,1)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x2920))" ( (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x2920)" * (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2920)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2920)" ( (binary_expression "PTR_LAB_0015b710 + -0x2920" identifier + number_literal) )))) )) (argument_list "(param_1,iVar17,1)" ( identifier , identifier , number_literal ))) ;) (if_statement "if ((*(int *)(iVar14 + 0x14) != 0) && (*(char *)(iVar14 + 0xd) == 'S')) {\n        (*pcVar15)(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17);\n        (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n        (*pcVar15)(piVar11,0x61,iVar18,iVar17,iVar17);\n      }" if (parenthesized_expression "((*(int *)(iVar14 + 0x14) != 0) && (*(char *)(iVar14 + 0xd) == 'S'))" ( (binary_expression "(*(int *)(iVar14 + 0x14) != 0) && (*(char *)(iVar14 + 0xd) == 'S')" (parenthesized_expression "(*(int *)(iVar14 + 0x14) != 0)" ( (binary_expression "*(int *)(iVar14 + 0x14) != 0" (pointer_expression "*(int *)(iVar14 + 0x14)" * (cast_expression "(int *)(iVar14 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x14)" ( (binary_expression "iVar14 + 0x14" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(char *)(iVar14 + 0xd) == 'S')" ( (binary_expression "*(char *)(iVar14 + 0xd) == 'S'" (pointer_expression "*(char *)(iVar14 + 0xd)" * (cast_expression "(char *)(iVar14 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xd)" ( (binary_expression "iVar14 + 0xd" identifier + number_literal) )))) == (char_literal "'S'" ' character ')) ))) )) (compound_statement "{\n        (*pcVar15)(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17);\n        (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n        (*pcVar15)(piVar11,0x61,iVar18,iVar17,iVar17);\n      }" { (expression_statement "(*pcVar15)(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17);" (call_expression "(*pcVar15)(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17)" ( identifier , number_literal , identifier , (binary_expression "piVar11[0x1b] + 2" (subscript_expression "piVar11[0x1b]" identifier [ number_literal ]) + number_literal) , identifier ))) ;) (expression_statement "(*pcVar15)(piVar11,0x4e,local_30,iVar18,0);" (call_expression "(*pcVar15)(piVar11,0x4e,local_30,iVar18,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x4e,local_30,iVar18,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar11,0x61,iVar18,iVar17,iVar17);" (call_expression "(*pcVar15)(piVar11,0x61,iVar18,iVar17,iVar17)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x61,iVar18,iVar17,iVar17)" ( identifier , number_literal , identifier , identifier , identifier ))) ;) })) })) (if_statement "if ((*(int *)(iVar14 + 0x10) != 0) && (*(char *)(iVar14 + 0xe) == 'U')) {\n      (*pcVar15)(piVar11,0x37,iVar18,piVar11[0x1b] + 3,iVar17);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar17,0);\n    }" if (parenthesized_expression "((*(int *)(iVar14 + 0x10) != 0) && (*(char *)(iVar14 + 0xe) == 'U'))" ( (binary_expression "(*(int *)(iVar14 + 0x10) != 0) && (*(char *)(iVar14 + 0xe) == 'U')" (parenthesized_expression "(*(int *)(iVar14 + 0x10) != 0)" ( (binary_expression "*(int *)(iVar14 + 0x10) != 0" (pointer_expression "*(int *)(iVar14 + 0x10)" * (cast_expression "(int *)(iVar14 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x10)" ( (binary_expression "iVar14 + 0x10" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(char *)(iVar14 + 0xe) == 'U')" ( (binary_expression "*(char *)(iVar14 + 0xe) == 'U'" (pointer_expression "*(char *)(iVar14 + 0xe)" * (cast_expression "(char *)(iVar14 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xe)" ( (binary_expression "iVar14 + 0xe" identifier + number_literal) )))) == (char_literal "'U'" ' character ')) ))) )) (compound_statement "{\n      (*pcVar15)(piVar11,0x37,iVar18,piVar11[0x1b] + 3,iVar17);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar17,0);\n    }" { (expression_statement "(*pcVar15)(piVar11,0x37,iVar18,piVar11[0x1b] + 3,iVar17);" (call_expression "(*pcVar15)(piVar11,0x37,iVar18,piVar11[0x1b] + 3,iVar17)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x37,iVar18,piVar11[0x1b] + 3,iVar17)" ( identifier , number_literal , identifier , (binary_expression "piVar11[0x1b] + 3" (subscript_expression "piVar11[0x1b]" identifier [ number_literal ]) + number_literal) , identifier ))) ;) (expression_statement "(*pcVar15)(piVar11,0x4e,local_30,iVar18,0);" (call_expression "(*pcVar15)(piVar11,0x4e,local_30,iVar18,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x4e,local_30,iVar18,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar11,0x4e,local_30,iVar17,0);" (call_expression "(*pcVar15)(piVar11,0x4e,local_30,iVar17,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x4e,local_30,iVar17,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) })) (expression_statement "uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);" (assignment_expression "uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14)" identifier = (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x2e00))" ( (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x2e00)" * (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2e00)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2e00)" ( (binary_expression "PTR_LAB_0015b710 + -0x2e00" identifier + number_literal) )))) )) (argument_list "(param_1,iVar14)" ( identifier , identifier )))) ;) (expression_statement "(*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar23,0);" (call_expression "(*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar23,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar23,0)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" * (cast_expression "(undefined4 *)(iVar14 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x24)" ( (binary_expression "iVar14 + 0x24" identifier + number_literal) )))) , identifier , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar11,0x24,iVar20,iVar23,0);" (call_expression "(*pcVar15)(piVar11,0x24,iVar20,iVar23,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x24,iVar20,iVar23,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (if_statement "if (0 < piVar11[0x1b]) {\n      *(undefined2 *)(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12) = 1;\n    }" if (parenthesized_expression "(0 < piVar11[0x1b])" ( (binary_expression "0 < piVar11[0x1b]" number_literal < (subscript_expression "piVar11[0x1b]" identifier [ number_literal ])) )) (compound_statement "{\n      *(undefined2 *)(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12) = 1;\n    }" { (expression_statement "*(undefined2 *)(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12) = 1;" (assignment_expression "*(undefined2 *)(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12) = 1" (pointer_expression "*(undefined2 *)(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12)" * (cast_expression "(undefined2 *)(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12)" ( (binary_expression "piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12" (binary_expression "piVar11[0x1a] + piVar11[0x1b] * 0x14" (subscript_expression "piVar11[0x1a]" identifier [ number_literal ]) + (binary_expression "piVar11[0x1b] * 0x14" (subscript_expression "piVar11[0x1b]" identifier [ number_literal ]) * number_literal)) + number_literal) )))) = number_literal) ;) })) (expression_statement "(*pcVar15)(piVar11,0x24,iVar9,iVar23,0);" (call_expression "(*pcVar15)(piVar11,0x24,iVar9,iVar23,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x24,iVar9,iVar23,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "iVar12 = piVar11[0x1b];" (assignment_expression "iVar12 = piVar11[0x1b]" identifier = (subscript_expression "piVar11[0x1b]" identifier [ number_literal ])) ;) (if_statement "if (0 < iVar12) {\n      *(undefined2 *)(piVar11[0x1a] + iVar12 * 0x14 + -0x12) = 1;\n      iVar12 = piVar11[0x1b];\n    }" if (parenthesized_expression "(0 < iVar12)" ( (binary_expression "0 < iVar12" number_literal < identifier) )) (compound_statement "{\n      *(undefined2 *)(piVar11[0x1a] + iVar12 * 0x14 + -0x12) = 1;\n      iVar12 = piVar11[0x1b];\n    }" { (expression_statement "*(undefined2 *)(piVar11[0x1a] + iVar12 * 0x14 + -0x12) = 1;" (assignment_expression "*(undefined2 *)(piVar11[0x1a] + iVar12 * 0x14 + -0x12) = 1" (pointer_expression "*(undefined2 *)(piVar11[0x1a] + iVar12 * 0x14 + -0x12)" * (cast_expression "(undefined2 *)(piVar11[0x1a] + iVar12 * 0x14 + -0x12)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar11[0x1a] + iVar12 * 0x14 + -0x12)" ( (binary_expression "piVar11[0x1a] + iVar12 * 0x14 + -0x12" (binary_expression "piVar11[0x1a] + iVar12 * 0x14" (subscript_expression "piVar11[0x1a]" identifier [ number_literal ]) + (binary_expression "iVar12 * 0x14" identifier * number_literal)) + number_literal) )))) = number_literal) ;) (expression_statement "iVar12 = piVar11[0x1b];" (assignment_expression "iVar12 = piVar11[0x1b]" identifier = (subscript_expression "piVar11[0x1b]" identifier [ number_literal ])) ;) })) (if_statement "if (*(char *)(iVar14 + 0xe) == 'U') {\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n      iVar13 = piVar11[0x1b];\n    }\n    else {\n      local_50 = 0;\n      iVar13 = iVar12;\n    }" if (parenthesized_expression "(*(char *)(iVar14 + 0xe) == 'U')" ( (binary_expression "*(char *)(iVar14 + 0xe) == 'U'" (pointer_expression "*(char *)(iVar14 + 0xe)" * (cast_expression "(char *)(iVar14 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xe)" ( (binary_expression "iVar14 + 0xe" identifier + number_literal) )))) == (char_literal "'U'" ' character ')) )) (compound_statement "{\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n      iVar13 = piVar11[0x1b];\n    }" { (expression_statement "local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);" (assignment_expression "local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1)" identifier = (call_expression "(*pcVar15)(piVar11,0x2f,iVar17,0,1)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x2f,iVar17,0,1)" ( identifier , number_literal , identifier , number_literal , number_literal )))) ;) (expression_statement "iVar13 = piVar11[0x1b];" (assignment_expression "iVar13 = piVar11[0x1b]" identifier = (subscript_expression "piVar11[0x1b]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      local_50 = 0;\n      iVar13 = iVar12;\n    }" else (compound_statement "{\n      local_50 = 0;\n      iVar13 = iVar12;\n    }" { (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "iVar13 = iVar12;" (assignment_expression "iVar13 = iVar12" identifier = identifier) ;) }))) (expression_statement "(*pcVar15)(piVar11,5,iVar9,iVar13 + 2,0);" (call_expression "(*pcVar15)(piVar11,5,iVar9,iVar13 + 2,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,5,iVar9,iVar13 + 2,0)" ( identifier , number_literal , identifier , (binary_expression "iVar13 + 2" identifier + number_literal) , number_literal ))) ;) (expression_statement "iVar13 = (*pcVar15)(piVar11,0xb,0,0,0);" (assignment_expression "iVar13 = (*pcVar15)(piVar11,0xb,0,0,0)" identifier = (call_expression "(*pcVar15)(piVar11,0xb,0,0,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0xb,0,0,0)" ( identifier , number_literal , number_literal , number_literal , number_literal )))) ;) (expression_statement "pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7af4);" (assignment_expression "pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7af4)" identifier = (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7af4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x7af4)" ( (binary_expression "PTR_LAB_0015b714 + -0x7af4" identifier + number_literal) )))) ;) (expression_statement "(*pcVar21)(param_1,iVar14,iVar9,0,uVar4,local_30);" (call_expression "(*pcVar21)(param_1,iVar14,iVar9,0,uVar4,local_30)" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "(param_1,iVar14,iVar9,0,uVar4,local_30)" ( identifier , identifier , identifier , number_literal , identifier , identifier ))) ;) (if_statement "if (*(char *)(iVar14 + 0xe) == 'W') {\n      (*pcVar15)(piVar11,0xb,0,iVar12,0);\n      iVar12 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar12 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n    }\n    else {\n      iVar9 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar9 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14);\n      }\n      else {\n        puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n      }\n      *(int *)(puVar3 + 8) = iVar9;\n      cVar10 = *(char *)(iVar14 + 0xe);\n      if (cVar10 == 'U') {\n        iVar13 = iVar9 + -1;\n        if (-1 < local_50) {\n          iVar13 = local_50;\n        }\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n      }\n    }" if (parenthesized_expression "(*(char *)(iVar14 + 0xe) == 'W')" ( (binary_expression "*(char *)(iVar14 + 0xe) == 'W'" (pointer_expression "*(char *)(iVar14 + 0xe)" * (cast_expression "(char *)(iVar14 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xe)" ( (binary_expression "iVar14 + 0xe" identifier + number_literal) )))) == (char_literal "'W'" ' character ')) )) (compound_statement "{\n      (*pcVar15)(piVar11,0xb,0,iVar12,0);\n      iVar12 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar12 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n    }" { (expression_statement "(*pcVar15)(piVar11,0xb,0,iVar12,0);" (call_expression "(*pcVar15)(piVar11,0xb,0,iVar12,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0xb,0,iVar12,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) (expression_statement "iVar12 = piVar11[0x1b];" (assignment_expression "iVar12 = piVar11[0x1b]" identifier = (subscript_expression "piVar11[0x1b]" identifier [ number_literal ])) ;) (if_statement "if (iVar13 < 0) {\n        iVar13 = iVar12 + -1;\n      }" if (parenthesized_expression "(iVar13 < 0)" ( (binary_expression "iVar13 < 0" identifier < number_literal) )) (compound_statement "{\n        iVar13 = iVar12 + -1;\n      }" { (expression_statement "iVar13 = iVar12 + -1;" (assignment_expression "iVar13 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) })) (if_statement "if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }" if (parenthesized_expression "(*(char *)(*piVar11 + 0x51) == '\0')" ( (binary_expression "*(char *)(*piVar11 + 0x51) == '\0'" (pointer_expression "*(char *)(*piVar11 + 0x51)" * (cast_expression "(char *)(*piVar11 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar11 + 0x51)" ( (binary_expression "*piVar11 + 0x51" (pointer_expression "*piVar11" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }" { (expression_statement "*(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar12;" (assignment_expression "*(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar12" (pointer_expression "*(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8)" * (cast_expression "(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar11[0x1a] + iVar13 * 0x14 + 8)" ( (binary_expression "piVar11[0x1a] + iVar13 * 0x14 + 8" (binary_expression "piVar11[0x1a] + iVar13 * 0x14" (subscript_expression "piVar11[0x1a]" identifier [ number_literal ]) + (binary_expression "iVar13 * 0x14" identifier * number_literal)) + number_literal) )))) = identifier) ;) (expression_statement "cVar10 = *(char *)(iVar14 + 0xe);" (assignment_expression "cVar10 = *(char *)(iVar14 + 0xe)" identifier = (pointer_expression "*(char *)(iVar14 + 0xe)" * (cast_expression "(char *)(iVar14 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xe)" ( (binary_expression "iVar14 + 0xe" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }" else (compound_statement "{\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }" { (expression_statement "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12;" (assignment_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12" (pointer_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c)" * (cast_expression "(int *)(PTR_DAT_0015b5d8 + -0x450c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x450c)" ( (binary_expression "PTR_DAT_0015b5d8 + -0x450c" identifier + number_literal) )))) = identifier) ;) (expression_statement "cVar10 = *(char *)(iVar14 + 0xe);" (assignment_expression "cVar10 = *(char *)(iVar14 + 0xe)" identifier = (pointer_expression "*(char *)(iVar14 + 0xe)" * (cast_expression "(char *)(iVar14 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xe)" ( (binary_expression "iVar14 + 0xe" identifier + number_literal) ))))) ;) }))) }) (else_clause "else {\n      iVar9 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar9 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14);\n      }\n      else {\n        puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n      }\n      *(int *)(puVar3 + 8) = iVar9;\n      cVar10 = *(char *)(iVar14 + 0xe);\n      if (cVar10 == 'U') {\n        iVar13 = iVar9 + -1;\n        if (-1 < local_50) {\n          iVar13 = local_50;\n        }\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n      }\n    }" else (compound_statement "{\n      iVar9 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar9 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14);\n      }\n      else {\n        puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n      }\n      *(int *)(puVar3 + 8) = iVar9;\n      cVar10 = *(char *)(iVar14 + 0xe);\n      if (cVar10 == 'U') {\n        iVar13 = iVar9 + -1;\n        if (-1 < local_50) {\n          iVar13 = local_50;\n        }\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n      }\n    }" { (expression_statement "iVar9 = piVar11[0x1b];" (assignment_expression "iVar9 = piVar11[0x1b]" identifier = (subscript_expression "piVar11[0x1b]" identifier [ number_literal ])) ;) (if_statement "if (iVar13 < 0) {\n        iVar13 = iVar9 + -1;\n      }" if (parenthesized_expression "(iVar13 < 0)" ( (binary_expression "iVar13 < 0" identifier < number_literal) )) (compound_statement "{\n        iVar13 = iVar9 + -1;\n      }" { (expression_statement "iVar13 = iVar9 + -1;" (assignment_expression "iVar13 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) })) (if_statement "if (*(char *)(*piVar11 + 0x51) == '\0') {\n        puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14);\n      }\n      else {\n        puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n      }" if (parenthesized_expression "(*(char *)(*piVar11 + 0x51) == '\0')" ( (binary_expression "*(char *)(*piVar11 + 0x51) == '\0'" (pointer_expression "*(char *)(*piVar11 + 0x51)" * (cast_expression "(char *)(*piVar11 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar11 + 0x51)" ( (binary_expression "*piVar11 + 0x51" (pointer_expression "*piVar11" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14);\n      }" { (expression_statement "puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14);" (assignment_expression "puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14)" identifier = (cast_expression "(undefined *)(piVar11[0x1a] + iVar13 * 0x14)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar11[0x1a] + iVar13 * 0x14)" ( (binary_expression "piVar11[0x1a] + iVar13 * 0x14" (subscript_expression "piVar11[0x1a]" identifier [ number_literal ]) + (binary_expression "iVar13 * 0x14" identifier * number_literal)) )))) ;) }) (else_clause "else {\n        puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n      }" else (compound_statement "{\n        puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n      }" { (expression_statement "puVar3 = PTR_DAT_0015b5d8 + -0x4514;" (assignment_expression "puVar3 = PTR_DAT_0015b5d8 + -0x4514" identifier = (binary_expression "PTR_DAT_0015b5d8 + -0x4514" identifier + number_literal)) ;) }))) (expression_statement "*(int *)(puVar3 + 8) = iVar9;" (assignment_expression "*(int *)(puVar3 + 8) = iVar9" (pointer_expression "*(int *)(puVar3 + 8)" * (cast_expression "(int *)(puVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 8)" ( (binary_expression "puVar3 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "cVar10 = *(char *)(iVar14 + 0xe);" (assignment_expression "cVar10 = *(char *)(iVar14 + 0xe)" identifier = (pointer_expression "*(char *)(iVar14 + 0xe)" * (cast_expression "(char *)(iVar14 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xe)" ( (binary_expression "iVar14 + 0xe" identifier + number_literal) ))))) ;) (if_statement "if (cVar10 == 'U') {\n        iVar13 = iVar9 + -1;\n        if (-1 < local_50) {\n          iVar13 = local_50;\n        }\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n      }" if (parenthesized_expression "(cVar10 == 'U')" ( (binary_expression "cVar10 == 'U'" identifier == (char_literal "'U'" ' character ')) )) (compound_statement "{\n        iVar13 = iVar9 + -1;\n        if (-1 < local_50) {\n          iVar13 = local_50;\n        }\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n      }" { (expression_statement "iVar13 = iVar9 + -1;" (assignment_expression "iVar13 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (if_statement "if (-1 < local_50) {\n          iVar13 = local_50;\n        }" if (parenthesized_expression "(-1 < local_50)" ( (binary_expression "-1 < local_50" number_literal < identifier) )) (compound_statement "{\n          iVar13 = local_50;\n        }" { (expression_statement "iVar13 = local_50;" (assignment_expression "iVar13 = local_50" identifier = identifier) ;) })) (if_statement "if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }" if (parenthesized_expression "(*(char *)(*piVar11 + 0x51) == '\0')" ( (binary_expression "*(char *)(*piVar11 + 0x51) == '\0'" (pointer_expression "*(char *)(*piVar11 + 0x51)" * (cast_expression "(char *)(*piVar11 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar11 + 0x51)" ( (binary_expression "*piVar11 + 0x51" (pointer_expression "*piVar11" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }" { (expression_statement "*(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;" (assignment_expression "*(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9" (pointer_expression "*(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8)" * (cast_expression "(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar11[0x1a] + iVar13 * 0x14 + 8)" ( (binary_expression "piVar11[0x1a] + iVar13 * 0x14 + 8" (binary_expression "piVar11[0x1a] + iVar13 * 0x14" (subscript_expression "piVar11[0x1a]" identifier [ number_literal ]) + (binary_expression "iVar13 * 0x14" identifier * number_literal)) + number_literal) )))) = identifier) ;) (expression_statement "cVar10 = *(char *)(iVar14 + 0xe);" (assignment_expression "cVar10 = *(char *)(iVar14 + 0xe)" identifier = (pointer_expression "*(char *)(iVar14 + 0xe)" * (cast_expression "(char *)(iVar14 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xe)" ( (binary_expression "iVar14 + 0xe" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }" else (compound_statement "{\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }" { (expression_statement "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;" (assignment_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9" (pointer_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c)" * (cast_expression "(int *)(PTR_DAT_0015b5d8 + -0x450c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x450c)" ( (binary_expression "PTR_DAT_0015b5d8 + -0x450c" identifier + number_literal) )))) = identifier) ;) (expression_statement "cVar10 = *(char *)(iVar14 + 0xe);" (assignment_expression "cVar10 = *(char *)(iVar14 + 0xe)" identifier = (pointer_expression "*(char *)(iVar14 + 0xe)" * (cast_expression "(char *)(iVar14 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xe)" ( (binary_expression "iVar14 + 0xe" identifier + number_literal) ))))) ;) }))) })) }))) (if_statement "if (cVar10 == 'S') {\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n    }" if (parenthesized_expression "(cVar10 == 'S')" ( (binary_expression "cVar10 == 'S'" identifier == (char_literal "'S'" ' character ')) )) (compound_statement "{\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n    }" { (expression_statement "local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);" (assignment_expression "local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1)" identifier = (call_expression "(*pcVar15)(piVar11,0x2f,iVar17,0,1)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x2f,iVar17,0,1)" ( identifier , number_literal , identifier , number_literal , number_literal )))) ;) })) (if_statement "if (*(char *)(iVar14 + 0xd) == 'S') {\n      iVar17 = (*pcVar15)(piVar11,0x2f,iVar18,0,1);\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        if (iVar17 < 0) {\n          iVar17 = iVar9 + -1;\n        }\n        goto LAB_000c1d20;\n      }\n    }\n    else {\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        iVar17 = 0;\nLAB_000c1d20:\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n      }\n    }" if (parenthesized_expression "(*(char *)(iVar14 + 0xd) == 'S')" ( (binary_expression "*(char *)(iVar14 + 0xd) == 'S'" (pointer_expression "*(char *)(iVar14 + 0xd)" * (cast_expression "(char *)(iVar14 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xd)" ( (binary_expression "iVar14 + 0xd" identifier + number_literal) )))) == (char_literal "'S'" ' character ')) )) (compound_statement "{\n      iVar17 = (*pcVar15)(piVar11,0x2f,iVar18,0,1);\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        if (iVar17 < 0) {\n          iVar17 = iVar9 + -1;\n        }\n        goto LAB_000c1d20;\n      }\n    }" { (expression_statement "iVar17 = (*pcVar15)(piVar11,0x2f,iVar18,0,1);" (assignment_expression "iVar17 = (*pcVar15)(piVar11,0x2f,iVar18,0,1)" identifier = (call_expression "(*pcVar15)(piVar11,0x2f,iVar18,0,1)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x2f,iVar18,0,1)" ( identifier , number_literal , identifier , number_literal , number_literal )))) ;) (expression_statement "(*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);" (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x2764))" ( (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x2764)" * (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2764)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2764)" ( (binary_expression "PTR_LAB_0015b710 + -0x2764" identifier + number_literal) )))) )) (argument_list "(param_1,iVar14,0)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);" (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x2524))" ( (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x2524)" * (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2524)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2524)" ( (binary_expression "PTR_LAB_0015b710 + -0x2524" identifier + number_literal) )))) )) (argument_list "(param_1,iVar14,param_4,param_5)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);" (call_expression "(*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" * (cast_expression "(undefined4 *)(iVar14 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x24)" ( (binary_expression "iVar14 + 0x24" identifier + number_literal) )))) , (binary_expression "piVar11[0x1b] + 2" (subscript_expression "piVar11[0x1b]" identifier [ number_literal ]) + number_literal) , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar11,0xb,0,iVar23,0);" (call_expression "(*pcVar15)(piVar11,0xb,0,iVar23,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0xb,0,iVar23,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) (expression_statement "uVar2 = (uint)*(byte *)(iVar14 + 0xd);" (assignment_expression "uVar2 = (uint)*(byte *)(iVar14 + 0xd)" identifier = (binary_expression "(uint)*(byte *)(iVar14 + 0xd)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar14 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xd)" ( (binary_expression "iVar14 + 0xd" identifier + number_literal) ))))) ;) (if_statement "if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        if (iVar17 < 0) {\n          iVar17 = iVar9 + -1;\n        }\n        goto LAB_000c1d20;\n      }" if (parenthesized_expression "(uVar2 == 0x53)" ( (binary_expression "uVar2 == 0x53" identifier == number_literal) )) (compound_statement "{\n        iVar9 = piVar11[0x1b];\n        if (iVar17 < 0) {\n          iVar17 = iVar9 + -1;\n        }\n        goto LAB_000c1d20;\n      }" { (expression_statement "iVar9 = piVar11[0x1b];" (assignment_expression "iVar9 = piVar11[0x1b]" identifier = (subscript_expression "piVar11[0x1b]" identifier [ number_literal ])) ;) (if_statement "if (iVar17 < 0) {\n          iVar17 = iVar9 + -1;\n        }" if (parenthesized_expression "(iVar17 < 0)" ( (binary_expression "iVar17 < 0" identifier < number_literal) )) (compound_statement "{\n          iVar17 = iVar9 + -1;\n        }" { (expression_statement "iVar17 = iVar9 + -1;" (assignment_expression "iVar17 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) })) (goto_statement "goto LAB_000c1d20;" goto statement_identifier ;) })) }) (else_clause "else {\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        iVar17 = 0;\nLAB_000c1d20:\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n      }\n    }" else (compound_statement "{\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        iVar17 = 0;\nLAB_000c1d20:\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n      }\n    }" { (expression_statement "(*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);" (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x2764))" ( (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x2764)" * (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2764)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2764)" ( (binary_expression "PTR_LAB_0015b710 + -0x2764" identifier + number_literal) )))) )) (argument_list "(param_1,iVar14,0)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);" (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x2524))" ( (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x2524)" * (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2524)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2524)" ( (binary_expression "PTR_LAB_0015b710 + -0x2524" identifier + number_literal) )))) )) (argument_list "(param_1,iVar14,param_4,param_5)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);" (call_expression "(*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" * (cast_expression "(undefined4 *)(iVar14 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x24)" ( (binary_expression "iVar14 + 0x24" identifier + number_literal) )))) , (binary_expression "piVar11[0x1b] + 2" (subscript_expression "piVar11[0x1b]" identifier [ number_literal ]) + number_literal) , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar11,0xb,0,iVar23,0);" (call_expression "(*pcVar15)(piVar11,0xb,0,iVar23,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0xb,0,iVar23,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) (expression_statement "uVar2 = (uint)*(byte *)(iVar14 + 0xd);" (assignment_expression "uVar2 = (uint)*(byte *)(iVar14 + 0xd)" identifier = (binary_expression "(uint)*(byte *)(iVar14 + 0xd)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar14 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xd)" ( (binary_expression "iVar14 + 0xd" identifier + number_literal) ))))) ;) (if_statement "if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        iVar17 = 0;\nLAB_000c1d20:\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n      }" if (parenthesized_expression "(uVar2 == 0x53)" ( (binary_expression "uVar2 == 0x53" identifier == number_literal) )) (compound_statement "{\n        iVar9 = piVar11[0x1b];\n        iVar17 = 0;\nLAB_000c1d20:\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n      }" { (expression_statement "iVar9 = piVar11[0x1b];" (assignment_expression "iVar9 = piVar11[0x1b]" identifier = (subscript_expression "piVar11[0x1b]" identifier [ number_literal ])) ;) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000c1d20:\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }" statement_identifier : (if_statement "if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }" if (parenthesized_expression "(*(char *)(*piVar11 + 0x51) == '\0')" ( (binary_expression "*(char *)(*piVar11 + 0x51) == '\0'" (pointer_expression "*(char *)(*piVar11 + 0x51)" * (cast_expression "(char *)(*piVar11 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar11 + 0x51)" ( (binary_expression "*piVar11 + 0x51" (pointer_expression "*piVar11" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }" { (expression_statement "*(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;" (assignment_expression "*(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9" (pointer_expression "*(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8)" * (cast_expression "(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar11[0x1a] + iVar17 * 0x14 + 8)" ( (binary_expression "piVar11[0x1a] + iVar17 * 0x14 + 8" (binary_expression "piVar11[0x1a] + iVar17 * 0x14" (subscript_expression "piVar11[0x1a]" identifier [ number_literal ]) + (binary_expression "iVar17 * 0x14" identifier * number_literal)) + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = (uint)*(byte *)(iVar14 + 0xd);" (assignment_expression "uVar2 = (uint)*(byte *)(iVar14 + 0xd)" identifier = (binary_expression "(uint)*(byte *)(iVar14 + 0xd)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar14 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xd)" ( (binary_expression "iVar14 + 0xd" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }" else (compound_statement "{\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }" { (expression_statement "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;" (assignment_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9" (pointer_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c)" * (cast_expression "(int *)(PTR_DAT_0015b5d8 + -0x450c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x450c)" ( (binary_expression "PTR_DAT_0015b5d8 + -0x450c" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = (uint)*(byte *)(iVar14 + 0xd);" (assignment_expression "uVar2 = (uint)*(byte *)(iVar14 + 0xd)" identifier = (binary_expression "(uint)*(byte *)(iVar14 + 0xd)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar14 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xd)" ( (binary_expression "iVar14 + 0xd" identifier + number_literal) ))))) ;) })))) })) }))) (if_statement "if ((uVar2 - 0x52 < 2) || (uVar2 == 0x55)) {\n      iVar17 = *(int *)(param_1 + 0x38) + -1;\n      *(int *)(param_1 + 0x38) = iVar17;\n      cVar10 = *(char *)(iVar14 + 0xd);\n      if (cVar10 == 'U') {\n        (*pcVar15)(piVar11,0x2f,iVar18,iVar17,1);\n        cVar10 = *(char *)(iVar14 + 0xd);\n      }\n      if (cVar10 == 'S') {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 2,0);\n        (*pcVar15)(piVar11,0xb,0,iVar17,0);\n      }\n      else {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0);\n      }\n      (*pcVar21)(param_1,iVar14,iVar20,1,uVar4,local_30);\n      (*pcVar24)(piVar11,iVar17);\n    }" if (parenthesized_expression "((uVar2 - 0x52 < 2) || (uVar2 == 0x55))" ( (binary_expression "(uVar2 - 0x52 < 2) || (uVar2 == 0x55)" (parenthesized_expression "(uVar2 - 0x52 < 2)" ( (binary_expression "uVar2 - 0x52 < 2" (binary_expression "uVar2 - 0x52" identifier - number_literal) < number_literal) )) || (parenthesized_expression "(uVar2 == 0x55)" ( (binary_expression "uVar2 == 0x55" identifier == number_literal) ))) )) (compound_statement "{\n      iVar17 = *(int *)(param_1 + 0x38) + -1;\n      *(int *)(param_1 + 0x38) = iVar17;\n      cVar10 = *(char *)(iVar14 + 0xd);\n      if (cVar10 == 'U') {\n        (*pcVar15)(piVar11,0x2f,iVar18,iVar17,1);\n        cVar10 = *(char *)(iVar14 + 0xd);\n      }\n      if (cVar10 == 'S') {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 2,0);\n        (*pcVar15)(piVar11,0xb,0,iVar17,0);\n      }\n      else {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0);\n      }\n      (*pcVar21)(param_1,iVar14,iVar20,1,uVar4,local_30);\n      (*pcVar24)(piVar11,iVar17);\n    }" { (expression_statement "iVar17 = *(int *)(param_1 + 0x38) + -1;" (assignment_expression "iVar17 = *(int *)(param_1 + 0x38) + -1" identifier = (binary_expression "*(int *)(param_1 + 0x38) + -1" (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(param_1 + 0x38) = iVar17;" (assignment_expression "*(int *)(param_1 + 0x38) = iVar17" (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "cVar10 = *(char *)(iVar14 + 0xd);" (assignment_expression "cVar10 = *(char *)(iVar14 + 0xd)" identifier = (pointer_expression "*(char *)(iVar14 + 0xd)" * (cast_expression "(char *)(iVar14 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xd)" ( (binary_expression "iVar14 + 0xd" identifier + number_literal) ))))) ;) (if_statement "if (cVar10 == 'U') {\n        (*pcVar15)(piVar11,0x2f,iVar18,iVar17,1);\n        cVar10 = *(char *)(iVar14 + 0xd);\n      }" if (parenthesized_expression "(cVar10 == 'U')" ( (binary_expression "cVar10 == 'U'" identifier == (char_literal "'U'" ' character ')) )) (compound_statement "{\n        (*pcVar15)(piVar11,0x2f,iVar18,iVar17,1);\n        cVar10 = *(char *)(iVar14 + 0xd);\n      }" { (expression_statement "(*pcVar15)(piVar11,0x2f,iVar18,iVar17,1);" (call_expression "(*pcVar15)(piVar11,0x2f,iVar18,iVar17,1)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x2f,iVar18,iVar17,1)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "cVar10 = *(char *)(iVar14 + 0xd);" (assignment_expression "cVar10 = *(char *)(iVar14 + 0xd)" identifier = (pointer_expression "*(char *)(iVar14 + 0xd)" * (cast_expression "(char *)(iVar14 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xd)" ( (binary_expression "iVar14 + 0xd" identifier + number_literal) ))))) ;) })) (if_statement "if (cVar10 == 'S') {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 2,0);\n        (*pcVar15)(piVar11,0xb,0,iVar17,0);\n      }\n      else {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0);\n      }" if (parenthesized_expression "(cVar10 == 'S')" ( (binary_expression "cVar10 == 'S'" identifier == (char_literal "'S'" ' character ')) )) (compound_statement "{\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 2,0);\n        (*pcVar15)(piVar11,0xb,0,iVar17,0);\n      }" { (expression_statement "(*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 2,0);" (call_expression "(*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 2,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,5,iVar20,piVar11[0x1b] + 2,0)" ( identifier , number_literal , identifier , (binary_expression "piVar11[0x1b] + 2" (subscript_expression "piVar11[0x1b]" identifier [ number_literal ]) + number_literal) , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar11,0xb,0,iVar17,0);" (call_expression "(*pcVar15)(piVar11,0xb,0,iVar17,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0xb,0,iVar17,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) }) (else_clause "else {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0);\n      }" else (compound_statement "{\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0);\n      }" { (expression_statement "(*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0);" (call_expression "(*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,5,iVar20,piVar11[0x1b] + 1,0)" ( identifier , number_literal , identifier , (binary_expression "piVar11[0x1b] + 1" (subscript_expression "piVar11[0x1b]" identifier [ number_literal ]) + number_literal) , number_literal ))) ;) }))) (expression_statement "(*pcVar21)(param_1,iVar14,iVar20,1,uVar4,local_30);" (call_expression "(*pcVar21)(param_1,iVar14,iVar20,1,uVar4,local_30)" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "(param_1,iVar14,iVar20,1,uVar4,local_30)" ( identifier , identifier , identifier , number_literal , identifier , identifier ))) ;) (expression_statement "(*pcVar24)(piVar11,iVar17);" (call_expression "(*pcVar24)(piVar11,iVar17)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(piVar11,iVar17)" ( identifier , identifier ))) ;) })) (if_statement "if (*(char *)(iVar14 + 0xe) == 'S') {\n      iVar18 = piVar11[0x1b];\n      if (local_50 < 0) {\n        local_50 = iVar18 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + local_50 * 0x14 + 8) = iVar18;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n      }\n    }" if (parenthesized_expression "(*(char *)(iVar14 + 0xe) == 'S')" ( (binary_expression "*(char *)(iVar14 + 0xe) == 'S'" (pointer_expression "*(char *)(iVar14 + 0xe)" * (cast_expression "(char *)(iVar14 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xe)" ( (binary_expression "iVar14 + 0xe" identifier + number_literal) )))) == (char_literal "'S'" ' character ')) )) (compound_statement "{\n      iVar18 = piVar11[0x1b];\n      if (local_50 < 0) {\n        local_50 = iVar18 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + local_50 * 0x14 + 8) = iVar18;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n      }\n    }" { (expression_statement "iVar18 = piVar11[0x1b];" (assignment_expression "iVar18 = piVar11[0x1b]" identifier = (subscript_expression "piVar11[0x1b]" identifier [ number_literal ])) ;) (if_statement "if (local_50 < 0) {\n        local_50 = iVar18 + -1;\n      }" if (parenthesized_expression "(local_50 < 0)" ( (binary_expression "local_50 < 0" identifier < number_literal) )) (compound_statement "{\n        local_50 = iVar18 + -1;\n      }" { (expression_statement "local_50 = iVar18 + -1;" (assignment_expression "local_50 = iVar18 + -1" identifier = (binary_expression "iVar18 + -1" identifier + number_literal)) ;) })) (if_statement "if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + local_50 * 0x14 + 8) = iVar18;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n      }" if (parenthesized_expression "(*(char *)(*piVar11 + 0x51) == '\0')" ( (binary_expression "*(char *)(*piVar11 + 0x51) == '\0'" (pointer_expression "*(char *)(*piVar11 + 0x51)" * (cast_expression "(char *)(*piVar11 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar11 + 0x51)" ( (binary_expression "*piVar11 + 0x51" (pointer_expression "*piVar11" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        *(int *)(piVar11[0x1a] + local_50 * 0x14 + 8) = iVar18;\n      }" { (expression_statement "*(int *)(piVar11[0x1a] + local_50 * 0x14 + 8) = iVar18;" (assignment_expression "*(int *)(piVar11[0x1a] + local_50 * 0x14 + 8) = iVar18" (pointer_expression "*(int *)(piVar11[0x1a] + local_50 * 0x14 + 8)" * (cast_expression "(int *)(piVar11[0x1a] + local_50 * 0x14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar11[0x1a] + local_50 * 0x14 + 8)" ( (binary_expression "piVar11[0x1a] + local_50 * 0x14 + 8" (binary_expression "piVar11[0x1a] + local_50 * 0x14" (subscript_expression "piVar11[0x1a]" identifier [ number_literal ]) + (binary_expression "local_50 * 0x14" identifier * number_literal)) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n      }" else (compound_statement "{\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n      }" { (expression_statement "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;" (assignment_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18" (pointer_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c)" * (cast_expression "(int *)(PTR_DAT_0015b5d8 + -0x450c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x450c)" ( (binary_expression "PTR_DAT_0015b5d8 + -0x450c" identifier + number_literal) )))) = identifier) ;) }))) })) (expression_statement "(*pcVar15)(piVar11,0xb,0,iVar12,0);" (call_expression "(*pcVar15)(piVar11,0xb,0,iVar12,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0xb,0,iVar12,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) (expression_statement "(*pcVar24)(piVar11,iVar23);" (call_expression "(*pcVar24)(piVar11,iVar23)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(piVar11,iVar23)" ( identifier , identifier ))) ;) (expression_statement "(*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);" (call_expression "(*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" * (cast_expression "(undefined4 *)(iVar14 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x24)" ( (binary_expression "iVar14 + 0x24" identifier + number_literal) )))) , number_literal , number_literal ))) ;) }) (else_clause "else {\n    if (uVar2 != 0x525700) {\nLAB_000c08b4:\n      iVar18 = iVar14;\n      do {\n        if (((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        iVar18 = *(int *)(iVar18 + 0x18);\n      } while (iVar18 != 0);\n      piVar16 = *(int **)(param_1 + 8);\n      if (piVar16 == (int *)0x0) {\n        piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      }\n      piVar11 = *(int **)(iVar14 + 4);\n      iVar17 = *(int *)(param_1 + 0x2c) + 1;\n      uVar4 = *(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30);\n      iVar20 = (int)*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a);\n      iVar18 = iVar20 + iVar17;\n      iVar5 = iVar20 + 2 + *(int *)(param_1 + 0x2c);\n      if (*(char *)(iVar14 + 0xe) == 'W') {\n        *(int *)(param_1 + 0x2c) = iVar5;\n        piVar19 = (int *)0x0;\n        if (0 < iVar20) goto LAB_000c0980;\n        if (piVar11 != (int *)0x0) {\n          local_50 = *piVar11;\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }\n      else {\n        piVar19 = *(int **)(iVar14 + 8);\n        *(int *)(param_1 + 0x2c) = iVar5;\n        if (iVar20 < 1) {\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }\n        puVar3 = PTR_LAB_0015b714;\n        if (piVar11 == (int *)0x0) {\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }\n        else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }\n        (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);\n        (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n        (*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);\n        (*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n        (*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1);\n        if (iVar5 != 0) {\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }\n      }\nLAB_000c0b50:\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,0xffffffff,0,iVar17,0);\n      if (*(int *)(iVar14 + 0x40) < 1) {\n        (*pcVar15)(piVar16,0x4b,0,iVar18,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }\n      else {\n        (*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);\n      }\n      (*pcVar15)(piVar16,0x79,*(undefined4 *)(iVar14 + 0x24),iVar18 + 1,0);\n      (*pcVar15)(piVar16,0x7a,*(undefined4 *)(iVar14 + 0x24),iVar18,iVar18 + 1);\n      (*(code *)(PTR_LAB_0015b710 + -0x18cc))(param_3);\n      (*pcVar24)(param_1,iVar14,1);\n      (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + 3,0);\n      (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n      iVar18 = 5;\n      iVar5 = *(int *)(iVar14 + 0x24);\n      (*pcVar15)(piVar16,5,iVar5,piVar16[0x1b] + -1,0);\n      goto LAB_000c0f44;\n    }\nLAB_000c0c60:\n    piVar11 = *(int **)(param_1 + 8);\n    if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      piVar16 = *(int **)(iVar14 + 8);\n      local_48 = *(int **)(iVar14 + 4);\n      if (piVar16 != (int *)0x0) goto LAB_000c0c7c;\nLAB_000c1450:\n      local_58 = 0;\n      bVar1 = false;\n    }\n    else {\n      local_48 = *(int **)(iVar14 + 4);\n      piVar16 = *(int **)(iVar14 + 8);\n      if (piVar16 == (int *)0x0) goto LAB_000c1450;\nLAB_000c0c7c:\n      local_58 = *piVar16;\n      bVar1 = (*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700;\n    }\n    puVar3 = PTR_LAB_0015b714;\n    iVar18 = *(int *)(param_1 + 0x2c);\n    iVar23 = *(int *)(param_1 + 0x28);\n    iVar17 = *(int *)(param_1 + 0x38);\n    iVar5 = iVar18 + local_58;\n    iVar9 = iVar5 + 2;\n    iVar20 = iVar17 + -2;\n    *(int *)(param_1 + 0x28) = iVar23 + 1;\n    iVar5 = iVar5 + 1;\n    *(int *)(param_1 + 0x38) = iVar20;\n    *(int *)(param_1 + 0x2c) = iVar9;\n    iVar17 = iVar17 + -1;\n    (*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar20,&local_30\n              );\n    pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    local_60 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar24)(piVar11,iVar20);\n    (*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 2,0);\n    (*pcVar15)(piVar11,0x6f,iVar23,*(undefined4 *)(iVar14 + 0x24),0);\n    uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);\n    (*pcVar15)(piVar11,0x46,0,iVar9,0);\n    (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n    (*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar17,0);\n    if (bVar1) {\n      iVar20 = piVar11[0x1b];\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n      (*pcVar15)(piVar11,5,iVar23,iVar20,0);\n      (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n      local_50 = piVar11[0x1b];\n      if (piVar16 != (int *)0x0) goto LAB_000c0e28;\n      pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n    }\n    else {\n      local_50 = piVar11[0x1b];\n      if (piVar16 == (int *)0x0) {\n        pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);\n        uVar6 = uVar4;\n        if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n    }\nLAB_000c0e5c:\n    (*pcVar15)(piVar11,0x53,iVar9,1,0);\n    (*pcVar15)(piVar11,5,iVar23,local_50,0);\n    (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n    (*pcVar24)(piVar11,iVar17);\n    (*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n  }" else (compound_statement "{\n    if (uVar2 != 0x525700) {\nLAB_000c08b4:\n      iVar18 = iVar14;\n      do {\n        if (((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        iVar18 = *(int *)(iVar18 + 0x18);\n      } while (iVar18 != 0);\n      piVar16 = *(int **)(param_1 + 8);\n      if (piVar16 == (int *)0x0) {\n        piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      }\n      piVar11 = *(int **)(iVar14 + 4);\n      iVar17 = *(int *)(param_1 + 0x2c) + 1;\n      uVar4 = *(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30);\n      iVar20 = (int)*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a);\n      iVar18 = iVar20 + iVar17;\n      iVar5 = iVar20 + 2 + *(int *)(param_1 + 0x2c);\n      if (*(char *)(iVar14 + 0xe) == 'W') {\n        *(int *)(param_1 + 0x2c) = iVar5;\n        piVar19 = (int *)0x0;\n        if (0 < iVar20) goto LAB_000c0980;\n        if (piVar11 != (int *)0x0) {\n          local_50 = *piVar11;\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }\n      else {\n        piVar19 = *(int **)(iVar14 + 8);\n        *(int *)(param_1 + 0x2c) = iVar5;\n        if (iVar20 < 1) {\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }\n        puVar3 = PTR_LAB_0015b714;\n        if (piVar11 == (int *)0x0) {\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }\n        else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }\n        (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);\n        (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n        (*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);\n        (*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n        (*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1);\n        if (iVar5 != 0) {\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }\n      }\nLAB_000c0b50:\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,0xffffffff,0,iVar17,0);\n      if (*(int *)(iVar14 + 0x40) < 1) {\n        (*pcVar15)(piVar16,0x4b,0,iVar18,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }\n      else {\n        (*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);\n      }\n      (*pcVar15)(piVar16,0x79,*(undefined4 *)(iVar14 + 0x24),iVar18 + 1,0);\n      (*pcVar15)(piVar16,0x7a,*(undefined4 *)(iVar14 + 0x24),iVar18,iVar18 + 1);\n      (*(code *)(PTR_LAB_0015b710 + -0x18cc))(param_3);\n      (*pcVar24)(param_1,iVar14,1);\n      (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + 3,0);\n      (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n      iVar18 = 5;\n      iVar5 = *(int *)(iVar14 + 0x24);\n      (*pcVar15)(piVar16,5,iVar5,piVar16[0x1b] + -1,0);\n      goto LAB_000c0f44;\n    }\nLAB_000c0c60:\n    piVar11 = *(int **)(param_1 + 8);\n    if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      piVar16 = *(int **)(iVar14 + 8);\n      local_48 = *(int **)(iVar14 + 4);\n      if (piVar16 != (int *)0x0) goto LAB_000c0c7c;\nLAB_000c1450:\n      local_58 = 0;\n      bVar1 = false;\n    }\n    else {\n      local_48 = *(int **)(iVar14 + 4);\n      piVar16 = *(int **)(iVar14 + 8);\n      if (piVar16 == (int *)0x0) goto LAB_000c1450;\nLAB_000c0c7c:\n      local_58 = *piVar16;\n      bVar1 = (*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700;\n    }\n    puVar3 = PTR_LAB_0015b714;\n    iVar18 = *(int *)(param_1 + 0x2c);\n    iVar23 = *(int *)(param_1 + 0x28);\n    iVar17 = *(int *)(param_1 + 0x38);\n    iVar5 = iVar18 + local_58;\n    iVar9 = iVar5 + 2;\n    iVar20 = iVar17 + -2;\n    *(int *)(param_1 + 0x28) = iVar23 + 1;\n    iVar5 = iVar5 + 1;\n    *(int *)(param_1 + 0x38) = iVar20;\n    *(int *)(param_1 + 0x2c) = iVar9;\n    iVar17 = iVar17 + -1;\n    (*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar20,&local_30\n              );\n    pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    local_60 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar24)(piVar11,iVar20);\n    (*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 2,0);\n    (*pcVar15)(piVar11,0x6f,iVar23,*(undefined4 *)(iVar14 + 0x24),0);\n    uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);\n    (*pcVar15)(piVar11,0x46,0,iVar9,0);\n    (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n    (*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar17,0);\n    if (bVar1) {\n      iVar20 = piVar11[0x1b];\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n      (*pcVar15)(piVar11,5,iVar23,iVar20,0);\n      (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n      local_50 = piVar11[0x1b];\n      if (piVar16 != (int *)0x0) goto LAB_000c0e28;\n      pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n    }\n    else {\n      local_50 = piVar11[0x1b];\n      if (piVar16 == (int *)0x0) {\n        pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);\n        uVar6 = uVar4;\n        if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n    }\nLAB_000c0e5c:\n    (*pcVar15)(piVar11,0x53,iVar9,1,0);\n    (*pcVar15)(piVar11,5,iVar23,local_50,0);\n    (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n    (*pcVar24)(piVar11,iVar17);\n    (*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n  }" { (if_statement "if (uVar2 != 0x525700) {\nLAB_000c08b4:\n      iVar18 = iVar14;\n      do {\n        if (((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        iVar18 = *(int *)(iVar18 + 0x18);\n      } while (iVar18 != 0);\n      piVar16 = *(int **)(param_1 + 8);\n      if (piVar16 == (int *)0x0) {\n        piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      }\n      piVar11 = *(int **)(iVar14 + 4);\n      iVar17 = *(int *)(param_1 + 0x2c) + 1;\n      uVar4 = *(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30);\n      iVar20 = (int)*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a);\n      iVar18 = iVar20 + iVar17;\n      iVar5 = iVar20 + 2 + *(int *)(param_1 + 0x2c);\n      if (*(char *)(iVar14 + 0xe) == 'W') {\n        *(int *)(param_1 + 0x2c) = iVar5;\n        piVar19 = (int *)0x0;\n        if (0 < iVar20) goto LAB_000c0980;\n        if (piVar11 != (int *)0x0) {\n          local_50 = *piVar11;\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }\n      else {\n        piVar19 = *(int **)(iVar14 + 8);\n        *(int *)(param_1 + 0x2c) = iVar5;\n        if (iVar20 < 1) {\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }\n        puVar3 = PTR_LAB_0015b714;\n        if (piVar11 == (int *)0x0) {\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }\n        else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }\n        (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);\n        (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n        (*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);\n        (*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n        (*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1);\n        if (iVar5 != 0) {\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }\n      }\nLAB_000c0b50:\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,0xffffffff,0,iVar17,0);\n      if (*(int *)(iVar14 + 0x40) < 1) {\n        (*pcVar15)(piVar16,0x4b,0,iVar18,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }\n      else {\n        (*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);\n      }\n      (*pcVar15)(piVar16,0x79,*(undefined4 *)(iVar14 + 0x24),iVar18 + 1,0);\n      (*pcVar15)(piVar16,0x7a,*(undefined4 *)(iVar14 + 0x24),iVar18,iVar18 + 1);\n      (*(code *)(PTR_LAB_0015b710 + -0x18cc))(param_3);\n      (*pcVar24)(param_1,iVar14,1);\n      (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + 3,0);\n      (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n      iVar18 = 5;\n      iVar5 = *(int *)(iVar14 + 0x24);\n      (*pcVar15)(piVar16,5,iVar5,piVar16[0x1b] + -1,0);\n      goto LAB_000c0f44;\n    }" if (parenthesized_expression "(uVar2 != 0x525700)" ( (binary_expression "uVar2 != 0x525700" identifier != number_literal) )) (compound_statement "{\nLAB_000c08b4:\n      iVar18 = iVar14;\n      do {\n        if (((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        iVar18 = *(int *)(iVar18 + 0x18);\n      } while (iVar18 != 0);\n      piVar16 = *(int **)(param_1 + 8);\n      if (piVar16 == (int *)0x0) {\n        piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      }\n      piVar11 = *(int **)(iVar14 + 4);\n      iVar17 = *(int *)(param_1 + 0x2c) + 1;\n      uVar4 = *(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30);\n      iVar20 = (int)*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a);\n      iVar18 = iVar20 + iVar17;\n      iVar5 = iVar20 + 2 + *(int *)(param_1 + 0x2c);\n      if (*(char *)(iVar14 + 0xe) == 'W') {\n        *(int *)(param_1 + 0x2c) = iVar5;\n        piVar19 = (int *)0x0;\n        if (0 < iVar20) goto LAB_000c0980;\n        if (piVar11 != (int *)0x0) {\n          local_50 = *piVar11;\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }\n      else {\n        piVar19 = *(int **)(iVar14 + 8);\n        *(int *)(param_1 + 0x2c) = iVar5;\n        if (iVar20 < 1) {\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }\n        puVar3 = PTR_LAB_0015b714;\n        if (piVar11 == (int *)0x0) {\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }\n        else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }\n        (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);\n        (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n        (*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);\n        (*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n        (*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1);\n        if (iVar5 != 0) {\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }\n      }\nLAB_000c0b50:\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,0xffffffff,0,iVar17,0);\n      if (*(int *)(iVar14 + 0x40) < 1) {\n        (*pcVar15)(piVar16,0x4b,0,iVar18,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }\n      else {\n        (*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);\n      }\n      (*pcVar15)(piVar16,0x79,*(undefined4 *)(iVar14 + 0x24),iVar18 + 1,0);\n      (*pcVar15)(piVar16,0x7a,*(undefined4 *)(iVar14 + 0x24),iVar18,iVar18 + 1);\n      (*(code *)(PTR_LAB_0015b710 + -0x18cc))(param_3);\n      (*pcVar24)(param_1,iVar14,1);\n      (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + 3,0);\n      (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n      iVar18 = 5;\n      iVar5 = *(int *)(iVar14 + 0x24);\n      (*pcVar15)(piVar16,5,iVar5,piVar16[0x1b] + -1,0);\n      goto LAB_000c0f44;\n    }" { (labeled_statement "LAB_000c08b4:\n      iVar18 = iVar14;" statement_identifier : (expression_statement "iVar18 = iVar14;" (assignment_expression "iVar18 = iVar14" identifier = identifier) ;)) (do_statement "do {\n        if (((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        iVar18 = *(int *)(iVar18 + 0x18);\n      } while (iVar18 != 0);" do (compound_statement "{\n        if (((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        iVar18 = *(int *)(iVar18 + 0x18);\n      }" { (if_statement "if (((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;" if (parenthesized_expression "(((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))" ( (binary_expression "((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c)))" (parenthesized_expression "((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00))" ( (binary_expression "(((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)" (parenthesized_expression "(((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4))" ( (binary_expression "((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)" (parenthesized_expression "((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0)" ( (binary_expression "(*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0" (parenthesized_expression "(*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000)" ( (binary_expression "*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000" (pointer_expression "*(uint *)(*(int *)(iVar18 + 0x20) + 4)" * (cast_expression "(uint *)(*(int *)(iVar18 + 0x20) + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0x20) + 4)" ( (binary_expression "*(int *)(iVar18 + 0x20) + 4" (pointer_expression "*(int *)(iVar18 + 0x20)" * (cast_expression "(int *)(iVar18 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x20)" ( (binary_expression "iVar18 + 0x20" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "(puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)" ( (comma_expression "puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4" (assignment_expression "puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20)" identifier = (pointer_expression "*(undefined **)(*(int *)(iVar18 + 0x20) + 0x20)" * (cast_expression "(undefined **)(*(int *)(iVar18 + 0x20) + 0x20)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar18 + 0x20) + 0x20)" ( (binary_expression "*(int *)(iVar18 + 0x20) + 0x20" (pointer_expression "*(int *)(iVar18 + 0x20)" * (cast_expression "(int *)(iVar18 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x20)" ( (binary_expression "iVar18 + 0x20" identifier + number_literal) )))) + number_literal) ))))) , (binary_expression "puVar3 == PTR_DAT_0015b694 + -0x7df4" identifier == (binary_expression "PTR_DAT_0015b694 + -0x7df4" identifier + number_literal))) ))) )) || (parenthesized_expression "(puVar3 == PTR_DAT_0015b694 + -0x7e00)" ( (binary_expression "puVar3 == PTR_DAT_0015b694 + -0x7e00" identifier == (binary_expression "PTR_DAT_0015b694 + -0x7e00" identifier + number_literal)) ))) )) || (parenthesized_expression "((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c)))" ( (parenthesized_expression "(puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))" ( (binary_expression "puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c)" (binary_expression "puVar3 == PTR_DAT_0015b694 + -0x7e08" identifier == (binary_expression "PTR_DAT_0015b694 + -0x7e08" identifier + number_literal)) || (parenthesized_expression "(puVar3 == PTR_DAT_0015b694 + -0x7e0c)" ( (binary_expression "puVar3 == PTR_DAT_0015b694 + -0x7e0c" identifier == (binary_expression "PTR_DAT_0015b694 + -0x7e0c" identifier + number_literal)) ))) )) ))) )) (goto_statement "goto LAB_000c0c60;" goto statement_identifier ;)) (expression_statement "iVar18 = *(int *)(iVar18 + 0x18);" (assignment_expression "iVar18 = *(int *)(iVar18 + 0x18)" identifier = (pointer_expression "*(int *)(iVar18 + 0x18)" * (cast_expression "(int *)(iVar18 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x18)" ( (binary_expression "iVar18 + 0x18" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) ;) (expression_statement "piVar16 = *(int **)(param_1 + 8);" (assignment_expression "piVar16 = *(int **)(param_1 + 8)" identifier = (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (if_statement "if (piVar16 == (int *)0x0) {\n        piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      }" if (parenthesized_expression "(piVar16 == (int *)0x0)" ( (binary_expression "piVar16 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      }" { (expression_statement "piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);" (assignment_expression "piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1)" identifier = (cast_expression "(int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x371c))" ( (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x371c)" * (cast_expression "(code *)(PTR_LAB_0015b710 + -0x371c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x371c)" ( (binary_expression "PTR_LAB_0015b710 + -0x371c" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))))) ;) })) (expression_statement "piVar11 = *(int **)(iVar14 + 4);" (assignment_expression "piVar11 = *(int **)(iVar14 + 4)" identifier = (pointer_expression "*(int **)(iVar14 + 4)" * (cast_expression "(int **)(iVar14 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 4)" ( (binary_expression "iVar14 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar17 = *(int *)(param_1 + 0x2c) + 1;" (assignment_expression "iVar17 = *(int *)(param_1 + 0x2c) + 1" identifier = (binary_expression "*(int *)(param_1 + 0x2c) + 1" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "uVar4 = *(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30);" (assignment_expression "uVar4 = *(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30)" identifier = (pointer_expression "*(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30)" * (cast_expression "(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0x20) + 0x30)" ( (binary_expression "*(int *)(param_2 + 0x20) + 0x30" (pointer_expression "*(int *)(param_2 + 0x20)" * (cast_expression "(int *)(param_2 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar20 = (int)*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a);" (assignment_expression "iVar20 = (int)*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a)" identifier = (cast_expression "(int)*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a)" * (cast_expression "(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a)" ( (binary_expression "*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a" (pointer_expression "*(int *)(*(int *)(param_2 + 0x20) + 0x18)" * (cast_expression "(int *)(*(int *)(param_2 + 0x20) + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0x20) + 0x18)" ( (binary_expression "*(int *)(param_2 + 0x20) + 0x18" (pointer_expression "*(int *)(param_2 + 0x20)" * (cast_expression "(int *)(param_2 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) )))) + number_literal) )))) + number_literal) )))))) ;) (expression_statement "iVar18 = iVar20 + iVar17;" (assignment_expression "iVar18 = iVar20 + iVar17" identifier = (binary_expression "iVar20 + iVar17" identifier + identifier)) ;) (expression_statement "iVar5 = iVar20 + 2 + *(int *)(param_1 + 0x2c);" (assignment_expression "iVar5 = iVar20 + 2 + *(int *)(param_1 + 0x2c)" identifier = (binary_expression "iVar20 + 2 + *(int *)(param_1 + 0x2c)" (binary_expression "iVar20 + 2" identifier + number_literal) + (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))))) ;) (if_statement "if (*(char *)(iVar14 + 0xe) == 'W') {\n        *(int *)(param_1 + 0x2c) = iVar5;\n        piVar19 = (int *)0x0;\n        if (0 < iVar20) goto LAB_000c0980;\n        if (piVar11 != (int *)0x0) {\n          local_50 = *piVar11;\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }\n      else {\n        piVar19 = *(int **)(iVar14 + 8);\n        *(int *)(param_1 + 0x2c) = iVar5;\n        if (iVar20 < 1) {\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }\n        puVar3 = PTR_LAB_0015b714;\n        if (piVar11 == (int *)0x0) {\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }\n        else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }\n        (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);\n        (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n        (*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);\n        (*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n        (*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1);\n        if (iVar5 != 0) {\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }\n      }" if (parenthesized_expression "(*(char *)(iVar14 + 0xe) == 'W')" ( (binary_expression "*(char *)(iVar14 + 0xe) == 'W'" (pointer_expression "*(char *)(iVar14 + 0xe)" * (cast_expression "(char *)(iVar14 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xe)" ( (binary_expression "iVar14 + 0xe" identifier + number_literal) )))) == (char_literal "'W'" ' character ')) )) (compound_statement "{\n        *(int *)(param_1 + 0x2c) = iVar5;\n        piVar19 = (int *)0x0;\n        if (0 < iVar20) goto LAB_000c0980;\n        if (piVar11 != (int *)0x0) {\n          local_50 = *piVar11;\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }" { (expression_statement "*(int *)(param_1 + 0x2c) = iVar5;" (assignment_expression "*(int *)(param_1 + 0x2c) = iVar5" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar19 = (int *)0x0;" (assignment_expression "piVar19 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (0 < iVar20) goto LAB_000c0980;" if (parenthesized_expression "(0 < iVar20)" ( (binary_expression "0 < iVar20" number_literal < identifier) )) (goto_statement "goto LAB_000c0980;" goto statement_identifier ;)) (if_statement "if (piVar11 != (int *)0x0) {\n          local_50 = *piVar11;\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }" if (parenthesized_expression "(piVar11 != (int *)0x0)" ( (binary_expression "piVar11 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_50 = *piVar11;\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }" { (expression_statement "local_50 = *piVar11;" (assignment_expression "local_50 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (expression_statement "pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);" (assignment_expression "pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x3890)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x3890)" ( (binary_expression "PTR_LAB_0015b710 + -0x3890" identifier + number_literal) )))) ;) (goto_statement "goto LAB_000c09d4;" goto statement_identifier ;) })) (expression_statement "pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);" (assignment_expression "pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x3890)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x3890)" ( (binary_expression "PTR_LAB_0015b710 + -0x3890" identifier + number_literal) )))) ;) (expression_statement "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);" (assignment_expression "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2764)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2764)" ( (binary_expression "PTR_LAB_0015b710 + -0x2764" identifier + number_literal) )))) ;) }) (else_clause "else {\n        piVar19 = *(int **)(iVar14 + 8);\n        *(int *)(param_1 + 0x2c) = iVar5;\n        if (iVar20 < 1) {\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }\n        puVar3 = PTR_LAB_0015b714;\n        if (piVar11 == (int *)0x0) {\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }\n        else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }\n        (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);\n        (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n        (*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);\n        (*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n        (*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1);\n        if (iVar5 != 0) {\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }\n      }" else (compound_statement "{\n        piVar19 = *(int **)(iVar14 + 8);\n        *(int *)(param_1 + 0x2c) = iVar5;\n        if (iVar20 < 1) {\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }\n        puVar3 = PTR_LAB_0015b714;\n        if (piVar11 == (int *)0x0) {\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }\n        else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }\n        (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);\n        (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n        (*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);\n        (*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n        (*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1);\n        if (iVar5 != 0) {\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }\n      }" { (expression_statement "piVar19 = *(int **)(iVar14 + 8);" (assignment_expression "piVar19 = *(int **)(iVar14 + 8)" identifier = (pointer_expression "*(int **)(iVar14 + 8)" * (cast_expression "(int **)(iVar14 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 8)" ( (binary_expression "iVar14 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(param_1 + 0x2c) = iVar5;" (assignment_expression "*(int *)(param_1 + 0x2c) = iVar5" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar20 < 1) {\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }" if (parenthesized_expression "(iVar20 < 1)" ( (binary_expression "iVar20 < 1" identifier < number_literal) )) (compound_statement "{\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }" { (expression_statement "pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);" (assignment_expression "pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x3890)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x3890)" ( (binary_expression "PTR_LAB_0015b710 + -0x3890" identifier + number_literal) )))) ;) }) (else_clause "else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }" else (compound_statement "{\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }" { (labeled_statement "LAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);" statement_identifier : (expression_statement "pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);" (assignment_expression "pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x3890)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x3890)" ( (binary_expression "PTR_LAB_0015b710 + -0x3890" identifier + number_literal) )))) ;)) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);" do (compound_statement "{\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          }" { (expression_statement "iVar23 = iVar5 + 1;" (assignment_expression "iVar23 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "(*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);" (call_expression "(*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5)" ( identifier , number_literal , identifier , identifier , (binary_expression "iVar17 + iVar5" identifier + identifier) ))) ;) (expression_statement "iVar5 = iVar23;" (assignment_expression "iVar5 = iVar23" identifier = identifier) ;) }) while (parenthesized_expression "(iVar23 < iVar20)" ( (binary_expression "iVar23 < iVar20" identifier < identifier) )) ;) }))) (expression_statement "puVar3 = PTR_LAB_0015b714;" (assignment_expression "puVar3 = PTR_LAB_0015b714" identifier = identifier) ;) (if_statement "if (piVar11 == (int *)0x0) {\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }\n        else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }" if (parenthesized_expression "(piVar11 == (int *)0x0)" ( (binary_expression "piVar11 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }" { (if_statement "if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }" if (parenthesized_expression "(piVar19 == (int *)0x0)" ( (binary_expression "piVar19 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }" { (expression_statement "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);" (assignment_expression "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2764)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2764)" ( (binary_expression "PTR_LAB_0015b710 + -0x2764" identifier + number_literal) )))) ;) (goto_statement "goto LAB_000c0b50;" goto statement_identifier ;) })) (expression_statement "iVar5 = *piVar19;" (assignment_expression "iVar5 = *piVar19" identifier = (pointer_expression "*piVar19" * identifier)) ;) (expression_statement "local_60 = iVar5;" (assignment_expression "local_60 = iVar5" identifier = identifier) ;) (if_statement "if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }" if (parenthesized_expression "(*(char *)(iVar14 + 0xc) == 'V')" ( (binary_expression "*(char *)(iVar14 + 0xc) == 'V'" (pointer_expression "*(char *)(iVar14 + 0xc)" * (cast_expression "(char *)(iVar14 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xc)" ( (binary_expression "iVar14 + 0xc" identifier + number_literal) )))) == (char_literal "'V'" ' character ')) )) (compound_statement "{\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }" { (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (expression_statement "iVar23 = *(int *)(iVar14 + 0x38);" (assignment_expression "iVar23 = *(int *)(iVar14 + 0x38)" identifier = (pointer_expression "*(int *)(iVar14 + 0x38)" * (cast_expression "(int *)(iVar14 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x38)" ( (binary_expression "iVar14 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "local_50 = iVar17 + *(int *)(iVar14 + 0x40);" (assignment_expression "local_50 = iVar17 + *(int *)(iVar14 + 0x40)" identifier = (binary_expression "iVar17 + *(int *)(iVar14 + 0x40)" identifier + (pointer_expression "*(int *)(iVar14 + 0x40)" * (cast_expression "(int *)(iVar14 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x40)" ( (binary_expression "iVar14 + 0x40" identifier + number_literal) )))))) ;) (expression_statement "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);" (assignment_expression "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2764)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2764)" ( (binary_expression "PTR_LAB_0015b710 + -0x2764" identifier + number_literal) )))) ;) (expression_statement "local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);" (assignment_expression "local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958)" identifier = (cast_expression "(code *)(PTR_LAB_0015b6c0 + -0x5958)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6c0 + -0x5958)" ( (binary_expression "PTR_LAB_0015b6c0 + -0x5958" identifier + number_literal) )))) ;) (goto_statement "goto LAB_000c1e74;" goto statement_identifier ;) })) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);" (assignment_expression "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2764)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2764)" ( (binary_expression "PTR_LAB_0015b710 + -0x2764" identifier + number_literal) )))) ;) (expression_statement "(*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');" (call_expression "(*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R')" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R')" ( identifier , identifier , (binary_expression "*(char *)(iVar14 + 0xd) == 'R'" (pointer_expression "*(char *)(iVar14 + 0xd)" * (cast_expression "(char *)(iVar14 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xd)" ( (binary_expression "iVar14 + 0xd" identifier + number_literal) )))) == (char_literal "'R'" ' character ')) ))) ;) (expression_statement "iVar20 = piVar16[0x1b];" (assignment_expression "iVar20 = piVar16[0x1b]" identifier = (subscript_expression "piVar16[0x1b]" identifier [ number_literal ])) ;) }) (else_clause "else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }" else (compound_statement "{\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }" { (expression_statement "local_50 = *piVar11;" (assignment_expression "local_50 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (if_statement "if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }" if (parenthesized_expression "(piVar19 == (int *)0x0)" ( (binary_expression "piVar19 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }" { (labeled_statement "LAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);" statement_identifier : (expression_statement "iVar5 = *(int *)(iVar14 + 0x40);" (assignment_expression "iVar5 = *(int *)(iVar14 + 0x40)" identifier = (pointer_expression "*(int *)(iVar14 + 0x40)" * (cast_expression "(int *)(iVar14 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x40)" ( (binary_expression "iVar14 + 0x40" identifier + number_literal) ))))) ;)) (expression_statement "uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);" (assignment_expression "uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0)" identifier = (call_expression "(*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b714 + -0x7fc4))" ( (pointer_expression "*(code *)(PTR_LAB_0015b714 + -0x7fc4)" * (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7fc4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x7fc4)" ( (binary_expression "PTR_LAB_0015b714 + -0x7fc4" identifier + number_literal) )))) )) (argument_list "(param_1,piVar11,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);" (assignment_expression "iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50)" identifier = (call_expression "(*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50)" ( identifier , number_literal , (binary_expression "iVar17 + iVar5" identifier + identifier) , (pointer_expression "*(undefined4 *)(iVar14 + 0x38)" * (cast_expression "(undefined4 *)(iVar14 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x38)" ( (binary_expression "iVar14 + 0x38" identifier + number_literal) )))) , identifier )))) ;) (expression_statement "(*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);" (call_expression "(*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b6c0 + -0x5958))" ( (pointer_expression "*(code *)(PTR_LAB_0015b6c0 + -0x5958)" * (cast_expression "(code *)(PTR_LAB_0015b6c0 + -0x5958)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6c0 + -0x5958)" ( (binary_expression "PTR_LAB_0015b6c0 + -0x5958" identifier + number_literal) )))) )) (argument_list "(piVar16,uVar4,0xfffffff7)" ( identifier , identifier , number_literal ))) ;) (expression_statement "iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);" (assignment_expression "iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2)" identifier = (call_expression "(*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,0x10,iVar5 + 2,0,iVar5 + 2)" ( identifier , number_literal , (binary_expression "iVar5 + 2" identifier + number_literal) , number_literal , (binary_expression "iVar5 + 2" identifier + number_literal) )))) ;) (expression_statement "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);" (assignment_expression "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2764)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2764)" ( (binary_expression "PTR_LAB_0015b710 + -0x2764" identifier + number_literal) )))) ;) (expression_statement "(*pcVar24)(param_1,iVar14,1);" (call_expression "(*pcVar24)(param_1,iVar14,1)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(param_1,iVar14,1)" ( identifier , identifier , number_literal ))) ;) (expression_statement "local_60 = local_50;" (assignment_expression "local_60 = local_50" identifier = identifier) ;) }) (else_clause "else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }" else (compound_statement "{\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }" { (expression_statement "iVar20 = *(int *)(iVar14 + 0x40);" (assignment_expression "iVar20 = *(int *)(iVar14 + 0x40)" identifier = (pointer_expression "*(int *)(iVar14 + 0x40)" * (cast_expression "(int *)(iVar14 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x40)" ( (binary_expression "iVar14 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *piVar19;" (assignment_expression "iVar5 = *piVar19" identifier = (pointer_expression "*piVar19" * identifier)) ;) (expression_statement "uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);" (assignment_expression "uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0)" identifier = (call_expression "(*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b714 + -0x7fc4))" ( (pointer_expression "*(code *)(PTR_LAB_0015b714 + -0x7fc4)" * (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7fc4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x7fc4)" ( (binary_expression "PTR_LAB_0015b714 + -0x7fc4" identifier + number_literal) )))) )) (argument_list "(param_1,piVar11,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );" (assignment_expression "iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               )" identifier = (call_expression "(*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               )" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               )" ( identifier , number_literal , (binary_expression "iVar17 + iVar20" identifier + identifier) , (pointer_expression "*(undefined4 *)(iVar14 + 0x38)" * (cast_expression "(undefined4 *)(iVar14 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x38)" ( (binary_expression "iVar14 + 0x38" identifier + number_literal) )))) , identifier )))) ;) (expression_statement "local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);" (assignment_expression "local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958)" identifier = (cast_expression "(code *)(PTR_LAB_0015b6c0 + -0x5958)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6c0 + -0x5958)" ( (binary_expression "PTR_LAB_0015b6c0 + -0x5958" identifier + number_literal) )))) ;) (expression_statement "(*local_5c)(piVar16,uVar4,0xfffffff7);" (call_expression "(*local_5c)(piVar16,uVar4,0xfffffff7)" (parenthesized_expression "(*local_5c)" ( (pointer_expression "*local_5c" * identifier) )) (argument_list "(piVar16,uVar4,0xfffffff7)" ( identifier , identifier , number_literal ))) ;) (expression_statement "iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);" (assignment_expression "iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2)" identifier = (call_expression "(*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,0x10,iVar20 + 2,0,iVar20 + 2)" ( identifier , number_literal , (binary_expression "iVar20 + 2" identifier + number_literal) , number_literal , (binary_expression "iVar20 + 2" identifier + number_literal) )))) ;) (expression_statement "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);" (assignment_expression "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2764)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2764)" ( (binary_expression "PTR_LAB_0015b710 + -0x2764" identifier + number_literal) )))) ;) (expression_statement "(*pcVar24)(param_1,iVar14,1);" (call_expression "(*pcVar24)(param_1,iVar14,1)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(param_1,iVar14,1)" ( identifier , identifier , number_literal ))) ;) (expression_statement "iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);" (assignment_expression "iVar20 = (*pcVar15)(piVar16,0xb,0,0,0)" identifier = (call_expression "(*pcVar15)(piVar16,0xb,0,0,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,0xb,0,0,0)" ( identifier , number_literal , number_literal , number_literal , number_literal )))) ;) (expression_statement "iVar12 = *(int *)(iVar14 + 0x40);" (assignment_expression "iVar12 = *(int *)(iVar14 + 0x40)" identifier = (pointer_expression "*(int *)(iVar14 + 0x40)" * (cast_expression "(int *)(iVar14 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x40)" ( (binary_expression "iVar14 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "iVar23 = *(int *)(iVar14 + 0x38);" (assignment_expression "iVar23 = *(int *)(iVar14 + 0x38)" identifier = (pointer_expression "*(int *)(iVar14 + 0x38)" * (cast_expression "(int *)(iVar14 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x38)" ( (binary_expression "iVar14 + 0x38" identifier + number_literal) ))))) ;) (if_statement "if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }" { (expression_statement "iVar13 = piVar16[0x1b];" (assignment_expression "iVar13 = piVar16[0x1b]" identifier = (subscript_expression "piVar16[0x1b]" identifier [ number_literal ])) ;) (if_statement "if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }" if (parenthesized_expression "(iVar9 < 0)" ( (binary_expression "iVar9 < 0" identifier < number_literal) )) (compound_statement "{\n                iVar9 = iVar13 + -1;\n              }" { (expression_statement "iVar9 = iVar13 + -1;" (assignment_expression "iVar9 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) })) (if_statement "if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }" if (parenthesized_expression "(*(char *)(*piVar16 + 0x51) == '\0')" ( (binary_expression "*(char *)(*piVar16 + 0x51) == '\0'" (pointer_expression "*(char *)(*piVar16 + 0x51)" * (cast_expression "(char *)(*piVar16 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar16 + 0x51)" ( (binary_expression "*piVar16 + 0x51" (pointer_expression "*piVar16" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }" { (expression_statement "*(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;" (assignment_expression "*(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13" (pointer_expression "*(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8)" * (cast_expression "(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar16[0x1a] + iVar9 * 0x14 + 8)" ( (binary_expression "piVar16[0x1a] + iVar9 * 0x14 + 8" (binary_expression "piVar16[0x1a] + iVar9 * 0x14" (subscript_expression "piVar16[0x1a]" identifier [ number_literal ]) + (binary_expression "iVar9 * 0x14" identifier * number_literal)) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }" else (compound_statement "{\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }" { (expression_statement "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;" (assignment_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13" (pointer_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c)" * (cast_expression "(int *)(PTR_DAT_0015b5d8 + -0x450c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x450c)" ( (binary_expression "PTR_DAT_0015b5d8 + -0x450c" identifier + number_literal) )))) = identifier) ;) }))) })) (expression_statement "local_60 = local_50 + iVar5;" (assignment_expression "local_60 = local_50 + iVar5" identifier = (binary_expression "local_50 + iVar5" identifier + identifier)) ;) (if_statement "if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }" if (parenthesized_expression "(*(char *)(iVar14 + 0xc) == 'V')" ( (binary_expression "*(char *)(iVar14 + 0xc) == 'V'" (pointer_expression "*(char *)(iVar14 + 0xc)" * (cast_expression "(char *)(iVar14 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xc)" ( (binary_expression "iVar14 + 0xc" identifier + number_literal) )))) == (char_literal "'V'" ' character ')) )) (compound_statement "{\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }" { (expression_statement "iVar23 = local_50 + iVar23;" (assignment_expression "iVar23 = local_50 + iVar23" identifier = (binary_expression "local_50 + iVar23" identifier + identifier)) ;) (expression_statement "local_50 = iVar17 + iVar12 + local_50;" (assignment_expression "local_50 = iVar17 + iVar12 + local_50" identifier = (binary_expression "iVar17 + iVar12 + local_50" (binary_expression "iVar17 + iVar12" identifier + identifier) + identifier)) ;) (labeled_statement "LAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);" statement_identifier : (expression_statement "local_4c = (code *)(puVar3 + -0x7fc4);" (assignment_expression "local_4c = (code *)(puVar3 + -0x7fc4)" identifier = (cast_expression "(code *)(puVar3 + -0x7fc4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x7fc4)" ( (binary_expression "puVar3 + -0x7fc4" identifier + number_literal) )))) ;)) (expression_statement "uVar4 = (*local_4c)(param_1,piVar19,0,0);" (assignment_expression "uVar4 = (*local_4c)(param_1,piVar19,0,0)" identifier = (call_expression "(*local_4c)(param_1,piVar19,0,0)" (parenthesized_expression "(*local_4c)" ( (pointer_expression "*local_4c" * identifier) )) (argument_list "(param_1,piVar19,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);" (assignment_expression "iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5)" identifier = (call_expression "(*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,0x57,local_50,iVar23,iVar5)" ( identifier , number_literal , identifier , identifier , identifier )))) ;) (expression_statement "(*local_5c)(piVar16,uVar4,0xfffffff7);" (call_expression "(*local_5c)(piVar16,uVar4,0xfffffff7)" (parenthesized_expression "(*local_5c)" ( (pointer_expression "*local_5c" * identifier) )) (argument_list "(piVar16,uVar4,0xfffffff7)" ( identifier , identifier , number_literal ))) ;) (expression_statement "iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);" (assignment_expression "iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2)" identifier = (call_expression "(*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,0x10,iVar5 + 2,0,iVar5 + 2)" ( identifier , number_literal , (binary_expression "iVar5 + 2" identifier + number_literal) , number_literal , (binary_expression "iVar5 + 2" identifier + number_literal) )))) ;) }) (else_clause "else {\n              iVar5 = 0;\n            }" else (compound_statement "{\n              iVar5 = 0;\n            }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) }))) (expression_statement "(*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');" (call_expression "(*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R')" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R')" ( identifier , identifier , (binary_expression "*(char *)(iVar14 + 0xd) == 'R'" (pointer_expression "*(char *)(iVar14 + 0xd)" * (cast_expression "(char *)(iVar14 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xd)" ( (binary_expression "iVar14 + 0xd" identifier + number_literal) )))) == (char_literal "'R'" ' character ')) ))) ;) (if_statement "if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }" { (expression_statement "iVar23 = piVar16[0x1b];" (assignment_expression "iVar23 = piVar16[0x1b]" identifier = (subscript_expression "piVar16[0x1b]" identifier [ number_literal ])) ;) (if_statement "if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }" if (parenthesized_expression "(iVar20 < 0)" ( (binary_expression "iVar20 < 0" identifier < number_literal) )) (compound_statement "{\n                iVar20 = iVar23 + -1;\n              }" { (expression_statement "iVar20 = iVar23 + -1;" (assignment_expression "iVar20 = iVar23 + -1" identifier = (binary_expression "iVar23 + -1" identifier + number_literal)) ;) })) (if_statement "if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }" if (parenthesized_expression "(*(char *)(*piVar16 + 0x51) == '\0')" ( (binary_expression "*(char *)(*piVar16 + 0x51) == '\0'" (pointer_expression "*(char *)(*piVar16 + 0x51)" * (cast_expression "(char *)(*piVar16 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar16 + 0x51)" ( (binary_expression "*piVar16 + 0x51" (pointer_expression "*piVar16" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }" { (expression_statement "*(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;" (assignment_expression "*(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23" (pointer_expression "*(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8)" * (cast_expression "(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar16[0x1a] + iVar20 * 0x14 + 8)" ( (binary_expression "piVar16[0x1a] + iVar20 * 0x14 + 8" (binary_expression "piVar16[0x1a] + iVar20 * 0x14" (subscript_expression "piVar16[0x1a]" identifier [ number_literal ]) + (binary_expression "iVar20 * 0x14" identifier * number_literal)) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }" else (compound_statement "{\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }" { (expression_statement "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;" (assignment_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23" (pointer_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c)" * (cast_expression "(int *)(PTR_DAT_0015b5d8 + -0x450c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x450c)" ( (binary_expression "PTR_DAT_0015b5d8 + -0x450c" identifier + number_literal) )))) = identifier) ;) }))) })) }))) (expression_statement "iVar20 = piVar16[0x1b];" (assignment_expression "iVar20 = piVar16[0x1b]" identifier = (subscript_expression "piVar16[0x1b]" identifier [ number_literal ])) ;) }))) (expression_statement "(*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);" (call_expression "(*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" * (cast_expression "(undefined4 *)(iVar14 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x24)" ( (binary_expression "iVar14 + 0x24" identifier + number_literal) )))) , (binary_expression "iVar20 + 3" identifier + number_literal) , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar16,0xc,param_4,param_5,0);" (call_expression "(*pcVar15)(piVar16,0xc,param_4,param_5,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,0xc,param_4,param_5,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);" (call_expression "(*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" * (cast_expression "(undefined4 *)(iVar14 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x24)" ( (binary_expression "iVar14 + 0x24" identifier + number_literal) )))) , (binary_expression "piVar16[0x1b] + -1" (subscript_expression "piVar16[0x1b]" identifier [ number_literal ]) + number_literal) , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);" (call_expression "(*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" * (cast_expression "(undefined4 *)(iVar14 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x24)" ( (binary_expression "iVar14 + 0x24" identifier + number_literal) )))) , number_literal , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1);" (call_expression "(*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1)" ( identifier , number_literal , (binary_expression "iVar17 + *(int *)(iVar14 + 0x40)" identifier + (pointer_expression "*(int *)(iVar14 + 0x40)" * (cast_expression "(int *)(iVar14 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x40)" ( (binary_expression "iVar14 + 0x40" identifier + number_literal) ))))) , (pointer_expression "*(undefined4 *)(iVar14 + 0x38)" * (cast_expression "(undefined4 *)(iVar14 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x38)" ( (binary_expression "iVar14 + 0x38" identifier + number_literal) )))) , (binary_expression "local_60 + -1" identifier + number_literal) ))) ;) (if_statement "if (iVar5 != 0) {\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }" { (expression_statement "iVar20 = piVar16[0x1b];" (assignment_expression "iVar20 = piVar16[0x1b]" identifier = (subscript_expression "piVar16[0x1b]" identifier [ number_literal ])) ;) (if_statement "if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n            iVar5 = iVar20 + -1;\n          }" { (expression_statement "iVar5 = iVar20 + -1;" (assignment_expression "iVar5 = iVar20 + -1" identifier = (binary_expression "iVar20 + -1" identifier + number_literal)) ;) })) (if_statement "if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }" if (parenthesized_expression "(*(char *)(*piVar16 + 0x51) == '\0')" ( (binary_expression "*(char *)(*piVar16 + 0x51) == '\0'" (pointer_expression "*(char *)(*piVar16 + 0x51)" * (cast_expression "(char *)(*piVar16 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar16 + 0x51)" ( (binary_expression "*piVar16 + 0x51" (pointer_expression "*piVar16" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }" { (expression_statement "*(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;" (assignment_expression "*(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20" (pointer_expression "*(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8)" * (cast_expression "(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar16[0x1a] + iVar5 * 0x14 + 8)" ( (binary_expression "piVar16[0x1a] + iVar5 * 0x14 + 8" (binary_expression "piVar16[0x1a] + iVar5 * 0x14" (subscript_expression "piVar16[0x1a]" identifier [ number_literal ]) + (binary_expression "iVar5 * 0x14" identifier * number_literal)) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }" else (compound_statement "{\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }" { (expression_statement "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;" (assignment_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20" (pointer_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c)" * (cast_expression "(int *)(PTR_DAT_0015b5d8 + -0x450c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x450c)" ( (binary_expression "PTR_DAT_0015b5d8 + -0x450c" identifier + number_literal) )))) = identifier) ;) }))) })) }))) (labeled_statement "LAB_000c0b50:\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,0xffffffff,0,iVar17,0);" statement_identifier : (expression_statement "(*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,0xffffffff,0,iVar17,0);" (call_expression "(*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,0xffffffff,0,iVar17,0)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b714 + -0x7af4))" ( (pointer_expression "*(code *)(PTR_LAB_0015b714 + -0x7af4)" * (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7af4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x7af4)" ( (binary_expression "PTR_LAB_0015b714 + -0x7af4" identifier + number_literal) )))) )) (argument_list "(param_1,iVar14,0xffffffff,0,iVar17,0)" ( identifier , identifier , number_literal , number_literal , identifier , number_literal ))) ;)) (if_statement "if (*(int *)(iVar14 + 0x40) < 1) {\n        (*pcVar15)(piVar16,0x4b,0,iVar18,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }\n      else {\n        (*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);\n      }" if (parenthesized_expression "(*(int *)(iVar14 + 0x40) < 1)" ( (binary_expression "*(int *)(iVar14 + 0x40) < 1" (pointer_expression "*(int *)(iVar14 + 0x40)" * (cast_expression "(int *)(iVar14 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x40)" ( (binary_expression "iVar14 + 0x40" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n        (*pcVar15)(piVar16,0x4b,0,iVar18,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }" { (expression_statement "(*pcVar15)(piVar16,0x4b,0,iVar18,0);" (call_expression "(*pcVar15)(piVar16,0x4b,0,iVar18,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,0x4b,0,iVar18,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) (expression_statement "(*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0);" (call_expression "(*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b6c0 + -0x5958))" ( (pointer_expression "*(code *)(PTR_LAB_0015b6c0 + -0x5958)" * (cast_expression "(code *)(PTR_LAB_0015b6c0 + -0x5958)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6c0 + -0x5958)" ( (binary_expression "PTR_LAB_0015b6c0 + -0x5958" identifier + number_literal) )))) )) (argument_list "(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0)" ( identifier , (binary_expression "PTR_LAB_0015b5e8 + 0x53f4" identifier + number_literal) , number_literal ))) ;) }) (else_clause "else {\n        (*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);\n      }" else (compound_statement "{\n        (*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);\n      }" { (expression_statement "(*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);" (call_expression "(*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18)" ( identifier , number_literal , identifier , (pointer_expression "*(int *)(iVar14 + 0x40)" * (cast_expression "(int *)(iVar14 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x40)" ( (binary_expression "iVar14 + 0x40" identifier + number_literal) )))) , identifier ))) ;) }))) (expression_statement "(*pcVar15)(piVar16,0x79,*(undefined4 *)(iVar14 + 0x24),iVar18 + 1,0);" (call_expression "(*pcVar15)(piVar16,0x79,*(undefined4 *)(iVar14 + 0x24),iVar18 + 1,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,0x79,*(undefined4 *)(iVar14 + 0x24),iVar18 + 1,0)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" * (cast_expression "(undefined4 *)(iVar14 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x24)" ( (binary_expression "iVar14 + 0x24" identifier + number_literal) )))) , (binary_expression "iVar18 + 1" identifier + number_literal) , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar16,0x7a,*(undefined4 *)(iVar14 + 0x24),iVar18,iVar18 + 1);" (call_expression "(*pcVar15)(piVar16,0x7a,*(undefined4 *)(iVar14 + 0x24),iVar18,iVar18 + 1)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,0x7a,*(undefined4 *)(iVar14 + 0x24),iVar18,iVar18 + 1)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" * (cast_expression "(undefined4 *)(iVar14 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x24)" ( (binary_expression "iVar14 + 0x24" identifier + number_literal) )))) , identifier , (binary_expression "iVar18 + 1" identifier + number_literal) ))) ;) (expression_statement "(*(code *)(PTR_LAB_0015b710 + -0x18cc))(param_3);" (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x18cc))(param_3)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x18cc))" ( (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x18cc)" * (cast_expression "(code *)(PTR_LAB_0015b710 + -0x18cc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x18cc)" ( (binary_expression "PTR_LAB_0015b710 + -0x18cc" identifier + number_literal) )))) )) (argument_list "(param_3)" ( identifier ))) ;) (expression_statement "(*pcVar24)(param_1,iVar14,1);" (call_expression "(*pcVar24)(param_1,iVar14,1)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(param_1,iVar14,1)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + 3,0);" (call_expression "(*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + 3,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + 3,0)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" * (cast_expression "(undefined4 *)(iVar14 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x24)" ( (binary_expression "iVar14 + 0x24" identifier + number_literal) )))) , (binary_expression "piVar16[0x1b] + 3" (subscript_expression "piVar16[0x1b]" identifier [ number_literal ]) + number_literal) , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar16,0xc,param_4,param_5,0);" (call_expression "(*pcVar15)(piVar16,0xc,param_4,param_5,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,0xc,param_4,param_5,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "iVar18 = 5;" (assignment_expression "iVar18 = 5" identifier = number_literal) ;) (expression_statement "iVar5 = *(int *)(iVar14 + 0x24);" (assignment_expression "iVar5 = *(int *)(iVar14 + 0x24)" identifier = (pointer_expression "*(int *)(iVar14 + 0x24)" * (cast_expression "(int *)(iVar14 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x24)" ( (binary_expression "iVar14 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar15)(piVar16,5,iVar5,piVar16[0x1b] + -1,0);" (call_expression "(*pcVar15)(piVar16,5,iVar5,piVar16[0x1b] + -1,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar16,5,iVar5,piVar16[0x1b] + -1,0)" ( identifier , number_literal , identifier , (binary_expression "piVar16[0x1b] + -1" (subscript_expression "piVar16[0x1b]" identifier [ number_literal ]) + number_literal) , number_literal ))) ;) (goto_statement "goto LAB_000c0f44;" goto statement_identifier ;) })) (labeled_statement "LAB_000c0c60:\n    piVar11 = *(int **)(param_1 + 8);" statement_identifier : (expression_statement "piVar11 = *(int **)(param_1 + 8);" (assignment_expression "piVar11 = *(int **)(param_1 + 8)" identifier = (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;)) (if_statement "if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      piVar16 = *(int **)(iVar14 + 8);\n      local_48 = *(int **)(iVar14 + 4);\n      if (piVar16 != (int *)0x0) goto LAB_000c0c7c;\nLAB_000c1450:\n      local_58 = 0;\n      bVar1 = false;\n    }\n    else {\n      local_48 = *(int **)(iVar14 + 4);\n      piVar16 = *(int **)(iVar14 + 8);\n      if (piVar16 == (int *)0x0) goto LAB_000c1450;\nLAB_000c0c7c:\n      local_58 = *piVar16;\n      bVar1 = (*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700;\n    }" if (parenthesized_expression "(piVar11 == (int *)0x0)" ( (binary_expression "piVar11 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      piVar16 = *(int **)(iVar14 + 8);\n      local_48 = *(int **)(iVar14 + 4);\n      if (piVar16 != (int *)0x0) goto LAB_000c0c7c;\nLAB_000c1450:\n      local_58 = 0;\n      bVar1 = false;\n    }" { (expression_statement "piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);" (assignment_expression "piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1)" identifier = (cast_expression "(int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x371c))" ( (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x371c)" * (cast_expression "(code *)(PTR_LAB_0015b710 + -0x371c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x371c)" ( (binary_expression "PTR_LAB_0015b710 + -0x371c" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))))) ;) (expression_statement "piVar16 = *(int **)(iVar14 + 8);" (assignment_expression "piVar16 = *(int **)(iVar14 + 8)" identifier = (pointer_expression "*(int **)(iVar14 + 8)" * (cast_expression "(int **)(iVar14 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 8)" ( (binary_expression "iVar14 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_48 = *(int **)(iVar14 + 4);" (assignment_expression "local_48 = *(int **)(iVar14 + 4)" identifier = (pointer_expression "*(int **)(iVar14 + 4)" * (cast_expression "(int **)(iVar14 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 4)" ( (binary_expression "iVar14 + 4" identifier + number_literal) ))))) ;) (if_statement "if (piVar16 != (int *)0x0) goto LAB_000c0c7c;" if (parenthesized_expression "(piVar16 != (int *)0x0)" ( (binary_expression "piVar16 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000c0c7c;" goto statement_identifier ;)) (labeled_statement "LAB_000c1450:\n      local_58 = 0;" statement_identifier : (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;)) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) }) (else_clause "else {\n      local_48 = *(int **)(iVar14 + 4);\n      piVar16 = *(int **)(iVar14 + 8);\n      if (piVar16 == (int *)0x0) goto LAB_000c1450;\nLAB_000c0c7c:\n      local_58 = *piVar16;\n      bVar1 = (*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700;\n    }" else (compound_statement "{\n      local_48 = *(int **)(iVar14 + 4);\n      piVar16 = *(int **)(iVar14 + 8);\n      if (piVar16 == (int *)0x0) goto LAB_000c1450;\nLAB_000c0c7c:\n      local_58 = *piVar16;\n      bVar1 = (*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700;\n    }" { (expression_statement "local_48 = *(int **)(iVar14 + 4);" (assignment_expression "local_48 = *(int **)(iVar14 + 4)" identifier = (pointer_expression "*(int **)(iVar14 + 4)" * (cast_expression "(int **)(iVar14 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 4)" ( (binary_expression "iVar14 + 4" identifier + number_literal) ))))) ;) (expression_statement "piVar16 = *(int **)(iVar14 + 8);" (assignment_expression "piVar16 = *(int **)(iVar14 + 8)" identifier = (pointer_expression "*(int **)(iVar14 + 8)" * (cast_expression "(int **)(iVar14 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 8)" ( (binary_expression "iVar14 + 8" identifier + number_literal) ))))) ;) (if_statement "if (piVar16 == (int *)0x0) goto LAB_000c1450;" if (parenthesized_expression "(piVar16 == (int *)0x0)" ( (binary_expression "piVar16 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000c1450;" goto statement_identifier ;)) (labeled_statement "LAB_000c0c7c:\n      local_58 = *piVar16;" statement_identifier : (expression_statement "local_58 = *piVar16;" (assignment_expression "local_58 = *piVar16" identifier = (pointer_expression "*piVar16" * identifier)) ;)) (expression_statement "bVar1 = (*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700;" (assignment_expression "bVar1 = (*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700" identifier = (binary_expression "(*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700" (parenthesized_expression "(*(uint *)(iVar14 + 0xc) & 0xffff00)" ( (binary_expression "*(uint *)(iVar14 + 0xc) & 0xffff00" (pointer_expression "*(uint *)(iVar14 + 0xc)" * (cast_expression "(uint *)(iVar14 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xc)" ( (binary_expression "iVar14 + 0xc" identifier + number_literal) )))) & number_literal) )) == number_literal)) ;) }))) (expression_statement "puVar3 = PTR_LAB_0015b714;" (assignment_expression "puVar3 = PTR_LAB_0015b714" identifier = identifier) ;) (expression_statement "iVar18 = *(int *)(param_1 + 0x2c);" (assignment_expression "iVar18 = *(int *)(param_1 + 0x2c)" identifier = (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "iVar23 = *(int *)(param_1 + 0x28);" (assignment_expression "iVar23 = *(int *)(param_1 + 0x28)" identifier = (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "iVar17 = *(int *)(param_1 + 0x38);" (assignment_expression "iVar17 = *(int *)(param_1 + 0x38)" identifier = (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = iVar18 + local_58;" (assignment_expression "iVar5 = iVar18 + local_58" identifier = (binary_expression "iVar18 + local_58" identifier + identifier)) ;) (expression_statement "iVar9 = iVar5 + 2;" (assignment_expression "iVar9 = iVar5 + 2" identifier = (binary_expression "iVar5 + 2" identifier + number_literal)) ;) (expression_statement "iVar20 = iVar17 + -2;" (assignment_expression "iVar20 = iVar17 + -2" identifier = (binary_expression "iVar17 + -2" identifier + number_literal)) ;) (expression_statement "*(int *)(param_1 + 0x28) = iVar23 + 1;" (assignment_expression "*(int *)(param_1 + 0x28) = iVar23 + 1" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "iVar23 + 1" identifier + number_literal)) ;) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(param_1 + 0x38) = iVar20;" (assignment_expression "*(int *)(param_1 + 0x38) = iVar20" (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(param_1 + 0x2c) = iVar9;" (assignment_expression "*(int *)(param_1 + 0x2c) = iVar9" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "(*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar20,&local_30\n              );" (call_expression "(*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar20,&local_30\n              )" (parenthesized_expression "(*(code *)(puVar3 + -0x7e94))" ( (pointer_expression "*(code *)(puVar3 + -0x7e94)" * (cast_expression "(code *)(puVar3 + -0x7e94)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x7e94)" ( (binary_expression "puVar3 + -0x7e94" identifier + number_literal) )))) )) (argument_list "(param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar20,&local_30\n              )" ( identifier , (binary_expression "param_2 + 0x20" identifier + number_literal) , (pointer_expression "*(undefined4 *)(param_2 + 0x44)" * (cast_expression "(undefined4 *)(param_2 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x44)" ( (binary_expression "param_2 + 0x44" identifier + number_literal) )))) , identifier , identifier , identifier , (pointer_expression "&local_30" & identifier) ))) ;) (expression_statement "pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);" (assignment_expression "pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x3890)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x3890)" ( (binary_expression "PTR_LAB_0015b710 + -0x3890" identifier + number_literal) )))) ;) (expression_statement "local_60 = (*pcVar15)(piVar11,0xb,0,0,0);" (assignment_expression "local_60 = (*pcVar15)(piVar11,0xb,0,0,0)" identifier = (call_expression "(*pcVar15)(piVar11,0xb,0,0,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0xb,0,0,0)" ( identifier , number_literal , number_literal , number_literal , number_literal )))) ;) (expression_statement "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);" (assignment_expression "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14)" identifier = (cast_expression "(code *)(PTR_LAB_0015b710 + -0x3c14)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x3c14)" ( (binary_expression "PTR_LAB_0015b710 + -0x3c14" identifier + number_literal) )))) ;) (expression_statement "(*pcVar24)(piVar11,iVar20);" (call_expression "(*pcVar24)(piVar11,iVar20)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(piVar11,iVar20)" ( identifier , identifier ))) ;) (expression_statement "(*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 2,0);" (call_expression "(*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 2,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x11,0,piVar11[0x1b] + 2,0)" ( identifier , number_literal , number_literal , (binary_expression "piVar11[0x1b] + 2" (subscript_expression "piVar11[0x1b]" identifier [ number_literal ]) + number_literal) , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar11,0x6f,iVar23,*(undefined4 *)(iVar14 + 0x24),0);" (call_expression "(*pcVar15)(piVar11,0x6f,iVar23,*(undefined4 *)(iVar14 + 0x24),0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x6f,iVar23,*(undefined4 *)(iVar14 + 0x24),0)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" * (cast_expression "(undefined4 *)(iVar14 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x24)" ( (binary_expression "iVar14 + 0x24" identifier + number_literal) )))) , number_literal ))) ;) (expression_statement "uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);" (assignment_expression "uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14)" identifier = (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x2e00))" ( (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x2e00)" * (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2e00)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b710 + -0x2e00)" ( (binary_expression "PTR_LAB_0015b710 + -0x2e00" identifier + number_literal) )))) )) (argument_list "(param_1,iVar14)" ( identifier , identifier )))) ;) (expression_statement "(*pcVar15)(piVar11,0x46,0,iVar9,0);" (call_expression "(*pcVar15)(piVar11,0x46,0,iVar9,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x46,0,iVar9,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar11,0x24,iVar23,iVar17,0);" (call_expression "(*pcVar15)(piVar11,0x24,iVar23,iVar17,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x24,iVar23,iVar17,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar17,0);" (call_expression "(*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar17,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar17,0)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" * (cast_expression "(undefined4 *)(iVar14 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x24)" ( (binary_expression "iVar14 + 0x24" identifier + number_literal) )))) , identifier , number_literal ))) ;) (if_statement "if (bVar1) {\n      iVar20 = piVar11[0x1b];\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n      (*pcVar15)(piVar11,5,iVar23,iVar20,0);\n      (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n      local_50 = piVar11[0x1b];\n      if (piVar16 != (int *)0x0) goto LAB_000c0e28;\n      pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n    }\n    else {\n      local_50 = piVar11[0x1b];\n      if (piVar16 == (int *)0x0) {\n        pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);\n        uVar6 = uVar4;\n        if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n    }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n      iVar20 = piVar11[0x1b];\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n      (*pcVar15)(piVar11,5,iVar23,iVar20,0);\n      (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n      local_50 = piVar11[0x1b];\n      if (piVar16 != (int *)0x0) goto LAB_000c0e28;\n      pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n    }" { (expression_statement "iVar20 = piVar11[0x1b];" (assignment_expression "iVar20 = piVar11[0x1b]" identifier = (subscript_expression "piVar11[0x1b]" identifier [ number_literal ])) ;) (expression_statement "(*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);" (call_expression "(*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b714 + -0x7af4))" ( (pointer_expression "*(code *)(PTR_LAB_0015b714 + -0x7af4)" * (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7af4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x7af4)" ( (binary_expression "PTR_LAB_0015b714 + -0x7af4" identifier + number_literal) )))) )) (argument_list "(param_1,iVar14,iVar23,0,uVar4,local_30)" ( identifier , identifier , identifier , number_literal , identifier , identifier ))) ;) (expression_statement "(*pcVar15)(piVar11,5,iVar23,iVar20,0);" (call_expression "(*pcVar15)(piVar11,5,iVar23,iVar20,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,5,iVar23,iVar20,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "(*pcVar15)(piVar11,0x24,iVar23,iVar17,0);" (call_expression "(*pcVar15)(piVar11,0x24,iVar23,iVar17,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x24,iVar23,iVar17,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "local_50 = piVar11[0x1b];" (assignment_expression "local_50 = piVar11[0x1b]" identifier = (subscript_expression "piVar11[0x1b]" identifier [ number_literal ])) ;) (if_statement "if (piVar16 != (int *)0x0) goto LAB_000c0e28;" if (parenthesized_expression "(piVar16 != (int *)0x0)" ( (binary_expression "piVar16 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000c0e28;" goto statement_identifier ;)) (expression_statement "pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);" (assignment_expression "pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508)" identifier = (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7508)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x7508)" ( (binary_expression "PTR_LAB_0015b714 + -0x7508" identifier + number_literal) )))) ;) }) (else_clause "else {\n      local_50 = piVar11[0x1b];\n      if (piVar16 == (int *)0x0) {\n        pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);\n        uVar6 = uVar4;\n        if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n    }" else (compound_statement "{\n      local_50 = piVar11[0x1b];\n      if (piVar16 == (int *)0x0) {\n        pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);\n        uVar6 = uVar4;\n        if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n    }" { (expression_statement "local_50 = piVar11[0x1b];" (assignment_expression "local_50 = piVar11[0x1b]" identifier = (subscript_expression "piVar11[0x1b]" identifier [ number_literal ])) ;) (if_statement "if (piVar16 == (int *)0x0) {\n        pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);\n        uVar6 = uVar4;\n        if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }" if (parenthesized_expression "(piVar16 == (int *)0x0)" ( (binary_expression "piVar16 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }" { (expression_statement "pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);" (assignment_expression "pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508)" identifier = (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7508)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x7508)" ( (binary_expression "PTR_LAB_0015b714 + -0x7508" identifier + number_literal) )))) ;) }) (else_clause "else {\nLAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);\n        uVar6 = uVar4;\n        if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }" else (compound_statement "{\nLAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);\n        uVar6 = uVar4;\n        if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }" { (labeled_statement "LAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);" statement_identifier : (expression_statement "cVar10 = *(char *)(iVar14 + 0xd);" (assignment_expression "cVar10 = *(char *)(iVar14 + 0xd)" identifier = (pointer_expression "*(char *)(iVar14 + 0xd)" * (cast_expression "(char *)(iVar14 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xd)" ( (binary_expression "iVar14 + 0xd" identifier + number_literal) ))))) ;)) (expression_statement "uVar6 = uVar4;" (assignment_expression "uVar6 = uVar4" identifier = identifier) ;) (if_statement "if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }" if (parenthesized_expression "(*(char *)(iVar14 + 0xe) == 'R')" ( (binary_expression "*(char *)(iVar14 + 0xe) == 'R'" (pointer_expression "*(char *)(iVar14 + 0xe)" * (cast_expression "(char *)(iVar14 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xe)" ( (binary_expression "iVar14 + 0xe" identifier + number_literal) )))) == (char_literal "'R'" ' character ')) )) (compound_statement "{\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }" { (if_statement "if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }" if (parenthesized_expression "(*(char *)(iVar14 + 0xc) == 'V')" ( (binary_expression "*(char *)(iVar14 + 0xc) == 'V'" (pointer_expression "*(char *)(iVar14 + 0xc)" * (cast_expression "(char *)(iVar14 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xc)" ( (binary_expression "iVar14 + 0xc" identifier + number_literal) )))) == (char_literal "'V'" ' character ')) )) (compound_statement "{\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }" { (labeled_statement "LAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);" statement_identifier : (expression_statement "iVar20 = *(int *)(iVar14 + 0x40);" (assignment_expression "iVar20 = *(int *)(iVar14 + 0x40)" identifier = (pointer_expression "*(int *)(iVar14 + 0x40)" * (cast_expression "(int *)(iVar14 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x40)" ( (binary_expression "iVar14 + 0x40" identifier + number_literal) ))))) ;)) (if_statement "if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }" if (parenthesized_expression "(local_48 == (int *)0x0)" ( (binary_expression "local_48 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              iVar12 = 0;\n            }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) }) (else_clause "else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }" else (compound_statement "{\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }" { (expression_statement "iVar12 = *local_48;" (assignment_expression "iVar12 = *local_48" identifier = (pointer_expression "*local_48" * identifier)) ;) (expression_statement "iVar20 = iVar20 + iVar12;" (assignment_expression "iVar20 = iVar20 + iVar12" identifier = (binary_expression "iVar20 + iVar12" identifier + identifier)) ;) }))) (expression_statement "iVar12 = iVar12 + *(int *)(iVar14 + 0x38);" (assignment_expression "iVar12 = iVar12 + *(int *)(iVar14 + 0x38)" identifier = (binary_expression "iVar12 + *(int *)(iVar14 + 0x38)" identifier + (pointer_expression "*(int *)(iVar14 + 0x38)" * (cast_expression "(int *)(iVar14 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x38)" ( (binary_expression "iVar14 + 0x38" identifier + number_literal) )))))) ;) (expression_statement "uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);" (assignment_expression "uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0)" identifier = (call_expression "(*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b714 + -0x7fc4))" ( (pointer_expression "*(code *)(PTR_LAB_0015b714 + -0x7fc4)" * (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7fc4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x7fc4)" ( (binary_expression "PTR_LAB_0015b714 + -0x7fc4" identifier + number_literal) )))) )) (argument_list "(param_1,piVar16,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (if_statement "if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }" if (parenthesized_expression "(0 < local_58)" ( (binary_expression "0 < local_58" number_literal < identifier) )) (compound_statement "{\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }" { (expression_statement "iVar13 = local_58 + iVar20;" (assignment_expression "iVar13 = local_58 + iVar20" identifier = (binary_expression "local_58 + iVar20" identifier + identifier)) ;) (expression_statement "iVar8 = iVar18 - iVar20;" (assignment_expression "iVar8 = iVar18 - iVar20" identifier = (binary_expression "iVar18 - iVar20" identifier - identifier)) ;) (do_statement "do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);" do (compound_statement "{\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              }" { (expression_statement "(*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);" (call_expression "(*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20)" ( identifier , number_literal , identifier , identifier , (binary_expression "iVar8 + iVar20" identifier + identifier) ))) ;) (expression_statement "iVar20 = iVar20 + 1;" (assignment_expression "iVar20 = iVar20 + 1" identifier = (binary_expression "iVar20 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar20 != iVar13)" ( (binary_expression "iVar20 != iVar13" identifier != identifier) )) ;) })) (expression_statement "iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);" (assignment_expression "iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58)" identifier = (call_expression "(*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x57,iVar18,iVar12,local_58)" ( identifier , number_literal , identifier , identifier , identifier )))) ;) (expression_statement "(*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);" (call_expression "(*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b6c0 + -0x5958))" ( (pointer_expression "*(code *)(PTR_LAB_0015b6c0 + -0x5958)" * (cast_expression "(code *)(PTR_LAB_0015b6c0 + -0x5958)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6c0 + -0x5958)" ( (binary_expression "PTR_LAB_0015b6c0 + -0x5958" identifier + number_literal) )))) )) (argument_list "(piVar11,uVar7,0xfffffff7)" ( identifier , identifier , number_literal ))) ;) (expression_statement "iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);" (assignment_expression "iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2)" identifier = (call_expression "(*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x10,iVar20 + 2,0,iVar20 + 2)" ( identifier , number_literal , (binary_expression "iVar20 + 2" identifier + number_literal) , number_literal , (binary_expression "iVar20 + 2" identifier + number_literal) )))) ;) (expression_statement "(*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);" (call_expression "(*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x4e,iVar18,iVar12,local_58 + -1)" ( identifier , number_literal , identifier , identifier , (binary_expression "local_58 + -1" identifier + number_literal) ))) ;) (expression_statement "uVar7 = local_30;" (assignment_expression "uVar7 = local_30" identifier = identifier) ;) (if_statement "if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }" if (parenthesized_expression "(cVar10 != 'R')" ( (binary_expression "cVar10 != 'R'" identifier != (char_literal "'R'" ' character ')) )) (compound_statement "{\n              uVar6 = 0;\n              uVar7 = 0;\n            }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) })) (goto_statement "goto LAB_000c14a0;" goto statement_identifier ;) })) (if_statement "if (cVar10 == 'R') goto LAB_000c1494;" if (parenthesized_expression "(cVar10 == 'R')" ( (binary_expression "cVar10 == 'R'" identifier == (char_literal "'R'" ' character ')) )) (goto_statement "goto LAB_000c1494;" goto statement_identifier ;)) (expression_statement "pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);" (assignment_expression "pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508)" identifier = (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7508)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x7508)" ( (binary_expression "PTR_LAB_0015b714 + -0x7508" identifier + number_literal) )))) ;) (expression_statement "(*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);" (call_expression "(*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0)" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "(param_1,iVar14,iVar9,param_4,param_5,0,0)" ( identifier , identifier , identifier , identifier , identifier , number_literal , number_literal ))) ;) }) (else_clause "else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }" else (if_statement "if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }" if (parenthesized_expression "(cVar10 == 'R')" ( (binary_expression "cVar10 == 'R'" identifier == (char_literal "'R'" ' character ')) )) (compound_statement "{\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }" { (if_statement "if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;" if (parenthesized_expression "(*(char *)(iVar14 + 0xc) == 'V')" ( (binary_expression "*(char *)(iVar14 + 0xc) == 'V'" (pointer_expression "*(char *)(iVar14 + 0xc)" * (cast_expression "(char *)(iVar14 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xc)" ( (binary_expression "iVar14 + 0xc" identifier + number_literal) )))) == (char_literal "'V'" ' character ')) )) (goto_statement "goto LAB_000c1544;" goto statement_identifier ;)) (labeled_statement "LAB_000c1494:\n          iVar20 = 0;" statement_identifier : (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;)) (expression_statement "uVar7 = local_30;" (assignment_expression "uVar7 = local_30" identifier = identifier) ;) (labeled_statement "LAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);" statement_identifier : (expression_statement "pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);" (assignment_expression "pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508)" identifier = (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7508)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x7508)" ( (binary_expression "PTR_LAB_0015b714 + -0x7508" identifier + number_literal) )))) ;)) (expression_statement "(*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);" (call_expression "(*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7)" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (if_statement "if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }" { (expression_statement "iVar18 = piVar11[0x1b];" (assignment_expression "iVar18 = piVar11[0x1b]" identifier = (subscript_expression "piVar11[0x1b]" identifier [ number_literal ])) ;) (if_statement "if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }" if (parenthesized_expression "(iVar20 < 0)" ( (binary_expression "iVar20 < 0" identifier < number_literal) )) (compound_statement "{\n              iVar20 = iVar18 + -1;\n            }" { (expression_statement "iVar20 = iVar18 + -1;" (assignment_expression "iVar20 = iVar18 + -1" identifier = (binary_expression "iVar18 + -1" identifier + number_literal)) ;) })) (if_statement "if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }" if (parenthesized_expression "(*(char *)(*piVar11 + 0x51) == '\0')" ( (binary_expression "*(char *)(*piVar11 + 0x51) == '\0'" (pointer_expression "*(char *)(*piVar11 + 0x51)" * (cast_expression "(char *)(*piVar11 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar11 + 0x51)" ( (binary_expression "*piVar11 + 0x51" (pointer_expression "*piVar11" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }" { (expression_statement "*(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;" (assignment_expression "*(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18" (pointer_expression "*(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8)" * (cast_expression "(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar11[0x1a] + iVar20 * 0x14 + 8)" ( (binary_expression "piVar11[0x1a] + iVar20 * 0x14 + 8" (binary_expression "piVar11[0x1a] + iVar20 * 0x14" (subscript_expression "piVar11[0x1a]" identifier [ number_literal ]) + (binary_expression "iVar20 * 0x14" identifier * number_literal)) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }" else (compound_statement "{\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }" { (expression_statement "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;" (assignment_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18" (pointer_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c)" * (cast_expression "(int *)(PTR_DAT_0015b5d8 + -0x450c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x450c)" ( (binary_expression "PTR_DAT_0015b5d8 + -0x450c" identifier + number_literal) )))) = identifier) ;) }))) })) }) (else_clause "else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }" else (compound_statement "{\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }" { (expression_statement "pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);" (assignment_expression "pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508)" identifier = (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7508)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x7508)" ( (binary_expression "PTR_LAB_0015b714 + -0x7508" identifier + number_literal) )))) ;) }))))) (if_statement "if (bVar1) goto LAB_000c0e5c;" if (parenthesized_expression "(bVar1)" ( identifier )) (goto_statement "goto LAB_000c0e5c;" goto statement_identifier ;)) }))) (expression_statement "(*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);" (call_expression "(*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b714 + -0x7af4))" ( (pointer_expression "*(code *)(PTR_LAB_0015b714 + -0x7af4)" * (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7af4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b714 + -0x7af4)" ( (binary_expression "PTR_LAB_0015b714 + -0x7af4" identifier + number_literal) )))) )) (argument_list "(param_1,iVar14,iVar23,0,uVar4,local_30)" ( identifier , identifier , identifier , number_literal , identifier , identifier ))) ;) }))) (labeled_statement "LAB_000c0e5c:\n    (*pcVar15)(piVar11,0x53,iVar9,1,0);" statement_identifier : (expression_statement "(*pcVar15)(piVar11,0x53,iVar9,1,0);" (call_expression "(*pcVar15)(piVar11,0x53,iVar9,1,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x53,iVar9,1,0)" ( identifier , number_literal , identifier , number_literal , number_literal ))) ;)) (expression_statement "(*pcVar15)(piVar11,5,iVar23,local_50,0);" (call_expression "(*pcVar15)(piVar11,5,iVar23,local_50,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,5,iVar23,local_50,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "(*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);" (call_expression "(*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0)" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "(param_1,iVar14,iVar9,param_4,param_5,0,0)" ( identifier , identifier , identifier , identifier , identifier , number_literal , number_literal ))) ;) (expression_statement "(*pcVar24)(piVar11,iVar17);" (call_expression "(*pcVar24)(piVar11,iVar17)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(piVar11,iVar17)" ( identifier , identifier ))) ;) (expression_statement "(*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);" (call_expression "(*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" * (cast_expression "(undefined4 *)(iVar14 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x24)" ( (binary_expression "iVar14 + 0x24" identifier + number_literal) )))) , number_literal , number_literal ))) ;) }))) (expression_statement "iVar18 = 0x42;" (assignment_expression "iVar18 = 0x42" identifier = number_literal) ;) (expression_statement "(*pcVar15)(piVar11,0x42,iVar5,0,0);" (call_expression "(*pcVar15)(piVar11,0x42,iVar5,0,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar11,0x42,iVar5,0,0)" ( identifier , number_literal , identifier , number_literal , number_literal ))) ;) (expression_statement "piVar16 = (int *)piVar11[0x1b];" (assignment_expression "piVar16 = (int *)piVar11[0x1b]" identifier = (cast_expression "(int *)piVar11[0x1b]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[0x1b]" identifier [ number_literal ]))) ;) (if_statement "if (local_60 < 0) {\n    local_60 = (int)piVar16 + -1;\n  }" if (parenthesized_expression "(local_60 < 0)" ( (binary_expression "local_60 < 0" identifier < number_literal) )) (compound_statement "{\n    local_60 = (int)piVar16 + -1;\n  }" { (expression_statement "local_60 = (int)piVar16 + -1;" (assignment_expression "local_60 = (int)piVar16 + -1" identifier = (binary_expression "(int)piVar16 + -1" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) })) (if_statement "if (*(char *)(*piVar11 + 0x51) == '\0') {\n    puVar3 = (undefined *)(piVar11[0x1a] + local_60 * 0x14);\n    iVar18 = local_60;\n  }\n  else {\n    puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n  }" if (parenthesized_expression "(*(char *)(*piVar11 + 0x51) == '\0')" ( (binary_expression "*(char *)(*piVar11 + 0x51) == '\0'" (pointer_expression "*(char *)(*piVar11 + 0x51)" * (cast_expression "(char *)(*piVar11 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar11 + 0x51)" ( (binary_expression "*piVar11 + 0x51" (pointer_expression "*piVar11" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    puVar3 = (undefined *)(piVar11[0x1a] + local_60 * 0x14);\n    iVar18 = local_60;\n  }" { (expression_statement "puVar3 = (undefined *)(piVar11[0x1a] + local_60 * 0x14);" (assignment_expression "puVar3 = (undefined *)(piVar11[0x1a] + local_60 * 0x14)" identifier = (cast_expression "(undefined *)(piVar11[0x1a] + local_60 * 0x14)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar11[0x1a] + local_60 * 0x14)" ( (binary_expression "piVar11[0x1a] + local_60 * 0x14" (subscript_expression "piVar11[0x1a]" identifier [ number_literal ]) + (binary_expression "local_60 * 0x14" identifier * number_literal)) )))) ;) (expression_statement "iVar18 = local_60;" (assignment_expression "iVar18 = local_60" identifier = identifier) ;) }) (else_clause "else {\n    puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n  }" else (compound_statement "{\n    puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n  }" { (expression_statement "puVar3 = PTR_DAT_0015b5d8 + -0x4514;" (assignment_expression "puVar3 = PTR_DAT_0015b5d8 + -0x4514" identifier = (binary_expression "PTR_DAT_0015b5d8 + -0x4514" identifier + number_literal)) ;) }))) (expression_statement "*(int **)(puVar3 + 8) = piVar16;" (assignment_expression "*(int **)(puVar3 + 8) = piVar16" (pointer_expression "*(int **)(puVar3 + 8)" * (cast_expression "(int **)(puVar3 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 8)" ( (binary_expression "puVar3 + 8" identifier + number_literal) )))) = identifier) ;) (labeled_statement "LAB_000c0f44:\n  if (local_2c == *(int *)puVar22) {\n    return;\n  }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar22) {\n    return;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar22)" ( (binary_expression "local_2c == *(int *)puVar22" identifier == (pointer_expression "*(int *)puVar22" * (cast_expression "(int *)puVar22" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "puVar22 = PTR___stack_chk_fail_0015ba10;" (assignment_expression "puVar22 = PTR___stack_chk_fail_0015ba10" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0015ba10)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015ba10)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015ba10)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0015ba10" * (cast_expression "(code *)PTR___stack_chk_fail_0015ba10" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar14 = *piVar16;" (assignment_expression "iVar14 = *piVar16" identifier = (pointer_expression "*piVar16" * identifier)) ;) (if_statement "if (iVar18 == 0) {\n    if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8();\n      return;\n    }\n  }\n  else {\n    iVar18 = (*(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c))(iVar14);\n    if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8(piVar16,iVar18,iVar5);\n    }\n    if (iVar18 != 0) {\n                    \n                    \n      (*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4))(iVar14,iVar18);\n      return;\n    }\n  }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n    if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8();\n      return;\n    }\n  }" { (if_statement "if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8();\n      return;\n    }" if (parenthesized_expression "(*(char *)(iVar14 + 0x51) == '\0')" ( (binary_expression "*(char *)(iVar14 + 0x51) == '\0'" (pointer_expression "*(char *)(iVar14 + 0x51)" * (cast_expression "(char *)(iVar14 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x51)" ( (binary_expression "iVar14 + 0x51" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_000c02d8();\n      return;\n    }" { (expression_statement "FUN_000c02d8();" (call_expression "FUN_000c02d8()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n    iVar18 = (*(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c))(iVar14);\n    if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8(piVar16,iVar18,iVar5);\n    }\n    if (iVar18 != 0) {\n                    \n                    \n      (*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4))(iVar14,iVar18);\n      return;\n    }\n  }" else (compound_statement "{\n    iVar18 = (*(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c))(iVar14);\n    if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8(piVar16,iVar18,iVar5);\n    }\n    if (iVar18 != 0) {\n                    \n                    \n      (*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4))(iVar14,iVar18);\n      return;\n    }\n  }" { (expression_statement "iVar18 = (*(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c))(iVar14);" (assignment_expression "iVar18 = (*(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c))(iVar14)" identifier = (call_expression "(*(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c))(iVar14)" (parenthesized_expression "(*(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c))" ( (pointer_expression "*(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c)" * (cast_expression "(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar22 + 0x997c0) + -0x271c)" ( (binary_expression "*(int *)(puVar22 + 0x997c0) + -0x271c" (pointer_expression "*(int *)(puVar22 + 0x997c0)" * (cast_expression "(int *)(puVar22 + 0x997c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0x997c0)" ( (binary_expression "puVar22 + 0x997c0" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(iVar14)" ( identifier )))) ;) (if_statement "if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8(piVar16,iVar18,iVar5);\n    }" if (parenthesized_expression "(*(char *)(iVar14 + 0x51) == '\0')" ( (binary_expression "*(char *)(iVar14 + 0x51) == '\0'" (pointer_expression "*(char *)(iVar14 + 0x51)" * (cast_expression "(char *)(iVar14 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x51)" ( (binary_expression "iVar14 + 0x51" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_000c02d8(piVar16,iVar18,iVar5);\n    }" { (expression_statement "FUN_000c02d8(piVar16,iVar18,iVar5);" (call_expression "FUN_000c02d8(piVar16,iVar18,iVar5)" identifier (argument_list "(piVar16,iVar18,iVar5)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if (iVar18 != 0) {\n                    \n                    \n      (*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4))(iVar14,iVar18);\n      return;\n    }" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (compound_statement "{\n                    \n                    \n      (*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4))(iVar14,iVar18);\n      return;\n    }" { (expression_statement "(*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4))(iVar14,iVar18);" (call_expression "(*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4))(iVar14,iVar18)" (parenthesized_expression "(*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4))" ( (pointer_expression "*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4)" * (cast_expression "(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar22 + 0x99780) + 0x7bc4)" ( (binary_expression "*(int *)(puVar22 + 0x99780) + 0x7bc4" (pointer_expression "*(int *)(puVar22 + 0x99780)" * (cast_expression "(int *)(puVar22 + 0x99780)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0x99780)" ( (binary_expression "puVar22 + 0x99780" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(iVar14,iVar18)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })) }))) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_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 IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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 IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , LIT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , LIT , (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' character ')) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , IDENT ))) ;) })) })) (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) )))) == (char_literal ' character ')) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT)) + LIT) )))) = LIT) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_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 ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , (binary_expression IDENT + LIT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , LIT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , LIT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' character ')) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , LIT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * 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 (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) )))) ;) }) (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) ;) (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 == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * 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 (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , LIT , LIT )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , LIT , LIT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , LIT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , LIT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 (pointer_expression * 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 (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })))) })) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (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 == (char_literal ' character ')) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , 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 == (char_literal ' character ')) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , LIT , IDENT , LIT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , LIT ))) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , LIT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * 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 (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , LIT , IDENT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , LIT ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) & LIT) )) != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 IDENT == (binary_expression IDENT + LIT))) ))) )) || (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == (binary_expression IDENT + LIT)) || (parenthesized_expression ( (binary_expression IDENT == (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) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + (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 ' character ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto 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 = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }) (else_clause else (compound_statement { (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , (binary_expression IDENT + IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' character ')) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (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 IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , (binary_expression IDENT + IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , (binary_expression IDENT + IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , LIT , LIT , 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * 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 (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' character ')) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * 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 (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) })) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression IDENT + LIT) , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression IDENT + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * 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 (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) })) }))) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , LIT , LIT , IDENT , LIT ))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , LIT , IDENT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression IDENT + LIT) , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_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 (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , LIT ))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement 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) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT)) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (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 = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , LIT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , LIT , (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , LIT , IDENT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , LIT ))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , IDENT , LIT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }) (else_clause else (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 IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' character ')) )) (compound_statement { (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 ' character ')) )) (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 IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (do_statement do (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , (binary_expression IDENT + IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , LIT , LIT ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * 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 (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }))))) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , IDENT , LIT , IDENT , IDENT ))) ;) }))) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , LIT , LIT ))) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , LIT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , LIT ))) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , LIT , LIT ))) ;) (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 < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_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) )))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_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) )))) )) (argument_list ( IDENT , IDENT ))) ;) (return_statement return ;) })) }))) (return_statement return ;) })))
(function_definition "void FUN_000c082c(int param_1,int param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5)\n\n{\n  bool bVar1;\n  uint uVar2;\n  undefined *puVar3;\n  undefined4 uVar4;\n  int iVar5;\n  char cVar10;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  int *piVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  code *pcVar15;\n  int *piVar16;\n  int iVar17;\n  int iVar18;\n  int *piVar19;\n  int iVar20;\n  code *pcVar21;\n  undefined *puVar22;\n  int iVar23;\n  code *pcVar24;\n  int local_60;\n  code *local_5c;\n  int local_58;\n  int local_50;\n  code *local_4c;\n  int *local_48;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar22 = PTR___stack_chk_guard_0015ba2c;\n  iVar14 = *(int *)(param_2 + 0x44);\n  local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  uVar2 = *(uint *)(iVar14 + 0xc) & 0xffff00;\n  if (*(char *)(iVar14 + 0xc) == 'L') {\n    if ((uVar2 == 0x575200) && (*(int *)(iVar14 + 8) != 0)) goto LAB_000c08b4;\n    piVar11 = *(int **)(param_1 + 8);\n    if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n    }\n    puVar3 = PTR_LAB_0015b714;\n    iVar20 = *(int *)(param_1 + 0x28);\n    iVar18 = *(int *)(param_1 + 0x2c);\n    iVar17 = iVar18 + 3;\n    iVar23 = *(int *)(param_1 + 0x38) + -2;\n    *(int *)(param_1 + 0x28) = iVar20 + 2;\n    iVar12 = *(int *)(param_1 + 0x38) + -1;\n    iVar5 = iVar18 + 1;\n    *(int *)(param_1 + 0x2c) = iVar17;\n    *(int *)(param_1 + 0x38) = iVar23;\n    iVar18 = iVar18 + 2;\n    iVar9 = iVar20 + 1;\n    local_30 = 0;\n    (*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar12,&local_30\n              );\n    pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    local_60 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar24)(piVar11,iVar12);\n    (*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 3,0);\n    (*pcVar15)(piVar11,0x6f,iVar20,*(undefined4 *)(iVar14 + 0x24),0);\n    (*pcVar15)(piVar11,0x6f,iVar9,*(undefined4 *)(iVar14 + 0x24),0);\n    if (*(int *)(iVar14 + 0x10) != 0) {\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x10),iVar18);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar18,0);\n    }\n    if (*(int *)(iVar14 + 0x14) != 0) {\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x14),iVar17);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar17,1);\n      if ((*(int *)(iVar14 + 0x14) != 0) && (*(char *)(iVar14 + 0xd) == 'S')) {\n        (*pcVar15)(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17);\n        (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n        (*pcVar15)(piVar11,0x61,iVar18,iVar17,iVar17);\n      }\n    }\n    if ((*(int *)(iVar14 + 0x10) != 0) && (*(char *)(iVar14 + 0xe) == 'U')) {\n      (*pcVar15)(piVar11,0x37,iVar18,piVar11[0x1b] + 3,iVar17);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar17,0);\n    }\n    uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);\n    (*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar23,0);\n    (*pcVar15)(piVar11,0x24,iVar20,iVar23,0);\n    if (0 < piVar11[0x1b]) {\n      *(undefined2 *)(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12) = 1;\n    }\n    (*pcVar15)(piVar11,0x24,iVar9,iVar23,0);\n    iVar12 = piVar11[0x1b];\n    if (0 < iVar12) {\n      *(undefined2 *)(piVar11[0x1a] + iVar12 * 0x14 + -0x12) = 1;\n      iVar12 = piVar11[0x1b];\n    }\n    if (*(char *)(iVar14 + 0xe) == 'U') {\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n      iVar13 = piVar11[0x1b];\n    }\n    else {\n      local_50 = 0;\n      iVar13 = iVar12;\n    }\n    (*pcVar15)(piVar11,5,iVar9,iVar13 + 2,0);\n    iVar13 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7af4);\n    (*pcVar21)(param_1,iVar14,iVar9,0,uVar4,local_30);\n    if (*(char *)(iVar14 + 0xe) == 'W') {\n      (*pcVar15)(piVar11,0xb,0,iVar12,0);\n      iVar12 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar12 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n    }\n    else {\n      iVar9 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar9 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14);\n      }\n      else {\n        puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n      }\n      *(int *)(puVar3 + 8) = iVar9;\n      cVar10 = *(char *)(iVar14 + 0xe);\n      if (cVar10 == 'U') {\n        iVar13 = iVar9 + -1;\n        if (-1 < local_50) {\n          iVar13 = local_50;\n        }\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n      }\n    }\n    if (cVar10 == 'S') {\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n    }\n    if (*(char *)(iVar14 + 0xd) == 'S') {\n      iVar17 = (*pcVar15)(piVar11,0x2f,iVar18,0,1);\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        if (iVar17 < 0) {\n          iVar17 = iVar9 + -1;\n        }\n        goto LAB_000c1d20;\n      }\n    }\n    else {\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        iVar17 = 0;\nLAB_000c1d20:\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n      }\n    }\n    if ((uVar2 - 0x52 < 2) || (uVar2 == 0x55)) {\n      iVar17 = *(int *)(param_1 + 0x38) + -1;\n      *(int *)(param_1 + 0x38) = iVar17;\n      cVar10 = *(char *)(iVar14 + 0xd);\n      if (cVar10 == 'U') {\n        (*pcVar15)(piVar11,0x2f,iVar18,iVar17,1);\n        cVar10 = *(char *)(iVar14 + 0xd);\n      }\n      if (cVar10 == 'S') {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 2,0);\n        (*pcVar15)(piVar11,0xb,0,iVar17,0);\n      }\n      else {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0);\n      }\n      (*pcVar21)(param_1,iVar14,iVar20,1,uVar4,local_30);\n      (*pcVar24)(piVar11,iVar17);\n    }\n    if (*(char *)(iVar14 + 0xe) == 'S') {\n      iVar18 = piVar11[0x1b];\n      if (local_50 < 0) {\n        local_50 = iVar18 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + local_50 * 0x14 + 8) = iVar18;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n      }\n    }\n    (*pcVar15)(piVar11,0xb,0,iVar12,0);\n    (*pcVar24)(piVar11,iVar23);\n    (*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n  }\n  else {\n    if (uVar2 != 0x525700) {\nLAB_000c08b4:\n      iVar18 = iVar14;\n      do {\n        if (((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        iVar18 = *(int *)(iVar18 + 0x18);\n      } while (iVar18 != 0);\n      piVar16 = *(int **)(param_1 + 8);\n      if (piVar16 == (int *)0x0) {\n        piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      }\n      piVar11 = *(int **)(iVar14 + 4);\n      iVar17 = *(int *)(param_1 + 0x2c) + 1;\n      uVar4 = *(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30);\n      iVar20 = (int)*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a);\n      iVar18 = iVar20 + iVar17;\n      iVar5 = iVar20 + 2 + *(int *)(param_1 + 0x2c);\n      if (*(char *)(iVar14 + 0xe) == 'W') {\n        *(int *)(param_1 + 0x2c) = iVar5;\n        piVar19 = (int *)0x0;\n        if (0 < iVar20) goto LAB_000c0980;\n        if (piVar11 != (int *)0x0) {\n          local_50 = *piVar11;\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }\n      else {\n        piVar19 = *(int **)(iVar14 + 8);\n        *(int *)(param_1 + 0x2c) = iVar5;\n        if (iVar20 < 1) {\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }\n        puVar3 = PTR_LAB_0015b714;\n        if (piVar11 == (int *)0x0) {\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }\n        else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }\n        (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);\n        (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n        (*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);\n        (*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n        (*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1);\n        if (iVar5 != 0) {\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }\n      }\nLAB_000c0b50:\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,0xffffffff,0,iVar17,0);\n      if (*(int *)(iVar14 + 0x40) < 1) {\n        (*pcVar15)(piVar16,0x4b,0,iVar18,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }\n      else {\n        (*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);\n      }\n      (*pcVar15)(piVar16,0x79,*(undefined4 *)(iVar14 + 0x24),iVar18 + 1,0);\n      (*pcVar15)(piVar16,0x7a,*(undefined4 *)(iVar14 + 0x24),iVar18,iVar18 + 1);\n      (*(code *)(PTR_LAB_0015b710 + -0x18cc))(param_3);\n      (*pcVar24)(param_1,iVar14,1);\n      (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + 3,0);\n      (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n      iVar18 = 5;\n      iVar5 = *(int *)(iVar14 + 0x24);\n      (*pcVar15)(piVar16,5,iVar5,piVar16[0x1b] + -1,0);\n      goto LAB_000c0f44;\n    }\nLAB_000c0c60:\n    piVar11 = *(int **)(param_1 + 8);\n    if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      piVar16 = *(int **)(iVar14 + 8);\n      local_48 = *(int **)(iVar14 + 4);\n      if (piVar16 != (int *)0x0) goto LAB_000c0c7c;\nLAB_000c1450:\n      local_58 = 0;\n      bVar1 = false;\n    }\n    else {\n      local_48 = *(int **)(iVar14 + 4);\n      piVar16 = *(int **)(iVar14 + 8);\n      if (piVar16 == (int *)0x0) goto LAB_000c1450;\nLAB_000c0c7c:\n      local_58 = *piVar16;\n      bVar1 = (*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700;\n    }\n    puVar3 = PTR_LAB_0015b714;\n    iVar18 = *(int *)(param_1 + 0x2c);\n    iVar23 = *(int *)(param_1 + 0x28);\n    iVar17 = *(int *)(param_1 + 0x38);\n    iVar5 = iVar18 + local_58;\n    iVar9 = iVar5 + 2;\n    iVar20 = iVar17 + -2;\n    *(int *)(param_1 + 0x28) = iVar23 + 1;\n    iVar5 = iVar5 + 1;\n    *(int *)(param_1 + 0x38) = iVar20;\n    *(int *)(param_1 + 0x2c) = iVar9;\n    iVar17 = iVar17 + -1;\n    (*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar20,&local_30\n              );\n    pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    local_60 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar24)(piVar11,iVar20);\n    (*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 2,0);\n    (*pcVar15)(piVar11,0x6f,iVar23,*(undefined4 *)(iVar14 + 0x24),0);\n    uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);\n    (*pcVar15)(piVar11,0x46,0,iVar9,0);\n    (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n    (*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar17,0);\n    if (bVar1) {\n      iVar20 = piVar11[0x1b];\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n      (*pcVar15)(piVar11,5,iVar23,iVar20,0);\n      (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n      local_50 = piVar11[0x1b];\n      if (piVar16 != (int *)0x0) goto LAB_000c0e28;\n      pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n    }\n    else {\n      local_50 = piVar11[0x1b];\n      if (piVar16 == (int *)0x0) {\n        pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);\n        uVar6 = uVar4;\n        if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n    }\nLAB_000c0e5c:\n    (*pcVar15)(piVar11,0x53,iVar9,1,0);\n    (*pcVar15)(piVar11,5,iVar23,local_50,0);\n    (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n    (*pcVar24)(piVar11,iVar17);\n    (*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n  }\n  iVar18 = 0x42;\n  (*pcVar15)(piVar11,0x42,iVar5,0,0);\n  piVar16 = (int *)piVar11[0x1b];\n  if (local_60 < 0) {\n    local_60 = (int)piVar16 + -1;\n  }\n  if (*(char *)(*piVar11 + 0x51) == '\0') {\n    puVar3 = (undefined *)(piVar11[0x1a] + local_60 * 0x14);\n    iVar18 = local_60;\n  }\n  else {\n    puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n  }\n  *(int **)(puVar3 + 8) = piVar16;\nLAB_000c0f44:\n  if (local_2c == *(int *)puVar22) {\n    return;\n  }\n  puVar22 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  iVar14 = *piVar16;\n  if (iVar18 == 0) {\n    if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8();\n      return;\n    }\n  }\n  else {\n    iVar18 = (*(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c))(iVar14);\n    if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8(piVar16,iVar18,iVar5);\n    }\n    if (iVar18 != 0) {\n                    \n                    \n      (*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4))(iVar14,iVar18);\n      return;\n    }\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_000c082c(int param_1,int param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5)" (identifier "FUN_000c082c") (parameter_list "(int param_1,int param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) () ")"))) (compound_statement "{\n  bool bVar1;\n  uint uVar2;\n  undefined *puVar3;\n  undefined4 uVar4;\n  int iVar5;\n  char cVar10;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  int iVar8;\n  int iVar9;\n  int *piVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  code *pcVar15;\n  int *piVar16;\n  int iVar17;\n  int iVar18;\n  int *piVar19;\n  int iVar20;\n  code *pcVar21;\n  undefined *puVar22;\n  int iVar23;\n  code *pcVar24;\n  int local_60;\n  code *local_5c;\n  int local_58;\n  int local_50;\n  code *local_4c;\n  int *local_48;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar22 = PTR___stack_chk_guard_0015ba2c;\n  iVar14 = *(int *)(param_2 + 0x44);\n  local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  uVar2 = *(uint *)(iVar14 + 0xc) & 0xffff00;\n  if (*(char *)(iVar14 + 0xc) == 'L') {\n    if ((uVar2 == 0x575200) && (*(int *)(iVar14 + 8) != 0)) goto LAB_000c08b4;\n    piVar11 = *(int **)(param_1 + 8);\n    if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n    }\n    puVar3 = PTR_LAB_0015b714;\n    iVar20 = *(int *)(param_1 + 0x28);\n    iVar18 = *(int *)(param_1 + 0x2c);\n    iVar17 = iVar18 + 3;\n    iVar23 = *(int *)(param_1 + 0x38) + -2;\n    *(int *)(param_1 + 0x28) = iVar20 + 2;\n    iVar12 = *(int *)(param_1 + 0x38) + -1;\n    iVar5 = iVar18 + 1;\n    *(int *)(param_1 + 0x2c) = iVar17;\n    *(int *)(param_1 + 0x38) = iVar23;\n    iVar18 = iVar18 + 2;\n    iVar9 = iVar20 + 1;\n    local_30 = 0;\n    (*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar12,&local_30\n              );\n    pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    local_60 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar24)(piVar11,iVar12);\n    (*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 3,0);\n    (*pcVar15)(piVar11,0x6f,iVar20,*(undefined4 *)(iVar14 + 0x24),0);\n    (*pcVar15)(piVar11,0x6f,iVar9,*(undefined4 *)(iVar14 + 0x24),0);\n    if (*(int *)(iVar14 + 0x10) != 0) {\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x10),iVar18);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar18,0);\n    }\n    if (*(int *)(iVar14 + 0x14) != 0) {\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x14),iVar17);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar17,1);\n      if ((*(int *)(iVar14 + 0x14) != 0) && (*(char *)(iVar14 + 0xd) == 'S')) {\n        (*pcVar15)(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17);\n        (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n        (*pcVar15)(piVar11,0x61,iVar18,iVar17,iVar17);\n      }\n    }\n    if ((*(int *)(iVar14 + 0x10) != 0) && (*(char *)(iVar14 + 0xe) == 'U')) {\n      (*pcVar15)(piVar11,0x37,iVar18,piVar11[0x1b] + 3,iVar17);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar17,0);\n    }\n    uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);\n    (*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar23,0);\n    (*pcVar15)(piVar11,0x24,iVar20,iVar23,0);\n    if (0 < piVar11[0x1b]) {\n      *(undefined2 *)(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12) = 1;\n    }\n    (*pcVar15)(piVar11,0x24,iVar9,iVar23,0);\n    iVar12 = piVar11[0x1b];\n    if (0 < iVar12) {\n      *(undefined2 *)(piVar11[0x1a] + iVar12 * 0x14 + -0x12) = 1;\n      iVar12 = piVar11[0x1b];\n    }\n    if (*(char *)(iVar14 + 0xe) == 'U') {\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n      iVar13 = piVar11[0x1b];\n    }\n    else {\n      local_50 = 0;\n      iVar13 = iVar12;\n    }\n    (*pcVar15)(piVar11,5,iVar9,iVar13 + 2,0);\n    iVar13 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7af4);\n    (*pcVar21)(param_1,iVar14,iVar9,0,uVar4,local_30);\n    if (*(char *)(iVar14 + 0xe) == 'W') {\n      (*pcVar15)(piVar11,0xb,0,iVar12,0);\n      iVar12 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar12 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n    }\n    else {\n      iVar9 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar9 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14);\n      }\n      else {\n        puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n      }\n      *(int *)(puVar3 + 8) = iVar9;\n      cVar10 = *(char *)(iVar14 + 0xe);\n      if (cVar10 == 'U') {\n        iVar13 = iVar9 + -1;\n        if (-1 < local_50) {\n          iVar13 = local_50;\n        }\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n      }\n    }\n    if (cVar10 == 'S') {\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n    }\n    if (*(char *)(iVar14 + 0xd) == 'S') {\n      iVar17 = (*pcVar15)(piVar11,0x2f,iVar18,0,1);\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        if (iVar17 < 0) {\n          iVar17 = iVar9 + -1;\n        }\n        goto LAB_000c1d20;\n      }\n    }\n    else {\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        iVar17 = 0;\nLAB_000c1d20:\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n      }\n    }\n    if ((uVar2 - 0x52 < 2) || (uVar2 == 0x55)) {\n      iVar17 = *(int *)(param_1 + 0x38) + -1;\n      *(int *)(param_1 + 0x38) = iVar17;\n      cVar10 = *(char *)(iVar14 + 0xd);\n      if (cVar10 == 'U') {\n        (*pcVar15)(piVar11,0x2f,iVar18,iVar17,1);\n        cVar10 = *(char *)(iVar14 + 0xd);\n      }\n      if (cVar10 == 'S') {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 2,0);\n        (*pcVar15)(piVar11,0xb,0,iVar17,0);\n      }\n      else {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0);\n      }\n      (*pcVar21)(param_1,iVar14,iVar20,1,uVar4,local_30);\n      (*pcVar24)(piVar11,iVar17);\n    }\n    if (*(char *)(iVar14 + 0xe) == 'S') {\n      iVar18 = piVar11[0x1b];\n      if (local_50 < 0) {\n        local_50 = iVar18 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + local_50 * 0x14 + 8) = iVar18;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n      }\n    }\n    (*pcVar15)(piVar11,0xb,0,iVar12,0);\n    (*pcVar24)(piVar11,iVar23);\n    (*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n  }\n  else {\n    if (uVar2 != 0x525700) {\nLAB_000c08b4:\n      iVar18 = iVar14;\n      do {\n        if (((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        iVar18 = *(int *)(iVar18 + 0x18);\n      } while (iVar18 != 0);\n      piVar16 = *(int **)(param_1 + 8);\n      if (piVar16 == (int *)0x0) {\n        piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      }\n      piVar11 = *(int **)(iVar14 + 4);\n      iVar17 = *(int *)(param_1 + 0x2c) + 1;\n      uVar4 = *(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30);\n      iVar20 = (int)*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a);\n      iVar18 = iVar20 + iVar17;\n      iVar5 = iVar20 + 2 + *(int *)(param_1 + 0x2c);\n      if (*(char *)(iVar14 + 0xe) == 'W') {\n        *(int *)(param_1 + 0x2c) = iVar5;\n        piVar19 = (int *)0x0;\n        if (0 < iVar20) goto LAB_000c0980;\n        if (piVar11 != (int *)0x0) {\n          local_50 = *piVar11;\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }\n      else {\n        piVar19 = *(int **)(iVar14 + 8);\n        *(int *)(param_1 + 0x2c) = iVar5;\n        if (iVar20 < 1) {\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }\n        puVar3 = PTR_LAB_0015b714;\n        if (piVar11 == (int *)0x0) {\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }\n        else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }\n        (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);\n        (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n        (*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);\n        (*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n        (*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1);\n        if (iVar5 != 0) {\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }\n      }\nLAB_000c0b50:\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,0xffffffff,0,iVar17,0);\n      if (*(int *)(iVar14 + 0x40) < 1) {\n        (*pcVar15)(piVar16,0x4b,0,iVar18,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }\n      else {\n        (*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);\n      }\n      (*pcVar15)(piVar16,0x79,*(undefined4 *)(iVar14 + 0x24),iVar18 + 1,0);\n      (*pcVar15)(piVar16,0x7a,*(undefined4 *)(iVar14 + 0x24),iVar18,iVar18 + 1);\n      (*(code *)(PTR_LAB_0015b710 + -0x18cc))(param_3);\n      (*pcVar24)(param_1,iVar14,1);\n      (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + 3,0);\n      (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n      iVar18 = 5;\n      iVar5 = *(int *)(iVar14 + 0x24);\n      (*pcVar15)(piVar16,5,iVar5,piVar16[0x1b] + -1,0);\n      goto LAB_000c0f44;\n    }\nLAB_000c0c60:\n    piVar11 = *(int **)(param_1 + 8);\n    if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      piVar16 = *(int **)(iVar14 + 8);\n      local_48 = *(int **)(iVar14 + 4);\n      if (piVar16 != (int *)0x0) goto LAB_000c0c7c;\nLAB_000c1450:\n      local_58 = 0;\n      bVar1 = false;\n    }\n    else {\n      local_48 = *(int **)(iVar14 + 4);\n      piVar16 = *(int **)(iVar14 + 8);\n      if (piVar16 == (int *)0x0) goto LAB_000c1450;\nLAB_000c0c7c:\n      local_58 = *piVar16;\n      bVar1 = (*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700;\n    }\n    puVar3 = PTR_LAB_0015b714;\n    iVar18 = *(int *)(param_1 + 0x2c);\n    iVar23 = *(int *)(param_1 + 0x28);\n    iVar17 = *(int *)(param_1 + 0x38);\n    iVar5 = iVar18 + local_58;\n    iVar9 = iVar5 + 2;\n    iVar20 = iVar17 + -2;\n    *(int *)(param_1 + 0x28) = iVar23 + 1;\n    iVar5 = iVar5 + 1;\n    *(int *)(param_1 + 0x38) = iVar20;\n    *(int *)(param_1 + 0x2c) = iVar9;\n    iVar17 = iVar17 + -1;\n    (*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar20,&local_30\n              );\n    pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    local_60 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar24)(piVar11,iVar20);\n    (*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 2,0);\n    (*pcVar15)(piVar11,0x6f,iVar23,*(undefined4 *)(iVar14 + 0x24),0);\n    uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);\n    (*pcVar15)(piVar11,0x46,0,iVar9,0);\n    (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n    (*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar17,0);\n    if (bVar1) {\n      iVar20 = piVar11[0x1b];\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n      (*pcVar15)(piVar11,5,iVar23,iVar20,0);\n      (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n      local_50 = piVar11[0x1b];\n      if (piVar16 != (int *)0x0) goto LAB_000c0e28;\n      pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n    }\n    else {\n      local_50 = piVar11[0x1b];\n      if (piVar16 == (int *)0x0) {\n        pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);\n        uVar6 = uVar4;\n        if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n    }\nLAB_000c0e5c:\n    (*pcVar15)(piVar11,0x53,iVar9,1,0);\n    (*pcVar15)(piVar11,5,iVar23,local_50,0);\n    (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n    (*pcVar24)(piVar11,iVar17);\n    (*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n  }\n  iVar18 = 0x42;\n  (*pcVar15)(piVar11,0x42,iVar5,0,0);\n  piVar16 = (int *)piVar11[0x1b];\n  if (local_60 < 0) {\n    local_60 = (int)piVar16 + -1;\n  }\n  if (*(char *)(*piVar11 + 0x51) == '\0') {\n    puVar3 = (undefined *)(piVar11[0x1a] + local_60 * 0x14);\n    iVar18 = local_60;\n  }\n  else {\n    puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n  }\n  *(int **)(puVar3 + 8) = piVar16;\nLAB_000c0f44:\n  if (local_2c == *(int *)puVar22) {\n    return;\n  }\n  puVar22 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  iVar14 = *piVar16;\n  if (iVar18 == 0) {\n    if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8();\n      return;\n    }\n  }\n  else {\n    iVar18 = (*(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c))(iVar14);\n    if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8(piVar16,iVar18,iVar5);\n    }\n    if (iVar18 != 0) {\n                    \n                    \n      (*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4))(iVar14,iVar18);\n      return;\n    }\n  }\n  return;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "char cVar10;" (primitive_type "char") (identifier "cVar10") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int *piVar11;" (primitive_type "int") (pointer_declarator "*piVar11" (* "*") (identifier "piVar11")) (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "code *pcVar15;" (type_identifier "code") (pointer_declarator "*pcVar15" (* "*") (identifier "pcVar15")) (; ";")) (declaration "int *piVar16;" (primitive_type "int") (pointer_declarator "*piVar16" (* "*") (identifier "piVar16")) (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "int *piVar19;" (primitive_type "int") (pointer_declarator "*piVar19" (* "*") (identifier "piVar19")) (; ";")) (declaration "int iVar20;" (primitive_type "int") (identifier "iVar20") (; ";")) (declaration "code *pcVar21;" (type_identifier "code") (pointer_declarator "*pcVar21" (* "*") (identifier "pcVar21")) (; ";")) (declaration "undefined *puVar22;" (type_identifier "undefined") (pointer_declarator "*puVar22" (* "*") (identifier "puVar22")) (; ";")) (declaration "int iVar23;" (primitive_type "int") (identifier "iVar23") (; ";")) (declaration "code *pcVar24;" (type_identifier "code") (pointer_declarator "*pcVar24" (* "*") (identifier "pcVar24")) (; ";")) (declaration "int local_60;" (primitive_type "int") (identifier "local_60") (; ";")) (declaration "code *local_5c;" (type_identifier "code") (pointer_declarator "*local_5c" (* "*") (identifier "local_5c")) (; ";")) (declaration "int local_58;" (primitive_type "int") (identifier "local_58") (; ";")) (declaration "int local_50;" (primitive_type "int") (identifier "local_50") (; ";")) (declaration "code *local_4c;" (type_identifier "code") (pointer_declarator "*local_4c" (* "*") (identifier "local_4c")) (; ";")) (declaration "int *local_48;" (primitive_type "int") (pointer_declarator "*local_48" (* "*") (identifier "local_48")) (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar22 = PTR___stack_chk_guard_0015ba2c;" (assignment_expression "puVar22 = PTR___stack_chk_guard_0015ba2c" (identifier "puVar22") (= "=") (identifier "PTR___stack_chk_guard_0015ba2c")) (; ";")) (expression_statement "iVar14 = *(int *)(param_2 + 0x44);" (assignment_expression "iVar14 = *(int *)(param_2 + 0x44)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(param_2 + 0x44)" (* "*") (cast_expression "(int *)(param_2 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x44)" (( "(") (binary_expression "param_2 + 0x44" (identifier "param_2") (+ "+") (number_literal "0x44")) () ")"))))) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0015ba2c" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_0015ba2c" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0015ba2c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0015ba2c")))) (; ";")) (expression_statement "uVar2 = *(uint *)(iVar14 + 0xc) & 0xffff00;" (assignment_expression "uVar2 = *(uint *)(iVar14 + 0xc) & 0xffff00" (identifier "uVar2") (= "=") (binary_expression "*(uint *)(iVar14 + 0xc) & 0xffff00" (pointer_expression "*(uint *)(iVar14 + 0xc)" (* "*") (cast_expression "(uint *)(iVar14 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xc)" (( "(") (binary_expression "iVar14 + 0xc" (identifier "iVar14") (+ "+") (number_literal "0xc")) () ")")))) (& "&") (number_literal "0xffff00"))) (; ";")) (if_statement "if (*(char *)(iVar14 + 0xc) == 'L') {\n    if ((uVar2 == 0x575200) && (*(int *)(iVar14 + 8) != 0)) goto LAB_000c08b4;\n    piVar11 = *(int **)(param_1 + 8);\n    if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n    }\n    puVar3 = PTR_LAB_0015b714;\n    iVar20 = *(int *)(param_1 + 0x28);\n    iVar18 = *(int *)(param_1 + 0x2c);\n    iVar17 = iVar18 + 3;\n    iVar23 = *(int *)(param_1 + 0x38) + -2;\n    *(int *)(param_1 + 0x28) = iVar20 + 2;\n    iVar12 = *(int *)(param_1 + 0x38) + -1;\n    iVar5 = iVar18 + 1;\n    *(int *)(param_1 + 0x2c) = iVar17;\n    *(int *)(param_1 + 0x38) = iVar23;\n    iVar18 = iVar18 + 2;\n    iVar9 = iVar20 + 1;\n    local_30 = 0;\n    (*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar12,&local_30\n              );\n    pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    local_60 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar24)(piVar11,iVar12);\n    (*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 3,0);\n    (*pcVar15)(piVar11,0x6f,iVar20,*(undefined4 *)(iVar14 + 0x24),0);\n    (*pcVar15)(piVar11,0x6f,iVar9,*(undefined4 *)(iVar14 + 0x24),0);\n    if (*(int *)(iVar14 + 0x10) != 0) {\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x10),iVar18);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar18,0);\n    }\n    if (*(int *)(iVar14 + 0x14) != 0) {\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x14),iVar17);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar17,1);\n      if ((*(int *)(iVar14 + 0x14) != 0) && (*(char *)(iVar14 + 0xd) == 'S')) {\n        (*pcVar15)(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17);\n        (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n        (*pcVar15)(piVar11,0x61,iVar18,iVar17,iVar17);\n      }\n    }\n    if ((*(int *)(iVar14 + 0x10) != 0) && (*(char *)(iVar14 + 0xe) == 'U')) {\n      (*pcVar15)(piVar11,0x37,iVar18,piVar11[0x1b] + 3,iVar17);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar17,0);\n    }\n    uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);\n    (*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar23,0);\n    (*pcVar15)(piVar11,0x24,iVar20,iVar23,0);\n    if (0 < piVar11[0x1b]) {\n      *(undefined2 *)(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12) = 1;\n    }\n    (*pcVar15)(piVar11,0x24,iVar9,iVar23,0);\n    iVar12 = piVar11[0x1b];\n    if (0 < iVar12) {\n      *(undefined2 *)(piVar11[0x1a] + iVar12 * 0x14 + -0x12) = 1;\n      iVar12 = piVar11[0x1b];\n    }\n    if (*(char *)(iVar14 + 0xe) == 'U') {\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n      iVar13 = piVar11[0x1b];\n    }\n    else {\n      local_50 = 0;\n      iVar13 = iVar12;\n    }\n    (*pcVar15)(piVar11,5,iVar9,iVar13 + 2,0);\n    iVar13 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7af4);\n    (*pcVar21)(param_1,iVar14,iVar9,0,uVar4,local_30);\n    if (*(char *)(iVar14 + 0xe) == 'W') {\n      (*pcVar15)(piVar11,0xb,0,iVar12,0);\n      iVar12 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar12 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n    }\n    else {\n      iVar9 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar9 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14);\n      }\n      else {\n        puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n      }\n      *(int *)(puVar3 + 8) = iVar9;\n      cVar10 = *(char *)(iVar14 + 0xe);\n      if (cVar10 == 'U') {\n        iVar13 = iVar9 + -1;\n        if (-1 < local_50) {\n          iVar13 = local_50;\n        }\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n      }\n    }\n    if (cVar10 == 'S') {\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n    }\n    if (*(char *)(iVar14 + 0xd) == 'S') {\n      iVar17 = (*pcVar15)(piVar11,0x2f,iVar18,0,1);\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        if (iVar17 < 0) {\n          iVar17 = iVar9 + -1;\n        }\n        goto LAB_000c1d20;\n      }\n    }\n    else {\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        iVar17 = 0;\nLAB_000c1d20:\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n      }\n    }\n    if ((uVar2 - 0x52 < 2) || (uVar2 == 0x55)) {\n      iVar17 = *(int *)(param_1 + 0x38) + -1;\n      *(int *)(param_1 + 0x38) = iVar17;\n      cVar10 = *(char *)(iVar14 + 0xd);\n      if (cVar10 == 'U') {\n        (*pcVar15)(piVar11,0x2f,iVar18,iVar17,1);\n        cVar10 = *(char *)(iVar14 + 0xd);\n      }\n      if (cVar10 == 'S') {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 2,0);\n        (*pcVar15)(piVar11,0xb,0,iVar17,0);\n      }\n      else {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0);\n      }\n      (*pcVar21)(param_1,iVar14,iVar20,1,uVar4,local_30);\n      (*pcVar24)(piVar11,iVar17);\n    }\n    if (*(char *)(iVar14 + 0xe) == 'S') {\n      iVar18 = piVar11[0x1b];\n      if (local_50 < 0) {\n        local_50 = iVar18 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + local_50 * 0x14 + 8) = iVar18;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n      }\n    }\n    (*pcVar15)(piVar11,0xb,0,iVar12,0);\n    (*pcVar24)(piVar11,iVar23);\n    (*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n  }\n  else {\n    if (uVar2 != 0x525700) {\nLAB_000c08b4:\n      iVar18 = iVar14;\n      do {\n        if (((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        iVar18 = *(int *)(iVar18 + 0x18);\n      } while (iVar18 != 0);\n      piVar16 = *(int **)(param_1 + 8);\n      if (piVar16 == (int *)0x0) {\n        piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      }\n      piVar11 = *(int **)(iVar14 + 4);\n      iVar17 = *(int *)(param_1 + 0x2c) + 1;\n      uVar4 = *(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30);\n      iVar20 = (int)*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a);\n      iVar18 = iVar20 + iVar17;\n      iVar5 = iVar20 + 2 + *(int *)(param_1 + 0x2c);\n      if (*(char *)(iVar14 + 0xe) == 'W') {\n        *(int *)(param_1 + 0x2c) = iVar5;\n        piVar19 = (int *)0x0;\n        if (0 < iVar20) goto LAB_000c0980;\n        if (piVar11 != (int *)0x0) {\n          local_50 = *piVar11;\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }\n      else {\n        piVar19 = *(int **)(iVar14 + 8);\n        *(int *)(param_1 + 0x2c) = iVar5;\n        if (iVar20 < 1) {\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }\n        puVar3 = PTR_LAB_0015b714;\n        if (piVar11 == (int *)0x0) {\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }\n        else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }\n        (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);\n        (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n        (*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);\n        (*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n        (*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1);\n        if (iVar5 != 0) {\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }\n      }\nLAB_000c0b50:\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,0xffffffff,0,iVar17,0);\n      if (*(int *)(iVar14 + 0x40) < 1) {\n        (*pcVar15)(piVar16,0x4b,0,iVar18,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }\n      else {\n        (*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);\n      }\n      (*pcVar15)(piVar16,0x79,*(undefined4 *)(iVar14 + 0x24),iVar18 + 1,0);\n      (*pcVar15)(piVar16,0x7a,*(undefined4 *)(iVar14 + 0x24),iVar18,iVar18 + 1);\n      (*(code *)(PTR_LAB_0015b710 + -0x18cc))(param_3);\n      (*pcVar24)(param_1,iVar14,1);\n      (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + 3,0);\n      (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n      iVar18 = 5;\n      iVar5 = *(int *)(iVar14 + 0x24);\n      (*pcVar15)(piVar16,5,iVar5,piVar16[0x1b] + -1,0);\n      goto LAB_000c0f44;\n    }\nLAB_000c0c60:\n    piVar11 = *(int **)(param_1 + 8);\n    if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      piVar16 = *(int **)(iVar14 + 8);\n      local_48 = *(int **)(iVar14 + 4);\n      if (piVar16 != (int *)0x0) goto LAB_000c0c7c;\nLAB_000c1450:\n      local_58 = 0;\n      bVar1 = false;\n    }\n    else {\n      local_48 = *(int **)(iVar14 + 4);\n      piVar16 = *(int **)(iVar14 + 8);\n      if (piVar16 == (int *)0x0) goto LAB_000c1450;\nLAB_000c0c7c:\n      local_58 = *piVar16;\n      bVar1 = (*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700;\n    }\n    puVar3 = PTR_LAB_0015b714;\n    iVar18 = *(int *)(param_1 + 0x2c);\n    iVar23 = *(int *)(param_1 + 0x28);\n    iVar17 = *(int *)(param_1 + 0x38);\n    iVar5 = iVar18 + local_58;\n    iVar9 = iVar5 + 2;\n    iVar20 = iVar17 + -2;\n    *(int *)(param_1 + 0x28) = iVar23 + 1;\n    iVar5 = iVar5 + 1;\n    *(int *)(param_1 + 0x38) = iVar20;\n    *(int *)(param_1 + 0x2c) = iVar9;\n    iVar17 = iVar17 + -1;\n    (*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar20,&local_30\n              );\n    pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    local_60 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar24)(piVar11,iVar20);\n    (*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 2,0);\n    (*pcVar15)(piVar11,0x6f,iVar23,*(undefined4 *)(iVar14 + 0x24),0);\n    uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);\n    (*pcVar15)(piVar11,0x46,0,iVar9,0);\n    (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n    (*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar17,0);\n    if (bVar1) {\n      iVar20 = piVar11[0x1b];\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n      (*pcVar15)(piVar11,5,iVar23,iVar20,0);\n      (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n      local_50 = piVar11[0x1b];\n      if (piVar16 != (int *)0x0) goto LAB_000c0e28;\n      pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n    }\n    else {\n      local_50 = piVar11[0x1b];\n      if (piVar16 == (int *)0x0) {\n        pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);\n        uVar6 = uVar4;\n        if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n    }\nLAB_000c0e5c:\n    (*pcVar15)(piVar11,0x53,iVar9,1,0);\n    (*pcVar15)(piVar11,5,iVar23,local_50,0);\n    (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n    (*pcVar24)(piVar11,iVar17);\n    (*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n  }" (if "if") (parenthesized_expression "(*(char *)(iVar14 + 0xc) == 'L')" (( "(") (binary_expression "*(char *)(iVar14 + 0xc) == 'L'" (pointer_expression "*(char *)(iVar14 + 0xc)" (* "*") (cast_expression "(char *)(iVar14 + 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xc)" (( "(") (binary_expression "iVar14 + 0xc" (identifier "iVar14") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (char_literal "'L'" (' "'") (character "L") (' "'"))) () ")")) (compound_statement "{\n    if ((uVar2 == 0x575200) && (*(int *)(iVar14 + 8) != 0)) goto LAB_000c08b4;\n    piVar11 = *(int **)(param_1 + 8);\n    if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n    }\n    puVar3 = PTR_LAB_0015b714;\n    iVar20 = *(int *)(param_1 + 0x28);\n    iVar18 = *(int *)(param_1 + 0x2c);\n    iVar17 = iVar18 + 3;\n    iVar23 = *(int *)(param_1 + 0x38) + -2;\n    *(int *)(param_1 + 0x28) = iVar20 + 2;\n    iVar12 = *(int *)(param_1 + 0x38) + -1;\n    iVar5 = iVar18 + 1;\n    *(int *)(param_1 + 0x2c) = iVar17;\n    *(int *)(param_1 + 0x38) = iVar23;\n    iVar18 = iVar18 + 2;\n    iVar9 = iVar20 + 1;\n    local_30 = 0;\n    (*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar12,&local_30\n              );\n    pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    local_60 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar24)(piVar11,iVar12);\n    (*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 3,0);\n    (*pcVar15)(piVar11,0x6f,iVar20,*(undefined4 *)(iVar14 + 0x24),0);\n    (*pcVar15)(piVar11,0x6f,iVar9,*(undefined4 *)(iVar14 + 0x24),0);\n    if (*(int *)(iVar14 + 0x10) != 0) {\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x10),iVar18);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar18,0);\n    }\n    if (*(int *)(iVar14 + 0x14) != 0) {\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x14),iVar17);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar17,1);\n      if ((*(int *)(iVar14 + 0x14) != 0) && (*(char *)(iVar14 + 0xd) == 'S')) {\n        (*pcVar15)(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17);\n        (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n        (*pcVar15)(piVar11,0x61,iVar18,iVar17,iVar17);\n      }\n    }\n    if ((*(int *)(iVar14 + 0x10) != 0) && (*(char *)(iVar14 + 0xe) == 'U')) {\n      (*pcVar15)(piVar11,0x37,iVar18,piVar11[0x1b] + 3,iVar17);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar17,0);\n    }\n    uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);\n    (*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar23,0);\n    (*pcVar15)(piVar11,0x24,iVar20,iVar23,0);\n    if (0 < piVar11[0x1b]) {\n      *(undefined2 *)(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12) = 1;\n    }\n    (*pcVar15)(piVar11,0x24,iVar9,iVar23,0);\n    iVar12 = piVar11[0x1b];\n    if (0 < iVar12) {\n      *(undefined2 *)(piVar11[0x1a] + iVar12 * 0x14 + -0x12) = 1;\n      iVar12 = piVar11[0x1b];\n    }\n    if (*(char *)(iVar14 + 0xe) == 'U') {\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n      iVar13 = piVar11[0x1b];\n    }\n    else {\n      local_50 = 0;\n      iVar13 = iVar12;\n    }\n    (*pcVar15)(piVar11,5,iVar9,iVar13 + 2,0);\n    iVar13 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7af4);\n    (*pcVar21)(param_1,iVar14,iVar9,0,uVar4,local_30);\n    if (*(char *)(iVar14 + 0xe) == 'W') {\n      (*pcVar15)(piVar11,0xb,0,iVar12,0);\n      iVar12 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar12 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n    }\n    else {\n      iVar9 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar9 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14);\n      }\n      else {\n        puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n      }\n      *(int *)(puVar3 + 8) = iVar9;\n      cVar10 = *(char *)(iVar14 + 0xe);\n      if (cVar10 == 'U') {\n        iVar13 = iVar9 + -1;\n        if (-1 < local_50) {\n          iVar13 = local_50;\n        }\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n      }\n    }\n    if (cVar10 == 'S') {\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n    }\n    if (*(char *)(iVar14 + 0xd) == 'S') {\n      iVar17 = (*pcVar15)(piVar11,0x2f,iVar18,0,1);\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        if (iVar17 < 0) {\n          iVar17 = iVar9 + -1;\n        }\n        goto LAB_000c1d20;\n      }\n    }\n    else {\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        iVar17 = 0;\nLAB_000c1d20:\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n      }\n    }\n    if ((uVar2 - 0x52 < 2) || (uVar2 == 0x55)) {\n      iVar17 = *(int *)(param_1 + 0x38) + -1;\n      *(int *)(param_1 + 0x38) = iVar17;\n      cVar10 = *(char *)(iVar14 + 0xd);\n      if (cVar10 == 'U') {\n        (*pcVar15)(piVar11,0x2f,iVar18,iVar17,1);\n        cVar10 = *(char *)(iVar14 + 0xd);\n      }\n      if (cVar10 == 'S') {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 2,0);\n        (*pcVar15)(piVar11,0xb,0,iVar17,0);\n      }\n      else {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0);\n      }\n      (*pcVar21)(param_1,iVar14,iVar20,1,uVar4,local_30);\n      (*pcVar24)(piVar11,iVar17);\n    }\n    if (*(char *)(iVar14 + 0xe) == 'S') {\n      iVar18 = piVar11[0x1b];\n      if (local_50 < 0) {\n        local_50 = iVar18 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + local_50 * 0x14 + 8) = iVar18;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n      }\n    }\n    (*pcVar15)(piVar11,0xb,0,iVar12,0);\n    (*pcVar24)(piVar11,iVar23);\n    (*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n  }" ({ "{") (if_statement "if ((uVar2 == 0x575200) && (*(int *)(iVar14 + 8) != 0)) goto LAB_000c08b4;" (if "if") (parenthesized_expression "((uVar2 == 0x575200) && (*(int *)(iVar14 + 8) != 0))" (( "(") (binary_expression "(uVar2 == 0x575200) && (*(int *)(iVar14 + 8) != 0)" (parenthesized_expression "(uVar2 == 0x575200)" (( "(") (binary_expression "uVar2 == 0x575200" (identifier "uVar2") (== "==") (number_literal "0x575200")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar14 + 8) != 0)" (( "(") (binary_expression "*(int *)(iVar14 + 8) != 0" (pointer_expression "*(int *)(iVar14 + 8)" (* "*") (cast_expression "(int *)(iVar14 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 8)" (( "(") (binary_expression "iVar14 + 8" (identifier "iVar14") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_000c08b4;" (goto "goto") (statement_identifier "LAB_000c08b4") (; ";"))) (expression_statement "piVar11 = *(int **)(param_1 + 8);" (assignment_expression "piVar11 = *(int **)(param_1 + 8)" (identifier "piVar11") (= "=") (pointer_expression "*(int **)(param_1 + 8)" (* "*") (cast_expression "(int **)(param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n    }" (if "if") (parenthesized_expression "(piVar11 == (int *)0x0)" (( "(") (binary_expression "piVar11 == (int *)0x0" (identifier "piVar11") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n    }" ({ "{") (expression_statement "piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);" (assignment_expression "piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1)" (identifier "piVar11") (= "=") (cast_expression "(int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x371c))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x371c)" (* "*") (cast_expression "(code *)(PTR_LAB_0015b710 + -0x371c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b710 + -0x371c)" (( "(") (binary_expression "PTR_LAB_0015b710 + -0x371c" (identifier "PTR_LAB_0015b710") (+ "+") (number_literal "-0x371c")) () ")")))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))))) (; ";")) (} "}"))) (expression_statement "puVar3 = PTR_LAB_0015b714;" (assignment_expression "puVar3 = PTR_LAB_0015b714" (identifier "puVar3") (= "=") (identifier "PTR_LAB_0015b714")) (; ";")) (expression_statement "iVar20 = *(int *)(param_1 + 0x28);" (assignment_expression "iVar20 = *(int *)(param_1 + 0x28)" (identifier "iVar20") (= "=") (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "iVar18 = *(int *)(param_1 + 0x2c);" (assignment_expression "iVar18 = *(int *)(param_1 + 0x2c)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(param_1 + 0x2c)" (* "*") (cast_expression "(int *)(param_1 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "iVar17 = iVar18 + 3;" (assignment_expression "iVar17 = iVar18 + 3" (identifier "iVar17") (= "=") (binary_expression "iVar18 + 3" (identifier "iVar18") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "iVar23 = *(int *)(param_1 + 0x38) + -2;" (assignment_expression "iVar23 = *(int *)(param_1 + 0x38) + -2" (identifier "iVar23") (= "=") (binary_expression "*(int *)(param_1 + 0x38) + -2" (pointer_expression "*(int *)(param_1 + 0x38)" (* "*") (cast_expression "(int *)(param_1 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (number_literal "-2"))) (; ";")) (expression_statement "*(int *)(param_1 + 0x28) = iVar20 + 2;" (assignment_expression "*(int *)(param_1 + 0x28) = iVar20 + 2" (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (binary_expression "iVar20 + 2" (identifier "iVar20") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "iVar12 = *(int *)(param_1 + 0x38) + -1;" (assignment_expression "iVar12 = *(int *)(param_1 + 0x38) + -1" (identifier "iVar12") (= "=") (binary_expression "*(int *)(param_1 + 0x38) + -1" (pointer_expression "*(int *)(param_1 + 0x38)" (* "*") (cast_expression "(int *)(param_1 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "iVar5 = iVar18 + 1;" (assignment_expression "iVar5 = iVar18 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar18 + 1" (identifier "iVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(param_1 + 0x2c) = iVar17;" (assignment_expression "*(int *)(param_1 + 0x2c) = iVar17" (pointer_expression "*(int *)(param_1 + 0x2c)" (* "*") (cast_expression "(int *)(param_1 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (identifier "iVar17")) (; ";")) (expression_statement "*(int *)(param_1 + 0x38) = iVar23;" (assignment_expression "*(int *)(param_1 + 0x38) = iVar23" (pointer_expression "*(int *)(param_1 + 0x38)" (* "*") (cast_expression "(int *)(param_1 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (identifier "iVar23")) (; ";")) (expression_statement "iVar18 = iVar18 + 2;" (assignment_expression "iVar18 = iVar18 + 2" (identifier "iVar18") (= "=") (binary_expression "iVar18 + 2" (identifier "iVar18") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "iVar9 = iVar20 + 1;" (assignment_expression "iVar9 = iVar20 + 1" (identifier "iVar9") (= "=") (binary_expression "iVar20 + 1" (identifier "iVar20") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (expression_statement "(*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar12,&local_30\n              );" (call_expression "(*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar12,&local_30\n              )" (parenthesized_expression "(*(code *)(puVar3 + -0x7e94))" (( "(") (pointer_expression "*(code *)(puVar3 + -0x7e94)" (* "*") (cast_expression "(code *)(puVar3 + -0x7e94)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -0x7e94)" (( "(") (binary_expression "puVar3 + -0x7e94" (identifier "puVar3") (+ "+") (number_literal "-0x7e94")) () ")")))) () ")")) (argument_list "(param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar12,&local_30\n              )" (( "(") (identifier "param_1") (, ",") (binary_expression "param_2 + 0x20" (identifier "param_2") (+ "+") (number_literal "0x20")) (, ",") (pointer_expression "*(undefined4 *)(param_2 + 0x44)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x44)" (( "(") (binary_expression "param_2 + 0x44" (identifier "param_2") (+ "+") (number_literal "0x44")) () ")")))) (, ",") (identifier "param_3") (, ",") (identifier "iVar5") (, ",") (identifier "iVar12") (, ",") (pointer_expression "&local_30" (& "&") (identifier "local_30")) () ")"))) (; ";")) (expression_statement "pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);" (assignment_expression "pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890)" (identifier "pcVar15") (= "=") (cast_expression "(code *)(PTR_LAB_0015b710 + -0x3890)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b710 + -0x3890)" (( "(") (binary_expression "PTR_LAB_0015b710 + -0x3890" (identifier "PTR_LAB_0015b710") (+ "+") (number_literal "-0x3890")) () ")")))) (; ";")) (expression_statement "local_60 = (*pcVar15)(piVar11,0xb,0,0,0);" (assignment_expression "local_60 = (*pcVar15)(piVar11,0xb,0,0,0)" (identifier "local_60") (= "=") (call_expression "(*pcVar15)(piVar11,0xb,0,0,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0xb,0,0,0)" (( "(") (identifier "piVar11") (, ",") (number_literal "0xb") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);" (assignment_expression "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14)" (identifier "pcVar24") (= "=") (cast_expression "(code *)(PTR_LAB_0015b710 + -0x3c14)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b710 + -0x3c14)" (( "(") (binary_expression "PTR_LAB_0015b710 + -0x3c14" (identifier "PTR_LAB_0015b710") (+ "+") (number_literal "-0x3c14")) () ")")))) (; ";")) (expression_statement "(*pcVar24)(piVar11,iVar12);" (call_expression "(*pcVar24)(piVar11,iVar12)" (parenthesized_expression "(*pcVar24)" (( "(") (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) () ")")) (argument_list "(piVar11,iVar12)" (( "(") (identifier "piVar11") (, ",") (identifier "iVar12") () ")"))) (; ";")) (expression_statement "(*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 3,0);" (call_expression "(*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 3,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0x11,0,piVar11[0x1b] + 3,0)" (( "(") (identifier "piVar11") (, ",") (number_literal "0x11") (, ",") (number_literal "0") (, ",") (binary_expression "piVar11[0x1b] + 3" (subscript_expression "piVar11[0x1b]" (identifier "piVar11") ([ "[") (number_literal "0x1b") (] "]")) (+ "+") (number_literal "3")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*pcVar15)(piVar11,0x6f,iVar20,*(undefined4 *)(iVar14 + 0x24),0);" (call_expression "(*pcVar15)(piVar11,0x6f,iVar20,*(undefined4 *)(iVar14 + 0x24),0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0x6f,iVar20,*(undefined4 *)(iVar14 + 0x24),0)" (( "(") (identifier "piVar11") (, ",") (number_literal "0x6f") (, ",") (identifier "iVar20") (, ",") (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar14 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x24)" (( "(") (binary_expression "iVar14 + 0x24" (identifier "iVar14") (+ "+") (number_literal "0x24")) () ")")))) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*pcVar15)(piVar11,0x6f,iVar9,*(undefined4 *)(iVar14 + 0x24),0);" (call_expression "(*pcVar15)(piVar11,0x6f,iVar9,*(undefined4 *)(iVar14 + 0x24),0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0x6f,iVar9,*(undefined4 *)(iVar14 + 0x24),0)" (( "(") (identifier "piVar11") (, ",") (number_literal "0x6f") (, ",") (identifier "iVar9") (, ",") (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar14 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x24)" (( "(") (binary_expression "iVar14 + 0x24" (identifier "iVar14") (+ "+") (number_literal "0x24")) () ")")))) (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (*(int *)(iVar14 + 0x10) != 0) {\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x10),iVar18);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar18,0);\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar14 + 0x10) != 0)" (( "(") (binary_expression "*(int *)(iVar14 + 0x10) != 0" (pointer_expression "*(int *)(iVar14 + 0x10)" (* "*") (cast_expression "(int *)(iVar14 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x10)" (( "(") (binary_expression "iVar14 + 0x10" (identifier "iVar14") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x10),iVar18);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar18,0);\n    }" ({ "{") (expression_statement "FUN_000c02d8(param_1,*(int *)(iVar14 + 0x10),iVar18);" (call_expression "FUN_000c02d8(param_1,*(int *)(iVar14 + 0x10),iVar18)" (identifier "FUN_000c02d8") (argument_list "(param_1,*(int *)(iVar14 + 0x10),iVar18)" (( "(") (identifier "param_1") (, ",") (pointer_expression "*(int *)(iVar14 + 0x10)" (* "*") (cast_expression "(int *)(iVar14 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x10)" (( "(") (binary_expression "iVar14 + 0x10" (identifier "iVar14") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (identifier "iVar18") () ")"))) (; ";")) (expression_statement "(*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar18,0);" (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar18,0)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x2920))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x2920)" (* "*") (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2920)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b710 + -0x2920)" (( "(") (binary_expression "PTR_LAB_0015b710 + -0x2920" (identifier "PTR_LAB_0015b710") (+ "+") (number_literal "-0x2920")) () ")")))) () ")")) (argument_list "(param_1,iVar18,0)" (( "(") (identifier "param_1") (, ",") (identifier "iVar18") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar14 + 0x14) != 0) {\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x14),iVar17);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar17,1);\n      if ((*(int *)(iVar14 + 0x14) != 0) && (*(char *)(iVar14 + 0xd) == 'S')) {\n        (*pcVar15)(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17);\n        (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n        (*pcVar15)(piVar11,0x61,iVar18,iVar17,iVar17);\n      }\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar14 + 0x14) != 0)" (( "(") (binary_expression "*(int *)(iVar14 + 0x14) != 0" (pointer_expression "*(int *)(iVar14 + 0x14)" (* "*") (cast_expression "(int *)(iVar14 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x14)" (( "(") (binary_expression "iVar14 + 0x14" (identifier "iVar14") (+ "+") (number_literal "0x14")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x14),iVar17);\n      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar17,1);\n      if ((*(int *)(iVar14 + 0x14) != 0) && (*(char *)(iVar14 + 0xd) == 'S')) {\n        (*pcVar15)(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17);\n        (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n        (*pcVar15)(piVar11,0x61,iVar18,iVar17,iVar17);\n      }\n    }" ({ "{") (expression_statement "FUN_000c02d8(param_1,*(int *)(iVar14 + 0x14),iVar17);" (call_expression "FUN_000c02d8(param_1,*(int *)(iVar14 + 0x14),iVar17)" (identifier "FUN_000c02d8") (argument_list "(param_1,*(int *)(iVar14 + 0x14),iVar17)" (( "(") (identifier "param_1") (, ",") (pointer_expression "*(int *)(iVar14 + 0x14)" (* "*") (cast_expression "(int *)(iVar14 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x14)" (( "(") (binary_expression "iVar14 + 0x14" (identifier "iVar14") (+ "+") (number_literal "0x14")) () ")")))) (, ",") (identifier "iVar17") () ")"))) (; ";")) (expression_statement "(*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar17,1);" (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar17,1)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x2920))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x2920)" (* "*") (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2920)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b710 + -0x2920)" (( "(") (binary_expression "PTR_LAB_0015b710 + -0x2920" (identifier "PTR_LAB_0015b710") (+ "+") (number_literal "-0x2920")) () ")")))) () ")")) (argument_list "(param_1,iVar17,1)" (( "(") (identifier "param_1") (, ",") (identifier "iVar17") (, ",") (number_literal "1") () ")"))) (; ";")) (if_statement "if ((*(int *)(iVar14 + 0x14) != 0) && (*(char *)(iVar14 + 0xd) == 'S')) {\n        (*pcVar15)(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17);\n        (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n        (*pcVar15)(piVar11,0x61,iVar18,iVar17,iVar17);\n      }" (if "if") (parenthesized_expression "((*(int *)(iVar14 + 0x14) != 0) && (*(char *)(iVar14 + 0xd) == 'S'))" (( "(") (binary_expression "(*(int *)(iVar14 + 0x14) != 0) && (*(char *)(iVar14 + 0xd) == 'S')" (parenthesized_expression "(*(int *)(iVar14 + 0x14) != 0)" (( "(") (binary_expression "*(int *)(iVar14 + 0x14) != 0" (pointer_expression "*(int *)(iVar14 + 0x14)" (* "*") (cast_expression "(int *)(iVar14 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x14)" (( "(") (binary_expression "iVar14 + 0x14" (identifier "iVar14") (+ "+") (number_literal "0x14")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar14 + 0xd) == 'S')" (( "(") (binary_expression "*(char *)(iVar14 + 0xd) == 'S'" (pointer_expression "*(char *)(iVar14 + 0xd)" (* "*") (cast_expression "(char *)(iVar14 + 0xd)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xd)" (( "(") (binary_expression "iVar14 + 0xd" (identifier "iVar14") (+ "+") (number_literal "0xd")) () ")")))) (== "==") (char_literal "'S'" (' "'") (character "S") (' "'"))) () ")"))) () ")")) (compound_statement "{\n        (*pcVar15)(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17);\n        (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n        (*pcVar15)(piVar11,0x61,iVar18,iVar17,iVar17);\n      }" ({ "{") (expression_statement "(*pcVar15)(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17);" (call_expression "(*pcVar15)(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17)" (( "(") (identifier "piVar11") (, ",") (number_literal "0x39") (, ",") (identifier "iVar18") (, ",") (binary_expression "piVar11[0x1b] + 2" (subscript_expression "piVar11[0x1b]" (identifier "piVar11") ([ "[") (number_literal "0x1b") (] "]")) (+ "+") (number_literal "2")) (, ",") (identifier "iVar17") () ")"))) (; ";")) (expression_statement "(*pcVar15)(piVar11,0x4e,local_30,iVar18,0);" (call_expression "(*pcVar15)(piVar11,0x4e,local_30,iVar18,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0x4e,local_30,iVar18,0)" (( "(") (identifier "piVar11") (, ",") (number_literal "0x4e") (, ",") (identifier "local_30") (, ",") (identifier "iVar18") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*pcVar15)(piVar11,0x61,iVar18,iVar17,iVar17);" (call_expression "(*pcVar15)(piVar11,0x61,iVar18,iVar17,iVar17)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0x61,iVar18,iVar17,iVar17)" (( "(") (identifier "piVar11") (, ",") (number_literal "0x61") (, ",") (identifier "iVar18") (, ",") (identifier "iVar17") (, ",") (identifier "iVar17") () ")"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if ((*(int *)(iVar14 + 0x10) != 0) && (*(char *)(iVar14 + 0xe) == 'U')) {\n      (*pcVar15)(piVar11,0x37,iVar18,piVar11[0x1b] + 3,iVar17);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar17,0);\n    }" (if "if") (parenthesized_expression "((*(int *)(iVar14 + 0x10) != 0) && (*(char *)(iVar14 + 0xe) == 'U'))" (( "(") (binary_expression "(*(int *)(iVar14 + 0x10) != 0) && (*(char *)(iVar14 + 0xe) == 'U')" (parenthesized_expression "(*(int *)(iVar14 + 0x10) != 0)" (( "(") (binary_expression "*(int *)(iVar14 + 0x10) != 0" (pointer_expression "*(int *)(iVar14 + 0x10)" (* "*") (cast_expression "(int *)(iVar14 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x10)" (( "(") (binary_expression "iVar14 + 0x10" (identifier "iVar14") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar14 + 0xe) == 'U')" (( "(") (binary_expression "*(char *)(iVar14 + 0xe) == 'U'" (pointer_expression "*(char *)(iVar14 + 0xe)" (* "*") (cast_expression "(char *)(iVar14 + 0xe)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xe)" (( "(") (binary_expression "iVar14 + 0xe" (identifier "iVar14") (+ "+") (number_literal "0xe")) () ")")))) (== "==") (char_literal "'U'" (' "'") (character "U") (' "'"))) () ")"))) () ")")) (compound_statement "{\n      (*pcVar15)(piVar11,0x37,iVar18,piVar11[0x1b] + 3,iVar17);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);\n      (*pcVar15)(piVar11,0x4e,local_30,iVar17,0);\n    }" ({ "{") (expression_statement "(*pcVar15)(piVar11,0x37,iVar18,piVar11[0x1b] + 3,iVar17);" (call_expression "(*pcVar15)(piVar11,0x37,iVar18,piVar11[0x1b] + 3,iVar17)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0x37,iVar18,piVar11[0x1b] + 3,iVar17)" (( "(") (identifier "piVar11") (, ",") (number_literal "0x37") (, ",") (identifier "iVar18") (, ",") (binary_expression "piVar11[0x1b] + 3" (subscript_expression "piVar11[0x1b]" (identifier "piVar11") ([ "[") (number_literal "0x1b") (] "]")) (+ "+") (number_literal "3")) (, ",") (identifier "iVar17") () ")"))) (; ";")) (expression_statement "(*pcVar15)(piVar11,0x4e,local_30,iVar18,0);" (call_expression "(*pcVar15)(piVar11,0x4e,local_30,iVar18,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0x4e,local_30,iVar18,0)" (( "(") (identifier "piVar11") (, ",") (number_literal "0x4e") (, ",") (identifier "local_30") (, ",") (identifier "iVar18") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*pcVar15)(piVar11,0x4e,local_30,iVar17,0);" (call_expression "(*pcVar15)(piVar11,0x4e,local_30,iVar17,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0x4e,local_30,iVar17,0)" (( "(") (identifier "piVar11") (, ",") (number_literal "0x4e") (, ",") (identifier "local_30") (, ",") (identifier "iVar17") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);" (assignment_expression "uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14)" (identifier "uVar4") (= "=") (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x2e00))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x2e00)" (* "*") (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2e00)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b710 + -0x2e00)" (( "(") (binary_expression "PTR_LAB_0015b710 + -0x2e00" (identifier "PTR_LAB_0015b710") (+ "+") (number_literal "-0x2e00")) () ")")))) () ")")) (argument_list "(param_1,iVar14)" (( "(") (identifier "param_1") (, ",") (identifier "iVar14") () ")")))) (; ";")) (expression_statement "(*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar23,0);" (call_expression "(*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar23,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar23,0)" (( "(") (identifier "piVar11") (, ",") (number_literal "0x24") (, ",") (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar14 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x24)" (( "(") (binary_expression "iVar14 + 0x24" (identifier "iVar14") (+ "+") (number_literal "0x24")) () ")")))) (, ",") (identifier "iVar23") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*pcVar15)(piVar11,0x24,iVar20,iVar23,0);" (call_expression "(*pcVar15)(piVar11,0x24,iVar20,iVar23,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0x24,iVar20,iVar23,0)" (( "(") (identifier "piVar11") (, ",") (number_literal "0x24") (, ",") (identifier "iVar20") (, ",") (identifier "iVar23") (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (0 < piVar11[0x1b]) {\n      *(undefined2 *)(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12) = 1;\n    }" (if "if") (parenthesized_expression "(0 < piVar11[0x1b])" (( "(") (binary_expression "0 < piVar11[0x1b]" (number_literal "0") (< "<") (subscript_expression "piVar11[0x1b]" (identifier "piVar11") ([ "[") (number_literal "0x1b") (] "]"))) () ")")) (compound_statement "{\n      *(undefined2 *)(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12) = 1;\n    }" ({ "{") (expression_statement "*(undefined2 *)(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12) = 1;" (assignment_expression "*(undefined2 *)(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12) = 1" (pointer_expression "*(undefined2 *)(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12)" (* "*") (cast_expression "(undefined2 *)(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12)" (( "(") (binary_expression "piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12" (binary_expression "piVar11[0x1a] + piVar11[0x1b] * 0x14" (subscript_expression "piVar11[0x1a]" (identifier "piVar11") ([ "[") (number_literal "0x1a") (] "]")) (+ "+") (binary_expression "piVar11[0x1b] * 0x14" (subscript_expression "piVar11[0x1b]" (identifier "piVar11") ([ "[") (number_literal "0x1b") (] "]")) (* "*") (number_literal "0x14"))) (+ "+") (number_literal "-0x12")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "(*pcVar15)(piVar11,0x24,iVar9,iVar23,0);" (call_expression "(*pcVar15)(piVar11,0x24,iVar9,iVar23,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0x24,iVar9,iVar23,0)" (( "(") (identifier "piVar11") (, ",") (number_literal "0x24") (, ",") (identifier "iVar9") (, ",") (identifier "iVar23") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar12 = piVar11[0x1b];" (assignment_expression "iVar12 = piVar11[0x1b]" (identifier "iVar12") (= "=") (subscript_expression "piVar11[0x1b]" (identifier "piVar11") ([ "[") (number_literal "0x1b") (] "]"))) (; ";")) (if_statement "if (0 < iVar12) {\n      *(undefined2 *)(piVar11[0x1a] + iVar12 * 0x14 + -0x12) = 1;\n      iVar12 = piVar11[0x1b];\n    }" (if "if") (parenthesized_expression "(0 < iVar12)" (( "(") (binary_expression "0 < iVar12" (number_literal "0") (< "<") (identifier "iVar12")) () ")")) (compound_statement "{\n      *(undefined2 *)(piVar11[0x1a] + iVar12 * 0x14 + -0x12) = 1;\n      iVar12 = piVar11[0x1b];\n    }" ({ "{") (expression_statement "*(undefined2 *)(piVar11[0x1a] + iVar12 * 0x14 + -0x12) = 1;" (assignment_expression "*(undefined2 *)(piVar11[0x1a] + iVar12 * 0x14 + -0x12) = 1" (pointer_expression "*(undefined2 *)(piVar11[0x1a] + iVar12 * 0x14 + -0x12)" (* "*") (cast_expression "(undefined2 *)(piVar11[0x1a] + iVar12 * 0x14 + -0x12)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar11[0x1a] + iVar12 * 0x14 + -0x12)" (( "(") (binary_expression "piVar11[0x1a] + iVar12 * 0x14 + -0x12" (binary_expression "piVar11[0x1a] + iVar12 * 0x14" (subscript_expression "piVar11[0x1a]" (identifier "piVar11") ([ "[") (number_literal "0x1a") (] "]")) (+ "+") (binary_expression "iVar12 * 0x14" (identifier "iVar12") (* "*") (number_literal "0x14"))) (+ "+") (number_literal "-0x12")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar12 = piVar11[0x1b];" (assignment_expression "iVar12 = piVar11[0x1b]" (identifier "iVar12") (= "=") (subscript_expression "piVar11[0x1b]" (identifier "piVar11") ([ "[") (number_literal "0x1b") (] "]"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(iVar14 + 0xe) == 'U') {\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n      iVar13 = piVar11[0x1b];\n    }\n    else {\n      local_50 = 0;\n      iVar13 = iVar12;\n    }" (if "if") (parenthesized_expression "(*(char *)(iVar14 + 0xe) == 'U')" (( "(") (binary_expression "*(char *)(iVar14 + 0xe) == 'U'" (pointer_expression "*(char *)(iVar14 + 0xe)" (* "*") (cast_expression "(char *)(iVar14 + 0xe)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xe)" (( "(") (binary_expression "iVar14 + 0xe" (identifier "iVar14") (+ "+") (number_literal "0xe")) () ")")))) (== "==") (char_literal "'U'" (' "'") (character "U") (' "'"))) () ")")) (compound_statement "{\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n      iVar13 = piVar11[0x1b];\n    }" ({ "{") (expression_statement "local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);" (assignment_expression "local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1)" (identifier "local_50") (= "=") (call_expression "(*pcVar15)(piVar11,0x2f,iVar17,0,1)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0x2f,iVar17,0,1)" (( "(") (identifier "piVar11") (, ",") (number_literal "0x2f") (, ",") (identifier "iVar17") (, ",") (number_literal "0") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "iVar13 = piVar11[0x1b];" (assignment_expression "iVar13 = piVar11[0x1b]" (identifier "iVar13") (= "=") (subscript_expression "piVar11[0x1b]" (identifier "piVar11") ([ "[") (number_literal "0x1b") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n      local_50 = 0;\n      iVar13 = iVar12;\n    }" (else "else") (compound_statement "{\n      local_50 = 0;\n      iVar13 = iVar12;\n    }" ({ "{") (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar13 = iVar12;" (assignment_expression "iVar13 = iVar12" (identifier "iVar13") (= "=") (identifier "iVar12")) (; ";")) (} "}")))) (expression_statement "(*pcVar15)(piVar11,5,iVar9,iVar13 + 2,0);" (call_expression "(*pcVar15)(piVar11,5,iVar9,iVar13 + 2,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,5,iVar9,iVar13 + 2,0)" (( "(") (identifier "piVar11") (, ",") (number_literal "5") (, ",") (identifier "iVar9") (, ",") (binary_expression "iVar13 + 2" (identifier "iVar13") (+ "+") (number_literal "2")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar13 = (*pcVar15)(piVar11,0xb,0,0,0);" (assignment_expression "iVar13 = (*pcVar15)(piVar11,0xb,0,0,0)" (identifier "iVar13") (= "=") (call_expression "(*pcVar15)(piVar11,0xb,0,0,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0xb,0,0,0)" (( "(") (identifier "piVar11") (, ",") (number_literal "0xb") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7af4);" (assignment_expression "pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7af4)" (identifier "pcVar21") (= "=") (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7af4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b714 + -0x7af4)" (( "(") (binary_expression "PTR_LAB_0015b714 + -0x7af4" (identifier "PTR_LAB_0015b714") (+ "+") (number_literal "-0x7af4")) () ")")))) (; ";")) (expression_statement "(*pcVar21)(param_1,iVar14,iVar9,0,uVar4,local_30);" (call_expression "(*pcVar21)(param_1,iVar14,iVar9,0,uVar4,local_30)" (parenthesized_expression "(*pcVar21)" (( "(") (pointer_expression "*pcVar21" (* "*") (identifier "pcVar21")) () ")")) (argument_list "(param_1,iVar14,iVar9,0,uVar4,local_30)" (( "(") (identifier "param_1") (, ",") (identifier "iVar14") (, ",") (identifier "iVar9") (, ",") (number_literal "0") (, ",") (identifier "uVar4") (, ",") (identifier "local_30") () ")"))) (; ";")) (if_statement "if (*(char *)(iVar14 + 0xe) == 'W') {\n      (*pcVar15)(piVar11,0xb,0,iVar12,0);\n      iVar12 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar12 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n    }\n    else {\n      iVar9 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar9 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14);\n      }\n      else {\n        puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n      }\n      *(int *)(puVar3 + 8) = iVar9;\n      cVar10 = *(char *)(iVar14 + 0xe);\n      if (cVar10 == 'U') {\n        iVar13 = iVar9 + -1;\n        if (-1 < local_50) {\n          iVar13 = local_50;\n        }\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n      }\n    }" (if "if") (parenthesized_expression "(*(char *)(iVar14 + 0xe) == 'W')" (( "(") (binary_expression "*(char *)(iVar14 + 0xe) == 'W'" (pointer_expression "*(char *)(iVar14 + 0xe)" (* "*") (cast_expression "(char *)(iVar14 + 0xe)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xe)" (( "(") (binary_expression "iVar14 + 0xe" (identifier "iVar14") (+ "+") (number_literal "0xe")) () ")")))) (== "==") (char_literal "'W'" (' "'") (character "W") (' "'"))) () ")")) (compound_statement "{\n      (*pcVar15)(piVar11,0xb,0,iVar12,0);\n      iVar12 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar12 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n    }" ({ "{") (expression_statement "(*pcVar15)(piVar11,0xb,0,iVar12,0);" (call_expression "(*pcVar15)(piVar11,0xb,0,iVar12,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0xb,0,iVar12,0)" (( "(") (identifier "piVar11") (, ",") (number_literal "0xb") (, ",") (number_literal "0") (, ",") (identifier "iVar12") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar12 = piVar11[0x1b];" (assignment_expression "iVar12 = piVar11[0x1b]" (identifier "iVar12") (= "=") (subscript_expression "piVar11[0x1b]" (identifier "piVar11") ([ "[") (number_literal "0x1b") (] "]"))) (; ";")) (if_statement "if (iVar13 < 0) {\n        iVar13 = iVar12 + -1;\n      }" (if "if") (parenthesized_expression "(iVar13 < 0)" (( "(") (binary_expression "iVar13 < 0" (identifier "iVar13") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        iVar13 = iVar12 + -1;\n      }" ({ "{") (expression_statement "iVar13 = iVar12 + -1;" (assignment_expression "iVar13 = iVar12 + -1" (identifier "iVar13") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }" (if "if") (parenthesized_expression "(*(char *)(*piVar11 + 0x51) == '\0')" (( "(") (binary_expression "*(char *)(*piVar11 + 0x51) == '\0'" (pointer_expression "*(char *)(*piVar11 + 0x51)" (* "*") (cast_expression "(char *)(*piVar11 + 0x51)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar11 + 0x51)" (( "(") (binary_expression "*piVar11 + 0x51" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (+ "+") (number_literal "0x51")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }" ({ "{") (expression_statement "*(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar12;" (assignment_expression "*(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar12" (pointer_expression "*(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8)" (* "*") (cast_expression "(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar11[0x1a] + iVar13 * 0x14 + 8)" (( "(") (binary_expression "piVar11[0x1a] + iVar13 * 0x14 + 8" (binary_expression "piVar11[0x1a] + iVar13 * 0x14" (subscript_expression "piVar11[0x1a]" (identifier "piVar11") ([ "[") (number_literal "0x1a") (] "]")) (+ "+") (binary_expression "iVar13 * 0x14" (identifier "iVar13") (* "*") (number_literal "0x14"))) (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar12")) (; ";")) (expression_statement "cVar10 = *(char *)(iVar14 + 0xe);" (assignment_expression "cVar10 = *(char *)(iVar14 + 0xe)" (identifier "cVar10") (= "=") (pointer_expression "*(char *)(iVar14 + 0xe)" (* "*") (cast_expression "(char *)(iVar14 + 0xe)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xe)" (( "(") (binary_expression "iVar14 + 0xe" (identifier "iVar14") (+ "+") (number_literal "0xe")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }" (else "else") (compound_statement "{\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12;\n        cVar10 = *(char *)(iVar14 + 0xe);\n      }" ({ "{") (expression_statement "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12;" (assignment_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12" (pointer_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c)" (* "*") (cast_expression "(int *)(PTR_DAT_0015b5d8 + -0x450c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x450c)" (( "(") (binary_expression "PTR_DAT_0015b5d8 + -0x450c" (identifier "PTR_DAT_0015b5d8") (+ "+") (number_literal "-0x450c")) () ")")))) (= "=") (identifier "iVar12")) (; ";")) (expression_statement "cVar10 = *(char *)(iVar14 + 0xe);" (assignment_expression "cVar10 = *(char *)(iVar14 + 0xe)" (identifier "cVar10") (= "=") (pointer_expression "*(char *)(iVar14 + 0xe)" (* "*") (cast_expression "(char *)(iVar14 + 0xe)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xe)" (( "(") (binary_expression "iVar14 + 0xe" (identifier "iVar14") (+ "+") (number_literal "0xe")) () ")"))))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      iVar9 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar9 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14);\n      }\n      else {\n        puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n      }\n      *(int *)(puVar3 + 8) = iVar9;\n      cVar10 = *(char *)(iVar14 + 0xe);\n      if (cVar10 == 'U') {\n        iVar13 = iVar9 + -1;\n        if (-1 < local_50) {\n          iVar13 = local_50;\n        }\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n      }\n    }" (else "else") (compound_statement "{\n      iVar9 = piVar11[0x1b];\n      if (iVar13 < 0) {\n        iVar13 = iVar9 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14);\n      }\n      else {\n        puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n      }\n      *(int *)(puVar3 + 8) = iVar9;\n      cVar10 = *(char *)(iVar14 + 0xe);\n      if (cVar10 == 'U') {\n        iVar13 = iVar9 + -1;\n        if (-1 < local_50) {\n          iVar13 = local_50;\n        }\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n      }\n    }" ({ "{") (expression_statement "iVar9 = piVar11[0x1b];" (assignment_expression "iVar9 = piVar11[0x1b]" (identifier "iVar9") (= "=") (subscript_expression "piVar11[0x1b]" (identifier "piVar11") ([ "[") (number_literal "0x1b") (] "]"))) (; ";")) (if_statement "if (iVar13 < 0) {\n        iVar13 = iVar9 + -1;\n      }" (if "if") (parenthesized_expression "(iVar13 < 0)" (( "(") (binary_expression "iVar13 < 0" (identifier "iVar13") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        iVar13 = iVar9 + -1;\n      }" ({ "{") (expression_statement "iVar13 = iVar9 + -1;" (assignment_expression "iVar13 = iVar9 + -1" (identifier "iVar13") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(*piVar11 + 0x51) == '\0') {\n        puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14);\n      }\n      else {\n        puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n      }" (if "if") (parenthesized_expression "(*(char *)(*piVar11 + 0x51) == '\0')" (( "(") (binary_expression "*(char *)(*piVar11 + 0x51) == '\0'" (pointer_expression "*(char *)(*piVar11 + 0x51)" (* "*") (cast_expression "(char *)(*piVar11 + 0x51)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar11 + 0x51)" (( "(") (binary_expression "*piVar11 + 0x51" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (+ "+") (number_literal "0x51")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14);\n      }" ({ "{") (expression_statement "puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14);" (assignment_expression "puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14)" (identifier "puVar3") (= "=") (cast_expression "(undefined *)(piVar11[0x1a] + iVar13 * 0x14)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar11[0x1a] + iVar13 * 0x14)" (( "(") (binary_expression "piVar11[0x1a] + iVar13 * 0x14" (subscript_expression "piVar11[0x1a]" (identifier "piVar11") ([ "[") (number_literal "0x1a") (] "]")) (+ "+") (binary_expression "iVar13 * 0x14" (identifier "iVar13") (* "*") (number_literal "0x14"))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n        puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n      }" (else "else") (compound_statement "{\n        puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n      }" ({ "{") (expression_statement "puVar3 = PTR_DAT_0015b5d8 + -0x4514;" (assignment_expression "puVar3 = PTR_DAT_0015b5d8 + -0x4514" (identifier "puVar3") (= "=") (binary_expression "PTR_DAT_0015b5d8 + -0x4514" (identifier "PTR_DAT_0015b5d8") (+ "+") (number_literal "-0x4514"))) (; ";")) (} "}")))) (expression_statement "*(int *)(puVar3 + 8) = iVar9;" (assignment_expression "*(int *)(puVar3 + 8) = iVar9" (pointer_expression "*(int *)(puVar3 + 8)" (* "*") (cast_expression "(int *)(puVar3 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 8)" (( "(") (binary_expression "puVar3 + 8" (identifier "puVar3") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "cVar10 = *(char *)(iVar14 + 0xe);" (assignment_expression "cVar10 = *(char *)(iVar14 + 0xe)" (identifier "cVar10") (= "=") (pointer_expression "*(char *)(iVar14 + 0xe)" (* "*") (cast_expression "(char *)(iVar14 + 0xe)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xe)" (( "(") (binary_expression "iVar14 + 0xe" (identifier "iVar14") (+ "+") (number_literal "0xe")) () ")"))))) (; ";")) (if_statement "if (cVar10 == 'U') {\n        iVar13 = iVar9 + -1;\n        if (-1 < local_50) {\n          iVar13 = local_50;\n        }\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n      }" (if "if") (parenthesized_expression "(cVar10 == 'U')" (( "(") (binary_expression "cVar10 == 'U'" (identifier "cVar10") (== "==") (char_literal "'U'" (' "'") (character "U") (' "'"))) () ")")) (compound_statement "{\n        iVar13 = iVar9 + -1;\n        if (-1 < local_50) {\n          iVar13 = local_50;\n        }\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n      }" ({ "{") (expression_statement "iVar13 = iVar9 + -1;" (assignment_expression "iVar13 = iVar9 + -1" (identifier "iVar13") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (-1 < local_50) {\n          iVar13 = local_50;\n        }" (if "if") (parenthesized_expression "(-1 < local_50)" (( "(") (binary_expression "-1 < local_50" (number_literal "-1") (< "<") (identifier "local_50")) () ")")) (compound_statement "{\n          iVar13 = local_50;\n        }" ({ "{") (expression_statement "iVar13 = local_50;" (assignment_expression "iVar13 = local_50" (identifier "iVar13") (= "=") (identifier "local_50")) (; ";")) (} "}"))) (if_statement "if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }" (if "if") (parenthesized_expression "(*(char *)(*piVar11 + 0x51) == '\0')" (( "(") (binary_expression "*(char *)(*piVar11 + 0x51) == '\0'" (pointer_expression "*(char *)(*piVar11 + 0x51)" (* "*") (cast_expression "(char *)(*piVar11 + 0x51)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar11 + 0x51)" (( "(") (binary_expression "*piVar11 + 0x51" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (+ "+") (number_literal "0x51")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }" ({ "{") (expression_statement "*(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;" (assignment_expression "*(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9" (pointer_expression "*(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8)" (* "*") (cast_expression "(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar11[0x1a] + iVar13 * 0x14 + 8)" (( "(") (binary_expression "piVar11[0x1a] + iVar13 * 0x14 + 8" (binary_expression "piVar11[0x1a] + iVar13 * 0x14" (subscript_expression "piVar11[0x1a]" (identifier "piVar11") ([ "[") (number_literal "0x1a") (] "]")) (+ "+") (binary_expression "iVar13 * 0x14" (identifier "iVar13") (* "*") (number_literal "0x14"))) (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "cVar10 = *(char *)(iVar14 + 0xe);" (assignment_expression "cVar10 = *(char *)(iVar14 + 0xe)" (identifier "cVar10") (= "=") (pointer_expression "*(char *)(iVar14 + 0xe)" (* "*") (cast_expression "(char *)(iVar14 + 0xe)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xe)" (( "(") (binary_expression "iVar14 + 0xe" (identifier "iVar14") (+ "+") (number_literal "0xe")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }" (else "else") (compound_statement "{\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          cVar10 = *(char *)(iVar14 + 0xe);\n        }" ({ "{") (expression_statement "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;" (assignment_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9" (pointer_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c)" (* "*") (cast_expression "(int *)(PTR_DAT_0015b5d8 + -0x450c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x450c)" (( "(") (binary_expression "PTR_DAT_0015b5d8 + -0x450c" (identifier "PTR_DAT_0015b5d8") (+ "+") (number_literal "-0x450c")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "cVar10 = *(char *)(iVar14 + 0xe);" (assignment_expression "cVar10 = *(char *)(iVar14 + 0xe)" (identifier "cVar10") (= "=") (pointer_expression "*(char *)(iVar14 + 0xe)" (* "*") (cast_expression "(char *)(iVar14 + 0xe)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xe)" (( "(") (binary_expression "iVar14 + 0xe" (identifier "iVar14") (+ "+") (number_literal "0xe")) () ")"))))) (; ";")) (} "}")))) (} "}"))) (} "}")))) (if_statement "if (cVar10 == 'S') {\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n    }" (if "if") (parenthesized_expression "(cVar10 == 'S')" (( "(") (binary_expression "cVar10 == 'S'" (identifier "cVar10") (== "==") (char_literal "'S'" (' "'") (character "S") (' "'"))) () ")")) (compound_statement "{\n      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);\n    }" ({ "{") (expression_statement "local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);" (assignment_expression "local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1)" (identifier "local_50") (= "=") (call_expression "(*pcVar15)(piVar11,0x2f,iVar17,0,1)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0x2f,iVar17,0,1)" (( "(") (identifier "piVar11") (, ",") (number_literal "0x2f") (, ",") (identifier "iVar17") (, ",") (number_literal "0") (, ",") (number_literal "1") () ")")))) (; ";")) (} "}"))) (if_statement "if (*(char *)(iVar14 + 0xd) == 'S') {\n      iVar17 = (*pcVar15)(piVar11,0x2f,iVar18,0,1);\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        if (iVar17 < 0) {\n          iVar17 = iVar9 + -1;\n        }\n        goto LAB_000c1d20;\n      }\n    }\n    else {\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        iVar17 = 0;\nLAB_000c1d20:\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n      }\n    }" (if "if") (parenthesized_expression "(*(char *)(iVar14 + 0xd) == 'S')" (( "(") (binary_expression "*(char *)(iVar14 + 0xd) == 'S'" (pointer_expression "*(char *)(iVar14 + 0xd)" (* "*") (cast_expression "(char *)(iVar14 + 0xd)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xd)" (( "(") (binary_expression "iVar14 + 0xd" (identifier "iVar14") (+ "+") (number_literal "0xd")) () ")")))) (== "==") (char_literal "'S'" (' "'") (character "S") (' "'"))) () ")")) (compound_statement "{\n      iVar17 = (*pcVar15)(piVar11,0x2f,iVar18,0,1);\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        if (iVar17 < 0) {\n          iVar17 = iVar9 + -1;\n        }\n        goto LAB_000c1d20;\n      }\n    }" ({ "{") (expression_statement "iVar17 = (*pcVar15)(piVar11,0x2f,iVar18,0,1);" (assignment_expression "iVar17 = (*pcVar15)(piVar11,0x2f,iVar18,0,1)" (identifier "iVar17") (= "=") (call_expression "(*pcVar15)(piVar11,0x2f,iVar18,0,1)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0x2f,iVar18,0,1)" (( "(") (identifier "piVar11") (, ",") (number_literal "0x2f") (, ",") (identifier "iVar18") (, ",") (number_literal "0") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "(*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);" (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x2764))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x2764)" (* "*") (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2764)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b710 + -0x2764)" (( "(") (binary_expression "PTR_LAB_0015b710 + -0x2764" (identifier "PTR_LAB_0015b710") (+ "+") (number_literal "-0x2764")) () ")")))) () ")")) (argument_list "(param_1,iVar14,0)" (( "(") (identifier "param_1") (, ",") (identifier "iVar14") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);" (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x2524))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x2524)" (* "*") (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2524)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b710 + -0x2524)" (( "(") (binary_expression "PTR_LAB_0015b710 + -0x2524" (identifier "PTR_LAB_0015b710") (+ "+") (number_literal "-0x2524")) () ")")))) () ")")) (argument_list "(param_1,iVar14,param_4,param_5)" (( "(") (identifier "param_1") (, ",") (identifier "iVar14") (, ",") (identifier "param_4") (, ",") (identifier "param_5") () ")"))) (; ";")) (expression_statement "(*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);" (call_expression "(*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0)" (( "(") (identifier "piVar11") (, ",") (number_literal "5") (, ",") (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar14 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x24)" (( "(") (binary_expression "iVar14 + 0x24" (identifier "iVar14") (+ "+") (number_literal "0x24")) () ")")))) (, ",") (binary_expression "piVar11[0x1b] + 2" (subscript_expression "piVar11[0x1b]" (identifier "piVar11") ([ "[") (number_literal "0x1b") (] "]")) (+ "+") (number_literal "2")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*pcVar15)(piVar11,0xb,0,iVar23,0);" (call_expression "(*pcVar15)(piVar11,0xb,0,iVar23,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0xb,0,iVar23,0)" (( "(") (identifier "piVar11") (, ",") (number_literal "0xb") (, ",") (number_literal "0") (, ",") (identifier "iVar23") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "uVar2 = (uint)*(byte *)(iVar14 + 0xd);" (assignment_expression "uVar2 = (uint)*(byte *)(iVar14 + 0xd)" (identifier "uVar2") (= "=") (binary_expression "(uint)*(byte *)(iVar14 + 0xd)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar14 + 0xd)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xd)" (( "(") (binary_expression "iVar14 + 0xd" (identifier "iVar14") (+ "+") (number_literal "0xd")) () ")"))))) (; ";")) (if_statement "if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        if (iVar17 < 0) {\n          iVar17 = iVar9 + -1;\n        }\n        goto LAB_000c1d20;\n      }" (if "if") (parenthesized_expression "(uVar2 == 0x53)" (( "(") (binary_expression "uVar2 == 0x53" (identifier "uVar2") (== "==") (number_literal "0x53")) () ")")) (compound_statement "{\n        iVar9 = piVar11[0x1b];\n        if (iVar17 < 0) {\n          iVar17 = iVar9 + -1;\n        }\n        goto LAB_000c1d20;\n      }" ({ "{") (expression_statement "iVar9 = piVar11[0x1b];" (assignment_expression "iVar9 = piVar11[0x1b]" (identifier "iVar9") (= "=") (subscript_expression "piVar11[0x1b]" (identifier "piVar11") ([ "[") (number_literal "0x1b") (] "]"))) (; ";")) (if_statement "if (iVar17 < 0) {\n          iVar17 = iVar9 + -1;\n        }" (if "if") (parenthesized_expression "(iVar17 < 0)" (( "(") (binary_expression "iVar17 < 0" (identifier "iVar17") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          iVar17 = iVar9 + -1;\n        }" ({ "{") (expression_statement "iVar17 = iVar9 + -1;" (assignment_expression "iVar17 = iVar9 + -1" (identifier "iVar17") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (goto_statement "goto LAB_000c1d20;" (goto "goto") (statement_identifier "LAB_000c1d20") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        iVar17 = 0;\nLAB_000c1d20:\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n      }\n    }" (else "else") (compound_statement "{\n      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);\n      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);\n      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);\n      (*pcVar15)(piVar11,0xb,0,iVar23,0);\n      uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n      if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        iVar17 = 0;\nLAB_000c1d20:\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n      }\n    }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);" (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x2764))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x2764)" (* "*") (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2764)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b710 + -0x2764)" (( "(") (binary_expression "PTR_LAB_0015b710 + -0x2764" (identifier "PTR_LAB_0015b710") (+ "+") (number_literal "-0x2764")) () ")")))) () ")")) (argument_list "(param_1,iVar14,0)" (( "(") (identifier "param_1") (, ",") (identifier "iVar14") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);" (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x2524))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x2524)" (* "*") (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2524)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b710 + -0x2524)" (( "(") (binary_expression "PTR_LAB_0015b710 + -0x2524" (identifier "PTR_LAB_0015b710") (+ "+") (number_literal "-0x2524")) () ")")))) () ")")) (argument_list "(param_1,iVar14,param_4,param_5)" (( "(") (identifier "param_1") (, ",") (identifier "iVar14") (, ",") (identifier "param_4") (, ",") (identifier "param_5") () ")"))) (; ";")) (expression_statement "(*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);" (call_expression "(*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0)" (( "(") (identifier "piVar11") (, ",") (number_literal "5") (, ",") (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar14 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x24)" (( "(") (binary_expression "iVar14 + 0x24" (identifier "iVar14") (+ "+") (number_literal "0x24")) () ")")))) (, ",") (binary_expression "piVar11[0x1b] + 2" (subscript_expression "piVar11[0x1b]" (identifier "piVar11") ([ "[") (number_literal "0x1b") (] "]")) (+ "+") (number_literal "2")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*pcVar15)(piVar11,0xb,0,iVar23,0);" (call_expression "(*pcVar15)(piVar11,0xb,0,iVar23,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0xb,0,iVar23,0)" (( "(") (identifier "piVar11") (, ",") (number_literal "0xb") (, ",") (number_literal "0") (, ",") (identifier "iVar23") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "uVar2 = (uint)*(byte *)(iVar14 + 0xd);" (assignment_expression "uVar2 = (uint)*(byte *)(iVar14 + 0xd)" (identifier "uVar2") (= "=") (binary_expression "(uint)*(byte *)(iVar14 + 0xd)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar14 + 0xd)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xd)" (( "(") (binary_expression "iVar14 + 0xd" (identifier "iVar14") (+ "+") (number_literal "0xd")) () ")"))))) (; ";")) (if_statement "if (uVar2 == 0x53) {\n        iVar9 = piVar11[0x1b];\n        iVar17 = 0;\nLAB_000c1d20:\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n      }" (if "if") (parenthesized_expression "(uVar2 == 0x53)" (( "(") (binary_expression "uVar2 == 0x53" (identifier "uVar2") (== "==") (number_literal "0x53")) () ")")) (compound_statement "{\n        iVar9 = piVar11[0x1b];\n        iVar17 = 0;\nLAB_000c1d20:\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n      }" ({ "{") (expression_statement "iVar9 = piVar11[0x1b];" (assignment_expression "iVar9 = piVar11[0x1b]" (identifier "iVar9") (= "=") (subscript_expression "piVar11[0x1b]" (identifier "piVar11") ([ "[") (number_literal "0x1b") (] "]"))) (; ";")) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" (identifier "iVar17") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_000c1d20:\n        if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }" (statement_identifier "LAB_000c1d20") (: ":") (if_statement "if (*(char *)(*piVar11 + 0x51) == '\0') {\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }\n        else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }" (if "if") (parenthesized_expression "(*(char *)(*piVar11 + 0x51) == '\0')" (( "(") (binary_expression "*(char *)(*piVar11 + 0x51) == '\0'" (pointer_expression "*(char *)(*piVar11 + 0x51)" (* "*") (cast_expression "(char *)(*piVar11 + 0x51)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar11 + 0x51)" (( "(") (binary_expression "*piVar11 + 0x51" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (+ "+") (number_literal "0x51")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }" ({ "{") (expression_statement "*(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;" (assignment_expression "*(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9" (pointer_expression "*(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8)" (* "*") (cast_expression "(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar11[0x1a] + iVar17 * 0x14 + 8)" (( "(") (binary_expression "piVar11[0x1a] + iVar17 * 0x14 + 8" (binary_expression "piVar11[0x1a] + iVar17 * 0x14" (subscript_expression "piVar11[0x1a]" (identifier "piVar11") ([ "[") (number_literal "0x1a") (] "]")) (+ "+") (binary_expression "iVar17 * 0x14" (identifier "iVar17") (* "*") (number_literal "0x14"))) (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "uVar2 = (uint)*(byte *)(iVar14 + 0xd);" (assignment_expression "uVar2 = (uint)*(byte *)(iVar14 + 0xd)" (identifier "uVar2") (= "=") (binary_expression "(uint)*(byte *)(iVar14 + 0xd)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar14 + 0xd)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xd)" (( "(") (binary_expression "iVar14 + 0xd" (identifier "iVar14") (+ "+") (number_literal "0xd")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }" (else "else") (compound_statement "{\n          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;\n          uVar2 = (uint)*(byte *)(iVar14 + 0xd);\n        }" ({ "{") (expression_statement "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;" (assignment_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9" (pointer_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c)" (* "*") (cast_expression "(int *)(PTR_DAT_0015b5d8 + -0x450c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x450c)" (( "(") (binary_expression "PTR_DAT_0015b5d8 + -0x450c" (identifier "PTR_DAT_0015b5d8") (+ "+") (number_literal "-0x450c")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "uVar2 = (uint)*(byte *)(iVar14 + 0xd);" (assignment_expression "uVar2 = (uint)*(byte *)(iVar14 + 0xd)" (identifier "uVar2") (= "=") (binary_expression "(uint)*(byte *)(iVar14 + 0xd)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar14 + 0xd)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xd)" (( "(") (binary_expression "iVar14 + 0xd" (identifier "iVar14") (+ "+") (number_literal "0xd")) () ")"))))) (; ";")) (} "}"))))) (} "}"))) (} "}")))) (if_statement "if ((uVar2 - 0x52 < 2) || (uVar2 == 0x55)) {\n      iVar17 = *(int *)(param_1 + 0x38) + -1;\n      *(int *)(param_1 + 0x38) = iVar17;\n      cVar10 = *(char *)(iVar14 + 0xd);\n      if (cVar10 == 'U') {\n        (*pcVar15)(piVar11,0x2f,iVar18,iVar17,1);\n        cVar10 = *(char *)(iVar14 + 0xd);\n      }\n      if (cVar10 == 'S') {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 2,0);\n        (*pcVar15)(piVar11,0xb,0,iVar17,0);\n      }\n      else {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0);\n      }\n      (*pcVar21)(param_1,iVar14,iVar20,1,uVar4,local_30);\n      (*pcVar24)(piVar11,iVar17);\n    }" (if "if") (parenthesized_expression "((uVar2 - 0x52 < 2) || (uVar2 == 0x55))" (( "(") (binary_expression "(uVar2 - 0x52 < 2) || (uVar2 == 0x55)" (parenthesized_expression "(uVar2 - 0x52 < 2)" (( "(") (binary_expression "uVar2 - 0x52 < 2" (binary_expression "uVar2 - 0x52" (identifier "uVar2") (- "-") (number_literal "0x52")) (< "<") (number_literal "2")) () ")")) (|| "||") (parenthesized_expression "(uVar2 == 0x55)" (( "(") (binary_expression "uVar2 == 0x55" (identifier "uVar2") (== "==") (number_literal "0x55")) () ")"))) () ")")) (compound_statement "{\n      iVar17 = *(int *)(param_1 + 0x38) + -1;\n      *(int *)(param_1 + 0x38) = iVar17;\n      cVar10 = *(char *)(iVar14 + 0xd);\n      if (cVar10 == 'U') {\n        (*pcVar15)(piVar11,0x2f,iVar18,iVar17,1);\n        cVar10 = *(char *)(iVar14 + 0xd);\n      }\n      if (cVar10 == 'S') {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 2,0);\n        (*pcVar15)(piVar11,0xb,0,iVar17,0);\n      }\n      else {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0);\n      }\n      (*pcVar21)(param_1,iVar14,iVar20,1,uVar4,local_30);\n      (*pcVar24)(piVar11,iVar17);\n    }" ({ "{") (expression_statement "iVar17 = *(int *)(param_1 + 0x38) + -1;" (assignment_expression "iVar17 = *(int *)(param_1 + 0x38) + -1" (identifier "iVar17") (= "=") (binary_expression "*(int *)(param_1 + 0x38) + -1" (pointer_expression "*(int *)(param_1 + 0x38)" (* "*") (cast_expression "(int *)(param_1 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*(int *)(param_1 + 0x38) = iVar17;" (assignment_expression "*(int *)(param_1 + 0x38) = iVar17" (pointer_expression "*(int *)(param_1 + 0x38)" (* "*") (cast_expression "(int *)(param_1 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (identifier "iVar17")) (; ";")) (expression_statement "cVar10 = *(char *)(iVar14 + 0xd);" (assignment_expression "cVar10 = *(char *)(iVar14 + 0xd)" (identifier "cVar10") (= "=") (pointer_expression "*(char *)(iVar14 + 0xd)" (* "*") (cast_expression "(char *)(iVar14 + 0xd)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xd)" (( "(") (binary_expression "iVar14 + 0xd" (identifier "iVar14") (+ "+") (number_literal "0xd")) () ")"))))) (; ";")) (if_statement "if (cVar10 == 'U') {\n        (*pcVar15)(piVar11,0x2f,iVar18,iVar17,1);\n        cVar10 = *(char *)(iVar14 + 0xd);\n      }" (if "if") (parenthesized_expression "(cVar10 == 'U')" (( "(") (binary_expression "cVar10 == 'U'" (identifier "cVar10") (== "==") (char_literal "'U'" (' "'") (character "U") (' "'"))) () ")")) (compound_statement "{\n        (*pcVar15)(piVar11,0x2f,iVar18,iVar17,1);\n        cVar10 = *(char *)(iVar14 + 0xd);\n      }" ({ "{") (expression_statement "(*pcVar15)(piVar11,0x2f,iVar18,iVar17,1);" (call_expression "(*pcVar15)(piVar11,0x2f,iVar18,iVar17,1)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0x2f,iVar18,iVar17,1)" (( "(") (identifier "piVar11") (, ",") (number_literal "0x2f") (, ",") (identifier "iVar18") (, ",") (identifier "iVar17") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "cVar10 = *(char *)(iVar14 + 0xd);" (assignment_expression "cVar10 = *(char *)(iVar14 + 0xd)" (identifier "cVar10") (= "=") (pointer_expression "*(char *)(iVar14 + 0xd)" (* "*") (cast_expression "(char *)(iVar14 + 0xd)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xd)" (( "(") (binary_expression "iVar14 + 0xd" (identifier "iVar14") (+ "+") (number_literal "0xd")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (cVar10 == 'S') {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 2,0);\n        (*pcVar15)(piVar11,0xb,0,iVar17,0);\n      }\n      else {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0);\n      }" (if "if") (parenthesized_expression "(cVar10 == 'S')" (( "(") (binary_expression "cVar10 == 'S'" (identifier "cVar10") (== "==") (char_literal "'S'" (' "'") (character "S") (' "'"))) () ")")) (compound_statement "{\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 2,0);\n        (*pcVar15)(piVar11,0xb,0,iVar17,0);\n      }" ({ "{") (expression_statement "(*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 2,0);" (call_expression "(*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 2,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,5,iVar20,piVar11[0x1b] + 2,0)" (( "(") (identifier "piVar11") (, ",") (number_literal "5") (, ",") (identifier "iVar20") (, ",") (binary_expression "piVar11[0x1b] + 2" (subscript_expression "piVar11[0x1b]" (identifier "piVar11") ([ "[") (number_literal "0x1b") (] "]")) (+ "+") (number_literal "2")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*pcVar15)(piVar11,0xb,0,iVar17,0);" (call_expression "(*pcVar15)(piVar11,0xb,0,iVar17,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0xb,0,iVar17,0)" (( "(") (identifier "piVar11") (, ",") (number_literal "0xb") (, ",") (number_literal "0") (, ",") (identifier "iVar17") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0);\n      }" (else "else") (compound_statement "{\n        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0);\n      }" ({ "{") (expression_statement "(*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0);" (call_expression "(*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,5,iVar20,piVar11[0x1b] + 1,0)" (( "(") (identifier "piVar11") (, ",") (number_literal "5") (, ",") (identifier "iVar20") (, ",") (binary_expression "piVar11[0x1b] + 1" (subscript_expression "piVar11[0x1b]" (identifier "piVar11") ([ "[") (number_literal "0x1b") (] "]")) (+ "+") (number_literal "1")) (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")))) (expression_statement "(*pcVar21)(param_1,iVar14,iVar20,1,uVar4,local_30);" (call_expression "(*pcVar21)(param_1,iVar14,iVar20,1,uVar4,local_30)" (parenthesized_expression "(*pcVar21)" (( "(") (pointer_expression "*pcVar21" (* "*") (identifier "pcVar21")) () ")")) (argument_list "(param_1,iVar14,iVar20,1,uVar4,local_30)" (( "(") (identifier "param_1") (, ",") (identifier "iVar14") (, ",") (identifier "iVar20") (, ",") (number_literal "1") (, ",") (identifier "uVar4") (, ",") (identifier "local_30") () ")"))) (; ";")) (expression_statement "(*pcVar24)(piVar11,iVar17);" (call_expression "(*pcVar24)(piVar11,iVar17)" (parenthesized_expression "(*pcVar24)" (( "(") (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) () ")")) (argument_list "(piVar11,iVar17)" (( "(") (identifier "piVar11") (, ",") (identifier "iVar17") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(iVar14 + 0xe) == 'S') {\n      iVar18 = piVar11[0x1b];\n      if (local_50 < 0) {\n        local_50 = iVar18 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + local_50 * 0x14 + 8) = iVar18;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n      }\n    }" (if "if") (parenthesized_expression "(*(char *)(iVar14 + 0xe) == 'S')" (( "(") (binary_expression "*(char *)(iVar14 + 0xe) == 'S'" (pointer_expression "*(char *)(iVar14 + 0xe)" (* "*") (cast_expression "(char *)(iVar14 + 0xe)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xe)" (( "(") (binary_expression "iVar14 + 0xe" (identifier "iVar14") (+ "+") (number_literal "0xe")) () ")")))) (== "==") (char_literal "'S'" (' "'") (character "S") (' "'"))) () ")")) (compound_statement "{\n      iVar18 = piVar11[0x1b];\n      if (local_50 < 0) {\n        local_50 = iVar18 + -1;\n      }\n      if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + local_50 * 0x14 + 8) = iVar18;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n      }\n    }" ({ "{") (expression_statement "iVar18 = piVar11[0x1b];" (assignment_expression "iVar18 = piVar11[0x1b]" (identifier "iVar18") (= "=") (subscript_expression "piVar11[0x1b]" (identifier "piVar11") ([ "[") (number_literal "0x1b") (] "]"))) (; ";")) (if_statement "if (local_50 < 0) {\n        local_50 = iVar18 + -1;\n      }" (if "if") (parenthesized_expression "(local_50 < 0)" (( "(") (binary_expression "local_50 < 0" (identifier "local_50") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        local_50 = iVar18 + -1;\n      }" ({ "{") (expression_statement "local_50 = iVar18 + -1;" (assignment_expression "local_50 = iVar18 + -1" (identifier "local_50") (= "=") (binary_expression "iVar18 + -1" (identifier "iVar18") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(*piVar11 + 0x51) == '\0') {\n        *(int *)(piVar11[0x1a] + local_50 * 0x14 + 8) = iVar18;\n      }\n      else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n      }" (if "if") (parenthesized_expression "(*(char *)(*piVar11 + 0x51) == '\0')" (( "(") (binary_expression "*(char *)(*piVar11 + 0x51) == '\0'" (pointer_expression "*(char *)(*piVar11 + 0x51)" (* "*") (cast_expression "(char *)(*piVar11 + 0x51)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar11 + 0x51)" (( "(") (binary_expression "*piVar11 + 0x51" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (+ "+") (number_literal "0x51")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        *(int *)(piVar11[0x1a] + local_50 * 0x14 + 8) = iVar18;\n      }" ({ "{") (expression_statement "*(int *)(piVar11[0x1a] + local_50 * 0x14 + 8) = iVar18;" (assignment_expression "*(int *)(piVar11[0x1a] + local_50 * 0x14 + 8) = iVar18" (pointer_expression "*(int *)(piVar11[0x1a] + local_50 * 0x14 + 8)" (* "*") (cast_expression "(int *)(piVar11[0x1a] + local_50 * 0x14 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar11[0x1a] + local_50 * 0x14 + 8)" (( "(") (binary_expression "piVar11[0x1a] + local_50 * 0x14 + 8" (binary_expression "piVar11[0x1a] + local_50 * 0x14" (subscript_expression "piVar11[0x1a]" (identifier "piVar11") ([ "[") (number_literal "0x1a") (] "]")) (+ "+") (binary_expression "local_50 * 0x14" (identifier "local_50") (* "*") (number_literal "0x14"))) (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar18")) (; ";")) (} "}")) (else_clause "else {\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n      }" (else "else") (compound_statement "{\n        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n      }" ({ "{") (expression_statement "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;" (assignment_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18" (pointer_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c)" (* "*") (cast_expression "(int *)(PTR_DAT_0015b5d8 + -0x450c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x450c)" (( "(") (binary_expression "PTR_DAT_0015b5d8 + -0x450c" (identifier "PTR_DAT_0015b5d8") (+ "+") (number_literal "-0x450c")) () ")")))) (= "=") (identifier "iVar18")) (; ";")) (} "}")))) (} "}"))) (expression_statement "(*pcVar15)(piVar11,0xb,0,iVar12,0);" (call_expression "(*pcVar15)(piVar11,0xb,0,iVar12,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0xb,0,iVar12,0)" (( "(") (identifier "piVar11") (, ",") (number_literal "0xb") (, ",") (number_literal "0") (, ",") (identifier "iVar12") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*pcVar24)(piVar11,iVar23);" (call_expression "(*pcVar24)(piVar11,iVar23)" (parenthesized_expression "(*pcVar24)" (( "(") (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) () ")")) (argument_list "(piVar11,iVar23)" (( "(") (identifier "piVar11") (, ",") (identifier "iVar23") () ")"))) (; ";")) (expression_statement "(*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);" (call_expression "(*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0)" (( "(") (identifier "piVar11") (, ",") (number_literal "0x8a") (, ",") (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar14 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x24)" (( "(") (binary_expression "iVar14 + 0x24" (identifier "iVar14") (+ "+") (number_literal "0x24")) () ")")))) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    if (uVar2 != 0x525700) {\nLAB_000c08b4:\n      iVar18 = iVar14;\n      do {\n        if (((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        iVar18 = *(int *)(iVar18 + 0x18);\n      } while (iVar18 != 0);\n      piVar16 = *(int **)(param_1 + 8);\n      if (piVar16 == (int *)0x0) {\n        piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      }\n      piVar11 = *(int **)(iVar14 + 4);\n      iVar17 = *(int *)(param_1 + 0x2c) + 1;\n      uVar4 = *(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30);\n      iVar20 = (int)*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a);\n      iVar18 = iVar20 + iVar17;\n      iVar5 = iVar20 + 2 + *(int *)(param_1 + 0x2c);\n      if (*(char *)(iVar14 + 0xe) == 'W') {\n        *(int *)(param_1 + 0x2c) = iVar5;\n        piVar19 = (int *)0x0;\n        if (0 < iVar20) goto LAB_000c0980;\n        if (piVar11 != (int *)0x0) {\n          local_50 = *piVar11;\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }\n      else {\n        piVar19 = *(int **)(iVar14 + 8);\n        *(int *)(param_1 + 0x2c) = iVar5;\n        if (iVar20 < 1) {\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }\n        puVar3 = PTR_LAB_0015b714;\n        if (piVar11 == (int *)0x0) {\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }\n        else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }\n        (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);\n        (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n        (*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);\n        (*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n        (*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1);\n        if (iVar5 != 0) {\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }\n      }\nLAB_000c0b50:\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,0xffffffff,0,iVar17,0);\n      if (*(int *)(iVar14 + 0x40) < 1) {\n        (*pcVar15)(piVar16,0x4b,0,iVar18,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }\n      else {\n        (*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);\n      }\n      (*pcVar15)(piVar16,0x79,*(undefined4 *)(iVar14 + 0x24),iVar18 + 1,0);\n      (*pcVar15)(piVar16,0x7a,*(undefined4 *)(iVar14 + 0x24),iVar18,iVar18 + 1);\n      (*(code *)(PTR_LAB_0015b710 + -0x18cc))(param_3);\n      (*pcVar24)(param_1,iVar14,1);\n      (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + 3,0);\n      (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n      iVar18 = 5;\n      iVar5 = *(int *)(iVar14 + 0x24);\n      (*pcVar15)(piVar16,5,iVar5,piVar16[0x1b] + -1,0);\n      goto LAB_000c0f44;\n    }\nLAB_000c0c60:\n    piVar11 = *(int **)(param_1 + 8);\n    if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      piVar16 = *(int **)(iVar14 + 8);\n      local_48 = *(int **)(iVar14 + 4);\n      if (piVar16 != (int *)0x0) goto LAB_000c0c7c;\nLAB_000c1450:\n      local_58 = 0;\n      bVar1 = false;\n    }\n    else {\n      local_48 = *(int **)(iVar14 + 4);\n      piVar16 = *(int **)(iVar14 + 8);\n      if (piVar16 == (int *)0x0) goto LAB_000c1450;\nLAB_000c0c7c:\n      local_58 = *piVar16;\n      bVar1 = (*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700;\n    }\n    puVar3 = PTR_LAB_0015b714;\n    iVar18 = *(int *)(param_1 + 0x2c);\n    iVar23 = *(int *)(param_1 + 0x28);\n    iVar17 = *(int *)(param_1 + 0x38);\n    iVar5 = iVar18 + local_58;\n    iVar9 = iVar5 + 2;\n    iVar20 = iVar17 + -2;\n    *(int *)(param_1 + 0x28) = iVar23 + 1;\n    iVar5 = iVar5 + 1;\n    *(int *)(param_1 + 0x38) = iVar20;\n    *(int *)(param_1 + 0x2c) = iVar9;\n    iVar17 = iVar17 + -1;\n    (*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar20,&local_30\n              );\n    pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    local_60 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar24)(piVar11,iVar20);\n    (*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 2,0);\n    (*pcVar15)(piVar11,0x6f,iVar23,*(undefined4 *)(iVar14 + 0x24),0);\n    uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);\n    (*pcVar15)(piVar11,0x46,0,iVar9,0);\n    (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n    (*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar17,0);\n    if (bVar1) {\n      iVar20 = piVar11[0x1b];\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n      (*pcVar15)(piVar11,5,iVar23,iVar20,0);\n      (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n      local_50 = piVar11[0x1b];\n      if (piVar16 != (int *)0x0) goto LAB_000c0e28;\n      pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n    }\n    else {\n      local_50 = piVar11[0x1b];\n      if (piVar16 == (int *)0x0) {\n        pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);\n        uVar6 = uVar4;\n        if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n    }\nLAB_000c0e5c:\n    (*pcVar15)(piVar11,0x53,iVar9,1,0);\n    (*pcVar15)(piVar11,5,iVar23,local_50,0);\n    (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n    (*pcVar24)(piVar11,iVar17);\n    (*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n  }" (else "else") (compound_statement "{\n    if (uVar2 != 0x525700) {\nLAB_000c08b4:\n      iVar18 = iVar14;\n      do {\n        if (((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        iVar18 = *(int *)(iVar18 + 0x18);\n      } while (iVar18 != 0);\n      piVar16 = *(int **)(param_1 + 8);\n      if (piVar16 == (int *)0x0) {\n        piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      }\n      piVar11 = *(int **)(iVar14 + 4);\n      iVar17 = *(int *)(param_1 + 0x2c) + 1;\n      uVar4 = *(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30);\n      iVar20 = (int)*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a);\n      iVar18 = iVar20 + iVar17;\n      iVar5 = iVar20 + 2 + *(int *)(param_1 + 0x2c);\n      if (*(char *)(iVar14 + 0xe) == 'W') {\n        *(int *)(param_1 + 0x2c) = iVar5;\n        piVar19 = (int *)0x0;\n        if (0 < iVar20) goto LAB_000c0980;\n        if (piVar11 != (int *)0x0) {\n          local_50 = *piVar11;\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }\n      else {\n        piVar19 = *(int **)(iVar14 + 8);\n        *(int *)(param_1 + 0x2c) = iVar5;\n        if (iVar20 < 1) {\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }\n        puVar3 = PTR_LAB_0015b714;\n        if (piVar11 == (int *)0x0) {\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }\n        else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }\n        (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);\n        (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n        (*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);\n        (*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n        (*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1);\n        if (iVar5 != 0) {\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }\n      }\nLAB_000c0b50:\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,0xffffffff,0,iVar17,0);\n      if (*(int *)(iVar14 + 0x40) < 1) {\n        (*pcVar15)(piVar16,0x4b,0,iVar18,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }\n      else {\n        (*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);\n      }\n      (*pcVar15)(piVar16,0x79,*(undefined4 *)(iVar14 + 0x24),iVar18 + 1,0);\n      (*pcVar15)(piVar16,0x7a,*(undefined4 *)(iVar14 + 0x24),iVar18,iVar18 + 1);\n      (*(code *)(PTR_LAB_0015b710 + -0x18cc))(param_3);\n      (*pcVar24)(param_1,iVar14,1);\n      (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + 3,0);\n      (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n      iVar18 = 5;\n      iVar5 = *(int *)(iVar14 + 0x24);\n      (*pcVar15)(piVar16,5,iVar5,piVar16[0x1b] + -1,0);\n      goto LAB_000c0f44;\n    }\nLAB_000c0c60:\n    piVar11 = *(int **)(param_1 + 8);\n    if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      piVar16 = *(int **)(iVar14 + 8);\n      local_48 = *(int **)(iVar14 + 4);\n      if (piVar16 != (int *)0x0) goto LAB_000c0c7c;\nLAB_000c1450:\n      local_58 = 0;\n      bVar1 = false;\n    }\n    else {\n      local_48 = *(int **)(iVar14 + 4);\n      piVar16 = *(int **)(iVar14 + 8);\n      if (piVar16 == (int *)0x0) goto LAB_000c1450;\nLAB_000c0c7c:\n      local_58 = *piVar16;\n      bVar1 = (*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700;\n    }\n    puVar3 = PTR_LAB_0015b714;\n    iVar18 = *(int *)(param_1 + 0x2c);\n    iVar23 = *(int *)(param_1 + 0x28);\n    iVar17 = *(int *)(param_1 + 0x38);\n    iVar5 = iVar18 + local_58;\n    iVar9 = iVar5 + 2;\n    iVar20 = iVar17 + -2;\n    *(int *)(param_1 + 0x28) = iVar23 + 1;\n    iVar5 = iVar5 + 1;\n    *(int *)(param_1 + 0x38) = iVar20;\n    *(int *)(param_1 + 0x2c) = iVar9;\n    iVar17 = iVar17 + -1;\n    (*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar20,&local_30\n              );\n    pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n    local_60 = (*pcVar15)(piVar11,0xb,0,0,0);\n    pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);\n    (*pcVar24)(piVar11,iVar20);\n    (*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 2,0);\n    (*pcVar15)(piVar11,0x6f,iVar23,*(undefined4 *)(iVar14 + 0x24),0);\n    uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);\n    (*pcVar15)(piVar11,0x46,0,iVar9,0);\n    (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n    (*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar17,0);\n    if (bVar1) {\n      iVar20 = piVar11[0x1b];\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n      (*pcVar15)(piVar11,5,iVar23,iVar20,0);\n      (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n      local_50 = piVar11[0x1b];\n      if (piVar16 != (int *)0x0) goto LAB_000c0e28;\n      pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n    }\n    else {\n      local_50 = piVar11[0x1b];\n      if (piVar16 == (int *)0x0) {\n        pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);\n        uVar6 = uVar4;\n        if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n    }\nLAB_000c0e5c:\n    (*pcVar15)(piVar11,0x53,iVar9,1,0);\n    (*pcVar15)(piVar11,5,iVar23,local_50,0);\n    (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n    (*pcVar24)(piVar11,iVar17);\n    (*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n  }" ({ "{") (if_statement "if (uVar2 != 0x525700) {\nLAB_000c08b4:\n      iVar18 = iVar14;\n      do {\n        if (((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        iVar18 = *(int *)(iVar18 + 0x18);\n      } while (iVar18 != 0);\n      piVar16 = *(int **)(param_1 + 8);\n      if (piVar16 == (int *)0x0) {\n        piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      }\n      piVar11 = *(int **)(iVar14 + 4);\n      iVar17 = *(int *)(param_1 + 0x2c) + 1;\n      uVar4 = *(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30);\n      iVar20 = (int)*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a);\n      iVar18 = iVar20 + iVar17;\n      iVar5 = iVar20 + 2 + *(int *)(param_1 + 0x2c);\n      if (*(char *)(iVar14 + 0xe) == 'W') {\n        *(int *)(param_1 + 0x2c) = iVar5;\n        piVar19 = (int *)0x0;\n        if (0 < iVar20) goto LAB_000c0980;\n        if (piVar11 != (int *)0x0) {\n          local_50 = *piVar11;\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }\n      else {\n        piVar19 = *(int **)(iVar14 + 8);\n        *(int *)(param_1 + 0x2c) = iVar5;\n        if (iVar20 < 1) {\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }\n        puVar3 = PTR_LAB_0015b714;\n        if (piVar11 == (int *)0x0) {\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }\n        else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }\n        (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);\n        (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n        (*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);\n        (*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n        (*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1);\n        if (iVar5 != 0) {\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }\n      }\nLAB_000c0b50:\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,0xffffffff,0,iVar17,0);\n      if (*(int *)(iVar14 + 0x40) < 1) {\n        (*pcVar15)(piVar16,0x4b,0,iVar18,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }\n      else {\n        (*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);\n      }\n      (*pcVar15)(piVar16,0x79,*(undefined4 *)(iVar14 + 0x24),iVar18 + 1,0);\n      (*pcVar15)(piVar16,0x7a,*(undefined4 *)(iVar14 + 0x24),iVar18,iVar18 + 1);\n      (*(code *)(PTR_LAB_0015b710 + -0x18cc))(param_3);\n      (*pcVar24)(param_1,iVar14,1);\n      (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + 3,0);\n      (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n      iVar18 = 5;\n      iVar5 = *(int *)(iVar14 + 0x24);\n      (*pcVar15)(piVar16,5,iVar5,piVar16[0x1b] + -1,0);\n      goto LAB_000c0f44;\n    }" (if "if") (parenthesized_expression "(uVar2 != 0x525700)" (( "(") (binary_expression "uVar2 != 0x525700" (identifier "uVar2") (!= "!=") (number_literal "0x525700")) () ")")) (compound_statement "{\nLAB_000c08b4:\n      iVar18 = iVar14;\n      do {\n        if (((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        iVar18 = *(int *)(iVar18 + 0x18);\n      } while (iVar18 != 0);\n      piVar16 = *(int **)(param_1 + 8);\n      if (piVar16 == (int *)0x0) {\n        piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      }\n      piVar11 = *(int **)(iVar14 + 4);\n      iVar17 = *(int *)(param_1 + 0x2c) + 1;\n      uVar4 = *(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30);\n      iVar20 = (int)*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a);\n      iVar18 = iVar20 + iVar17;\n      iVar5 = iVar20 + 2 + *(int *)(param_1 + 0x2c);\n      if (*(char *)(iVar14 + 0xe) == 'W') {\n        *(int *)(param_1 + 0x2c) = iVar5;\n        piVar19 = (int *)0x0;\n        if (0 < iVar20) goto LAB_000c0980;\n        if (piVar11 != (int *)0x0) {\n          local_50 = *piVar11;\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }\n      else {\n        piVar19 = *(int **)(iVar14 + 8);\n        *(int *)(param_1 + 0x2c) = iVar5;\n        if (iVar20 < 1) {\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }\n        puVar3 = PTR_LAB_0015b714;\n        if (piVar11 == (int *)0x0) {\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }\n        else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }\n        (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);\n        (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n        (*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);\n        (*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n        (*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1);\n        if (iVar5 != 0) {\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }\n      }\nLAB_000c0b50:\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,0xffffffff,0,iVar17,0);\n      if (*(int *)(iVar14 + 0x40) < 1) {\n        (*pcVar15)(piVar16,0x4b,0,iVar18,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }\n      else {\n        (*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);\n      }\n      (*pcVar15)(piVar16,0x79,*(undefined4 *)(iVar14 + 0x24),iVar18 + 1,0);\n      (*pcVar15)(piVar16,0x7a,*(undefined4 *)(iVar14 + 0x24),iVar18,iVar18 + 1);\n      (*(code *)(PTR_LAB_0015b710 + -0x18cc))(param_3);\n      (*pcVar24)(param_1,iVar14,1);\n      (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + 3,0);\n      (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n      iVar18 = 5;\n      iVar5 = *(int *)(iVar14 + 0x24);\n      (*pcVar15)(piVar16,5,iVar5,piVar16[0x1b] + -1,0);\n      goto LAB_000c0f44;\n    }" ({ "{") (labeled_statement "LAB_000c08b4:\n      iVar18 = iVar14;" (statement_identifier "LAB_000c08b4") (: ":") (expression_statement "iVar18 = iVar14;" (assignment_expression "iVar18 = iVar14" (identifier "iVar18") (= "=") (identifier "iVar14")) (; ";"))) (do_statement "do {\n        if (((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        iVar18 = *(int *)(iVar18 + 0x18);\n      } while (iVar18 != 0);" (do "do") (compound_statement "{\n        if (((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;\n        iVar18 = *(int *)(iVar18 + 0x18);\n      }" ({ "{") (if_statement "if (((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))\n        goto LAB_000c0c60;" (if "if") (parenthesized_expression "(((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))" (( "(") (binary_expression "((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||\n           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c)))" (parenthesized_expression "((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00))" (( "(") (binary_expression "(((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)" (parenthesized_expression "(((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4))" (( "(") (binary_expression "((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||\n             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)" (parenthesized_expression "((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0)" (( "(") (binary_expression "(*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0" (parenthesized_expression "(*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000)" (( "(") (binary_expression "*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000" (pointer_expression "*(uint *)(*(int *)(iVar18 + 0x20) + 4)" (* "*") (cast_expression "(uint *)(*(int *)(iVar18 + 0x20) + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar18 + 0x20) + 4)" (( "(") (binary_expression "*(int *)(iVar18 + 0x20) + 4" (pointer_expression "*(int *)(iVar18 + 0x20)" (* "*") (cast_expression "(int *)(iVar18 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x20)" (( "(") (binary_expression "iVar18 + 0x20" (identifier "iVar18") (+ "+") (number_literal "0x20")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0x20000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4)" (( "(") (comma_expression "puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),\n             puVar3 == PTR_DAT_0015b694 + -0x7df4" (assignment_expression "puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20)" (identifier "puVar3") (= "=") (pointer_expression "*(undefined **)(*(int *)(iVar18 + 0x20) + 0x20)" (* "*") (cast_expression "(undefined **)(*(int *)(iVar18 + 0x20) + 0x20)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(iVar18 + 0x20) + 0x20)" (( "(") (binary_expression "*(int *)(iVar18 + 0x20) + 0x20" (pointer_expression "*(int *)(iVar18 + 0x20)" (* "*") (cast_expression "(int *)(iVar18 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x20)" (( "(") (binary_expression "iVar18 + 0x20" (identifier "iVar18") (+ "+") (number_literal "0x20")) () ")")))) (+ "+") (number_literal "0x20")) () ")"))))) (, ",") (binary_expression "puVar3 == PTR_DAT_0015b694 + -0x7df4" (identifier "puVar3") (== "==") (binary_expression "PTR_DAT_0015b694 + -0x7df4" (identifier "PTR_DAT_0015b694") (+ "+") (number_literal "-0x7df4")))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(puVar3 == PTR_DAT_0015b694 + -0x7e00)" (( "(") (binary_expression "puVar3 == PTR_DAT_0015b694 + -0x7e00" (identifier "puVar3") (== "==") (binary_expression "PTR_DAT_0015b694 + -0x7e00" (identifier "PTR_DAT_0015b694") (+ "+") (number_literal "-0x7e00"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c)))" (( "(") (parenthesized_expression "(puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))" (( "(") (binary_expression "puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c)" (binary_expression "puVar3 == PTR_DAT_0015b694 + -0x7e08" (identifier "puVar3") (== "==") (binary_expression "PTR_DAT_0015b694 + -0x7e08" (identifier "PTR_DAT_0015b694") (+ "+") (number_literal "-0x7e08"))) (|| "||") (parenthesized_expression "(puVar3 == PTR_DAT_0015b694 + -0x7e0c)" (( "(") (binary_expression "puVar3 == PTR_DAT_0015b694 + -0x7e0c" (identifier "puVar3") (== "==") (binary_expression "PTR_DAT_0015b694 + -0x7e0c" (identifier "PTR_DAT_0015b694") (+ "+") (number_literal "-0x7e0c"))) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_000c0c60;" (goto "goto") (statement_identifier "LAB_000c0c60") (; ";"))) (expression_statement "iVar18 = *(int *)(iVar18 + 0x18);" (assignment_expression "iVar18 = *(int *)(iVar18 + 0x18)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(iVar18 + 0x18)" (* "*") (cast_expression "(int *)(iVar18 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x18)" (( "(") (binary_expression "iVar18 + 0x18" (identifier "iVar18") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar18 != 0)" (( "(") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "piVar16 = *(int **)(param_1 + 8);" (assignment_expression "piVar16 = *(int **)(param_1 + 8)" (identifier "piVar16") (= "=") (pointer_expression "*(int **)(param_1 + 8)" (* "*") (cast_expression "(int **)(param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (piVar16 == (int *)0x0) {\n        piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      }" (if "if") (parenthesized_expression "(piVar16 == (int *)0x0)" (( "(") (binary_expression "piVar16 == (int *)0x0" (identifier "piVar16") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      }" ({ "{") (expression_statement "piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);" (assignment_expression "piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1)" (identifier "piVar16") (= "=") (cast_expression "(int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x371c))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x371c)" (* "*") (cast_expression "(code *)(PTR_LAB_0015b710 + -0x371c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b710 + -0x371c)" (( "(") (binary_expression "PTR_LAB_0015b710 + -0x371c" (identifier "PTR_LAB_0015b710") (+ "+") (number_literal "-0x371c")) () ")")))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))))) (; ";")) (} "}"))) (expression_statement "piVar11 = *(int **)(iVar14 + 4);" (assignment_expression "piVar11 = *(int **)(iVar14 + 4)" (identifier "piVar11") (= "=") (pointer_expression "*(int **)(iVar14 + 4)" (* "*") (cast_expression "(int **)(iVar14 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar14 + 4)" (( "(") (binary_expression "iVar14 + 4" (identifier "iVar14") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar17 = *(int *)(param_1 + 0x2c) + 1;" (assignment_expression "iVar17 = *(int *)(param_1 + 0x2c) + 1" (identifier "iVar17") (= "=") (binary_expression "*(int *)(param_1 + 0x2c) + 1" (pointer_expression "*(int *)(param_1 + 0x2c)" (* "*") (cast_expression "(int *)(param_1 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar4 = *(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30);" (assignment_expression "uVar4 = *(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30)" (* "*") (cast_expression "(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0x20) + 0x30)" (( "(") (binary_expression "*(int *)(param_2 + 0x20) + 0x30" (pointer_expression "*(int *)(param_2 + 0x20)" (* "*") (cast_expression "(int *)(param_2 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x20)" (( "(") (binary_expression "param_2 + 0x20" (identifier "param_2") (+ "+") (number_literal "0x20")) () ")")))) (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "iVar20 = (int)*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a);" (assignment_expression "iVar20 = (int)*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a)" (identifier "iVar20") (= "=") (cast_expression "(int)*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a)" (* "*") (cast_expression "(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a)" (( "(") (binary_expression "*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a" (pointer_expression "*(int *)(*(int *)(param_2 + 0x20) + 0x18)" (* "*") (cast_expression "(int *)(*(int *)(param_2 + 0x20) + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0x20) + 0x18)" (( "(") (binary_expression "*(int *)(param_2 + 0x20) + 0x18" (pointer_expression "*(int *)(param_2 + 0x20)" (* "*") (cast_expression "(int *)(param_2 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x20)" (( "(") (binary_expression "param_2 + 0x20" (identifier "param_2") (+ "+") (number_literal "0x20")) () ")")))) (+ "+") (number_literal "0x18")) () ")")))) (+ "+") (number_literal "0x2a")) () ")")))))) (; ";")) (expression_statement "iVar18 = iVar20 + iVar17;" (assignment_expression "iVar18 = iVar20 + iVar17" (identifier "iVar18") (= "=") (binary_expression "iVar20 + iVar17" (identifier "iVar20") (+ "+") (identifier "iVar17"))) (; ";")) (expression_statement "iVar5 = iVar20 + 2 + *(int *)(param_1 + 0x2c);" (assignment_expression "iVar5 = iVar20 + 2 + *(int *)(param_1 + 0x2c)" (identifier "iVar5") (= "=") (binary_expression "iVar20 + 2 + *(int *)(param_1 + 0x2c)" (binary_expression "iVar20 + 2" (identifier "iVar20") (+ "+") (number_literal "2")) (+ "+") (pointer_expression "*(int *)(param_1 + 0x2c)" (* "*") (cast_expression "(int *)(param_1 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")")))))) (; ";")) (if_statement "if (*(char *)(iVar14 + 0xe) == 'W') {\n        *(int *)(param_1 + 0x2c) = iVar5;\n        piVar19 = (int *)0x0;\n        if (0 < iVar20) goto LAB_000c0980;\n        if (piVar11 != (int *)0x0) {\n          local_50 = *piVar11;\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }\n      else {\n        piVar19 = *(int **)(iVar14 + 8);\n        *(int *)(param_1 + 0x2c) = iVar5;\n        if (iVar20 < 1) {\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }\n        puVar3 = PTR_LAB_0015b714;\n        if (piVar11 == (int *)0x0) {\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }\n        else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }\n        (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);\n        (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n        (*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);\n        (*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n        (*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1);\n        if (iVar5 != 0) {\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(*(char *)(iVar14 + 0xe) == 'W')" (( "(") (binary_expression "*(char *)(iVar14 + 0xe) == 'W'" (pointer_expression "*(char *)(iVar14 + 0xe)" (* "*") (cast_expression "(char *)(iVar14 + 0xe)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xe)" (( "(") (binary_expression "iVar14 + 0xe" (identifier "iVar14") (+ "+") (number_literal "0xe")) () ")")))) (== "==") (char_literal "'W'" (' "'") (character "W") (' "'"))) () ")")) (compound_statement "{\n        *(int *)(param_1 + 0x2c) = iVar5;\n        piVar19 = (int *)0x0;\n        if (0 < iVar20) goto LAB_000c0980;\n        if (piVar11 != (int *)0x0) {\n          local_50 = *piVar11;\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }\n        pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n      }" ({ "{") (expression_statement "*(int *)(param_1 + 0x2c) = iVar5;" (assignment_expression "*(int *)(param_1 + 0x2c) = iVar5" (pointer_expression "*(int *)(param_1 + 0x2c)" (* "*") (cast_expression "(int *)(param_1 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "piVar19 = (int *)0x0;" (assignment_expression "piVar19 = (int *)0x0" (identifier "piVar19") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (0 < iVar20) goto LAB_000c0980;" (if "if") (parenthesized_expression "(0 < iVar20)" (( "(") (binary_expression "0 < iVar20" (number_literal "0") (< "<") (identifier "iVar20")) () ")")) (goto_statement "goto LAB_000c0980;" (goto "goto") (statement_identifier "LAB_000c0980") (; ";"))) (if_statement "if (piVar11 != (int *)0x0) {\n          local_50 = *piVar11;\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }" (if "if") (parenthesized_expression "(piVar11 != (int *)0x0)" (( "(") (binary_expression "piVar11 != (int *)0x0" (identifier "piVar11") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          local_50 = *piVar11;\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          goto LAB_000c09d4;\n        }" ({ "{") (expression_statement "local_50 = *piVar11;" (assignment_expression "local_50 = *piVar11" (identifier "local_50") (= "=") (pointer_expression "*piVar11" (* "*") (identifier "piVar11"))) (; ";")) (expression_statement "pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);" (assignment_expression "pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890)" (identifier "pcVar15") (= "=") (cast_expression "(code *)(PTR_LAB_0015b710 + -0x3890)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b710 + -0x3890)" (( "(") (binary_expression "PTR_LAB_0015b710 + -0x3890" (identifier "PTR_LAB_0015b710") (+ "+") (number_literal "-0x3890")) () ")")))) (; ";")) (goto_statement "goto LAB_000c09d4;" (goto "goto") (statement_identifier "LAB_000c09d4") (; ";")) (} "}"))) (expression_statement "pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);" (assignment_expression "pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890)" (identifier "pcVar15") (= "=") (cast_expression "(code *)(PTR_LAB_0015b710 + -0x3890)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b710 + -0x3890)" (( "(") (binary_expression "PTR_LAB_0015b710 + -0x3890" (identifier "PTR_LAB_0015b710") (+ "+") (number_literal "-0x3890")) () ")")))) (; ";")) (expression_statement "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);" (assignment_expression "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764)" (identifier "pcVar24") (= "=") (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2764)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b710 + -0x2764)" (( "(") (binary_expression "PTR_LAB_0015b710 + -0x2764" (identifier "PTR_LAB_0015b710") (+ "+") (number_literal "-0x2764")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n        piVar19 = *(int **)(iVar14 + 8);\n        *(int *)(param_1 + 0x2c) = iVar5;\n        if (iVar20 < 1) {\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }\n        puVar3 = PTR_LAB_0015b714;\n        if (piVar11 == (int *)0x0) {\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }\n        else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }\n        (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);\n        (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n        (*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);\n        (*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n        (*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1);\n        if (iVar5 != 0) {\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }\n      }" (else "else") (compound_statement "{\n        piVar19 = *(int **)(iVar14 + 8);\n        *(int *)(param_1 + 0x2c) = iVar5;\n        if (iVar20 < 1) {\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }\n        puVar3 = PTR_LAB_0015b714;\n        if (piVar11 == (int *)0x0) {\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }\n        else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }\n        (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);\n        (*pcVar15)(piVar16,0xc,param_4,param_5,0);\n        (*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);\n        (*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);\n        (*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1);\n        if (iVar5 != 0) {\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }\n      }" ({ "{") (expression_statement "piVar19 = *(int **)(iVar14 + 8);" (assignment_expression "piVar19 = *(int **)(iVar14 + 8)" (identifier "piVar19") (= "=") (pointer_expression "*(int **)(iVar14 + 8)" (* "*") (cast_expression "(int **)(iVar14 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar14 + 8)" (( "(") (binary_expression "iVar14 + 8" (identifier "iVar14") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*(int *)(param_1 + 0x2c) = iVar5;" (assignment_expression "*(int *)(param_1 + 0x2c) = iVar5" (pointer_expression "*(int *)(param_1 + 0x2c)" (* "*") (cast_expression "(int *)(param_1 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (if_statement "if (iVar20 < 1) {\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }\n        else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }" (if "if") (parenthesized_expression "(iVar20 < 1)" (( "(") (binary_expression "iVar20 < 1" (identifier "iVar20") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n        }" ({ "{") (expression_statement "pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);" (assignment_expression "pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890)" (identifier "pcVar15") (= "=") (cast_expression "(code *)(PTR_LAB_0015b710 + -0x3890)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b710 + -0x3890)" (( "(") (binary_expression "PTR_LAB_0015b710 + -0x3890" (identifier "PTR_LAB_0015b710") (+ "+") (number_literal "-0x3890")) () ")")))) (; ";")) (} "}")) (else_clause "else {\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }" (else "else") (compound_statement "{\nLAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);\n          iVar5 = 0;\n          do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);\n        }" ({ "{") (labeled_statement "LAB_000c0980:\n          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);" (statement_identifier "LAB_000c0980") (: ":") (expression_statement "pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);" (assignment_expression "pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890)" (identifier "pcVar15") (= "=") (cast_expression "(code *)(PTR_LAB_0015b710 + -0x3890)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b710 + -0x3890)" (( "(") (binary_expression "PTR_LAB_0015b710 + -0x3890" (identifier "PTR_LAB_0015b710") (+ "+") (number_literal "-0x3890")) () ")")))) (; ";"))) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          } while (iVar23 < iVar20);" (do "do") (compound_statement "{\n            iVar23 = iVar5 + 1;\n            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);\n            iVar5 = iVar23;\n          }" ({ "{") (expression_statement "iVar23 = iVar5 + 1;" (assignment_expression "iVar23 = iVar5 + 1" (identifier "iVar23") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);" (call_expression "(*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5)" (( "(") (identifier "piVar16") (, ",") (number_literal "0x5a") (, ",") (identifier "uVar4") (, ",") (identifier "iVar5") (, ",") (binary_expression "iVar17 + iVar5" (identifier "iVar17") (+ "+") (identifier "iVar5")) () ")"))) (; ";")) (expression_statement "iVar5 = iVar23;" (assignment_expression "iVar5 = iVar23" (identifier "iVar5") (= "=") (identifier "iVar23")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar23 < iVar20)" (( "(") (binary_expression "iVar23 < iVar20" (identifier "iVar23") (< "<") (identifier "iVar20")) () ")")) (; ";")) (} "}")))) (expression_statement "puVar3 = PTR_LAB_0015b714;" (assignment_expression "puVar3 = PTR_LAB_0015b714" (identifier "puVar3") (= "=") (identifier "PTR_LAB_0015b714")) (; ";")) (if_statement "if (piVar11 == (int *)0x0) {\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }\n        else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }" (if "if") (parenthesized_expression "(piVar11 == (int *)0x0)" (( "(") (binary_expression "piVar11 == (int *)0x0" (identifier "piVar11") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }\n          iVar5 = *piVar19;\n          local_60 = iVar5;\n          if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }\n          iVar5 = 0;\n          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n          iVar20 = piVar16[0x1b];\n        }" ({ "{") (if_statement "if (piVar19 == (int *)0x0) {\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }" (if "if") (parenthesized_expression "(piVar19 == (int *)0x0)" (( "(") (binary_expression "piVar19 == (int *)0x0" (identifier "piVar19") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            goto LAB_000c0b50;\n          }" ({ "{") (expression_statement "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);" (assignment_expression "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764)" (identifier "pcVar24") (= "=") (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2764)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b710 + -0x2764)" (( "(") (binary_expression "PTR_LAB_0015b710 + -0x2764" (identifier "PTR_LAB_0015b710") (+ "+") (number_literal "-0x2764")) () ")")))) (; ";")) (goto_statement "goto LAB_000c0b50;" (goto "goto") (statement_identifier "LAB_000c0b50") (; ";")) (} "}"))) (expression_statement "iVar5 = *piVar19;" (assignment_expression "iVar5 = *piVar19" (identifier "iVar5") (= "=") (pointer_expression "*piVar19" (* "*") (identifier "piVar19"))) (; ";")) (expression_statement "local_60 = iVar5;" (assignment_expression "local_60 = iVar5" (identifier "local_60") (= "=") (identifier "iVar5")) (; ";")) (if_statement "if (*(char *)(iVar14 + 0xc) == 'V') {\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }" (if "if") (parenthesized_expression "(*(char *)(iVar14 + 0xc) == 'V')" (( "(") (binary_expression "*(char *)(iVar14 + 0xc) == 'V'" (pointer_expression "*(char *)(iVar14 + 0xc)" (* "*") (cast_expression "(char *)(iVar14 + 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xc)" (( "(") (binary_expression "iVar14 + 0xc" (identifier "iVar14") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (char_literal "'V'" (' "'") (character "V") (' "'"))) () ")")) (compound_statement "{\n            iVar20 = 0;\n            iVar23 = *(int *)(iVar14 + 0x38);\n            local_50 = iVar17 + *(int *)(iVar14 + 0x40);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            goto LAB_000c1e74;\n          }" ({ "{") (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" (identifier "iVar20") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar23 = *(int *)(iVar14 + 0x38);" (assignment_expression "iVar23 = *(int *)(iVar14 + 0x38)" (identifier "iVar23") (= "=") (pointer_expression "*(int *)(iVar14 + 0x38)" (* "*") (cast_expression "(int *)(iVar14 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x38)" (( "(") (binary_expression "iVar14 + 0x38" (identifier "iVar14") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "local_50 = iVar17 + *(int *)(iVar14 + 0x40);" (assignment_expression "local_50 = iVar17 + *(int *)(iVar14 + 0x40)" (identifier "local_50") (= "=") (binary_expression "iVar17 + *(int *)(iVar14 + 0x40)" (identifier "iVar17") (+ "+") (pointer_expression "*(int *)(iVar14 + 0x40)" (* "*") (cast_expression "(int *)(iVar14 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x40)" (( "(") (binary_expression "iVar14 + 0x40" (identifier "iVar14") (+ "+") (number_literal "0x40")) () ")")))))) (; ";")) (expression_statement "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);" (assignment_expression "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764)" (identifier "pcVar24") (= "=") (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2764)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b710 + -0x2764)" (( "(") (binary_expression "PTR_LAB_0015b710 + -0x2764" (identifier "PTR_LAB_0015b710") (+ "+") (number_literal "-0x2764")) () ")")))) (; ";")) (expression_statement "local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);" (assignment_expression "local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958)" (identifier "local_5c") (= "=") (cast_expression "(code *)(PTR_LAB_0015b6c0 + -0x5958)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b6c0 + -0x5958)" (( "(") (binary_expression "PTR_LAB_0015b6c0 + -0x5958" (identifier "PTR_LAB_0015b6c0") (+ "+") (number_literal "-0x5958")) () ")")))) (; ";")) (goto_statement "goto LAB_000c1e74;" (goto "goto") (statement_identifier "LAB_000c1e74") (; ";")) (} "}"))) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);" (assignment_expression "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764)" (identifier "pcVar24") (= "=") (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2764)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b710 + -0x2764)" (( "(") (binary_expression "PTR_LAB_0015b710 + -0x2764" (identifier "PTR_LAB_0015b710") (+ "+") (number_literal "-0x2764")) () ")")))) (; ";")) (expression_statement "(*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');" (call_expression "(*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R')" (parenthesized_expression "(*pcVar24)" (( "(") (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) () ")")) (argument_list "(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R')" (( "(") (identifier "param_1") (, ",") (identifier "iVar14") (, ",") (binary_expression "*(char *)(iVar14 + 0xd) == 'R'" (pointer_expression "*(char *)(iVar14 + 0xd)" (* "*") (cast_expression "(char *)(iVar14 + 0xd)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xd)" (( "(") (binary_expression "iVar14 + 0xd" (identifier "iVar14") (+ "+") (number_literal "0xd")) () ")")))) (== "==") (char_literal "'R'" (' "'") (character "R") (' "'"))) () ")"))) (; ";")) (expression_statement "iVar20 = piVar16[0x1b];" (assignment_expression "iVar20 = piVar16[0x1b]" (identifier "iVar20") (= "=") (subscript_expression "piVar16[0x1b]" (identifier "piVar16") ([ "[") (number_literal "0x1b") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }" (else "else") (compound_statement "{\n          local_50 = *piVar11;\n          if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }\n          iVar20 = piVar16[0x1b];\n        }" ({ "{") (expression_statement "local_50 = *piVar11;" (assignment_expression "local_50 = *piVar11" (identifier "local_50") (= "=") (pointer_expression "*piVar11" (* "*") (identifier "piVar11"))) (; ";")) (if_statement "if (piVar19 == (int *)0x0) {\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }\n          else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }" (if "if") (parenthesized_expression "(piVar19 == (int *)0x0)" (( "(") (binary_expression "piVar19 == (int *)0x0" (identifier "piVar19") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);\n            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            local_60 = local_50;\n          }" ({ "{") (labeled_statement "LAB_000c09d4:\n            iVar5 = *(int *)(iVar14 + 0x40);" (statement_identifier "LAB_000c09d4") (: ":") (expression_statement "iVar5 = *(int *)(iVar14 + 0x40);" (assignment_expression "iVar5 = *(int *)(iVar14 + 0x40)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar14 + 0x40)" (* "*") (cast_expression "(int *)(iVar14 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x40)" (( "(") (binary_expression "iVar14 + 0x40" (identifier "iVar14") (+ "+") (number_literal "0x40")) () ")"))))) (; ";"))) (expression_statement "uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);" (assignment_expression "uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0)" (identifier "uVar4") (= "=") (call_expression "(*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b714 + -0x7fc4))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0015b714 + -0x7fc4)" (* "*") (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7fc4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b714 + -0x7fc4)" (( "(") (binary_expression "PTR_LAB_0015b714 + -0x7fc4" (identifier "PTR_LAB_0015b714") (+ "+") (number_literal "-0x7fc4")) () ")")))) () ")")) (argument_list "(param_1,piVar11,0,0)" (( "(") (identifier "param_1") (, ",") (identifier "piVar11") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);" (assignment_expression "iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50)" (identifier "iVar5") (= "=") (call_expression "(*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50)" (( "(") (identifier "piVar16") (, ",") (number_literal "0x57") (, ",") (binary_expression "iVar17 + iVar5" (identifier "iVar17") (+ "+") (identifier "iVar5")) (, ",") (pointer_expression "*(undefined4 *)(iVar14 + 0x38)" (* "*") (cast_expression "(undefined4 *)(iVar14 + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x38)" (( "(") (binary_expression "iVar14 + 0x38" (identifier "iVar14") (+ "+") (number_literal "0x38")) () ")")))) (, ",") (identifier "local_50") () ")")))) (; ";")) (expression_statement "(*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);" (call_expression "(*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b6c0 + -0x5958))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0015b6c0 + -0x5958)" (* "*") (cast_expression "(code *)(PTR_LAB_0015b6c0 + -0x5958)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b6c0 + -0x5958)" (( "(") (binary_expression "PTR_LAB_0015b6c0 + -0x5958" (identifier "PTR_LAB_0015b6c0") (+ "+") (number_literal "-0x5958")) () ")")))) () ")")) (argument_list "(piVar16,uVar4,0xfffffff7)" (( "(") (identifier "piVar16") (, ",") (identifier "uVar4") (, ",") (number_literal "0xfffffff7") () ")"))) (; ";")) (expression_statement "iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);" (assignment_expression "iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2)" (identifier "iVar5") (= "=") (call_expression "(*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar16,0x10,iVar5 + 2,0,iVar5 + 2)" (( "(") (identifier "piVar16") (, ",") (number_literal "0x10") (, ",") (binary_expression "iVar5 + 2" (identifier "iVar5") (+ "+") (number_literal "2")) (, ",") (number_literal "0") (, ",") (binary_expression "iVar5 + 2" (identifier "iVar5") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);" (assignment_expression "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764)" (identifier "pcVar24") (= "=") (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2764)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b710 + -0x2764)" (( "(") (binary_expression "PTR_LAB_0015b710 + -0x2764" (identifier "PTR_LAB_0015b710") (+ "+") (number_literal "-0x2764")) () ")")))) (; ";")) (expression_statement "(*pcVar24)(param_1,iVar14,1);" (call_expression "(*pcVar24)(param_1,iVar14,1)" (parenthesized_expression "(*pcVar24)" (( "(") (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) () ")")) (argument_list "(param_1,iVar14,1)" (( "(") (identifier "param_1") (, ",") (identifier "iVar14") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "local_60 = local_50;" (assignment_expression "local_60 = local_50" (identifier "local_60") (= "=") (identifier "local_50")) (; ";")) (} "}")) (else_clause "else {\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }" (else "else") (compound_statement "{\n            iVar20 = *(int *)(iVar14 + 0x40);\n            iVar5 = *piVar19;\n            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);\n            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );\n            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);\n            (*local_5c)(piVar16,uVar4,0xfffffff7);\n            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);\n            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);\n            (*pcVar24)(param_1,iVar14,1);\n            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);\n            iVar12 = *(int *)(iVar14 + 0x40);\n            iVar23 = *(int *)(iVar14 + 0x38);\n            if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }\n            local_60 = local_50 + iVar5;\n            if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }\n            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');\n            if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }\n          }" ({ "{") (expression_statement "iVar20 = *(int *)(iVar14 + 0x40);" (assignment_expression "iVar20 = *(int *)(iVar14 + 0x40)" (identifier "iVar20") (= "=") (pointer_expression "*(int *)(iVar14 + 0x40)" (* "*") (cast_expression "(int *)(iVar14 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x40)" (( "(") (binary_expression "iVar14 + 0x40" (identifier "iVar14") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "iVar5 = *piVar19;" (assignment_expression "iVar5 = *piVar19" (identifier "iVar5") (= "=") (pointer_expression "*piVar19" (* "*") (identifier "piVar19"))) (; ";")) (expression_statement "uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);" (assignment_expression "uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0)" (identifier "uVar4") (= "=") (call_expression "(*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b714 + -0x7fc4))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0015b714 + -0x7fc4)" (* "*") (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7fc4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b714 + -0x7fc4)" (( "(") (binary_expression "PTR_LAB_0015b714 + -0x7fc4" (identifier "PTR_LAB_0015b714") (+ "+") (number_literal "-0x7fc4")) () ")")))) () ")")) (argument_list "(param_1,piVar11,0,0)" (( "(") (identifier "param_1") (, ",") (identifier "piVar11") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               );" (assignment_expression "iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               )" (identifier "iVar20") (= "=") (call_expression "(*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               )" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50\n                               )" (( "(") (identifier "piVar16") (, ",") (number_literal "0x57") (, ",") (binary_expression "iVar17 + iVar20" (identifier "iVar17") (+ "+") (identifier "iVar20")) (, ",") (pointer_expression "*(undefined4 *)(iVar14 + 0x38)" (* "*") (cast_expression "(undefined4 *)(iVar14 + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x38)" (( "(") (binary_expression "iVar14 + 0x38" (identifier "iVar14") (+ "+") (number_literal "0x38")) () ")")))) (, ",") (identifier "local_50") () ")")))) (; ";")) (expression_statement "local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);" (assignment_expression "local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958)" (identifier "local_5c") (= "=") (cast_expression "(code *)(PTR_LAB_0015b6c0 + -0x5958)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b6c0 + -0x5958)" (( "(") (binary_expression "PTR_LAB_0015b6c0 + -0x5958" (identifier "PTR_LAB_0015b6c0") (+ "+") (number_literal "-0x5958")) () ")")))) (; ";")) (expression_statement "(*local_5c)(piVar16,uVar4,0xfffffff7);" (call_expression "(*local_5c)(piVar16,uVar4,0xfffffff7)" (parenthesized_expression "(*local_5c)" (( "(") (pointer_expression "*local_5c" (* "*") (identifier "local_5c")) () ")")) (argument_list "(piVar16,uVar4,0xfffffff7)" (( "(") (identifier "piVar16") (, ",") (identifier "uVar4") (, ",") (number_literal "0xfffffff7") () ")"))) (; ";")) (expression_statement "iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);" (assignment_expression "iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2)" (identifier "iVar9") (= "=") (call_expression "(*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar16,0x10,iVar20 + 2,0,iVar20 + 2)" (( "(") (identifier "piVar16") (, ",") (number_literal "0x10") (, ",") (binary_expression "iVar20 + 2" (identifier "iVar20") (+ "+") (number_literal "2")) (, ",") (number_literal "0") (, ",") (binary_expression "iVar20 + 2" (identifier "iVar20") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);" (assignment_expression "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764)" (identifier "pcVar24") (= "=") (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2764)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b710 + -0x2764)" (( "(") (binary_expression "PTR_LAB_0015b710 + -0x2764" (identifier "PTR_LAB_0015b710") (+ "+") (number_literal "-0x2764")) () ")")))) (; ";")) (expression_statement "(*pcVar24)(param_1,iVar14,1);" (call_expression "(*pcVar24)(param_1,iVar14,1)" (parenthesized_expression "(*pcVar24)" (( "(") (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) () ")")) (argument_list "(param_1,iVar14,1)" (( "(") (identifier "param_1") (, ",") (identifier "iVar14") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);" (assignment_expression "iVar20 = (*pcVar15)(piVar16,0xb,0,0,0)" (identifier "iVar20") (= "=") (call_expression "(*pcVar15)(piVar16,0xb,0,0,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar16,0xb,0,0,0)" (( "(") (identifier "piVar16") (, ",") (number_literal "0xb") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "iVar12 = *(int *)(iVar14 + 0x40);" (assignment_expression "iVar12 = *(int *)(iVar14 + 0x40)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(iVar14 + 0x40)" (* "*") (cast_expression "(int *)(iVar14 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x40)" (( "(") (binary_expression "iVar14 + 0x40" (identifier "iVar14") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "iVar23 = *(int *)(iVar14 + 0x38);" (assignment_expression "iVar23 = *(int *)(iVar14 + 0x38)" (identifier "iVar23") (= "=") (pointer_expression "*(int *)(iVar14 + 0x38)" (* "*") (cast_expression "(int *)(iVar14 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x38)" (( "(") (binary_expression "iVar14 + 0x38" (identifier "iVar14") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (if_statement "if (iVar9 != 0) {\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              iVar13 = piVar16[0x1b];\n              if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }\n            }" ({ "{") (expression_statement "iVar13 = piVar16[0x1b];" (assignment_expression "iVar13 = piVar16[0x1b]" (identifier "iVar13") (= "=") (subscript_expression "piVar16[0x1b]" (identifier "piVar16") ([ "[") (number_literal "0x1b") (] "]"))) (; ";")) (if_statement "if (iVar9 < 0) {\n                iVar9 = iVar13 + -1;\n              }" (if "if") (parenthesized_expression "(iVar9 < 0)" (( "(") (binary_expression "iVar9 < 0" (identifier "iVar9") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                iVar9 = iVar13 + -1;\n              }" ({ "{") (expression_statement "iVar9 = iVar13 + -1;" (assignment_expression "iVar9 = iVar13 + -1" (identifier "iVar9") (= "=") (binary_expression "iVar13 + -1" (identifier "iVar13") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }" (if "if") (parenthesized_expression "(*(char *)(*piVar16 + 0x51) == '\0')" (( "(") (binary_expression "*(char *)(*piVar16 + 0x51) == '\0'" (pointer_expression "*(char *)(*piVar16 + 0x51)" (* "*") (cast_expression "(char *)(*piVar16 + 0x51)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar16 + 0x51)" (( "(") (binary_expression "*piVar16 + 0x51" (pointer_expression "*piVar16" (* "*") (identifier "piVar16")) (+ "+") (number_literal "0x51")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;\n              }" ({ "{") (expression_statement "*(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;" (assignment_expression "*(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13" (pointer_expression "*(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8)" (* "*") (cast_expression "(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar16[0x1a] + iVar9 * 0x14 + 8)" (( "(") (binary_expression "piVar16[0x1a] + iVar9 * 0x14 + 8" (binary_expression "piVar16[0x1a] + iVar9 * 0x14" (subscript_expression "piVar16[0x1a]" (identifier "piVar16") ([ "[") (number_literal "0x1a") (] "]")) (+ "+") (binary_expression "iVar9 * 0x14" (identifier "iVar9") (* "*") (number_literal "0x14"))) (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar13")) (; ";")) (} "}")) (else_clause "else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }" (else "else") (compound_statement "{\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;\n              }" ({ "{") (expression_statement "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;" (assignment_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13" (pointer_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c)" (* "*") (cast_expression "(int *)(PTR_DAT_0015b5d8 + -0x450c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x450c)" (( "(") (binary_expression "PTR_DAT_0015b5d8 + -0x450c" (identifier "PTR_DAT_0015b5d8") (+ "+") (number_literal "-0x450c")) () ")")))) (= "=") (identifier "iVar13")) (; ";")) (} "}")))) (} "}"))) (expression_statement "local_60 = local_50 + iVar5;" (assignment_expression "local_60 = local_50 + iVar5" (identifier "local_60") (= "=") (binary_expression "local_50 + iVar5" (identifier "local_50") (+ "+") (identifier "iVar5"))) (; ";")) (if_statement "if (*(char *)(iVar14 + 0xc) == 'V') {\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }\n            else {\n              iVar5 = 0;\n            }" (if "if") (parenthesized_expression "(*(char *)(iVar14 + 0xc) == 'V')" (( "(") (binary_expression "*(char *)(iVar14 + 0xc) == 'V'" (pointer_expression "*(char *)(iVar14 + 0xc)" (* "*") (cast_expression "(char *)(iVar14 + 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xc)" (( "(") (binary_expression "iVar14 + 0xc" (identifier "iVar14") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (char_literal "'V'" (' "'") (character "V") (' "'"))) () ")")) (compound_statement "{\n              iVar23 = local_50 + iVar23;\n              local_50 = iVar17 + iVar12 + local_50;\nLAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);\n              uVar4 = (*local_4c)(param_1,piVar19,0,0);\n              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);\n              (*local_5c)(piVar16,uVar4,0xfffffff7);\n              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);\n            }" ({ "{") (expression_statement "iVar23 = local_50 + iVar23;" (assignment_expression "iVar23 = local_50 + iVar23" (identifier "iVar23") (= "=") (binary_expression "local_50 + iVar23" (identifier "local_50") (+ "+") (identifier "iVar23"))) (; ";")) (expression_statement "local_50 = iVar17 + iVar12 + local_50;" (assignment_expression "local_50 = iVar17 + iVar12 + local_50" (identifier "local_50") (= "=") (binary_expression "iVar17 + iVar12 + local_50" (binary_expression "iVar17 + iVar12" (identifier "iVar17") (+ "+") (identifier "iVar12")) (+ "+") (identifier "local_50"))) (; ";")) (labeled_statement "LAB_000c1e74:\n              local_4c = (code *)(puVar3 + -0x7fc4);" (statement_identifier "LAB_000c1e74") (: ":") (expression_statement "local_4c = (code *)(puVar3 + -0x7fc4);" (assignment_expression "local_4c = (code *)(puVar3 + -0x7fc4)" (identifier "local_4c") (= "=") (cast_expression "(code *)(puVar3 + -0x7fc4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -0x7fc4)" (( "(") (binary_expression "puVar3 + -0x7fc4" (identifier "puVar3") (+ "+") (number_literal "-0x7fc4")) () ")")))) (; ";"))) (expression_statement "uVar4 = (*local_4c)(param_1,piVar19,0,0);" (assignment_expression "uVar4 = (*local_4c)(param_1,piVar19,0,0)" (identifier "uVar4") (= "=") (call_expression "(*local_4c)(param_1,piVar19,0,0)" (parenthesized_expression "(*local_4c)" (( "(") (pointer_expression "*local_4c" (* "*") (identifier "local_4c")) () ")")) (argument_list "(param_1,piVar19,0,0)" (( "(") (identifier "param_1") (, ",") (identifier "piVar19") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);" (assignment_expression "iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5)" (identifier "iVar5") (= "=") (call_expression "(*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar16,0x57,local_50,iVar23,iVar5)" (( "(") (identifier "piVar16") (, ",") (number_literal "0x57") (, ",") (identifier "local_50") (, ",") (identifier "iVar23") (, ",") (identifier "iVar5") () ")")))) (; ";")) (expression_statement "(*local_5c)(piVar16,uVar4,0xfffffff7);" (call_expression "(*local_5c)(piVar16,uVar4,0xfffffff7)" (parenthesized_expression "(*local_5c)" (( "(") (pointer_expression "*local_5c" (* "*") (identifier "local_5c")) () ")")) (argument_list "(piVar16,uVar4,0xfffffff7)" (( "(") (identifier "piVar16") (, ",") (identifier "uVar4") (, ",") (number_literal "0xfffffff7") () ")"))) (; ";")) (expression_statement "iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);" (assignment_expression "iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2)" (identifier "iVar5") (= "=") (call_expression "(*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar16,0x10,iVar5 + 2,0,iVar5 + 2)" (( "(") (identifier "piVar16") (, ",") (number_literal "0x10") (, ",") (binary_expression "iVar5 + 2" (identifier "iVar5") (+ "+") (number_literal "2")) (, ",") (number_literal "0") (, ",") (binary_expression "iVar5 + 2" (identifier "iVar5") (+ "+") (number_literal "2")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n              iVar5 = 0;\n            }" (else "else") (compound_statement "{\n              iVar5 = 0;\n            }" ({ "{") (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "(*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');" (call_expression "(*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R')" (parenthesized_expression "(*pcVar24)" (( "(") (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) () ")")) (argument_list "(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R')" (( "(") (identifier "param_1") (, ",") (identifier "iVar14") (, ",") (binary_expression "*(char *)(iVar14 + 0xd) == 'R'" (pointer_expression "*(char *)(iVar14 + 0xd)" (* "*") (cast_expression "(char *)(iVar14 + 0xd)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xd)" (( "(") (binary_expression "iVar14 + 0xd" (identifier "iVar14") (+ "+") (number_literal "0xd")) () ")")))) (== "==") (char_literal "'R'" (' "'") (character "R") (' "'"))) () ")"))) (; ";")) (if_statement "if (iVar20 != 0) {\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }" (if "if") (parenthesized_expression "(iVar20 != 0)" (( "(") (binary_expression "iVar20 != 0" (identifier "iVar20") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              iVar23 = piVar16[0x1b];\n              if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }\n              if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }\n            }" ({ "{") (expression_statement "iVar23 = piVar16[0x1b];" (assignment_expression "iVar23 = piVar16[0x1b]" (identifier "iVar23") (= "=") (subscript_expression "piVar16[0x1b]" (identifier "piVar16") ([ "[") (number_literal "0x1b") (] "]"))) (; ";")) (if_statement "if (iVar20 < 0) {\n                iVar20 = iVar23 + -1;\n              }" (if "if") (parenthesized_expression "(iVar20 < 0)" (( "(") (binary_expression "iVar20 < 0" (identifier "iVar20") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                iVar20 = iVar23 + -1;\n              }" ({ "{") (expression_statement "iVar20 = iVar23 + -1;" (assignment_expression "iVar20 = iVar23 + -1" (identifier "iVar20") (= "=") (binary_expression "iVar23 + -1" (identifier "iVar23") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(*piVar16 + 0x51) == '\0') {\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }\n              else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }" (if "if") (parenthesized_expression "(*(char *)(*piVar16 + 0x51) == '\0')" (( "(") (binary_expression "*(char *)(*piVar16 + 0x51) == '\0'" (pointer_expression "*(char *)(*piVar16 + 0x51)" (* "*") (cast_expression "(char *)(*piVar16 + 0x51)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar16 + 0x51)" (( "(") (binary_expression "*piVar16 + 0x51" (pointer_expression "*piVar16" (* "*") (identifier "piVar16")) (+ "+") (number_literal "0x51")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;\n              }" ({ "{") (expression_statement "*(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;" (assignment_expression "*(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23" (pointer_expression "*(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8)" (* "*") (cast_expression "(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar16[0x1a] + iVar20 * 0x14 + 8)" (( "(") (binary_expression "piVar16[0x1a] + iVar20 * 0x14 + 8" (binary_expression "piVar16[0x1a] + iVar20 * 0x14" (subscript_expression "piVar16[0x1a]" (identifier "piVar16") ([ "[") (number_literal "0x1a") (] "]")) (+ "+") (binary_expression "iVar20 * 0x14" (identifier "iVar20") (* "*") (number_literal "0x14"))) (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar23")) (; ";")) (} "}")) (else_clause "else {\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }" (else "else") (compound_statement "{\n                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;\n              }" ({ "{") (expression_statement "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;" (assignment_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23" (pointer_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c)" (* "*") (cast_expression "(int *)(PTR_DAT_0015b5d8 + -0x450c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x450c)" (( "(") (binary_expression "PTR_DAT_0015b5d8 + -0x450c" (identifier "PTR_DAT_0015b5d8") (+ "+") (number_literal "-0x450c")) () ")")))) (= "=") (identifier "iVar23")) (; ";")) (} "}")))) (} "}"))) (} "}")))) (expression_statement "iVar20 = piVar16[0x1b];" (assignment_expression "iVar20 = piVar16[0x1b]" (identifier "iVar20") (= "=") (subscript_expression "piVar16[0x1b]" (identifier "piVar16") ([ "[") (number_literal "0x1b") (] "]"))) (; ";")) (} "}")))) (expression_statement "(*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);" (call_expression "(*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0)" (( "(") (identifier "piVar16") (, ",") (number_literal "0x24") (, ",") (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar14 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x24)" (( "(") (binary_expression "iVar14 + 0x24" (identifier "iVar14") (+ "+") (number_literal "0x24")) () ")")))) (, ",") (binary_expression "iVar20 + 3" (identifier "iVar20") (+ "+") (number_literal "3")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*pcVar15)(piVar16,0xc,param_4,param_5,0);" (call_expression "(*pcVar15)(piVar16,0xc,param_4,param_5,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar16,0xc,param_4,param_5,0)" (( "(") (identifier "piVar16") (, ",") (number_literal "0xc") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);" (call_expression "(*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0)" (( "(") (identifier "piVar16") (, ",") (number_literal "5") (, ",") (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar14 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x24)" (( "(") (binary_expression "iVar14 + 0x24" (identifier "iVar14") (+ "+") (number_literal "0x24")) () ")")))) (, ",") (binary_expression "piVar16[0x1b] + -1" (subscript_expression "piVar16[0x1b]" (identifier "piVar16") ([ "[") (number_literal "0x1b") (] "]")) (+ "+") (number_literal "-1")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);" (call_expression "(*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0)" (( "(") (identifier "piVar16") (, ",") (number_literal "0x8a") (, ",") (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar14 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x24)" (( "(") (binary_expression "iVar14 + 0x24" (identifier "iVar14") (+ "+") (number_literal "0x24")) () ")")))) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1);" (call_expression "(*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),\n                   local_60 + -1)" (( "(") (identifier "piVar16") (, ",") (number_literal "0x4e") (, ",") (binary_expression "iVar17 + *(int *)(iVar14 + 0x40)" (identifier "iVar17") (+ "+") (pointer_expression "*(int *)(iVar14 + 0x40)" (* "*") (cast_expression "(int *)(iVar14 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x40)" (( "(") (binary_expression "iVar14 + 0x40" (identifier "iVar14") (+ "+") (number_literal "0x40")) () ")"))))) (, ",") (pointer_expression "*(undefined4 *)(iVar14 + 0x38)" (* "*") (cast_expression "(undefined4 *)(iVar14 + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x38)" (( "(") (binary_expression "iVar14 + 0x38" (identifier "iVar14") (+ "+") (number_literal "0x38")) () ")")))) (, ",") (binary_expression "local_60 + -1" (identifier "local_60") (+ "+") (number_literal "-1")) () ")"))) (; ";")) (if_statement "if (iVar5 != 0) {\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          iVar20 = piVar16[0x1b];\n          if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }\n          if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }\n        }" ({ "{") (expression_statement "iVar20 = piVar16[0x1b];" (assignment_expression "iVar20 = piVar16[0x1b]" (identifier "iVar20") (= "=") (subscript_expression "piVar16[0x1b]" (identifier "piVar16") ([ "[") (number_literal "0x1b") (] "]"))) (; ";")) (if_statement "if (iVar5 < 0) {\n            iVar5 = iVar20 + -1;\n          }" (if "if") (parenthesized_expression "(iVar5 < 0)" (( "(") (binary_expression "iVar5 < 0" (identifier "iVar5") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            iVar5 = iVar20 + -1;\n          }" ({ "{") (expression_statement "iVar5 = iVar20 + -1;" (assignment_expression "iVar5 = iVar20 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar20 + -1" (identifier "iVar20") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(*piVar16 + 0x51) == '\0') {\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }\n          else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }" (if "if") (parenthesized_expression "(*(char *)(*piVar16 + 0x51) == '\0')" (( "(") (binary_expression "*(char *)(*piVar16 + 0x51) == '\0'" (pointer_expression "*(char *)(*piVar16 + 0x51)" (* "*") (cast_expression "(char *)(*piVar16 + 0x51)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar16 + 0x51)" (( "(") (binary_expression "*piVar16 + 0x51" (pointer_expression "*piVar16" (* "*") (identifier "piVar16")) (+ "+") (number_literal "0x51")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;\n          }" ({ "{") (expression_statement "*(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;" (assignment_expression "*(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20" (pointer_expression "*(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8)" (* "*") (cast_expression "(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar16[0x1a] + iVar5 * 0x14 + 8)" (( "(") (binary_expression "piVar16[0x1a] + iVar5 * 0x14 + 8" (binary_expression "piVar16[0x1a] + iVar5 * 0x14" (subscript_expression "piVar16[0x1a]" (identifier "piVar16") ([ "[") (number_literal "0x1a") (] "]")) (+ "+") (binary_expression "iVar5 * 0x14" (identifier "iVar5") (* "*") (number_literal "0x14"))) (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar20")) (; ";")) (} "}")) (else_clause "else {\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }" (else "else") (compound_statement "{\n            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;\n          }" ({ "{") (expression_statement "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;" (assignment_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20" (pointer_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c)" (* "*") (cast_expression "(int *)(PTR_DAT_0015b5d8 + -0x450c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x450c)" (( "(") (binary_expression "PTR_DAT_0015b5d8 + -0x450c" (identifier "PTR_DAT_0015b5d8") (+ "+") (number_literal "-0x450c")) () ")")))) (= "=") (identifier "iVar20")) (; ";")) (} "}")))) (} "}"))) (} "}")))) (labeled_statement "LAB_000c0b50:\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,0xffffffff,0,iVar17,0);" (statement_identifier "LAB_000c0b50") (: ":") (expression_statement "(*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,0xffffffff,0,iVar17,0);" (call_expression "(*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,0xffffffff,0,iVar17,0)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b714 + -0x7af4))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0015b714 + -0x7af4)" (* "*") (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7af4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b714 + -0x7af4)" (( "(") (binary_expression "PTR_LAB_0015b714 + -0x7af4" (identifier "PTR_LAB_0015b714") (+ "+") (number_literal "-0x7af4")) () ")")))) () ")")) (argument_list "(param_1,iVar14,0xffffffff,0,iVar17,0)" (( "(") (identifier "param_1") (, ",") (identifier "iVar14") (, ",") (number_literal "0xffffffff") (, ",") (number_literal "0") (, ",") (identifier "iVar17") (, ",") (number_literal "0") () ")"))) (; ";"))) (if_statement "if (*(int *)(iVar14 + 0x40) < 1) {\n        (*pcVar15)(piVar16,0x4b,0,iVar18,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }\n      else {\n        (*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar14 + 0x40) < 1)" (( "(") (binary_expression "*(int *)(iVar14 + 0x40) < 1" (pointer_expression "*(int *)(iVar14 + 0x40)" (* "*") (cast_expression "(int *)(iVar14 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x40)" (( "(") (binary_expression "iVar14 + 0x40" (identifier "iVar14") (+ "+") (number_literal "0x40")) () ")")))) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n        (*pcVar15)(piVar16,0x4b,0,iVar18,0);\n        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0);\n      }" ({ "{") (expression_statement "(*pcVar15)(piVar16,0x4b,0,iVar18,0);" (call_expression "(*pcVar15)(piVar16,0x4b,0,iVar18,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar16,0x4b,0,iVar18,0)" (( "(") (identifier "piVar16") (, ",") (number_literal "0x4b") (, ",") (number_literal "0") (, ",") (identifier "iVar18") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0);" (call_expression "(*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b6c0 + -0x5958))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0015b6c0 + -0x5958)" (* "*") (cast_expression "(code *)(PTR_LAB_0015b6c0 + -0x5958)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b6c0 + -0x5958)" (( "(") (binary_expression "PTR_LAB_0015b6c0 + -0x5958" (identifier "PTR_LAB_0015b6c0") (+ "+") (number_literal "-0x5958")) () ")")))) () ")")) (argument_list "(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0)" (( "(") (identifier "piVar16") (, ",") (binary_expression "PTR_LAB_0015b5e8 + 0x53f4" (identifier "PTR_LAB_0015b5e8") (+ "+") (number_literal "0x53f4")) (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        (*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);\n      }" (else "else") (compound_statement "{\n        (*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);\n      }" ({ "{") (expression_statement "(*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);" (call_expression "(*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18)" (( "(") (identifier "piVar16") (, ",") (number_literal "0x66") (, ",") (identifier "iVar17") (, ",") (pointer_expression "*(int *)(iVar14 + 0x40)" (* "*") (cast_expression "(int *)(iVar14 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x40)" (( "(") (binary_expression "iVar14 + 0x40" (identifier "iVar14") (+ "+") (number_literal "0x40")) () ")")))) (, ",") (identifier "iVar18") () ")"))) (; ";")) (} "}")))) (expression_statement "(*pcVar15)(piVar16,0x79,*(undefined4 *)(iVar14 + 0x24),iVar18 + 1,0);" (call_expression "(*pcVar15)(piVar16,0x79,*(undefined4 *)(iVar14 + 0x24),iVar18 + 1,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar16,0x79,*(undefined4 *)(iVar14 + 0x24),iVar18 + 1,0)" (( "(") (identifier "piVar16") (, ",") (number_literal "0x79") (, ",") (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar14 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x24)" (( "(") (binary_expression "iVar14 + 0x24" (identifier "iVar14") (+ "+") (number_literal "0x24")) () ")")))) (, ",") (binary_expression "iVar18 + 1" (identifier "iVar18") (+ "+") (number_literal "1")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*pcVar15)(piVar16,0x7a,*(undefined4 *)(iVar14 + 0x24),iVar18,iVar18 + 1);" (call_expression "(*pcVar15)(piVar16,0x7a,*(undefined4 *)(iVar14 + 0x24),iVar18,iVar18 + 1)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar16,0x7a,*(undefined4 *)(iVar14 + 0x24),iVar18,iVar18 + 1)" (( "(") (identifier "piVar16") (, ",") (number_literal "0x7a") (, ",") (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar14 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x24)" (( "(") (binary_expression "iVar14 + 0x24" (identifier "iVar14") (+ "+") (number_literal "0x24")) () ")")))) (, ",") (identifier "iVar18") (, ",") (binary_expression "iVar18 + 1" (identifier "iVar18") (+ "+") (number_literal "1")) () ")"))) (; ";")) (expression_statement "(*(code *)(PTR_LAB_0015b710 + -0x18cc))(param_3);" (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x18cc))(param_3)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x18cc))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x18cc)" (* "*") (cast_expression "(code *)(PTR_LAB_0015b710 + -0x18cc)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b710 + -0x18cc)" (( "(") (binary_expression "PTR_LAB_0015b710 + -0x18cc" (identifier "PTR_LAB_0015b710") (+ "+") (number_literal "-0x18cc")) () ")")))) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")"))) (; ";")) (expression_statement "(*pcVar24)(param_1,iVar14,1);" (call_expression "(*pcVar24)(param_1,iVar14,1)" (parenthesized_expression "(*pcVar24)" (( "(") (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) () ")")) (argument_list "(param_1,iVar14,1)" (( "(") (identifier "param_1") (, ",") (identifier "iVar14") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "(*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + 3,0);" (call_expression "(*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + 3,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + 3,0)" (( "(") (identifier "piVar16") (, ",") (number_literal "0x24") (, ",") (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar14 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x24)" (( "(") (binary_expression "iVar14 + 0x24" (identifier "iVar14") (+ "+") (number_literal "0x24")) () ")")))) (, ",") (binary_expression "piVar16[0x1b] + 3" (subscript_expression "piVar16[0x1b]" (identifier "piVar16") ([ "[") (number_literal "0x1b") (] "]")) (+ "+") (number_literal "3")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*pcVar15)(piVar16,0xc,param_4,param_5,0);" (call_expression "(*pcVar15)(piVar16,0xc,param_4,param_5,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar16,0xc,param_4,param_5,0)" (( "(") (identifier "piVar16") (, ",") (number_literal "0xc") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar18 = 5;" (assignment_expression "iVar18 = 5" (identifier "iVar18") (= "=") (number_literal "5")) (; ";")) (expression_statement "iVar5 = *(int *)(iVar14 + 0x24);" (assignment_expression "iVar5 = *(int *)(iVar14 + 0x24)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar14 + 0x24)" (* "*") (cast_expression "(int *)(iVar14 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x24)" (( "(") (binary_expression "iVar14 + 0x24" (identifier "iVar14") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "(*pcVar15)(piVar16,5,iVar5,piVar16[0x1b] + -1,0);" (call_expression "(*pcVar15)(piVar16,5,iVar5,piVar16[0x1b] + -1,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar16,5,iVar5,piVar16[0x1b] + -1,0)" (( "(") (identifier "piVar16") (, ",") (number_literal "5") (, ",") (identifier "iVar5") (, ",") (binary_expression "piVar16[0x1b] + -1" (subscript_expression "piVar16[0x1b]" (identifier "piVar16") ([ "[") (number_literal "0x1b") (] "]")) (+ "+") (number_literal "-1")) (, ",") (number_literal "0") () ")"))) (; ";")) (goto_statement "goto LAB_000c0f44;" (goto "goto") (statement_identifier "LAB_000c0f44") (; ";")) (} "}"))) (labeled_statement "LAB_000c0c60:\n    piVar11 = *(int **)(param_1 + 8);" (statement_identifier "LAB_000c0c60") (: ":") (expression_statement "piVar11 = *(int **)(param_1 + 8);" (assignment_expression "piVar11 = *(int **)(param_1 + 8)" (identifier "piVar11") (= "=") (pointer_expression "*(int **)(param_1 + 8)" (* "*") (cast_expression "(int **)(param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";"))) (if_statement "if (piVar11 == (int *)0x0) {\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      piVar16 = *(int **)(iVar14 + 8);\n      local_48 = *(int **)(iVar14 + 4);\n      if (piVar16 != (int *)0x0) goto LAB_000c0c7c;\nLAB_000c1450:\n      local_58 = 0;\n      bVar1 = false;\n    }\n    else {\n      local_48 = *(int **)(iVar14 + 4);\n      piVar16 = *(int **)(iVar14 + 8);\n      if (piVar16 == (int *)0x0) goto LAB_000c1450;\nLAB_000c0c7c:\n      local_58 = *piVar16;\n      bVar1 = (*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700;\n    }" (if "if") (parenthesized_expression "(piVar11 == (int *)0x0)" (( "(") (binary_expression "piVar11 == (int *)0x0" (identifier "piVar11") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);\n      piVar16 = *(int **)(iVar14 + 8);\n      local_48 = *(int **)(iVar14 + 4);\n      if (piVar16 != (int *)0x0) goto LAB_000c0c7c;\nLAB_000c1450:\n      local_58 = 0;\n      bVar1 = false;\n    }" ({ "{") (expression_statement "piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);" (assignment_expression "piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1)" (identifier "piVar11") (= "=") (cast_expression "(int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x371c))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x371c)" (* "*") (cast_expression "(code *)(PTR_LAB_0015b710 + -0x371c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b710 + -0x371c)" (( "(") (binary_expression "PTR_LAB_0015b710 + -0x371c" (identifier "PTR_LAB_0015b710") (+ "+") (number_literal "-0x371c")) () ")")))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))))) (; ";")) (expression_statement "piVar16 = *(int **)(iVar14 + 8);" (assignment_expression "piVar16 = *(int **)(iVar14 + 8)" (identifier "piVar16") (= "=") (pointer_expression "*(int **)(iVar14 + 8)" (* "*") (cast_expression "(int **)(iVar14 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar14 + 8)" (( "(") (binary_expression "iVar14 + 8" (identifier "iVar14") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "local_48 = *(int **)(iVar14 + 4);" (assignment_expression "local_48 = *(int **)(iVar14 + 4)" (identifier "local_48") (= "=") (pointer_expression "*(int **)(iVar14 + 4)" (* "*") (cast_expression "(int **)(iVar14 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar14 + 4)" (( "(") (binary_expression "iVar14 + 4" (identifier "iVar14") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (piVar16 != (int *)0x0) goto LAB_000c0c7c;" (if "if") (parenthesized_expression "(piVar16 != (int *)0x0)" (( "(") (binary_expression "piVar16 != (int *)0x0" (identifier "piVar16") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000c0c7c;" (goto "goto") (statement_identifier "LAB_000c0c7c") (; ";"))) (labeled_statement "LAB_000c1450:\n      local_58 = 0;" (statement_identifier "LAB_000c1450") (: ":") (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";"))) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (} "}")) (else_clause "else {\n      local_48 = *(int **)(iVar14 + 4);\n      piVar16 = *(int **)(iVar14 + 8);\n      if (piVar16 == (int *)0x0) goto LAB_000c1450;\nLAB_000c0c7c:\n      local_58 = *piVar16;\n      bVar1 = (*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700;\n    }" (else "else") (compound_statement "{\n      local_48 = *(int **)(iVar14 + 4);\n      piVar16 = *(int **)(iVar14 + 8);\n      if (piVar16 == (int *)0x0) goto LAB_000c1450;\nLAB_000c0c7c:\n      local_58 = *piVar16;\n      bVar1 = (*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700;\n    }" ({ "{") (expression_statement "local_48 = *(int **)(iVar14 + 4);" (assignment_expression "local_48 = *(int **)(iVar14 + 4)" (identifier "local_48") (= "=") (pointer_expression "*(int **)(iVar14 + 4)" (* "*") (cast_expression "(int **)(iVar14 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar14 + 4)" (( "(") (binary_expression "iVar14 + 4" (identifier "iVar14") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "piVar16 = *(int **)(iVar14 + 8);" (assignment_expression "piVar16 = *(int **)(iVar14 + 8)" (identifier "piVar16") (= "=") (pointer_expression "*(int **)(iVar14 + 8)" (* "*") (cast_expression "(int **)(iVar14 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar14 + 8)" (( "(") (binary_expression "iVar14 + 8" (identifier "iVar14") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (piVar16 == (int *)0x0) goto LAB_000c1450;" (if "if") (parenthesized_expression "(piVar16 == (int *)0x0)" (( "(") (binary_expression "piVar16 == (int *)0x0" (identifier "piVar16") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000c1450;" (goto "goto") (statement_identifier "LAB_000c1450") (; ";"))) (labeled_statement "LAB_000c0c7c:\n      local_58 = *piVar16;" (statement_identifier "LAB_000c0c7c") (: ":") (expression_statement "local_58 = *piVar16;" (assignment_expression "local_58 = *piVar16" (identifier "local_58") (= "=") (pointer_expression "*piVar16" (* "*") (identifier "piVar16"))) (; ";"))) (expression_statement "bVar1 = (*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700;" (assignment_expression "bVar1 = (*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700" (identifier "bVar1") (= "=") (binary_expression "(*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700" (parenthesized_expression "(*(uint *)(iVar14 + 0xc) & 0xffff00)" (( "(") (binary_expression "*(uint *)(iVar14 + 0xc) & 0xffff00" (pointer_expression "*(uint *)(iVar14 + 0xc)" (* "*") (cast_expression "(uint *)(iVar14 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xc)" (( "(") (binary_expression "iVar14 + 0xc" (identifier "iVar14") (+ "+") (number_literal "0xc")) () ")")))) (& "&") (number_literal "0xffff00")) () ")")) (== "==") (number_literal "0x525700"))) (; ";")) (} "}")))) (expression_statement "puVar3 = PTR_LAB_0015b714;" (assignment_expression "puVar3 = PTR_LAB_0015b714" (identifier "puVar3") (= "=") (identifier "PTR_LAB_0015b714")) (; ";")) (expression_statement "iVar18 = *(int *)(param_1 + 0x2c);" (assignment_expression "iVar18 = *(int *)(param_1 + 0x2c)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(param_1 + 0x2c)" (* "*") (cast_expression "(int *)(param_1 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "iVar23 = *(int *)(param_1 + 0x28);" (assignment_expression "iVar23 = *(int *)(param_1 + 0x28)" (identifier "iVar23") (= "=") (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "iVar17 = *(int *)(param_1 + 0x38);" (assignment_expression "iVar17 = *(int *)(param_1 + 0x38)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(param_1 + 0x38)" (* "*") (cast_expression "(int *)(param_1 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "iVar5 = iVar18 + local_58;" (assignment_expression "iVar5 = iVar18 + local_58" (identifier "iVar5") (= "=") (binary_expression "iVar18 + local_58" (identifier "iVar18") (+ "+") (identifier "local_58"))) (; ";")) (expression_statement "iVar9 = iVar5 + 2;" (assignment_expression "iVar9 = iVar5 + 2" (identifier "iVar9") (= "=") (binary_expression "iVar5 + 2" (identifier "iVar5") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "iVar20 = iVar17 + -2;" (assignment_expression "iVar20 = iVar17 + -2" (identifier "iVar20") (= "=") (binary_expression "iVar17 + -2" (identifier "iVar17") (+ "+") (number_literal "-2"))) (; ";")) (expression_statement "*(int *)(param_1 + 0x28) = iVar23 + 1;" (assignment_expression "*(int *)(param_1 + 0x28) = iVar23 + 1" (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (binary_expression "iVar23 + 1" (identifier "iVar23") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(param_1 + 0x38) = iVar20;" (assignment_expression "*(int *)(param_1 + 0x38) = iVar20" (pointer_expression "*(int *)(param_1 + 0x38)" (* "*") (cast_expression "(int *)(param_1 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (identifier "iVar20")) (; ";")) (expression_statement "*(int *)(param_1 + 0x2c) = iVar9;" (assignment_expression "*(int *)(param_1 + 0x2c) = iVar9" (pointer_expression "*(int *)(param_1 + 0x2c)" (* "*") (cast_expression "(int *)(param_1 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" (identifier "iVar17") (= "=") (binary_expression "iVar17 + -1" (identifier "iVar17") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "(*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar20,&local_30\n              );" (call_expression "(*(code *)(puVar3 + -0x7e94))\n              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar20,&local_30\n              )" (parenthesized_expression "(*(code *)(puVar3 + -0x7e94))" (( "(") (pointer_expression "*(code *)(puVar3 + -0x7e94)" (* "*") (cast_expression "(code *)(puVar3 + -0x7e94)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -0x7e94)" (( "(") (binary_expression "puVar3 + -0x7e94" (identifier "puVar3") (+ "+") (number_literal "-0x7e94")) () ")")))) () ")")) (argument_list "(param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar20,&local_30\n              )" (( "(") (identifier "param_1") (, ",") (binary_expression "param_2 + 0x20" (identifier "param_2") (+ "+") (number_literal "0x20")) (, ",") (pointer_expression "*(undefined4 *)(param_2 + 0x44)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x44)" (( "(") (binary_expression "param_2 + 0x44" (identifier "param_2") (+ "+") (number_literal "0x44")) () ")")))) (, ",") (identifier "param_3") (, ",") (identifier "iVar5") (, ",") (identifier "iVar20") (, ",") (pointer_expression "&local_30" (& "&") (identifier "local_30")) () ")"))) (; ";")) (expression_statement "pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);" (assignment_expression "pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890)" (identifier "pcVar15") (= "=") (cast_expression "(code *)(PTR_LAB_0015b710 + -0x3890)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b710 + -0x3890)" (( "(") (binary_expression "PTR_LAB_0015b710 + -0x3890" (identifier "PTR_LAB_0015b710") (+ "+") (number_literal "-0x3890")) () ")")))) (; ";")) (expression_statement "local_60 = (*pcVar15)(piVar11,0xb,0,0,0);" (assignment_expression "local_60 = (*pcVar15)(piVar11,0xb,0,0,0)" (identifier "local_60") (= "=") (call_expression "(*pcVar15)(piVar11,0xb,0,0,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0xb,0,0,0)" (( "(") (identifier "piVar11") (, ",") (number_literal "0xb") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);" (assignment_expression "pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14)" (identifier "pcVar24") (= "=") (cast_expression "(code *)(PTR_LAB_0015b710 + -0x3c14)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b710 + -0x3c14)" (( "(") (binary_expression "PTR_LAB_0015b710 + -0x3c14" (identifier "PTR_LAB_0015b710") (+ "+") (number_literal "-0x3c14")) () ")")))) (; ";")) (expression_statement "(*pcVar24)(piVar11,iVar20);" (call_expression "(*pcVar24)(piVar11,iVar20)" (parenthesized_expression "(*pcVar24)" (( "(") (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) () ")")) (argument_list "(piVar11,iVar20)" (( "(") (identifier "piVar11") (, ",") (identifier "iVar20") () ")"))) (; ";")) (expression_statement "(*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 2,0);" (call_expression "(*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 2,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0x11,0,piVar11[0x1b] + 2,0)" (( "(") (identifier "piVar11") (, ",") (number_literal "0x11") (, ",") (number_literal "0") (, ",") (binary_expression "piVar11[0x1b] + 2" (subscript_expression "piVar11[0x1b]" (identifier "piVar11") ([ "[") (number_literal "0x1b") (] "]")) (+ "+") (number_literal "2")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*pcVar15)(piVar11,0x6f,iVar23,*(undefined4 *)(iVar14 + 0x24),0);" (call_expression "(*pcVar15)(piVar11,0x6f,iVar23,*(undefined4 *)(iVar14 + 0x24),0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0x6f,iVar23,*(undefined4 *)(iVar14 + 0x24),0)" (( "(") (identifier "piVar11") (, ",") (number_literal "0x6f") (, ",") (identifier "iVar23") (, ",") (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar14 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x24)" (( "(") (binary_expression "iVar14 + 0x24" (identifier "iVar14") (+ "+") (number_literal "0x24")) () ")")))) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);" (assignment_expression "uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14)" (identifier "uVar4") (= "=") (call_expression "(*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b710 + -0x2e00))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0015b710 + -0x2e00)" (* "*") (cast_expression "(code *)(PTR_LAB_0015b710 + -0x2e00)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b710 + -0x2e00)" (( "(") (binary_expression "PTR_LAB_0015b710 + -0x2e00" (identifier "PTR_LAB_0015b710") (+ "+") (number_literal "-0x2e00")) () ")")))) () ")")) (argument_list "(param_1,iVar14)" (( "(") (identifier "param_1") (, ",") (identifier "iVar14") () ")")))) (; ";")) (expression_statement "(*pcVar15)(piVar11,0x46,0,iVar9,0);" (call_expression "(*pcVar15)(piVar11,0x46,0,iVar9,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0x46,0,iVar9,0)" (( "(") (identifier "piVar11") (, ",") (number_literal "0x46") (, ",") (number_literal "0") (, ",") (identifier "iVar9") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*pcVar15)(piVar11,0x24,iVar23,iVar17,0);" (call_expression "(*pcVar15)(piVar11,0x24,iVar23,iVar17,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0x24,iVar23,iVar17,0)" (( "(") (identifier "piVar11") (, ",") (number_literal "0x24") (, ",") (identifier "iVar23") (, ",") (identifier "iVar17") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar17,0);" (call_expression "(*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar17,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar17,0)" (( "(") (identifier "piVar11") (, ",") (number_literal "0x24") (, ",") (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar14 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x24)" (( "(") (binary_expression "iVar14 + 0x24" (identifier "iVar14") (+ "+") (number_literal "0x24")) () ")")))) (, ",") (identifier "iVar17") (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (bVar1) {\n      iVar20 = piVar11[0x1b];\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n      (*pcVar15)(piVar11,5,iVar23,iVar20,0);\n      (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n      local_50 = piVar11[0x1b];\n      if (piVar16 != (int *)0x0) goto LAB_000c0e28;\n      pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n    }\n    else {\n      local_50 = piVar11[0x1b];\n      if (piVar16 == (int *)0x0) {\n        pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);\n        uVar6 = uVar4;\n        if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n    }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n      iVar20 = piVar11[0x1b];\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n      (*pcVar15)(piVar11,5,iVar23,iVar20,0);\n      (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);\n      local_50 = piVar11[0x1b];\n      if (piVar16 != (int *)0x0) goto LAB_000c0e28;\n      pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n    }" ({ "{") (expression_statement "iVar20 = piVar11[0x1b];" (assignment_expression "iVar20 = piVar11[0x1b]" (identifier "iVar20") (= "=") (subscript_expression "piVar11[0x1b]" (identifier "piVar11") ([ "[") (number_literal "0x1b") (] "]"))) (; ";")) (expression_statement "(*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);" (call_expression "(*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b714 + -0x7af4))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0015b714 + -0x7af4)" (* "*") (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7af4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b714 + -0x7af4)" (( "(") (binary_expression "PTR_LAB_0015b714 + -0x7af4" (identifier "PTR_LAB_0015b714") (+ "+") (number_literal "-0x7af4")) () ")")))) () ")")) (argument_list "(param_1,iVar14,iVar23,0,uVar4,local_30)" (( "(") (identifier "param_1") (, ",") (identifier "iVar14") (, ",") (identifier "iVar23") (, ",") (number_literal "0") (, ",") (identifier "uVar4") (, ",") (identifier "local_30") () ")"))) (; ";")) (expression_statement "(*pcVar15)(piVar11,5,iVar23,iVar20,0);" (call_expression "(*pcVar15)(piVar11,5,iVar23,iVar20,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,5,iVar23,iVar20,0)" (( "(") (identifier "piVar11") (, ",") (number_literal "5") (, ",") (identifier "iVar23") (, ",") (identifier "iVar20") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*pcVar15)(piVar11,0x24,iVar23,iVar17,0);" (call_expression "(*pcVar15)(piVar11,0x24,iVar23,iVar17,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0x24,iVar23,iVar17,0)" (( "(") (identifier "piVar11") (, ",") (number_literal "0x24") (, ",") (identifier "iVar23") (, ",") (identifier "iVar17") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "local_50 = piVar11[0x1b];" (assignment_expression "local_50 = piVar11[0x1b]" (identifier "local_50") (= "=") (subscript_expression "piVar11[0x1b]" (identifier "piVar11") ([ "[") (number_literal "0x1b") (] "]"))) (; ";")) (if_statement "if (piVar16 != (int *)0x0) goto LAB_000c0e28;" (if "if") (parenthesized_expression "(piVar16 != (int *)0x0)" (( "(") (binary_expression "piVar16 != (int *)0x0" (identifier "piVar16") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000c0e28;" (goto "goto") (statement_identifier "LAB_000c0e28") (; ";"))) (expression_statement "pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);" (assignment_expression "pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508)" (identifier "pcVar21") (= "=") (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7508)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b714 + -0x7508)" (( "(") (binary_expression "PTR_LAB_0015b714 + -0x7508" (identifier "PTR_LAB_0015b714") (+ "+") (number_literal "-0x7508")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n      local_50 = piVar11[0x1b];\n      if (piVar16 == (int *)0x0) {\n        pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);\n        uVar6 = uVar4;\n        if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n    }" (else "else") (compound_statement "{\n      local_50 = piVar11[0x1b];\n      if (piVar16 == (int *)0x0) {\n        pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);\n        uVar6 = uVar4;\n        if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }\n      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);\n    }" ({ "{") (expression_statement "local_50 = piVar11[0x1b];" (assignment_expression "local_50 = piVar11[0x1b]" (identifier "local_50") (= "=") (subscript_expression "piVar11[0x1b]" (identifier "piVar11") ([ "[") (number_literal "0x1b") (] "]"))) (; ";")) (if_statement "if (piVar16 == (int *)0x0) {\n        pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }\n      else {\nLAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);\n        uVar6 = uVar4;\n        if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }" (if "if") (parenthesized_expression "(piVar16 == (int *)0x0)" (( "(") (binary_expression "piVar16 == (int *)0x0" (identifier "piVar16") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n      }" ({ "{") (expression_statement "pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);" (assignment_expression "pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508)" (identifier "pcVar21") (= "=") (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7508)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b714 + -0x7508)" (( "(") (binary_expression "PTR_LAB_0015b714 + -0x7508" (identifier "PTR_LAB_0015b714") (+ "+") (number_literal "-0x7508")) () ")")))) (; ";")) (} "}")) (else_clause "else {\nLAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);\n        uVar6 = uVar4;\n        if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }" (else "else") (compound_statement "{\nLAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);\n        uVar6 = uVar4;\n        if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }\n        if (bVar1) goto LAB_000c0e5c;\n      }" ({ "{") (labeled_statement "LAB_000c0e28:\n        cVar10 = *(char *)(iVar14 + 0xd);" (statement_identifier "LAB_000c0e28") (: ":") (expression_statement "cVar10 = *(char *)(iVar14 + 0xd);" (assignment_expression "cVar10 = *(char *)(iVar14 + 0xd)" (identifier "cVar10") (= "=") (pointer_expression "*(char *)(iVar14 + 0xd)" (* "*") (cast_expression "(char *)(iVar14 + 0xd)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xd)" (( "(") (binary_expression "iVar14 + 0xd" (identifier "iVar14") (+ "+") (number_literal "0xd")) () ")"))))) (; ";"))) (expression_statement "uVar6 = uVar4;" (assignment_expression "uVar6 = uVar4" (identifier "uVar6") (= "=") (identifier "uVar4")) (; ";")) (if_statement "if (*(char *)(iVar14 + 0xe) == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }\n        else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }" (if "if") (parenthesized_expression "(*(char *)(iVar14 + 0xe) == 'R')" (( "(") (binary_expression "*(char *)(iVar14 + 0xe) == 'R'" (pointer_expression "*(char *)(iVar14 + 0xe)" (* "*") (cast_expression "(char *)(iVar14 + 0xe)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xe)" (( "(") (binary_expression "iVar14 + 0xe" (identifier "iVar14") (+ "+") (number_literal "0xe")) () ")")))) (== "==") (char_literal "'R'" (' "'") (character "R") (' "'"))) () ")")) (compound_statement "{\n          if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }\n          if (cVar10 == 'R') goto LAB_000c1494;\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);\n        }" ({ "{") (if_statement "if (*(char *)(iVar14 + 0xc) == 'V') {\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }" (if "if") (parenthesized_expression "(*(char *)(iVar14 + 0xc) == 'V')" (( "(") (binary_expression "*(char *)(iVar14 + 0xc) == 'V'" (pointer_expression "*(char *)(iVar14 + 0xc)" (* "*") (cast_expression "(char *)(iVar14 + 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xc)" (( "(") (binary_expression "iVar14 + 0xc" (identifier "iVar14") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (char_literal "'V'" (' "'") (character "V") (' "'"))) () ")")) (compound_statement "{\nLAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);\n            if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }\n            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);\n            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);\n            iVar18 = iVar18 + 1;\n            if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }\n            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);\n            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);\n            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);\n            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);\n            uVar7 = local_30;\n            if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }\n            goto LAB_000c14a0;\n          }" ({ "{") (labeled_statement "LAB_000c1544:\n            iVar20 = *(int *)(iVar14 + 0x40);" (statement_identifier "LAB_000c1544") (: ":") (expression_statement "iVar20 = *(int *)(iVar14 + 0x40);" (assignment_expression "iVar20 = *(int *)(iVar14 + 0x40)" (identifier "iVar20") (= "=") (pointer_expression "*(int *)(iVar14 + 0x40)" (* "*") (cast_expression "(int *)(iVar14 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x40)" (( "(") (binary_expression "iVar14 + 0x40" (identifier "iVar14") (+ "+") (number_literal "0x40")) () ")"))))) (; ";"))) (if_statement "if (local_48 == (int *)0x0) {\n              iVar12 = 0;\n            }\n            else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }" (if "if") (parenthesized_expression "(local_48 == (int *)0x0)" (( "(") (binary_expression "local_48 == (int *)0x0" (identifier "local_48") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              iVar12 = 0;\n            }" ({ "{") (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }" (else "else") (compound_statement "{\n              iVar12 = *local_48;\n              iVar20 = iVar20 + iVar12;\n            }" ({ "{") (expression_statement "iVar12 = *local_48;" (assignment_expression "iVar12 = *local_48" (identifier "iVar12") (= "=") (pointer_expression "*local_48" (* "*") (identifier "local_48"))) (; ";")) (expression_statement "iVar20 = iVar20 + iVar12;" (assignment_expression "iVar20 = iVar20 + iVar12" (identifier "iVar20") (= "=") (binary_expression "iVar20 + iVar12" (identifier "iVar20") (+ "+") (identifier "iVar12"))) (; ";")) (} "}")))) (expression_statement "iVar12 = iVar12 + *(int *)(iVar14 + 0x38);" (assignment_expression "iVar12 = iVar12 + *(int *)(iVar14 + 0x38)" (identifier "iVar12") (= "=") (binary_expression "iVar12 + *(int *)(iVar14 + 0x38)" (identifier "iVar12") (+ "+") (pointer_expression "*(int *)(iVar14 + 0x38)" (* "*") (cast_expression "(int *)(iVar14 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x38)" (( "(") (binary_expression "iVar14 + 0x38" (identifier "iVar14") (+ "+") (number_literal "0x38")) () ")")))))) (; ";")) (expression_statement "uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);" (assignment_expression "uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0)" (identifier "uVar7") (= "=") (call_expression "(*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b714 + -0x7fc4))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0015b714 + -0x7fc4)" (* "*") (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7fc4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b714 + -0x7fc4)" (( "(") (binary_expression "PTR_LAB_0015b714 + -0x7fc4" (identifier "PTR_LAB_0015b714") (+ "+") (number_literal "-0x7fc4")) () ")")))) () ")")) (argument_list "(param_1,piVar16,0,0)" (( "(") (identifier "param_1") (, ",") (identifier "piVar16") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" (identifier "iVar18") (= "=") (binary_expression "iVar18 + 1" (identifier "iVar18") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (0 < local_58) {\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }" (if "if") (parenthesized_expression "(0 < local_58)" (( "(") (binary_expression "0 < local_58" (number_literal "0") (< "<") (identifier "local_58")) () ")")) (compound_statement "{\n              iVar13 = local_58 + iVar20;\n              iVar8 = iVar18 - iVar20;\n              do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);\n            }" ({ "{") (expression_statement "iVar13 = local_58 + iVar20;" (assignment_expression "iVar13 = local_58 + iVar20" (identifier "iVar13") (= "=") (binary_expression "local_58 + iVar20" (identifier "local_58") (+ "+") (identifier "iVar20"))) (; ";")) (expression_statement "iVar8 = iVar18 - iVar20;" (assignment_expression "iVar8 = iVar18 - iVar20" (identifier "iVar8") (= "=") (binary_expression "iVar18 - iVar20" (identifier "iVar18") (- "-") (identifier "iVar20"))) (; ";")) (do_statement "do {\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              } while (iVar20 != iVar13);" (do "do") (compound_statement "{\n                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);\n                iVar20 = iVar20 + 1;\n              }" ({ "{") (expression_statement "(*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);" (call_expression "(*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20)" (( "(") (identifier "piVar11") (, ",") (number_literal "0x5a") (, ",") (identifier "iVar23") (, ",") (identifier "iVar20") (, ",") (binary_expression "iVar8 + iVar20" (identifier "iVar8") (+ "+") (identifier "iVar20")) () ")"))) (; ";")) (expression_statement "iVar20 = iVar20 + 1;" (assignment_expression "iVar20 = iVar20 + 1" (identifier "iVar20") (= "=") (binary_expression "iVar20 + 1" (identifier "iVar20") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar20 != iVar13)" (( "(") (binary_expression "iVar20 != iVar13" (identifier "iVar20") (!= "!=") (identifier "iVar13")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);" (assignment_expression "iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58)" (identifier "iVar20") (= "=") (call_expression "(*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0x57,iVar18,iVar12,local_58)" (( "(") (identifier "piVar11") (, ",") (number_literal "0x57") (, ",") (identifier "iVar18") (, ",") (identifier "iVar12") (, ",") (identifier "local_58") () ")")))) (; ";")) (expression_statement "(*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);" (call_expression "(*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b6c0 + -0x5958))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0015b6c0 + -0x5958)" (* "*") (cast_expression "(code *)(PTR_LAB_0015b6c0 + -0x5958)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b6c0 + -0x5958)" (( "(") (binary_expression "PTR_LAB_0015b6c0 + -0x5958" (identifier "PTR_LAB_0015b6c0") (+ "+") (number_literal "-0x5958")) () ")")))) () ")")) (argument_list "(piVar11,uVar7,0xfffffff7)" (( "(") (identifier "piVar11") (, ",") (identifier "uVar7") (, ",") (number_literal "0xfffffff7") () ")"))) (; ";")) (expression_statement "iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);" (assignment_expression "iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2)" (identifier "iVar20") (= "=") (call_expression "(*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0x10,iVar20 + 2,0,iVar20 + 2)" (( "(") (identifier "piVar11") (, ",") (number_literal "0x10") (, ",") (binary_expression "iVar20 + 2" (identifier "iVar20") (+ "+") (number_literal "2")) (, ",") (number_literal "0") (, ",") (binary_expression "iVar20 + 2" (identifier "iVar20") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "(*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);" (call_expression "(*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0x4e,iVar18,iVar12,local_58 + -1)" (( "(") (identifier "piVar11") (, ",") (number_literal "0x4e") (, ",") (identifier "iVar18") (, ",") (identifier "iVar12") (, ",") (binary_expression "local_58 + -1" (identifier "local_58") (+ "+") (number_literal "-1")) () ")"))) (; ";")) (expression_statement "uVar7 = local_30;" (assignment_expression "uVar7 = local_30" (identifier "uVar7") (= "=") (identifier "local_30")) (; ";")) (if_statement "if (cVar10 != 'R') {\n              uVar6 = 0;\n              uVar7 = 0;\n            }" (if "if") (parenthesized_expression "(cVar10 != 'R')" (( "(") (binary_expression "cVar10 != 'R'" (identifier "cVar10") (!= "!=") (char_literal "'R'" (' "'") (character "R") (' "'"))) () ")")) (compound_statement "{\n              uVar6 = 0;\n              uVar7 = 0;\n            }" ({ "{") (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (} "}"))) (goto_statement "goto LAB_000c14a0;" (goto "goto") (statement_identifier "LAB_000c14a0") (; ";")) (} "}"))) (if_statement "if (cVar10 == 'R') goto LAB_000c1494;" (if "if") (parenthesized_expression "(cVar10 == 'R')" (( "(") (binary_expression "cVar10 == 'R'" (identifier "cVar10") (== "==") (char_literal "'R'" (' "'") (character "R") (' "'"))) () ")")) (goto_statement "goto LAB_000c1494;" (goto "goto") (statement_identifier "LAB_000c1494") (; ";"))) (expression_statement "pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);" (assignment_expression "pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508)" (identifier "pcVar21") (= "=") (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7508)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b714 + -0x7508)" (( "(") (binary_expression "PTR_LAB_0015b714 + -0x7508" (identifier "PTR_LAB_0015b714") (+ "+") (number_literal "-0x7508")) () ")")))) (; ";")) (expression_statement "(*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);" (call_expression "(*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0)" (parenthesized_expression "(*pcVar21)" (( "(") (pointer_expression "*pcVar21" (* "*") (identifier "pcVar21")) () ")")) (argument_list "(param_1,iVar14,iVar9,param_4,param_5,0,0)" (( "(") (identifier "param_1") (, ",") (identifier "iVar14") (, ",") (identifier "iVar9") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")) (else_clause "else if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }" (else "else") (if_statement "if (cVar10 == 'R') {\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }\n        else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }" (if "if") (parenthesized_expression "(cVar10 == 'R')" (( "(") (binary_expression "cVar10 == 'R'" (identifier "cVar10") (== "==") (char_literal "'R'" (' "'") (character "R") (' "'"))) () ")")) (compound_statement "{\n          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;\nLAB_000c1494:\n          iVar20 = 0;\n          uVar7 = local_30;\nLAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);\n          if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }\n        }" ({ "{") (if_statement "if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;" (if "if") (parenthesized_expression "(*(char *)(iVar14 + 0xc) == 'V')" (( "(") (binary_expression "*(char *)(iVar14 + 0xc) == 'V'" (pointer_expression "*(char *)(iVar14 + 0xc)" (* "*") (cast_expression "(char *)(iVar14 + 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xc)" (( "(") (binary_expression "iVar14 + 0xc" (identifier "iVar14") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (char_literal "'V'" (' "'") (character "V") (' "'"))) () ")")) (goto_statement "goto LAB_000c1544;" (goto "goto") (statement_identifier "LAB_000c1544") (; ";"))) (labeled_statement "LAB_000c1494:\n          iVar20 = 0;" (statement_identifier "LAB_000c1494") (: ":") (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" (identifier "iVar20") (= "=") (number_literal "0")) (; ";"))) (expression_statement "uVar7 = local_30;" (assignment_expression "uVar7 = local_30" (identifier "uVar7") (= "=") (identifier "local_30")) (; ";")) (labeled_statement "LAB_000c14a0:\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);" (statement_identifier "LAB_000c14a0") (: ":") (expression_statement "pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);" (assignment_expression "pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508)" (identifier "pcVar21") (= "=") (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7508)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b714 + -0x7508)" (( "(") (binary_expression "PTR_LAB_0015b714 + -0x7508" (identifier "PTR_LAB_0015b714") (+ "+") (number_literal "-0x7508")) () ")")))) (; ";"))) (expression_statement "(*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);" (call_expression "(*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7)" (parenthesized_expression "(*pcVar21)" (( "(") (pointer_expression "*pcVar21" (* "*") (identifier "pcVar21")) () ")")) (argument_list "(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7)" (( "(") (identifier "param_1") (, ",") (identifier "iVar14") (, ",") (identifier "iVar9") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (identifier "uVar6") (, ",") (identifier "uVar7") () ")"))) (; ";")) (if_statement "if (iVar20 != 0) {\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }" (if "if") (parenthesized_expression "(iVar20 != 0)" (( "(") (binary_expression "iVar20 != 0" (identifier "iVar20") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            iVar18 = piVar11[0x1b];\n            if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }\n            if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }\n          }" ({ "{") (expression_statement "iVar18 = piVar11[0x1b];" (assignment_expression "iVar18 = piVar11[0x1b]" (identifier "iVar18") (= "=") (subscript_expression "piVar11[0x1b]" (identifier "piVar11") ([ "[") (number_literal "0x1b") (] "]"))) (; ";")) (if_statement "if (iVar20 < 0) {\n              iVar20 = iVar18 + -1;\n            }" (if "if") (parenthesized_expression "(iVar20 < 0)" (( "(") (binary_expression "iVar20 < 0" (identifier "iVar20") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n              iVar20 = iVar18 + -1;\n            }" ({ "{") (expression_statement "iVar20 = iVar18 + -1;" (assignment_expression "iVar20 = iVar18 + -1" (identifier "iVar20") (= "=") (binary_expression "iVar18 + -1" (identifier "iVar18") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(*piVar11 + 0x51) == '\0') {\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }\n            else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }" (if "if") (parenthesized_expression "(*(char *)(*piVar11 + 0x51) == '\0')" (( "(") (binary_expression "*(char *)(*piVar11 + 0x51) == '\0'" (pointer_expression "*(char *)(*piVar11 + 0x51)" (* "*") (cast_expression "(char *)(*piVar11 + 0x51)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar11 + 0x51)" (( "(") (binary_expression "*piVar11 + 0x51" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (+ "+") (number_literal "0x51")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;\n            }" ({ "{") (expression_statement "*(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;" (assignment_expression "*(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18" (pointer_expression "*(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8)" (* "*") (cast_expression "(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar11[0x1a] + iVar20 * 0x14 + 8)" (( "(") (binary_expression "piVar11[0x1a] + iVar20 * 0x14 + 8" (binary_expression "piVar11[0x1a] + iVar20 * 0x14" (subscript_expression "piVar11[0x1a]" (identifier "piVar11") ([ "[") (number_literal "0x1a") (] "]")) (+ "+") (binary_expression "iVar20 * 0x14" (identifier "iVar20") (* "*") (number_literal "0x14"))) (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar18")) (; ";")) (} "}")) (else_clause "else {\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }" (else "else") (compound_statement "{\n              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;\n            }" ({ "{") (expression_statement "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;" (assignment_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18" (pointer_expression "*(int *)(PTR_DAT_0015b5d8 + -0x450c)" (* "*") (cast_expression "(int *)(PTR_DAT_0015b5d8 + -0x450c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0015b5d8 + -0x450c)" (( "(") (binary_expression "PTR_DAT_0015b5d8 + -0x450c" (identifier "PTR_DAT_0015b5d8") (+ "+") (number_literal "-0x450c")) () ")")))) (= "=") (identifier "iVar18")) (; ";")) (} "}")))) (} "}"))) (} "}")) (else_clause "else {\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }" (else "else") (compound_statement "{\n          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);\n        }" ({ "{") (expression_statement "pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);" (assignment_expression "pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508)" (identifier "pcVar21") (= "=") (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7508)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b714 + -0x7508)" (( "(") (binary_expression "PTR_LAB_0015b714 + -0x7508" (identifier "PTR_LAB_0015b714") (+ "+") (number_literal "-0x7508")) () ")")))) (; ";")) (} "}")))))) (if_statement "if (bVar1) goto LAB_000c0e5c;" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (goto_statement "goto LAB_000c0e5c;" (goto "goto") (statement_identifier "LAB_000c0e5c") (; ";"))) (} "}")))) (expression_statement "(*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);" (call_expression "(*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b714 + -0x7af4))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0015b714 + -0x7af4)" (* "*") (cast_expression "(code *)(PTR_LAB_0015b714 + -0x7af4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b714 + -0x7af4)" (( "(") (binary_expression "PTR_LAB_0015b714 + -0x7af4" (identifier "PTR_LAB_0015b714") (+ "+") (number_literal "-0x7af4")) () ")")))) () ")")) (argument_list "(param_1,iVar14,iVar23,0,uVar4,local_30)" (( "(") (identifier "param_1") (, ",") (identifier "iVar14") (, ",") (identifier "iVar23") (, ",") (number_literal "0") (, ",") (identifier "uVar4") (, ",") (identifier "local_30") () ")"))) (; ";")) (} "}")))) (labeled_statement "LAB_000c0e5c:\n    (*pcVar15)(piVar11,0x53,iVar9,1,0);" (statement_identifier "LAB_000c0e5c") (: ":") (expression_statement "(*pcVar15)(piVar11,0x53,iVar9,1,0);" (call_expression "(*pcVar15)(piVar11,0x53,iVar9,1,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0x53,iVar9,1,0)" (( "(") (identifier "piVar11") (, ",") (number_literal "0x53") (, ",") (identifier "iVar9") (, ",") (number_literal "1") (, ",") (number_literal "0") () ")"))) (; ";"))) (expression_statement "(*pcVar15)(piVar11,5,iVar23,local_50,0);" (call_expression "(*pcVar15)(piVar11,5,iVar23,local_50,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,5,iVar23,local_50,0)" (( "(") (identifier "piVar11") (, ",") (number_literal "5") (, ",") (identifier "iVar23") (, ",") (identifier "local_50") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);" (call_expression "(*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0)" (parenthesized_expression "(*pcVar21)" (( "(") (pointer_expression "*pcVar21" (* "*") (identifier "pcVar21")) () ")")) (argument_list "(param_1,iVar14,iVar9,param_4,param_5,0,0)" (( "(") (identifier "param_1") (, ",") (identifier "iVar14") (, ",") (identifier "iVar9") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*pcVar24)(piVar11,iVar17);" (call_expression "(*pcVar24)(piVar11,iVar17)" (parenthesized_expression "(*pcVar24)" (( "(") (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) () ")")) (argument_list "(piVar11,iVar17)" (( "(") (identifier "piVar11") (, ",") (identifier "iVar17") () ")"))) (; ";")) (expression_statement "(*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);" (call_expression "(*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0)" (( "(") (identifier "piVar11") (, ",") (number_literal "0x8a") (, ",") (pointer_expression "*(undefined4 *)(iVar14 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar14 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x24)" (( "(") (binary_expression "iVar14 + 0x24" (identifier "iVar14") (+ "+") (number_literal "0x24")) () ")")))) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")))) (expression_statement "iVar18 = 0x42;" (assignment_expression "iVar18 = 0x42" (identifier "iVar18") (= "=") (number_literal "0x42")) (; ";")) (expression_statement "(*pcVar15)(piVar11,0x42,iVar5,0,0);" (call_expression "(*pcVar15)(piVar11,0x42,iVar5,0,0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar11,0x42,iVar5,0,0)" (( "(") (identifier "piVar11") (, ",") (number_literal "0x42") (, ",") (identifier "iVar5") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "piVar16 = (int *)piVar11[0x1b];" (assignment_expression "piVar16 = (int *)piVar11[0x1b]" (identifier "piVar16") (= "=") (cast_expression "(int *)piVar11[0x1b]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar11[0x1b]" (identifier "piVar11") ([ "[") (number_literal "0x1b") (] "]")))) (; ";")) (if_statement "if (local_60 < 0) {\n    local_60 = (int)piVar16 + -1;\n  }" (if "if") (parenthesized_expression "(local_60 < 0)" (( "(") (binary_expression "local_60 < 0" (identifier "local_60") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    local_60 = (int)piVar16 + -1;\n  }" ({ "{") (expression_statement "local_60 = (int)piVar16 + -1;" (assignment_expression "local_60 = (int)piVar16 + -1" (identifier "local_60") (= "=") (binary_expression "(int)piVar16 + -1" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(*piVar11 + 0x51) == '\0') {\n    puVar3 = (undefined *)(piVar11[0x1a] + local_60 * 0x14);\n    iVar18 = local_60;\n  }\n  else {\n    puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n  }" (if "if") (parenthesized_expression "(*(char *)(*piVar11 + 0x51) == '\0')" (( "(") (binary_expression "*(char *)(*piVar11 + 0x51) == '\0'" (pointer_expression "*(char *)(*piVar11 + 0x51)" (* "*") (cast_expression "(char *)(*piVar11 + 0x51)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar11 + 0x51)" (( "(") (binary_expression "*piVar11 + 0x51" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (+ "+") (number_literal "0x51")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    puVar3 = (undefined *)(piVar11[0x1a] + local_60 * 0x14);\n    iVar18 = local_60;\n  }" ({ "{") (expression_statement "puVar3 = (undefined *)(piVar11[0x1a] + local_60 * 0x14);" (assignment_expression "puVar3 = (undefined *)(piVar11[0x1a] + local_60 * 0x14)" (identifier "puVar3") (= "=") (cast_expression "(undefined *)(piVar11[0x1a] + local_60 * 0x14)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar11[0x1a] + local_60 * 0x14)" (( "(") (binary_expression "piVar11[0x1a] + local_60 * 0x14" (subscript_expression "piVar11[0x1a]" (identifier "piVar11") ([ "[") (number_literal "0x1a") (] "]")) (+ "+") (binary_expression "local_60 * 0x14" (identifier "local_60") (* "*") (number_literal "0x14"))) () ")")))) (; ";")) (expression_statement "iVar18 = local_60;" (assignment_expression "iVar18 = local_60" (identifier "iVar18") (= "=") (identifier "local_60")) (; ";")) (} "}")) (else_clause "else {\n    puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n  }" (else "else") (compound_statement "{\n    puVar3 = PTR_DAT_0015b5d8 + -0x4514;\n  }" ({ "{") (expression_statement "puVar3 = PTR_DAT_0015b5d8 + -0x4514;" (assignment_expression "puVar3 = PTR_DAT_0015b5d8 + -0x4514" (identifier "puVar3") (= "=") (binary_expression "PTR_DAT_0015b5d8 + -0x4514" (identifier "PTR_DAT_0015b5d8") (+ "+") (number_literal "-0x4514"))) (; ";")) (} "}")))) (expression_statement "*(int **)(puVar3 + 8) = piVar16;" (assignment_expression "*(int **)(puVar3 + 8) = piVar16" (pointer_expression "*(int **)(puVar3 + 8)" (* "*") (cast_expression "(int **)(puVar3 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3 + 8)" (( "(") (binary_expression "puVar3 + 8" (identifier "puVar3") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "piVar16")) (; ";")) (labeled_statement "LAB_000c0f44:\n  if (local_2c == *(int *)puVar22) {\n    return;\n  }" (statement_identifier "LAB_000c0f44") (: ":") (if_statement "if (local_2c == *(int *)puVar22) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar22)" (( "(") (binary_expression "local_2c == *(int *)puVar22" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar22" (* "*") (cast_expression "(int *)puVar22" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar22")))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}")))) (expression_statement "puVar22 = PTR___stack_chk_fail_0015ba10;" (assignment_expression "puVar22 = PTR___stack_chk_fail_0015ba10" (identifier "puVar22") (= "=") (identifier "PTR___stack_chk_fail_0015ba10")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_0015ba10)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015ba10)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015ba10)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0015ba10" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0015ba10" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0015ba10"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar14 = *piVar16;" (assignment_expression "iVar14 = *piVar16" (identifier "iVar14") (= "=") (pointer_expression "*piVar16" (* "*") (identifier "piVar16"))) (; ";")) (if_statement "if (iVar18 == 0) {\n    if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8();\n      return;\n    }\n  }\n  else {\n    iVar18 = (*(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c))(iVar14);\n    if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8(piVar16,iVar18,iVar5);\n    }\n    if (iVar18 != 0) {\n                    \n                    \n      (*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4))(iVar14,iVar18);\n      return;\n    }\n  }" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8();\n      return;\n    }\n  }" ({ "{") (if_statement "if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8();\n      return;\n    }" (if "if") (parenthesized_expression "(*(char *)(iVar14 + 0x51) == '\0')" (( "(") (binary_expression "*(char *)(iVar14 + 0x51) == '\0'" (pointer_expression "*(char *)(iVar14 + 0x51)" (* "*") (cast_expression "(char *)(iVar14 + 0x51)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x51)" (( "(") (binary_expression "iVar14 + 0x51" (identifier "iVar14") (+ "+") (number_literal "0x51")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      FUN_000c02d8();\n      return;\n    }" ({ "{") (expression_statement "FUN_000c02d8();" (call_expression "FUN_000c02d8()" (identifier "FUN_000c02d8") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    iVar18 = (*(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c))(iVar14);\n    if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8(piVar16,iVar18,iVar5);\n    }\n    if (iVar18 != 0) {\n                    \n                    \n      (*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4))(iVar14,iVar18);\n      return;\n    }\n  }" (else "else") (compound_statement "{\n    iVar18 = (*(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c))(iVar14);\n    if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8(piVar16,iVar18,iVar5);\n    }\n    if (iVar18 != 0) {\n                    \n                    \n      (*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4))(iVar14,iVar18);\n      return;\n    }\n  }" ({ "{") (expression_statement "iVar18 = (*(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c))(iVar14);" (assignment_expression "iVar18 = (*(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c))(iVar14)" (identifier "iVar18") (= "=") (call_expression "(*(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c))(iVar14)" (parenthesized_expression "(*(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c))" (( "(") (pointer_expression "*(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c)" (* "*") (cast_expression "(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar22 + 0x997c0) + -0x271c)" (( "(") (binary_expression "*(int *)(puVar22 + 0x997c0) + -0x271c" (pointer_expression "*(int *)(puVar22 + 0x997c0)" (* "*") (cast_expression "(int *)(puVar22 + 0x997c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + 0x997c0)" (( "(") (binary_expression "puVar22 + 0x997c0" (identifier "puVar22") (+ "+") (number_literal "0x997c0")) () ")")))) (+ "+") (number_literal "-0x271c")) () ")")))) () ")")) (argument_list "(iVar14)" (( "(") (identifier "iVar14") () ")")))) (; ";")) (if_statement "if (*(char *)(iVar14 + 0x51) == '\0') {\n      FUN_000c02d8(piVar16,iVar18,iVar5);\n    }" (if "if") (parenthesized_expression "(*(char *)(iVar14 + 0x51) == '\0')" (( "(") (binary_expression "*(char *)(iVar14 + 0x51) == '\0'" (pointer_expression "*(char *)(iVar14 + 0x51)" (* "*") (cast_expression "(char *)(iVar14 + 0x51)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x51)" (( "(") (binary_expression "iVar14 + 0x51" (identifier "iVar14") (+ "+") (number_literal "0x51")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      FUN_000c02d8(piVar16,iVar18,iVar5);\n    }" ({ "{") (expression_statement "FUN_000c02d8(piVar16,iVar18,iVar5);" (call_expression "FUN_000c02d8(piVar16,iVar18,iVar5)" (identifier "FUN_000c02d8") (argument_list "(piVar16,iVar18,iVar5)" (( "(") (identifier "piVar16") (, ",") (identifier "iVar18") (, ",") (identifier "iVar5") () ")"))) (; ";")) (} "}"))) (if_statement "if (iVar18 != 0) {\n                    \n                    \n      (*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4))(iVar14,iVar18);\n      return;\n    }" (if "if") (parenthesized_expression "(iVar18 != 0)" (( "(") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n                    \n      (*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4))(iVar14,iVar18);\n      return;\n    }" ({ "{") (expression_statement "(*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4))(iVar14,iVar18);" (call_expression "(*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4))(iVar14,iVar18)" (parenthesized_expression "(*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4))" (( "(") (pointer_expression "*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4)" (* "*") (cast_expression "(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar22 + 0x99780) + 0x7bc4)" (( "(") (binary_expression "*(int *)(puVar22 + 0x99780) + 0x7bc4" (pointer_expression "*(int *)(puVar22 + 0x99780)" (* "*") (cast_expression "(int *)(puVar22 + 0x99780)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + 0x99780)" (( "(") (binary_expression "puVar22 + 0x99780" (identifier "puVar22") (+ "+") (number_literal "0x99780")) () ")")))) (+ "+") (number_literal "0x7bc4")) () ")")))) () ")")) (argument_list "(iVar14,iVar18)" (( "(") (identifier "iVar14") (, ",") (identifier "iVar18") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")))) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *pParse,type_2 *p,type_3 *pWInfo,int regGosub,int addrGosub)

{
  bool bVar1;
  type_4 *var_6;
  char *var_16;
  int var_4;
  int var_27;
  int var_15;
  type_5 uVar7;
  type_6 *var_24;
  type_7 var_28;
  type_8 var_13;
  type_5 uVar10;
  int var_8;
  type_5 uVar12;
  int var_9;
  int var_31;
  type_9 *pOVar15;
  type_10 *var_34;
  type_11 *var_21;
  type_7 var_1;
  type_6 *var_25;
  type_12 *pTVar20;
  type_13 *pWVar21;
  type_14 *pcVar22;
  type_15 *psVar23;
  type_1 *var_19;
  type_16 *var_2;
  int var_5;
  type_13 *var_18;
  type_11 *var_22;
  int var_20;
  type_14 *pcVar29;
  type_4 *var_33;
  int var_12;
  type_14 *pcVar32;
  type_6 *puStack_60;
  type_14 *pcStack_5c;
  int var_29;
  int var_14;
  type_14 *pcStack_4c;
  type_11 *var_30;
  int regSize;
  int var_32;
  
  var_33 = PTR___stack_chk_guard_0015ba2c;
  pWVar21 = p->pWin;
  var_32 = *(int *)PTR___stack_chk_guard_0015ba2c;
  var_1._0_1_ = pWVar21->eType;
  var_1._1_1_ = pWVar21->eStart;
  var_1._2_1_ = pWVar21->eEnd;
  var_1._3_1_ = pWVar21->field_0xf;
  if (pWVar21->eType == 'L') {
    if (((var_1 & 0xffff00) == 0x575200) && (pWVar21->pOrderBy != (type_11 *)0x0))
    goto LAB_000c08b4;
    var_2 = pParse->pVdbe;
    if (var_2 == (type_16 *)0x0) {
      var_2 = (type_16 *)(*(type_14 *)(var_3 + -0x371c))(pParse);
    }
    var_6 = var_10;
    var_5 = pParse->nTab;
    var_4 = pParse->nMem;
    var_15 = var_4 + 3;
    var_20 = pParse->nLabel + -2;
    pParse->nTab = var_5 + 2;
    var_8 = pParse->nLabel + -1;
    var_27 = var_4 + 1;
    pParse->nMem = var_15;
    pParse->nLabel = var_20;
    var_4 = var_4 + 2;
    var_12 = var_5 + 1;
    regSize = 0;
    (*(type_14 *)(var_6 + -0x7e94))(pParse,&p->pSrc,p->pWin,pWInfo,var_27,var_8,&regSize);
    pcVar22 = (type_14 *)(var_3 + -0x3890);
    puStack_60 = (type_6 *)(*pcVar22)(var_2,0xb,0,0,0);
    pcVar32 = (type_14 *)(var_3 + -0x3c14);
    (*pcVar32)(var_2,var_8);
    (*pcVar22)(var_2,0x11,0,var_2->nOp + 3,0);
    (*pcVar22)(var_2,0x6f,var_5,pWVar21->iEphCsr,0);
    (*pcVar22)(var_2,0x6f,var_12,pWVar21->iEphCsr,0);
    if (pWVar21->pStart != (type_10 *)0x0) {
      var_7(pParse,pWVar21->pStart,var_4);
      (*(type_14 *)(var_3 + -0x2920))(pParse,var_4,0);
    }
    if (pWVar21->pEnd != (type_10 *)0x0) {
      var_7(pParse,pWVar21->pEnd,var_15);
      (*(type_14 *)(var_3 + -0x2920))(pParse,var_15,1);
      if ((pWVar21->pEnd != (type_10 *)0x0) && (pWVar21->eStart == 'S')) {
        (*pcVar22)(var_2,0x39,var_4,var_2->nOp + 2,var_15);
        (*pcVar22)(var_2,0x4e,regSize,var_4,0);
        (*pcVar22)(var_2,0x61,var_4,var_15,var_15);
      }
    }
    if ((pWVar21->pStart != (type_10 *)0x0) && (pWVar21->eEnd == 'U')) {
      (*pcVar22)(var_2,0x37,var_4,var_2->nOp + 3,var_15);
      (*pcVar22)(var_2,0x4e,regSize,var_4,0);
      (*pcVar22)(var_2,0x4e,regSize,var_15,0);
    }
    uVar7 = (*(type_14 *)(var_3 + -0x2e00))(pParse,pWVar21);
    (*pcVar22)(var_2,0x24,pWVar21->iEphCsr,var_20,0);
    (*pcVar22)(var_2,0x24,var_5,var_20,0);
    if (0 < var_2->nOp) {
      var_2->aOp[var_2->nOp + -1].p5 = 1;
    }
    (*pcVar22)(var_2,0x24,var_12,var_20,0);
    var_8 = var_2->nOp;
    if (0 < var_8) {
      var_2->aOp[var_8 + -1].p5 = 1;
      var_8 = var_2->nOp;
    }
    if (pWVar21->eEnd == 'U') {
      var_14 = (*pcVar22)(var_2,0x2f,var_15,0,1);
      var_9 = var_2->nOp;
    }
    else {
      var_14 = 0;
      var_9 = var_8;
    }
    (*pcVar22)(var_2,5,var_12,var_9 + 2,0);
    var_9 = (*pcVar22)(var_2,0xb,0,0,0);
    pcVar29 = (type_14 *)(var_10 + -0x7af4);
    (*pcVar29)(pParse,pWVar21,var_12,0,uVar7,regSize);
    if (pWVar21->eEnd == 'W') {
      (*pcVar22)(var_2,0xb,0,var_8,0);
      var_8 = var_2->nOp;
      if (var_9 < 0) {
        var_9 = var_8 + -1;
      }
      if (var_2->db->mallocFailed == '\0') {
        var_2->aOp[var_9].p2 = var_8;
        var_13 = pWVar21->eEnd;
      }
      else {
        *(int *)(var_11 + -0x450c) = var_8;
        var_13 = pWVar21->eEnd;
      }
    }
    else {
      var_12 = var_2->nOp;
      if (var_9 < 0) {
        var_9 = var_12 + -1;
      }
      if (var_2->db->mallocFailed == '\0') {
        pOVar15 = var_2->aOp + var_9;
      }
      else {
        pOVar15 = (type_9 *)(var_11 + -0x4514);
      }
      pOVar15->p2 = var_12;
      var_13 = pWVar21->eEnd;
      if (var_13 == 'U') {
        var_9 = var_12 + -1;
        if (-1 < var_14) {
          var_9 = var_14;
        }
        if (var_2->db->mallocFailed == '\0') {
          var_2->aOp[var_9].p2 = var_12;
          var_13 = pWVar21->eEnd;
        }
        else {
          *(int *)(var_11 + -0x450c) = var_12;
          var_13 = pWVar21->eEnd;
        }
      }
    }
    if (var_13 == 'S') {
      var_14 = (*pcVar22)(var_2,0x2f,var_15,0,1);
    }
    if (pWVar21->eStart == 'S') {
      var_15 = (*pcVar22)(var_2,0x2f,var_4,0,1);
      (*(type_14 *)(var_3 + -0x2764))(pParse,pWVar21,0);
      (*(type_14 *)(var_3 + -0x2524))(pParse,pWVar21,regGosub,addrGosub);
      (*pcVar22)(var_2,5,pWVar21->iEphCsr,var_2->nOp + 2,0);
      (*pcVar22)(var_2,0xb,0,var_20,0);
      var_1 = (type_7)pWVar21->eStart;
      if (var_1 == 0x53) {
        var_12 = var_2->nOp;
        if (var_15 < 0) {
          var_15 = var_12 + -1;
        }
        goto LAB_000c1d20;
      }
    }
    else {
      (*(type_14 *)(var_3 + -0x2764))(pParse,pWVar21,0);
      (*(type_14 *)(var_3 + -0x2524))(pParse,pWVar21,regGosub,addrGosub);
      (*pcVar22)(var_2,5,pWVar21->iEphCsr,var_2->nOp + 2,0);
      (*pcVar22)(var_2,0xb,0,var_20,0);
      var_1 = (type_7)pWVar21->eStart;
      if (var_1 == 0x53) {
        var_12 = var_2->nOp;
        var_15 = 0;
LAB_000c1d20:
        if (var_2->db->mallocFailed == '\0') {
          var_2->aOp[var_15].p2 = var_12;
          var_1 = (type_7)pWVar21->eStart;
        }
        else {
          *(int *)(var_11 + -0x450c) = var_12;
          var_1 = (type_7)pWVar21->eStart;
        }
      }
    }
    if ((var_1 - 0x52 < 2) || (var_1 == 0x55)) {
      var_15 = pParse->nLabel + -1;
      pParse->nLabel = var_15;
      var_13 = pWVar21->eStart;
      if (var_13 == 'U') {
        (*pcVar22)(var_2,0x2f,var_4,var_15,1);
        var_13 = pWVar21->eStart;
      }
      if (var_13 == 'S') {
        (*pcVar22)(var_2,5,var_5,var_2->nOp + 2,0);
        (*pcVar22)(var_2,0xb,0,var_15,0);
      }
      else {
        (*pcVar22)(var_2,5,var_5,var_2->nOp + 1,0);
      }
      (*pcVar29)(pParse,pWVar21,var_5,1,uVar7,regSize);
      (*pcVar32)(var_2,var_15);
    }
    if (pWVar21->eEnd == 'S') {
      var_4 = var_2->nOp;
      if (var_14 < 0) {
        var_14 = var_4 + -1;
      }
      if (var_2->db->mallocFailed == '\0') {
        var_2->aOp[var_14].p2 = var_4;
      }
      else {
        *(int *)(var_11 + -0x450c) = var_4;
      }
    }
    (*pcVar22)(var_2,0xb,0,var_8,0);
    (*pcVar32)(var_2,var_20);
    (*pcVar22)(var_2,0x8a,pWVar21->iEphCsr,0,0);
  }
  else {
    if ((var_1 & 0xffff00) != 0x525700) {
LAB_000c08b4:
      var_18 = pWVar21;
      do {
        if (((((var_18->pFunc->funcFlags & 0x20000) != 0) ||
             (var_16 = var_18->pFunc->zName, var_16 == var_17 + -0x7df4)) ||
            (var_16 == var_17 + -0x7e00)) ||
           ((var_16 == var_17 + -0x7e08 || (var_16 == var_17 + -0x7e0c))))
        goto LAB_000c0c60;
        var_18 = var_18->pNextWin;
      } while (var_18 != (type_13 *)0x0);
      var_19 = (type_1 *)pParse->pVdbe;
      if (var_19 == (type_1 *)0x0) {
        var_19 = (type_1 *)(*(type_14 *)(var_3 + -0x371c))(pParse);
      }
      var_21 = pWVar21->pPartition;
      var_5 = pParse->nMem + 1;
      var_4 = p->pSrc->a[0].iCursor;
      var_20 = (int)(p->pSrc->a[0].pTab)->nCol;
      var_27 = var_20 + var_5;
      var_15 = var_20 + 2 + pParse->nMem;
      if (pWVar21->eEnd == 'W') {
        pParse->nMem = var_15;
        var_22 = (type_11 *)0x0;
        if (0 < var_20) goto LAB_000c0980;
        if (var_21 != (type_11 *)0x0) {
          var_14 = var_21->nExpr;
          pcVar22 = (type_14 *)(var_3 + -0x3890);
          goto LAB_000c09d4;
        }
        pcVar22 = (type_14 *)(var_3 + -0x3890);
        pcVar32 = (type_14 *)(var_3 + -0x2764);
      }
      else {
        var_22 = pWVar21->pOrderBy;
        pParse->nMem = var_15;
        if (var_20 < 1) {
          pcVar22 = (type_14 *)(var_3 + -0x3890);
        }
        else {
LAB_000c0980:
          pcVar22 = (type_14 *)(var_3 + -0x3890);
          var_15 = 0;
          do {
            var_12 = var_15 + 1;
            (*pcVar22)(var_19,0x5a,var_4,var_15,var_5 + var_15);
            var_15 = var_12;
          } while (var_12 < var_20);
        }
        var_6 = var_10;
        if (var_21 == (type_11 *)0x0) {
          if (var_22 == (type_11 *)0x0) {
            pcVar32 = (type_14 *)(var_3 + -0x2764);
            goto LAB_000c0b50;
          }
          var_4 = var_22->nExpr;
          puStack_60 = (type_6 *)var_4;
          if (pWVar21->eType == 'V') {
            var_25 = (type_6 *)0x0;
            var_15 = pWVar21->regPart;
            var_14 = var_5 + pWVar21->nBufferCol;
            pcVar32 = (type_14 *)(var_3 + -0x2764);
            pcStack_5c = (type_14 *)(var_23 + -0x5958);
            goto LAB_000c1e74;
          }
          var_24 = (type_6 *)0x0;
          pcVar32 = (type_14 *)(var_3 + -0x2764);
          (*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R');
          pTVar20 = var_19->aTableLock;
        }
        else {
          var_14 = var_21->nExpr;
          if (var_22 == (type_11 *)0x0) {
LAB_000c09d4:
            var_4 = pWVar21->nBufferCol;
            uVar7 = (*(type_14 *)(var_10 + -0x7fc4))(pParse,var_21,0,0);
            var_4 = (*pcVar22)(var_19,0x57,var_5 + var_4,pWVar21->regPart,var_14);
            (*(type_14 *)(var_23 + -0x5958))(var_19,uVar7,0xfffffff7);
            var_24 = (type_6 *)(*pcVar22)(var_19,0x10,var_4 + 2,0,var_4 + 2);
            pcVar32 = (type_14 *)(var_3 + -0x2764);
            (*pcVar32)(pParse,pWVar21,1);
            puStack_60 = (type_6 *)var_14;
          }
          else {
            var_15 = pWVar21->nBufferCol;
            var_4 = var_22->nExpr;
            uVar7 = (*(type_14 *)(var_10 + -0x7fc4))(pParse,var_21,0,0);
            var_15 = (*pcVar22)(var_19,0x57,var_5 + var_15,pWVar21->regPart,var_14);
            pcStack_5c = (type_14 *)(var_23 + -0x5958);
            (*pcStack_5c)(var_19,uVar7,0xfffffff7);
            var_24 = (type_6 *)(*pcVar22)(var_19,0x10,var_15 + 2,0,var_15 + 2);
            pcVar32 = (type_14 *)(var_3 + -0x2764);
            (*pcVar32)(pParse,pWVar21,1);
            var_25 = (type_6 *)(*pcVar22)(var_19,0xb,0,0,0);
            var_20 = pWVar21->nBufferCol;
            var_15 = pWVar21->regPart;
            if (var_24 != (type_6 *)0x0) {
              pTVar20 = var_19->aTableLock;
              if ((int)var_24 < 0) {
                var_24 = (type_6 *)((int)&pTVar20[-1].zLockName + 3);
              }
              if (var_19->db->mallocFailed == '\0') {
                ((type_9 *)var_19->nTableLock)[(int)var_24].p2 = (int)pTVar20;
              }
              else {
                *(type_12 **)(var_11 + -0x450c) = pTVar20;
              }
            }
            puStack_60 = (type_6 *)(var_14 + var_4);
            if (pWVar21->eType == 'V') {
              var_15 = var_14 + var_15;
              var_14 = var_5 + var_20 + var_14;
LAB_000c1e74:
              pcStack_4c = (type_14 *)(var_6 + -0x7fc4);
              uVar7 = (*pcStack_4c)(pParse,var_22,0,0);
              var_4 = (*pcVar22)(var_19,0x57,var_14,var_15,var_4);
              (*pcStack_5c)(var_19,uVar7,0xfffffff7);
              var_24 = (type_6 *)(*pcVar22)(var_19,0x10,var_4 + 2,0,var_4 + 2);
            }
            else {
              var_24 = (type_6 *)0x0;
            }
            (*pcVar32)(pParse,pWVar21,pWVar21->eStart == 'R');
            if (var_25 != (type_6 *)0x0) {
              pTVar20 = var_19->aTableLock;
              if ((int)var_25 < 0) {
                var_25 = (type_6 *)((int)&pTVar20[-1].zLockName + 3);
              }
              if (var_19->db->mallocFailed == '\0') {
                ((type_9 *)var_19->nTableLock)[(int)var_25].p2 = (int)pTVar20;
              }
              else {
                *(type_12 **)(var_11 + -0x450c) = pTVar20;
              }
            }
          }
          pTVar20 = var_19->aTableLock;
        }
        (*pcVar22)(var_19,0x24,pWVar21->iEphCsr,(type_6 *)((int)&pTVar20->iDb + 3),0);
        (*pcVar22)(var_19,0xc,regGosub,addrGosub,0);
        (*pcVar22)(var_19,5,pWVar21->iEphCsr,
                   (type_6 *)((int)&var_19->aTableLock[-1].zLockName + 3),0);
        (*pcVar22)(var_19,0x8a,pWVar21->iEphCsr,0,0);
        (*pcVar22)(var_19,0x4e,var_5 + pWVar21->nBufferCol,pWVar21->regPart,(int)puStack_60 + -1
                  );
        if (var_24 != (type_6 *)0x0) {
          pTVar20 = var_19->aTableLock;
          if ((int)var_24 < 0) {
            var_24 = (type_6 *)((int)&pTVar20[-1].zLockName + 3);
          }
          if (var_19->db->mallocFailed == '\0') {
            ((type_9 *)var_19->nTableLock)[(int)var_24].p2 = (int)pTVar20;
          }
          else {
            *(type_12 **)(var_11 + -0x450c) = pTVar20;
          }
        }
      }
LAB_000c0b50:
      (*(type_14 *)(var_10 + -0x7af4))(pParse,pWVar21,0xffffffff,0,var_5,0);
      if (pWVar21->nBufferCol < 1) {
        (*pcVar22)(var_19,0x4b,0,var_27,0);
        (*(type_14 *)(var_23 + -0x5958))(var_19,var_26 + 0x53f4,0);
      }
      else {
        (*pcVar22)(var_19,0x66,var_5,pWVar21->nBufferCol,var_27);
      }
      (*pcVar22)(var_19,0x79,pWVar21->iEphCsr,var_27 + 1,0);
      (*pcVar22)(var_19,0x7a,pWVar21->iEphCsr,var_27,var_27 + 1);
      (*(type_14 *)(var_3 + -0x18cc))(pWInfo);
      (*pcVar32)(pParse,pWVar21,1);
      (*pcVar22)(var_19,0x24,pWVar21->iEphCsr,
                 (type_6 *)((int)&var_19->aTableLock->iDb + 3),0);
      (*pcVar22)(var_19,0xc,regGosub,addrGosub,0);
      var_25 = &DAT_00000005;
      var_27 = pWVar21->iEphCsr;
      (*pcVar22)();
      goto LAB_000c0f44;
    }
LAB_000c0c60:
    var_2 = pParse->pVdbe;
    if (var_2 == (type_16 *)0x0) {
      var_2 = (type_16 *)(*(type_14 *)(var_3 + -0x371c))(pParse);
      var_21 = pWVar21->pOrderBy;
      var_30 = pWVar21->pPartition;
      if (var_21 != (type_11 *)0x0) goto LAB_000c0c7c;
LAB_000c1450:
      var_29 = 0;
      bVar1 = false;
    }
    else {
      var_30 = pWVar21->pPartition;
      var_21 = pWVar21->pOrderBy;
      if (var_21 == (type_11 *)0x0) goto LAB_000c1450;
LAB_000c0c7c:
      var_29 = var_21->nExpr;
      var_28._0_1_ = pWVar21->eType;
      var_28._1_1_ = pWVar21->eStart;
      var_28._2_1_ = pWVar21->eEnd;
      var_28._3_1_ = pWVar21->field_0xf;
      bVar1 = (var_28 & 0xffff00) == 0x525700;
    }
    var_6 = var_10;
    var_4 = pParse->nMem;
    var_20 = pParse->nTab;
    var_15 = pParse->nLabel;
    var_27 = var_4 + var_29;
    var_12 = var_27 + 2;
    var_5 = var_15 + -2;
    pParse->nTab = var_20 + 1;
    var_27 = var_27 + 1;
    pParse->nLabel = var_5;
    pParse->nMem = var_12;
    var_15 = var_15 + -1;
    (*(type_14 *)(var_6 + -0x7e94))(pParse,&p->pSrc,p->pWin,pWInfo,var_27,var_5,&regSize);
    pcVar22 = (type_14 *)(var_3 + -0x3890);
    puStack_60 = (type_6 *)(*pcVar22)(var_2,0xb,0,0,0);
    pcVar32 = (type_14 *)(var_3 + -0x3c14);
    (*pcVar32)(var_2,var_5);
    (*pcVar22)(var_2,0x11,0,var_2->nOp + 2,0);
    (*pcVar22)(var_2,0x6f,var_20,pWVar21->iEphCsr,0);
    uVar7 = (*(type_14 *)(var_3 + -0x2e00))(pParse,pWVar21);
    (*pcVar22)(var_2,0x46,0,var_12,0);
    (*pcVar22)(var_2,0x24,var_20,var_15,0);
    (*pcVar22)(var_2,0x24,pWVar21->iEphCsr,var_15,0);
    if (bVar1) {
      var_5 = var_2->nOp;
      (*(type_14 *)(var_10 + -0x7af4))(pParse,pWVar21,var_20,0,uVar7,regSize);
      (*pcVar22)(var_2,5,var_20,var_5,0);
      (*pcVar22)(var_2,0x24,var_20,var_15,0);
      var_14 = var_2->nOp;
      if (var_21 != (type_11 *)0x0) goto LAB_000c0e28;
      pcVar29 = (type_14 *)(var_10 + -0x7508);
    }
    else {
      var_14 = var_2->nOp;
      if (var_21 == (type_11 *)0x0) {
        pcVar29 = (type_14 *)(var_10 + -0x7508);
      }
      else {
LAB_000c0e28:
        var_13 = pWVar21->eStart;
        uVar10 = uVar7;
        if (pWVar21->eEnd == 'R') {
          if (pWVar21->eType == 'V') {
LAB_000c1544:
            var_5 = pWVar21->nBufferCol;
            if (var_30 == (type_11 *)0x0) {
              var_8 = 0;
            }
            else {
              var_8 = var_30->nExpr;
              var_5 = var_5 + var_8;
            }
            var_8 = var_8 + pWVar21->regPart;
            uVar12 = (*(type_14 *)(var_10 + -0x7fc4))(pParse,var_21,0,0);
            var_4 = var_4 + 1;
            if (0 < var_29) {
              var_9 = var_29 + var_5;
              var_31 = var_4 - var_5;
              do {
                (*pcVar22)(var_2,0x5a,var_20,var_5,var_31 + var_5);
                var_5 = var_5 + 1;
              } while (var_5 != var_9);
            }
            var_5 = (*pcVar22)(var_2,0x57,var_4,var_8,var_29);
            (*(type_14 *)(var_23 + -0x5958))(var_2,uVar12,0xfffffff7);
            var_5 = (*pcVar22)(var_2,0x10,var_5 + 2,0,var_5 + 2);
            (*pcVar22)(var_2,0x4e,var_4,var_8,var_29 + -1);
            var_4 = regSize;
            if (var_13 != 'R') {
              uVar10 = 0;
              var_4 = 0;
            }
            goto LAB_000c14a0;
          }
          if (var_13 == 'R') goto LAB_000c1494;
          pcVar29 = (type_14 *)(var_10 + -0x7508);
          (*pcVar29)(pParse,pWVar21,var_12,regGosub,addrGosub,0,0);
        }
        else if (var_13 == 'R') {
          if (pWVar21->eType == 'V') goto LAB_000c1544;
LAB_000c1494:
          var_5 = 0;
          var_4 = regSize;
LAB_000c14a0:
          pcVar29 = (type_14 *)(var_10 + -0x7508);
          (*pcVar29)(pParse,pWVar21,var_12,regGosub,addrGosub,uVar10,var_4);
          if (var_5 != 0) {
            var_4 = var_2->nOp;
            if (var_5 < 0) {
              var_5 = var_4 + -1;
            }
            if (var_2->db->mallocFailed == '\0') {
              var_2->aOp[var_5].p2 = var_4;
            }
            else {
              *(int *)(var_11 + -0x450c) = var_4;
            }
          }
        }
        else {
          pcVar29 = (type_14 *)(var_10 + -0x7508);
        }
        if (bVar1) goto LAB_000c0e5c;
      }
      (*(type_14 *)(var_10 + -0x7af4))(pParse,pWVar21,var_20,0,uVar7,regSize);
    }
LAB_000c0e5c:
    (*pcVar22)(var_2,0x53,var_12,1,0);
    (*pcVar22)(var_2,5,var_20,var_14,0);
    (*pcVar29)(pParse,pWVar21,var_12,regGosub,addrGosub,0,0);
    (*pcVar32)(var_2,var_15);
    (*pcVar22)(var_2,0x8a,pWVar21->iEphCsr,0,0);
  }
  var_25 = (type_6 *)0x42;
  (*pcVar22)(var_2,0x42,var_27,0,0);
  var_19 = (type_1 *)var_2->nOp;
  if ((int)puStack_60 < 0) {
    puStack_60 = (type_6 *)((int)&var_19[-1].pRename + 3);
  }
  if (var_2->db->mallocFailed == '\0') {
    pOVar15 = var_2->aOp + (int)puStack_60;
    var_25 = puStack_60;
  }
  else {
    pOVar15 = (type_9 *)(var_11 + -0x4514);
  }
  pOVar15->p2 = (int)var_19;
LAB_000c0f44:
  if (var_32 == *(int *)var_33) {
    return;
  }
  var_33 = PTR___stack_chk_fail_0015ba10;
  (*(type_14 *)PTR___stack_chk_fail_0015ba10)();
  psVar23 = var_19->db;
  if (var_25 == (type_6 *)0x0) {
    if (psVar23->mallocFailed == '\0') {
      var_7(var_19,(type_10 *)0x0,var_27);
      return;
    }
  }
  else {
    var_34 = (type_10 *)(*(type_14 *)(*(int *)(var_33 + 0x997c0) + -0x271c))(psVar23);
    if (psVar23->mallocFailed == '\0') {
      var_7(var_19,var_34,var_27);
    }
    if (var_34 != (type_10 *)0x0) {
                    /* WARNING: Could not recover jumptable at 0x000c1fc0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      (*(type_14 *)(*(int *)(var_33 + 0x99780) + 0x7bc4))(psVar23,var_34);
      return;
    }
  }
  return;
}


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

void MASKED(int param_1,int param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5)

{
  bool bVar1;
  uint uVar2;
  undefined *puVar3;
  undefined4 uVar4;
  int iVar5;
  char cVar10;
  undefined4 uVar6;
  undefined4 uVar7;
  int iVar8;
  int iVar9;
  int *piVar11;
  int iVar12;
  int iVar13;
  int iVar14;
  code *pcVar15;
  int *piVar16;
  int iVar17;
  int iVar18;
  int *piVar19;
  int iVar20;
  code *pcVar21;
  undefined *puVar22;
  int iVar23;
  code *pcVar24;
  int local_60;
  code *local_5c;
  int local_58;
  int local_50;
  code *local_4c;
  int *local_48;
  undefined4 local_30;
  int local_2c;
  
  puVar22 = PTR___stack_chk_guard_0015ba2c;
  iVar14 = *(int *)(param_2 + 0x44);
  local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;
  uVar2 = *(uint *)(iVar14 + 0xc) & 0xffff00;
  if (*(char *)(iVar14 + 0xc) == 'L') {
    if ((uVar2 == 0x575200) && (*(int *)(iVar14 + 8) != 0)) goto LAB_000c08b4;
    piVar11 = *(int **)(param_1 + 8);
    if (piVar11 == (int *)0x0) {
      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);
    }
    puVar3 = PTR_LAB_0015b714;
    iVar20 = *(int *)(param_1 + 0x28);
    iVar18 = *(int *)(param_1 + 0x2c);
    iVar17 = iVar18 + 3;
    iVar23 = *(int *)(param_1 + 0x38) + -2;
    *(int *)(param_1 + 0x28) = iVar20 + 2;
    iVar12 = *(int *)(param_1 + 0x38) + -1;
    iVar5 = iVar18 + 1;
    *(int *)(param_1 + 0x2c) = iVar17;
    *(int *)(param_1 + 0x38) = iVar23;
    iVar18 = iVar18 + 2;
    iVar9 = iVar20 + 1;
    local_30 = 0;
    (*(code *)(puVar3 + -0x7e94))
              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar12,&local_30
              );
    pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);
    local_60 = (*pcVar15)(piVar11,0xb,0,0,0);
    pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);
    (*pcVar24)(piVar11,iVar12);
    (*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 3,0);
    (*pcVar15)(piVar11,0x6f,iVar20,*(undefined4 *)(iVar14 + 0x24),0);
    (*pcVar15)(piVar11,0x6f,iVar9,*(undefined4 *)(iVar14 + 0x24),0);
    if (*(int *)(iVar14 + 0x10) != 0) {
      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x10),iVar18);
      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar18,0);
    }
    if (*(int *)(iVar14 + 0x14) != 0) {
      FUN_000c02d8(param_1,*(int *)(iVar14 + 0x14),iVar17);
      (*(code *)(PTR_LAB_0015b710 + -0x2920))(param_1,iVar17,1);
      if ((*(int *)(iVar14 + 0x14) != 0) && (*(char *)(iVar14 + 0xd) == 'S')) {
        (*pcVar15)(piVar11,0x39,iVar18,piVar11[0x1b] + 2,iVar17);
        (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);
        (*pcVar15)(piVar11,0x61,iVar18,iVar17,iVar17);
      }
    }
    if ((*(int *)(iVar14 + 0x10) != 0) && (*(char *)(iVar14 + 0xe) == 'U')) {
      (*pcVar15)(piVar11,0x37,iVar18,piVar11[0x1b] + 3,iVar17);
      (*pcVar15)(piVar11,0x4e,local_30,iVar18,0);
      (*pcVar15)(piVar11,0x4e,local_30,iVar17,0);
    }
    uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);
    (*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar23,0);
    (*pcVar15)(piVar11,0x24,iVar20,iVar23,0);
    if (0 < piVar11[0x1b]) {
      *(undefined2 *)(piVar11[0x1a] + piVar11[0x1b] * 0x14 + -0x12) = 1;
    }
    (*pcVar15)(piVar11,0x24,iVar9,iVar23,0);
    iVar12 = piVar11[0x1b];
    if (0 < iVar12) {
      *(undefined2 *)(piVar11[0x1a] + iVar12 * 0x14 + -0x12) = 1;
      iVar12 = piVar11[0x1b];
    }
    if (*(char *)(iVar14 + 0xe) == 'U') {
      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);
      iVar13 = piVar11[0x1b];
    }
    else {
      local_50 = 0;
      iVar13 = iVar12;
    }
    (*pcVar15)(piVar11,5,iVar9,iVar13 + 2,0);
    iVar13 = (*pcVar15)(piVar11,0xb,0,0,0);
    pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7af4);
    (*pcVar21)(param_1,iVar14,iVar9,0,uVar4,local_30);
    if (*(char *)(iVar14 + 0xe) == 'W') {
      (*pcVar15)(piVar11,0xb,0,iVar12,0);
      iVar12 = piVar11[0x1b];
      if (iVar13 < 0) {
        iVar13 = iVar12 + -1;
      }
      if (*(char *)(*piVar11 + 0x51) == '\0') {
        *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar12;
        cVar10 = *(char *)(iVar14 + 0xe);
      }
      else {
        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar12;
        cVar10 = *(char *)(iVar14 + 0xe);
      }
    }
    else {
      iVar9 = piVar11[0x1b];
      if (iVar13 < 0) {
        iVar13 = iVar9 + -1;
      }
      if (*(char *)(*piVar11 + 0x51) == '\0') {
        puVar3 = (undefined *)(piVar11[0x1a] + iVar13 * 0x14);
      }
      else {
        puVar3 = PTR_DAT_0015b5d8 + -0x4514;
      }
      *(int *)(puVar3 + 8) = iVar9;
      cVar10 = *(char *)(iVar14 + 0xe);
      if (cVar10 == 'U') {
        iVar13 = iVar9 + -1;
        if (-1 < local_50) {
          iVar13 = local_50;
        }
        if (*(char *)(*piVar11 + 0x51) == '\0') {
          *(int *)(piVar11[0x1a] + iVar13 * 0x14 + 8) = iVar9;
          cVar10 = *(char *)(iVar14 + 0xe);
        }
        else {
          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;
          cVar10 = *(char *)(iVar14 + 0xe);
        }
      }
    }
    if (cVar10 == 'S') {
      local_50 = (*pcVar15)(piVar11,0x2f,iVar17,0,1);
    }
    if (*(char *)(iVar14 + 0xd) == 'S') {
      iVar17 = (*pcVar15)(piVar11,0x2f,iVar18,0,1);
      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);
      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);
      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);
      (*pcVar15)(piVar11,0xb,0,iVar23,0);
      uVar2 = (uint)*(byte *)(iVar14 + 0xd);
      if (uVar2 == 0x53) {
        iVar9 = piVar11[0x1b];
        if (iVar17 < 0) {
          iVar17 = iVar9 + -1;
        }
        goto LAB_000c1d20;
      }
    }
    else {
      (*(code *)(PTR_LAB_0015b710 + -0x2764))(param_1,iVar14,0);
      (*(code *)(PTR_LAB_0015b710 + -0x2524))(param_1,iVar14,param_4,param_5);
      (*pcVar15)(piVar11,5,*(undefined4 *)(iVar14 + 0x24),piVar11[0x1b] + 2,0);
      (*pcVar15)(piVar11,0xb,0,iVar23,0);
      uVar2 = (uint)*(byte *)(iVar14 + 0xd);
      if (uVar2 == 0x53) {
        iVar9 = piVar11[0x1b];
        iVar17 = 0;
LAB_000c1d20:
        if (*(char *)(*piVar11 + 0x51) == '\0') {
          *(int *)(piVar11[0x1a] + iVar17 * 0x14 + 8) = iVar9;
          uVar2 = (uint)*(byte *)(iVar14 + 0xd);
        }
        else {
          *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar9;
          uVar2 = (uint)*(byte *)(iVar14 + 0xd);
        }
      }
    }
    if ((uVar2 - 0x52 < 2) || (uVar2 == 0x55)) {
      iVar17 = *(int *)(param_1 + 0x38) + -1;
      *(int *)(param_1 + 0x38) = iVar17;
      cVar10 = *(char *)(iVar14 + 0xd);
      if (cVar10 == 'U') {
        (*pcVar15)(piVar11,0x2f,iVar18,iVar17,1);
        cVar10 = *(char *)(iVar14 + 0xd);
      }
      if (cVar10 == 'S') {
        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 2,0);
        (*pcVar15)(piVar11,0xb,0,iVar17,0);
      }
      else {
        (*pcVar15)(piVar11,5,iVar20,piVar11[0x1b] + 1,0);
      }
      (*pcVar21)(param_1,iVar14,iVar20,1,uVar4,local_30);
      (*pcVar24)(piVar11,iVar17);
    }
    if (*(char *)(iVar14 + 0xe) == 'S') {
      iVar18 = piVar11[0x1b];
      if (local_50 < 0) {
        local_50 = iVar18 + -1;
      }
      if (*(char *)(*piVar11 + 0x51) == '\0') {
        *(int *)(piVar11[0x1a] + local_50 * 0x14 + 8) = iVar18;
      }
      else {
        *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;
      }
    }
    (*pcVar15)(piVar11,0xb,0,iVar12,0);
    (*pcVar24)(piVar11,iVar23);
    (*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);
  }
  else {
    if (uVar2 != 0x525700) {
LAB_000c08b4:
      iVar18 = iVar14;
      do {
        if (((((*(uint *)(*(int *)(iVar18 + 0x20) + 4) & 0x20000) != 0) ||
             (puVar3 = *(undefined **)(*(int *)(iVar18 + 0x20) + 0x20),
             puVar3 == PTR_DAT_0015b694 + -0x7df4)) || (puVar3 == PTR_DAT_0015b694 + -0x7e00)) ||
           ((puVar3 == PTR_DAT_0015b694 + -0x7e08 || (puVar3 == PTR_DAT_0015b694 + -0x7e0c))))
        goto LAB_000c0c60;
        iVar18 = *(int *)(iVar18 + 0x18);
      } while (iVar18 != 0);
      piVar16 = *(int **)(param_1 + 8);
      if (piVar16 == (int *)0x0) {
        piVar16 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);
      }
      piVar11 = *(int **)(iVar14 + 4);
      iVar17 = *(int *)(param_1 + 0x2c) + 1;
      uVar4 = *(undefined4 *)(*(int *)(param_2 + 0x20) + 0x30);
      iVar20 = (int)*(short *)(*(int *)(*(int *)(param_2 + 0x20) + 0x18) + 0x2a);
      iVar18 = iVar20 + iVar17;
      iVar5 = iVar20 + 2 + *(int *)(param_1 + 0x2c);
      if (*(char *)(iVar14 + 0xe) == 'W') {
        *(int *)(param_1 + 0x2c) = iVar5;
        piVar19 = (int *)0x0;
        if (0 < iVar20) goto LAB_000c0980;
        if (piVar11 != (int *)0x0) {
          local_50 = *piVar11;
          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);
          goto LAB_000c09d4;
        }
        pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);
        pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);
      }
      else {
        piVar19 = *(int **)(iVar14 + 8);
        *(int *)(param_1 + 0x2c) = iVar5;
        if (iVar20 < 1) {
          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);
        }
        else {
LAB_000c0980:
          pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);
          iVar5 = 0;
          do {
            iVar23 = iVar5 + 1;
            (*pcVar15)(piVar16,0x5a,uVar4,iVar5,iVar17 + iVar5);
            iVar5 = iVar23;
          } while (iVar23 < iVar20);
        }
        puVar3 = PTR_LAB_0015b714;
        if (piVar11 == (int *)0x0) {
          if (piVar19 == (int *)0x0) {
            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);
            goto LAB_000c0b50;
          }
          iVar5 = *piVar19;
          local_60 = iVar5;
          if (*(char *)(iVar14 + 0xc) == 'V') {
            iVar20 = 0;
            iVar23 = *(int *)(iVar14 + 0x38);
            local_50 = iVar17 + *(int *)(iVar14 + 0x40);
            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);
            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);
            goto LAB_000c1e74;
          }
          iVar5 = 0;
          pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);
          (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');
          iVar20 = piVar16[0x1b];
        }
        else {
          local_50 = *piVar11;
          if (piVar19 == (int *)0x0) {
LAB_000c09d4:
            iVar5 = *(int *)(iVar14 + 0x40);
            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);
            iVar5 = (*pcVar15)(piVar16,0x57,iVar17 + iVar5,*(undefined4 *)(iVar14 + 0x38),local_50);
            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,uVar4,0xfffffff7);
            iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);
            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);
            (*pcVar24)(param_1,iVar14,1);
            local_60 = local_50;
          }
          else {
            iVar20 = *(int *)(iVar14 + 0x40);
            iVar5 = *piVar19;
            uVar4 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar11,0,0);
            iVar20 = (*pcVar15)(piVar16,0x57,iVar17 + iVar20,*(undefined4 *)(iVar14 + 0x38),local_50
                               );
            local_5c = (code *)(PTR_LAB_0015b6c0 + -0x5958);
            (*local_5c)(piVar16,uVar4,0xfffffff7);
            iVar9 = (*pcVar15)(piVar16,0x10,iVar20 + 2,0,iVar20 + 2);
            pcVar24 = (code *)(PTR_LAB_0015b710 + -0x2764);
            (*pcVar24)(param_1,iVar14,1);
            iVar20 = (*pcVar15)(piVar16,0xb,0,0,0);
            iVar12 = *(int *)(iVar14 + 0x40);
            iVar23 = *(int *)(iVar14 + 0x38);
            if (iVar9 != 0) {
              iVar13 = piVar16[0x1b];
              if (iVar9 < 0) {
                iVar9 = iVar13 + -1;
              }
              if (*(char *)(*piVar16 + 0x51) == '\0') {
                *(int *)(piVar16[0x1a] + iVar9 * 0x14 + 8) = iVar13;
              }
              else {
                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar13;
              }
            }
            local_60 = local_50 + iVar5;
            if (*(char *)(iVar14 + 0xc) == 'V') {
              iVar23 = local_50 + iVar23;
              local_50 = iVar17 + iVar12 + local_50;
LAB_000c1e74:
              local_4c = (code *)(puVar3 + -0x7fc4);
              uVar4 = (*local_4c)(param_1,piVar19,0,0);
              iVar5 = (*pcVar15)(piVar16,0x57,local_50,iVar23,iVar5);
              (*local_5c)(piVar16,uVar4,0xfffffff7);
              iVar5 = (*pcVar15)(piVar16,0x10,iVar5 + 2,0,iVar5 + 2);
            }
            else {
              iVar5 = 0;
            }
            (*pcVar24)(param_1,iVar14,*(char *)(iVar14 + 0xd) == 'R');
            if (iVar20 != 0) {
              iVar23 = piVar16[0x1b];
              if (iVar20 < 0) {
                iVar20 = iVar23 + -1;
              }
              if (*(char *)(*piVar16 + 0x51) == '\0') {
                *(int *)(piVar16[0x1a] + iVar20 * 0x14 + 8) = iVar23;
              }
              else {
                *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar23;
              }
            }
          }
          iVar20 = piVar16[0x1b];
        }
        (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),iVar20 + 3,0);
        (*pcVar15)(piVar16,0xc,param_4,param_5,0);
        (*pcVar15)(piVar16,5,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + -1,0);
        (*pcVar15)(piVar16,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);
        (*pcVar15)(piVar16,0x4e,iVar17 + *(int *)(iVar14 + 0x40),*(undefined4 *)(iVar14 + 0x38),
                   local_60 + -1);
        if (iVar5 != 0) {
          iVar20 = piVar16[0x1b];
          if (iVar5 < 0) {
            iVar5 = iVar20 + -1;
          }
          if (*(char *)(*piVar16 + 0x51) == '\0') {
            *(int *)(piVar16[0x1a] + iVar5 * 0x14 + 8) = iVar20;
          }
          else {
            *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar20;
          }
        }
      }
LAB_000c0b50:
      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,0xffffffff,0,iVar17,0);
      if (*(int *)(iVar14 + 0x40) < 1) {
        (*pcVar15)(piVar16,0x4b,0,iVar18,0);
        (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar16,PTR_LAB_0015b5e8 + 0x53f4,0);
      }
      else {
        (*pcVar15)(piVar16,0x66,iVar17,*(int *)(iVar14 + 0x40),iVar18);
      }
      (*pcVar15)(piVar16,0x79,*(undefined4 *)(iVar14 + 0x24),iVar18 + 1,0);
      (*pcVar15)(piVar16,0x7a,*(undefined4 *)(iVar14 + 0x24),iVar18,iVar18 + 1);
      (*(code *)(PTR_LAB_0015b710 + -0x18cc))(param_3);
      (*pcVar24)(param_1,iVar14,1);
      (*pcVar15)(piVar16,0x24,*(undefined4 *)(iVar14 + 0x24),piVar16[0x1b] + 3,0);
      (*pcVar15)(piVar16,0xc,param_4,param_5,0);
      iVar18 = 5;
      iVar5 = *(int *)(iVar14 + 0x24);
      (*pcVar15)(piVar16,5,iVar5,piVar16[0x1b] + -1,0);
      goto LAB_000c0f44;
    }
LAB_000c0c60:
    piVar11 = *(int **)(param_1 + 8);
    if (piVar11 == (int *)0x0) {
      piVar11 = (int *)(*(code *)(PTR_LAB_0015b710 + -0x371c))(param_1);
      piVar16 = *(int **)(iVar14 + 8);
      local_48 = *(int **)(iVar14 + 4);
      if (piVar16 != (int *)0x0) goto LAB_000c0c7c;
LAB_000c1450:
      local_58 = 0;
      bVar1 = false;
    }
    else {
      local_48 = *(int **)(iVar14 + 4);
      piVar16 = *(int **)(iVar14 + 8);
      if (piVar16 == (int *)0x0) goto LAB_000c1450;
LAB_000c0c7c:
      local_58 = *piVar16;
      bVar1 = (*(uint *)(iVar14 + 0xc) & 0xffff00) == 0x525700;
    }
    puVar3 = PTR_LAB_0015b714;
    iVar18 = *(int *)(param_1 + 0x2c);
    iVar23 = *(int *)(param_1 + 0x28);
    iVar17 = *(int *)(param_1 + 0x38);
    iVar5 = iVar18 + local_58;
    iVar9 = iVar5 + 2;
    iVar20 = iVar17 + -2;
    *(int *)(param_1 + 0x28) = iVar23 + 1;
    iVar5 = iVar5 + 1;
    *(int *)(param_1 + 0x38) = iVar20;
    *(int *)(param_1 + 0x2c) = iVar9;
    iVar17 = iVar17 + -1;
    (*(code *)(puVar3 + -0x7e94))
              (param_1,param_2 + 0x20,*(undefined4 *)(param_2 + 0x44),param_3,iVar5,iVar20,&local_30
              );
    pcVar15 = (code *)(PTR_LAB_0015b710 + -0x3890);
    local_60 = (*pcVar15)(piVar11,0xb,0,0,0);
    pcVar24 = (code *)(PTR_LAB_0015b710 + -0x3c14);
    (*pcVar24)(piVar11,iVar20);
    (*pcVar15)(piVar11,0x11,0,piVar11[0x1b] + 2,0);
    (*pcVar15)(piVar11,0x6f,iVar23,*(undefined4 *)(iVar14 + 0x24),0);
    uVar4 = (*(code *)(PTR_LAB_0015b710 + -0x2e00))(param_1,iVar14);
    (*pcVar15)(piVar11,0x46,0,iVar9,0);
    (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);
    (*pcVar15)(piVar11,0x24,*(undefined4 *)(iVar14 + 0x24),iVar17,0);
    if (bVar1) {
      iVar20 = piVar11[0x1b];
      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);
      (*pcVar15)(piVar11,5,iVar23,iVar20,0);
      (*pcVar15)(piVar11,0x24,iVar23,iVar17,0);
      local_50 = piVar11[0x1b];
      if (piVar16 != (int *)0x0) goto LAB_000c0e28;
      pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);
    }
    else {
      local_50 = piVar11[0x1b];
      if (piVar16 == (int *)0x0) {
        pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);
      }
      else {
LAB_000c0e28:
        cVar10 = *(char *)(iVar14 + 0xd);
        uVar6 = uVar4;
        if (*(char *)(iVar14 + 0xe) == 'R') {
          if (*(char *)(iVar14 + 0xc) == 'V') {
LAB_000c1544:
            iVar20 = *(int *)(iVar14 + 0x40);
            if (local_48 == (int *)0x0) {
              iVar12 = 0;
            }
            else {
              iVar12 = *local_48;
              iVar20 = iVar20 + iVar12;
            }
            iVar12 = iVar12 + *(int *)(iVar14 + 0x38);
            uVar7 = (*(code *)(PTR_LAB_0015b714 + -0x7fc4))(param_1,piVar16,0,0);
            iVar18 = iVar18 + 1;
            if (0 < local_58) {
              iVar13 = local_58 + iVar20;
              iVar8 = iVar18 - iVar20;
              do {
                (*pcVar15)(piVar11,0x5a,iVar23,iVar20,iVar8 + iVar20);
                iVar20 = iVar20 + 1;
              } while (iVar20 != iVar13);
            }
            iVar20 = (*pcVar15)(piVar11,0x57,iVar18,iVar12,local_58);
            (*(code *)(PTR_LAB_0015b6c0 + -0x5958))(piVar11,uVar7,0xfffffff7);
            iVar20 = (*pcVar15)(piVar11,0x10,iVar20 + 2,0,iVar20 + 2);
            (*pcVar15)(piVar11,0x4e,iVar18,iVar12,local_58 + -1);
            uVar7 = local_30;
            if (cVar10 != 'R') {
              uVar6 = 0;
              uVar7 = 0;
            }
            goto LAB_000c14a0;
          }
          if (cVar10 == 'R') goto LAB_000c1494;
          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);
          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);
        }
        else if (cVar10 == 'R') {
          if (*(char *)(iVar14 + 0xc) == 'V') goto LAB_000c1544;
LAB_000c1494:
          iVar20 = 0;
          uVar7 = local_30;
LAB_000c14a0:
          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);
          (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,uVar6,uVar7);
          if (iVar20 != 0) {
            iVar18 = piVar11[0x1b];
            if (iVar20 < 0) {
              iVar20 = iVar18 + -1;
            }
            if (*(char *)(*piVar11 + 0x51) == '\0') {
              *(int *)(piVar11[0x1a] + iVar20 * 0x14 + 8) = iVar18;
            }
            else {
              *(int *)(PTR_DAT_0015b5d8 + -0x450c) = iVar18;
            }
          }
        }
        else {
          pcVar21 = (code *)(PTR_LAB_0015b714 + -0x7508);
        }
        if (bVar1) goto LAB_000c0e5c;
      }
      (*(code *)(PTR_LAB_0015b714 + -0x7af4))(param_1,iVar14,iVar23,0,uVar4,local_30);
    }
LAB_000c0e5c:
    (*pcVar15)(piVar11,0x53,iVar9,1,0);
    (*pcVar15)(piVar11,5,iVar23,local_50,0);
    (*pcVar21)(param_1,iVar14,iVar9,param_4,param_5,0,0);
    (*pcVar24)(piVar11,iVar17);
    (*pcVar15)(piVar11,0x8a,*(undefined4 *)(iVar14 + 0x24),0,0);
  }
  iVar18 = 0x42;
  (*pcVar15)(piVar11,0x42,iVar5,0,0);
  piVar16 = (int *)piVar11[0x1b];
  if (local_60 < 0) {
    local_60 = (int)piVar16 + -1;
  }
  if (*(char *)(*piVar11 + 0x51) == '\0') {
    puVar3 = (undefined *)(piVar11[0x1a] + local_60 * 0x14);
    iVar18 = local_60;
  }
  else {
    puVar3 = PTR_DAT_0015b5d8 + -0x4514;
  }
  *(int **)(puVar3 + 8) = piVar16;
LAB_000c0f44:
  if (local_2c == *(int *)puVar22) {
    return;
  }
  puVar22 = PTR___stack_chk_fail_0015ba10;
  (*(code *)PTR___stack_chk_fail_0015ba10)();
  iVar14 = *piVar16;
  if (iVar18 == 0) {
    if (*(char *)(iVar14 + 0x51) == '\0') {
      FUN_000c02d8();
      return;
    }
  }
  else {
    iVar18 = (*(code *)(*(int *)(puVar22 + 0x997c0) + -0x271c))(iVar14);
    if (*(char *)(iVar14 + 0x51) == '\0') {
      FUN_000c02d8(piVar16,iVar18,iVar5);
    }
    if (iVar18 != 0) {
                    /* WARNING: Could not recover jumptable at 0x000c1fc0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      (*(code *)(*(int *)(puVar22 + 0x99780) + 0x7bc4))(iVar14,iVar18);
      return;
    }
  }
  return;
}

