
int sqlite3Fts5ConfigParse
              (Fts5Global *pGlobal,sqlite3 *db,int nArg,char **azArg,Fts5Config **ppOut,char **pzErr
              )

{
  char cVar1;
  long lVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  Fts5Config *pConfig;
  char **ppcVar6;
  char *pcVar7;
  int *piVar8;
  char *pcVar9;
  char *pIn;
  ulong uVar10;
  long lVar11;
  int N;
  Fts5Enum *pFVar12;
  undefined8 *puVar13;
  char *pcVar14;
  long lVar15;
  long in_FS_OFFSET;
  byte bVar16;
  int local_c8;
  int rc;
  int bMustBeCol;
  int bDummy;
  char *zOne;
  char *zTwo;
  int local_90;
  int local_8c;
  Fts5Enum aDetail [4];
  
  bVar16 = 0;
  lVar2 = *(long *)(in_FS_OFFSET + 0x28);
  rc = 0;
  pConfig = (Fts5Config *)sqlite3_malloc(0xa8);
  *ppOut = pConfig;
  if (pConfig == (Fts5Config *)0x0) {
    iVar5 = 7;
    goto LAB_0017ad22;
  }
  pConfig->zDb = (char *)0x0;
  pConfig->pzErrmsg = (char **)0x0;
  puVar13 = (undefined8 *)((ulong)&pConfig->zName & 0xfffffffffffffff8);
  uVar10 = (ulong)(((int)pConfig - (int)puVar13) + 0xa8U >> 3);
  for (; uVar10 != 0; uVar10 = uVar10 - 1) {
    *puVar13 = 0;
    puVar13 = puVar13 + (ulong)bVar16 * -2 + 1;
  }
  pConfig->db = db;
  pConfig->iCookie = -1;
  ppcVar6 = (char **)sqlite3Fts5MallocZero(&rc,(long)nArg * 9);
  pConfig->azCol = ppcVar6;
  pConfig->abUnindexed = (u8 *)(ppcVar6 + nArg);
  pcVar7 = sqlite3Fts5Strndup(&rc,azArg[1],-1);
  pConfig->zDb = pcVar7;
  pcVar7 = sqlite3Fts5Strndup(&rc,azArg[2],-1);
  iVar5 = rc;
  pConfig->zName = pcVar7;
  pConfig->bColumnsize = 1;
  pConfig->eDetail = 0;
  if (rc == 0) {
    iVar3 = sqlite3_stricmp(pcVar7,"rank");
    if (iVar3 == 0) {
      pcVar7 = sqlite3_mprintf("reserved fts5 table name: %s",pcVar7);
      *pzErr = pcVar7;
      rc = 1;
      goto LAB_0017a364;
    }
    if (3 < nArg) {
      lVar15 = 4;
      local_c8 = -1;
LAB_0017a558:
      pcVar7 = azArg[lVar15 + -1];
      zOne = (char *)0x0;
      zTwo = (char *)0x0;
      bMustBeCol = 0;
      pcVar9 = fts5ConfigGobbleWord(&rc,pcVar7,&zOne,&bMustBeCol);
      pcVar9 = fts5ConfigSkipWhitespace(pcVar9);
      iVar3 = iVar5;
      if ((pcVar9 != (char *)0x0) && (*pcVar9 == '=')) {
        if (bMustBeCol == 0) {
          pcVar9 = pcVar9 + 1;
          iVar3 = 1;
        }
        else {
          iVar3 = 1;
          pcVar9 = (char *)0x0;
        }
      }
      pcVar9 = fts5ConfigSkipWhitespace(pcVar9);
      if ((pcVar9 == (char *)0x0) ||
         ((pcVar14 = zOne, *pcVar9 != '\0' &&
          ((pcVar9 = fts5ConfigGobbleWord(&rc,pcVar9,&zTwo,&bDummy), pcVar9 == (char *)0x0 ||
           (pcVar14 = zOne, *pcVar9 != '\0')))))) {
        iVar4 = rc;
        if (rc == 0) {
          pcVar7 = sqlite3_mprintf("parse error in \"%s\"",pcVar7);
          *pzErr = pcVar7;
          rc = 1;
          iVar4 = rc;
        }
      }
      else {
        iVar4 = rc;
        zOne = pcVar14;
        if (rc == 0) {
          if (iVar3 == 0) {
            iVar4 = sqlite3_stricmp(pcVar14,"rank");
            if ((iVar4 == 0) ||
               (iVar4 = sqlite3_stricmp(pcVar14,"rowid"), pcVar7 = zTwo, iVar4 == 0)) {
              pcVar7 = sqlite3_mprintf("reserved fts5 column name: %s",pcVar14);
              *pzErr = pcVar7;
              iVar3 = 1;
            }
            else if (zTwo != (char *)0x0) {
              iVar3 = sqlite3_stricmp(zTwo,"unindexed");
              if (iVar3 == 0) {
                pConfig->abUnindexed[pConfig->nCol] = '\x01';
                iVar3 = 0;
              }
              else {
                pcVar7 = sqlite3_mprintf("unrecognized column option: %s",pcVar7);
                *pzErr = pcVar7;
                iVar3 = 1;
              }
            }
            iVar4 = pConfig->nCol;
            pConfig->nCol = iVar4 + 1;
            pConfig->azCol[iVar4] = pcVar14;
            zOne = (char *)0x0;
            iVar4 = iVar3;
          }
          else {
            pcVar7 = zTwo;
            if (zTwo == (char *)0x0) {
              pcVar7 = "";
            }
            bDummy = 0;
            uVar10 = 0xffffffffffffffff;
            pcVar9 = pcVar14;
            do {
              if (uVar10 == 0) break;
              uVar10 = uVar10 - 1;
              cVar1 = *pcVar9;
              pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;
            } while (cVar1 != '\0');
            N = (int)(~uVar10 - 1);
            iVar4 = sqlite3_strnicmp("prefix",pcVar14,N);
            if (iVar4 == 0) {
              if (pConfig->aPrefix != (int *)0x0) {
LAB_0017a68f:
                do {
                  cVar1 = *pcVar7;
                  while (cVar1 == ' ') {
                    pcVar7 = pcVar7 + 1;
                    cVar1 = *pcVar7;
                  }
                  if ((cVar1 == ',') && (iVar3 == 0)) {
                    cVar1 = pcVar7[1];
                    pcVar7 = pcVar7 + 1;
                    while (cVar1 == ' ') {
                      pcVar7 = pcVar7 + 1;
                      cVar1 = *pcVar7;
                    }
                  }
                  else {
                    iVar4 = bDummy;
                    if (cVar1 == '\0') goto LAB_0017a527;
                  }
                  cVar1 = *pcVar7;
                  if (9 < (byte)(cVar1 - 0x30U)) {
                    pcVar7 = sqlite3_mprintf("malformed prefix=... directive");
                    *pzErr = pcVar7;
                    bDummy = 1;
                    iVar4 = bDummy;
                    goto LAB_0017a527;
                  }
                  if (pConfig->nPrefix == 0x1f) {
                    pcVar7 = sqlite3_mprintf("too many prefix indexes (max %d)",0x1f);
                    *pzErr = pcVar7;
                    bDummy = 1;
                    iVar4 = bDummy;
                    goto LAB_0017a527;
                  }
                  iVar3 = 0;
                  do {
                    iVar3 = cVar1 + -0x30 + iVar3 * 10;
                    pcVar7 = pcVar7 + 1;
                    cVar1 = *pcVar7;
                    if (9 < (byte)(cVar1 - 0x30U)) break;
                  } while (iVar3 < 1000);
                  if (0x3e6 < iVar3 - 1U) goto LAB_0017a6fb;
                  pConfig->aPrefix[pConfig->nPrefix] = iVar3;
                  pConfig->nPrefix = pConfig->nPrefix + 1;
                  iVar3 = 0;
                } while( true );
              }
              piVar8 = (int *)sqlite3Fts5MallocZero(&bDummy,0x7c);
              pConfig->aPrefix = piVar8;
              iVar4 = bDummy;
              if (bDummy == 0) goto LAB_0017a68f;
            }
            else {
              iVar4 = sqlite3_strnicmp("tokenize",pcVar14,N);
              if (iVar4 == 0) {
                uVar10 = 0xffffffffffffffff;
                pcVar9 = pcVar7;
                do {
                  if (uVar10 == 0) break;
                  uVar10 = uVar10 - 1;
                  cVar1 = *pcVar9;
                  pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;
                } while (cVar1 != '\0');
                ppcVar6 = (char **)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 8);
                pcVar9 = (char *)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 2);
                if ((ppcVar6 != (char **)0x0) && (pcVar9 != (char *)0x0)) {
                  if (pConfig->pTok == (Fts5Tokenizer *)0x0) {
                    lVar11 = 0;
                    if (*pcVar7 != '\0') {
                      lVar11 = 0;
                      pcVar14 = pcVar9;
                      do {
                        pcVar7 = fts5ConfigSkipWhitespace(pcVar7);
                        if (*pcVar7 == '\'') {
                          pIn = fts5ConfigSkipLiteral(pcVar7);
                        }
                        else {
                          pIn = fts5ConfigSkipBareword(pcVar7);
                        }
                        if (pIn == (char *)0x0) {
LAB_0017a8ef:
                          pcVar7 = sqlite3_mprintf("parse error in tokenize directive");
                          *pzErr = pcVar7;
                          bDummy = 1;
                          goto LAB_0017a842;
                        }
                        memcpy(pcVar14,pcVar7,(long)pIn - (long)pcVar7);
                        ppcVar6[lVar11] = pcVar14;
                        sqlite3Fts5Dequote(pcVar14);
                        pcVar14 = pcVar14 + ((long)pIn - (long)pcVar7) + 1;
                        pcVar7 = fts5ConfigSkipWhitespace(pIn);
                        lVar11 = lVar11 + 1;
                        if (pcVar7 == (char *)0x0) goto LAB_0017a8ef;
                      } while (*pcVar7 != '\0');
                    }
                    bDummy = sqlite3Fts5GetTokenizer
                                       (pGlobal,ppcVar6,(int)lVar11,&pConfig->pTok,&pConfig->pTokApi
                                        ,pzErr);
                  }
                  else {
                    pcVar7 = sqlite3_mprintf("multiple tokenize=... directives");
                    *pzErr = pcVar7;
                    bDummy = 1;
                  }
                }
LAB_0017a842:
                sqlite3_free(ppcVar6);
                sqlite3_free(pcVar9);
                iVar4 = bDummy;
              }
              else {
                iVar4 = sqlite3_strnicmp("content",pcVar14,N);
                if (iVar4 == 0) {
                  if (pConfig->eContent == 0) {
                    if (*pcVar7 == '\0') {
                      pConfig->eContent = 1;
                      iVar4 = bDummy;
                    }
                    else {
                      pConfig->eContent = 2;
                      pcVar7 = sqlite3Fts5Mprintf(&bDummy,"%Q.%Q",pConfig->zDb,pcVar7);
                      pConfig->zContent = pcVar7;
                      iVar4 = bDummy;
                    }
                  }
                  else {
                    pcVar7 = sqlite3_mprintf("multiple content=... directives");
                    *pzErr = pcVar7;
                    bDummy = 1;
                    iVar4 = bDummy;
                  }
                }
                else {
                  iVar4 = sqlite3_strnicmp("content_rowid",pcVar14,N);
                  if (iVar4 == 0) {
                    if (pConfig->zContentRowid == (char *)0x0) {
                      pcVar7 = sqlite3Fts5Strndup(&bDummy,pcVar7,-1);
                      pConfig->zContentRowid = pcVar7;
                      iVar4 = bDummy;
                    }
                    else {
                      pcVar7 = sqlite3_mprintf("multiple content_rowid=... directives");
                      *pzErr = pcVar7;
                      bDummy = 1;
                      iVar4 = bDummy;
                    }
                  }
                  else {
                    iVar4 = sqlite3_strnicmp("columnsize",pcVar14,N);
                    if (iVar4 == 0) {
                      if (((byte)(*pcVar7 - 0x30U) < 2) && (pcVar7[1] == '\0')) {
                        pConfig->bColumnsize = (uint)(*pcVar7 == '1');
                        iVar4 = bDummy;
                      }
                      else {
                        pcVar7 = sqlite3_mprintf("malformed columnsize=... directive");
                        *pzErr = pcVar7;
                        bDummy = 1;
                        iVar4 = bDummy;
                      }
                    }
                    else {
                      iVar4 = sqlite3_strnicmp("detail",pcVar14,N);
                      if (iVar4 == 0) {
                        aDetail[0].zName = "none";
                        aDetail[0].eVal = 1;
                        aDetail[1].zName = "full";
                        aDetail[1].eVal = 0;
                        aDetail[2].zName = "columns";
                        aDetail[2].eVal = 2;
                        aDetail[3].zName = (char *)0x0;
                        aDetail[3].eVal = 0;
                        lVar11 = -1;
                        pcVar9 = pcVar7;
                        do {
                          if (lVar11 == 0) break;
                          lVar11 = lVar11 + -1;
                          cVar1 = *pcVar9;
                          pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;
                        } while (cVar1 != '\0');
                        pFVar12 = aDetail;
                        pcVar9 = "none";
                        iVar3 = local_c8;
                        do {
                          pFVar12 = pFVar12 + 1;
                          iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1);
                          if (iVar4 == 0) {
                            if (-1 < iVar3) {
                              bDummy = 1;
                              goto LAB_0017ab15;
                            }
                            iVar3 = pFVar12[-1].eVal;
                          }
                          pcVar9 = pFVar12->zName;
                        } while (pcVar9 != (char *)0x0);
                        pConfig->eDetail = iVar3;
                        bDummy = -(iVar3 >> 0x1f);
                        iVar4 = bDummy;
                        if (bDummy != 0) {
LAB_0017ab15:
                          pcVar7 = sqlite3_mprintf("malformed detail=... directive");
                          *pzErr = pcVar7;
                          iVar4 = bDummy;
                        }
                      }
                      else {
                        pcVar7 = sqlite3_mprintf("unrecognized option: \"%.*s\"",
                                                 ~uVar10 - 1 & 0xffffffff,pcVar14);
                        *pzErr = pcVar7;
                        iVar4 = iVar3;
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      goto LAB_0017a527;
    }
LAB_0017a368:
    if (pConfig->pTok == (Fts5Tokenizer *)0x0) {
      rc = sqlite3Fts5GetTokenizer
                     (pGlobal,(char **)0x0,0,&pConfig->pTok,&pConfig->pTokApi,(char **)0x0);
    }
  }
  else {
LAB_0017a364:
    if (rc == 0) goto LAB_0017a368;
  }
  if (rc == 0) {
    if (pConfig->zContent == (char *)0x0) {
      if (pConfig->eContent == 0) {
        pcVar7 = "content";
      }
      else {
        pcVar7 = "docsize";
        if (pConfig->bColumnsize == 0) goto LAB_0017a389;
      }
      pcVar7 = sqlite3Fts5Mprintf(&rc,"%Q.\'%q_%s\'",pConfig->zDb,pConfig->zName,pcVar7);
      pConfig->zContent = pcVar7;
      if (rc != 0) goto LAB_0017acb0;
    }
LAB_0017a389:
    if (pConfig->zContentRowid == (char *)0x0) {
      pcVar7 = sqlite3Fts5Strndup(&rc,"rowid",-1);
      pConfig->zContentRowid = pcVar7;
      if (rc != 0) goto LAB_0017acb0;
    }
    zOne = (char *)((ulong)zOne & 0xffffffff00000000);
    zTwo = (char *)0x0;
    local_90 = 0;
    local_8c = 0;
    sqlite3Fts5BufferAppendPrintf((int *)&zOne,(Fts5Buffer *)&zTwo,"T.%Q",pConfig->zContentRowid);
    if ((pConfig->eContent != 1) && (0 < pConfig->nCol)) {
      uVar10 = 0;
      do {
        if (pConfig->eContent == 2) {
          sqlite3Fts5BufferAppendPrintf
                    ((int *)&zOne,(Fts5Buffer *)&zTwo,", T.%Q",pConfig->azCol[uVar10]);
        }
        else {
          sqlite3Fts5BufferAppendPrintf
                    ((int *)&zOne,(Fts5Buffer *)&zTwo,", T.c%d",uVar10 & 0xffffffff);
        }
        uVar10 = uVar10 + 1;
      } while ((int)uVar10 < pConfig->nCol);
    }
    pConfig->zContentExprlist = zTwo;
    rc = (int)zOne;
    iVar5 = (int)zOne;
    if ((int)zOne == 0) goto LAB_0017ad22;
  }
LAB_0017acb0:
  sqlite3Fts5ConfigFree(pConfig);
  *ppOut = (Fts5Config *)0x0;
  iVar5 = rc;
LAB_0017ad22:
  if (lVar2 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return iVar5;
LAB_0017a6fb:
  pcVar7 = sqlite3_mprintf("prefix length out of range (max 999)");
  *pzErr = pcVar7;
  bDummy = 1;
  iVar4 = bDummy;
LAB_0017a527:
  rc = iVar4;
  sqlite3_free(zOne);
  sqlite3_free(zTwo);
  iVar3 = (int)lVar15;
  lVar15 = lVar15 + 1;
  if (nArg <= iVar3 || rc != 0) goto LAB_0017a364;
  goto LAB_0017a558;
}



int FUN_0017a24a(undefined8 param_1,undefined8 param_2,int param_3,long param_4,long *param_5,
                undefined8 *param_6)

{
  char cVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  undefined8 *puVar5;
  long lVar6;
  undefined8 uVar7;
  undefined8 uVar8;
  void *pvVar9;
  long lVar10;
  ulong uVar11;
  long lVar12;
  char **ppcVar13;
  undefined8 *puVar14;
  char *pcVar15;
  char *pcVar16;
  char *pcVar17;
  void *__dest;
  long in_FS_OFFSET;
  byte bVar18;
  int local_c8;
  int local_ac;
  int local_a8;
  int local_a4;
  char *local_a0;
  char *local_98;
  undefined4 local_90;
  undefined4 local_8c;
  char *local_88;
  undefined4 local_80 [2];
  char *local_78;
  undefined4 local_70;
  char *local_68;
  undefined4 local_60;
  undefined8 local_58;
  undefined4 local_50;
  long local_40;
  
  bVar18 = 0;
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  local_ac = 0;
  puVar5 = (undefined8 *)FUN_0014ae6c(0xa8);
  *param_5 = (long)puVar5;
  if (puVar5 == (undefined8 *)0x0) {
    iVar4 = 7;
    goto LAB_0017ad22;
  }
  puVar5[1] = 0;
  puVar5[0x14] = 0;
  puVar14 = (undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8);
  for (uVar11 = (ulong)(((int)puVar5 - (int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)
                        ) + 0xa8U >> 3); uVar11 != 0; uVar11 = uVar11 - 1) {
    *puVar14 = 0;
    puVar14 = puVar14 + (ulong)bVar18 * -2 + 1;
  }
  *puVar5 = param_2;
  *(undefined4 *)(puVar5 + 0xf) = 0xffffffff;
  lVar6 = FUN_0014bc1d(&local_ac,(long)param_3 * 9);
  puVar5[4] = lVar6;
  puVar5[5] = lVar6 + (long)param_3 * 8;
  uVar7 = FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 8),0xffffffff);
  puVar5[1] = uVar7;
  uVar7 = FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 0x10),0xffffffff);
  iVar4 = local_ac;
  puVar5[2] = uVar7;
  *(undefined4 *)(puVar5 + 0xb) = 1;
  *(undefined4 *)((long)puVar5 + 0x5c) = 0;
  if (local_ac == 0) {
    iVar2 = FUN_0012ad85(uVar7,&DAT_001f3ddb);
    if (iVar2 == 0) {
      uVar7 = FUN_001776d2("reserved fts5 table name: %s",uVar7);
      *param_6 = uVar7;
      local_ac = 1;
      goto LAB_0017a364;
    }
    if (3 < param_3) {
      lVar6 = 4;
      local_c8 = -1;
LAB_0017a558:
      uVar7 = *(undefined8 *)(param_4 + -8 + lVar6 * 8);
      local_a0 = (char *)0x0;
      local_98 = (char *)0x0;
      local_a8 = 0;
      uVar8 = FUN_0014c842(&local_ac,uVar7,&local_a0,&local_a8);
      pcVar17 = (char *)FUN_0013465f(uVar8);
      iVar2 = iVar4;
      if ((pcVar17 != (char *)0x0) && (*pcVar17 == '=')) {
        if (local_a8 == 0) {
          pcVar17 = pcVar17 + 1;
          iVar2 = 1;
        }
        else {
          iVar2 = 1;
          pcVar17 = (char *)0x0;
        }
      }
      pcVar17 = (char *)FUN_0013465f(pcVar17);
      if ((pcVar17 == (char *)0x0) ||
         ((pcVar16 = local_a0, *pcVar17 != '\0' &&
          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),
           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))))) {
        iVar3 = local_ac;
        if (local_ac == 0) {
          uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);
          *param_6 = uVar7;
          local_ac = 1;
          iVar3 = local_ac;
        }
      }
      else {
        iVar3 = local_ac;
        local_a0 = pcVar16;
        if (local_ac == 0) {
          if (iVar2 == 0) {
            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);
            if ((iVar3 == 0) ||
               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {
              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);
              *param_6 = uVar7;
              iVar2 = 1;
            }
            else if (local_98 != (char *)0x0) {
              iVar2 = FUN_0012ad85(local_98,"unindexed");
              if (iVar2 == 0) {
                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;
                iVar2 = 0;
              }
              else {
                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);
                *param_6 = uVar7;
                iVar2 = 1;
              }
            }
            iVar3 = *(int *)(puVar5 + 3);
            *(int *)(puVar5 + 3) = iVar3 + 1;
            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;
            local_a0 = (char *)0x0;
            iVar3 = iVar2;
          }
          else {
            pcVar17 = local_98;
            if (local_98 == (char *)0x0) {
              pcVar17 = "";
            }
            local_a4 = 0;
            uVar11 = 0xffffffffffffffff;
            pcVar15 = pcVar16;
            do {
              if (uVar11 == 0) break;
              uVar11 = uVar11 - 1;
              cVar1 = *pcVar15;
              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;
            } while (cVar1 != '\0');
            uVar11 = ~uVar11 - 1;
            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);
            if (iVar3 == 0) {
              if (puVar5[7] != 0) {
LAB_0017a68f:
                do {
                  cVar1 = *pcVar17;
                  while (cVar1 == ' ') {
                    pcVar17 = pcVar17 + 1;
                    cVar1 = *pcVar17;
                  }
                  if ((cVar1 == ',') && (iVar2 == 0)) {
                    cVar1 = pcVar17[1];
                    pcVar17 = pcVar17 + 1;
                    while (cVar1 == ' ') {
                      pcVar17 = pcVar17 + 1;
                      cVar1 = *pcVar17;
                    }
                  }
                  else {
                    iVar3 = local_a4;
                    if (cVar1 == '\0') goto LAB_0017a527;
                  }
                  cVar1 = *pcVar17;
                  if (9 < (byte)(cVar1 - 0x30U)) {
                    uVar7 = FUN_001776d2("malformed prefix=... directive");
                    *param_6 = uVar7;
                    local_a4 = 1;
                    iVar3 = local_a4;
                    goto LAB_0017a527;
                  }
                  if (*(int *)(puVar5 + 6) == 0x1f) {
                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);
                    *param_6 = uVar7;
                    local_a4 = 1;
                    iVar3 = local_a4;
                    goto LAB_0017a527;
                  }
                  iVar2 = 0;
                  do {
                    iVar2 = cVar1 + -0x30 + iVar2 * 10;
                    pcVar17 = pcVar17 + 1;
                    cVar1 = *pcVar17;
                    if (9 < (byte)(cVar1 - 0x30U)) break;
                  } while (iVar2 < 1000);
                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;
                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;
                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;
                  iVar2 = 0;
                } while( true );
              }
              uVar7 = FUN_0014bc1d(&local_a4,0x7c);
              puVar5[7] = uVar7;
              iVar3 = local_a4;
              if (local_a4 == 0) goto LAB_0017a68f;
            }
            else {
              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);
              if (iVar3 == 0) {
                uVar11 = 0xffffffffffffffff;
                pcVar16 = pcVar17;
                do {
                  if (uVar11 == 0) break;
                  uVar11 = uVar11 - 1;
                  cVar1 = *pcVar16;
                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;
                } while (cVar1 != '\0');
                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);
                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);
                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {
                  if (puVar5[0xd] == 0) {
                    uVar11 = 0;
                    if (*pcVar17 != '\0') {
                      uVar11 = 0;
                      __dest = pvVar9;
                      do {
                        pcVar17 = (char *)FUN_0013465f(pcVar17);
                        if (*pcVar17 == '\'') {
                          lVar10 = FUN_0013e006(pcVar17);
                        }
                        else {
                          lVar10 = FUN_00134676(pcVar17);
                        }
                        if (lVar10 == 0) {
LAB_0017a8ef:
                          uVar7 = FUN_001776d2("parse error in tokenize directive");
                          *param_6 = uVar7;
                          local_a4 = 1;
                          goto LAB_0017a842;
                        }
                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);
                        *(void **)(lVar12 + uVar11 * 8) = __dest;
                        FUN_00134700(__dest);
                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);
                        pcVar17 = (char *)FUN_0013465f(lVar10);
                        uVar11 = uVar11 + 1;
                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;
                      } while (*pcVar17 != '\0');
                    }
                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,
                                            puVar5 + 0xe,param_6);
                  }
                  else {
                    uVar7 = FUN_001776d2("multiple tokenize=... directives");
                    *param_6 = uVar7;
                    local_a4 = 1;
                  }
                }
LAB_0017a842:
                FUN_00141303(lVar12);
                FUN_00141303(pvVar9);
                iVar3 = local_a4;
              }
              else {
                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);
                if (iVar3 == 0) {
                  if (*(int *)(puVar5 + 8) == 0) {
                    if (*pcVar17 == '\0') {
                      *(undefined4 *)(puVar5 + 8) = 1;
                      iVar3 = local_a4;
                    }
                    else {
                      *(undefined4 *)(puVar5 + 8) = 2;
                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);
                      puVar5[9] = uVar7;
                      iVar3 = local_a4;
                    }
                  }
                  else {
                    uVar7 = FUN_001776d2("multiple content=... directives");
                    *param_6 = uVar7;
                    local_a4 = 1;
                    iVar3 = local_a4;
                  }
                }
                else {
                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);
                  if (iVar3 == 0) {
                    if (puVar5[10] == 0) {
                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);
                      puVar5[10] = uVar7;
                      iVar3 = local_a4;
                    }
                    else {
                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");
                      *param_6 = uVar7;
                      local_a4 = 1;
                      iVar3 = local_a4;
                    }
                  }
                  else {
                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);
                    if (iVar3 == 0) {
                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {
                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');
                        iVar3 = local_a4;
                      }
                      else {
                        uVar7 = FUN_001776d2("malformed columnsize=... directive");
                        *param_6 = uVar7;
                        local_a4 = 1;
                        iVar3 = local_a4;
                      }
                    }
                    else {
                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);
                      if (iVar3 == 0) {
                        local_88 = "none";
                        local_80[0] = 1;
                        local_78 = "full";
                        local_70 = 0;
                        local_68 = "columns";
                        local_60 = 2;
                        local_58 = 0;
                        local_50 = 0;
                        lVar12 = -1;
                        pcVar16 = pcVar17;
                        do {
                          if (lVar12 == 0) break;
                          lVar12 = lVar12 + -1;
                          cVar1 = *pcVar16;
                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;
                        } while (cVar1 != '\0');
                        pcVar16 = "none";
                        ppcVar13 = &local_78;
                        iVar2 = local_c8;
                        do {
                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);
                          if (iVar3 == 0) {
                            if (-1 < iVar2) {
                              local_a4 = 1;
                              goto LAB_0017ab15;
                            }
                            iVar2 = *(int *)(ppcVar13 + -1);
                          }
                          pcVar16 = *ppcVar13;
                          ppcVar13 = ppcVar13 + 2;
                        } while (pcVar16 != (char *)0x0);
                        *(int *)((long)puVar5 + 0x5c) = iVar2;
                        local_a4 = -(iVar2 >> 0x1f);
                        iVar3 = local_a4;
                        if (local_a4 != 0) {
LAB_0017ab15:
                          uVar7 = FUN_001776d2("malformed detail=... directive");
                          *param_6 = uVar7;
                          iVar3 = local_a4;
                        }
                      }
                      else {
                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,
                                             pcVar16);
                        *param_6 = uVar7;
                        iVar3 = iVar2;
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      goto LAB_0017a527;
    }
LAB_0017a368:
    if (puVar5[0xd] == 0) {
      local_ac = FUN_0017a177(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0);
    }
  }
  else {
LAB_0017a364:
    if (local_ac == 0) goto LAB_0017a368;
  }
  if (local_ac == 0) {
    if (puVar5[9] == 0) {
      if (*(int *)(puVar5 + 8) == 0) {
        pcVar17 = "content";
      }
      else {
        pcVar17 = "docsize";
        if (*(int *)(puVar5 + 0xb) == 0) goto LAB_0017a389;
      }
      uVar7 = FUN_00177220(&local_ac,"%Q.\'%q_%s\'",puVar5[1],puVar5[2],pcVar17);
      puVar5[9] = uVar7;
      if (local_ac != 0) goto LAB_0017acb0;
    }
LAB_0017a389:
    if (puVar5[10] == 0) {
      uVar7 = FUN_0014b209(&local_ac,"rowid",0xffffffff);
      puVar5[10] = uVar7;
      if (local_ac != 0) goto LAB_0017acb0;
    }
    local_a0 = (char *)((ulong)local_a0 & 0xffffffff00000000);
    local_98 = (char *)0x0;
    local_90 = 0;
    local_8c = 0;
    FUN_001765c7(&local_a0,&local_98,&DAT_001f4822,puVar5[10]);
    if ((*(int *)(puVar5 + 8) != 1) && (0 < *(int *)(puVar5 + 3))) {
      uVar11 = 0;
      do {
        if (*(int *)(puVar5 + 8) == 2) {
          FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));
        }
        else {
          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);
        }
        uVar11 = uVar11 + 1;
      } while ((int)uVar11 < *(int *)(puVar5 + 3));
    }
    puVar5[0xc] = local_98;
    local_ac = (int)local_a0;
    iVar4 = (int)local_a0;
    if ((int)local_a0 == 0) goto LAB_0017ad22;
  }
LAB_0017acb0:
  FUN_00148182(puVar5);
  *param_5 = 0;
  iVar4 = local_ac;
LAB_0017ad22:
  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return iVar4;
LAB_0017a6fb:
  uVar7 = FUN_001776d2("prefix length out of range (max 999)");
  *param_6 = uVar7;
  local_a4 = 1;
  iVar3 = local_a4;
LAB_0017a527:
  local_ac = iVar3;
  FUN_00141303(local_a0);
  FUN_00141303(local_98);
  iVar2 = (int)lVar6;
  lVar6 = lVar6 + 1;
  if (param_3 <= iVar2 || local_ac != 0) goto LAB_0017a364;
  goto LAB_0017a558;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0xd8
MOV qword ptr [RSP + 0x38],RDI
MOV RBX,RSI
MOV R13D,EDX
MOV dword ptr [RSP + 0xc],EDX
MOV R14,RCX
MOV qword ptr [RSP + 0x10],RCX
MOV RBP,R8
MOV qword ptr [RSP + 0x30],R8
MOV qword ptr [RSP + 0x20],R9
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0xc8],RAX
XOR EAX,EAX
MOV dword ptr [RSP + 0x5c],0x0
MOV EDI,0xa8
CALL 0x0014ae6c
MOV qword ptr [RBP],RAX
TEST RAX,RAX
JZ 0x0017ad47
MOV R15,RAX
MOV qword ptr [RAX + 0x8],0x0
MOV qword ptr [RAX + 0xa0],0x0
LEA RDI,[RAX + 0x10]
AND RDI,-0x8
SUB EAX,EDI
LEA ECX,[RAX + 0xa8]
SHR ECX,0x3
MOV ECX,ECX
MOV EAX,0x0
STOSQ.REP RDI
MOV qword ptr [R15],RBX
MOV dword ptr [R15 + 0x78],0xffffffff
MOVSXD RSI,R13D
LEA RBP,[RSI*0x8]
ADD RSI,RBP
LEA RBX,[RSP + 0x5c]
MOV RDI,RBX
CALL 0x0014bc1d
MOV qword ptr [R15 + 0x20],RAX
ADD RAX,RBP
MOV qword ptr [R15 + 0x28],RAX
MOV RSI,qword ptr [R14 + 0x8]
MOV EDX,0xffffffff
MOV RDI,RBX
CALL 0x0014b209
MOV qword ptr [R15 + 0x8],RAX
MOV RSI,qword ptr [R14 + 0x10]
MOV EDX,0xffffffff
MOV RDI,RBX
CALL 0x0014b209
MOV RBX,RAX
MOV qword ptr [R15 + 0x10],RAX
MOV dword ptr [R15 + 0x58],0x1
MOV dword ptr [R15 + 0x5c],0x0
MOV R14D,dword ptr [RSP + 0x5c]
TEST R14D,R14D
JZ 0x0017a40c
MOV EAX,dword ptr [RSP + 0x5c]
TEST EAX,EAX
JNZ 0x0017a373
CMP qword ptr [R15 + 0x68],0x0
JZ 0x0017ac10
CMP dword ptr [RSP + 0x5c],0x0
JNZ 0x0017acb0
CMP qword ptr [R15 + 0x48],0x0
JZ 0x0017ac3b
CMP qword ptr [R15 + 0x50],0x0
JZ 0x0017ac8b
MOV dword ptr [RSP + 0x68],0x0
MOV qword ptr [RSP + 0x70],0x0
MOV dword ptr [RSP + 0x78],0x0
MOV dword ptr [RSP + 0x7c],0x0
MOV RCX,qword ptr [R15 + 0x50]
LEA RSI,[RSP + 0x70]
LEA RDI,[RSP + 0x68]
LEA RDX,[0x1f4822]
MOV EAX,0x0
CALL 0x001765c7
CMP dword ptr [R15 + 0x40],0x1
JZ 0x0017ad09
CMP dword ptr [R15 + 0x18],0x0
JLE 0x0017ad09
MOV EBX,0x0
LEA R12,[RSP + 0x70]
LEA RBP,[RSP + 0x68]
LEA R13,[0x1f4827]
LEA R14,[0x1f4820]
JMP 0x0017aceb
LEA RSI,[0x1f3ddb]
MOV RDI,RAX
CALL 0x0012ad85
TEST EAX,EAX
JZ 0x0017a43d
CMP dword ptr [RSP + 0xc],0x3
JLE 0x0017a368
MOV R13D,0x4
MOV dword ptr [RSP + 0x40],0xffffffff
JMP 0x0017a558
MOV RSI,RBX
LEA RDI,[0x1f4779]
CALL 0x001776d2
MOV RSI,qword ptr [RSP + 0x20]
MOV qword ptr [RSI],RAX
MOV dword ptr [RSP + 0x5c],0x1
JMP 0x0017a360
CMP dword ptr [RSP + 0x60],0x0
JNZ 0x0017a476
ADD RAX,0x1
MOV EBP,0x1
JMP 0x0017a5ac
MOV EBP,0x1
MOV EAX,0x0
JMP 0x0017a5ac
LEA RCX,[RSP + 0x64]
LEA RDX,[RSP + 0x70]
LEA RDI,[RSP + 0x5c]
MOV RSI,RAX
CALL 0x0014c842
TEST RAX,RAX
JZ 0x0017ad82
CMP byte ptr [RAX],0x0
JNZ 0x0017ad82
CMP dword ptr [RSP + 0x5c],0x0
JZ 0x0017a5d1
JMP 0x0017a527
LEA RDI,[RSP + 0x64]
MOV ESI,0x7c
CALL 0x0014bc1d
MOV qword ptr [R15 + 0x38],RAX
MOV EAX,dword ptr [RSP + 0x64]
TEST EAX,EAX
JNZ 0x0017a523
JMP 0x0017a641
LEA RAX,[RBX + 0x1]
CMP byte ptr [RBX + 0x1],0x20
JNZ 0x0017a4f6
ADD RAX,0x1
CMP byte ptr [RAX],0x20
JZ 0x0017a4e5
MOV RBX,RAX
JMP 0x0017a6b5
MOV RBX,RAX
JMP 0x0017a6b5
LEA RDI,[0x201808]
MOV EAX,0x0
CALL 0x001776d2
MOV RSI,qword ptr [RSP + 0x20]
MOV qword ptr [RSI],RAX
MOV dword ptr [RSP + 0x64],0x1
MOV EAX,dword ptr [RSP + 0x64]
MOV dword ptr [RSP + 0x5c],EAX
MOV RDI,qword ptr [RSP + 0x68]
CALL 0x00141303
MOV RDI,qword ptr [RSP + 0x70]
CALL 0x00141303
MOV EAX,dword ptr [RSP + 0x5c]
CMP dword ptr [RSP + 0xc],R13D
SETG CL
TEST EAX,EAX
SETZ DL
ADD R13,0x1
TEST CL,DL
JZ 0x0017a364
MOV RAX,qword ptr [RSP + 0x10]
MOV RBX,qword ptr [RAX + R13*0x8 + -0x8]
MOV qword ptr [RSP + 0x68],0x0
MOV qword ptr [RSP + 0x70],0x0
MOV dword ptr [RSP + 0x60],0x0
LEA RCX,[RSP + 0x60]
LEA RDX,[RSP + 0x68]
LEA RDI,[RSP + 0x5c]
MOV RSI,RBX
CALL 0x0014c842
MOV RDI,RAX
CALL 0x0013465f
MOV EBP,R14D
TEST RAX,RAX
JZ 0x0017a5ac
CMP byte ptr [RAX],0x3d
JZ 0x0017a461
MOV RDI,RAX
CALL 0x0013465f
TEST RAX,RAX
JZ 0x0017ad4e
CMP byte ptr [RAX],0x0
JNZ 0x0017a485
CMP dword ptr [RSP + 0x5c],0x0
JNZ 0x0017a527
TEST EBP,EBP
JZ 0x0017ab4d
MOV RBX,qword ptr [RSP + 0x70]
TEST RBX,RBX
LEA RAX,[0x1eb77f]
CMOVZ RBX,RAX
MOV R12,qword ptr [RSP + 0x68]
MOV dword ptr [RSP + 0x64],0x0
MOV EAX,0x0
MOV RCX,-0x1
MOV RDI,R12
SCASB.REPNE RDI
MOV RAX,RCX
NOT RAX
SUB RAX,0x1
MOV qword ptr [RSP + 0x18],RAX
MOV EDX,EAX
MOV RSI,R12
LEA RDI,[0x1f47aa]
CALL 0x0012ada6
MOV dword ptr [RSP + 0x28],EAX
TEST EAX,EAX
JNZ 0x0017a721
CMP qword ptr [R15 + 0x38],0x0
JZ 0x0017a4bb
MOV R12D,dword ptr [RSP + 0x28]
JMP 0x0017a68f
MOV ESI,0x1f
LEA RDI,[0x201828]
MOV EAX,0x0
CALL 0x001776d2
MOV RSI,qword ptr [RSP + 0x20]
MOV qword ptr [RSI],RAX
MOV dword ptr [RSP + 0x64],0x1
JMP 0x0017a51f
LEA EAX,[RDX + -0x1]
CMP EAX,0x3e6
JA 0x0017a6fb
MOVSXD RCX,ECX
MOV RAX,qword ptr [R15 + 0x38]
MOV dword ptr [RAX + RCX*0x4],EDX
ADD dword ptr [R15 + 0x30],0x1
MOV EBP,R12D
MOVZX EAX,byte ptr [RBX]
CMP AL,0x20
JNZ 0x0017a6a1
ADD RBX,0x1
MOVZX EAX,byte ptr [RBX]
CMP AL,0x20
JZ 0x0017a696
CMP AL,0x2c
JNZ 0x0017a6ad
TEST EBP,EBP
JZ 0x0017a4db
TEST AL,AL
JZ 0x0017a51f
MOVZX EAX,byte ptr [RBX]
LEA EDX,[RAX + -0x30]
CMP DL,0x9
JA 0x0017a4fe
MOV ECX,dword ptr [R15 + 0x30]
CMP ECX,0x1f
JZ 0x0017a648
MOV EDX,R12D
LEA EDX,[RDX + RDX*0x4]
MOVSX EAX,AL
LEA EDX,[RAX + RDX*0x2 + -0x30]
ADD RBX,0x1
MOVZX EAX,byte ptr [RBX]
LEA ESI,[RAX + -0x30]
CMP SIL,0x9
JA 0x0017a673
CMP EDX,0x3e7
JLE 0x0017a6d4
JMP 0x0017a673
LEA RDI,[0x201850]
MOV EAX,0x0
CALL 0x001776d2
MOV RSI,qword ptr [RSP + 0x20]
MOV qword ptr [RSI],RAX
MOV dword ptr [RSP + 0x64],0x1
JMP 0x0017a51f
MOV EDX,dword ptr [RSP + 0x18]
MOV RSI,R12
LEA RDI,[0x1f5fe1]
CALL 0x0012ada6
TEST EAX,EAX
JZ 0x0017a7cf
MOV EDX,dword ptr [RSP + 0x18]
MOV RSI,R12
LEA RDI,[0x1f5b12]
CALL 0x0012ada6
TEST EAX,EAX
JZ 0x0017a953
MOV EDX,dword ptr [RSP + 0x18]
MOV RSI,R12
LEA RDI,[0x1f47b1]
CALL 0x0012ada6
TEST EAX,EAX
JZ 0x0017a9b9
MOV EDX,dword ptr [RSP + 0x18]
MOV RSI,R12
LEA RDI,[0x1f47bf]
CALL 0x0012ada6
TEST EAX,EAX
JZ 0x0017a9fd
MOV EDX,dword ptr [RSP + 0x18]
MOV RSI,R12
LEA RDI,[0x1f47ca]
CALL 0x0012ada6
TEST EAX,EAX
JZ 0x0017aa46
MOV RDX,R12
MOV ESI,dword ptr [RSP + 0x18]
LEA RDI,[0x1f47d1]
MOV EAX,0x0
CALL 0x001776d2
MOV RSI,qword ptr [RSP + 0x20]
MOV qword ptr [RSI],RAX
MOV EAX,EBP
JMP 0x0017a523
MOV RCX,-0x1
MOV RDI,RBX
SCASB.REPNE RDI
NOT RCX
MOV RBP,RCX
LEA RSI,[RCX*0x8]
LEA R12,[RSP + 0x64]
MOV RDI,R12
CALL 0x0014bc1d
MOV qword ptr [RSP + 0x18],RAX
LEA RSI,[RBP + RBP*0x1]
MOV RDI,R12
CALL 0x0014bc1d
MOV qword ptr [RSP + 0x28],RAX
CMP qword ptr [RSP + 0x18],0x0
JZ 0x0017a842
TEST RAX,RAX
JZ 0x0017a842
CMP qword ptr [R15 + 0x68],0x0
JZ 0x0017a85f
LEA RDI,[0x201878]
MOV EAX,0x0
CALL 0x001776d2
MOV RSI,qword ptr [RSP + 0x20]
MOV qword ptr [RSI],RAX
MOV dword ptr [RSP + 0x64],0x1
MOV RDI,qword ptr [RSP + 0x18]
CALL 0x00141303
MOV RDI,qword ptr [RSP + 0x28]
CALL 0x00141303
MOV EAX,dword ptr [RSP + 0x64]
JMP 0x0017a523
MOV R12,RAX
MOV EAX,0x0
CMP byte ptr [RBX],0x0
JZ 0x0017a92c
MOV dword ptr [RSP + 0x44],R14D
MOV qword ptr [RSP + 0x48],R15
MOV RDI,RBX
MOV R14,RAX
JMP 0x0017a8d2
MOV RDI,RAX
CALL 0x0013e006
MOV RBP,RAX
JMP 0x0017a8ea
MOV R15,RBP
SUB R15,RBX
MOV RDX,R15
MOV RSI,RBX
MOV RDI,R12
CALL 0x0010e670
MOV RAX,qword ptr [RSP + 0x18]
MOV qword ptr [RAX + R14*0x8],R12
MOV RDI,R12
CALL 0x00134700
LEA R12,[R12 + R15*0x1 + 0x1]
MOV RDI,RBP
CALL 0x0013465f
MOV RDI,RAX
ADD R14,0x1
TEST RAX,RAX
JZ 0x0017a8ef
CMP byte ptr [RAX],0x0
JZ 0x0017a91f
CALL 0x0013465f
MOV RBX,RAX
CMP byte ptr [RAX],0x27
JZ 0x0017a882
MOV RDI,RAX
CALL 0x00134676
MOV RBP,RAX
TEST RBP,RBP
JNZ 0x0017a88f
MOV R14D,dword ptr [RSP + 0x44]
MOV R15,qword ptr [RSP + 0x48]
LEA RDI,[0x201950]
MOV EAX,0x0
CALL 0x001776d2
MOV RSI,qword ptr [RSP + 0x20]
MOV qword ptr [RSI],RAX
MOV dword ptr [RSP + 0x64],0x1
JMP 0x0017a842
MOV R15,qword ptr [RSP + 0x48]
MOV RAX,R14
MOV R14D,dword ptr [RSP + 0x44]
LEA RCX,[R15 + 0x68]
MOV R9,qword ptr [RSP + 0x20]
LEA R8,[R15 + 0x70]
MOV EDX,EAX
MOV RSI,qword ptr [RSP + 0x18]
MOV RDI,qword ptr [RSP + 0x38]
CALL 0x0017a177
MOV dword ptr [RSP + 0x64],EAX
JMP 0x0017a842
CMP dword ptr [R15 + 0x40],0x0
JNZ 0x0017a970
CMP byte ptr [RBX],0x0
JNZ 0x0017a98e
MOV dword ptr [R15 + 0x40],0x1
MOV EAX,dword ptr [RSP + 0x64]
JMP 0x0017a523
LEA RDI,[0x2018a0]
CALL 0x001776d2
MOV RSI,qword ptr [RSP + 0x20]
MOV qword ptr [RSI],RAX
MOV dword ptr [RSP + 0x64],0x1
JMP 0x0017a967
MOV dword ptr [R15 + 0x40],0x2
MOV RDX,qword ptr [R15 + 0x8]
LEA RDI,[RSP + 0x64]
MOV RCX,RBX
LEA RSI,[0x1f572e]
MOV EAX,0x0
CALL 0x00177220
MOV qword ptr [R15 + 0x48],RAX
JMP 0x0017a967
CMP qword ptr [R15 + 0x50],0x0
JZ 0x0017a9e5
LEA RDI,[0x2018c0]
CALL 0x001776d2
MOV RSI,qword ptr [RSP + 0x20]
MOV qword ptr [RSI],RAX
MOV dword ptr [RSP + 0x64],0x1
MOV EAX,dword ptr [RSP + 0x64]
JMP 0x0017a523
LEA RDI,[RSP + 0x64]
MOV EDX,0xffffffff
MOV RSI,RBX
CALL 0x0014b209
MOV qword ptr [R15 + 0x50],RAX
JMP 0x0017a9dc
MOVZX EAX,byte ptr [RBX]
LEA EDX,[RAX + -0x30]
CMP DL,0x1
JA 0x0017aa0e
CMP byte ptr [RBX + 0x1],0x0
JZ 0x0017aa38
LEA RDI,[0x2018e8]
MOV EAX,0x0
CALL 0x001776d2
MOV RSI,qword ptr [RSP + 0x20]
MOV qword ptr [RSI],RAX
MOV dword ptr [RSP + 0x64],0x1
MOV EAX,dword ptr [RSP + 0x64]
JMP 0x0017a523
CMP AL,0x31
SETZ AL
MOVZX EAX,AL
MOV dword ptr [R15 + 0x58],EAX
JMP 0x0017aa2f
LEA RAX,[0x1f6618]
MOV qword ptr [RSP + 0x80],RAX
MOV dword ptr [RSP + 0x88],0x1
LEA RAX,[0x1f654c]
MOV qword ptr [RSP + 0x90],RAX
MOV dword ptr [RSP + 0x98],0x0
LEA RAX,[0x1f539f]
MOV qword ptr [RSP + 0xa0],RAX
MOV dword ptr [RSP + 0xa8],0x2
MOV qword ptr [RSP + 0xb0],0x0
MOV dword ptr [RSP + 0xb8],0x0
MOV EAX,0x0
MOV RCX,-0x1
MOV RDI,RBX
SCASB.REPNE RDI
MOV RAX,RCX
NOT RAX
LEA EAX,[RAX + -0x1]
LEA RBP,[RSP + 0x90]
MOV R12D,dword ptr [RSP + 0x40]
LEA RDI,[0x1f6618]
MOV dword ptr [RSP + 0x18],R14D
MOV R14D,EAX
JMP 0x0017aaf4
MOV R12D,dword ptr [RBP + -0x8]
ADD RBP,0x10
MOV RDI,qword ptr [RBP + -0x10]
TEST RDI,RDI
JZ 0x0017ab30
MOV EDX,R14D
MOV RSI,RBX
CALL 0x0012ada6
TEST EAX,EAX
JNZ 0x0017aae7
TEST R12D,R12D
JS 0x0017aae3
MOV R14D,dword ptr [RSP + 0x18]
MOV dword ptr [RSP + 0x64],0x1
LEA RDI,[0x201910]
MOV EAX,0x0
CALL 0x001776d2
MOV RSI,qword ptr [RSP + 0x20]
MOV qword ptr [RSI],RAX
JMP 0x0017ab44
MOV R14D,dword ptr [RSP + 0x18]
MOV dword ptr [R15 + 0x5c],R12D
SHR R12D,0x1f
MOV dword ptr [RSP + 0x64],R12D
JNZ 0x0017ab15
MOV EAX,dword ptr [RSP + 0x64]
JMP 0x0017a523
MOV RBX,qword ptr [RSP + 0x68]
LEA RSI,[0x1f3ddb]
MOV RDI,RBX
CALL 0x0012ad85
TEST EAX,EAX
JZ 0x0017ab78
LEA RSI,[0x1f41d1]
MOV RDI,RBX
CALL 0x0012ad85
TEST EAX,EAX
JNZ 0x0017abc0
MOV RSI,RBX
LEA RDI,[0x1f47ed]
MOV EAX,0x0
CALL 0x001776d2
MOV RSI,qword ptr [RSP + 0x20]
MOV qword ptr [RSI],RAX
MOV EBP,0x1
MOV RDX,qword ptr [R15 + 0x20]
MOV EAX,dword ptr [R15 + 0x18]
LEA ECX,[RAX + 0x1]
MOV dword ptr [R15 + 0x18],ECX
CDQE
MOV qword ptr [RDX + RAX*0x8],RBX
MOV dword ptr [RSP + 0x5c],EBP
MOV qword ptr [RSP + 0x68],0x0
JMP 0x0017a527
MOV R12,qword ptr [RSP + 0x70]
TEST R12,R12
JZ 0x0017ab99
LEA RSI,[0x1f480b]
MOV RDI,R12
CALL 0x0012ad85
MOV EBP,EAX
TEST EAX,EAX
JNZ 0x0017abed
MOVSXD RAX,dword ptr [R15 + 0x18]
MOV RDX,qword ptr [R15 + 0x28]
MOV byte ptr [RDX + RAX*0x1],0x1
JMP 0x0017ab99
MOV RSI,R12
LEA RDI,[0x201930]
MOV EAX,0x0
CALL 0x001776d2
MOV RSI,qword ptr [RSP + 0x20]
MOV qword ptr [RSI],RAX
MOV EBP,0x1
JMP 0x0017ab99
LEA RCX,[R15 + 0x68]
MOV R9D,0x0
LEA R8,[R15 + 0x70]
MOV EDX,0x0
MOV ESI,0x0
MOV RDI,qword ptr [RSP + 0x38]
CALL 0x0017a177
MOV dword ptr [RSP + 0x5c],EAX
JMP 0x0017a373
CMP dword ptr [R15 + 0x40],0x0
JZ 0x0017ac55
LEA R8,[0x1f4771]
CMP dword ptr [R15 + 0x58],0x0
JNZ 0x0017ac5c
JMP 0x0017a389
LEA R8,[0x1f5b12]
MOV RCX,qword ptr [R15 + 0x10]
MOV RDX,qword ptr [R15 + 0x8]
LEA RDI,[RSP + 0x5c]
LEA RSI,[0x1f4815]
MOV EAX,0x0
CALL 0x00177220
MOV qword ptr [R15 + 0x48],RAX
CMP dword ptr [RSP + 0x5c],0x0
JZ 0x0017a389
JMP 0x0017acb0
LEA RDI,[RSP + 0x5c]
MOV EDX,0xffffffff
LEA RSI,[0x1f41d1]
CALL 0x0014b209
MOV qword ptr [R15 + 0x50],RAX
CMP dword ptr [RSP + 0x5c],0x0
JZ 0x0017a394
MOV RDI,R15
CALL 0x00148182
MOV RAX,qword ptr [RSP + 0x30]
MOV qword ptr [RAX],0x0
JMP 0x0017ad1e
MOV RAX,qword ptr [R15 + 0x20]
MOV RCX,qword ptr [RAX + RBX*0x8]
MOV RDX,R14
MOV RSI,R12
MOV RDI,RBP
MOV EAX,0x0
CALL 0x001765c7
ADD RBX,0x1
CMP dword ptr [R15 + 0x18],EBX
JLE 0x0017ad09
CMP dword ptr [R15 + 0x40],0x2
JZ 0x0017acc6
MOV ECX,EBX
MOV RDX,R13
MOV RSI,R12
MOV RDI,RBP
MOV EAX,0x0
CALL 0x001765c7
JMP 0x0017ace1
MOV RAX,qword ptr [RSP + 0x70]
MOV qword ptr [R15 + 0x60],RAX
MOV EAX,dword ptr [RSP + 0x68]
MOV dword ptr [RSP + 0x5c],EAX
TEST EAX,EAX
JNZ 0x0017acb0
MOV EAX,dword ptr [RSP + 0x5c]
MOV RSI,qword ptr [RSP + 0xc8]
XOR RSI,qword ptr FS:[0x28]
JNZ 0x0017ad8f
ADD RSP,0xd8
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV EAX,0x7
JMP 0x0017ad22
CMP dword ptr [RSP + 0x5c],0x0
JNZ 0x0017a527
MOV RSI,RBX
LEA RDI,[0x1f4796]
MOV EAX,0x0
CALL 0x001776d2
MOV RSI,qword ptr [RSP + 0x20]
MOV qword ptr [RSI],RAX
MOV dword ptr [RSP + 0x5c],0x1
JMP 0x0017a527
CMP dword ptr [RSP + 0x5c],0x0
JNZ 0x0017a527
JMP 0x0017ad59
CALL 0x0010e4d0
(translation_unit "int FUN_0017a24a(undefined8 param_1,undefined8 param_2,int param_3,long param_4,long *param_5,\n                undefined8 *param_6)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  undefined8 *puVar5;\n  long lVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  void *pvVar9;\n  long lVar10;\n  ulong uVar11;\n  long lVar12;\n  char **ppcVar13;\n  undefined8 *puVar14;\n  char *pcVar15;\n  char *pcVar16;\n  char *pcVar17;\n  void *__dest;\n  long in_FS_OFFSET;\n  byte bVar18;\n  int local_c8;\n  int local_ac;\n  int local_a8;\n  int local_a4;\n  char *local_a0;\n  char *local_98;\n  undefined4 local_90;\n  undefined4 local_8c;\n  char *local_88;\n  undefined4 local_80 [2];\n  char *local_78;\n  undefined4 local_70;\n  char *local_68;\n  undefined4 local_60;\n  undefined8 local_58;\n  undefined4 local_50;\n  long local_40;\n  \n  bVar18 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_ac = 0;\n  puVar5 = (undefined8 *)FUN_0014ae6c(0xa8);\n  *param_5 = (long)puVar5;\n  if (puVar5 == (undefined8 *)0x0) {\n    iVar4 = 7;\n    goto LAB_0017ad22;\n  }\n  puVar5[1] = 0;\n  puVar5[0x14] = 0;\n  puVar14 = (undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8);\n  for (uVar11 = (ulong)(((int)puVar5 - (int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)\n                        ) + 0xa8U >> 3); uVar11 != 0; uVar11 = uVar11 - 1) {\n    *puVar14 = 0;\n    puVar14 = puVar14 + (ulong)bVar18 * -2 + 1;\n  }\n  *puVar5 = param_2;\n  *(undefined4 *)(puVar5 + 0xf) = 0xffffffff;\n  lVar6 = FUN_0014bc1d(&local_ac,(long)param_3 * 9);\n  puVar5[4] = lVar6;\n  puVar5[5] = lVar6 + (long)param_3 * 8;\n  uVar7 = FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 8),0xffffffff);\n  puVar5[1] = uVar7;\n  uVar7 = FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 0x10),0xffffffff);\n  iVar4 = local_ac;\n  puVar5[2] = uVar7;\n  *(undefined4 *)(puVar5 + 0xb) = 1;\n  *(undefined4 *)((long)puVar5 + 0x5c) = 0;\n  if (local_ac == 0) {\n    iVar2 = FUN_0012ad85(uVar7,&DAT_001f3ddb);\n    if (iVar2 == 0) {\n      uVar7 = FUN_001776d2("reserved fts5 table name: %s",uVar7);\n      *param_6 = uVar7;\n      local_ac = 1;\n      goto LAB_0017a364;\n    }\n    if (3 < param_3) {\n      lVar6 = 4;\n      local_c8 = -1;\nLAB_0017a558:\n      uVar7 = *(undefined8 *)(param_4 + -8 + lVar6 * 8);\n      local_a0 = (char *)0x0;\n      local_98 = (char *)0x0;\n      local_a8 = 0;\n      uVar8 = FUN_0014c842(&local_ac,uVar7,&local_a0,&local_a8);\n      pcVar17 = (char *)FUN_0013465f(uVar8);\n      iVar2 = iVar4;\n      if ((pcVar17 != (char *)0x0) && (*pcVar17 == '=')) {\n        if (local_a8 == 0) {\n          pcVar17 = pcVar17 + 1;\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = 1;\n          pcVar17 = (char *)0x0;\n        }\n      }\n      pcVar17 = (char *)FUN_0013465f(pcVar17);\n      if ((pcVar17 == (char *)0x0) ||\n         ((pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))))) {\n        iVar3 = local_ac;\n        if (local_ac == 0) {\n          uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);\n          *param_6 = uVar7;\n          local_ac = 1;\n          iVar3 = local_ac;\n        }\n      }\n      else {\n        iVar3 = local_ac;\n        local_a0 = pcVar16;\n        if (local_ac == 0) {\n          if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_0017a527;\n    }\nLAB_0017a368:\n    if (puVar5[0xd] == 0) {\n      local_ac = FUN_0017a177(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0);\n    }\n  }\n  else {\nLAB_0017a364:\n    if (local_ac == 0) goto LAB_0017a368;\n  }\n  if (local_ac == 0) {\n    if (puVar5[9] == 0) {\n      if (*(int *)(puVar5 + 8) == 0) {\n        pcVar17 = "content";\n      }\n      else {\n        pcVar17 = "docsize";\n        if (*(int *)(puVar5 + 0xb) == 0) goto LAB_0017a389;\n      }\n      uVar7 = FUN_00177220(&local_ac,"%Q.\'%q_%s\'",puVar5[1],puVar5[2],pcVar17);\n      puVar5[9] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }\nLAB_0017a389:\n    if (puVar5[10] == 0) {\n      uVar7 = FUN_0014b209(&local_ac,"rowid",0xffffffff);\n      puVar5[10] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }\n    local_a0 = (char *)((ulong)local_a0 & 0xffffffff00000000);\n    local_98 = (char *)0x0;\n    local_90 = 0;\n    local_8c = 0;\n    FUN_001765c7(&local_a0,&local_98,&DAT_001f4822,puVar5[10]);\n    if ((*(int *)(puVar5 + 8) != 1) && (0 < *(int *)(puVar5 + 3))) {\n      uVar11 = 0;\n      do {\n        if (*(int *)(puVar5 + 8) == 2) {\n          FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));\n        }\n        else {\n          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);\n        }\n        uVar11 = uVar11 + 1;\n      } while ((int)uVar11 < *(int *)(puVar5 + 3));\n    }\n    puVar5[0xc] = local_98;\n    local_ac = (int)local_a0;\n    iVar4 = (int)local_a0;\n    if ((int)local_a0 == 0) goto LAB_0017ad22;\n  }\nLAB_0017acb0:\n  FUN_00148182(puVar5);\n  *param_5 = 0;\n  iVar4 = local_ac;\nLAB_0017ad22:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return iVar4;\nLAB_0017a6fb:\n  uVar7 = FUN_001776d2("prefix length out of range (max 999)");\n  *param_6 = uVar7;\n  local_a4 = 1;\n  iVar3 = local_a4;\nLAB_0017a527:\n  local_ac = iVar3;\n  FUN_00141303(local_a0);\n  FUN_00141303(local_98);\n  iVar2 = (int)lVar6;\n  lVar6 = lVar6 + 1;\n  if (param_3 <= iVar2 || local_ac != 0) goto LAB_0017a364;\n  goto LAB_0017a558;\n}\n\n" (function_definition "int FUN_0017a24a(undefined8 param_1,undefined8 param_2,int param_3,long param_4,long *param_5,\n                undefined8 *param_6)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  undefined8 *puVar5;\n  long lVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  void *pvVar9;\n  long lVar10;\n  ulong uVar11;\n  long lVar12;\n  char **ppcVar13;\n  undefined8 *puVar14;\n  char *pcVar15;\n  char *pcVar16;\n  char *pcVar17;\n  void *__dest;\n  long in_FS_OFFSET;\n  byte bVar18;\n  int local_c8;\n  int local_ac;\n  int local_a8;\n  int local_a4;\n  char *local_a0;\n  char *local_98;\n  undefined4 local_90;\n  undefined4 local_8c;\n  char *local_88;\n  undefined4 local_80 [2];\n  char *local_78;\n  undefined4 local_70;\n  char *local_68;\n  undefined4 local_60;\n  undefined8 local_58;\n  undefined4 local_50;\n  long local_40;\n  \n  bVar18 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_ac = 0;\n  puVar5 = (undefined8 *)FUN_0014ae6c(0xa8);\n  *param_5 = (long)puVar5;\n  if (puVar5 == (undefined8 *)0x0) {\n    iVar4 = 7;\n    goto LAB_0017ad22;\n  }\n  puVar5[1] = 0;\n  puVar5[0x14] = 0;\n  puVar14 = (undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8);\n  for (uVar11 = (ulong)(((int)puVar5 - (int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)\n                        ) + 0xa8U >> 3); uVar11 != 0; uVar11 = uVar11 - 1) {\n    *puVar14 = 0;\n    puVar14 = puVar14 + (ulong)bVar18 * -2 + 1;\n  }\n  *puVar5 = param_2;\n  *(undefined4 *)(puVar5 + 0xf) = 0xffffffff;\n  lVar6 = FUN_0014bc1d(&local_ac,(long)param_3 * 9);\n  puVar5[4] = lVar6;\n  puVar5[5] = lVar6 + (long)param_3 * 8;\n  uVar7 = FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 8),0xffffffff);\n  puVar5[1] = uVar7;\n  uVar7 = FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 0x10),0xffffffff);\n  iVar4 = local_ac;\n  puVar5[2] = uVar7;\n  *(undefined4 *)(puVar5 + 0xb) = 1;\n  *(undefined4 *)((long)puVar5 + 0x5c) = 0;\n  if (local_ac == 0) {\n    iVar2 = FUN_0012ad85(uVar7,&DAT_001f3ddb);\n    if (iVar2 == 0) {\n      uVar7 = FUN_001776d2("reserved fts5 table name: %s",uVar7);\n      *param_6 = uVar7;\n      local_ac = 1;\n      goto LAB_0017a364;\n    }\n    if (3 < param_3) {\n      lVar6 = 4;\n      local_c8 = -1;\nLAB_0017a558:\n      uVar7 = *(undefined8 *)(param_4 + -8 + lVar6 * 8);\n      local_a0 = (char *)0x0;\n      local_98 = (char *)0x0;\n      local_a8 = 0;\n      uVar8 = FUN_0014c842(&local_ac,uVar7,&local_a0,&local_a8);\n      pcVar17 = (char *)FUN_0013465f(uVar8);\n      iVar2 = iVar4;\n      if ((pcVar17 != (char *)0x0) && (*pcVar17 == '=')) {\n        if (local_a8 == 0) {\n          pcVar17 = pcVar17 + 1;\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = 1;\n          pcVar17 = (char *)0x0;\n        }\n      }\n      pcVar17 = (char *)FUN_0013465f(pcVar17);\n      if ((pcVar17 == (char *)0x0) ||\n         ((pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))))) {\n        iVar3 = local_ac;\n        if (local_ac == 0) {\n          uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);\n          *param_6 = uVar7;\n          local_ac = 1;\n          iVar3 = local_ac;\n        }\n      }\n      else {\n        iVar3 = local_ac;\n        local_a0 = pcVar16;\n        if (local_ac == 0) {\n          if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_0017a527;\n    }\nLAB_0017a368:\n    if (puVar5[0xd] == 0) {\n      local_ac = FUN_0017a177(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0);\n    }\n  }\n  else {\nLAB_0017a364:\n    if (local_ac == 0) goto LAB_0017a368;\n  }\n  if (local_ac == 0) {\n    if (puVar5[9] == 0) {\n      if (*(int *)(puVar5 + 8) == 0) {\n        pcVar17 = "content";\n      }\n      else {\n        pcVar17 = "docsize";\n        if (*(int *)(puVar5 + 0xb) == 0) goto LAB_0017a389;\n      }\n      uVar7 = FUN_00177220(&local_ac,"%Q.\'%q_%s\'",puVar5[1],puVar5[2],pcVar17);\n      puVar5[9] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }\nLAB_0017a389:\n    if (puVar5[10] == 0) {\n      uVar7 = FUN_0014b209(&local_ac,"rowid",0xffffffff);\n      puVar5[10] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }\n    local_a0 = (char *)((ulong)local_a0 & 0xffffffff00000000);\n    local_98 = (char *)0x0;\n    local_90 = 0;\n    local_8c = 0;\n    FUN_001765c7(&local_a0,&local_98,&DAT_001f4822,puVar5[10]);\n    if ((*(int *)(puVar5 + 8) != 1) && (0 < *(int *)(puVar5 + 3))) {\n      uVar11 = 0;\n      do {\n        if (*(int *)(puVar5 + 8) == 2) {\n          FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));\n        }\n        else {\n          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);\n        }\n        uVar11 = uVar11 + 1;\n      } while ((int)uVar11 < *(int *)(puVar5 + 3));\n    }\n    puVar5[0xc] = local_98;\n    local_ac = (int)local_a0;\n    iVar4 = (int)local_a0;\n    if ((int)local_a0 == 0) goto LAB_0017ad22;\n  }\nLAB_0017acb0:\n  FUN_00148182(puVar5);\n  *param_5 = 0;\n  iVar4 = local_ac;\nLAB_0017ad22:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return iVar4;\nLAB_0017a6fb:\n  uVar7 = FUN_001776d2("prefix length out of range (max 999)");\n  *param_6 = uVar7;\n  local_a4 = 1;\n  iVar3 = local_a4;\nLAB_0017a527:\n  local_ac = iVar3;\n  FUN_00141303(local_a0);\n  FUN_00141303(local_98);\n  iVar2 = (int)lVar6;\n  lVar6 = lVar6 + 1;\n  if (param_3 <= iVar2 || local_ac != 0) goto LAB_0017a364;\n  goto LAB_0017a558;\n}" primitive_type (function_declarator "FUN_0017a24a(undefined8 param_1,undefined8 param_2,int param_3,long param_4,long *param_5,\n                undefined8 *param_6)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2,int param_3,long param_4,long *param_5,\n                undefined8 *param_6)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long *param_5" (sized_type_specifier "long" long) (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "undefined8 *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  undefined8 *puVar5;\n  long lVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  void *pvVar9;\n  long lVar10;\n  ulong uVar11;\n  long lVar12;\n  char **ppcVar13;\n  undefined8 *puVar14;\n  char *pcVar15;\n  char *pcVar16;\n  char *pcVar17;\n  void *__dest;\n  long in_FS_OFFSET;\n  byte bVar18;\n  int local_c8;\n  int local_ac;\n  int local_a8;\n  int local_a4;\n  char *local_a0;\n  char *local_98;\n  undefined4 local_90;\n  undefined4 local_8c;\n  char *local_88;\n  undefined4 local_80 [2];\n  char *local_78;\n  undefined4 local_70;\n  char *local_68;\n  undefined4 local_60;\n  undefined8 local_58;\n  undefined4 local_50;\n  long local_40;\n  \n  bVar18 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_ac = 0;\n  puVar5 = (undefined8 *)FUN_0014ae6c(0xa8);\n  *param_5 = (long)puVar5;\n  if (puVar5 == (undefined8 *)0x0) {\n    iVar4 = 7;\n    goto LAB_0017ad22;\n  }\n  puVar5[1] = 0;\n  puVar5[0x14] = 0;\n  puVar14 = (undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8);\n  for (uVar11 = (ulong)(((int)puVar5 - (int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)\n                        ) + 0xa8U >> 3); uVar11 != 0; uVar11 = uVar11 - 1) {\n    *puVar14 = 0;\n    puVar14 = puVar14 + (ulong)bVar18 * -2 + 1;\n  }\n  *puVar5 = param_2;\n  *(undefined4 *)(puVar5 + 0xf) = 0xffffffff;\n  lVar6 = FUN_0014bc1d(&local_ac,(long)param_3 * 9);\n  puVar5[4] = lVar6;\n  puVar5[5] = lVar6 + (long)param_3 * 8;\n  uVar7 = FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 8),0xffffffff);\n  puVar5[1] = uVar7;\n  uVar7 = FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 0x10),0xffffffff);\n  iVar4 = local_ac;\n  puVar5[2] = uVar7;\n  *(undefined4 *)(puVar5 + 0xb) = 1;\n  *(undefined4 *)((long)puVar5 + 0x5c) = 0;\n  if (local_ac == 0) {\n    iVar2 = FUN_0012ad85(uVar7,&DAT_001f3ddb);\n    if (iVar2 == 0) {\n      uVar7 = FUN_001776d2("reserved fts5 table name: %s",uVar7);\n      *param_6 = uVar7;\n      local_ac = 1;\n      goto LAB_0017a364;\n    }\n    if (3 < param_3) {\n      lVar6 = 4;\n      local_c8 = -1;\nLAB_0017a558:\n      uVar7 = *(undefined8 *)(param_4 + -8 + lVar6 * 8);\n      local_a0 = (char *)0x0;\n      local_98 = (char *)0x0;\n      local_a8 = 0;\n      uVar8 = FUN_0014c842(&local_ac,uVar7,&local_a0,&local_a8);\n      pcVar17 = (char *)FUN_0013465f(uVar8);\n      iVar2 = iVar4;\n      if ((pcVar17 != (char *)0x0) && (*pcVar17 == '=')) {\n        if (local_a8 == 0) {\n          pcVar17 = pcVar17 + 1;\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = 1;\n          pcVar17 = (char *)0x0;\n        }\n      }\n      pcVar17 = (char *)FUN_0013465f(pcVar17);\n      if ((pcVar17 == (char *)0x0) ||\n         ((pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))))) {\n        iVar3 = local_ac;\n        if (local_ac == 0) {\n          uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);\n          *param_6 = uVar7;\n          local_ac = 1;\n          iVar3 = local_ac;\n        }\n      }\n      else {\n        iVar3 = local_ac;\n        local_a0 = pcVar16;\n        if (local_ac == 0) {\n          if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_0017a527;\n    }\nLAB_0017a368:\n    if (puVar5[0xd] == 0) {\n      local_ac = FUN_0017a177(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0);\n    }\n  }\n  else {\nLAB_0017a364:\n    if (local_ac == 0) goto LAB_0017a368;\n  }\n  if (local_ac == 0) {\n    if (puVar5[9] == 0) {\n      if (*(int *)(puVar5 + 8) == 0) {\n        pcVar17 = "content";\n      }\n      else {\n        pcVar17 = "docsize";\n        if (*(int *)(puVar5 + 0xb) == 0) goto LAB_0017a389;\n      }\n      uVar7 = FUN_00177220(&local_ac,"%Q.\'%q_%s\'",puVar5[1],puVar5[2],pcVar17);\n      puVar5[9] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }\nLAB_0017a389:\n    if (puVar5[10] == 0) {\n      uVar7 = FUN_0014b209(&local_ac,"rowid",0xffffffff);\n      puVar5[10] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }\n    local_a0 = (char *)((ulong)local_a0 & 0xffffffff00000000);\n    local_98 = (char *)0x0;\n    local_90 = 0;\n    local_8c = 0;\n    FUN_001765c7(&local_a0,&local_98,&DAT_001f4822,puVar5[10]);\n    if ((*(int *)(puVar5 + 8) != 1) && (0 < *(int *)(puVar5 + 3))) {\n      uVar11 = 0;\n      do {\n        if (*(int *)(puVar5 + 8) == 2) {\n          FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));\n        }\n        else {\n          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);\n        }\n        uVar11 = uVar11 + 1;\n      } while ((int)uVar11 < *(int *)(puVar5 + 3));\n    }\n    puVar5[0xc] = local_98;\n    local_ac = (int)local_a0;\n    iVar4 = (int)local_a0;\n    if ((int)local_a0 == 0) goto LAB_0017ad22;\n  }\nLAB_0017acb0:\n  FUN_00148182(puVar5);\n  *param_5 = 0;\n  iVar4 = local_ac;\nLAB_0017ad22:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return iVar4;\nLAB_0017a6fb:\n  uVar7 = FUN_001776d2("prefix length out of range (max 999)");\n  *param_6 = uVar7;\n  local_a4 = 1;\n  iVar3 = local_a4;\nLAB_0017a527:\n  local_ac = iVar3;\n  FUN_00141303(local_a0);\n  FUN_00141303(local_98);\n  iVar2 = (int)lVar6;\n  lVar6 = lVar6 + 1;\n  if (param_3 <= iVar2 || local_ac != 0) goto LAB_0017a364;\n  goto LAB_0017a558;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined8 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "void *pvVar9;" primitive_type (pointer_declarator "*pvVar9" * identifier) ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar11;" type_identifier identifier ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "char **ppcVar13;" primitive_type (pointer_declarator "**ppcVar13" * (pointer_declarator "*ppcVar13" * identifier)) ;) (declaration "undefined8 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "char *pcVar17;" primitive_type (pointer_declarator "*pcVar17" * identifier) ;) (declaration "void *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar18;" type_identifier identifier ;) (declaration "int local_c8;" primitive_type identifier ;) (declaration "int local_ac;" primitive_type identifier ;) (declaration "int local_a8;" primitive_type identifier ;) (declaration "int local_a4;" primitive_type identifier ;) (declaration "char *local_a0;" primitive_type (pointer_declarator "*local_a0" * identifier) ;) (declaration "char *local_98;" primitive_type (pointer_declarator "*local_98" * identifier) ;) (declaration "undefined4 local_90;" type_identifier identifier ;) (declaration "undefined4 local_8c;" type_identifier identifier ;) (declaration "char *local_88;" primitive_type (pointer_declarator "*local_88" * identifier) ;) (declaration "undefined4 local_80 [2];" type_identifier (array_declarator "local_80 [2]" identifier [ number_literal ]) ;) (declaration "char *local_78;" primitive_type (pointer_declarator "*local_78" * identifier) ;) (declaration "undefined4 local_70;" type_identifier identifier ;) (declaration "char *local_68;" primitive_type (pointer_declarator "*local_68" * identifier) ;) (declaration "undefined4 local_60;" type_identifier identifier ;) (declaration "undefined8 local_58;" type_identifier identifier ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "bVar18 = 0;" (assignment_expression "bVar18 = 0" identifier = number_literal) ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "local_ac = 0;" (assignment_expression "local_ac = 0" identifier = number_literal) ;) (expression_statement "puVar5 = (undefined8 *)FUN_0014ae6c(0xa8);" (assignment_expression "puVar5 = (undefined8 *)FUN_0014ae6c(0xa8)" identifier = (cast_expression "(undefined8 *)FUN_0014ae6c(0xa8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0014ae6c(0xa8)" identifier (argument_list "(0xa8)" ( number_literal ))))) ;) (expression_statement "*param_5 = (long)puVar5;" (assignment_expression "*param_5 = (long)puVar5" (pointer_expression "*param_5" * identifier) = (cast_expression "(long)puVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (if_statement "if (puVar5 == (undefined8 *)0x0) {\n    iVar4 = 7;\n    goto LAB_0017ad22;\n  }" if (parenthesized_expression "(puVar5 == (undefined8 *)0x0)" ( (binary_expression "puVar5 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar4 = 7;\n    goto LAB_0017ad22;\n  }" { (expression_statement "iVar4 = 7;" (assignment_expression "iVar4 = 7" identifier = number_literal) ;) (goto_statement "goto LAB_0017ad22;" goto statement_identifier ;) })) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[0x14] = 0;" (assignment_expression "puVar5[0x14] = 0" (subscript_expression "puVar5[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14 = (undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8);" (assignment_expression "puVar14 = (undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)" identifier = (cast_expression "(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)(puVar5 + 2) & 0xfffffffffffffff8)" ( (binary_expression "(ulong)(puVar5 + 2) & 0xfffffffffffffff8" (call_expression "(ulong)(puVar5 + 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(puVar5 + 2)" ( (binary_expression "puVar5 + 2" identifier + number_literal) ))) & number_literal) )))) ;) (for_statement "for (uVar11 = (ulong)(((int)puVar5 - (int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)\n                        ) + 0xa8U >> 3); uVar11 != 0; uVar11 = uVar11 - 1) {\n    *puVar14 = 0;\n    puVar14 = puVar14 + (ulong)bVar18 * -2 + 1;\n  }" for ( (assignment_expression "uVar11 = (ulong)(((int)puVar5 - (int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)\n                        ) + 0xa8U >> 3)" identifier = (call_expression "(ulong)(((int)puVar5 - (int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)\n                        ) + 0xa8U >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(((int)puVar5 - (int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)\n                        ) + 0xa8U >> 3)" ( (binary_expression "((int)puVar5 - (int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)\n                        ) + 0xa8U >> 3" (binary_expression "((int)puVar5 - (int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)\n                        ) + 0xa8U" (parenthesized_expression "((int)puVar5 - (int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)\n                        )" ( (binary_expression "(int)puVar5 - (int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)" ( (type_descriptor "int" primitive_type) ) (cast_expression "(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)(puVar5 + 2) & 0xfffffffffffffff8)" ( (binary_expression "(ulong)(puVar5 + 2) & 0xfffffffffffffff8" (call_expression "(ulong)(puVar5 + 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(puVar5 + 2)" ( (binary_expression "puVar5 + 2" identifier + number_literal) ))) & number_literal) ))))) )) + number_literal) >> number_literal) )))) ; (binary_expression "uVar11 != 0" identifier != number_literal) ; (assignment_expression "uVar11 = uVar11 - 1" identifier = (binary_expression "uVar11 - 1" identifier - number_literal)) ) (compound_statement "{\n    *puVar14 = 0;\n    puVar14 = puVar14 + (ulong)bVar18 * -2 + 1;\n  }" { (expression_statement "*puVar14 = 0;" (assignment_expression "*puVar14 = 0" (pointer_expression "*puVar14" * identifier) = number_literal) ;) (expression_statement "puVar14 = puVar14 + (ulong)bVar18 * -2 + 1;" (assignment_expression "puVar14 = puVar14 + (ulong)bVar18 * -2 + 1" identifier = (binary_expression "puVar14 + (ulong)bVar18 * -2 + 1" (binary_expression "puVar14 + (ulong)bVar18 * -2" identifier + (binary_expression "(ulong)bVar18 * -2" (cast_expression "(ulong)bVar18" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "*puVar5 = param_2;" (assignment_expression "*puVar5 = param_2" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "*(undefined4 *)(puVar5 + 0xf) = 0xffffffff;" (assignment_expression "*(undefined4 *)(puVar5 + 0xf) = 0xffffffff" (pointer_expression "*(undefined4 *)(puVar5 + 0xf)" * (cast_expression "(undefined4 *)(puVar5 + 0xf)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0xf)" ( (binary_expression "puVar5 + 0xf" identifier + number_literal) )))) = number_literal) ;) (expression_statement "lVar6 = FUN_0014bc1d(&local_ac,(long)param_3 * 9);" (assignment_expression "lVar6 = FUN_0014bc1d(&local_ac,(long)param_3 * 9)" identifier = (call_expression "FUN_0014bc1d(&local_ac,(long)param_3 * 9)" identifier (argument_list "(&local_ac,(long)param_3 * 9)" ( (pointer_expression "&local_ac" & identifier) , (binary_expression "(long)param_3 * 9" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal) )))) ;) (expression_statement "puVar5[4] = lVar6;" (assignment_expression "puVar5[4] = lVar6" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[5] = lVar6 + (long)param_3 * 8;" (assignment_expression "puVar5[5] = lVar6 + (long)param_3 * 8" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = (binary_expression "lVar6 + (long)param_3 * 8" identifier + (binary_expression "(long)param_3 * 8" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal))) ;) (expression_statement "uVar7 = FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 8),0xffffffff);" (assignment_expression "uVar7 = FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 8),0xffffffff)" identifier = (call_expression "FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 8),0xffffffff)" identifier (argument_list "(&local_ac,*(undefined8 *)(param_4 + 8),0xffffffff)" ( (pointer_expression "&local_ac" & identifier) , (pointer_expression "*(undefined8 *)(param_4 + 8)" * (cast_expression "(undefined8 *)(param_4 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 8)" ( (binary_expression "param_4 + 8" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "puVar5[1] = uVar7;" (assignment_expression "puVar5[1] = uVar7" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar7 = FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 0x10),0xffffffff);" (assignment_expression "uVar7 = FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 0x10),0xffffffff)" identifier = (call_expression "FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 0x10),0xffffffff)" identifier (argument_list "(&local_ac,*(undefined8 *)(param_4 + 0x10),0xffffffff)" ( (pointer_expression "&local_ac" & identifier) , (pointer_expression "*(undefined8 *)(param_4 + 0x10)" * (cast_expression "(undefined8 *)(param_4 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x10)" ( (binary_expression "param_4 + 0x10" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "iVar4 = local_ac;" (assignment_expression "iVar4 = local_ac" identifier = identifier) ;) (expression_statement "puVar5[2] = uVar7;" (assignment_expression "puVar5[2] = uVar7" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)(puVar5 + 0xb) = 1;" (assignment_expression "*(undefined4 *)(puVar5 + 0xb) = 1" (pointer_expression "*(undefined4 *)(puVar5 + 0xb)" * (cast_expression "(undefined4 *)(puVar5 + 0xb)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0xb)" ( (binary_expression "puVar5 + 0xb" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((long)puVar5 + 0x5c) = 0;" (assignment_expression "*(undefined4 *)((long)puVar5 + 0x5c) = 0" (pointer_expression "*(undefined4 *)((long)puVar5 + 0x5c)" * (cast_expression "(undefined4 *)((long)puVar5 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar5 + 0x5c)" ( (binary_expression "(long)puVar5 + 0x5c" (cast_expression "(long)puVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (if_statement "if (local_ac == 0) {\n    iVar2 = FUN_0012ad85(uVar7,&DAT_001f3ddb);\n    if (iVar2 == 0) {\n      uVar7 = FUN_001776d2("reserved fts5 table name: %s",uVar7);\n      *param_6 = uVar7;\n      local_ac = 1;\n      goto LAB_0017a364;\n    }\n    if (3 < param_3) {\n      lVar6 = 4;\n      local_c8 = -1;\nLAB_0017a558:\n      uVar7 = *(undefined8 *)(param_4 + -8 + lVar6 * 8);\n      local_a0 = (char *)0x0;\n      local_98 = (char *)0x0;\n      local_a8 = 0;\n      uVar8 = FUN_0014c842(&local_ac,uVar7,&local_a0,&local_a8);\n      pcVar17 = (char *)FUN_0013465f(uVar8);\n      iVar2 = iVar4;\n      if ((pcVar17 != (char *)0x0) && (*pcVar17 == '=')) {\n        if (local_a8 == 0) {\n          pcVar17 = pcVar17 + 1;\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = 1;\n          pcVar17 = (char *)0x0;\n        }\n      }\n      pcVar17 = (char *)FUN_0013465f(pcVar17);\n      if ((pcVar17 == (char *)0x0) ||\n         ((pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))))) {\n        iVar3 = local_ac;\n        if (local_ac == 0) {\n          uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);\n          *param_6 = uVar7;\n          local_ac = 1;\n          iVar3 = local_ac;\n        }\n      }\n      else {\n        iVar3 = local_ac;\n        local_a0 = pcVar16;\n        if (local_ac == 0) {\n          if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_0017a527;\n    }\nLAB_0017a368:\n    if (puVar5[0xd] == 0) {\n      local_ac = FUN_0017a177(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0);\n    }\n  }\n  else {\nLAB_0017a364:\n    if (local_ac == 0) goto LAB_0017a368;\n  }" if (parenthesized_expression "(local_ac == 0)" ( (binary_expression "local_ac == 0" identifier == number_literal) )) (compound_statement "{\n    iVar2 = FUN_0012ad85(uVar7,&DAT_001f3ddb);\n    if (iVar2 == 0) {\n      uVar7 = FUN_001776d2("reserved fts5 table name: %s",uVar7);\n      *param_6 = uVar7;\n      local_ac = 1;\n      goto LAB_0017a364;\n    }\n    if (3 < param_3) {\n      lVar6 = 4;\n      local_c8 = -1;\nLAB_0017a558:\n      uVar7 = *(undefined8 *)(param_4 + -8 + lVar6 * 8);\n      local_a0 = (char *)0x0;\n      local_98 = (char *)0x0;\n      local_a8 = 0;\n      uVar8 = FUN_0014c842(&local_ac,uVar7,&local_a0,&local_a8);\n      pcVar17 = (char *)FUN_0013465f(uVar8);\n      iVar2 = iVar4;\n      if ((pcVar17 != (char *)0x0) && (*pcVar17 == '=')) {\n        if (local_a8 == 0) {\n          pcVar17 = pcVar17 + 1;\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = 1;\n          pcVar17 = (char *)0x0;\n        }\n      }\n      pcVar17 = (char *)FUN_0013465f(pcVar17);\n      if ((pcVar17 == (char *)0x0) ||\n         ((pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))))) {\n        iVar3 = local_ac;\n        if (local_ac == 0) {\n          uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);\n          *param_6 = uVar7;\n          local_ac = 1;\n          iVar3 = local_ac;\n        }\n      }\n      else {\n        iVar3 = local_ac;\n        local_a0 = pcVar16;\n        if (local_ac == 0) {\n          if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_0017a527;\n    }\nLAB_0017a368:\n    if (puVar5[0xd] == 0) {\n      local_ac = FUN_0017a177(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0);\n    }\n  }" { (expression_statement "iVar2 = FUN_0012ad85(uVar7,&DAT_001f3ddb);" (assignment_expression "iVar2 = FUN_0012ad85(uVar7,&DAT_001f3ddb)" identifier = (call_expression "FUN_0012ad85(uVar7,&DAT_001f3ddb)" identifier (argument_list "(uVar7,&DAT_001f3ddb)" ( identifier , (pointer_expression "&DAT_001f3ddb" & identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n      uVar7 = FUN_001776d2("reserved fts5 table name: %s",uVar7);\n      *param_6 = uVar7;\n      local_ac = 1;\n      goto LAB_0017a364;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar7 = FUN_001776d2("reserved fts5 table name: %s",uVar7);\n      *param_6 = uVar7;\n      local_ac = 1;\n      goto LAB_0017a364;\n    }" { (expression_statement "uVar7 = FUN_001776d2("reserved fts5 table name: %s",uVar7);" (assignment_expression "uVar7 = FUN_001776d2("reserved fts5 table name: %s",uVar7)" identifier = (call_expression "FUN_001776d2("reserved fts5 table name: %s",uVar7)" identifier (argument_list "("reserved fts5 table name: %s",uVar7)" ( (string_literal ""reserved fts5 table name: %s"" " string_content ") , identifier )))) ;) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "local_ac = 1;" (assignment_expression "local_ac = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0017a364;" goto statement_identifier ;) })) (if_statement "if (3 < param_3) {\n      lVar6 = 4;\n      local_c8 = -1;\nLAB_0017a558:\n      uVar7 = *(undefined8 *)(param_4 + -8 + lVar6 * 8);\n      local_a0 = (char *)0x0;\n      local_98 = (char *)0x0;\n      local_a8 = 0;\n      uVar8 = FUN_0014c842(&local_ac,uVar7,&local_a0,&local_a8);\n      pcVar17 = (char *)FUN_0013465f(uVar8);\n      iVar2 = iVar4;\n      if ((pcVar17 != (char *)0x0) && (*pcVar17 == '=')) {\n        if (local_a8 == 0) {\n          pcVar17 = pcVar17 + 1;\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = 1;\n          pcVar17 = (char *)0x0;\n        }\n      }\n      pcVar17 = (char *)FUN_0013465f(pcVar17);\n      if ((pcVar17 == (char *)0x0) ||\n         ((pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))))) {\n        iVar3 = local_ac;\n        if (local_ac == 0) {\n          uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);\n          *param_6 = uVar7;\n          local_ac = 1;\n          iVar3 = local_ac;\n        }\n      }\n      else {\n        iVar3 = local_ac;\n        local_a0 = pcVar16;\n        if (local_ac == 0) {\n          if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_0017a527;\n    }" if (parenthesized_expression "(3 < param_3)" ( (binary_expression "3 < param_3" number_literal < identifier) )) (compound_statement "{\n      lVar6 = 4;\n      local_c8 = -1;\nLAB_0017a558:\n      uVar7 = *(undefined8 *)(param_4 + -8 + lVar6 * 8);\n      local_a0 = (char *)0x0;\n      local_98 = (char *)0x0;\n      local_a8 = 0;\n      uVar8 = FUN_0014c842(&local_ac,uVar7,&local_a0,&local_a8);\n      pcVar17 = (char *)FUN_0013465f(uVar8);\n      iVar2 = iVar4;\n      if ((pcVar17 != (char *)0x0) && (*pcVar17 == '=')) {\n        if (local_a8 == 0) {\n          pcVar17 = pcVar17 + 1;\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = 1;\n          pcVar17 = (char *)0x0;\n        }\n      }\n      pcVar17 = (char *)FUN_0013465f(pcVar17);\n      if ((pcVar17 == (char *)0x0) ||\n         ((pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))))) {\n        iVar3 = local_ac;\n        if (local_ac == 0) {\n          uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);\n          *param_6 = uVar7;\n          local_ac = 1;\n          iVar3 = local_ac;\n        }\n      }\n      else {\n        iVar3 = local_ac;\n        local_a0 = pcVar16;\n        if (local_ac == 0) {\n          if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_0017a527;\n    }" { (expression_statement "lVar6 = 4;" (assignment_expression "lVar6 = 4" identifier = number_literal) ;) (expression_statement "local_c8 = -1;" (assignment_expression "local_c8 = -1" identifier = number_literal) ;) (labeled_statement "LAB_0017a558:\n      uVar7 = *(undefined8 *)(param_4 + -8 + lVar6 * 8);" statement_identifier : (expression_statement "uVar7 = *(undefined8 *)(param_4 + -8 + lVar6 * 8);" (assignment_expression "uVar7 = *(undefined8 *)(param_4 + -8 + lVar6 * 8)" identifier = (pointer_expression "*(undefined8 *)(param_4 + -8 + lVar6 * 8)" * (cast_expression "(undefined8 *)(param_4 + -8 + lVar6 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + -8 + lVar6 * 8)" ( (binary_expression "param_4 + -8 + lVar6 * 8" (binary_expression "param_4 + -8" identifier + number_literal) + (binary_expression "lVar6 * 8" identifier * number_literal)) ))))) ;)) (expression_statement "local_a0 = (char *)0x0;" (assignment_expression "local_a0 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_98 = (char *)0x0;" (assignment_expression "local_98 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = FUN_0014c842(&local_ac,uVar7,&local_a0,&local_a8);" (assignment_expression "uVar8 = FUN_0014c842(&local_ac,uVar7,&local_a0,&local_a8)" identifier = (call_expression "FUN_0014c842(&local_ac,uVar7,&local_a0,&local_a8)" identifier (argument_list "(&local_ac,uVar7,&local_a0,&local_a8)" ( (pointer_expression "&local_ac" & identifier) , identifier , (pointer_expression "&local_a0" & identifier) , (pointer_expression "&local_a8" & identifier) )))) ;) (expression_statement "pcVar17 = (char *)FUN_0013465f(uVar8);" (assignment_expression "pcVar17 = (char *)FUN_0013465f(uVar8)" identifier = (cast_expression "(char *)FUN_0013465f(uVar8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0013465f(uVar8)" identifier (argument_list "(uVar8)" ( identifier ))))) ;) (expression_statement "iVar2 = iVar4;" (assignment_expression "iVar2 = iVar4" identifier = identifier) ;) (if_statement "if ((pcVar17 != (char *)0x0) && (*pcVar17 == '=')) {\n        if (local_a8 == 0) {\n          pcVar17 = pcVar17 + 1;\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = 1;\n          pcVar17 = (char *)0x0;\n        }\n      }" if (parenthesized_expression "((pcVar17 != (char *)0x0) && (*pcVar17 == '='))" ( (binary_expression "(pcVar17 != (char *)0x0) && (*pcVar17 == '=')" (parenthesized_expression "(pcVar17 != (char *)0x0)" ( (binary_expression "pcVar17 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*pcVar17 == '=')" ( (binary_expression "*pcVar17 == '='" (pointer_expression "*pcVar17" * identifier) == (char_literal "'='" ' character ')) ))) )) (compound_statement "{\n        if (local_a8 == 0) {\n          pcVar17 = pcVar17 + 1;\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = 1;\n          pcVar17 = (char *)0x0;\n        }\n      }" { (if_statement "if (local_a8 == 0) {\n          pcVar17 = pcVar17 + 1;\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = 1;\n          pcVar17 = (char *)0x0;\n        }" if (parenthesized_expression "(local_a8 == 0)" ( (binary_expression "local_a8 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar17 = pcVar17 + 1;\n          iVar2 = 1;\n        }" { (expression_statement "pcVar17 = pcVar17 + 1;" (assignment_expression "pcVar17 = pcVar17 + 1" identifier = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }) (else_clause "else {\n          iVar2 = 1;\n          pcVar17 = (char *)0x0;\n        }" else (compound_statement "{\n          iVar2 = 1;\n          pcVar17 = (char *)0x0;\n        }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (expression_statement "pcVar17 = (char *)0x0;" (assignment_expression "pcVar17 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) })) (expression_statement "pcVar17 = (char *)FUN_0013465f(pcVar17);" (assignment_expression "pcVar17 = (char *)FUN_0013465f(pcVar17)" identifier = (cast_expression "(char *)FUN_0013465f(pcVar17)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0013465f(pcVar17)" identifier (argument_list "(pcVar17)" ( identifier ))))) ;) (if_statement "if ((pcVar17 == (char *)0x0) ||\n         ((pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))))) {\n        iVar3 = local_ac;\n        if (local_ac == 0) {\n          uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);\n          *param_6 = uVar7;\n          local_ac = 1;\n          iVar3 = local_ac;\n        }\n      }\n      else {\n        iVar3 = local_ac;\n        local_a0 = pcVar16;\n        if (local_ac == 0) {\n          if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "((pcVar17 == (char *)0x0) ||\n         ((pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0'))))))" ( (binary_expression "(pcVar17 == (char *)0x0) ||\n         ((pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))))" (parenthesized_expression "(pcVar17 == (char *)0x0)" ( (binary_expression "pcVar17 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))))" ( (parenthesized_expression "(pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0'))))" ( (comma_expression "pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))" (assignment_expression "pcVar16 = local_a0" identifier = identifier) , (binary_expression "*pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))" (binary_expression "*pcVar17 != '\0'" (pointer_expression "*pcVar17" * identifier) != (char_literal "'\0'" ' escape_sequence ')) && (parenthesized_expression "((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))" ( (parenthesized_expression "(pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0'))" ( (comma_expression "pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')" (assignment_expression "pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4)" identifier = (cast_expression "(char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4)" identifier (argument_list "(&local_ac,pcVar17,&local_98,&local_a4)" ( (pointer_expression "&local_ac" & identifier) , identifier , (pointer_expression "&local_98" & identifier) , (pointer_expression "&local_a4" & identifier) ))))) , (binary_expression "pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')" (binary_expression "pcVar17 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(pcVar16 = local_a0, *pcVar17 != '\0')" ( (comma_expression "pcVar16 = local_a0, *pcVar17 != '\0'" (assignment_expression "pcVar16 = local_a0" identifier = identifier) , (binary_expression "*pcVar17 != '\0'" (pointer_expression "*pcVar17" * identifier) != (char_literal "'\0'" ' escape_sequence '))) )))) )) )))) )) ))) )) (compound_statement "{\n        iVar3 = local_ac;\n        if (local_ac == 0) {\n          uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);\n          *param_6 = uVar7;\n          local_ac = 1;\n          iVar3 = local_ac;\n        }\n      }" { (expression_statement "iVar3 = local_ac;" (assignment_expression "iVar3 = local_ac" identifier = identifier) ;) (if_statement "if (local_ac == 0) {\n          uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);\n          *param_6 = uVar7;\n          local_ac = 1;\n          iVar3 = local_ac;\n        }" if (parenthesized_expression "(local_ac == 0)" ( (binary_expression "local_ac == 0" identifier == number_literal) )) (compound_statement "{\n          uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);\n          *param_6 = uVar7;\n          local_ac = 1;\n          iVar3 = local_ac;\n        }" { (expression_statement "uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);" (assignment_expression "uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7)" identifier = (call_expression "FUN_001776d2("parse error in \"%s\"",uVar7)" identifier (argument_list "("parse error in \"%s\"",uVar7)" ( (string_literal ""parse error in \"%s\""" " string_content escape_sequence string_content escape_sequence ") , identifier )))) ;) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "local_ac = 1;" (assignment_expression "local_ac = 1" identifier = number_literal) ;) (expression_statement "iVar3 = local_ac;" (assignment_expression "iVar3 = local_ac" identifier = identifier) ;) })) }) (else_clause "else {\n        iVar3 = local_ac;\n        local_a0 = pcVar16;\n        if (local_ac == 0) {\n          if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" else (compound_statement "{\n        iVar3 = local_ac;\n        local_a0 = pcVar16;\n        if (local_ac == 0) {\n          if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" { (expression_statement "iVar3 = local_ac;" (assignment_expression "iVar3 = local_ac" identifier = identifier) ;) (expression_statement "local_a0 = pcVar16;" (assignment_expression "local_a0 = pcVar16" identifier = identifier) ;) (if_statement "if (local_ac == 0) {\n          if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "(local_ac == 0)" ( (binary_expression "local_ac == 0" identifier == number_literal) )) (compound_statement "{\n          if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" { (if_statement "if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }" { (expression_statement "iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);" (assignment_expression "iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb)" identifier = (call_expression "FUN_0012ad85(pcVar16,&DAT_001f3ddb)" identifier (argument_list "(pcVar16,&DAT_001f3ddb)" ( identifier , (pointer_expression "&DAT_001f3ddb" & identifier) )))) ;) (if_statement "if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }" if (parenthesized_expression "((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0))" ( (binary_expression "(iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)" ( (comma_expression "iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0" (assignment_expression "iVar3 = FUN_0012ad85(pcVar16,"rowid")" identifier = (call_expression "FUN_0012ad85(pcVar16,"rowid")" identifier (argument_list "(pcVar16,"rowid")" ( identifier , (string_literal ""rowid"" " string_content ") )))) , (comma_expression "pcVar17 = local_98, iVar3 == 0" (assignment_expression "pcVar17 = local_98" identifier = identifier) , (binary_expression "iVar3 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }" { (expression_statement "uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);" (assignment_expression "uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16)" identifier = (call_expression "FUN_001776d2("reserved fts5 column name: %s",pcVar16)" identifier (argument_list "("reserved fts5 column name: %s",pcVar16)" ( (string_literal ""reserved fts5 column name: %s"" " string_content ") , identifier )))) ;) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }) (else_clause "else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }" else (if_statement "if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }" if (parenthesized_expression "(local_98 != (char *)0x0)" ( (binary_expression "local_98 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }" { (expression_statement "iVar2 = FUN_0012ad85(local_98,"unindexed");" (assignment_expression "iVar2 = FUN_0012ad85(local_98,"unindexed")" identifier = (call_expression "FUN_0012ad85(local_98,"unindexed")" identifier (argument_list "(local_98,"unindexed")" ( identifier , (string_literal ""unindexed"" " string_content ") )))) ;) (if_statement "if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }" { (expression_statement "*(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;" (assignment_expression "*(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1" (pointer_expression "*(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3))" * (cast_expression "(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5[5] + (long)*(int *)(puVar5 + 3))" ( (binary_expression "puVar5[5] + (long)*(int *)(puVar5 + 3)" (subscript_expression "puVar5[5]" identifier [ number_literal ]) + (cast_expression "(long)*(int *)(puVar5 + 3)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "*(int *)(puVar5 + 3)" * (cast_expression "(int *)(puVar5 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 3)" ( (binary_expression "puVar5 + 3" identifier + number_literal) )))))) )))) = number_literal) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }" else (compound_statement "{\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }" { (expression_statement "uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);" (assignment_expression "uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17)" identifier = (call_expression "FUN_001776d2("unrecognized column option: %s",pcVar17)" identifier (argument_list "("unrecognized column option: %s",pcVar17)" ( (string_literal ""unrecognized column option: %s"" " string_content ") , identifier )))) ;) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }))) })))) (expression_statement "iVar3 = *(int *)(puVar5 + 3);" (assignment_expression "iVar3 = *(int *)(puVar5 + 3)" identifier = (pointer_expression "*(int *)(puVar5 + 3)" * (cast_expression "(int *)(puVar5 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 3)" ( (binary_expression "puVar5 + 3" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar5 + 3) = iVar3 + 1;" (assignment_expression "*(int *)(puVar5 + 3) = iVar3 + 1" (pointer_expression "*(int *)(puVar5 + 3)" * (cast_expression "(int *)(puVar5 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 3)" ( (binary_expression "puVar5 + 3" identifier + number_literal) )))) = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "*(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;" (assignment_expression "*(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16" (pointer_expression "*(char **)(puVar5[4] + (long)iVar3 * 8)" * (cast_expression "(char **)(puVar5[4] + (long)iVar3 * 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5[4] + (long)iVar3 * 8)" ( (binary_expression "puVar5[4] + (long)iVar3 * 8" (subscript_expression "puVar5[4]" identifier [ number_literal ]) + (binary_expression "(long)iVar3 * 8" (cast_expression "(long)iVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) )))) = identifier) ;) (expression_statement "local_a0 = (char *)0x0;" (assignment_expression "local_a0 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar3 = iVar2;" (assignment_expression "iVar3 = iVar2" identifier = identifier) ;) }) (else_clause "else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }" else (compound_statement "{\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }" { (expression_statement "pcVar17 = local_98;" (assignment_expression "pcVar17 = local_98" identifier = identifier) ;) (if_statement "if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }" if (parenthesized_expression "(local_98 == (char *)0x0)" ( (binary_expression "local_98 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pcVar17 = "";\n            }" { (expression_statement "pcVar17 = "";" (assignment_expression "pcVar17 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "local_a4 = 0;" (assignment_expression "local_a4 = 0" identifier = number_literal) ;) (expression_statement "uVar11 = 0xffffffffffffffff;" (assignment_expression "uVar11 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar15 = pcVar16;" (assignment_expression "pcVar15 = pcVar16" identifier = identifier) ;) (do_statement "do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');" do (compound_statement "{\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            }" { (if_statement "if (uVar11 == 0) break;" if (parenthesized_expression "(uVar11 == 0)" ( (binary_expression "uVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar11 = uVar11 - 1;" (assignment_expression "uVar11 = uVar11 - 1" identifier = (binary_expression "uVar11 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar15;" (assignment_expression "cVar1 = *pcVar15" identifier = (pointer_expression "*pcVar15" * identifier)) ;) (expression_statement "pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;" (assignment_expression "pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1" identifier = (binary_expression "pcVar15 + (ulong)bVar18 * -2 + 1" (binary_expression "pcVar15 + (ulong)bVar18 * -2" identifier + (binary_expression "(ulong)bVar18 * -2" (cast_expression "(ulong)bVar18" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "uVar11 = ~uVar11 - 1;" (assignment_expression "uVar11 = ~uVar11 - 1" identifier = (binary_expression "~uVar11 - 1" (unary_expression "~uVar11" ~ identifier) - number_literal)) ;) (expression_statement "iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);" (assignment_expression "iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff)" identifier = (call_expression "FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff)" identifier (argument_list "("prefix",pcVar16,uVar11 & 0xffffffff)" ( (string_literal ""prefix"" " string_content ") , identifier , (binary_expression "uVar11 & 0xffffffff" identifier & number_literal) )))) ;) (if_statement "if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }" { (if_statement "if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }" if (parenthesized_expression "(puVar5[7] != 0)" ( (binary_expression "puVar5[7] != 0" (subscript_expression "puVar5[7]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }" { (labeled_statement "LAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );" statement_identifier : (do_statement "do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );" do (compound_statement "{\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                }" { (expression_statement "cVar1 = *pcVar17;" (assignment_expression "cVar1 = *pcVar17" identifier = (pointer_expression "*pcVar17" * identifier)) ;) (while_statement "while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }" while (parenthesized_expression "(cVar1 == ' ')" ( (binary_expression "cVar1 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }" { (expression_statement "pcVar17 = pcVar17 + 1;" (assignment_expression "pcVar17 = pcVar17 + 1" identifier = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar17;" (assignment_expression "cVar1 = *pcVar17" identifier = (pointer_expression "*pcVar17" * identifier)) ;) })) (if_statement "if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }" if (parenthesized_expression "((cVar1 == ',') && (iVar2 == 0))" ( (binary_expression "(cVar1 == ',') && (iVar2 == 0)" (parenthesized_expression "(cVar1 == ',')" ( (binary_expression "cVar1 == ','" identifier == (char_literal "','" ' character ')) )) && (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) ))) )) (compound_statement "{\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }" { (expression_statement "cVar1 = pcVar17[1];" (assignment_expression "cVar1 = pcVar17[1]" identifier = (subscript_expression "pcVar17[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar17 = pcVar17 + 1;" (assignment_expression "pcVar17 = pcVar17 + 1" identifier = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;) (while_statement "while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }" while (parenthesized_expression "(cVar1 == ' ')" ( (binary_expression "cVar1 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }" { (expression_statement "pcVar17 = pcVar17 + 1;" (assignment_expression "pcVar17 = pcVar17 + 1" identifier = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar17;" (assignment_expression "cVar1 = *pcVar17" identifier = (pointer_expression "*pcVar17" * identifier)) ;) })) }) (else_clause "else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }" else (compound_statement "{\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }" { (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" identifier = identifier) ;) (if_statement "if (cVar1 == '\0') goto LAB_0017a527;" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0017a527;" goto statement_identifier ;)) }))) (expression_statement "cVar1 = *pcVar17;" (assignment_expression "cVar1 = *pcVar17" identifier = (pointer_expression "*pcVar17" * identifier)) ;) (if_statement "if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }" if (parenthesized_expression "(9 < (byte)(cVar1 - 0x30U))" ( (binary_expression "9 < (byte)(cVar1 - 0x30U)" number_literal < (call_expression "(byte)(cVar1 - 0x30U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar1 - 0x30U)" ( (binary_expression "cVar1 - 0x30U" identifier - number_literal) )))) )) (compound_statement "{\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }" { (expression_statement "uVar7 = FUN_001776d2("malformed prefix=... directive");" (assignment_expression "uVar7 = FUN_001776d2("malformed prefix=... directive")" identifier = (call_expression "FUN_001776d2("malformed prefix=... directive")" identifier (argument_list "("malformed prefix=... directive")" ( (string_literal ""malformed prefix=... directive"" " string_content ") )))) ;) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "local_a4 = 1;" (assignment_expression "local_a4 = 1" identifier = number_literal) ;) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" identifier = identifier) ;) (goto_statement "goto LAB_0017a527;" goto statement_identifier ;) })) (if_statement "if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }" if (parenthesized_expression "(*(int *)(puVar5 + 6) == 0x1f)" ( (binary_expression "*(int *)(puVar5 + 6) == 0x1f" (pointer_expression "*(int *)(puVar5 + 6)" * (cast_expression "(int *)(puVar5 + 6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 6)" ( (binary_expression "puVar5 + 6" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }" { (expression_statement "uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);" (assignment_expression "uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f)" identifier = (call_expression "FUN_001776d2("too many prefix indexes (max %d)",0x1f)" identifier (argument_list "("too many prefix indexes (max %d)",0x1f)" ( (string_literal ""too many prefix indexes (max %d)"" " string_content ") , number_literal )))) ;) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "local_a4 = 1;" (assignment_expression "local_a4 = 1" identifier = number_literal) ;) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" identifier = identifier) ;) (goto_statement "goto LAB_0017a527;" goto statement_identifier ;) })) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (do_statement "do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);" do (compound_statement "{\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  }" { (expression_statement "iVar2 = cVar1 + -0x30 + iVar2 * 10;" (assignment_expression "iVar2 = cVar1 + -0x30 + iVar2 * 10" identifier = (binary_expression "cVar1 + -0x30 + iVar2 * 10" (binary_expression "cVar1 + -0x30" identifier + number_literal) + (binary_expression "iVar2 * 10" identifier * number_literal))) ;) (expression_statement "pcVar17 = pcVar17 + 1;" (assignment_expression "pcVar17 = pcVar17 + 1" identifier = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar17;" (assignment_expression "cVar1 = *pcVar17" identifier = (pointer_expression "*pcVar17" * identifier)) ;) (if_statement "if (9 < (byte)(cVar1 - 0x30U)) break;" if (parenthesized_expression "(9 < (byte)(cVar1 - 0x30U))" ( (binary_expression "9 < (byte)(cVar1 - 0x30U)" number_literal < (call_expression "(byte)(cVar1 - 0x30U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar1 - 0x30U)" ( (binary_expression "cVar1 - 0x30U" identifier - number_literal) )))) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "(iVar2 < 1000)" ( (binary_expression "iVar2 < 1000" identifier < number_literal) )) ;) (if_statement "if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;" if (parenthesized_expression "(0x3e6 < iVar2 - 1U)" ( (binary_expression "0x3e6 < iVar2 - 1U" number_literal < (binary_expression "iVar2 - 1U" identifier - number_literal)) )) (goto_statement "goto LAB_0017a6fb;" goto statement_identifier ;)) (expression_statement "*(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;" (assignment_expression "*(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2" (pointer_expression "*(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4)" * (cast_expression "(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4)" ( (binary_expression "puVar5[7] + (long)*(int *)(puVar5 + 6) * 4" (subscript_expression "puVar5[7]" identifier [ number_literal ]) + (binary_expression "(long)*(int *)(puVar5 + 6) * 4" (cast_expression "(long)*(int *)(puVar5 + 6)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "*(int *)(puVar5 + 6)" * (cast_expression "(int *)(puVar5 + 6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 6)" ( (binary_expression "puVar5 + 6" identifier + number_literal) ))))) * number_literal)) )))) = identifier) ;) (expression_statement "*(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;" (assignment_expression "*(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1" (pointer_expression "*(int *)(puVar5 + 6)" * (cast_expression "(int *)(puVar5 + 6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 6)" ( (binary_expression "puVar5 + 6" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar5 + 6) + 1" (pointer_expression "*(int *)(puVar5 + 6)" * (cast_expression "(int *)(puVar5 + 6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 6)" ( (binary_expression "puVar5 + 6" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) })) (expression_statement "uVar7 = FUN_0014bc1d(&local_a4,0x7c);" (assignment_expression "uVar7 = FUN_0014bc1d(&local_a4,0x7c)" identifier = (call_expression "FUN_0014bc1d(&local_a4,0x7c)" identifier (argument_list "(&local_a4,0x7c)" ( (pointer_expression "&local_a4" & identifier) , number_literal )))) ;) (expression_statement "puVar5[7] = uVar7;" (assignment_expression "puVar5[7] = uVar7" (subscript_expression "puVar5[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" identifier = identifier) ;) (if_statement "if (local_a4 == 0) goto LAB_0017a68f;" if (parenthesized_expression "(local_a4 == 0)" ( (binary_expression "local_a4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0017a68f;" goto statement_identifier ;)) }) (else_clause "else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }" else (compound_statement "{\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }" { (expression_statement "iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);" (assignment_expression "iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff)" identifier = (call_expression "FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff)" identifier (argument_list "("tokenize",pcVar16,uVar11 & 0xffffffff)" ( (string_literal ""tokenize"" " string_content ") , identifier , (binary_expression "uVar11 & 0xffffffff" identifier & number_literal) )))) ;) (if_statement "if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }" { (expression_statement "uVar11 = 0xffffffffffffffff;" (assignment_expression "uVar11 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar16 = pcVar17;" (assignment_expression "pcVar16 = pcVar17" identifier = identifier) ;) (do_statement "do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');" do (compound_statement "{\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                }" { (if_statement "if (uVar11 == 0) break;" if (parenthesized_expression "(uVar11 == 0)" ( (binary_expression "uVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar11 = uVar11 - 1;" (assignment_expression "uVar11 = uVar11 - 1" identifier = (binary_expression "uVar11 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar16;" (assignment_expression "cVar1 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) (expression_statement "pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;" (assignment_expression "pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1" identifier = (binary_expression "pcVar16 + (ulong)bVar18 * -2 + 1" (binary_expression "pcVar16 + (ulong)bVar18 * -2" identifier + (binary_expression "(ulong)bVar18 * -2" (cast_expression "(ulong)bVar18" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);" (assignment_expression "lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8)" identifier = (call_expression "FUN_0014bc1d(&local_a4,~uVar11 * 8)" identifier (argument_list "(&local_a4,~uVar11 * 8)" ( (pointer_expression "&local_a4" & identifier) , (binary_expression "~uVar11 * 8" (unary_expression "~uVar11" ~ identifier) * number_literal) )))) ;) (expression_statement "pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);" (assignment_expression "pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2)" identifier = (cast_expression "(void *)FUN_0014bc1d(&local_a4,~uVar11 * 2)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0014bc1d(&local_a4,~uVar11 * 2)" identifier (argument_list "(&local_a4,~uVar11 * 2)" ( (pointer_expression "&local_a4" & identifier) , (binary_expression "~uVar11 * 2" (unary_expression "~uVar11" ~ identifier) * number_literal) ))))) ;) (if_statement "if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }" if (parenthesized_expression "((lVar12 != 0) && (pvVar9 != (void *)0x0))" ( (binary_expression "(lVar12 != 0) && (pvVar9 != (void *)0x0)" (parenthesized_expression "(lVar12 != 0)" ( (binary_expression "lVar12 != 0" identifier != number_literal) )) && (parenthesized_expression "(pvVar9 != (void *)0x0)" ( (binary_expression "pvVar9 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }" { (if_statement "if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }" if (parenthesized_expression "(puVar5[0xd] == 0)" ( (binary_expression "puVar5[0xd] == 0" (subscript_expression "puVar5[0xd]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }" if (parenthesized_expression "(*pcVar17 != '\0')" ( (binary_expression "*pcVar17 != '\0'" (pointer_expression "*pcVar17" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "__dest = pvVar9;" (assignment_expression "__dest = pvVar9" identifier = identifier) ;) (do_statement "do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');" do (compound_statement "{\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      }" { (expression_statement "pcVar17 = (char *)FUN_0013465f(pcVar17);" (assignment_expression "pcVar17 = (char *)FUN_0013465f(pcVar17)" identifier = (cast_expression "(char *)FUN_0013465f(pcVar17)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0013465f(pcVar17)" identifier (argument_list "(pcVar17)" ( identifier ))))) ;) (if_statement "if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }" if (parenthesized_expression "(*pcVar17 == '\'')" ( (binary_expression "*pcVar17 == '\''" (pointer_expression "*pcVar17" * identifier) == (char_literal "'\''" ' escape_sequence ')) )) (compound_statement "{\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }" { (expression_statement "lVar10 = FUN_0013e006(pcVar17);" (assignment_expression "lVar10 = FUN_0013e006(pcVar17)" identifier = (call_expression "FUN_0013e006(pcVar17)" identifier (argument_list "(pcVar17)" ( identifier )))) ;) }) (else_clause "else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }" else (compound_statement "{\n                          lVar10 = FUN_00134676(pcVar17);\n                        }" { (expression_statement "lVar10 = FUN_00134676(pcVar17);" (assignment_expression "lVar10 = FUN_00134676(pcVar17)" identifier = (call_expression "FUN_00134676(pcVar17)" identifier (argument_list "(pcVar17)" ( identifier )))) ;) }))) (if_statement "if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }" { (labeled_statement "LAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");" statement_identifier : (expression_statement "uVar7 = FUN_001776d2("parse error in tokenize directive");" (assignment_expression "uVar7 = FUN_001776d2("parse error in tokenize directive")" identifier = (call_expression "FUN_001776d2("parse error in tokenize directive")" identifier (argument_list "("parse error in tokenize directive")" ( (string_literal ""parse error in tokenize directive"" " string_content ") )))) ;)) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "local_a4 = 1;" (assignment_expression "local_a4 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0017a842;" goto statement_identifier ;) })) (expression_statement "memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);" (call_expression "memcpy(__dest,pcVar17,lVar10 - (long)pcVar17)" identifier (argument_list "(__dest,pcVar17,lVar10 - (long)pcVar17)" ( identifier , identifier , (binary_expression "lVar10 - (long)pcVar17" identifier - (cast_expression "(long)pcVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ;) (expression_statement "*(void **)(lVar12 + uVar11 * 8) = __dest;" (assignment_expression "*(void **)(lVar12 + uVar11 * 8) = __dest" (pointer_expression "*(void **)(lVar12 + uVar11 * 8)" * (cast_expression "(void **)(lVar12 + uVar11 * 8)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar12 + uVar11 * 8)" ( (binary_expression "lVar12 + uVar11 * 8" identifier + (binary_expression "uVar11 * 8" identifier * number_literal)) )))) = identifier) ;) (expression_statement "FUN_00134700(__dest);" (call_expression "FUN_00134700(__dest)" identifier (argument_list "(__dest)" ( identifier ))) ;) (expression_statement "__dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);" (assignment_expression "__dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U)" identifier = (cast_expression "(void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__dest + (lVar10 - (long)pcVar17) + 1U)" ( (binary_expression "(long)__dest + (lVar10 - (long)pcVar17) + 1U" (binary_expression "(long)__dest + (lVar10 - (long)pcVar17)" (cast_expression "(long)__dest" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(lVar10 - (long)pcVar17)" ( (binary_expression "lVar10 - (long)pcVar17" identifier - (cast_expression "(long)pcVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) + number_literal) )))) ;) (expression_statement "pcVar17 = (char *)FUN_0013465f(lVar10);" (assignment_expression "pcVar17 = (char *)FUN_0013465f(lVar10)" identifier = (cast_expression "(char *)FUN_0013465f(lVar10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0013465f(lVar10)" identifier (argument_list "(lVar10)" ( identifier ))))) ;) (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (if_statement "if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;" if (parenthesized_expression "(pcVar17 == (char *)0x0)" ( (binary_expression "pcVar17 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0017a8ef;" goto statement_identifier ;)) }) while (parenthesized_expression "(*pcVar17 != '\0')" ( (binary_expression "*pcVar17 != '\0'" (pointer_expression "*pcVar17" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) ;) })) (expression_statement "local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);" (assignment_expression "local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6)" identifier = (call_expression "FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6)" identifier (argument_list "(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6)" ( identifier , identifier , (binary_expression "uVar11 & 0xffffffff" identifier & number_literal) , (binary_expression "puVar5 + 0xd" identifier + number_literal) , (binary_expression "puVar5 + 0xe" identifier + number_literal) , identifier )))) ;) }) (else_clause "else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }" else (compound_statement "{\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }" { (expression_statement "uVar7 = FUN_001776d2("multiple tokenize=... directives");" (assignment_expression "uVar7 = FUN_001776d2("multiple tokenize=... directives")" identifier = (call_expression "FUN_001776d2("multiple tokenize=... directives")" identifier (argument_list "("multiple tokenize=... directives")" ( (string_literal ""multiple tokenize=... directives"" " string_content ") )))) ;) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "local_a4 = 1;" (assignment_expression "local_a4 = 1" identifier = number_literal) ;) }))) })) (labeled_statement "LAB_0017a842:\n                FUN_00141303(lVar12);" statement_identifier : (expression_statement "FUN_00141303(lVar12);" (call_expression "FUN_00141303(lVar12)" identifier (argument_list "(lVar12)" ( identifier ))) ;)) (expression_statement "FUN_00141303(pvVar9);" (call_expression "FUN_00141303(pvVar9)" identifier (argument_list "(pvVar9)" ( identifier ))) ;) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" identifier = identifier) ;) }) (else_clause "else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }" else (compound_statement "{\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }" { (expression_statement "iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);" (assignment_expression "iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff)" identifier = (call_expression "FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff)" identifier (argument_list "("content",pcVar16,uVar11 & 0xffffffff)" ( (string_literal ""content"" " string_content ") , identifier , (binary_expression "uVar11 & 0xffffffff" identifier & number_literal) )))) ;) (if_statement "if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }" { (if_statement "if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }" if (parenthesized_expression "(*(int *)(puVar5 + 8) == 0)" ( (binary_expression "*(int *)(puVar5 + 8) == 0" (pointer_expression "*(int *)(puVar5 + 8)" * (cast_expression "(int *)(puVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 8)" ( (binary_expression "puVar5 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }" { (if_statement "if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }" if (parenthesized_expression "(*pcVar17 == '\0')" ( (binary_expression "*pcVar17 == '\0'" (pointer_expression "*pcVar17" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }" { (expression_statement "*(undefined4 *)(puVar5 + 8) = 1;" (assignment_expression "*(undefined4 *)(puVar5 + 8) = 1" (pointer_expression "*(undefined4 *)(puVar5 + 8)" * (cast_expression "(undefined4 *)(puVar5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 8)" ( (binary_expression "puVar5 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" identifier = identifier) ;) }) (else_clause "else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }" else (compound_statement "{\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }" { (expression_statement "*(undefined4 *)(puVar5 + 8) = 2;" (assignment_expression "*(undefined4 *)(puVar5 + 8) = 2" (pointer_expression "*(undefined4 *)(puVar5 + 8)" * (cast_expression "(undefined4 *)(puVar5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 8)" ( (binary_expression "puVar5 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);" (assignment_expression "uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17)" identifier = (call_expression "FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17)" identifier (argument_list "(&local_a4,"%Q.%Q",puVar5[1],pcVar17)" ( (pointer_expression "&local_a4" & identifier) , (string_literal ""%Q.%Q"" " string_content ") , (subscript_expression "puVar5[1]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "puVar5[9] = uVar7;" (assignment_expression "puVar5[9] = uVar7" (subscript_expression "puVar5[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" identifier = identifier) ;) }))) }) (else_clause "else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }" else (compound_statement "{\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }" { (expression_statement "uVar7 = FUN_001776d2("multiple content=... directives");" (assignment_expression "uVar7 = FUN_001776d2("multiple content=... directives")" identifier = (call_expression "FUN_001776d2("multiple content=... directives")" identifier (argument_list "("multiple content=... directives")" ( (string_literal ""multiple content=... directives"" " string_content ") )))) ;) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "local_a4 = 1;" (assignment_expression "local_a4 = 1" identifier = number_literal) ;) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" identifier = identifier) ;) }))) }) (else_clause "else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }" else (compound_statement "{\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }" { (expression_statement "iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);" (assignment_expression "iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff)" identifier = (call_expression "FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff)" identifier (argument_list "("content_rowid",pcVar16,uVar11 & 0xffffffff)" ( (string_literal ""content_rowid"" " string_content ") , identifier , (binary_expression "uVar11 & 0xffffffff" identifier & number_literal) )))) ;) (if_statement "if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }" { (if_statement "if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }" if (parenthesized_expression "(puVar5[10] == 0)" ( (binary_expression "puVar5[10] == 0" (subscript_expression "puVar5[10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }" { (expression_statement "uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);" (assignment_expression "uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff)" identifier = (call_expression "FUN_0014b209(&local_a4,pcVar17,0xffffffff)" identifier (argument_list "(&local_a4,pcVar17,0xffffffff)" ( (pointer_expression "&local_a4" & identifier) , identifier , number_literal )))) ;) (expression_statement "puVar5[10] = uVar7;" (assignment_expression "puVar5[10] = uVar7" (subscript_expression "puVar5[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" identifier = identifier) ;) }) (else_clause "else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }" else (compound_statement "{\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }" { (expression_statement "uVar7 = FUN_001776d2("multiple content_rowid=... directives");" (assignment_expression "uVar7 = FUN_001776d2("multiple content_rowid=... directives")" identifier = (call_expression "FUN_001776d2("multiple content_rowid=... directives")" identifier (argument_list "("multiple content_rowid=... directives")" ( (string_literal ""multiple content_rowid=... directives"" " string_content ") )))) ;) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "local_a4 = 1;" (assignment_expression "local_a4 = 1" identifier = number_literal) ;) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" identifier = identifier) ;) }))) }) (else_clause "else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }" else (compound_statement "{\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }" { (expression_statement "iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);" (assignment_expression "iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff)" identifier = (call_expression "FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff)" identifier (argument_list "("columnsize",pcVar16,uVar11 & 0xffffffff)" ( (string_literal ""columnsize"" " string_content ") , identifier , (binary_expression "uVar11 & 0xffffffff" identifier & number_literal) )))) ;) (if_statement "if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }" { (if_statement "if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }" if (parenthesized_expression "(((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0'))" ( (binary_expression "((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')" (parenthesized_expression "((byte)(*pcVar17 - 0x30U) < 2)" ( (binary_expression "(byte)(*pcVar17 - 0x30U) < 2" (call_expression "(byte)(*pcVar17 - 0x30U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*pcVar17 - 0x30U)" ( (binary_expression "*pcVar17 - 0x30U" (pointer_expression "*pcVar17" * identifier) - number_literal) ))) < number_literal) )) && (parenthesized_expression "(pcVar17[1] == '\0')" ( (binary_expression "pcVar17[1] == '\0'" (subscript_expression "pcVar17[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }" { (expression_statement "*(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');" (assignment_expression "*(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1')" (pointer_expression "*(uint *)(puVar5 + 0xb)" * (cast_expression "(uint *)(puVar5 + 0xb)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0xb)" ( (binary_expression "puVar5 + 0xb" identifier + number_literal) )))) = (call_expression "(uint)(*pcVar17 == '1')" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*pcVar17 == '1')" ( (binary_expression "*pcVar17 == '1'" (pointer_expression "*pcVar17" * identifier) == (char_literal "'1'" ' character ')) )))) ;) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" identifier = identifier) ;) }) (else_clause "else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }" else (compound_statement "{\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }" { (expression_statement "uVar7 = FUN_001776d2("malformed columnsize=... directive");" (assignment_expression "uVar7 = FUN_001776d2("malformed columnsize=... directive")" identifier = (call_expression "FUN_001776d2("malformed columnsize=... directive")" identifier (argument_list "("malformed columnsize=... directive")" ( (string_literal ""malformed columnsize=... directive"" " string_content ") )))) ;) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "local_a4 = 1;" (assignment_expression "local_a4 = 1" identifier = number_literal) ;) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" identifier = identifier) ;) }))) }) (else_clause "else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }" else (compound_statement "{\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }" { (expression_statement "iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);" (assignment_expression "iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff)" identifier = (call_expression "FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff)" identifier (argument_list "("detail",pcVar16,uVar11 & 0xffffffff)" ( (string_literal ""detail"" " string_content ") , identifier , (binary_expression "uVar11 & 0xffffffff" identifier & number_literal) )))) ;) (if_statement "if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }" { (expression_statement "local_88 = "none";" (assignment_expression "local_88 = "none"" identifier = (string_literal ""none"" " string_content ")) ;) (expression_statement "local_80[0] = 1;" (assignment_expression "local_80[0] = 1" (subscript_expression "local_80[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_78 = "full";" (assignment_expression "local_78 = "full"" identifier = (string_literal ""full"" " string_content ")) ;) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (expression_statement "local_68 = "columns";" (assignment_expression "local_68 = "columns"" identifier = (string_literal ""columns"" " string_content ")) ;) (expression_statement "local_60 = 2;" (assignment_expression "local_60 = 2" identifier = number_literal) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "lVar12 = -1;" (assignment_expression "lVar12 = -1" identifier = number_literal) ;) (expression_statement "pcVar16 = pcVar17;" (assignment_expression "pcVar16 = pcVar17" identifier = identifier) ;) (do_statement "do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');" do (compound_statement "{\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        }" { (if_statement "if (lVar12 == 0) break;" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar12 = lVar12 + -1;" (assignment_expression "lVar12 = lVar12 + -1" identifier = (binary_expression "lVar12 + -1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar16;" (assignment_expression "cVar1 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) (expression_statement "pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;" (assignment_expression "pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1" identifier = (binary_expression "pcVar16 + (ulong)bVar18 * -2 + 1" (binary_expression "pcVar16 + (ulong)bVar18 * -2" identifier + (binary_expression "(ulong)bVar18 * -2" (cast_expression "(ulong)bVar18" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "pcVar16 = "none";" (assignment_expression "pcVar16 = "none"" identifier = (string_literal ""none"" " string_content ")) ;) (expression_statement "ppcVar13 = &local_78;" (assignment_expression "ppcVar13 = &local_78" identifier = (pointer_expression "&local_78" & identifier)) ;) (expression_statement "iVar2 = local_c8;" (assignment_expression "iVar2 = local_c8" identifier = identifier) ;) (do_statement "do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);" do (compound_statement "{\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        }" { (expression_statement "iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);" (assignment_expression "iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1)" identifier = (call_expression "FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1)" identifier (argument_list "(pcVar16,pcVar17,~(uint)lVar12 - 1)" ( identifier , identifier , (binary_expression "~(uint)lVar12 - 1" (unary_expression "~(uint)lVar12" ~ (cast_expression "(uint)lVar12" ( (type_descriptor "uint" type_identifier) ) identifier)) - number_literal) )))) ;) (if_statement "if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }" { (if_statement "if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }" if (parenthesized_expression "(-1 < iVar2)" ( (binary_expression "-1 < iVar2" number_literal < identifier) )) (compound_statement "{\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }" { (expression_statement "local_a4 = 1;" (assignment_expression "local_a4 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0017ab15;" goto statement_identifier ;) })) (expression_statement "iVar2 = *(int *)(ppcVar13 + -1);" (assignment_expression "iVar2 = *(int *)(ppcVar13 + -1)" identifier = (pointer_expression "*(int *)(ppcVar13 + -1)" * (cast_expression "(int *)(ppcVar13 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppcVar13 + -1)" ( (binary_expression "ppcVar13 + -1" identifier + number_literal) ))))) ;) })) (expression_statement "pcVar16 = *ppcVar13;" (assignment_expression "pcVar16 = *ppcVar13" identifier = (pointer_expression "*ppcVar13" * identifier)) ;) (expression_statement "ppcVar13 = ppcVar13 + 2;" (assignment_expression "ppcVar13 = ppcVar13 + 2" identifier = (binary_expression "ppcVar13 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(pcVar16 != (char *)0x0)" ( (binary_expression "pcVar16 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "*(int *)((long)puVar5 + 0x5c) = iVar2;" (assignment_expression "*(int *)((long)puVar5 + 0x5c) = iVar2" (pointer_expression "*(int *)((long)puVar5 + 0x5c)" * (cast_expression "(int *)((long)puVar5 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar5 + 0x5c)" ( (binary_expression "(long)puVar5 + 0x5c" (cast_expression "(long)puVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_a4 = -(iVar2 >> 0x1f);" (assignment_expression "local_a4 = -(iVar2 >> 0x1f)" identifier = (unary_expression "-(iVar2 >> 0x1f)" - (parenthesized_expression "(iVar2 >> 0x1f)" ( (binary_expression "iVar2 >> 0x1f" identifier >> number_literal) )))) ;) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" identifier = identifier) ;) (if_statement "if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }" if (parenthesized_expression "(local_a4 != 0)" ( (binary_expression "local_a4 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }" { (labeled_statement "LAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");" statement_identifier : (expression_statement "uVar7 = FUN_001776d2("malformed detail=... directive");" (assignment_expression "uVar7 = FUN_001776d2("malformed detail=... directive")" identifier = (call_expression "FUN_001776d2("malformed detail=... directive")" identifier (argument_list "("malformed detail=... directive")" ( (string_literal ""malformed detail=... directive"" " string_content ") )))) ;)) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" identifier = identifier) ;) })) }) (else_clause "else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }" else (compound_statement "{\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }" { (expression_statement "uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);" (assignment_expression "uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16)" identifier = (call_expression "FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16)" identifier (argument_list "("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16)" ( (string_literal ""unrecognized option: \"%.*s\""" " string_content escape_sequence string_content escape_sequence ") , (binary_expression "uVar11 & 0xffffffff" identifier & number_literal) , identifier )))) ;) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "iVar3 = iVar2;" (assignment_expression "iVar3 = iVar2" identifier = identifier) ;) }))) }))) }))) }))) }))) }))) }))) })) }))) (goto_statement "goto LAB_0017a527;" goto statement_identifier ;) })) (labeled_statement "LAB_0017a368:\n    if (puVar5[0xd] == 0) {\n      local_ac = FUN_0017a177(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0);\n    }" statement_identifier : (if_statement "if (puVar5[0xd] == 0) {\n      local_ac = FUN_0017a177(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0);\n    }" if (parenthesized_expression "(puVar5[0xd] == 0)" ( (binary_expression "puVar5[0xd] == 0" (subscript_expression "puVar5[0xd]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      local_ac = FUN_0017a177(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0);\n    }" { (expression_statement "local_ac = FUN_0017a177(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0);" (assignment_expression "local_ac = FUN_0017a177(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0)" identifier = (call_expression "FUN_0017a177(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0)" identifier (argument_list "(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0)" ( identifier , number_literal , number_literal , (binary_expression "puVar5 + 0xd" identifier + number_literal) , (binary_expression "puVar5 + 0xe" identifier + number_literal) , number_literal )))) ;) }))) }) (else_clause "else {\nLAB_0017a364:\n    if (local_ac == 0) goto LAB_0017a368;\n  }" else (compound_statement "{\nLAB_0017a364:\n    if (local_ac == 0) goto LAB_0017a368;\n  }" { (labeled_statement "LAB_0017a364:\n    if (local_ac == 0) goto LAB_0017a368;" statement_identifier : (if_statement "if (local_ac == 0) goto LAB_0017a368;" if (parenthesized_expression "(local_ac == 0)" ( (binary_expression "local_ac == 0" identifier == number_literal) )) (goto_statement "goto LAB_0017a368;" goto statement_identifier ;))) }))) (if_statement "if (local_ac == 0) {\n    if (puVar5[9] == 0) {\n      if (*(int *)(puVar5 + 8) == 0) {\n        pcVar17 = "content";\n      }\n      else {\n        pcVar17 = "docsize";\n        if (*(int *)(puVar5 + 0xb) == 0) goto LAB_0017a389;\n      }\n      uVar7 = FUN_00177220(&local_ac,"%Q.\'%q_%s\'",puVar5[1],puVar5[2],pcVar17);\n      puVar5[9] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }\nLAB_0017a389:\n    if (puVar5[10] == 0) {\n      uVar7 = FUN_0014b209(&local_ac,"rowid",0xffffffff);\n      puVar5[10] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }\n    local_a0 = (char *)((ulong)local_a0 & 0xffffffff00000000);\n    local_98 = (char *)0x0;\n    local_90 = 0;\n    local_8c = 0;\n    FUN_001765c7(&local_a0,&local_98,&DAT_001f4822,puVar5[10]);\n    if ((*(int *)(puVar5 + 8) != 1) && (0 < *(int *)(puVar5 + 3))) {\n      uVar11 = 0;\n      do {\n        if (*(int *)(puVar5 + 8) == 2) {\n          FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));\n        }\n        else {\n          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);\n        }\n        uVar11 = uVar11 + 1;\n      } while ((int)uVar11 < *(int *)(puVar5 + 3));\n    }\n    puVar5[0xc] = local_98;\n    local_ac = (int)local_a0;\n    iVar4 = (int)local_a0;\n    if ((int)local_a0 == 0) goto LAB_0017ad22;\n  }" if (parenthesized_expression "(local_ac == 0)" ( (binary_expression "local_ac == 0" identifier == number_literal) )) (compound_statement "{\n    if (puVar5[9] == 0) {\n      if (*(int *)(puVar5 + 8) == 0) {\n        pcVar17 = "content";\n      }\n      else {\n        pcVar17 = "docsize";\n        if (*(int *)(puVar5 + 0xb) == 0) goto LAB_0017a389;\n      }\n      uVar7 = FUN_00177220(&local_ac,"%Q.\'%q_%s\'",puVar5[1],puVar5[2],pcVar17);\n      puVar5[9] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }\nLAB_0017a389:\n    if (puVar5[10] == 0) {\n      uVar7 = FUN_0014b209(&local_ac,"rowid",0xffffffff);\n      puVar5[10] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }\n    local_a0 = (char *)((ulong)local_a0 & 0xffffffff00000000);\n    local_98 = (char *)0x0;\n    local_90 = 0;\n    local_8c = 0;\n    FUN_001765c7(&local_a0,&local_98,&DAT_001f4822,puVar5[10]);\n    if ((*(int *)(puVar5 + 8) != 1) && (0 < *(int *)(puVar5 + 3))) {\n      uVar11 = 0;\n      do {\n        if (*(int *)(puVar5 + 8) == 2) {\n          FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));\n        }\n        else {\n          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);\n        }\n        uVar11 = uVar11 + 1;\n      } while ((int)uVar11 < *(int *)(puVar5 + 3));\n    }\n    puVar5[0xc] = local_98;\n    local_ac = (int)local_a0;\n    iVar4 = (int)local_a0;\n    if ((int)local_a0 == 0) goto LAB_0017ad22;\n  }" { (if_statement "if (puVar5[9] == 0) {\n      if (*(int *)(puVar5 + 8) == 0) {\n        pcVar17 = "content";\n      }\n      else {\n        pcVar17 = "docsize";\n        if (*(int *)(puVar5 + 0xb) == 0) goto LAB_0017a389;\n      }\n      uVar7 = FUN_00177220(&local_ac,"%Q.\'%q_%s\'",puVar5[1],puVar5[2],pcVar17);\n      puVar5[9] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }" if (parenthesized_expression "(puVar5[9] == 0)" ( (binary_expression "puVar5[9] == 0" (subscript_expression "puVar5[9]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      if (*(int *)(puVar5 + 8) == 0) {\n        pcVar17 = "content";\n      }\n      else {\n        pcVar17 = "docsize";\n        if (*(int *)(puVar5 + 0xb) == 0) goto LAB_0017a389;\n      }\n      uVar7 = FUN_00177220(&local_ac,"%Q.\'%q_%s\'",puVar5[1],puVar5[2],pcVar17);\n      puVar5[9] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }" { (if_statement "if (*(int *)(puVar5 + 8) == 0) {\n        pcVar17 = "content";\n      }\n      else {\n        pcVar17 = "docsize";\n        if (*(int *)(puVar5 + 0xb) == 0) goto LAB_0017a389;\n      }" if (parenthesized_expression "(*(int *)(puVar5 + 8) == 0)" ( (binary_expression "*(int *)(puVar5 + 8) == 0" (pointer_expression "*(int *)(puVar5 + 8)" * (cast_expression "(int *)(puVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 8)" ( (binary_expression "puVar5 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        pcVar17 = "content";\n      }" { (expression_statement "pcVar17 = "content";" (assignment_expression "pcVar17 = "content"" identifier = (string_literal ""content"" " string_content ")) ;) }) (else_clause "else {\n        pcVar17 = "docsize";\n        if (*(int *)(puVar5 + 0xb) == 0) goto LAB_0017a389;\n      }" else (compound_statement "{\n        pcVar17 = "docsize";\n        if (*(int *)(puVar5 + 0xb) == 0) goto LAB_0017a389;\n      }" { (expression_statement "pcVar17 = "docsize";" (assignment_expression "pcVar17 = "docsize"" identifier = (string_literal ""docsize"" " string_content ")) ;) (if_statement "if (*(int *)(puVar5 + 0xb) == 0) goto LAB_0017a389;" if (parenthesized_expression "(*(int *)(puVar5 + 0xb) == 0)" ( (binary_expression "*(int *)(puVar5 + 0xb) == 0" (pointer_expression "*(int *)(puVar5 + 0xb)" * (cast_expression "(int *)(puVar5 + 0xb)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0xb)" ( (binary_expression "puVar5 + 0xb" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0017a389;" goto statement_identifier ;)) }))) (expression_statement "uVar7 = FUN_00177220(&local_ac,"%Q.\'%q_%s\'",puVar5[1],puVar5[2],pcVar17);" (assignment_expression "uVar7 = FUN_00177220(&local_ac,"%Q.\'%q_%s\'",puVar5[1],puVar5[2],pcVar17)" identifier = (call_expression "FUN_00177220(&local_ac,"%Q.\'%q_%s\'",puVar5[1],puVar5[2],pcVar17)" identifier (argument_list "(&local_ac,"%Q.\'%q_%s\'",puVar5[1],puVar5[2],pcVar17)" ( (pointer_expression "&local_ac" & identifier) , (string_literal ""%Q.\'%q_%s\'"" " string_content escape_sequence string_content escape_sequence ") , (subscript_expression "puVar5[1]" identifier [ number_literal ]) , (subscript_expression "puVar5[2]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "puVar5[9] = uVar7;" (assignment_expression "puVar5[9] = uVar7" (subscript_expression "puVar5[9]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_ac != 0) goto LAB_0017acb0;" if (parenthesized_expression "(local_ac != 0)" ( (binary_expression "local_ac != 0" identifier != number_literal) )) (goto_statement "goto LAB_0017acb0;" goto statement_identifier ;)) })) (labeled_statement "LAB_0017a389:\n    if (puVar5[10] == 0) {\n      uVar7 = FUN_0014b209(&local_ac,"rowid",0xffffffff);\n      puVar5[10] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }" statement_identifier : (if_statement "if (puVar5[10] == 0) {\n      uVar7 = FUN_0014b209(&local_ac,"rowid",0xffffffff);\n      puVar5[10] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }" if (parenthesized_expression "(puVar5[10] == 0)" ( (binary_expression "puVar5[10] == 0" (subscript_expression "puVar5[10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      uVar7 = FUN_0014b209(&local_ac,"rowid",0xffffffff);\n      puVar5[10] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }" { (expression_statement "uVar7 = FUN_0014b209(&local_ac,"rowid",0xffffffff);" (assignment_expression "uVar7 = FUN_0014b209(&local_ac,"rowid",0xffffffff)" identifier = (call_expression "FUN_0014b209(&local_ac,"rowid",0xffffffff)" identifier (argument_list "(&local_ac,"rowid",0xffffffff)" ( (pointer_expression "&local_ac" & identifier) , (string_literal ""rowid"" " string_content ") , number_literal )))) ;) (expression_statement "puVar5[10] = uVar7;" (assignment_expression "puVar5[10] = uVar7" (subscript_expression "puVar5[10]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_ac != 0) goto LAB_0017acb0;" if (parenthesized_expression "(local_ac != 0)" ( (binary_expression "local_ac != 0" identifier != number_literal) )) (goto_statement "goto LAB_0017acb0;" goto statement_identifier ;)) }))) (expression_statement "local_a0 = (char *)((ulong)local_a0 & 0xffffffff00000000);" (assignment_expression "local_a0 = (char *)((ulong)local_a0 & 0xffffffff00000000)" identifier = (cast_expression "(char *)((ulong)local_a0 & 0xffffffff00000000)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)local_a0 & 0xffffffff00000000)" ( (binary_expression "(ulong)local_a0 & 0xffffffff00000000" (cast_expression "(ulong)local_a0" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "local_98 = (char *)0x0;" (assignment_expression "local_98 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" identifier = number_literal) ;) (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" identifier = number_literal) ;) (expression_statement "FUN_001765c7(&local_a0,&local_98,&DAT_001f4822,puVar5[10]);" (call_expression "FUN_001765c7(&local_a0,&local_98,&DAT_001f4822,puVar5[10])" identifier (argument_list "(&local_a0,&local_98,&DAT_001f4822,puVar5[10])" ( (pointer_expression "&local_a0" & identifier) , (pointer_expression "&local_98" & identifier) , (pointer_expression "&DAT_001f4822" & identifier) , (subscript_expression "puVar5[10]" identifier [ number_literal ]) ))) ;) (if_statement "if ((*(int *)(puVar5 + 8) != 1) && (0 < *(int *)(puVar5 + 3))) {\n      uVar11 = 0;\n      do {\n        if (*(int *)(puVar5 + 8) == 2) {\n          FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));\n        }\n        else {\n          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);\n        }\n        uVar11 = uVar11 + 1;\n      } while ((int)uVar11 < *(int *)(puVar5 + 3));\n    }" if (parenthesized_expression "((*(int *)(puVar5 + 8) != 1) && (0 < *(int *)(puVar5 + 3)))" ( (binary_expression "(*(int *)(puVar5 + 8) != 1) && (0 < *(int *)(puVar5 + 3))" (parenthesized_expression "(*(int *)(puVar5 + 8) != 1)" ( (binary_expression "*(int *)(puVar5 + 8) != 1" (pointer_expression "*(int *)(puVar5 + 8)" * (cast_expression "(int *)(puVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 8)" ( (binary_expression "puVar5 + 8" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(0 < *(int *)(puVar5 + 3))" ( (binary_expression "0 < *(int *)(puVar5 + 3)" number_literal < (pointer_expression "*(int *)(puVar5 + 3)" * (cast_expression "(int *)(puVar5 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 3)" ( (binary_expression "puVar5 + 3" identifier + number_literal) ))))) ))) )) (compound_statement "{\n      uVar11 = 0;\n      do {\n        if (*(int *)(puVar5 + 8) == 2) {\n          FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));\n        }\n        else {\n          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);\n        }\n        uVar11 = uVar11 + 1;\n      } while ((int)uVar11 < *(int *)(puVar5 + 3));\n    }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n        if (*(int *)(puVar5 + 8) == 2) {\n          FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));\n        }\n        else {\n          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);\n        }\n        uVar11 = uVar11 + 1;\n      } while ((int)uVar11 < *(int *)(puVar5 + 3));" do (compound_statement "{\n        if (*(int *)(puVar5 + 8) == 2) {\n          FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));\n        }\n        else {\n          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);\n        }\n        uVar11 = uVar11 + 1;\n      }" { (if_statement "if (*(int *)(puVar5 + 8) == 2) {\n          FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));\n        }\n        else {\n          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);\n        }" if (parenthesized_expression "(*(int *)(puVar5 + 8) == 2)" ( (binary_expression "*(int *)(puVar5 + 8) == 2" (pointer_expression "*(int *)(puVar5 + 8)" * (cast_expression "(int *)(puVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 8)" ( (binary_expression "puVar5 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));\n        }" { (expression_statement "FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));" (call_expression "FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8))" identifier (argument_list "(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8))" ( (pointer_expression "&local_a0" & identifier) , (pointer_expression "&local_98" & identifier) , (pointer_expression "&DAT_001f4820" & identifier) , (pointer_expression "*(undefined8 *)(puVar5[4] + uVar11 * 8)" * (cast_expression "(undefined8 *)(puVar5[4] + uVar11 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5[4] + uVar11 * 8)" ( (binary_expression "puVar5[4] + uVar11 * 8" (subscript_expression "puVar5[4]" identifier [ number_literal ]) + (binary_expression "uVar11 * 8" identifier * number_literal)) )))) ))) ;) }) (else_clause "else {\n          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);\n        }" else (compound_statement "{\n          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);\n        }" { (expression_statement "FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);" (call_expression "FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff)" identifier (argument_list "(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff)" ( (pointer_expression "&local_a0" & identifier) , (pointer_expression "&local_98" & identifier) , (string_literal "", T.c%d"" " string_content ") , (binary_expression "uVar11 & 0xffffffff" identifier & number_literal) ))) ;) }))) (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((int)uVar11 < *(int *)(puVar5 + 3))" ( (binary_expression "(int)uVar11 < *(int *)(puVar5 + 3)" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) < (pointer_expression "*(int *)(puVar5 + 3)" * (cast_expression "(int *)(puVar5 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 3)" ( (binary_expression "puVar5 + 3" identifier + number_literal) ))))) )) ;) })) (expression_statement "puVar5[0xc] = local_98;" (assignment_expression "puVar5[0xc] = local_98" (subscript_expression "puVar5[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_ac = (int)local_a0;" (assignment_expression "local_ac = (int)local_a0" identifier = (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar4 = (int)local_a0;" (assignment_expression "iVar4 = (int)local_a0" identifier = (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if ((int)local_a0 == 0) goto LAB_0017ad22;" if (parenthesized_expression "((int)local_a0 == 0)" ( (binary_expression "(int)local_a0 == 0" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (goto_statement "goto LAB_0017ad22;" goto statement_identifier ;)) })) (labeled_statement "LAB_0017acb0:\n  FUN_00148182(puVar5);" statement_identifier : (expression_statement "FUN_00148182(puVar5);" (call_expression "FUN_00148182(puVar5)" identifier (argument_list "(puVar5)" ( identifier ))) ;)) (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" * identifier) = number_literal) ;) (expression_statement "iVar4 = local_ac;" (assignment_expression "iVar4 = local_ac" identifier = identifier) ;) (labeled_statement "LAB_0017ad22:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return iVar4;" return identifier ;) (labeled_statement "LAB_0017a6fb:\n  uVar7 = FUN_001776d2("prefix length out of range (max 999)");" statement_identifier : (expression_statement "uVar7 = FUN_001776d2("prefix length out of range (max 999)");" (assignment_expression "uVar7 = FUN_001776d2("prefix length out of range (max 999)")" identifier = (call_expression "FUN_001776d2("prefix length out of range (max 999)")" identifier (argument_list "("prefix length out of range (max 999)")" ( (string_literal ""prefix length out of range (max 999)"" " string_content ") )))) ;)) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "local_a4 = 1;" (assignment_expression "local_a4 = 1" identifier = number_literal) ;) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" identifier = identifier) ;) (labeled_statement "LAB_0017a527:\n  local_ac = iVar3;" statement_identifier : (expression_statement "local_ac = iVar3;" (assignment_expression "local_ac = iVar3" identifier = identifier) ;)) (expression_statement "FUN_00141303(local_a0);" (call_expression "FUN_00141303(local_a0)" identifier (argument_list "(local_a0)" ( identifier ))) ;) (expression_statement "FUN_00141303(local_98);" (call_expression "FUN_00141303(local_98)" identifier (argument_list "(local_98)" ( identifier ))) ;) (expression_statement "iVar2 = (int)lVar6;" (assignment_expression "iVar2 = (int)lVar6" identifier = (cast_expression "(int)lVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "lVar6 = lVar6 + 1;" (assignment_expression "lVar6 = lVar6 + 1" identifier = (binary_expression "lVar6 + 1" identifier + number_literal)) ;) (if_statement "if (param_3 <= iVar2 || local_ac != 0) goto LAB_0017a364;" if (parenthesized_expression "(param_3 <= iVar2 || local_ac != 0)" ( (binary_expression "param_3 <= iVar2 || local_ac != 0" (binary_expression "param_3 <= iVar2" identifier <= identifier) || (binary_expression "local_ac != 0" identifier != number_literal)) )) (goto_statement "goto LAB_0017a364;" goto statement_identifier ;)) (goto_statement "goto LAB_0017a558;" goto statement_identifier ;) })))
(translation_unit "int sqlite3Fts5ConfigParse\n              (Fts5Global *pGlobal,sqlite3 *db,int nArg,char **azArg,Fts5Config **ppOut,char **pzErr\n              )\n\n{\n  char cVar1;\n  long lVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  Fts5Config *pConfig;\n  char **ppcVar6;\n  char *pcVar7;\n  int *piVar8;\n  char *pcVar9;\n  char *pIn;\n  ulong uVar10;\n  long lVar11;\n  int N;\n  Fts5Enum *pFVar12;\n  undefined8 *puVar13;\n  char *pcVar14;\n  long lVar15;\n  long in_FS_OFFSET;\n  byte bVar16;\n  int local_c8;\n  int rc;\n  int bMustBeCol;\n  int bDummy;\n  char *zOne;\n  char *zTwo;\n  int local_90;\n  int local_8c;\n  Fts5Enum aDetail [4];\n  \n  bVar16 = 0;\n  lVar2 = *(long *)(in_FS_OFFSET + 0x28);\n  rc = 0;\n  pConfig = (Fts5Config *)sqlite3_malloc(0xa8);\n  *ppOut = pConfig;\n  if (pConfig == (Fts5Config *)0x0) {\n    iVar5 = 7;\n    goto LAB_0017ad22;\n  }\n  pConfig->zDb = (char *)0x0;\n  pConfig->pzErrmsg = (char **)0x0;\n  puVar13 = (undefined8 *)((ulong)&pConfig->zName & 0xfffffffffffffff8);\n  uVar10 = (ulong)(((int)pConfig - (int)puVar13) + 0xa8U >> 3);\n  for (; uVar10 != 0; uVar10 = uVar10 - 1) {\n    *puVar13 = 0;\n    puVar13 = puVar13 + (ulong)bVar16 * -2 + 1;\n  }\n  pConfig->db = db;\n  pConfig->iCookie = -1;\n  ppcVar6 = (char **)sqlite3Fts5MallocZero(&rc,(long)nArg * 9);\n  pConfig->azCol = ppcVar6;\n  pConfig->abUnindexed = (u8 *)(ppcVar6 + nArg);\n  pcVar7 = sqlite3Fts5Strndup(&rc,azArg[1],-1);\n  pConfig->zDb = pcVar7;\n  pcVar7 = sqlite3Fts5Strndup(&rc,azArg[2],-1);\n  iVar5 = rc;\n  pConfig->zName = pcVar7;\n  pConfig->bColumnsize = 1;\n  pConfig->eDetail = 0;\n  if (rc == 0) {\n    iVar3 = sqlite3_stricmp(pcVar7,"rank");\n    if (iVar3 == 0) {\n      pcVar7 = sqlite3_mprintf("reserved fts5 table name: %s",pcVar7);\n      *pzErr = pcVar7;\n      rc = 1;\n      goto LAB_0017a364;\n    }\n    if (3 < nArg) {\n      lVar15 = 4;\n      local_c8 = -1;\nLAB_0017a558:\n      pcVar7 = azArg[lVar15 + -1];\n      zOne = (char *)0x0;\n      zTwo = (char *)0x0;\n      bMustBeCol = 0;\n      pcVar9 = fts5ConfigGobbleWord(&rc,pcVar7,&zOne,&bMustBeCol);\n      pcVar9 = fts5ConfigSkipWhitespace(pcVar9);\n      iVar3 = iVar5;\n      if ((pcVar9 != (char *)0x0) && (*pcVar9 == '=')) {\n        if (bMustBeCol == 0) {\n          pcVar9 = pcVar9 + 1;\n          iVar3 = 1;\n        }\n        else {\n          iVar3 = 1;\n          pcVar9 = (char *)0x0;\n        }\n      }\n      pcVar9 = fts5ConfigSkipWhitespace(pcVar9);\n      if ((pcVar9 == (char *)0x0) ||\n         ((pcVar14 = zOne, *pcVar9 != '\0' &&\n          ((pcVar9 = fts5ConfigGobbleWord(&rc,pcVar9,&zTwo,&bDummy), pcVar9 == (char *)0x0 ||\n           (pcVar14 = zOne, *pcVar9 != '\0')))))) {\n        iVar4 = rc;\n        if (rc == 0) {\n          pcVar7 = sqlite3_mprintf("parse error in \"%s\"",pcVar7);\n          *pzErr = pcVar7;\n          rc = 1;\n          iVar4 = rc;\n        }\n      }\n      else {\n        iVar4 = rc;\n        zOne = pcVar14;\n        if (rc == 0) {\n          if (iVar3 == 0) {\n            iVar4 = sqlite3_stricmp(pcVar14,"rank");\n            if ((iVar4 == 0) ||\n               (iVar4 = sqlite3_stricmp(pcVar14,"rowid"), pcVar7 = zTwo, iVar4 == 0)) {\n              pcVar7 = sqlite3_mprintf("reserved fts5 column name: %s",pcVar14);\n              *pzErr = pcVar7;\n              iVar3 = 1;\n            }\n            else if (zTwo != (char *)0x0) {\n              iVar3 = sqlite3_stricmp(zTwo,"unindexed");\n              if (iVar3 == 0) {\n                pConfig->abUnindexed[pConfig->nCol] = '\x01';\n                iVar3 = 0;\n              }\n              else {\n                pcVar7 = sqlite3_mprintf("unrecognized column option: %s",pcVar7);\n                *pzErr = pcVar7;\n                iVar3 = 1;\n              }\n            }\n            iVar4 = pConfig->nCol;\n            pConfig->nCol = iVar4 + 1;\n            pConfig->azCol[iVar4] = pcVar14;\n            zOne = (char *)0x0;\n            iVar4 = iVar3;\n          }\n          else {\n            pcVar7 = zTwo;\n            if (zTwo == (char *)0x0) {\n              pcVar7 = "";\n            }\n            bDummy = 0;\n            uVar10 = 0xffffffffffffffff;\n            pcVar9 = pcVar14;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n            } while (cVar1 != '\0');\n            N = (int)(~uVar10 - 1);\n            iVar4 = sqlite3_strnicmp("prefix",pcVar14,N);\n            if (iVar4 == 0) {\n              if (pConfig->aPrefix != (int *)0x0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar7;\n                  while (cVar1 == ' ') {\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                  }\n                  if ((cVar1 == ',') && (iVar3 == 0)) {\n                    cVar1 = pcVar7[1];\n                    pcVar7 = pcVar7 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar7 = pcVar7 + 1;\n                      cVar1 = *pcVar7;\n                    }\n                  }\n                  else {\n                    iVar4 = bDummy;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar7;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    pcVar7 = sqlite3_mprintf("malformed prefix=... directive");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  if (pConfig->nPrefix == 0x1f) {\n                    pcVar7 = sqlite3_mprintf("too many prefix indexes (max %d)",0x1f);\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  iVar3 = 0;\n                  do {\n                    iVar3 = cVar1 + -0x30 + iVar3 * 10;\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar3 < 1000);\n                  if (0x3e6 < iVar3 - 1U) goto LAB_0017a6fb;\n                  pConfig->aPrefix[pConfig->nPrefix] = iVar3;\n                  pConfig->nPrefix = pConfig->nPrefix + 1;\n                  iVar3 = 0;\n                } while( true );\n              }\n              piVar8 = (int *)sqlite3Fts5MallocZero(&bDummy,0x7c);\n              pConfig->aPrefix = piVar8;\n              iVar4 = bDummy;\n              if (bDummy == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar4 = sqlite3_strnicmp("tokenize",pcVar14,N);\n              if (iVar4 == 0) {\n                uVar10 = 0xffffffffffffffff;\n                pcVar9 = pcVar7;\n                do {\n                  if (uVar10 == 0) break;\n                  uVar10 = uVar10 - 1;\n                  cVar1 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                } while (cVar1 != '\0');\n                ppcVar6 = (char **)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 8);\n                pcVar9 = (char *)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 2);\n                if ((ppcVar6 != (char **)0x0) && (pcVar9 != (char *)0x0)) {\n                  if (pConfig->pTok == (Fts5Tokenizer *)0x0) {\n                    lVar11 = 0;\n                    if (*pcVar7 != '\0') {\n                      lVar11 = 0;\n                      pcVar14 = pcVar9;\n                      do {\n                        pcVar7 = fts5ConfigSkipWhitespace(pcVar7);\n                        if (*pcVar7 == '\'') {\n                          pIn = fts5ConfigSkipLiteral(pcVar7);\n                        }\n                        else {\n                          pIn = fts5ConfigSkipBareword(pcVar7);\n                        }\n                        if (pIn == (char *)0x0) {\nLAB_0017a8ef:\n                          pcVar7 = sqlite3_mprintf("parse error in tokenize directive");\n                          *pzErr = pcVar7;\n                          bDummy = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(pcVar14,pcVar7,(long)pIn - (long)pcVar7);\n                        ppcVar6[lVar11] = pcVar14;\n                        sqlite3Fts5Dequote(pcVar14);\n                        pcVar14 = pcVar14 + ((long)pIn - (long)pcVar7) + 1;\n                        pcVar7 = fts5ConfigSkipWhitespace(pIn);\n                        lVar11 = lVar11 + 1;\n                        if (pcVar7 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar7 != '\0');\n                    }\n                    bDummy = sqlite3Fts5GetTokenizer\n                                       (pGlobal,ppcVar6,(int)lVar11,&pConfig->pTok,&pConfig->pTokApi\n                                        ,pzErr);\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple tokenize=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                  }\n                }\nLAB_0017a842:\n                sqlite3_free(ppcVar6);\n                sqlite3_free(pcVar9);\n                iVar4 = bDummy;\n              }\n              else {\n                iVar4 = sqlite3_strnicmp("content",pcVar14,N);\n                if (iVar4 == 0) {\n                  if (pConfig->eContent == 0) {\n                    if (*pcVar7 == '\0') {\n                      pConfig->eContent = 1;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pConfig->eContent = 2;\n                      pcVar7 = sqlite3Fts5Mprintf(&bDummy,"%Q.%Q",pConfig->zDb,pcVar7);\n                      pConfig->zContent = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple content=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                  }\n                }\n                else {\n                  iVar4 = sqlite3_strnicmp("content_rowid",pcVar14,N);\n                  if (iVar4 == 0) {\n                    if (pConfig->zContentRowid == (char *)0x0) {\n                      pcVar7 = sqlite3Fts5Strndup(&bDummy,pcVar7,-1);\n                      pConfig->zContentRowid = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pcVar7 = sqlite3_mprintf("multiple content_rowid=... directives");\n                      *pzErr = pcVar7;\n                      bDummy = 1;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    iVar4 = sqlite3_strnicmp("columnsize",pcVar14,N);\n                    if (iVar4 == 0) {\n                      if (((byte)(*pcVar7 - 0x30U) < 2) && (pcVar7[1] == '\0')) {\n                        pConfig->bColumnsize = (uint)(*pcVar7 == '1');\n                        iVar4 = bDummy;\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("malformed columnsize=... directive");\n                        *pzErr = pcVar7;\n                        bDummy = 1;\n                        iVar4 = bDummy;\n                      }\n                    }\n                    else {\n                      iVar4 = sqlite3_strnicmp("detail",pcVar14,N);\n                      if (iVar4 == 0) {\n                        aDetail[0].zName = "none";\n                        aDetail[0].eVal = 1;\n                        aDetail[1].zName = "full";\n                        aDetail[1].eVal = 0;\n                        aDetail[2].zName = "columns";\n                        aDetail[2].eVal = 2;\n                        aDetail[3].zName = (char *)0x0;\n                        aDetail[3].eVal = 0;\n                        lVar11 = -1;\n                        pcVar9 = pcVar7;\n                        do {\n                          if (lVar11 == 0) break;\n                          lVar11 = lVar11 + -1;\n                          cVar1 = *pcVar9;\n                          pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pFVar12 = aDetail;\n                        pcVar9 = "none";\n                        iVar3 = local_c8;\n                        do {\n                          pFVar12 = pFVar12 + 1;\n                          iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1);\n                          if (iVar4 == 0) {\n                            if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar3 = pFVar12[-1].eVal;\n                          }\n                          pcVar9 = pFVar12->zName;\n                        } while (pcVar9 != (char *)0x0);\n                        pConfig->eDetail = iVar3;\n                        bDummy = -(iVar3 >> 0x1f);\n                        iVar4 = bDummy;\n                        if (bDummy != 0) {\nLAB_0017ab15:\n                          pcVar7 = sqlite3_mprintf("malformed detail=... directive");\n                          *pzErr = pcVar7;\n                          iVar4 = bDummy;\n                        }\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14);\n                        *pzErr = pcVar7;\n                        iVar4 = iVar3;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_0017a527;\n    }\nLAB_0017a368:\n    if (pConfig->pTok == (Fts5Tokenizer *)0x0) {\n      rc = sqlite3Fts5GetTokenizer\n                     (pGlobal,(char **)0x0,0,&pConfig->pTok,&pConfig->pTokApi,(char **)0x0);\n    }\n  }\n  else {\nLAB_0017a364:\n    if (rc == 0) goto LAB_0017a368;\n  }\n  if (rc == 0) {\n    if (pConfig->zContent == (char *)0x0) {\n      if (pConfig->eContent == 0) {\n        pcVar7 = "content";\n      }\n      else {\n        pcVar7 = "docsize";\n        if (pConfig->bColumnsize == 0) goto LAB_0017a389;\n      }\n      pcVar7 = sqlite3Fts5Mprintf(&rc,"%Q.\'%q_%s\'",pConfig->zDb,pConfig->zName,pcVar7);\n      pConfig->zContent = pcVar7;\n      if (rc != 0) goto LAB_0017acb0;\n    }\nLAB_0017a389:\n    if (pConfig->zContentRowid == (char *)0x0) {\n      pcVar7 = sqlite3Fts5Strndup(&rc,"rowid",-1);\n      pConfig->zContentRowid = pcVar7;\n      if (rc != 0) goto LAB_0017acb0;\n    }\n    zOne = (char *)((ulong)zOne & 0xffffffff00000000);\n    zTwo = (char *)0x0;\n    local_90 = 0;\n    local_8c = 0;\n    sqlite3Fts5BufferAppendPrintf((int *)&zOne,(Fts5Buffer *)&zTwo,"T.%Q",pConfig->zContentRowid);\n    if ((pConfig->eContent != 1) && (0 < pConfig->nCol)) {\n      uVar10 = 0;\n      do {\n        if (pConfig->eContent == 2) {\n          sqlite3Fts5BufferAppendPrintf\n                    ((int *)&zOne,(Fts5Buffer *)&zTwo,", T.%Q",pConfig->azCol[uVar10]);\n        }\n        else {\n          sqlite3Fts5BufferAppendPrintf\n                    ((int *)&zOne,(Fts5Buffer *)&zTwo,", T.c%d",uVar10 & 0xffffffff);\n        }\n        uVar10 = uVar10 + 1;\n      } while ((int)uVar10 < pConfig->nCol);\n    }\n    pConfig->zContentExprlist = zTwo;\n    rc = (int)zOne;\n    iVar5 = (int)zOne;\n    if ((int)zOne == 0) goto LAB_0017ad22;\n  }\nLAB_0017acb0:\n  sqlite3Fts5ConfigFree(pConfig);\n  *ppOut = (Fts5Config *)0x0;\n  iVar5 = rc;\nLAB_0017ad22:\n  if (lVar2 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return iVar5;\nLAB_0017a6fb:\n  pcVar7 = sqlite3_mprintf("prefix length out of range (max 999)");\n  *pzErr = pcVar7;\n  bDummy = 1;\n  iVar4 = bDummy;\nLAB_0017a527:\n  rc = iVar4;\n  sqlite3_free(zOne);\n  sqlite3_free(zTwo);\n  iVar3 = (int)lVar15;\n  lVar15 = lVar15 + 1;\n  if (nArg <= iVar3 || rc != 0) goto LAB_0017a364;\n  goto LAB_0017a558;\n}\n\n" (function_definition "int sqlite3Fts5ConfigParse\n              (Fts5Global *pGlobal,sqlite3 *db,int nArg,char **azArg,Fts5Config **ppOut,char **pzErr\n              )\n\n{\n  char cVar1;\n  long lVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  Fts5Config *pConfig;\n  char **ppcVar6;\n  char *pcVar7;\n  int *piVar8;\n  char *pcVar9;\n  char *pIn;\n  ulong uVar10;\n  long lVar11;\n  int N;\n  Fts5Enum *pFVar12;\n  undefined8 *puVar13;\n  char *pcVar14;\n  long lVar15;\n  long in_FS_OFFSET;\n  byte bVar16;\n  int local_c8;\n  int rc;\n  int bMustBeCol;\n  int bDummy;\n  char *zOne;\n  char *zTwo;\n  int local_90;\n  int local_8c;\n  Fts5Enum aDetail [4];\n  \n  bVar16 = 0;\n  lVar2 = *(long *)(in_FS_OFFSET + 0x28);\n  rc = 0;\n  pConfig = (Fts5Config *)sqlite3_malloc(0xa8);\n  *ppOut = pConfig;\n  if (pConfig == (Fts5Config *)0x0) {\n    iVar5 = 7;\n    goto LAB_0017ad22;\n  }\n  pConfig->zDb = (char *)0x0;\n  pConfig->pzErrmsg = (char **)0x0;\n  puVar13 = (undefined8 *)((ulong)&pConfig->zName & 0xfffffffffffffff8);\n  uVar10 = (ulong)(((int)pConfig - (int)puVar13) + 0xa8U >> 3);\n  for (; uVar10 != 0; uVar10 = uVar10 - 1) {\n    *puVar13 = 0;\n    puVar13 = puVar13 + (ulong)bVar16 * -2 + 1;\n  }\n  pConfig->db = db;\n  pConfig->iCookie = -1;\n  ppcVar6 = (char **)sqlite3Fts5MallocZero(&rc,(long)nArg * 9);\n  pConfig->azCol = ppcVar6;\n  pConfig->abUnindexed = (u8 *)(ppcVar6 + nArg);\n  pcVar7 = sqlite3Fts5Strndup(&rc,azArg[1],-1);\n  pConfig->zDb = pcVar7;\n  pcVar7 = sqlite3Fts5Strndup(&rc,azArg[2],-1);\n  iVar5 = rc;\n  pConfig->zName = pcVar7;\n  pConfig->bColumnsize = 1;\n  pConfig->eDetail = 0;\n  if (rc == 0) {\n    iVar3 = sqlite3_stricmp(pcVar7,"rank");\n    if (iVar3 == 0) {\n      pcVar7 = sqlite3_mprintf("reserved fts5 table name: %s",pcVar7);\n      *pzErr = pcVar7;\n      rc = 1;\n      goto LAB_0017a364;\n    }\n    if (3 < nArg) {\n      lVar15 = 4;\n      local_c8 = -1;\nLAB_0017a558:\n      pcVar7 = azArg[lVar15 + -1];\n      zOne = (char *)0x0;\n      zTwo = (char *)0x0;\n      bMustBeCol = 0;\n      pcVar9 = fts5ConfigGobbleWord(&rc,pcVar7,&zOne,&bMustBeCol);\n      pcVar9 = fts5ConfigSkipWhitespace(pcVar9);\n      iVar3 = iVar5;\n      if ((pcVar9 != (char *)0x0) && (*pcVar9 == '=')) {\n        if (bMustBeCol == 0) {\n          pcVar9 = pcVar9 + 1;\n          iVar3 = 1;\n        }\n        else {\n          iVar3 = 1;\n          pcVar9 = (char *)0x0;\n        }\n      }\n      pcVar9 = fts5ConfigSkipWhitespace(pcVar9);\n      if ((pcVar9 == (char *)0x0) ||\n         ((pcVar14 = zOne, *pcVar9 != '\0' &&\n          ((pcVar9 = fts5ConfigGobbleWord(&rc,pcVar9,&zTwo,&bDummy), pcVar9 == (char *)0x0 ||\n           (pcVar14 = zOne, *pcVar9 != '\0')))))) {\n        iVar4 = rc;\n        if (rc == 0) {\n          pcVar7 = sqlite3_mprintf("parse error in \"%s\"",pcVar7);\n          *pzErr = pcVar7;\n          rc = 1;\n          iVar4 = rc;\n        }\n      }\n      else {\n        iVar4 = rc;\n        zOne = pcVar14;\n        if (rc == 0) {\n          if (iVar3 == 0) {\n            iVar4 = sqlite3_stricmp(pcVar14,"rank");\n            if ((iVar4 == 0) ||\n               (iVar4 = sqlite3_stricmp(pcVar14,"rowid"), pcVar7 = zTwo, iVar4 == 0)) {\n              pcVar7 = sqlite3_mprintf("reserved fts5 column name: %s",pcVar14);\n              *pzErr = pcVar7;\n              iVar3 = 1;\n            }\n            else if (zTwo != (char *)0x0) {\n              iVar3 = sqlite3_stricmp(zTwo,"unindexed");\n              if (iVar3 == 0) {\n                pConfig->abUnindexed[pConfig->nCol] = '\x01';\n                iVar3 = 0;\n              }\n              else {\n                pcVar7 = sqlite3_mprintf("unrecognized column option: %s",pcVar7);\n                *pzErr = pcVar7;\n                iVar3 = 1;\n              }\n            }\n            iVar4 = pConfig->nCol;\n            pConfig->nCol = iVar4 + 1;\n            pConfig->azCol[iVar4] = pcVar14;\n            zOne = (char *)0x0;\n            iVar4 = iVar3;\n          }\n          else {\n            pcVar7 = zTwo;\n            if (zTwo == (char *)0x0) {\n              pcVar7 = "";\n            }\n            bDummy = 0;\n            uVar10 = 0xffffffffffffffff;\n            pcVar9 = pcVar14;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n            } while (cVar1 != '\0');\n            N = (int)(~uVar10 - 1);\n            iVar4 = sqlite3_strnicmp("prefix",pcVar14,N);\n            if (iVar4 == 0) {\n              if (pConfig->aPrefix != (int *)0x0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar7;\n                  while (cVar1 == ' ') {\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                  }\n                  if ((cVar1 == ',') && (iVar3 == 0)) {\n                    cVar1 = pcVar7[1];\n                    pcVar7 = pcVar7 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar7 = pcVar7 + 1;\n                      cVar1 = *pcVar7;\n                    }\n                  }\n                  else {\n                    iVar4 = bDummy;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar7;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    pcVar7 = sqlite3_mprintf("malformed prefix=... directive");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  if (pConfig->nPrefix == 0x1f) {\n                    pcVar7 = sqlite3_mprintf("too many prefix indexes (max %d)",0x1f);\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  iVar3 = 0;\n                  do {\n                    iVar3 = cVar1 + -0x30 + iVar3 * 10;\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar3 < 1000);\n                  if (0x3e6 < iVar3 - 1U) goto LAB_0017a6fb;\n                  pConfig->aPrefix[pConfig->nPrefix] = iVar3;\n                  pConfig->nPrefix = pConfig->nPrefix + 1;\n                  iVar3 = 0;\n                } while( true );\n              }\n              piVar8 = (int *)sqlite3Fts5MallocZero(&bDummy,0x7c);\n              pConfig->aPrefix = piVar8;\n              iVar4 = bDummy;\n              if (bDummy == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar4 = sqlite3_strnicmp("tokenize",pcVar14,N);\n              if (iVar4 == 0) {\n                uVar10 = 0xffffffffffffffff;\n                pcVar9 = pcVar7;\n                do {\n                  if (uVar10 == 0) break;\n                  uVar10 = uVar10 - 1;\n                  cVar1 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                } while (cVar1 != '\0');\n                ppcVar6 = (char **)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 8);\n                pcVar9 = (char *)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 2);\n                if ((ppcVar6 != (char **)0x0) && (pcVar9 != (char *)0x0)) {\n                  if (pConfig->pTok == (Fts5Tokenizer *)0x0) {\n                    lVar11 = 0;\n                    if (*pcVar7 != '\0') {\n                      lVar11 = 0;\n                      pcVar14 = pcVar9;\n                      do {\n                        pcVar7 = fts5ConfigSkipWhitespace(pcVar7);\n                        if (*pcVar7 == '\'') {\n                          pIn = fts5ConfigSkipLiteral(pcVar7);\n                        }\n                        else {\n                          pIn = fts5ConfigSkipBareword(pcVar7);\n                        }\n                        if (pIn == (char *)0x0) {\nLAB_0017a8ef:\n                          pcVar7 = sqlite3_mprintf("parse error in tokenize directive");\n                          *pzErr = pcVar7;\n                          bDummy = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(pcVar14,pcVar7,(long)pIn - (long)pcVar7);\n                        ppcVar6[lVar11] = pcVar14;\n                        sqlite3Fts5Dequote(pcVar14);\n                        pcVar14 = pcVar14 + ((long)pIn - (long)pcVar7) + 1;\n                        pcVar7 = fts5ConfigSkipWhitespace(pIn);\n                        lVar11 = lVar11 + 1;\n                        if (pcVar7 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar7 != '\0');\n                    }\n                    bDummy = sqlite3Fts5GetTokenizer\n                                       (pGlobal,ppcVar6,(int)lVar11,&pConfig->pTok,&pConfig->pTokApi\n                                        ,pzErr);\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple tokenize=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                  }\n                }\nLAB_0017a842:\n                sqlite3_free(ppcVar6);\n                sqlite3_free(pcVar9);\n                iVar4 = bDummy;\n              }\n              else {\n                iVar4 = sqlite3_strnicmp("content",pcVar14,N);\n                if (iVar4 == 0) {\n                  if (pConfig->eContent == 0) {\n                    if (*pcVar7 == '\0') {\n                      pConfig->eContent = 1;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pConfig->eContent = 2;\n                      pcVar7 = sqlite3Fts5Mprintf(&bDummy,"%Q.%Q",pConfig->zDb,pcVar7);\n                      pConfig->zContent = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple content=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                  }\n                }\n                else {\n                  iVar4 = sqlite3_strnicmp("content_rowid",pcVar14,N);\n                  if (iVar4 == 0) {\n                    if (pConfig->zContentRowid == (char *)0x0) {\n                      pcVar7 = sqlite3Fts5Strndup(&bDummy,pcVar7,-1);\n                      pConfig->zContentRowid = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pcVar7 = sqlite3_mprintf("multiple content_rowid=... directives");\n                      *pzErr = pcVar7;\n                      bDummy = 1;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    iVar4 = sqlite3_strnicmp("columnsize",pcVar14,N);\n                    if (iVar4 == 0) {\n                      if (((byte)(*pcVar7 - 0x30U) < 2) && (pcVar7[1] == '\0')) {\n                        pConfig->bColumnsize = (uint)(*pcVar7 == '1');\n                        iVar4 = bDummy;\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("malformed columnsize=... directive");\n                        *pzErr = pcVar7;\n                        bDummy = 1;\n                        iVar4 = bDummy;\n                      }\n                    }\n                    else {\n                      iVar4 = sqlite3_strnicmp("detail",pcVar14,N);\n                      if (iVar4 == 0) {\n                        aDetail[0].zName = "none";\n                        aDetail[0].eVal = 1;\n                        aDetail[1].zName = "full";\n                        aDetail[1].eVal = 0;\n                        aDetail[2].zName = "columns";\n                        aDetail[2].eVal = 2;\n                        aDetail[3].zName = (char *)0x0;\n                        aDetail[3].eVal = 0;\n                        lVar11 = -1;\n                        pcVar9 = pcVar7;\n                        do {\n                          if (lVar11 == 0) break;\n                          lVar11 = lVar11 + -1;\n                          cVar1 = *pcVar9;\n                          pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pFVar12 = aDetail;\n                        pcVar9 = "none";\n                        iVar3 = local_c8;\n                        do {\n                          pFVar12 = pFVar12 + 1;\n                          iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1);\n                          if (iVar4 == 0) {\n                            if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar3 = pFVar12[-1].eVal;\n                          }\n                          pcVar9 = pFVar12->zName;\n                        } while (pcVar9 != (char *)0x0);\n                        pConfig->eDetail = iVar3;\n                        bDummy = -(iVar3 >> 0x1f);\n                        iVar4 = bDummy;\n                        if (bDummy != 0) {\nLAB_0017ab15:\n                          pcVar7 = sqlite3_mprintf("malformed detail=... directive");\n                          *pzErr = pcVar7;\n                          iVar4 = bDummy;\n                        }\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14);\n                        *pzErr = pcVar7;\n                        iVar4 = iVar3;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_0017a527;\n    }\nLAB_0017a368:\n    if (pConfig->pTok == (Fts5Tokenizer *)0x0) {\n      rc = sqlite3Fts5GetTokenizer\n                     (pGlobal,(char **)0x0,0,&pConfig->pTok,&pConfig->pTokApi,(char **)0x0);\n    }\n  }\n  else {\nLAB_0017a364:\n    if (rc == 0) goto LAB_0017a368;\n  }\n  if (rc == 0) {\n    if (pConfig->zContent == (char *)0x0) {\n      if (pConfig->eContent == 0) {\n        pcVar7 = "content";\n      }\n      else {\n        pcVar7 = "docsize";\n        if (pConfig->bColumnsize == 0) goto LAB_0017a389;\n      }\n      pcVar7 = sqlite3Fts5Mprintf(&rc,"%Q.\'%q_%s\'",pConfig->zDb,pConfig->zName,pcVar7);\n      pConfig->zContent = pcVar7;\n      if (rc != 0) goto LAB_0017acb0;\n    }\nLAB_0017a389:\n    if (pConfig->zContentRowid == (char *)0x0) {\n      pcVar7 = sqlite3Fts5Strndup(&rc,"rowid",-1);\n      pConfig->zContentRowid = pcVar7;\n      if (rc != 0) goto LAB_0017acb0;\n    }\n    zOne = (char *)((ulong)zOne & 0xffffffff00000000);\n    zTwo = (char *)0x0;\n    local_90 = 0;\n    local_8c = 0;\n    sqlite3Fts5BufferAppendPrintf((int *)&zOne,(Fts5Buffer *)&zTwo,"T.%Q",pConfig->zContentRowid);\n    if ((pConfig->eContent != 1) && (0 < pConfig->nCol)) {\n      uVar10 = 0;\n      do {\n        if (pConfig->eContent == 2) {\n          sqlite3Fts5BufferAppendPrintf\n                    ((int *)&zOne,(Fts5Buffer *)&zTwo,", T.%Q",pConfig->azCol[uVar10]);\n        }\n        else {\n          sqlite3Fts5BufferAppendPrintf\n                    ((int *)&zOne,(Fts5Buffer *)&zTwo,", T.c%d",uVar10 & 0xffffffff);\n        }\n        uVar10 = uVar10 + 1;\n      } while ((int)uVar10 < pConfig->nCol);\n    }\n    pConfig->zContentExprlist = zTwo;\n    rc = (int)zOne;\n    iVar5 = (int)zOne;\n    if ((int)zOne == 0) goto LAB_0017ad22;\n  }\nLAB_0017acb0:\n  sqlite3Fts5ConfigFree(pConfig);\n  *ppOut = (Fts5Config *)0x0;\n  iVar5 = rc;\nLAB_0017ad22:\n  if (lVar2 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return iVar5;\nLAB_0017a6fb:\n  pcVar7 = sqlite3_mprintf("prefix length out of range (max 999)");\n  *pzErr = pcVar7;\n  bDummy = 1;\n  iVar4 = bDummy;\nLAB_0017a527:\n  rc = iVar4;\n  sqlite3_free(zOne);\n  sqlite3_free(zTwo);\n  iVar3 = (int)lVar15;\n  lVar15 = lVar15 + 1;\n  if (nArg <= iVar3 || rc != 0) goto LAB_0017a364;\n  goto LAB_0017a558;\n}" primitive_type (function_declarator "sqlite3Fts5ConfigParse\n              (Fts5Global *pGlobal,sqlite3 *db,int nArg,char **azArg,Fts5Config **ppOut,char **pzErr\n              )" identifier (parameter_list "(Fts5Global *pGlobal,sqlite3 *db,int nArg,char **azArg,Fts5Config **ppOut,char **pzErr\n              )" ( (parameter_declaration "Fts5Global *pGlobal" type_identifier (pointer_declarator "*pGlobal" * identifier)) , (parameter_declaration "sqlite3 *db" type_identifier (pointer_declarator "*db" * identifier)) , (parameter_declaration "int nArg" primitive_type identifier) , (parameter_declaration "char **azArg" primitive_type (pointer_declarator "**azArg" * (pointer_declarator "*azArg" * identifier))) , (parameter_declaration "Fts5Config **ppOut" type_identifier (pointer_declarator "**ppOut" * (pointer_declarator "*ppOut" * identifier))) , (parameter_declaration "char **pzErr" primitive_type (pointer_declarator "**pzErr" * (pointer_declarator "*pzErr" * identifier))) ))) (compound_statement "{\n  char cVar1;\n  long lVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  Fts5Config *pConfig;\n  char **ppcVar6;\n  char *pcVar7;\n  int *piVar8;\n  char *pcVar9;\n  char *pIn;\n  ulong uVar10;\n  long lVar11;\n  int N;\n  Fts5Enum *pFVar12;\n  undefined8 *puVar13;\n  char *pcVar14;\n  long lVar15;\n  long in_FS_OFFSET;\n  byte bVar16;\n  int local_c8;\n  int rc;\n  int bMustBeCol;\n  int bDummy;\n  char *zOne;\n  char *zTwo;\n  int local_90;\n  int local_8c;\n  Fts5Enum aDetail [4];\n  \n  bVar16 = 0;\n  lVar2 = *(long *)(in_FS_OFFSET + 0x28);\n  rc = 0;\n  pConfig = (Fts5Config *)sqlite3_malloc(0xa8);\n  *ppOut = pConfig;\n  if (pConfig == (Fts5Config *)0x0) {\n    iVar5 = 7;\n    goto LAB_0017ad22;\n  }\n  pConfig->zDb = (char *)0x0;\n  pConfig->pzErrmsg = (char **)0x0;\n  puVar13 = (undefined8 *)((ulong)&pConfig->zName & 0xfffffffffffffff8);\n  uVar10 = (ulong)(((int)pConfig - (int)puVar13) + 0xa8U >> 3);\n  for (; uVar10 != 0; uVar10 = uVar10 - 1) {\n    *puVar13 = 0;\n    puVar13 = puVar13 + (ulong)bVar16 * -2 + 1;\n  }\n  pConfig->db = db;\n  pConfig->iCookie = -1;\n  ppcVar6 = (char **)sqlite3Fts5MallocZero(&rc,(long)nArg * 9);\n  pConfig->azCol = ppcVar6;\n  pConfig->abUnindexed = (u8 *)(ppcVar6 + nArg);\n  pcVar7 = sqlite3Fts5Strndup(&rc,azArg[1],-1);\n  pConfig->zDb = pcVar7;\n  pcVar7 = sqlite3Fts5Strndup(&rc,azArg[2],-1);\n  iVar5 = rc;\n  pConfig->zName = pcVar7;\n  pConfig->bColumnsize = 1;\n  pConfig->eDetail = 0;\n  if (rc == 0) {\n    iVar3 = sqlite3_stricmp(pcVar7,"rank");\n    if (iVar3 == 0) {\n      pcVar7 = sqlite3_mprintf("reserved fts5 table name: %s",pcVar7);\n      *pzErr = pcVar7;\n      rc = 1;\n      goto LAB_0017a364;\n    }\n    if (3 < nArg) {\n      lVar15 = 4;\n      local_c8 = -1;\nLAB_0017a558:\n      pcVar7 = azArg[lVar15 + -1];\n      zOne = (char *)0x0;\n      zTwo = (char *)0x0;\n      bMustBeCol = 0;\n      pcVar9 = fts5ConfigGobbleWord(&rc,pcVar7,&zOne,&bMustBeCol);\n      pcVar9 = fts5ConfigSkipWhitespace(pcVar9);\n      iVar3 = iVar5;\n      if ((pcVar9 != (char *)0x0) && (*pcVar9 == '=')) {\n        if (bMustBeCol == 0) {\n          pcVar9 = pcVar9 + 1;\n          iVar3 = 1;\n        }\n        else {\n          iVar3 = 1;\n          pcVar9 = (char *)0x0;\n        }\n      }\n      pcVar9 = fts5ConfigSkipWhitespace(pcVar9);\n      if ((pcVar9 == (char *)0x0) ||\n         ((pcVar14 = zOne, *pcVar9 != '\0' &&\n          ((pcVar9 = fts5ConfigGobbleWord(&rc,pcVar9,&zTwo,&bDummy), pcVar9 == (char *)0x0 ||\n           (pcVar14 = zOne, *pcVar9 != '\0')))))) {\n        iVar4 = rc;\n        if (rc == 0) {\n          pcVar7 = sqlite3_mprintf("parse error in \"%s\"",pcVar7);\n          *pzErr = pcVar7;\n          rc = 1;\n          iVar4 = rc;\n        }\n      }\n      else {\n        iVar4 = rc;\n        zOne = pcVar14;\n        if (rc == 0) {\n          if (iVar3 == 0) {\n            iVar4 = sqlite3_stricmp(pcVar14,"rank");\n            if ((iVar4 == 0) ||\n               (iVar4 = sqlite3_stricmp(pcVar14,"rowid"), pcVar7 = zTwo, iVar4 == 0)) {\n              pcVar7 = sqlite3_mprintf("reserved fts5 column name: %s",pcVar14);\n              *pzErr = pcVar7;\n              iVar3 = 1;\n            }\n            else if (zTwo != (char *)0x0) {\n              iVar3 = sqlite3_stricmp(zTwo,"unindexed");\n              if (iVar3 == 0) {\n                pConfig->abUnindexed[pConfig->nCol] = '\x01';\n                iVar3 = 0;\n              }\n              else {\n                pcVar7 = sqlite3_mprintf("unrecognized column option: %s",pcVar7);\n                *pzErr = pcVar7;\n                iVar3 = 1;\n              }\n            }\n            iVar4 = pConfig->nCol;\n            pConfig->nCol = iVar4 + 1;\n            pConfig->azCol[iVar4] = pcVar14;\n            zOne = (char *)0x0;\n            iVar4 = iVar3;\n          }\n          else {\n            pcVar7 = zTwo;\n            if (zTwo == (char *)0x0) {\n              pcVar7 = "";\n            }\n            bDummy = 0;\n            uVar10 = 0xffffffffffffffff;\n            pcVar9 = pcVar14;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n            } while (cVar1 != '\0');\n            N = (int)(~uVar10 - 1);\n            iVar4 = sqlite3_strnicmp("prefix",pcVar14,N);\n            if (iVar4 == 0) {\n              if (pConfig->aPrefix != (int *)0x0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar7;\n                  while (cVar1 == ' ') {\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                  }\n                  if ((cVar1 == ',') && (iVar3 == 0)) {\n                    cVar1 = pcVar7[1];\n                    pcVar7 = pcVar7 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar7 = pcVar7 + 1;\n                      cVar1 = *pcVar7;\n                    }\n                  }\n                  else {\n                    iVar4 = bDummy;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar7;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    pcVar7 = sqlite3_mprintf("malformed prefix=... directive");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  if (pConfig->nPrefix == 0x1f) {\n                    pcVar7 = sqlite3_mprintf("too many prefix indexes (max %d)",0x1f);\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  iVar3 = 0;\n                  do {\n                    iVar3 = cVar1 + -0x30 + iVar3 * 10;\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar3 < 1000);\n                  if (0x3e6 < iVar3 - 1U) goto LAB_0017a6fb;\n                  pConfig->aPrefix[pConfig->nPrefix] = iVar3;\n                  pConfig->nPrefix = pConfig->nPrefix + 1;\n                  iVar3 = 0;\n                } while( true );\n              }\n              piVar8 = (int *)sqlite3Fts5MallocZero(&bDummy,0x7c);\n              pConfig->aPrefix = piVar8;\n              iVar4 = bDummy;\n              if (bDummy == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar4 = sqlite3_strnicmp("tokenize",pcVar14,N);\n              if (iVar4 == 0) {\n                uVar10 = 0xffffffffffffffff;\n                pcVar9 = pcVar7;\n                do {\n                  if (uVar10 == 0) break;\n                  uVar10 = uVar10 - 1;\n                  cVar1 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                } while (cVar1 != '\0');\n                ppcVar6 = (char **)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 8);\n                pcVar9 = (char *)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 2);\n                if ((ppcVar6 != (char **)0x0) && (pcVar9 != (char *)0x0)) {\n                  if (pConfig->pTok == (Fts5Tokenizer *)0x0) {\n                    lVar11 = 0;\n                    if (*pcVar7 != '\0') {\n                      lVar11 = 0;\n                      pcVar14 = pcVar9;\n                      do {\n                        pcVar7 = fts5ConfigSkipWhitespace(pcVar7);\n                        if (*pcVar7 == '\'') {\n                          pIn = fts5ConfigSkipLiteral(pcVar7);\n                        }\n                        else {\n                          pIn = fts5ConfigSkipBareword(pcVar7);\n                        }\n                        if (pIn == (char *)0x0) {\nLAB_0017a8ef:\n                          pcVar7 = sqlite3_mprintf("parse error in tokenize directive");\n                          *pzErr = pcVar7;\n                          bDummy = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(pcVar14,pcVar7,(long)pIn - (long)pcVar7);\n                        ppcVar6[lVar11] = pcVar14;\n                        sqlite3Fts5Dequote(pcVar14);\n                        pcVar14 = pcVar14 + ((long)pIn - (long)pcVar7) + 1;\n                        pcVar7 = fts5ConfigSkipWhitespace(pIn);\n                        lVar11 = lVar11 + 1;\n                        if (pcVar7 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar7 != '\0');\n                    }\n                    bDummy = sqlite3Fts5GetTokenizer\n                                       (pGlobal,ppcVar6,(int)lVar11,&pConfig->pTok,&pConfig->pTokApi\n                                        ,pzErr);\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple tokenize=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                  }\n                }\nLAB_0017a842:\n                sqlite3_free(ppcVar6);\n                sqlite3_free(pcVar9);\n                iVar4 = bDummy;\n              }\n              else {\n                iVar4 = sqlite3_strnicmp("content",pcVar14,N);\n                if (iVar4 == 0) {\n                  if (pConfig->eContent == 0) {\n                    if (*pcVar7 == '\0') {\n                      pConfig->eContent = 1;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pConfig->eContent = 2;\n                      pcVar7 = sqlite3Fts5Mprintf(&bDummy,"%Q.%Q",pConfig->zDb,pcVar7);\n                      pConfig->zContent = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple content=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                  }\n                }\n                else {\n                  iVar4 = sqlite3_strnicmp("content_rowid",pcVar14,N);\n                  if (iVar4 == 0) {\n                    if (pConfig->zContentRowid == (char *)0x0) {\n                      pcVar7 = sqlite3Fts5Strndup(&bDummy,pcVar7,-1);\n                      pConfig->zContentRowid = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pcVar7 = sqlite3_mprintf("multiple content_rowid=... directives");\n                      *pzErr = pcVar7;\n                      bDummy = 1;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    iVar4 = sqlite3_strnicmp("columnsize",pcVar14,N);\n                    if (iVar4 == 0) {\n                      if (((byte)(*pcVar7 - 0x30U) < 2) && (pcVar7[1] == '\0')) {\n                        pConfig->bColumnsize = (uint)(*pcVar7 == '1');\n                        iVar4 = bDummy;\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("malformed columnsize=... directive");\n                        *pzErr = pcVar7;\n                        bDummy = 1;\n                        iVar4 = bDummy;\n                      }\n                    }\n                    else {\n                      iVar4 = sqlite3_strnicmp("detail",pcVar14,N);\n                      if (iVar4 == 0) {\n                        aDetail[0].zName = "none";\n                        aDetail[0].eVal = 1;\n                        aDetail[1].zName = "full";\n                        aDetail[1].eVal = 0;\n                        aDetail[2].zName = "columns";\n                        aDetail[2].eVal = 2;\n                        aDetail[3].zName = (char *)0x0;\n                        aDetail[3].eVal = 0;\n                        lVar11 = -1;\n                        pcVar9 = pcVar7;\n                        do {\n                          if (lVar11 == 0) break;\n                          lVar11 = lVar11 + -1;\n                          cVar1 = *pcVar9;\n                          pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pFVar12 = aDetail;\n                        pcVar9 = "none";\n                        iVar3 = local_c8;\n                        do {\n                          pFVar12 = pFVar12 + 1;\n                          iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1);\n                          if (iVar4 == 0) {\n                            if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar3 = pFVar12[-1].eVal;\n                          }\n                          pcVar9 = pFVar12->zName;\n                        } while (pcVar9 != (char *)0x0);\n                        pConfig->eDetail = iVar3;\n                        bDummy = -(iVar3 >> 0x1f);\n                        iVar4 = bDummy;\n                        if (bDummy != 0) {\nLAB_0017ab15:\n                          pcVar7 = sqlite3_mprintf("malformed detail=... directive");\n                          *pzErr = pcVar7;\n                          iVar4 = bDummy;\n                        }\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14);\n                        *pzErr = pcVar7;\n                        iVar4 = iVar3;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_0017a527;\n    }\nLAB_0017a368:\n    if (pConfig->pTok == (Fts5Tokenizer *)0x0) {\n      rc = sqlite3Fts5GetTokenizer\n                     (pGlobal,(char **)0x0,0,&pConfig->pTok,&pConfig->pTokApi,(char **)0x0);\n    }\n  }\n  else {\nLAB_0017a364:\n    if (rc == 0) goto LAB_0017a368;\n  }\n  if (rc == 0) {\n    if (pConfig->zContent == (char *)0x0) {\n      if (pConfig->eContent == 0) {\n        pcVar7 = "content";\n      }\n      else {\n        pcVar7 = "docsize";\n        if (pConfig->bColumnsize == 0) goto LAB_0017a389;\n      }\n      pcVar7 = sqlite3Fts5Mprintf(&rc,"%Q.\'%q_%s\'",pConfig->zDb,pConfig->zName,pcVar7);\n      pConfig->zContent = pcVar7;\n      if (rc != 0) goto LAB_0017acb0;\n    }\nLAB_0017a389:\n    if (pConfig->zContentRowid == (char *)0x0) {\n      pcVar7 = sqlite3Fts5Strndup(&rc,"rowid",-1);\n      pConfig->zContentRowid = pcVar7;\n      if (rc != 0) goto LAB_0017acb0;\n    }\n    zOne = (char *)((ulong)zOne & 0xffffffff00000000);\n    zTwo = (char *)0x0;\n    local_90 = 0;\n    local_8c = 0;\n    sqlite3Fts5BufferAppendPrintf((int *)&zOne,(Fts5Buffer *)&zTwo,"T.%Q",pConfig->zContentRowid);\n    if ((pConfig->eContent != 1) && (0 < pConfig->nCol)) {\n      uVar10 = 0;\n      do {\n        if (pConfig->eContent == 2) {\n          sqlite3Fts5BufferAppendPrintf\n                    ((int *)&zOne,(Fts5Buffer *)&zTwo,", T.%Q",pConfig->azCol[uVar10]);\n        }\n        else {\n          sqlite3Fts5BufferAppendPrintf\n                    ((int *)&zOne,(Fts5Buffer *)&zTwo,", T.c%d",uVar10 & 0xffffffff);\n        }\n        uVar10 = uVar10 + 1;\n      } while ((int)uVar10 < pConfig->nCol);\n    }\n    pConfig->zContentExprlist = zTwo;\n    rc = (int)zOne;\n    iVar5 = (int)zOne;\n    if ((int)zOne == 0) goto LAB_0017ad22;\n  }\nLAB_0017acb0:\n  sqlite3Fts5ConfigFree(pConfig);\n  *ppOut = (Fts5Config *)0x0;\n  iVar5 = rc;\nLAB_0017ad22:\n  if (lVar2 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return iVar5;\nLAB_0017a6fb:\n  pcVar7 = sqlite3_mprintf("prefix length out of range (max 999)");\n  *pzErr = pcVar7;\n  bDummy = 1;\n  iVar4 = bDummy;\nLAB_0017a527:\n  rc = iVar4;\n  sqlite3_free(zOne);\n  sqlite3_free(zTwo);\n  iVar3 = (int)lVar15;\n  lVar15 = lVar15 + 1;\n  if (nArg <= iVar3 || rc != 0) goto LAB_0017a364;\n  goto LAB_0017a558;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "Fts5Config *pConfig;" type_identifier (pointer_declarator "*pConfig" * identifier) ;) (declaration "char **ppcVar6;" primitive_type (pointer_declarator "**ppcVar6" * (pointer_declarator "*ppcVar6" * identifier)) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "char *pIn;" primitive_type (pointer_declarator "*pIn" * identifier) ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "int N;" primitive_type identifier ;) (declaration "Fts5Enum *pFVar12;" type_identifier (pointer_declarator "*pFVar12" * identifier) ;) (declaration "undefined8 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "long lVar15;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar16;" type_identifier identifier ;) (declaration "int local_c8;" primitive_type identifier ;) (declaration "int rc;" primitive_type identifier ;) (declaration "int bMustBeCol;" primitive_type identifier ;) (declaration "int bDummy;" primitive_type identifier ;) (declaration "char *zOne;" primitive_type (pointer_declarator "*zOne" * identifier) ;) (declaration "char *zTwo;" primitive_type (pointer_declarator "*zTwo" * identifier) ;) (declaration "int local_90;" primitive_type identifier ;) (declaration "int local_8c;" primitive_type identifier ;) (declaration "Fts5Enum aDetail [4];" type_identifier (array_declarator "aDetail [4]" identifier [ number_literal ]) ;) (expression_statement "bVar16 = 0;" (assignment_expression "bVar16 = 0" identifier = number_literal) ;) (expression_statement "lVar2 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lVar2 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "rc = 0;" (assignment_expression "rc = 0" identifier = number_literal) ;) (expression_statement "pConfig = (Fts5Config *)sqlite3_malloc(0xa8);" (assignment_expression "pConfig = (Fts5Config *)sqlite3_malloc(0xa8)" identifier = (cast_expression "(Fts5Config *)sqlite3_malloc(0xa8)" ( (type_descriptor "Fts5Config *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3_malloc(0xa8)" identifier (argument_list "(0xa8)" ( number_literal ))))) ;) (expression_statement "*ppOut = pConfig;" (assignment_expression "*ppOut = pConfig" (pointer_expression "*ppOut" * identifier) = identifier) ;) (if_statement "if (pConfig == (Fts5Config *)0x0) {\n    iVar5 = 7;\n    goto LAB_0017ad22;\n  }" if (parenthesized_expression "(pConfig == (Fts5Config *)0x0)" ( (binary_expression "pConfig == (Fts5Config *)0x0" identifier == (cast_expression "(Fts5Config *)0x0" ( (type_descriptor "Fts5Config *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar5 = 7;\n    goto LAB_0017ad22;\n  }" { (expression_statement "iVar5 = 7;" (assignment_expression "iVar5 = 7" identifier = number_literal) ;) (goto_statement "goto LAB_0017ad22;" goto statement_identifier ;) })) (expression_statement "pConfig->zDb = (char *)0x0;" (assignment_expression "pConfig->zDb = (char *)0x0" (field_expression "pConfig->zDb" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pConfig->pzErrmsg = (char **)0x0;" (assignment_expression "pConfig->pzErrmsg = (char **)0x0" (field_expression "pConfig->pzErrmsg" identifier -> field_identifier) = (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "puVar13 = (undefined8 *)((ulong)&pConfig->zName & 0xfffffffffffffff8);" (assignment_expression "puVar13 = (undefined8 *)((ulong)&pConfig->zName & 0xfffffffffffffff8)" identifier = (cast_expression "(undefined8 *)((ulong)&pConfig->zName & 0xfffffffffffffff8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)&pConfig->zName & 0xfffffffffffffff8)" ( (binary_expression "(ulong)&pConfig->zName & 0xfffffffffffffff8" (binary_expression "(ulong)&pConfig->zName" (parenthesized_expression "(ulong)" ( identifier )) & (field_expression "pConfig->zName" identifier -> field_identifier)) & number_literal) )))) ;) (expression_statement "uVar10 = (ulong)(((int)pConfig - (int)puVar13) + 0xa8U >> 3);" (assignment_expression "uVar10 = (ulong)(((int)pConfig - (int)puVar13) + 0xa8U >> 3)" identifier = (call_expression "(ulong)(((int)pConfig - (int)puVar13) + 0xa8U >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(((int)pConfig - (int)puVar13) + 0xa8U >> 3)" ( (binary_expression "((int)pConfig - (int)puVar13) + 0xa8U >> 3" (binary_expression "((int)pConfig - (int)puVar13) + 0xa8U" (parenthesized_expression "((int)pConfig - (int)puVar13)" ( (binary_expression "(int)pConfig - (int)puVar13" (cast_expression "(int)pConfig" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) + number_literal) >> number_literal) )))) ;) (for_statement "for (; uVar10 != 0; uVar10 = uVar10 - 1) {\n    *puVar13 = 0;\n    puVar13 = puVar13 + (ulong)bVar16 * -2 + 1;\n  }" for ( ; (binary_expression "uVar10 != 0" identifier != number_literal) ; (assignment_expression "uVar10 = uVar10 - 1" identifier = (binary_expression "uVar10 - 1" identifier - number_literal)) ) (compound_statement "{\n    *puVar13 = 0;\n    puVar13 = puVar13 + (ulong)bVar16 * -2 + 1;\n  }" { (expression_statement "*puVar13 = 0;" (assignment_expression "*puVar13 = 0" (pointer_expression "*puVar13" * identifier) = number_literal) ;) (expression_statement "puVar13 = puVar13 + (ulong)bVar16 * -2 + 1;" (assignment_expression "puVar13 = puVar13 + (ulong)bVar16 * -2 + 1" identifier = (binary_expression "puVar13 + (ulong)bVar16 * -2 + 1" (binary_expression "puVar13 + (ulong)bVar16 * -2" identifier + (binary_expression "(ulong)bVar16 * -2" (cast_expression "(ulong)bVar16" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "pConfig->db = db;" (assignment_expression "pConfig->db = db" (field_expression "pConfig->db" identifier -> field_identifier) = identifier) ;) (expression_statement "pConfig->iCookie = -1;" (assignment_expression "pConfig->iCookie = -1" (field_expression "pConfig->iCookie" identifier -> field_identifier) = number_literal) ;) (expression_statement "ppcVar6 = (char **)sqlite3Fts5MallocZero(&rc,(long)nArg * 9);" (assignment_expression "ppcVar6 = (char **)sqlite3Fts5MallocZero(&rc,(long)nArg * 9)" identifier = (cast_expression "(char **)sqlite3Fts5MallocZero(&rc,(long)nArg * 9)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "sqlite3Fts5MallocZero(&rc,(long)nArg * 9)" identifier (argument_list "(&rc,(long)nArg * 9)" ( (pointer_expression "&rc" & identifier) , (binary_expression "(long)nArg * 9" (cast_expression "(long)nArg" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal) ))))) ;) (expression_statement "pConfig->azCol = ppcVar6;" (assignment_expression "pConfig->azCol = ppcVar6" (field_expression "pConfig->azCol" identifier -> field_identifier) = identifier) ;) (expression_statement "pConfig->abUnindexed = (u8 *)(ppcVar6 + nArg);" (assignment_expression "pConfig->abUnindexed = (u8 *)(ppcVar6 + nArg)" (field_expression "pConfig->abUnindexed" identifier -> field_identifier) = (cast_expression "(u8 *)(ppcVar6 + nArg)" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppcVar6 + nArg)" ( (binary_expression "ppcVar6 + nArg" identifier + identifier) )))) ;) (expression_statement "pcVar7 = sqlite3Fts5Strndup(&rc,azArg[1],-1);" (assignment_expression "pcVar7 = sqlite3Fts5Strndup(&rc,azArg[1],-1)" identifier = (call_expression "sqlite3Fts5Strndup(&rc,azArg[1],-1)" identifier (argument_list "(&rc,azArg[1],-1)" ( (pointer_expression "&rc" & identifier) , (subscript_expression "azArg[1]" identifier [ number_literal ]) , number_literal )))) ;) (expression_statement "pConfig->zDb = pcVar7;" (assignment_expression "pConfig->zDb = pcVar7" (field_expression "pConfig->zDb" identifier -> field_identifier) = identifier) ;) (expression_statement "pcVar7 = sqlite3Fts5Strndup(&rc,azArg[2],-1);" (assignment_expression "pcVar7 = sqlite3Fts5Strndup(&rc,azArg[2],-1)" identifier = (call_expression "sqlite3Fts5Strndup(&rc,azArg[2],-1)" identifier (argument_list "(&rc,azArg[2],-1)" ( (pointer_expression "&rc" & identifier) , (subscript_expression "azArg[2]" identifier [ number_literal ]) , number_literal )))) ;) (expression_statement "iVar5 = rc;" (assignment_expression "iVar5 = rc" identifier = identifier) ;) (expression_statement "pConfig->zName = pcVar7;" (assignment_expression "pConfig->zName = pcVar7" (field_expression "pConfig->zName" identifier -> field_identifier) = identifier) ;) (expression_statement "pConfig->bColumnsize = 1;" (assignment_expression "pConfig->bColumnsize = 1" (field_expression "pConfig->bColumnsize" identifier -> field_identifier) = number_literal) ;) (expression_statement "pConfig->eDetail = 0;" (assignment_expression "pConfig->eDetail = 0" (field_expression "pConfig->eDetail" identifier -> field_identifier) = number_literal) ;) (if_statement "if (rc == 0) {\n    iVar3 = sqlite3_stricmp(pcVar7,"rank");\n    if (iVar3 == 0) {\n      pcVar7 = sqlite3_mprintf("reserved fts5 table name: %s",pcVar7);\n      *pzErr = pcVar7;\n      rc = 1;\n      goto LAB_0017a364;\n    }\n    if (3 < nArg) {\n      lVar15 = 4;\n      local_c8 = -1;\nLAB_0017a558:\n      pcVar7 = azArg[lVar15 + -1];\n      zOne = (char *)0x0;\n      zTwo = (char *)0x0;\n      bMustBeCol = 0;\n      pcVar9 = fts5ConfigGobbleWord(&rc,pcVar7,&zOne,&bMustBeCol);\n      pcVar9 = fts5ConfigSkipWhitespace(pcVar9);\n      iVar3 = iVar5;\n      if ((pcVar9 != (char *)0x0) && (*pcVar9 == '=')) {\n        if (bMustBeCol == 0) {\n          pcVar9 = pcVar9 + 1;\n          iVar3 = 1;\n        }\n        else {\n          iVar3 = 1;\n          pcVar9 = (char *)0x0;\n        }\n      }\n      pcVar9 = fts5ConfigSkipWhitespace(pcVar9);\n      if ((pcVar9 == (char *)0x0) ||\n         ((pcVar14 = zOne, *pcVar9 != '\0' &&\n          ((pcVar9 = fts5ConfigGobbleWord(&rc,pcVar9,&zTwo,&bDummy), pcVar9 == (char *)0x0 ||\n           (pcVar14 = zOne, *pcVar9 != '\0')))))) {\n        iVar4 = rc;\n        if (rc == 0) {\n          pcVar7 = sqlite3_mprintf("parse error in \"%s\"",pcVar7);\n          *pzErr = pcVar7;\n          rc = 1;\n          iVar4 = rc;\n        }\n      }\n      else {\n        iVar4 = rc;\n        zOne = pcVar14;\n        if (rc == 0) {\n          if (iVar3 == 0) {\n            iVar4 = sqlite3_stricmp(pcVar14,"rank");\n            if ((iVar4 == 0) ||\n               (iVar4 = sqlite3_stricmp(pcVar14,"rowid"), pcVar7 = zTwo, iVar4 == 0)) {\n              pcVar7 = sqlite3_mprintf("reserved fts5 column name: %s",pcVar14);\n              *pzErr = pcVar7;\n              iVar3 = 1;\n            }\n            else if (zTwo != (char *)0x0) {\n              iVar3 = sqlite3_stricmp(zTwo,"unindexed");\n              if (iVar3 == 0) {\n                pConfig->abUnindexed[pConfig->nCol] = '\x01';\n                iVar3 = 0;\n              }\n              else {\n                pcVar7 = sqlite3_mprintf("unrecognized column option: %s",pcVar7);\n                *pzErr = pcVar7;\n                iVar3 = 1;\n              }\n            }\n            iVar4 = pConfig->nCol;\n            pConfig->nCol = iVar4 + 1;\n            pConfig->azCol[iVar4] = pcVar14;\n            zOne = (char *)0x0;\n            iVar4 = iVar3;\n          }\n          else {\n            pcVar7 = zTwo;\n            if (zTwo == (char *)0x0) {\n              pcVar7 = "";\n            }\n            bDummy = 0;\n            uVar10 = 0xffffffffffffffff;\n            pcVar9 = pcVar14;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n            } while (cVar1 != '\0');\n            N = (int)(~uVar10 - 1);\n            iVar4 = sqlite3_strnicmp("prefix",pcVar14,N);\n            if (iVar4 == 0) {\n              if (pConfig->aPrefix != (int *)0x0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar7;\n                  while (cVar1 == ' ') {\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                  }\n                  if ((cVar1 == ',') && (iVar3 == 0)) {\n                    cVar1 = pcVar7[1];\n                    pcVar7 = pcVar7 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar7 = pcVar7 + 1;\n                      cVar1 = *pcVar7;\n                    }\n                  }\n                  else {\n                    iVar4 = bDummy;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar7;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    pcVar7 = sqlite3_mprintf("malformed prefix=... directive");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  if (pConfig->nPrefix == 0x1f) {\n                    pcVar7 = sqlite3_mprintf("too many prefix indexes (max %d)",0x1f);\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  iVar3 = 0;\n                  do {\n                    iVar3 = cVar1 + -0x30 + iVar3 * 10;\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar3 < 1000);\n                  if (0x3e6 < iVar3 - 1U) goto LAB_0017a6fb;\n                  pConfig->aPrefix[pConfig->nPrefix] = iVar3;\n                  pConfig->nPrefix = pConfig->nPrefix + 1;\n                  iVar3 = 0;\n                } while( true );\n              }\n              piVar8 = (int *)sqlite3Fts5MallocZero(&bDummy,0x7c);\n              pConfig->aPrefix = piVar8;\n              iVar4 = bDummy;\n              if (bDummy == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar4 = sqlite3_strnicmp("tokenize",pcVar14,N);\n              if (iVar4 == 0) {\n                uVar10 = 0xffffffffffffffff;\n                pcVar9 = pcVar7;\n                do {\n                  if (uVar10 == 0) break;\n                  uVar10 = uVar10 - 1;\n                  cVar1 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                } while (cVar1 != '\0');\n                ppcVar6 = (char **)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 8);\n                pcVar9 = (char *)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 2);\n                if ((ppcVar6 != (char **)0x0) && (pcVar9 != (char *)0x0)) {\n                  if (pConfig->pTok == (Fts5Tokenizer *)0x0) {\n                    lVar11 = 0;\n                    if (*pcVar7 != '\0') {\n                      lVar11 = 0;\n                      pcVar14 = pcVar9;\n                      do {\n                        pcVar7 = fts5ConfigSkipWhitespace(pcVar7);\n                        if (*pcVar7 == '\'') {\n                          pIn = fts5ConfigSkipLiteral(pcVar7);\n                        }\n                        else {\n                          pIn = fts5ConfigSkipBareword(pcVar7);\n                        }\n                        if (pIn == (char *)0x0) {\nLAB_0017a8ef:\n                          pcVar7 = sqlite3_mprintf("parse error in tokenize directive");\n                          *pzErr = pcVar7;\n                          bDummy = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(pcVar14,pcVar7,(long)pIn - (long)pcVar7);\n                        ppcVar6[lVar11] = pcVar14;\n                        sqlite3Fts5Dequote(pcVar14);\n                        pcVar14 = pcVar14 + ((long)pIn - (long)pcVar7) + 1;\n                        pcVar7 = fts5ConfigSkipWhitespace(pIn);\n                        lVar11 = lVar11 + 1;\n                        if (pcVar7 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar7 != '\0');\n                    }\n                    bDummy = sqlite3Fts5GetTokenizer\n                                       (pGlobal,ppcVar6,(int)lVar11,&pConfig->pTok,&pConfig->pTokApi\n                                        ,pzErr);\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple tokenize=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                  }\n                }\nLAB_0017a842:\n                sqlite3_free(ppcVar6);\n                sqlite3_free(pcVar9);\n                iVar4 = bDummy;\n              }\n              else {\n                iVar4 = sqlite3_strnicmp("content",pcVar14,N);\n                if (iVar4 == 0) {\n                  if (pConfig->eContent == 0) {\n                    if (*pcVar7 == '\0') {\n                      pConfig->eContent = 1;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pConfig->eContent = 2;\n                      pcVar7 = sqlite3Fts5Mprintf(&bDummy,"%Q.%Q",pConfig->zDb,pcVar7);\n                      pConfig->zContent = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple content=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                  }\n                }\n                else {\n                  iVar4 = sqlite3_strnicmp("content_rowid",pcVar14,N);\n                  if (iVar4 == 0) {\n                    if (pConfig->zContentRowid == (char *)0x0) {\n                      pcVar7 = sqlite3Fts5Strndup(&bDummy,pcVar7,-1);\n                      pConfig->zContentRowid = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pcVar7 = sqlite3_mprintf("multiple content_rowid=... directives");\n                      *pzErr = pcVar7;\n                      bDummy = 1;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    iVar4 = sqlite3_strnicmp("columnsize",pcVar14,N);\n                    if (iVar4 == 0) {\n                      if (((byte)(*pcVar7 - 0x30U) < 2) && (pcVar7[1] == '\0')) {\n                        pConfig->bColumnsize = (uint)(*pcVar7 == '1');\n                        iVar4 = bDummy;\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("malformed columnsize=... directive");\n                        *pzErr = pcVar7;\n                        bDummy = 1;\n                        iVar4 = bDummy;\n                      }\n                    }\n                    else {\n                      iVar4 = sqlite3_strnicmp("detail",pcVar14,N);\n                      if (iVar4 == 0) {\n                        aDetail[0].zName = "none";\n                        aDetail[0].eVal = 1;\n                        aDetail[1].zName = "full";\n                        aDetail[1].eVal = 0;\n                        aDetail[2].zName = "columns";\n                        aDetail[2].eVal = 2;\n                        aDetail[3].zName = (char *)0x0;\n                        aDetail[3].eVal = 0;\n                        lVar11 = -1;\n                        pcVar9 = pcVar7;\n                        do {\n                          if (lVar11 == 0) break;\n                          lVar11 = lVar11 + -1;\n                          cVar1 = *pcVar9;\n                          pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pFVar12 = aDetail;\n                        pcVar9 = "none";\n                        iVar3 = local_c8;\n                        do {\n                          pFVar12 = pFVar12 + 1;\n                          iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1);\n                          if (iVar4 == 0) {\n                            if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar3 = pFVar12[-1].eVal;\n                          }\n                          pcVar9 = pFVar12->zName;\n                        } while (pcVar9 != (char *)0x0);\n                        pConfig->eDetail = iVar3;\n                        bDummy = -(iVar3 >> 0x1f);\n                        iVar4 = bDummy;\n                        if (bDummy != 0) {\nLAB_0017ab15:\n                          pcVar7 = sqlite3_mprintf("malformed detail=... directive");\n                          *pzErr = pcVar7;\n                          iVar4 = bDummy;\n                        }\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14);\n                        *pzErr = pcVar7;\n                        iVar4 = iVar3;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_0017a527;\n    }\nLAB_0017a368:\n    if (pConfig->pTok == (Fts5Tokenizer *)0x0) {\n      rc = sqlite3Fts5GetTokenizer\n                     (pGlobal,(char **)0x0,0,&pConfig->pTok,&pConfig->pTokApi,(char **)0x0);\n    }\n  }\n  else {\nLAB_0017a364:\n    if (rc == 0) goto LAB_0017a368;\n  }" if (parenthesized_expression "(rc == 0)" ( (binary_expression "rc == 0" identifier == number_literal) )) (compound_statement "{\n    iVar3 = sqlite3_stricmp(pcVar7,"rank");\n    if (iVar3 == 0) {\n      pcVar7 = sqlite3_mprintf("reserved fts5 table name: %s",pcVar7);\n      *pzErr = pcVar7;\n      rc = 1;\n      goto LAB_0017a364;\n    }\n    if (3 < nArg) {\n      lVar15 = 4;\n      local_c8 = -1;\nLAB_0017a558:\n      pcVar7 = azArg[lVar15 + -1];\n      zOne = (char *)0x0;\n      zTwo = (char *)0x0;\n      bMustBeCol = 0;\n      pcVar9 = fts5ConfigGobbleWord(&rc,pcVar7,&zOne,&bMustBeCol);\n      pcVar9 = fts5ConfigSkipWhitespace(pcVar9);\n      iVar3 = iVar5;\n      if ((pcVar9 != (char *)0x0) && (*pcVar9 == '=')) {\n        if (bMustBeCol == 0) {\n          pcVar9 = pcVar9 + 1;\n          iVar3 = 1;\n        }\n        else {\n          iVar3 = 1;\n          pcVar9 = (char *)0x0;\n        }\n      }\n      pcVar9 = fts5ConfigSkipWhitespace(pcVar9);\n      if ((pcVar9 == (char *)0x0) ||\n         ((pcVar14 = zOne, *pcVar9 != '\0' &&\n          ((pcVar9 = fts5ConfigGobbleWord(&rc,pcVar9,&zTwo,&bDummy), pcVar9 == (char *)0x0 ||\n           (pcVar14 = zOne, *pcVar9 != '\0')))))) {\n        iVar4 = rc;\n        if (rc == 0) {\n          pcVar7 = sqlite3_mprintf("parse error in \"%s\"",pcVar7);\n          *pzErr = pcVar7;\n          rc = 1;\n          iVar4 = rc;\n        }\n      }\n      else {\n        iVar4 = rc;\n        zOne = pcVar14;\n        if (rc == 0) {\n          if (iVar3 == 0) {\n            iVar4 = sqlite3_stricmp(pcVar14,"rank");\n            if ((iVar4 == 0) ||\n               (iVar4 = sqlite3_stricmp(pcVar14,"rowid"), pcVar7 = zTwo, iVar4 == 0)) {\n              pcVar7 = sqlite3_mprintf("reserved fts5 column name: %s",pcVar14);\n              *pzErr = pcVar7;\n              iVar3 = 1;\n            }\n            else if (zTwo != (char *)0x0) {\n              iVar3 = sqlite3_stricmp(zTwo,"unindexed");\n              if (iVar3 == 0) {\n                pConfig->abUnindexed[pConfig->nCol] = '\x01';\n                iVar3 = 0;\n              }\n              else {\n                pcVar7 = sqlite3_mprintf("unrecognized column option: %s",pcVar7);\n                *pzErr = pcVar7;\n                iVar3 = 1;\n              }\n            }\n            iVar4 = pConfig->nCol;\n            pConfig->nCol = iVar4 + 1;\n            pConfig->azCol[iVar4] = pcVar14;\n            zOne = (char *)0x0;\n            iVar4 = iVar3;\n          }\n          else {\n            pcVar7 = zTwo;\n            if (zTwo == (char *)0x0) {\n              pcVar7 = "";\n            }\n            bDummy = 0;\n            uVar10 = 0xffffffffffffffff;\n            pcVar9 = pcVar14;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n            } while (cVar1 != '\0');\n            N = (int)(~uVar10 - 1);\n            iVar4 = sqlite3_strnicmp("prefix",pcVar14,N);\n            if (iVar4 == 0) {\n              if (pConfig->aPrefix != (int *)0x0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar7;\n                  while (cVar1 == ' ') {\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                  }\n                  if ((cVar1 == ',') && (iVar3 == 0)) {\n                    cVar1 = pcVar7[1];\n                    pcVar7 = pcVar7 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar7 = pcVar7 + 1;\n                      cVar1 = *pcVar7;\n                    }\n                  }\n                  else {\n                    iVar4 = bDummy;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar7;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    pcVar7 = sqlite3_mprintf("malformed prefix=... directive");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  if (pConfig->nPrefix == 0x1f) {\n                    pcVar7 = sqlite3_mprintf("too many prefix indexes (max %d)",0x1f);\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  iVar3 = 0;\n                  do {\n                    iVar3 = cVar1 + -0x30 + iVar3 * 10;\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar3 < 1000);\n                  if (0x3e6 < iVar3 - 1U) goto LAB_0017a6fb;\n                  pConfig->aPrefix[pConfig->nPrefix] = iVar3;\n                  pConfig->nPrefix = pConfig->nPrefix + 1;\n                  iVar3 = 0;\n                } while( true );\n              }\n              piVar8 = (int *)sqlite3Fts5MallocZero(&bDummy,0x7c);\n              pConfig->aPrefix = piVar8;\n              iVar4 = bDummy;\n              if (bDummy == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar4 = sqlite3_strnicmp("tokenize",pcVar14,N);\n              if (iVar4 == 0) {\n                uVar10 = 0xffffffffffffffff;\n                pcVar9 = pcVar7;\n                do {\n                  if (uVar10 == 0) break;\n                  uVar10 = uVar10 - 1;\n                  cVar1 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                } while (cVar1 != '\0');\n                ppcVar6 = (char **)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 8);\n                pcVar9 = (char *)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 2);\n                if ((ppcVar6 != (char **)0x0) && (pcVar9 != (char *)0x0)) {\n                  if (pConfig->pTok == (Fts5Tokenizer *)0x0) {\n                    lVar11 = 0;\n                    if (*pcVar7 != '\0') {\n                      lVar11 = 0;\n                      pcVar14 = pcVar9;\n                      do {\n                        pcVar7 = fts5ConfigSkipWhitespace(pcVar7);\n                        if (*pcVar7 == '\'') {\n                          pIn = fts5ConfigSkipLiteral(pcVar7);\n                        }\n                        else {\n                          pIn = fts5ConfigSkipBareword(pcVar7);\n                        }\n                        if (pIn == (char *)0x0) {\nLAB_0017a8ef:\n                          pcVar7 = sqlite3_mprintf("parse error in tokenize directive");\n                          *pzErr = pcVar7;\n                          bDummy = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(pcVar14,pcVar7,(long)pIn - (long)pcVar7);\n                        ppcVar6[lVar11] = pcVar14;\n                        sqlite3Fts5Dequote(pcVar14);\n                        pcVar14 = pcVar14 + ((long)pIn - (long)pcVar7) + 1;\n                        pcVar7 = fts5ConfigSkipWhitespace(pIn);\n                        lVar11 = lVar11 + 1;\n                        if (pcVar7 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar7 != '\0');\n                    }\n                    bDummy = sqlite3Fts5GetTokenizer\n                                       (pGlobal,ppcVar6,(int)lVar11,&pConfig->pTok,&pConfig->pTokApi\n                                        ,pzErr);\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple tokenize=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                  }\n                }\nLAB_0017a842:\n                sqlite3_free(ppcVar6);\n                sqlite3_free(pcVar9);\n                iVar4 = bDummy;\n              }\n              else {\n                iVar4 = sqlite3_strnicmp("content",pcVar14,N);\n                if (iVar4 == 0) {\n                  if (pConfig->eContent == 0) {\n                    if (*pcVar7 == '\0') {\n                      pConfig->eContent = 1;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pConfig->eContent = 2;\n                      pcVar7 = sqlite3Fts5Mprintf(&bDummy,"%Q.%Q",pConfig->zDb,pcVar7);\n                      pConfig->zContent = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple content=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                  }\n                }\n                else {\n                  iVar4 = sqlite3_strnicmp("content_rowid",pcVar14,N);\n                  if (iVar4 == 0) {\n                    if (pConfig->zContentRowid == (char *)0x0) {\n                      pcVar7 = sqlite3Fts5Strndup(&bDummy,pcVar7,-1);\n                      pConfig->zContentRowid = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pcVar7 = sqlite3_mprintf("multiple content_rowid=... directives");\n                      *pzErr = pcVar7;\n                      bDummy = 1;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    iVar4 = sqlite3_strnicmp("columnsize",pcVar14,N);\n                    if (iVar4 == 0) {\n                      if (((byte)(*pcVar7 - 0x30U) < 2) && (pcVar7[1] == '\0')) {\n                        pConfig->bColumnsize = (uint)(*pcVar7 == '1');\n                        iVar4 = bDummy;\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("malformed columnsize=... directive");\n                        *pzErr = pcVar7;\n                        bDummy = 1;\n                        iVar4 = bDummy;\n                      }\n                    }\n                    else {\n                      iVar4 = sqlite3_strnicmp("detail",pcVar14,N);\n                      if (iVar4 == 0) {\n                        aDetail[0].zName = "none";\n                        aDetail[0].eVal = 1;\n                        aDetail[1].zName = "full";\n                        aDetail[1].eVal = 0;\n                        aDetail[2].zName = "columns";\n                        aDetail[2].eVal = 2;\n                        aDetail[3].zName = (char *)0x0;\n                        aDetail[3].eVal = 0;\n                        lVar11 = -1;\n                        pcVar9 = pcVar7;\n                        do {\n                          if (lVar11 == 0) break;\n                          lVar11 = lVar11 + -1;\n                          cVar1 = *pcVar9;\n                          pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pFVar12 = aDetail;\n                        pcVar9 = "none";\n                        iVar3 = local_c8;\n                        do {\n                          pFVar12 = pFVar12 + 1;\n                          iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1);\n                          if (iVar4 == 0) {\n                            if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar3 = pFVar12[-1].eVal;\n                          }\n                          pcVar9 = pFVar12->zName;\n                        } while (pcVar9 != (char *)0x0);\n                        pConfig->eDetail = iVar3;\n                        bDummy = -(iVar3 >> 0x1f);\n                        iVar4 = bDummy;\n                        if (bDummy != 0) {\nLAB_0017ab15:\n                          pcVar7 = sqlite3_mprintf("malformed detail=... directive");\n                          *pzErr = pcVar7;\n                          iVar4 = bDummy;\n                        }\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14);\n                        *pzErr = pcVar7;\n                        iVar4 = iVar3;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_0017a527;\n    }\nLAB_0017a368:\n    if (pConfig->pTok == (Fts5Tokenizer *)0x0) {\n      rc = sqlite3Fts5GetTokenizer\n                     (pGlobal,(char **)0x0,0,&pConfig->pTok,&pConfig->pTokApi,(char **)0x0);\n    }\n  }" { (expression_statement "iVar3 = sqlite3_stricmp(pcVar7,"rank");" (assignment_expression "iVar3 = sqlite3_stricmp(pcVar7,"rank")" identifier = (call_expression "sqlite3_stricmp(pcVar7,"rank")" identifier (argument_list "(pcVar7,"rank")" ( identifier , (string_literal ""rank"" " string_content ") )))) ;) (if_statement "if (iVar3 == 0) {\n      pcVar7 = sqlite3_mprintf("reserved fts5 table name: %s",pcVar7);\n      *pzErr = pcVar7;\n      rc = 1;\n      goto LAB_0017a364;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar7 = sqlite3_mprintf("reserved fts5 table name: %s",pcVar7);\n      *pzErr = pcVar7;\n      rc = 1;\n      goto LAB_0017a364;\n    }" { (expression_statement "pcVar7 = sqlite3_mprintf("reserved fts5 table name: %s",pcVar7);" (assignment_expression "pcVar7 = sqlite3_mprintf("reserved fts5 table name: %s",pcVar7)" identifier = (call_expression "sqlite3_mprintf("reserved fts5 table name: %s",pcVar7)" identifier (argument_list "("reserved fts5 table name: %s",pcVar7)" ( (string_literal ""reserved fts5 table name: %s"" " string_content ") , identifier )))) ;) (expression_statement "*pzErr = pcVar7;" (assignment_expression "*pzErr = pcVar7" (pointer_expression "*pzErr" * identifier) = identifier) ;) (expression_statement "rc = 1;" (assignment_expression "rc = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0017a364;" goto statement_identifier ;) })) (if_statement "if (3 < nArg) {\n      lVar15 = 4;\n      local_c8 = -1;\nLAB_0017a558:\n      pcVar7 = azArg[lVar15 + -1];\n      zOne = (char *)0x0;\n      zTwo = (char *)0x0;\n      bMustBeCol = 0;\n      pcVar9 = fts5ConfigGobbleWord(&rc,pcVar7,&zOne,&bMustBeCol);\n      pcVar9 = fts5ConfigSkipWhitespace(pcVar9);\n      iVar3 = iVar5;\n      if ((pcVar9 != (char *)0x0) && (*pcVar9 == '=')) {\n        if (bMustBeCol == 0) {\n          pcVar9 = pcVar9 + 1;\n          iVar3 = 1;\n        }\n        else {\n          iVar3 = 1;\n          pcVar9 = (char *)0x0;\n        }\n      }\n      pcVar9 = fts5ConfigSkipWhitespace(pcVar9);\n      if ((pcVar9 == (char *)0x0) ||\n         ((pcVar14 = zOne, *pcVar9 != '\0' &&\n          ((pcVar9 = fts5ConfigGobbleWord(&rc,pcVar9,&zTwo,&bDummy), pcVar9 == (char *)0x0 ||\n           (pcVar14 = zOne, *pcVar9 != '\0')))))) {\n        iVar4 = rc;\n        if (rc == 0) {\n          pcVar7 = sqlite3_mprintf("parse error in \"%s\"",pcVar7);\n          *pzErr = pcVar7;\n          rc = 1;\n          iVar4 = rc;\n        }\n      }\n      else {\n        iVar4 = rc;\n        zOne = pcVar14;\n        if (rc == 0) {\n          if (iVar3 == 0) {\n            iVar4 = sqlite3_stricmp(pcVar14,"rank");\n            if ((iVar4 == 0) ||\n               (iVar4 = sqlite3_stricmp(pcVar14,"rowid"), pcVar7 = zTwo, iVar4 == 0)) {\n              pcVar7 = sqlite3_mprintf("reserved fts5 column name: %s",pcVar14);\n              *pzErr = pcVar7;\n              iVar3 = 1;\n            }\n            else if (zTwo != (char *)0x0) {\n              iVar3 = sqlite3_stricmp(zTwo,"unindexed");\n              if (iVar3 == 0) {\n                pConfig->abUnindexed[pConfig->nCol] = '\x01';\n                iVar3 = 0;\n              }\n              else {\n                pcVar7 = sqlite3_mprintf("unrecognized column option: %s",pcVar7);\n                *pzErr = pcVar7;\n                iVar3 = 1;\n              }\n            }\n            iVar4 = pConfig->nCol;\n            pConfig->nCol = iVar4 + 1;\n            pConfig->azCol[iVar4] = pcVar14;\n            zOne = (char *)0x0;\n            iVar4 = iVar3;\n          }\n          else {\n            pcVar7 = zTwo;\n            if (zTwo == (char *)0x0) {\n              pcVar7 = "";\n            }\n            bDummy = 0;\n            uVar10 = 0xffffffffffffffff;\n            pcVar9 = pcVar14;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n            } while (cVar1 != '\0');\n            N = (int)(~uVar10 - 1);\n            iVar4 = sqlite3_strnicmp("prefix",pcVar14,N);\n            if (iVar4 == 0) {\n              if (pConfig->aPrefix != (int *)0x0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar7;\n                  while (cVar1 == ' ') {\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                  }\n                  if ((cVar1 == ',') && (iVar3 == 0)) {\n                    cVar1 = pcVar7[1];\n                    pcVar7 = pcVar7 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar7 = pcVar7 + 1;\n                      cVar1 = *pcVar7;\n                    }\n                  }\n                  else {\n                    iVar4 = bDummy;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar7;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    pcVar7 = sqlite3_mprintf("malformed prefix=... directive");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  if (pConfig->nPrefix == 0x1f) {\n                    pcVar7 = sqlite3_mprintf("too many prefix indexes (max %d)",0x1f);\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  iVar3 = 0;\n                  do {\n                    iVar3 = cVar1 + -0x30 + iVar3 * 10;\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar3 < 1000);\n                  if (0x3e6 < iVar3 - 1U) goto LAB_0017a6fb;\n                  pConfig->aPrefix[pConfig->nPrefix] = iVar3;\n                  pConfig->nPrefix = pConfig->nPrefix + 1;\n                  iVar3 = 0;\n                } while( true );\n              }\n              piVar8 = (int *)sqlite3Fts5MallocZero(&bDummy,0x7c);\n              pConfig->aPrefix = piVar8;\n              iVar4 = bDummy;\n              if (bDummy == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar4 = sqlite3_strnicmp("tokenize",pcVar14,N);\n              if (iVar4 == 0) {\n                uVar10 = 0xffffffffffffffff;\n                pcVar9 = pcVar7;\n                do {\n                  if (uVar10 == 0) break;\n                  uVar10 = uVar10 - 1;\n                  cVar1 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                } while (cVar1 != '\0');\n                ppcVar6 = (char **)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 8);\n                pcVar9 = (char *)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 2);\n                if ((ppcVar6 != (char **)0x0) && (pcVar9 != (char *)0x0)) {\n                  if (pConfig->pTok == (Fts5Tokenizer *)0x0) {\n                    lVar11 = 0;\n                    if (*pcVar7 != '\0') {\n                      lVar11 = 0;\n                      pcVar14 = pcVar9;\n                      do {\n                        pcVar7 = fts5ConfigSkipWhitespace(pcVar7);\n                        if (*pcVar7 == '\'') {\n                          pIn = fts5ConfigSkipLiteral(pcVar7);\n                        }\n                        else {\n                          pIn = fts5ConfigSkipBareword(pcVar7);\n                        }\n                        if (pIn == (char *)0x0) {\nLAB_0017a8ef:\n                          pcVar7 = sqlite3_mprintf("parse error in tokenize directive");\n                          *pzErr = pcVar7;\n                          bDummy = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(pcVar14,pcVar7,(long)pIn - (long)pcVar7);\n                        ppcVar6[lVar11] = pcVar14;\n                        sqlite3Fts5Dequote(pcVar14);\n                        pcVar14 = pcVar14 + ((long)pIn - (long)pcVar7) + 1;\n                        pcVar7 = fts5ConfigSkipWhitespace(pIn);\n                        lVar11 = lVar11 + 1;\n                        if (pcVar7 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar7 != '\0');\n                    }\n                    bDummy = sqlite3Fts5GetTokenizer\n                                       (pGlobal,ppcVar6,(int)lVar11,&pConfig->pTok,&pConfig->pTokApi\n                                        ,pzErr);\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple tokenize=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                  }\n                }\nLAB_0017a842:\n                sqlite3_free(ppcVar6);\n                sqlite3_free(pcVar9);\n                iVar4 = bDummy;\n              }\n              else {\n                iVar4 = sqlite3_strnicmp("content",pcVar14,N);\n                if (iVar4 == 0) {\n                  if (pConfig->eContent == 0) {\n                    if (*pcVar7 == '\0') {\n                      pConfig->eContent = 1;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pConfig->eContent = 2;\n                      pcVar7 = sqlite3Fts5Mprintf(&bDummy,"%Q.%Q",pConfig->zDb,pcVar7);\n                      pConfig->zContent = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple content=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                  }\n                }\n                else {\n                  iVar4 = sqlite3_strnicmp("content_rowid",pcVar14,N);\n                  if (iVar4 == 0) {\n                    if (pConfig->zContentRowid == (char *)0x0) {\n                      pcVar7 = sqlite3Fts5Strndup(&bDummy,pcVar7,-1);\n                      pConfig->zContentRowid = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pcVar7 = sqlite3_mprintf("multiple content_rowid=... directives");\n                      *pzErr = pcVar7;\n                      bDummy = 1;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    iVar4 = sqlite3_strnicmp("columnsize",pcVar14,N);\n                    if (iVar4 == 0) {\n                      if (((byte)(*pcVar7 - 0x30U) < 2) && (pcVar7[1] == '\0')) {\n                        pConfig->bColumnsize = (uint)(*pcVar7 == '1');\n                        iVar4 = bDummy;\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("malformed columnsize=... directive");\n                        *pzErr = pcVar7;\n                        bDummy = 1;\n                        iVar4 = bDummy;\n                      }\n                    }\n                    else {\n                      iVar4 = sqlite3_strnicmp("detail",pcVar14,N);\n                      if (iVar4 == 0) {\n                        aDetail[0].zName = "none";\n                        aDetail[0].eVal = 1;\n                        aDetail[1].zName = "full";\n                        aDetail[1].eVal = 0;\n                        aDetail[2].zName = "columns";\n                        aDetail[2].eVal = 2;\n                        aDetail[3].zName = (char *)0x0;\n                        aDetail[3].eVal = 0;\n                        lVar11 = -1;\n                        pcVar9 = pcVar7;\n                        do {\n                          if (lVar11 == 0) break;\n                          lVar11 = lVar11 + -1;\n                          cVar1 = *pcVar9;\n                          pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pFVar12 = aDetail;\n                        pcVar9 = "none";\n                        iVar3 = local_c8;\n                        do {\n                          pFVar12 = pFVar12 + 1;\n                          iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1);\n                          if (iVar4 == 0) {\n                            if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar3 = pFVar12[-1].eVal;\n                          }\n                          pcVar9 = pFVar12->zName;\n                        } while (pcVar9 != (char *)0x0);\n                        pConfig->eDetail = iVar3;\n                        bDummy = -(iVar3 >> 0x1f);\n                        iVar4 = bDummy;\n                        if (bDummy != 0) {\nLAB_0017ab15:\n                          pcVar7 = sqlite3_mprintf("malformed detail=... directive");\n                          *pzErr = pcVar7;\n                          iVar4 = bDummy;\n                        }\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14);\n                        *pzErr = pcVar7;\n                        iVar4 = iVar3;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_0017a527;\n    }" if (parenthesized_expression "(3 < nArg)" ( (binary_expression "3 < nArg" number_literal < identifier) )) (compound_statement "{\n      lVar15 = 4;\n      local_c8 = -1;\nLAB_0017a558:\n      pcVar7 = azArg[lVar15 + -1];\n      zOne = (char *)0x0;\n      zTwo = (char *)0x0;\n      bMustBeCol = 0;\n      pcVar9 = fts5ConfigGobbleWord(&rc,pcVar7,&zOne,&bMustBeCol);\n      pcVar9 = fts5ConfigSkipWhitespace(pcVar9);\n      iVar3 = iVar5;\n      if ((pcVar9 != (char *)0x0) && (*pcVar9 == '=')) {\n        if (bMustBeCol == 0) {\n          pcVar9 = pcVar9 + 1;\n          iVar3 = 1;\n        }\n        else {\n          iVar3 = 1;\n          pcVar9 = (char *)0x0;\n        }\n      }\n      pcVar9 = fts5ConfigSkipWhitespace(pcVar9);\n      if ((pcVar9 == (char *)0x0) ||\n         ((pcVar14 = zOne, *pcVar9 != '\0' &&\n          ((pcVar9 = fts5ConfigGobbleWord(&rc,pcVar9,&zTwo,&bDummy), pcVar9 == (char *)0x0 ||\n           (pcVar14 = zOne, *pcVar9 != '\0')))))) {\n        iVar4 = rc;\n        if (rc == 0) {\n          pcVar7 = sqlite3_mprintf("parse error in \"%s\"",pcVar7);\n          *pzErr = pcVar7;\n          rc = 1;\n          iVar4 = rc;\n        }\n      }\n      else {\n        iVar4 = rc;\n        zOne = pcVar14;\n        if (rc == 0) {\n          if (iVar3 == 0) {\n            iVar4 = sqlite3_stricmp(pcVar14,"rank");\n            if ((iVar4 == 0) ||\n               (iVar4 = sqlite3_stricmp(pcVar14,"rowid"), pcVar7 = zTwo, iVar4 == 0)) {\n              pcVar7 = sqlite3_mprintf("reserved fts5 column name: %s",pcVar14);\n              *pzErr = pcVar7;\n              iVar3 = 1;\n            }\n            else if (zTwo != (char *)0x0) {\n              iVar3 = sqlite3_stricmp(zTwo,"unindexed");\n              if (iVar3 == 0) {\n                pConfig->abUnindexed[pConfig->nCol] = '\x01';\n                iVar3 = 0;\n              }\n              else {\n                pcVar7 = sqlite3_mprintf("unrecognized column option: %s",pcVar7);\n                *pzErr = pcVar7;\n                iVar3 = 1;\n              }\n            }\n            iVar4 = pConfig->nCol;\n            pConfig->nCol = iVar4 + 1;\n            pConfig->azCol[iVar4] = pcVar14;\n            zOne = (char *)0x0;\n            iVar4 = iVar3;\n          }\n          else {\n            pcVar7 = zTwo;\n            if (zTwo == (char *)0x0) {\n              pcVar7 = "";\n            }\n            bDummy = 0;\n            uVar10 = 0xffffffffffffffff;\n            pcVar9 = pcVar14;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n            } while (cVar1 != '\0');\n            N = (int)(~uVar10 - 1);\n            iVar4 = sqlite3_strnicmp("prefix",pcVar14,N);\n            if (iVar4 == 0) {\n              if (pConfig->aPrefix != (int *)0x0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar7;\n                  while (cVar1 == ' ') {\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                  }\n                  if ((cVar1 == ',') && (iVar3 == 0)) {\n                    cVar1 = pcVar7[1];\n                    pcVar7 = pcVar7 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar7 = pcVar7 + 1;\n                      cVar1 = *pcVar7;\n                    }\n                  }\n                  else {\n                    iVar4 = bDummy;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar7;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    pcVar7 = sqlite3_mprintf("malformed prefix=... directive");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  if (pConfig->nPrefix == 0x1f) {\n                    pcVar7 = sqlite3_mprintf("too many prefix indexes (max %d)",0x1f);\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  iVar3 = 0;\n                  do {\n                    iVar3 = cVar1 + -0x30 + iVar3 * 10;\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar3 < 1000);\n                  if (0x3e6 < iVar3 - 1U) goto LAB_0017a6fb;\n                  pConfig->aPrefix[pConfig->nPrefix] = iVar3;\n                  pConfig->nPrefix = pConfig->nPrefix + 1;\n                  iVar3 = 0;\n                } while( true );\n              }\n              piVar8 = (int *)sqlite3Fts5MallocZero(&bDummy,0x7c);\n              pConfig->aPrefix = piVar8;\n              iVar4 = bDummy;\n              if (bDummy == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar4 = sqlite3_strnicmp("tokenize",pcVar14,N);\n              if (iVar4 == 0) {\n                uVar10 = 0xffffffffffffffff;\n                pcVar9 = pcVar7;\n                do {\n                  if (uVar10 == 0) break;\n                  uVar10 = uVar10 - 1;\n                  cVar1 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                } while (cVar1 != '\0');\n                ppcVar6 = (char **)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 8);\n                pcVar9 = (char *)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 2);\n                if ((ppcVar6 != (char **)0x0) && (pcVar9 != (char *)0x0)) {\n                  if (pConfig->pTok == (Fts5Tokenizer *)0x0) {\n                    lVar11 = 0;\n                    if (*pcVar7 != '\0') {\n                      lVar11 = 0;\n                      pcVar14 = pcVar9;\n                      do {\n                        pcVar7 = fts5ConfigSkipWhitespace(pcVar7);\n                        if (*pcVar7 == '\'') {\n                          pIn = fts5ConfigSkipLiteral(pcVar7);\n                        }\n                        else {\n                          pIn = fts5ConfigSkipBareword(pcVar7);\n                        }\n                        if (pIn == (char *)0x0) {\nLAB_0017a8ef:\n                          pcVar7 = sqlite3_mprintf("parse error in tokenize directive");\n                          *pzErr = pcVar7;\n                          bDummy = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(pcVar14,pcVar7,(long)pIn - (long)pcVar7);\n                        ppcVar6[lVar11] = pcVar14;\n                        sqlite3Fts5Dequote(pcVar14);\n                        pcVar14 = pcVar14 + ((long)pIn - (long)pcVar7) + 1;\n                        pcVar7 = fts5ConfigSkipWhitespace(pIn);\n                        lVar11 = lVar11 + 1;\n                        if (pcVar7 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar7 != '\0');\n                    }\n                    bDummy = sqlite3Fts5GetTokenizer\n                                       (pGlobal,ppcVar6,(int)lVar11,&pConfig->pTok,&pConfig->pTokApi\n                                        ,pzErr);\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple tokenize=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                  }\n                }\nLAB_0017a842:\n                sqlite3_free(ppcVar6);\n                sqlite3_free(pcVar9);\n                iVar4 = bDummy;\n              }\n              else {\n                iVar4 = sqlite3_strnicmp("content",pcVar14,N);\n                if (iVar4 == 0) {\n                  if (pConfig->eContent == 0) {\n                    if (*pcVar7 == '\0') {\n                      pConfig->eContent = 1;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pConfig->eContent = 2;\n                      pcVar7 = sqlite3Fts5Mprintf(&bDummy,"%Q.%Q",pConfig->zDb,pcVar7);\n                      pConfig->zContent = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple content=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                  }\n                }\n                else {\n                  iVar4 = sqlite3_strnicmp("content_rowid",pcVar14,N);\n                  if (iVar4 == 0) {\n                    if (pConfig->zContentRowid == (char *)0x0) {\n                      pcVar7 = sqlite3Fts5Strndup(&bDummy,pcVar7,-1);\n                      pConfig->zContentRowid = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pcVar7 = sqlite3_mprintf("multiple content_rowid=... directives");\n                      *pzErr = pcVar7;\n                      bDummy = 1;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    iVar4 = sqlite3_strnicmp("columnsize",pcVar14,N);\n                    if (iVar4 == 0) {\n                      if (((byte)(*pcVar7 - 0x30U) < 2) && (pcVar7[1] == '\0')) {\n                        pConfig->bColumnsize = (uint)(*pcVar7 == '1');\n                        iVar4 = bDummy;\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("malformed columnsize=... directive");\n                        *pzErr = pcVar7;\n                        bDummy = 1;\n                        iVar4 = bDummy;\n                      }\n                    }\n                    else {\n                      iVar4 = sqlite3_strnicmp("detail",pcVar14,N);\n                      if (iVar4 == 0) {\n                        aDetail[0].zName = "none";\n                        aDetail[0].eVal = 1;\n                        aDetail[1].zName = "full";\n                        aDetail[1].eVal = 0;\n                        aDetail[2].zName = "columns";\n                        aDetail[2].eVal = 2;\n                        aDetail[3].zName = (char *)0x0;\n                        aDetail[3].eVal = 0;\n                        lVar11 = -1;\n                        pcVar9 = pcVar7;\n                        do {\n                          if (lVar11 == 0) break;\n                          lVar11 = lVar11 + -1;\n                          cVar1 = *pcVar9;\n                          pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pFVar12 = aDetail;\n                        pcVar9 = "none";\n                        iVar3 = local_c8;\n                        do {\n                          pFVar12 = pFVar12 + 1;\n                          iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1);\n                          if (iVar4 == 0) {\n                            if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar3 = pFVar12[-1].eVal;\n                          }\n                          pcVar9 = pFVar12->zName;\n                        } while (pcVar9 != (char *)0x0);\n                        pConfig->eDetail = iVar3;\n                        bDummy = -(iVar3 >> 0x1f);\n                        iVar4 = bDummy;\n                        if (bDummy != 0) {\nLAB_0017ab15:\n                          pcVar7 = sqlite3_mprintf("malformed detail=... directive");\n                          *pzErr = pcVar7;\n                          iVar4 = bDummy;\n                        }\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14);\n                        *pzErr = pcVar7;\n                        iVar4 = iVar3;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_0017a527;\n    }" { (expression_statement "lVar15 = 4;" (assignment_expression "lVar15 = 4" identifier = number_literal) ;) (expression_statement "local_c8 = -1;" (assignment_expression "local_c8 = -1" identifier = number_literal) ;) (labeled_statement "LAB_0017a558:\n      pcVar7 = azArg[lVar15 + -1];" statement_identifier : (expression_statement "pcVar7 = azArg[lVar15 + -1];" (assignment_expression "pcVar7 = azArg[lVar15 + -1]" identifier = (subscript_expression "azArg[lVar15 + -1]" identifier [ (binary_expression "lVar15 + -1" identifier + number_literal) ])) ;)) (expression_statement "zOne = (char *)0x0;" (assignment_expression "zOne = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "zTwo = (char *)0x0;" (assignment_expression "zTwo = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bMustBeCol = 0;" (assignment_expression "bMustBeCol = 0" identifier = number_literal) ;) (expression_statement "pcVar9 = fts5ConfigGobbleWord(&rc,pcVar7,&zOne,&bMustBeCol);" (assignment_expression "pcVar9 = fts5ConfigGobbleWord(&rc,pcVar7,&zOne,&bMustBeCol)" identifier = (call_expression "fts5ConfigGobbleWord(&rc,pcVar7,&zOne,&bMustBeCol)" identifier (argument_list "(&rc,pcVar7,&zOne,&bMustBeCol)" ( (pointer_expression "&rc" & identifier) , identifier , (pointer_expression "&zOne" & identifier) , (pointer_expression "&bMustBeCol" & identifier) )))) ;) (expression_statement "pcVar9 = fts5ConfigSkipWhitespace(pcVar9);" (assignment_expression "pcVar9 = fts5ConfigSkipWhitespace(pcVar9)" identifier = (call_expression "fts5ConfigSkipWhitespace(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier )))) ;) (expression_statement "iVar3 = iVar5;" (assignment_expression "iVar3 = iVar5" identifier = identifier) ;) (if_statement "if ((pcVar9 != (char *)0x0) && (*pcVar9 == '=')) {\n        if (bMustBeCol == 0) {\n          pcVar9 = pcVar9 + 1;\n          iVar3 = 1;\n        }\n        else {\n          iVar3 = 1;\n          pcVar9 = (char *)0x0;\n        }\n      }" if (parenthesized_expression "((pcVar9 != (char *)0x0) && (*pcVar9 == '='))" ( (binary_expression "(pcVar9 != (char *)0x0) && (*pcVar9 == '=')" (parenthesized_expression "(pcVar9 != (char *)0x0)" ( (binary_expression "pcVar9 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*pcVar9 == '=')" ( (binary_expression "*pcVar9 == '='" (pointer_expression "*pcVar9" * identifier) == (char_literal "'='" ' character ')) ))) )) (compound_statement "{\n        if (bMustBeCol == 0) {\n          pcVar9 = pcVar9 + 1;\n          iVar3 = 1;\n        }\n        else {\n          iVar3 = 1;\n          pcVar9 = (char *)0x0;\n        }\n      }" { (if_statement "if (bMustBeCol == 0) {\n          pcVar9 = pcVar9 + 1;\n          iVar3 = 1;\n        }\n        else {\n          iVar3 = 1;\n          pcVar9 = (char *)0x0;\n        }" if (parenthesized_expression "(bMustBeCol == 0)" ( (binary_expression "bMustBeCol == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar9 = pcVar9 + 1;\n          iVar3 = 1;\n        }" { (expression_statement "pcVar9 = pcVar9 + 1;" (assignment_expression "pcVar9 = pcVar9 + 1" identifier = (binary_expression "pcVar9 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) }) (else_clause "else {\n          iVar3 = 1;\n          pcVar9 = (char *)0x0;\n        }" else (compound_statement "{\n          iVar3 = 1;\n          pcVar9 = (char *)0x0;\n        }" { (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (expression_statement "pcVar9 = (char *)0x0;" (assignment_expression "pcVar9 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) })) (expression_statement "pcVar9 = fts5ConfigSkipWhitespace(pcVar9);" (assignment_expression "pcVar9 = fts5ConfigSkipWhitespace(pcVar9)" identifier = (call_expression "fts5ConfigSkipWhitespace(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier )))) ;) (if_statement "if ((pcVar9 == (char *)0x0) ||\n         ((pcVar14 = zOne, *pcVar9 != '\0' &&\n          ((pcVar9 = fts5ConfigGobbleWord(&rc,pcVar9,&zTwo,&bDummy), pcVar9 == (char *)0x0 ||\n           (pcVar14 = zOne, *pcVar9 != '\0')))))) {\n        iVar4 = rc;\n        if (rc == 0) {\n          pcVar7 = sqlite3_mprintf("parse error in \"%s\"",pcVar7);\n          *pzErr = pcVar7;\n          rc = 1;\n          iVar4 = rc;\n        }\n      }\n      else {\n        iVar4 = rc;\n        zOne = pcVar14;\n        if (rc == 0) {\n          if (iVar3 == 0) {\n            iVar4 = sqlite3_stricmp(pcVar14,"rank");\n            if ((iVar4 == 0) ||\n               (iVar4 = sqlite3_stricmp(pcVar14,"rowid"), pcVar7 = zTwo, iVar4 == 0)) {\n              pcVar7 = sqlite3_mprintf("reserved fts5 column name: %s",pcVar14);\n              *pzErr = pcVar7;\n              iVar3 = 1;\n            }\n            else if (zTwo != (char *)0x0) {\n              iVar3 = sqlite3_stricmp(zTwo,"unindexed");\n              if (iVar3 == 0) {\n                pConfig->abUnindexed[pConfig->nCol] = '\x01';\n                iVar3 = 0;\n              }\n              else {\n                pcVar7 = sqlite3_mprintf("unrecognized column option: %s",pcVar7);\n                *pzErr = pcVar7;\n                iVar3 = 1;\n              }\n            }\n            iVar4 = pConfig->nCol;\n            pConfig->nCol = iVar4 + 1;\n            pConfig->azCol[iVar4] = pcVar14;\n            zOne = (char *)0x0;\n            iVar4 = iVar3;\n          }\n          else {\n            pcVar7 = zTwo;\n            if (zTwo == (char *)0x0) {\n              pcVar7 = "";\n            }\n            bDummy = 0;\n            uVar10 = 0xffffffffffffffff;\n            pcVar9 = pcVar14;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n            } while (cVar1 != '\0');\n            N = (int)(~uVar10 - 1);\n            iVar4 = sqlite3_strnicmp("prefix",pcVar14,N);\n            if (iVar4 == 0) {\n              if (pConfig->aPrefix != (int *)0x0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar7;\n                  while (cVar1 == ' ') {\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                  }\n                  if ((cVar1 == ',') && (iVar3 == 0)) {\n                    cVar1 = pcVar7[1];\n                    pcVar7 = pcVar7 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar7 = pcVar7 + 1;\n                      cVar1 = *pcVar7;\n                    }\n                  }\n                  else {\n                    iVar4 = bDummy;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar7;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    pcVar7 = sqlite3_mprintf("malformed prefix=... directive");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  if (pConfig->nPrefix == 0x1f) {\n                    pcVar7 = sqlite3_mprintf("too many prefix indexes (max %d)",0x1f);\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  iVar3 = 0;\n                  do {\n                    iVar3 = cVar1 + -0x30 + iVar3 * 10;\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar3 < 1000);\n                  if (0x3e6 < iVar3 - 1U) goto LAB_0017a6fb;\n                  pConfig->aPrefix[pConfig->nPrefix] = iVar3;\n                  pConfig->nPrefix = pConfig->nPrefix + 1;\n                  iVar3 = 0;\n                } while( true );\n              }\n              piVar8 = (int *)sqlite3Fts5MallocZero(&bDummy,0x7c);\n              pConfig->aPrefix = piVar8;\n              iVar4 = bDummy;\n              if (bDummy == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar4 = sqlite3_strnicmp("tokenize",pcVar14,N);\n              if (iVar4 == 0) {\n                uVar10 = 0xffffffffffffffff;\n                pcVar9 = pcVar7;\n                do {\n                  if (uVar10 == 0) break;\n                  uVar10 = uVar10 - 1;\n                  cVar1 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                } while (cVar1 != '\0');\n                ppcVar6 = (char **)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 8);\n                pcVar9 = (char *)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 2);\n                if ((ppcVar6 != (char **)0x0) && (pcVar9 != (char *)0x0)) {\n                  if (pConfig->pTok == (Fts5Tokenizer *)0x0) {\n                    lVar11 = 0;\n                    if (*pcVar7 != '\0') {\n                      lVar11 = 0;\n                      pcVar14 = pcVar9;\n                      do {\n                        pcVar7 = fts5ConfigSkipWhitespace(pcVar7);\n                        if (*pcVar7 == '\'') {\n                          pIn = fts5ConfigSkipLiteral(pcVar7);\n                        }\n                        else {\n                          pIn = fts5ConfigSkipBareword(pcVar7);\n                        }\n                        if (pIn == (char *)0x0) {\nLAB_0017a8ef:\n                          pcVar7 = sqlite3_mprintf("parse error in tokenize directive");\n                          *pzErr = pcVar7;\n                          bDummy = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(pcVar14,pcVar7,(long)pIn - (long)pcVar7);\n                        ppcVar6[lVar11] = pcVar14;\n                        sqlite3Fts5Dequote(pcVar14);\n                        pcVar14 = pcVar14 + ((long)pIn - (long)pcVar7) + 1;\n                        pcVar7 = fts5ConfigSkipWhitespace(pIn);\n                        lVar11 = lVar11 + 1;\n                        if (pcVar7 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar7 != '\0');\n                    }\n                    bDummy = sqlite3Fts5GetTokenizer\n                                       (pGlobal,ppcVar6,(int)lVar11,&pConfig->pTok,&pConfig->pTokApi\n                                        ,pzErr);\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple tokenize=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                  }\n                }\nLAB_0017a842:\n                sqlite3_free(ppcVar6);\n                sqlite3_free(pcVar9);\n                iVar4 = bDummy;\n              }\n              else {\n                iVar4 = sqlite3_strnicmp("content",pcVar14,N);\n                if (iVar4 == 0) {\n                  if (pConfig->eContent == 0) {\n                    if (*pcVar7 == '\0') {\n                      pConfig->eContent = 1;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pConfig->eContent = 2;\n                      pcVar7 = sqlite3Fts5Mprintf(&bDummy,"%Q.%Q",pConfig->zDb,pcVar7);\n                      pConfig->zContent = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple content=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                  }\n                }\n                else {\n                  iVar4 = sqlite3_strnicmp("content_rowid",pcVar14,N);\n                  if (iVar4 == 0) {\n                    if (pConfig->zContentRowid == (char *)0x0) {\n                      pcVar7 = sqlite3Fts5Strndup(&bDummy,pcVar7,-1);\n                      pConfig->zContentRowid = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pcVar7 = sqlite3_mprintf("multiple content_rowid=... directives");\n                      *pzErr = pcVar7;\n                      bDummy = 1;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    iVar4 = sqlite3_strnicmp("columnsize",pcVar14,N);\n                    if (iVar4 == 0) {\n                      if (((byte)(*pcVar7 - 0x30U) < 2) && (pcVar7[1] == '\0')) {\n                        pConfig->bColumnsize = (uint)(*pcVar7 == '1');\n                        iVar4 = bDummy;\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("malformed columnsize=... directive");\n                        *pzErr = pcVar7;\n                        bDummy = 1;\n                        iVar4 = bDummy;\n                      }\n                    }\n                    else {\n                      iVar4 = sqlite3_strnicmp("detail",pcVar14,N);\n                      if (iVar4 == 0) {\n                        aDetail[0].zName = "none";\n                        aDetail[0].eVal = 1;\n                        aDetail[1].zName = "full";\n                        aDetail[1].eVal = 0;\n                        aDetail[2].zName = "columns";\n                        aDetail[2].eVal = 2;\n                        aDetail[3].zName = (char *)0x0;\n                        aDetail[3].eVal = 0;\n                        lVar11 = -1;\n                        pcVar9 = pcVar7;\n                        do {\n                          if (lVar11 == 0) break;\n                          lVar11 = lVar11 + -1;\n                          cVar1 = *pcVar9;\n                          pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pFVar12 = aDetail;\n                        pcVar9 = "none";\n                        iVar3 = local_c8;\n                        do {\n                          pFVar12 = pFVar12 + 1;\n                          iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1);\n                          if (iVar4 == 0) {\n                            if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar3 = pFVar12[-1].eVal;\n                          }\n                          pcVar9 = pFVar12->zName;\n                        } while (pcVar9 != (char *)0x0);\n                        pConfig->eDetail = iVar3;\n                        bDummy = -(iVar3 >> 0x1f);\n                        iVar4 = bDummy;\n                        if (bDummy != 0) {\nLAB_0017ab15:\n                          pcVar7 = sqlite3_mprintf("malformed detail=... directive");\n                          *pzErr = pcVar7;\n                          iVar4 = bDummy;\n                        }\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14);\n                        *pzErr = pcVar7;\n                        iVar4 = iVar3;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "((pcVar9 == (char *)0x0) ||\n         ((pcVar14 = zOne, *pcVar9 != '\0' &&\n          ((pcVar9 = fts5ConfigGobbleWord(&rc,pcVar9,&zTwo,&bDummy), pcVar9 == (char *)0x0 ||\n           (pcVar14 = zOne, *pcVar9 != '\0'))))))" ( (binary_expression "(pcVar9 == (char *)0x0) ||\n         ((pcVar14 = zOne, *pcVar9 != '\0' &&\n          ((pcVar9 = fts5ConfigGobbleWord(&rc,pcVar9,&zTwo,&bDummy), pcVar9 == (char *)0x0 ||\n           (pcVar14 = zOne, *pcVar9 != '\0')))))" (parenthesized_expression "(pcVar9 == (char *)0x0)" ( (binary_expression "pcVar9 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((pcVar14 = zOne, *pcVar9 != '\0' &&\n          ((pcVar9 = fts5ConfigGobbleWord(&rc,pcVar9,&zTwo,&bDummy), pcVar9 == (char *)0x0 ||\n           (pcVar14 = zOne, *pcVar9 != '\0')))))" ( (parenthesized_expression "(pcVar14 = zOne, *pcVar9 != '\0' &&\n          ((pcVar9 = fts5ConfigGobbleWord(&rc,pcVar9,&zTwo,&bDummy), pcVar9 == (char *)0x0 ||\n           (pcVar14 = zOne, *pcVar9 != '\0'))))" ( (comma_expression "pcVar14 = zOne, *pcVar9 != '\0' &&\n          ((pcVar9 = fts5ConfigGobbleWord(&rc,pcVar9,&zTwo,&bDummy), pcVar9 == (char *)0x0 ||\n           (pcVar14 = zOne, *pcVar9 != '\0')))" (assignment_expression "pcVar14 = zOne" identifier = identifier) , (binary_expression "*pcVar9 != '\0' &&\n          ((pcVar9 = fts5ConfigGobbleWord(&rc,pcVar9,&zTwo,&bDummy), pcVar9 == (char *)0x0 ||\n           (pcVar14 = zOne, *pcVar9 != '\0')))" (binary_expression "*pcVar9 != '\0'" (pointer_expression "*pcVar9" * identifier) != (char_literal "'\0'" ' escape_sequence ')) && (parenthesized_expression "((pcVar9 = fts5ConfigGobbleWord(&rc,pcVar9,&zTwo,&bDummy), pcVar9 == (char *)0x0 ||\n           (pcVar14 = zOne, *pcVar9 != '\0')))" ( (parenthesized_expression "(pcVar9 = fts5ConfigGobbleWord(&rc,pcVar9,&zTwo,&bDummy), pcVar9 == (char *)0x0 ||\n           (pcVar14 = zOne, *pcVar9 != '\0'))" ( (comma_expression "pcVar9 = fts5ConfigGobbleWord(&rc,pcVar9,&zTwo,&bDummy), pcVar9 == (char *)0x0 ||\n           (pcVar14 = zOne, *pcVar9 != '\0')" (assignment_expression "pcVar9 = fts5ConfigGobbleWord(&rc,pcVar9,&zTwo,&bDummy)" identifier = (call_expression "fts5ConfigGobbleWord(&rc,pcVar9,&zTwo,&bDummy)" identifier (argument_list "(&rc,pcVar9,&zTwo,&bDummy)" ( (pointer_expression "&rc" & identifier) , identifier , (pointer_expression "&zTwo" & identifier) , (pointer_expression "&bDummy" & identifier) )))) , (binary_expression "pcVar9 == (char *)0x0 ||\n           (pcVar14 = zOne, *pcVar9 != '\0')" (binary_expression "pcVar9 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(pcVar14 = zOne, *pcVar9 != '\0')" ( (comma_expression "pcVar14 = zOne, *pcVar9 != '\0'" (assignment_expression "pcVar14 = zOne" identifier = identifier) , (binary_expression "*pcVar9 != '\0'" (pointer_expression "*pcVar9" * identifier) != (char_literal "'\0'" ' escape_sequence '))) )))) )) )))) )) ))) )) (compound_statement "{\n        iVar4 = rc;\n        if (rc == 0) {\n          pcVar7 = sqlite3_mprintf("parse error in \"%s\"",pcVar7);\n          *pzErr = pcVar7;\n          rc = 1;\n          iVar4 = rc;\n        }\n      }" { (expression_statement "iVar4 = rc;" (assignment_expression "iVar4 = rc" identifier = identifier) ;) (if_statement "if (rc == 0) {\n          pcVar7 = sqlite3_mprintf("parse error in \"%s\"",pcVar7);\n          *pzErr = pcVar7;\n          rc = 1;\n          iVar4 = rc;\n        }" if (parenthesized_expression "(rc == 0)" ( (binary_expression "rc == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar7 = sqlite3_mprintf("parse error in \"%s\"",pcVar7);\n          *pzErr = pcVar7;\n          rc = 1;\n          iVar4 = rc;\n        }" { (expression_statement "pcVar7 = sqlite3_mprintf("parse error in \"%s\"",pcVar7);" (assignment_expression "pcVar7 = sqlite3_mprintf("parse error in \"%s\"",pcVar7)" identifier = (call_expression "sqlite3_mprintf("parse error in \"%s\"",pcVar7)" identifier (argument_list "("parse error in \"%s\"",pcVar7)" ( (string_literal ""parse error in \"%s\""" " string_content escape_sequence string_content escape_sequence ") , identifier )))) ;) (expression_statement "*pzErr = pcVar7;" (assignment_expression "*pzErr = pcVar7" (pointer_expression "*pzErr" * identifier) = identifier) ;) (expression_statement "rc = 1;" (assignment_expression "rc = 1" identifier = number_literal) ;) (expression_statement "iVar4 = rc;" (assignment_expression "iVar4 = rc" identifier = identifier) ;) })) }) (else_clause "else {\n        iVar4 = rc;\n        zOne = pcVar14;\n        if (rc == 0) {\n          if (iVar3 == 0) {\n            iVar4 = sqlite3_stricmp(pcVar14,"rank");\n            if ((iVar4 == 0) ||\n               (iVar4 = sqlite3_stricmp(pcVar14,"rowid"), pcVar7 = zTwo, iVar4 == 0)) {\n              pcVar7 = sqlite3_mprintf("reserved fts5 column name: %s",pcVar14);\n              *pzErr = pcVar7;\n              iVar3 = 1;\n            }\n            else if (zTwo != (char *)0x0) {\n              iVar3 = sqlite3_stricmp(zTwo,"unindexed");\n              if (iVar3 == 0) {\n                pConfig->abUnindexed[pConfig->nCol] = '\x01';\n                iVar3 = 0;\n              }\n              else {\n                pcVar7 = sqlite3_mprintf("unrecognized column option: %s",pcVar7);\n                *pzErr = pcVar7;\n                iVar3 = 1;\n              }\n            }\n            iVar4 = pConfig->nCol;\n            pConfig->nCol = iVar4 + 1;\n            pConfig->azCol[iVar4] = pcVar14;\n            zOne = (char *)0x0;\n            iVar4 = iVar3;\n          }\n          else {\n            pcVar7 = zTwo;\n            if (zTwo == (char *)0x0) {\n              pcVar7 = "";\n            }\n            bDummy = 0;\n            uVar10 = 0xffffffffffffffff;\n            pcVar9 = pcVar14;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n            } while (cVar1 != '\0');\n            N = (int)(~uVar10 - 1);\n            iVar4 = sqlite3_strnicmp("prefix",pcVar14,N);\n            if (iVar4 == 0) {\n              if (pConfig->aPrefix != (int *)0x0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar7;\n                  while (cVar1 == ' ') {\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                  }\n                  if ((cVar1 == ',') && (iVar3 == 0)) {\n                    cVar1 = pcVar7[1];\n                    pcVar7 = pcVar7 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar7 = pcVar7 + 1;\n                      cVar1 = *pcVar7;\n                    }\n                  }\n                  else {\n                    iVar4 = bDummy;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar7;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    pcVar7 = sqlite3_mprintf("malformed prefix=... directive");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  if (pConfig->nPrefix == 0x1f) {\n                    pcVar7 = sqlite3_mprintf("too many prefix indexes (max %d)",0x1f);\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  iVar3 = 0;\n                  do {\n                    iVar3 = cVar1 + -0x30 + iVar3 * 10;\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar3 < 1000);\n                  if (0x3e6 < iVar3 - 1U) goto LAB_0017a6fb;\n                  pConfig->aPrefix[pConfig->nPrefix] = iVar3;\n                  pConfig->nPrefix = pConfig->nPrefix + 1;\n                  iVar3 = 0;\n                } while( true );\n              }\n              piVar8 = (int *)sqlite3Fts5MallocZero(&bDummy,0x7c);\n              pConfig->aPrefix = piVar8;\n              iVar4 = bDummy;\n              if (bDummy == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar4 = sqlite3_strnicmp("tokenize",pcVar14,N);\n              if (iVar4 == 0) {\n                uVar10 = 0xffffffffffffffff;\n                pcVar9 = pcVar7;\n                do {\n                  if (uVar10 == 0) break;\n                  uVar10 = uVar10 - 1;\n                  cVar1 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                } while (cVar1 != '\0');\n                ppcVar6 = (char **)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 8);\n                pcVar9 = (char *)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 2);\n                if ((ppcVar6 != (char **)0x0) && (pcVar9 != (char *)0x0)) {\n                  if (pConfig->pTok == (Fts5Tokenizer *)0x0) {\n                    lVar11 = 0;\n                    if (*pcVar7 != '\0') {\n                      lVar11 = 0;\n                      pcVar14 = pcVar9;\n                      do {\n                        pcVar7 = fts5ConfigSkipWhitespace(pcVar7);\n                        if (*pcVar7 == '\'') {\n                          pIn = fts5ConfigSkipLiteral(pcVar7);\n                        }\n                        else {\n                          pIn = fts5ConfigSkipBareword(pcVar7);\n                        }\n                        if (pIn == (char *)0x0) {\nLAB_0017a8ef:\n                          pcVar7 = sqlite3_mprintf("parse error in tokenize directive");\n                          *pzErr = pcVar7;\n                          bDummy = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(pcVar14,pcVar7,(long)pIn - (long)pcVar7);\n                        ppcVar6[lVar11] = pcVar14;\n                        sqlite3Fts5Dequote(pcVar14);\n                        pcVar14 = pcVar14 + ((long)pIn - (long)pcVar7) + 1;\n                        pcVar7 = fts5ConfigSkipWhitespace(pIn);\n                        lVar11 = lVar11 + 1;\n                        if (pcVar7 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar7 != '\0');\n                    }\n                    bDummy = sqlite3Fts5GetTokenizer\n                                       (pGlobal,ppcVar6,(int)lVar11,&pConfig->pTok,&pConfig->pTokApi\n                                        ,pzErr);\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple tokenize=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                  }\n                }\nLAB_0017a842:\n                sqlite3_free(ppcVar6);\n                sqlite3_free(pcVar9);\n                iVar4 = bDummy;\n              }\n              else {\n                iVar4 = sqlite3_strnicmp("content",pcVar14,N);\n                if (iVar4 == 0) {\n                  if (pConfig->eContent == 0) {\n                    if (*pcVar7 == '\0') {\n                      pConfig->eContent = 1;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pConfig->eContent = 2;\n                      pcVar7 = sqlite3Fts5Mprintf(&bDummy,"%Q.%Q",pConfig->zDb,pcVar7);\n                      pConfig->zContent = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple content=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                  }\n                }\n                else {\n                  iVar4 = sqlite3_strnicmp("content_rowid",pcVar14,N);\n                  if (iVar4 == 0) {\n                    if (pConfig->zContentRowid == (char *)0x0) {\n                      pcVar7 = sqlite3Fts5Strndup(&bDummy,pcVar7,-1);\n                      pConfig->zContentRowid = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pcVar7 = sqlite3_mprintf("multiple content_rowid=... directives");\n                      *pzErr = pcVar7;\n                      bDummy = 1;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    iVar4 = sqlite3_strnicmp("columnsize",pcVar14,N);\n                    if (iVar4 == 0) {\n                      if (((byte)(*pcVar7 - 0x30U) < 2) && (pcVar7[1] == '\0')) {\n                        pConfig->bColumnsize = (uint)(*pcVar7 == '1');\n                        iVar4 = bDummy;\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("malformed columnsize=... directive");\n                        *pzErr = pcVar7;\n                        bDummy = 1;\n                        iVar4 = bDummy;\n                      }\n                    }\n                    else {\n                      iVar4 = sqlite3_strnicmp("detail",pcVar14,N);\n                      if (iVar4 == 0) {\n                        aDetail[0].zName = "none";\n                        aDetail[0].eVal = 1;\n                        aDetail[1].zName = "full";\n                        aDetail[1].eVal = 0;\n                        aDetail[2].zName = "columns";\n                        aDetail[2].eVal = 2;\n                        aDetail[3].zName = (char *)0x0;\n                        aDetail[3].eVal = 0;\n                        lVar11 = -1;\n                        pcVar9 = pcVar7;\n                        do {\n                          if (lVar11 == 0) break;\n                          lVar11 = lVar11 + -1;\n                          cVar1 = *pcVar9;\n                          pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pFVar12 = aDetail;\n                        pcVar9 = "none";\n                        iVar3 = local_c8;\n                        do {\n                          pFVar12 = pFVar12 + 1;\n                          iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1);\n                          if (iVar4 == 0) {\n                            if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar3 = pFVar12[-1].eVal;\n                          }\n                          pcVar9 = pFVar12->zName;\n                        } while (pcVar9 != (char *)0x0);\n                        pConfig->eDetail = iVar3;\n                        bDummy = -(iVar3 >> 0x1f);\n                        iVar4 = bDummy;\n                        if (bDummy != 0) {\nLAB_0017ab15:\n                          pcVar7 = sqlite3_mprintf("malformed detail=... directive");\n                          *pzErr = pcVar7;\n                          iVar4 = bDummy;\n                        }\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14);\n                        *pzErr = pcVar7;\n                        iVar4 = iVar3;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" else (compound_statement "{\n        iVar4 = rc;\n        zOne = pcVar14;\n        if (rc == 0) {\n          if (iVar3 == 0) {\n            iVar4 = sqlite3_stricmp(pcVar14,"rank");\n            if ((iVar4 == 0) ||\n               (iVar4 = sqlite3_stricmp(pcVar14,"rowid"), pcVar7 = zTwo, iVar4 == 0)) {\n              pcVar7 = sqlite3_mprintf("reserved fts5 column name: %s",pcVar14);\n              *pzErr = pcVar7;\n              iVar3 = 1;\n            }\n            else if (zTwo != (char *)0x0) {\n              iVar3 = sqlite3_stricmp(zTwo,"unindexed");\n              if (iVar3 == 0) {\n                pConfig->abUnindexed[pConfig->nCol] = '\x01';\n                iVar3 = 0;\n              }\n              else {\n                pcVar7 = sqlite3_mprintf("unrecognized column option: %s",pcVar7);\n                *pzErr = pcVar7;\n                iVar3 = 1;\n              }\n            }\n            iVar4 = pConfig->nCol;\n            pConfig->nCol = iVar4 + 1;\n            pConfig->azCol[iVar4] = pcVar14;\n            zOne = (char *)0x0;\n            iVar4 = iVar3;\n          }\n          else {\n            pcVar7 = zTwo;\n            if (zTwo == (char *)0x0) {\n              pcVar7 = "";\n            }\n            bDummy = 0;\n            uVar10 = 0xffffffffffffffff;\n            pcVar9 = pcVar14;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n            } while (cVar1 != '\0');\n            N = (int)(~uVar10 - 1);\n            iVar4 = sqlite3_strnicmp("prefix",pcVar14,N);\n            if (iVar4 == 0) {\n              if (pConfig->aPrefix != (int *)0x0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar7;\n                  while (cVar1 == ' ') {\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                  }\n                  if ((cVar1 == ',') && (iVar3 == 0)) {\n                    cVar1 = pcVar7[1];\n                    pcVar7 = pcVar7 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar7 = pcVar7 + 1;\n                      cVar1 = *pcVar7;\n                    }\n                  }\n                  else {\n                    iVar4 = bDummy;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar7;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    pcVar7 = sqlite3_mprintf("malformed prefix=... directive");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  if (pConfig->nPrefix == 0x1f) {\n                    pcVar7 = sqlite3_mprintf("too many prefix indexes (max %d)",0x1f);\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  iVar3 = 0;\n                  do {\n                    iVar3 = cVar1 + -0x30 + iVar3 * 10;\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar3 < 1000);\n                  if (0x3e6 < iVar3 - 1U) goto LAB_0017a6fb;\n                  pConfig->aPrefix[pConfig->nPrefix] = iVar3;\n                  pConfig->nPrefix = pConfig->nPrefix + 1;\n                  iVar3 = 0;\n                } while( true );\n              }\n              piVar8 = (int *)sqlite3Fts5MallocZero(&bDummy,0x7c);\n              pConfig->aPrefix = piVar8;\n              iVar4 = bDummy;\n              if (bDummy == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar4 = sqlite3_strnicmp("tokenize",pcVar14,N);\n              if (iVar4 == 0) {\n                uVar10 = 0xffffffffffffffff;\n                pcVar9 = pcVar7;\n                do {\n                  if (uVar10 == 0) break;\n                  uVar10 = uVar10 - 1;\n                  cVar1 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                } while (cVar1 != '\0');\n                ppcVar6 = (char **)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 8);\n                pcVar9 = (char *)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 2);\n                if ((ppcVar6 != (char **)0x0) && (pcVar9 != (char *)0x0)) {\n                  if (pConfig->pTok == (Fts5Tokenizer *)0x0) {\n                    lVar11 = 0;\n                    if (*pcVar7 != '\0') {\n                      lVar11 = 0;\n                      pcVar14 = pcVar9;\n                      do {\n                        pcVar7 = fts5ConfigSkipWhitespace(pcVar7);\n                        if (*pcVar7 == '\'') {\n                          pIn = fts5ConfigSkipLiteral(pcVar7);\n                        }\n                        else {\n                          pIn = fts5ConfigSkipBareword(pcVar7);\n                        }\n                        if (pIn == (char *)0x0) {\nLAB_0017a8ef:\n                          pcVar7 = sqlite3_mprintf("parse error in tokenize directive");\n                          *pzErr = pcVar7;\n                          bDummy = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(pcVar14,pcVar7,(long)pIn - (long)pcVar7);\n                        ppcVar6[lVar11] = pcVar14;\n                        sqlite3Fts5Dequote(pcVar14);\n                        pcVar14 = pcVar14 + ((long)pIn - (long)pcVar7) + 1;\n                        pcVar7 = fts5ConfigSkipWhitespace(pIn);\n                        lVar11 = lVar11 + 1;\n                        if (pcVar7 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar7 != '\0');\n                    }\n                    bDummy = sqlite3Fts5GetTokenizer\n                                       (pGlobal,ppcVar6,(int)lVar11,&pConfig->pTok,&pConfig->pTokApi\n                                        ,pzErr);\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple tokenize=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                  }\n                }\nLAB_0017a842:\n                sqlite3_free(ppcVar6);\n                sqlite3_free(pcVar9);\n                iVar4 = bDummy;\n              }\n              else {\n                iVar4 = sqlite3_strnicmp("content",pcVar14,N);\n                if (iVar4 == 0) {\n                  if (pConfig->eContent == 0) {\n                    if (*pcVar7 == '\0') {\n                      pConfig->eContent = 1;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pConfig->eContent = 2;\n                      pcVar7 = sqlite3Fts5Mprintf(&bDummy,"%Q.%Q",pConfig->zDb,pcVar7);\n                      pConfig->zContent = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple content=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                  }\n                }\n                else {\n                  iVar4 = sqlite3_strnicmp("content_rowid",pcVar14,N);\n                  if (iVar4 == 0) {\n                    if (pConfig->zContentRowid == (char *)0x0) {\n                      pcVar7 = sqlite3Fts5Strndup(&bDummy,pcVar7,-1);\n                      pConfig->zContentRowid = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pcVar7 = sqlite3_mprintf("multiple content_rowid=... directives");\n                      *pzErr = pcVar7;\n                      bDummy = 1;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    iVar4 = sqlite3_strnicmp("columnsize",pcVar14,N);\n                    if (iVar4 == 0) {\n                      if (((byte)(*pcVar7 - 0x30U) < 2) && (pcVar7[1] == '\0')) {\n                        pConfig->bColumnsize = (uint)(*pcVar7 == '1');\n                        iVar4 = bDummy;\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("malformed columnsize=... directive");\n                        *pzErr = pcVar7;\n                        bDummy = 1;\n                        iVar4 = bDummy;\n                      }\n                    }\n                    else {\n                      iVar4 = sqlite3_strnicmp("detail",pcVar14,N);\n                      if (iVar4 == 0) {\n                        aDetail[0].zName = "none";\n                        aDetail[0].eVal = 1;\n                        aDetail[1].zName = "full";\n                        aDetail[1].eVal = 0;\n                        aDetail[2].zName = "columns";\n                        aDetail[2].eVal = 2;\n                        aDetail[3].zName = (char *)0x0;\n                        aDetail[3].eVal = 0;\n                        lVar11 = -1;\n                        pcVar9 = pcVar7;\n                        do {\n                          if (lVar11 == 0) break;\n                          lVar11 = lVar11 + -1;\n                          cVar1 = *pcVar9;\n                          pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pFVar12 = aDetail;\n                        pcVar9 = "none";\n                        iVar3 = local_c8;\n                        do {\n                          pFVar12 = pFVar12 + 1;\n                          iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1);\n                          if (iVar4 == 0) {\n                            if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar3 = pFVar12[-1].eVal;\n                          }\n                          pcVar9 = pFVar12->zName;\n                        } while (pcVar9 != (char *)0x0);\n                        pConfig->eDetail = iVar3;\n                        bDummy = -(iVar3 >> 0x1f);\n                        iVar4 = bDummy;\n                        if (bDummy != 0) {\nLAB_0017ab15:\n                          pcVar7 = sqlite3_mprintf("malformed detail=... directive");\n                          *pzErr = pcVar7;\n                          iVar4 = bDummy;\n                        }\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14);\n                        *pzErr = pcVar7;\n                        iVar4 = iVar3;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" { (expression_statement "iVar4 = rc;" (assignment_expression "iVar4 = rc" identifier = identifier) ;) (expression_statement "zOne = pcVar14;" (assignment_expression "zOne = pcVar14" identifier = identifier) ;) (if_statement "if (rc == 0) {\n          if (iVar3 == 0) {\n            iVar4 = sqlite3_stricmp(pcVar14,"rank");\n            if ((iVar4 == 0) ||\n               (iVar4 = sqlite3_stricmp(pcVar14,"rowid"), pcVar7 = zTwo, iVar4 == 0)) {\n              pcVar7 = sqlite3_mprintf("reserved fts5 column name: %s",pcVar14);\n              *pzErr = pcVar7;\n              iVar3 = 1;\n            }\n            else if (zTwo != (char *)0x0) {\n              iVar3 = sqlite3_stricmp(zTwo,"unindexed");\n              if (iVar3 == 0) {\n                pConfig->abUnindexed[pConfig->nCol] = '\x01';\n                iVar3 = 0;\n              }\n              else {\n                pcVar7 = sqlite3_mprintf("unrecognized column option: %s",pcVar7);\n                *pzErr = pcVar7;\n                iVar3 = 1;\n              }\n            }\n            iVar4 = pConfig->nCol;\n            pConfig->nCol = iVar4 + 1;\n            pConfig->azCol[iVar4] = pcVar14;\n            zOne = (char *)0x0;\n            iVar4 = iVar3;\n          }\n          else {\n            pcVar7 = zTwo;\n            if (zTwo == (char *)0x0) {\n              pcVar7 = "";\n            }\n            bDummy = 0;\n            uVar10 = 0xffffffffffffffff;\n            pcVar9 = pcVar14;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n            } while (cVar1 != '\0');\n            N = (int)(~uVar10 - 1);\n            iVar4 = sqlite3_strnicmp("prefix",pcVar14,N);\n            if (iVar4 == 0) {\n              if (pConfig->aPrefix != (int *)0x0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar7;\n                  while (cVar1 == ' ') {\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                  }\n                  if ((cVar1 == ',') && (iVar3 == 0)) {\n                    cVar1 = pcVar7[1];\n                    pcVar7 = pcVar7 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar7 = pcVar7 + 1;\n                      cVar1 = *pcVar7;\n                    }\n                  }\n                  else {\n                    iVar4 = bDummy;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar7;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    pcVar7 = sqlite3_mprintf("malformed prefix=... directive");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  if (pConfig->nPrefix == 0x1f) {\n                    pcVar7 = sqlite3_mprintf("too many prefix indexes (max %d)",0x1f);\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  iVar3 = 0;\n                  do {\n                    iVar3 = cVar1 + -0x30 + iVar3 * 10;\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar3 < 1000);\n                  if (0x3e6 < iVar3 - 1U) goto LAB_0017a6fb;\n                  pConfig->aPrefix[pConfig->nPrefix] = iVar3;\n                  pConfig->nPrefix = pConfig->nPrefix + 1;\n                  iVar3 = 0;\n                } while( true );\n              }\n              piVar8 = (int *)sqlite3Fts5MallocZero(&bDummy,0x7c);\n              pConfig->aPrefix = piVar8;\n              iVar4 = bDummy;\n              if (bDummy == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar4 = sqlite3_strnicmp("tokenize",pcVar14,N);\n              if (iVar4 == 0) {\n                uVar10 = 0xffffffffffffffff;\n                pcVar9 = pcVar7;\n                do {\n                  if (uVar10 == 0) break;\n                  uVar10 = uVar10 - 1;\n                  cVar1 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                } while (cVar1 != '\0');\n                ppcVar6 = (char **)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 8);\n                pcVar9 = (char *)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 2);\n                if ((ppcVar6 != (char **)0x0) && (pcVar9 != (char *)0x0)) {\n                  if (pConfig->pTok == (Fts5Tokenizer *)0x0) {\n                    lVar11 = 0;\n                    if (*pcVar7 != '\0') {\n                      lVar11 = 0;\n                      pcVar14 = pcVar9;\n                      do {\n                        pcVar7 = fts5ConfigSkipWhitespace(pcVar7);\n                        if (*pcVar7 == '\'') {\n                          pIn = fts5ConfigSkipLiteral(pcVar7);\n                        }\n                        else {\n                          pIn = fts5ConfigSkipBareword(pcVar7);\n                        }\n                        if (pIn == (char *)0x0) {\nLAB_0017a8ef:\n                          pcVar7 = sqlite3_mprintf("parse error in tokenize directive");\n                          *pzErr = pcVar7;\n                          bDummy = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(pcVar14,pcVar7,(long)pIn - (long)pcVar7);\n                        ppcVar6[lVar11] = pcVar14;\n                        sqlite3Fts5Dequote(pcVar14);\n                        pcVar14 = pcVar14 + ((long)pIn - (long)pcVar7) + 1;\n                        pcVar7 = fts5ConfigSkipWhitespace(pIn);\n                        lVar11 = lVar11 + 1;\n                        if (pcVar7 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar7 != '\0');\n                    }\n                    bDummy = sqlite3Fts5GetTokenizer\n                                       (pGlobal,ppcVar6,(int)lVar11,&pConfig->pTok,&pConfig->pTokApi\n                                        ,pzErr);\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple tokenize=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                  }\n                }\nLAB_0017a842:\n                sqlite3_free(ppcVar6);\n                sqlite3_free(pcVar9);\n                iVar4 = bDummy;\n              }\n              else {\n                iVar4 = sqlite3_strnicmp("content",pcVar14,N);\n                if (iVar4 == 0) {\n                  if (pConfig->eContent == 0) {\n                    if (*pcVar7 == '\0') {\n                      pConfig->eContent = 1;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pConfig->eContent = 2;\n                      pcVar7 = sqlite3Fts5Mprintf(&bDummy,"%Q.%Q",pConfig->zDb,pcVar7);\n                      pConfig->zContent = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple content=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                  }\n                }\n                else {\n                  iVar4 = sqlite3_strnicmp("content_rowid",pcVar14,N);\n                  if (iVar4 == 0) {\n                    if (pConfig->zContentRowid == (char *)0x0) {\n                      pcVar7 = sqlite3Fts5Strndup(&bDummy,pcVar7,-1);\n                      pConfig->zContentRowid = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pcVar7 = sqlite3_mprintf("multiple content_rowid=... directives");\n                      *pzErr = pcVar7;\n                      bDummy = 1;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    iVar4 = sqlite3_strnicmp("columnsize",pcVar14,N);\n                    if (iVar4 == 0) {\n                      if (((byte)(*pcVar7 - 0x30U) < 2) && (pcVar7[1] == '\0')) {\n                        pConfig->bColumnsize = (uint)(*pcVar7 == '1');\n                        iVar4 = bDummy;\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("malformed columnsize=... directive");\n                        *pzErr = pcVar7;\n                        bDummy = 1;\n                        iVar4 = bDummy;\n                      }\n                    }\n                    else {\n                      iVar4 = sqlite3_strnicmp("detail",pcVar14,N);\n                      if (iVar4 == 0) {\n                        aDetail[0].zName = "none";\n                        aDetail[0].eVal = 1;\n                        aDetail[1].zName = "full";\n                        aDetail[1].eVal = 0;\n                        aDetail[2].zName = "columns";\n                        aDetail[2].eVal = 2;\n                        aDetail[3].zName = (char *)0x0;\n                        aDetail[3].eVal = 0;\n                        lVar11 = -1;\n                        pcVar9 = pcVar7;\n                        do {\n                          if (lVar11 == 0) break;\n                          lVar11 = lVar11 + -1;\n                          cVar1 = *pcVar9;\n                          pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pFVar12 = aDetail;\n                        pcVar9 = "none";\n                        iVar3 = local_c8;\n                        do {\n                          pFVar12 = pFVar12 + 1;\n                          iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1);\n                          if (iVar4 == 0) {\n                            if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar3 = pFVar12[-1].eVal;\n                          }\n                          pcVar9 = pFVar12->zName;\n                        } while (pcVar9 != (char *)0x0);\n                        pConfig->eDetail = iVar3;\n                        bDummy = -(iVar3 >> 0x1f);\n                        iVar4 = bDummy;\n                        if (bDummy != 0) {\nLAB_0017ab15:\n                          pcVar7 = sqlite3_mprintf("malformed detail=... directive");\n                          *pzErr = pcVar7;\n                          iVar4 = bDummy;\n                        }\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14);\n                        *pzErr = pcVar7;\n                        iVar4 = iVar3;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "(rc == 0)" ( (binary_expression "rc == 0" identifier == number_literal) )) (compound_statement "{\n          if (iVar3 == 0) {\n            iVar4 = sqlite3_stricmp(pcVar14,"rank");\n            if ((iVar4 == 0) ||\n               (iVar4 = sqlite3_stricmp(pcVar14,"rowid"), pcVar7 = zTwo, iVar4 == 0)) {\n              pcVar7 = sqlite3_mprintf("reserved fts5 column name: %s",pcVar14);\n              *pzErr = pcVar7;\n              iVar3 = 1;\n            }\n            else if (zTwo != (char *)0x0) {\n              iVar3 = sqlite3_stricmp(zTwo,"unindexed");\n              if (iVar3 == 0) {\n                pConfig->abUnindexed[pConfig->nCol] = '\x01';\n                iVar3 = 0;\n              }\n              else {\n                pcVar7 = sqlite3_mprintf("unrecognized column option: %s",pcVar7);\n                *pzErr = pcVar7;\n                iVar3 = 1;\n              }\n            }\n            iVar4 = pConfig->nCol;\n            pConfig->nCol = iVar4 + 1;\n            pConfig->azCol[iVar4] = pcVar14;\n            zOne = (char *)0x0;\n            iVar4 = iVar3;\n          }\n          else {\n            pcVar7 = zTwo;\n            if (zTwo == (char *)0x0) {\n              pcVar7 = "";\n            }\n            bDummy = 0;\n            uVar10 = 0xffffffffffffffff;\n            pcVar9 = pcVar14;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n            } while (cVar1 != '\0');\n            N = (int)(~uVar10 - 1);\n            iVar4 = sqlite3_strnicmp("prefix",pcVar14,N);\n            if (iVar4 == 0) {\n              if (pConfig->aPrefix != (int *)0x0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar7;\n                  while (cVar1 == ' ') {\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                  }\n                  if ((cVar1 == ',') && (iVar3 == 0)) {\n                    cVar1 = pcVar7[1];\n                    pcVar7 = pcVar7 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar7 = pcVar7 + 1;\n                      cVar1 = *pcVar7;\n                    }\n                  }\n                  else {\n                    iVar4 = bDummy;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar7;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    pcVar7 = sqlite3_mprintf("malformed prefix=... directive");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  if (pConfig->nPrefix == 0x1f) {\n                    pcVar7 = sqlite3_mprintf("too many prefix indexes (max %d)",0x1f);\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  iVar3 = 0;\n                  do {\n                    iVar3 = cVar1 + -0x30 + iVar3 * 10;\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar3 < 1000);\n                  if (0x3e6 < iVar3 - 1U) goto LAB_0017a6fb;\n                  pConfig->aPrefix[pConfig->nPrefix] = iVar3;\n                  pConfig->nPrefix = pConfig->nPrefix + 1;\n                  iVar3 = 0;\n                } while( true );\n              }\n              piVar8 = (int *)sqlite3Fts5MallocZero(&bDummy,0x7c);\n              pConfig->aPrefix = piVar8;\n              iVar4 = bDummy;\n              if (bDummy == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar4 = sqlite3_strnicmp("tokenize",pcVar14,N);\n              if (iVar4 == 0) {\n                uVar10 = 0xffffffffffffffff;\n                pcVar9 = pcVar7;\n                do {\n                  if (uVar10 == 0) break;\n                  uVar10 = uVar10 - 1;\n                  cVar1 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                } while (cVar1 != '\0');\n                ppcVar6 = (char **)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 8);\n                pcVar9 = (char *)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 2);\n                if ((ppcVar6 != (char **)0x0) && (pcVar9 != (char *)0x0)) {\n                  if (pConfig->pTok == (Fts5Tokenizer *)0x0) {\n                    lVar11 = 0;\n                    if (*pcVar7 != '\0') {\n                      lVar11 = 0;\n                      pcVar14 = pcVar9;\n                      do {\n                        pcVar7 = fts5ConfigSkipWhitespace(pcVar7);\n                        if (*pcVar7 == '\'') {\n                          pIn = fts5ConfigSkipLiteral(pcVar7);\n                        }\n                        else {\n                          pIn = fts5ConfigSkipBareword(pcVar7);\n                        }\n                        if (pIn == (char *)0x0) {\nLAB_0017a8ef:\n                          pcVar7 = sqlite3_mprintf("parse error in tokenize directive");\n                          *pzErr = pcVar7;\n                          bDummy = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(pcVar14,pcVar7,(long)pIn - (long)pcVar7);\n                        ppcVar6[lVar11] = pcVar14;\n                        sqlite3Fts5Dequote(pcVar14);\n                        pcVar14 = pcVar14 + ((long)pIn - (long)pcVar7) + 1;\n                        pcVar7 = fts5ConfigSkipWhitespace(pIn);\n                        lVar11 = lVar11 + 1;\n                        if (pcVar7 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar7 != '\0');\n                    }\n                    bDummy = sqlite3Fts5GetTokenizer\n                                       (pGlobal,ppcVar6,(int)lVar11,&pConfig->pTok,&pConfig->pTokApi\n                                        ,pzErr);\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple tokenize=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                  }\n                }\nLAB_0017a842:\n                sqlite3_free(ppcVar6);\n                sqlite3_free(pcVar9);\n                iVar4 = bDummy;\n              }\n              else {\n                iVar4 = sqlite3_strnicmp("content",pcVar14,N);\n                if (iVar4 == 0) {\n                  if (pConfig->eContent == 0) {\n                    if (*pcVar7 == '\0') {\n                      pConfig->eContent = 1;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pConfig->eContent = 2;\n                      pcVar7 = sqlite3Fts5Mprintf(&bDummy,"%Q.%Q",pConfig->zDb,pcVar7);\n                      pConfig->zContent = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple content=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                  }\n                }\n                else {\n                  iVar4 = sqlite3_strnicmp("content_rowid",pcVar14,N);\n                  if (iVar4 == 0) {\n                    if (pConfig->zContentRowid == (char *)0x0) {\n                      pcVar7 = sqlite3Fts5Strndup(&bDummy,pcVar7,-1);\n                      pConfig->zContentRowid = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pcVar7 = sqlite3_mprintf("multiple content_rowid=... directives");\n                      *pzErr = pcVar7;\n                      bDummy = 1;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    iVar4 = sqlite3_strnicmp("columnsize",pcVar14,N);\n                    if (iVar4 == 0) {\n                      if (((byte)(*pcVar7 - 0x30U) < 2) && (pcVar7[1] == '\0')) {\n                        pConfig->bColumnsize = (uint)(*pcVar7 == '1');\n                        iVar4 = bDummy;\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("malformed columnsize=... directive");\n                        *pzErr = pcVar7;\n                        bDummy = 1;\n                        iVar4 = bDummy;\n                      }\n                    }\n                    else {\n                      iVar4 = sqlite3_strnicmp("detail",pcVar14,N);\n                      if (iVar4 == 0) {\n                        aDetail[0].zName = "none";\n                        aDetail[0].eVal = 1;\n                        aDetail[1].zName = "full";\n                        aDetail[1].eVal = 0;\n                        aDetail[2].zName = "columns";\n                        aDetail[2].eVal = 2;\n                        aDetail[3].zName = (char *)0x0;\n                        aDetail[3].eVal = 0;\n                        lVar11 = -1;\n                        pcVar9 = pcVar7;\n                        do {\n                          if (lVar11 == 0) break;\n                          lVar11 = lVar11 + -1;\n                          cVar1 = *pcVar9;\n                          pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pFVar12 = aDetail;\n                        pcVar9 = "none";\n                        iVar3 = local_c8;\n                        do {\n                          pFVar12 = pFVar12 + 1;\n                          iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1);\n                          if (iVar4 == 0) {\n                            if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar3 = pFVar12[-1].eVal;\n                          }\n                          pcVar9 = pFVar12->zName;\n                        } while (pcVar9 != (char *)0x0);\n                        pConfig->eDetail = iVar3;\n                        bDummy = -(iVar3 >> 0x1f);\n                        iVar4 = bDummy;\n                        if (bDummy != 0) {\nLAB_0017ab15:\n                          pcVar7 = sqlite3_mprintf("malformed detail=... directive");\n                          *pzErr = pcVar7;\n                          iVar4 = bDummy;\n                        }\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14);\n                        *pzErr = pcVar7;\n                        iVar4 = iVar3;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" { (if_statement "if (iVar3 == 0) {\n            iVar4 = sqlite3_stricmp(pcVar14,"rank");\n            if ((iVar4 == 0) ||\n               (iVar4 = sqlite3_stricmp(pcVar14,"rowid"), pcVar7 = zTwo, iVar4 == 0)) {\n              pcVar7 = sqlite3_mprintf("reserved fts5 column name: %s",pcVar14);\n              *pzErr = pcVar7;\n              iVar3 = 1;\n            }\n            else if (zTwo != (char *)0x0) {\n              iVar3 = sqlite3_stricmp(zTwo,"unindexed");\n              if (iVar3 == 0) {\n                pConfig->abUnindexed[pConfig->nCol] = '\x01';\n                iVar3 = 0;\n              }\n              else {\n                pcVar7 = sqlite3_mprintf("unrecognized column option: %s",pcVar7);\n                *pzErr = pcVar7;\n                iVar3 = 1;\n              }\n            }\n            iVar4 = pConfig->nCol;\n            pConfig->nCol = iVar4 + 1;\n            pConfig->azCol[iVar4] = pcVar14;\n            zOne = (char *)0x0;\n            iVar4 = iVar3;\n          }\n          else {\n            pcVar7 = zTwo;\n            if (zTwo == (char *)0x0) {\n              pcVar7 = "";\n            }\n            bDummy = 0;\n            uVar10 = 0xffffffffffffffff;\n            pcVar9 = pcVar14;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n            } while (cVar1 != '\0');\n            N = (int)(~uVar10 - 1);\n            iVar4 = sqlite3_strnicmp("prefix",pcVar14,N);\n            if (iVar4 == 0) {\n              if (pConfig->aPrefix != (int *)0x0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar7;\n                  while (cVar1 == ' ') {\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                  }\n                  if ((cVar1 == ',') && (iVar3 == 0)) {\n                    cVar1 = pcVar7[1];\n                    pcVar7 = pcVar7 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar7 = pcVar7 + 1;\n                      cVar1 = *pcVar7;\n                    }\n                  }\n                  else {\n                    iVar4 = bDummy;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar7;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    pcVar7 = sqlite3_mprintf("malformed prefix=... directive");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  if (pConfig->nPrefix == 0x1f) {\n                    pcVar7 = sqlite3_mprintf("too many prefix indexes (max %d)",0x1f);\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  iVar3 = 0;\n                  do {\n                    iVar3 = cVar1 + -0x30 + iVar3 * 10;\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar3 < 1000);\n                  if (0x3e6 < iVar3 - 1U) goto LAB_0017a6fb;\n                  pConfig->aPrefix[pConfig->nPrefix] = iVar3;\n                  pConfig->nPrefix = pConfig->nPrefix + 1;\n                  iVar3 = 0;\n                } while( true );\n              }\n              piVar8 = (int *)sqlite3Fts5MallocZero(&bDummy,0x7c);\n              pConfig->aPrefix = piVar8;\n              iVar4 = bDummy;\n              if (bDummy == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar4 = sqlite3_strnicmp("tokenize",pcVar14,N);\n              if (iVar4 == 0) {\n                uVar10 = 0xffffffffffffffff;\n                pcVar9 = pcVar7;\n                do {\n                  if (uVar10 == 0) break;\n                  uVar10 = uVar10 - 1;\n                  cVar1 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                } while (cVar1 != '\0');\n                ppcVar6 = (char **)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 8);\n                pcVar9 = (char *)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 2);\n                if ((ppcVar6 != (char **)0x0) && (pcVar9 != (char *)0x0)) {\n                  if (pConfig->pTok == (Fts5Tokenizer *)0x0) {\n                    lVar11 = 0;\n                    if (*pcVar7 != '\0') {\n                      lVar11 = 0;\n                      pcVar14 = pcVar9;\n                      do {\n                        pcVar7 = fts5ConfigSkipWhitespace(pcVar7);\n                        if (*pcVar7 == '\'') {\n                          pIn = fts5ConfigSkipLiteral(pcVar7);\n                        }\n                        else {\n                          pIn = fts5ConfigSkipBareword(pcVar7);\n                        }\n                        if (pIn == (char *)0x0) {\nLAB_0017a8ef:\n                          pcVar7 = sqlite3_mprintf("parse error in tokenize directive");\n                          *pzErr = pcVar7;\n                          bDummy = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(pcVar14,pcVar7,(long)pIn - (long)pcVar7);\n                        ppcVar6[lVar11] = pcVar14;\n                        sqlite3Fts5Dequote(pcVar14);\n                        pcVar14 = pcVar14 + ((long)pIn - (long)pcVar7) + 1;\n                        pcVar7 = fts5ConfigSkipWhitespace(pIn);\n                        lVar11 = lVar11 + 1;\n                        if (pcVar7 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar7 != '\0');\n                    }\n                    bDummy = sqlite3Fts5GetTokenizer\n                                       (pGlobal,ppcVar6,(int)lVar11,&pConfig->pTok,&pConfig->pTokApi\n                                        ,pzErr);\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple tokenize=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                  }\n                }\nLAB_0017a842:\n                sqlite3_free(ppcVar6);\n                sqlite3_free(pcVar9);\n                iVar4 = bDummy;\n              }\n              else {\n                iVar4 = sqlite3_strnicmp("content",pcVar14,N);\n                if (iVar4 == 0) {\n                  if (pConfig->eContent == 0) {\n                    if (*pcVar7 == '\0') {\n                      pConfig->eContent = 1;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pConfig->eContent = 2;\n                      pcVar7 = sqlite3Fts5Mprintf(&bDummy,"%Q.%Q",pConfig->zDb,pcVar7);\n                      pConfig->zContent = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple content=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                  }\n                }\n                else {\n                  iVar4 = sqlite3_strnicmp("content_rowid",pcVar14,N);\n                  if (iVar4 == 0) {\n                    if (pConfig->zContentRowid == (char *)0x0) {\n                      pcVar7 = sqlite3Fts5Strndup(&bDummy,pcVar7,-1);\n                      pConfig->zContentRowid = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pcVar7 = sqlite3_mprintf("multiple content_rowid=... directives");\n                      *pzErr = pcVar7;\n                      bDummy = 1;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    iVar4 = sqlite3_strnicmp("columnsize",pcVar14,N);\n                    if (iVar4 == 0) {\n                      if (((byte)(*pcVar7 - 0x30U) < 2) && (pcVar7[1] == '\0')) {\n                        pConfig->bColumnsize = (uint)(*pcVar7 == '1');\n                        iVar4 = bDummy;\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("malformed columnsize=... directive");\n                        *pzErr = pcVar7;\n                        bDummy = 1;\n                        iVar4 = bDummy;\n                      }\n                    }\n                    else {\n                      iVar4 = sqlite3_strnicmp("detail",pcVar14,N);\n                      if (iVar4 == 0) {\n                        aDetail[0].zName = "none";\n                        aDetail[0].eVal = 1;\n                        aDetail[1].zName = "full";\n                        aDetail[1].eVal = 0;\n                        aDetail[2].zName = "columns";\n                        aDetail[2].eVal = 2;\n                        aDetail[3].zName = (char *)0x0;\n                        aDetail[3].eVal = 0;\n                        lVar11 = -1;\n                        pcVar9 = pcVar7;\n                        do {\n                          if (lVar11 == 0) break;\n                          lVar11 = lVar11 + -1;\n                          cVar1 = *pcVar9;\n                          pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pFVar12 = aDetail;\n                        pcVar9 = "none";\n                        iVar3 = local_c8;\n                        do {\n                          pFVar12 = pFVar12 + 1;\n                          iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1);\n                          if (iVar4 == 0) {\n                            if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar3 = pFVar12[-1].eVal;\n                          }\n                          pcVar9 = pFVar12->zName;\n                        } while (pcVar9 != (char *)0x0);\n                        pConfig->eDetail = iVar3;\n                        bDummy = -(iVar3 >> 0x1f);\n                        iVar4 = bDummy;\n                        if (bDummy != 0) {\nLAB_0017ab15:\n                          pcVar7 = sqlite3_mprintf("malformed detail=... directive");\n                          *pzErr = pcVar7;\n                          iVar4 = bDummy;\n                        }\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14);\n                        *pzErr = pcVar7;\n                        iVar4 = iVar3;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar4 = sqlite3_stricmp(pcVar14,"rank");\n            if ((iVar4 == 0) ||\n               (iVar4 = sqlite3_stricmp(pcVar14,"rowid"), pcVar7 = zTwo, iVar4 == 0)) {\n              pcVar7 = sqlite3_mprintf("reserved fts5 column name: %s",pcVar14);\n              *pzErr = pcVar7;\n              iVar3 = 1;\n            }\n            else if (zTwo != (char *)0x0) {\n              iVar3 = sqlite3_stricmp(zTwo,"unindexed");\n              if (iVar3 == 0) {\n                pConfig->abUnindexed[pConfig->nCol] = '\x01';\n                iVar3 = 0;\n              }\n              else {\n                pcVar7 = sqlite3_mprintf("unrecognized column option: %s",pcVar7);\n                *pzErr = pcVar7;\n                iVar3 = 1;\n              }\n            }\n            iVar4 = pConfig->nCol;\n            pConfig->nCol = iVar4 + 1;\n            pConfig->azCol[iVar4] = pcVar14;\n            zOne = (char *)0x0;\n            iVar4 = iVar3;\n          }" { (expression_statement "iVar4 = sqlite3_stricmp(pcVar14,"rank");" (assignment_expression "iVar4 = sqlite3_stricmp(pcVar14,"rank")" identifier = (call_expression "sqlite3_stricmp(pcVar14,"rank")" identifier (argument_list "(pcVar14,"rank")" ( identifier , (string_literal ""rank"" " string_content ") )))) ;) (if_statement "if ((iVar4 == 0) ||\n               (iVar4 = sqlite3_stricmp(pcVar14,"rowid"), pcVar7 = zTwo, iVar4 == 0)) {\n              pcVar7 = sqlite3_mprintf("reserved fts5 column name: %s",pcVar14);\n              *pzErr = pcVar7;\n              iVar3 = 1;\n            }\n            else if (zTwo != (char *)0x0) {\n              iVar3 = sqlite3_stricmp(zTwo,"unindexed");\n              if (iVar3 == 0) {\n                pConfig->abUnindexed[pConfig->nCol] = '\x01';\n                iVar3 = 0;\n              }\n              else {\n                pcVar7 = sqlite3_mprintf("unrecognized column option: %s",pcVar7);\n                *pzErr = pcVar7;\n                iVar3 = 1;\n              }\n            }" if (parenthesized_expression "((iVar4 == 0) ||\n               (iVar4 = sqlite3_stricmp(pcVar14,"rowid"), pcVar7 = zTwo, iVar4 == 0))" ( (binary_expression "(iVar4 == 0) ||\n               (iVar4 = sqlite3_stricmp(pcVar14,"rowid"), pcVar7 = zTwo, iVar4 == 0)" (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar4 = sqlite3_stricmp(pcVar14,"rowid"), pcVar7 = zTwo, iVar4 == 0)" ( (comma_expression "iVar4 = sqlite3_stricmp(pcVar14,"rowid"), pcVar7 = zTwo, iVar4 == 0" (assignment_expression "iVar4 = sqlite3_stricmp(pcVar14,"rowid")" identifier = (call_expression "sqlite3_stricmp(pcVar14,"rowid")" identifier (argument_list "(pcVar14,"rowid")" ( identifier , (string_literal ""rowid"" " string_content ") )))) , (comma_expression "pcVar7 = zTwo, iVar4 == 0" (assignment_expression "pcVar7 = zTwo" identifier = identifier) , (binary_expression "iVar4 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n              pcVar7 = sqlite3_mprintf("reserved fts5 column name: %s",pcVar14);\n              *pzErr = pcVar7;\n              iVar3 = 1;\n            }" { (expression_statement "pcVar7 = sqlite3_mprintf("reserved fts5 column name: %s",pcVar14);" (assignment_expression "pcVar7 = sqlite3_mprintf("reserved fts5 column name: %s",pcVar14)" identifier = (call_expression "sqlite3_mprintf("reserved fts5 column name: %s",pcVar14)" identifier (argument_list "("reserved fts5 column name: %s",pcVar14)" ( (string_literal ""reserved fts5 column name: %s"" " string_content ") , identifier )))) ;) (expression_statement "*pzErr = pcVar7;" (assignment_expression "*pzErr = pcVar7" (pointer_expression "*pzErr" * identifier) = identifier) ;) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) }) (else_clause "else if (zTwo != (char *)0x0) {\n              iVar3 = sqlite3_stricmp(zTwo,"unindexed");\n              if (iVar3 == 0) {\n                pConfig->abUnindexed[pConfig->nCol] = '\x01';\n                iVar3 = 0;\n              }\n              else {\n                pcVar7 = sqlite3_mprintf("unrecognized column option: %s",pcVar7);\n                *pzErr = pcVar7;\n                iVar3 = 1;\n              }\n            }" else (if_statement "if (zTwo != (char *)0x0) {\n              iVar3 = sqlite3_stricmp(zTwo,"unindexed");\n              if (iVar3 == 0) {\n                pConfig->abUnindexed[pConfig->nCol] = '\x01';\n                iVar3 = 0;\n              }\n              else {\n                pcVar7 = sqlite3_mprintf("unrecognized column option: %s",pcVar7);\n                *pzErr = pcVar7;\n                iVar3 = 1;\n              }\n            }" if (parenthesized_expression "(zTwo != (char *)0x0)" ( (binary_expression "zTwo != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              iVar3 = sqlite3_stricmp(zTwo,"unindexed");\n              if (iVar3 == 0) {\n                pConfig->abUnindexed[pConfig->nCol] = '\x01';\n                iVar3 = 0;\n              }\n              else {\n                pcVar7 = sqlite3_mprintf("unrecognized column option: %s",pcVar7);\n                *pzErr = pcVar7;\n                iVar3 = 1;\n              }\n            }" { (expression_statement "iVar3 = sqlite3_stricmp(zTwo,"unindexed");" (assignment_expression "iVar3 = sqlite3_stricmp(zTwo,"unindexed")" identifier = (call_expression "sqlite3_stricmp(zTwo,"unindexed")" identifier (argument_list "(zTwo,"unindexed")" ( identifier , (string_literal ""unindexed"" " string_content ") )))) ;) (if_statement "if (iVar3 == 0) {\n                pConfig->abUnindexed[pConfig->nCol] = '\x01';\n                iVar3 = 0;\n              }\n              else {\n                pcVar7 = sqlite3_mprintf("unrecognized column option: %s",pcVar7);\n                *pzErr = pcVar7;\n                iVar3 = 1;\n              }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n                pConfig->abUnindexed[pConfig->nCol] = '\x01';\n                iVar3 = 0;\n              }" { (expression_statement "pConfig->abUnindexed[pConfig->nCol] = '\x01';" (assignment_expression "pConfig->abUnindexed[pConfig->nCol] = '\x01'" (subscript_expression "pConfig->abUnindexed[pConfig->nCol]" (field_expression "pConfig->abUnindexed" identifier -> field_identifier) [ (field_expression "pConfig->nCol" identifier -> field_identifier) ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                pcVar7 = sqlite3_mprintf("unrecognized column option: %s",pcVar7);\n                *pzErr = pcVar7;\n                iVar3 = 1;\n              }" else (compound_statement "{\n                pcVar7 = sqlite3_mprintf("unrecognized column option: %s",pcVar7);\n                *pzErr = pcVar7;\n                iVar3 = 1;\n              }" { (expression_statement "pcVar7 = sqlite3_mprintf("unrecognized column option: %s",pcVar7);" (assignment_expression "pcVar7 = sqlite3_mprintf("unrecognized column option: %s",pcVar7)" identifier = (call_expression "sqlite3_mprintf("unrecognized column option: %s",pcVar7)" identifier (argument_list "("unrecognized column option: %s",pcVar7)" ( (string_literal ""unrecognized column option: %s"" " string_content ") , identifier )))) ;) (expression_statement "*pzErr = pcVar7;" (assignment_expression "*pzErr = pcVar7" (pointer_expression "*pzErr" * identifier) = identifier) ;) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) }))) })))) (expression_statement "iVar4 = pConfig->nCol;" (assignment_expression "iVar4 = pConfig->nCol" identifier = (field_expression "pConfig->nCol" identifier -> field_identifier)) ;) (expression_statement "pConfig->nCol = iVar4 + 1;" (assignment_expression "pConfig->nCol = iVar4 + 1" (field_expression "pConfig->nCol" identifier -> field_identifier) = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "pConfig->azCol[iVar4] = pcVar14;" (assignment_expression "pConfig->azCol[iVar4] = pcVar14" (subscript_expression "pConfig->azCol[iVar4]" (field_expression "pConfig->azCol" identifier -> field_identifier) [ identifier ]) = identifier) ;) (expression_statement "zOne = (char *)0x0;" (assignment_expression "zOne = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar4 = iVar3;" (assignment_expression "iVar4 = iVar3" identifier = identifier) ;) }) (else_clause "else {\n            pcVar7 = zTwo;\n            if (zTwo == (char *)0x0) {\n              pcVar7 = "";\n            }\n            bDummy = 0;\n            uVar10 = 0xffffffffffffffff;\n            pcVar9 = pcVar14;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n            } while (cVar1 != '\0');\n            N = (int)(~uVar10 - 1);\n            iVar4 = sqlite3_strnicmp("prefix",pcVar14,N);\n            if (iVar4 == 0) {\n              if (pConfig->aPrefix != (int *)0x0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar7;\n                  while (cVar1 == ' ') {\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                  }\n                  if ((cVar1 == ',') && (iVar3 == 0)) {\n                    cVar1 = pcVar7[1];\n                    pcVar7 = pcVar7 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar7 = pcVar7 + 1;\n                      cVar1 = *pcVar7;\n                    }\n                  }\n                  else {\n                    iVar4 = bDummy;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar7;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    pcVar7 = sqlite3_mprintf("malformed prefix=... directive");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  if (pConfig->nPrefix == 0x1f) {\n                    pcVar7 = sqlite3_mprintf("too many prefix indexes (max %d)",0x1f);\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  iVar3 = 0;\n                  do {\n                    iVar3 = cVar1 + -0x30 + iVar3 * 10;\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar3 < 1000);\n                  if (0x3e6 < iVar3 - 1U) goto LAB_0017a6fb;\n                  pConfig->aPrefix[pConfig->nPrefix] = iVar3;\n                  pConfig->nPrefix = pConfig->nPrefix + 1;\n                  iVar3 = 0;\n                } while( true );\n              }\n              piVar8 = (int *)sqlite3Fts5MallocZero(&bDummy,0x7c);\n              pConfig->aPrefix = piVar8;\n              iVar4 = bDummy;\n              if (bDummy == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar4 = sqlite3_strnicmp("tokenize",pcVar14,N);\n              if (iVar4 == 0) {\n                uVar10 = 0xffffffffffffffff;\n                pcVar9 = pcVar7;\n                do {\n                  if (uVar10 == 0) break;\n                  uVar10 = uVar10 - 1;\n                  cVar1 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                } while (cVar1 != '\0');\n                ppcVar6 = (char **)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 8);\n                pcVar9 = (char *)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 2);\n                if ((ppcVar6 != (char **)0x0) && (pcVar9 != (char *)0x0)) {\n                  if (pConfig->pTok == (Fts5Tokenizer *)0x0) {\n                    lVar11 = 0;\n                    if (*pcVar7 != '\0') {\n                      lVar11 = 0;\n                      pcVar14 = pcVar9;\n                      do {\n                        pcVar7 = fts5ConfigSkipWhitespace(pcVar7);\n                        if (*pcVar7 == '\'') {\n                          pIn = fts5ConfigSkipLiteral(pcVar7);\n                        }\n                        else {\n                          pIn = fts5ConfigSkipBareword(pcVar7);\n                        }\n                        if (pIn == (char *)0x0) {\nLAB_0017a8ef:\n                          pcVar7 = sqlite3_mprintf("parse error in tokenize directive");\n                          *pzErr = pcVar7;\n                          bDummy = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(pcVar14,pcVar7,(long)pIn - (long)pcVar7);\n                        ppcVar6[lVar11] = pcVar14;\n                        sqlite3Fts5Dequote(pcVar14);\n                        pcVar14 = pcVar14 + ((long)pIn - (long)pcVar7) + 1;\n                        pcVar7 = fts5ConfigSkipWhitespace(pIn);\n                        lVar11 = lVar11 + 1;\n                        if (pcVar7 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar7 != '\0');\n                    }\n                    bDummy = sqlite3Fts5GetTokenizer\n                                       (pGlobal,ppcVar6,(int)lVar11,&pConfig->pTok,&pConfig->pTokApi\n                                        ,pzErr);\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple tokenize=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                  }\n                }\nLAB_0017a842:\n                sqlite3_free(ppcVar6);\n                sqlite3_free(pcVar9);\n                iVar4 = bDummy;\n              }\n              else {\n                iVar4 = sqlite3_strnicmp("content",pcVar14,N);\n                if (iVar4 == 0) {\n                  if (pConfig->eContent == 0) {\n                    if (*pcVar7 == '\0') {\n                      pConfig->eContent = 1;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pConfig->eContent = 2;\n                      pcVar7 = sqlite3Fts5Mprintf(&bDummy,"%Q.%Q",pConfig->zDb,pcVar7);\n                      pConfig->zContent = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple content=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                  }\n                }\n                else {\n                  iVar4 = sqlite3_strnicmp("content_rowid",pcVar14,N);\n                  if (iVar4 == 0) {\n                    if (pConfig->zContentRowid == (char *)0x0) {\n                      pcVar7 = sqlite3Fts5Strndup(&bDummy,pcVar7,-1);\n                      pConfig->zContentRowid = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pcVar7 = sqlite3_mprintf("multiple content_rowid=... directives");\n                      *pzErr = pcVar7;\n                      bDummy = 1;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    iVar4 = sqlite3_strnicmp("columnsize",pcVar14,N);\n                    if (iVar4 == 0) {\n                      if (((byte)(*pcVar7 - 0x30U) < 2) && (pcVar7[1] == '\0')) {\n                        pConfig->bColumnsize = (uint)(*pcVar7 == '1');\n                        iVar4 = bDummy;\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("malformed columnsize=... directive");\n                        *pzErr = pcVar7;\n                        bDummy = 1;\n                        iVar4 = bDummy;\n                      }\n                    }\n                    else {\n                      iVar4 = sqlite3_strnicmp("detail",pcVar14,N);\n                      if (iVar4 == 0) {\n                        aDetail[0].zName = "none";\n                        aDetail[0].eVal = 1;\n                        aDetail[1].zName = "full";\n                        aDetail[1].eVal = 0;\n                        aDetail[2].zName = "columns";\n                        aDetail[2].eVal = 2;\n                        aDetail[3].zName = (char *)0x0;\n                        aDetail[3].eVal = 0;\n                        lVar11 = -1;\n                        pcVar9 = pcVar7;\n                        do {\n                          if (lVar11 == 0) break;\n                          lVar11 = lVar11 + -1;\n                          cVar1 = *pcVar9;\n                          pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pFVar12 = aDetail;\n                        pcVar9 = "none";\n                        iVar3 = local_c8;\n                        do {\n                          pFVar12 = pFVar12 + 1;\n                          iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1);\n                          if (iVar4 == 0) {\n                            if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar3 = pFVar12[-1].eVal;\n                          }\n                          pcVar9 = pFVar12->zName;\n                        } while (pcVar9 != (char *)0x0);\n                        pConfig->eDetail = iVar3;\n                        bDummy = -(iVar3 >> 0x1f);\n                        iVar4 = bDummy;\n                        if (bDummy != 0) {\nLAB_0017ab15:\n                          pcVar7 = sqlite3_mprintf("malformed detail=... directive");\n                          *pzErr = pcVar7;\n                          iVar4 = bDummy;\n                        }\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14);\n                        *pzErr = pcVar7;\n                        iVar4 = iVar3;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }" else (compound_statement "{\n            pcVar7 = zTwo;\n            if (zTwo == (char *)0x0) {\n              pcVar7 = "";\n            }\n            bDummy = 0;\n            uVar10 = 0xffffffffffffffff;\n            pcVar9 = pcVar14;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n            } while (cVar1 != '\0');\n            N = (int)(~uVar10 - 1);\n            iVar4 = sqlite3_strnicmp("prefix",pcVar14,N);\n            if (iVar4 == 0) {\n              if (pConfig->aPrefix != (int *)0x0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar7;\n                  while (cVar1 == ' ') {\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                  }\n                  if ((cVar1 == ',') && (iVar3 == 0)) {\n                    cVar1 = pcVar7[1];\n                    pcVar7 = pcVar7 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar7 = pcVar7 + 1;\n                      cVar1 = *pcVar7;\n                    }\n                  }\n                  else {\n                    iVar4 = bDummy;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar7;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    pcVar7 = sqlite3_mprintf("malformed prefix=... directive");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  if (pConfig->nPrefix == 0x1f) {\n                    pcVar7 = sqlite3_mprintf("too many prefix indexes (max %d)",0x1f);\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  iVar3 = 0;\n                  do {\n                    iVar3 = cVar1 + -0x30 + iVar3 * 10;\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar3 < 1000);\n                  if (0x3e6 < iVar3 - 1U) goto LAB_0017a6fb;\n                  pConfig->aPrefix[pConfig->nPrefix] = iVar3;\n                  pConfig->nPrefix = pConfig->nPrefix + 1;\n                  iVar3 = 0;\n                } while( true );\n              }\n              piVar8 = (int *)sqlite3Fts5MallocZero(&bDummy,0x7c);\n              pConfig->aPrefix = piVar8;\n              iVar4 = bDummy;\n              if (bDummy == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar4 = sqlite3_strnicmp("tokenize",pcVar14,N);\n              if (iVar4 == 0) {\n                uVar10 = 0xffffffffffffffff;\n                pcVar9 = pcVar7;\n                do {\n                  if (uVar10 == 0) break;\n                  uVar10 = uVar10 - 1;\n                  cVar1 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                } while (cVar1 != '\0');\n                ppcVar6 = (char **)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 8);\n                pcVar9 = (char *)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 2);\n                if ((ppcVar6 != (char **)0x0) && (pcVar9 != (char *)0x0)) {\n                  if (pConfig->pTok == (Fts5Tokenizer *)0x0) {\n                    lVar11 = 0;\n                    if (*pcVar7 != '\0') {\n                      lVar11 = 0;\n                      pcVar14 = pcVar9;\n                      do {\n                        pcVar7 = fts5ConfigSkipWhitespace(pcVar7);\n                        if (*pcVar7 == '\'') {\n                          pIn = fts5ConfigSkipLiteral(pcVar7);\n                        }\n                        else {\n                          pIn = fts5ConfigSkipBareword(pcVar7);\n                        }\n                        if (pIn == (char *)0x0) {\nLAB_0017a8ef:\n                          pcVar7 = sqlite3_mprintf("parse error in tokenize directive");\n                          *pzErr = pcVar7;\n                          bDummy = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(pcVar14,pcVar7,(long)pIn - (long)pcVar7);\n                        ppcVar6[lVar11] = pcVar14;\n                        sqlite3Fts5Dequote(pcVar14);\n                        pcVar14 = pcVar14 + ((long)pIn - (long)pcVar7) + 1;\n                        pcVar7 = fts5ConfigSkipWhitespace(pIn);\n                        lVar11 = lVar11 + 1;\n                        if (pcVar7 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar7 != '\0');\n                    }\n                    bDummy = sqlite3Fts5GetTokenizer\n                                       (pGlobal,ppcVar6,(int)lVar11,&pConfig->pTok,&pConfig->pTokApi\n                                        ,pzErr);\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple tokenize=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                  }\n                }\nLAB_0017a842:\n                sqlite3_free(ppcVar6);\n                sqlite3_free(pcVar9);\n                iVar4 = bDummy;\n              }\n              else {\n                iVar4 = sqlite3_strnicmp("content",pcVar14,N);\n                if (iVar4 == 0) {\n                  if (pConfig->eContent == 0) {\n                    if (*pcVar7 == '\0') {\n                      pConfig->eContent = 1;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pConfig->eContent = 2;\n                      pcVar7 = sqlite3Fts5Mprintf(&bDummy,"%Q.%Q",pConfig->zDb,pcVar7);\n                      pConfig->zContent = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple content=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                  }\n                }\n                else {\n                  iVar4 = sqlite3_strnicmp("content_rowid",pcVar14,N);\n                  if (iVar4 == 0) {\n                    if (pConfig->zContentRowid == (char *)0x0) {\n                      pcVar7 = sqlite3Fts5Strndup(&bDummy,pcVar7,-1);\n                      pConfig->zContentRowid = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pcVar7 = sqlite3_mprintf("multiple content_rowid=... directives");\n                      *pzErr = pcVar7;\n                      bDummy = 1;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    iVar4 = sqlite3_strnicmp("columnsize",pcVar14,N);\n                    if (iVar4 == 0) {\n                      if (((byte)(*pcVar7 - 0x30U) < 2) && (pcVar7[1] == '\0')) {\n                        pConfig->bColumnsize = (uint)(*pcVar7 == '1');\n                        iVar4 = bDummy;\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("malformed columnsize=... directive");\n                        *pzErr = pcVar7;\n                        bDummy = 1;\n                        iVar4 = bDummy;\n                      }\n                    }\n                    else {\n                      iVar4 = sqlite3_strnicmp("detail",pcVar14,N);\n                      if (iVar4 == 0) {\n                        aDetail[0].zName = "none";\n                        aDetail[0].eVal = 1;\n                        aDetail[1].zName = "full";\n                        aDetail[1].eVal = 0;\n                        aDetail[2].zName = "columns";\n                        aDetail[2].eVal = 2;\n                        aDetail[3].zName = (char *)0x0;\n                        aDetail[3].eVal = 0;\n                        lVar11 = -1;\n                        pcVar9 = pcVar7;\n                        do {\n                          if (lVar11 == 0) break;\n                          lVar11 = lVar11 + -1;\n                          cVar1 = *pcVar9;\n                          pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pFVar12 = aDetail;\n                        pcVar9 = "none";\n                        iVar3 = local_c8;\n                        do {\n                          pFVar12 = pFVar12 + 1;\n                          iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1);\n                          if (iVar4 == 0) {\n                            if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar3 = pFVar12[-1].eVal;\n                          }\n                          pcVar9 = pFVar12->zName;\n                        } while (pcVar9 != (char *)0x0);\n                        pConfig->eDetail = iVar3;\n                        bDummy = -(iVar3 >> 0x1f);\n                        iVar4 = bDummy;\n                        if (bDummy != 0) {\nLAB_0017ab15:\n                          pcVar7 = sqlite3_mprintf("malformed detail=... directive");\n                          *pzErr = pcVar7;\n                          iVar4 = bDummy;\n                        }\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14);\n                        *pzErr = pcVar7;\n                        iVar4 = iVar3;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }" { (expression_statement "pcVar7 = zTwo;" (assignment_expression "pcVar7 = zTwo" identifier = identifier) ;) (if_statement "if (zTwo == (char *)0x0) {\n              pcVar7 = "";\n            }" if (parenthesized_expression "(zTwo == (char *)0x0)" ( (binary_expression "zTwo == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pcVar7 = "";\n            }" { (expression_statement "pcVar7 = "";" (assignment_expression "pcVar7 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "bDummy = 0;" (assignment_expression "bDummy = 0" identifier = number_literal) ;) (expression_statement "uVar10 = 0xffffffffffffffff;" (assignment_expression "uVar10 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar9 = pcVar14;" (assignment_expression "pcVar9 = pcVar14" identifier = identifier) ;) (do_statement "do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n            } while (cVar1 != '\0');" do (compound_statement "{\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n            }" { (if_statement "if (uVar10 == 0) break;" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar10 = uVar10 - 1;" (assignment_expression "uVar10 = uVar10 - 1" identifier = (binary_expression "uVar10 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar9;" (assignment_expression "cVar1 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1" identifier = (binary_expression "pcVar9 + (ulong)bVar16 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar16 * -2" identifier + (binary_expression "(ulong)bVar16 * -2" (cast_expression "(ulong)bVar16" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "N = (int)(~uVar10 - 1);" (assignment_expression "N = (int)(~uVar10 - 1)" identifier = (cast_expression "(int)(~uVar10 - 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(~uVar10 - 1)" ( (binary_expression "~uVar10 - 1" (unary_expression "~uVar10" ~ identifier) - number_literal) )))) ;) (expression_statement "iVar4 = sqlite3_strnicmp("prefix",pcVar14,N);" (assignment_expression "iVar4 = sqlite3_strnicmp("prefix",pcVar14,N)" identifier = (call_expression "sqlite3_strnicmp("prefix",pcVar14,N)" identifier (argument_list "("prefix",pcVar14,N)" ( (string_literal ""prefix"" " string_content ") , identifier , identifier )))) ;) (if_statement "if (iVar4 == 0) {\n              if (pConfig->aPrefix != (int *)0x0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar7;\n                  while (cVar1 == ' ') {\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                  }\n                  if ((cVar1 == ',') && (iVar3 == 0)) {\n                    cVar1 = pcVar7[1];\n                    pcVar7 = pcVar7 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar7 = pcVar7 + 1;\n                      cVar1 = *pcVar7;\n                    }\n                  }\n                  else {\n                    iVar4 = bDummy;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar7;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    pcVar7 = sqlite3_mprintf("malformed prefix=... directive");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  if (pConfig->nPrefix == 0x1f) {\n                    pcVar7 = sqlite3_mprintf("too many prefix indexes (max %d)",0x1f);\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  iVar3 = 0;\n                  do {\n                    iVar3 = cVar1 + -0x30 + iVar3 * 10;\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar3 < 1000);\n                  if (0x3e6 < iVar3 - 1U) goto LAB_0017a6fb;\n                  pConfig->aPrefix[pConfig->nPrefix] = iVar3;\n                  pConfig->nPrefix = pConfig->nPrefix + 1;\n                  iVar3 = 0;\n                } while( true );\n              }\n              piVar8 = (int *)sqlite3Fts5MallocZero(&bDummy,0x7c);\n              pConfig->aPrefix = piVar8;\n              iVar4 = bDummy;\n              if (bDummy == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar4 = sqlite3_strnicmp("tokenize",pcVar14,N);\n              if (iVar4 == 0) {\n                uVar10 = 0xffffffffffffffff;\n                pcVar9 = pcVar7;\n                do {\n                  if (uVar10 == 0) break;\n                  uVar10 = uVar10 - 1;\n                  cVar1 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                } while (cVar1 != '\0');\n                ppcVar6 = (char **)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 8);\n                pcVar9 = (char *)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 2);\n                if ((ppcVar6 != (char **)0x0) && (pcVar9 != (char *)0x0)) {\n                  if (pConfig->pTok == (Fts5Tokenizer *)0x0) {\n                    lVar11 = 0;\n                    if (*pcVar7 != '\0') {\n                      lVar11 = 0;\n                      pcVar14 = pcVar9;\n                      do {\n                        pcVar7 = fts5ConfigSkipWhitespace(pcVar7);\n                        if (*pcVar7 == '\'') {\n                          pIn = fts5ConfigSkipLiteral(pcVar7);\n                        }\n                        else {\n                          pIn = fts5ConfigSkipBareword(pcVar7);\n                        }\n                        if (pIn == (char *)0x0) {\nLAB_0017a8ef:\n                          pcVar7 = sqlite3_mprintf("parse error in tokenize directive");\n                          *pzErr = pcVar7;\n                          bDummy = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(pcVar14,pcVar7,(long)pIn - (long)pcVar7);\n                        ppcVar6[lVar11] = pcVar14;\n                        sqlite3Fts5Dequote(pcVar14);\n                        pcVar14 = pcVar14 + ((long)pIn - (long)pcVar7) + 1;\n                        pcVar7 = fts5ConfigSkipWhitespace(pIn);\n                        lVar11 = lVar11 + 1;\n                        if (pcVar7 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar7 != '\0');\n                    }\n                    bDummy = sqlite3Fts5GetTokenizer\n                                       (pGlobal,ppcVar6,(int)lVar11,&pConfig->pTok,&pConfig->pTokApi\n                                        ,pzErr);\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple tokenize=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                  }\n                }\nLAB_0017a842:\n                sqlite3_free(ppcVar6);\n                sqlite3_free(pcVar9);\n                iVar4 = bDummy;\n              }\n              else {\n                iVar4 = sqlite3_strnicmp("content",pcVar14,N);\n                if (iVar4 == 0) {\n                  if (pConfig->eContent == 0) {\n                    if (*pcVar7 == '\0') {\n                      pConfig->eContent = 1;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pConfig->eContent = 2;\n                      pcVar7 = sqlite3Fts5Mprintf(&bDummy,"%Q.%Q",pConfig->zDb,pcVar7);\n                      pConfig->zContent = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple content=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                  }\n                }\n                else {\n                  iVar4 = sqlite3_strnicmp("content_rowid",pcVar14,N);\n                  if (iVar4 == 0) {\n                    if (pConfig->zContentRowid == (char *)0x0) {\n                      pcVar7 = sqlite3Fts5Strndup(&bDummy,pcVar7,-1);\n                      pConfig->zContentRowid = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pcVar7 = sqlite3_mprintf("multiple content_rowid=... directives");\n                      *pzErr = pcVar7;\n                      bDummy = 1;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    iVar4 = sqlite3_strnicmp("columnsize",pcVar14,N);\n                    if (iVar4 == 0) {\n                      if (((byte)(*pcVar7 - 0x30U) < 2) && (pcVar7[1] == '\0')) {\n                        pConfig->bColumnsize = (uint)(*pcVar7 == '1');\n                        iVar4 = bDummy;\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("malformed columnsize=... directive");\n                        *pzErr = pcVar7;\n                        bDummy = 1;\n                        iVar4 = bDummy;\n                      }\n                    }\n                    else {\n                      iVar4 = sqlite3_strnicmp("detail",pcVar14,N);\n                      if (iVar4 == 0) {\n                        aDetail[0].zName = "none";\n                        aDetail[0].eVal = 1;\n                        aDetail[1].zName = "full";\n                        aDetail[1].eVal = 0;\n                        aDetail[2].zName = "columns";\n                        aDetail[2].eVal = 2;\n                        aDetail[3].zName = (char *)0x0;\n                        aDetail[3].eVal = 0;\n                        lVar11 = -1;\n                        pcVar9 = pcVar7;\n                        do {\n                          if (lVar11 == 0) break;\n                          lVar11 = lVar11 + -1;\n                          cVar1 = *pcVar9;\n                          pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pFVar12 = aDetail;\n                        pcVar9 = "none";\n                        iVar3 = local_c8;\n                        do {\n                          pFVar12 = pFVar12 + 1;\n                          iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1);\n                          if (iVar4 == 0) {\n                            if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar3 = pFVar12[-1].eVal;\n                          }\n                          pcVar9 = pFVar12->zName;\n                        } while (pcVar9 != (char *)0x0);\n                        pConfig->eDetail = iVar3;\n                        bDummy = -(iVar3 >> 0x1f);\n                        iVar4 = bDummy;\n                        if (bDummy != 0) {\nLAB_0017ab15:\n                          pcVar7 = sqlite3_mprintf("malformed detail=... directive");\n                          *pzErr = pcVar7;\n                          iVar4 = bDummy;\n                        }\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14);\n                        *pzErr = pcVar7;\n                        iVar4 = iVar3;\n                      }\n                    }\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n              if (pConfig->aPrefix != (int *)0x0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar7;\n                  while (cVar1 == ' ') {\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                  }\n                  if ((cVar1 == ',') && (iVar3 == 0)) {\n                    cVar1 = pcVar7[1];\n                    pcVar7 = pcVar7 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar7 = pcVar7 + 1;\n                      cVar1 = *pcVar7;\n                    }\n                  }\n                  else {\n                    iVar4 = bDummy;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar7;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    pcVar7 = sqlite3_mprintf("malformed prefix=... directive");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  if (pConfig->nPrefix == 0x1f) {\n                    pcVar7 = sqlite3_mprintf("too many prefix indexes (max %d)",0x1f);\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  iVar3 = 0;\n                  do {\n                    iVar3 = cVar1 + -0x30 + iVar3 * 10;\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar3 < 1000);\n                  if (0x3e6 < iVar3 - 1U) goto LAB_0017a6fb;\n                  pConfig->aPrefix[pConfig->nPrefix] = iVar3;\n                  pConfig->nPrefix = pConfig->nPrefix + 1;\n                  iVar3 = 0;\n                } while( true );\n              }\n              piVar8 = (int *)sqlite3Fts5MallocZero(&bDummy,0x7c);\n              pConfig->aPrefix = piVar8;\n              iVar4 = bDummy;\n              if (bDummy == 0) goto LAB_0017a68f;\n            }" { (if_statement "if (pConfig->aPrefix != (int *)0x0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar7;\n                  while (cVar1 == ' ') {\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                  }\n                  if ((cVar1 == ',') && (iVar3 == 0)) {\n                    cVar1 = pcVar7[1];\n                    pcVar7 = pcVar7 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar7 = pcVar7 + 1;\n                      cVar1 = *pcVar7;\n                    }\n                  }\n                  else {\n                    iVar4 = bDummy;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar7;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    pcVar7 = sqlite3_mprintf("malformed prefix=... directive");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  if (pConfig->nPrefix == 0x1f) {\n                    pcVar7 = sqlite3_mprintf("too many prefix indexes (max %d)",0x1f);\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  iVar3 = 0;\n                  do {\n                    iVar3 = cVar1 + -0x30 + iVar3 * 10;\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar3 < 1000);\n                  if (0x3e6 < iVar3 - 1U) goto LAB_0017a6fb;\n                  pConfig->aPrefix[pConfig->nPrefix] = iVar3;\n                  pConfig->nPrefix = pConfig->nPrefix + 1;\n                  iVar3 = 0;\n                } while( true );\n              }" if (parenthesized_expression "(pConfig->aPrefix != (int *)0x0)" ( (binary_expression "pConfig->aPrefix != (int *)0x0" (field_expression "pConfig->aPrefix" identifier -> field_identifier) != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar7;\n                  while (cVar1 == ' ') {\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                  }\n                  if ((cVar1 == ',') && (iVar3 == 0)) {\n                    cVar1 = pcVar7[1];\n                    pcVar7 = pcVar7 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar7 = pcVar7 + 1;\n                      cVar1 = *pcVar7;\n                    }\n                  }\n                  else {\n                    iVar4 = bDummy;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar7;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    pcVar7 = sqlite3_mprintf("malformed prefix=... directive");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  if (pConfig->nPrefix == 0x1f) {\n                    pcVar7 = sqlite3_mprintf("too many prefix indexes (max %d)",0x1f);\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  iVar3 = 0;\n                  do {\n                    iVar3 = cVar1 + -0x30 + iVar3 * 10;\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar3 < 1000);\n                  if (0x3e6 < iVar3 - 1U) goto LAB_0017a6fb;\n                  pConfig->aPrefix[pConfig->nPrefix] = iVar3;\n                  pConfig->nPrefix = pConfig->nPrefix + 1;\n                  iVar3 = 0;\n                } while( true );\n              }" { (labeled_statement "LAB_0017a68f:\n                do {\n                  cVar1 = *pcVar7;\n                  while (cVar1 == ' ') {\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                  }\n                  if ((cVar1 == ',') && (iVar3 == 0)) {\n                    cVar1 = pcVar7[1];\n                    pcVar7 = pcVar7 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar7 = pcVar7 + 1;\n                      cVar1 = *pcVar7;\n                    }\n                  }\n                  else {\n                    iVar4 = bDummy;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar7;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    pcVar7 = sqlite3_mprintf("malformed prefix=... directive");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  if (pConfig->nPrefix == 0x1f) {\n                    pcVar7 = sqlite3_mprintf("too many prefix indexes (max %d)",0x1f);\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  iVar3 = 0;\n                  do {\n                    iVar3 = cVar1 + -0x30 + iVar3 * 10;\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar3 < 1000);\n                  if (0x3e6 < iVar3 - 1U) goto LAB_0017a6fb;\n                  pConfig->aPrefix[pConfig->nPrefix] = iVar3;\n                  pConfig->nPrefix = pConfig->nPrefix + 1;\n                  iVar3 = 0;\n                } while( true );" statement_identifier : (do_statement "do {\n                  cVar1 = *pcVar7;\n                  while (cVar1 == ' ') {\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                  }\n                  if ((cVar1 == ',') && (iVar3 == 0)) {\n                    cVar1 = pcVar7[1];\n                    pcVar7 = pcVar7 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar7 = pcVar7 + 1;\n                      cVar1 = *pcVar7;\n                    }\n                  }\n                  else {\n                    iVar4 = bDummy;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar7;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    pcVar7 = sqlite3_mprintf("malformed prefix=... directive");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  if (pConfig->nPrefix == 0x1f) {\n                    pcVar7 = sqlite3_mprintf("too many prefix indexes (max %d)",0x1f);\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  iVar3 = 0;\n                  do {\n                    iVar3 = cVar1 + -0x30 + iVar3 * 10;\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar3 < 1000);\n                  if (0x3e6 < iVar3 - 1U) goto LAB_0017a6fb;\n                  pConfig->aPrefix[pConfig->nPrefix] = iVar3;\n                  pConfig->nPrefix = pConfig->nPrefix + 1;\n                  iVar3 = 0;\n                } while( true );" do (compound_statement "{\n                  cVar1 = *pcVar7;\n                  while (cVar1 == ' ') {\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                  }\n                  if ((cVar1 == ',') && (iVar3 == 0)) {\n                    cVar1 = pcVar7[1];\n                    pcVar7 = pcVar7 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar7 = pcVar7 + 1;\n                      cVar1 = *pcVar7;\n                    }\n                  }\n                  else {\n                    iVar4 = bDummy;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar7;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    pcVar7 = sqlite3_mprintf("malformed prefix=... directive");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  if (pConfig->nPrefix == 0x1f) {\n                    pcVar7 = sqlite3_mprintf("too many prefix indexes (max %d)",0x1f);\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }\n                  iVar3 = 0;\n                  do {\n                    iVar3 = cVar1 + -0x30 + iVar3 * 10;\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar3 < 1000);\n                  if (0x3e6 < iVar3 - 1U) goto LAB_0017a6fb;\n                  pConfig->aPrefix[pConfig->nPrefix] = iVar3;\n                  pConfig->nPrefix = pConfig->nPrefix + 1;\n                  iVar3 = 0;\n                }" { (expression_statement "cVar1 = *pcVar7;" (assignment_expression "cVar1 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (while_statement "while (cVar1 == ' ') {\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                  }" while (parenthesized_expression "(cVar1 == ' ')" ( (binary_expression "cVar1 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                  }" { (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar7;" (assignment_expression "cVar1 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) })) (if_statement "if ((cVar1 == ',') && (iVar3 == 0)) {\n                    cVar1 = pcVar7[1];\n                    pcVar7 = pcVar7 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar7 = pcVar7 + 1;\n                      cVar1 = *pcVar7;\n                    }\n                  }\n                  else {\n                    iVar4 = bDummy;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }" if (parenthesized_expression "((cVar1 == ',') && (iVar3 == 0))" ( (binary_expression "(cVar1 == ',') && (iVar3 == 0)" (parenthesized_expression "(cVar1 == ',')" ( (binary_expression "cVar1 == ','" identifier == (char_literal "','" ' character ')) )) && (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) ))) )) (compound_statement "{\n                    cVar1 = pcVar7[1];\n                    pcVar7 = pcVar7 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar7 = pcVar7 + 1;\n                      cVar1 = *pcVar7;\n                    }\n                  }" { (expression_statement "cVar1 = pcVar7[1];" (assignment_expression "cVar1 = pcVar7[1]" identifier = (subscript_expression "pcVar7[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (while_statement "while (cVar1 == ' ') {\n                      pcVar7 = pcVar7 + 1;\n                      cVar1 = *pcVar7;\n                    }" while (parenthesized_expression "(cVar1 == ' ')" ( (binary_expression "cVar1 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n                      pcVar7 = pcVar7 + 1;\n                      cVar1 = *pcVar7;\n                    }" { (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar7;" (assignment_expression "cVar1 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) })) }) (else_clause "else {\n                    iVar4 = bDummy;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }" else (compound_statement "{\n                    iVar4 = bDummy;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }" { (expression_statement "iVar4 = bDummy;" (assignment_expression "iVar4 = bDummy" identifier = identifier) ;) (if_statement "if (cVar1 == '\0') goto LAB_0017a527;" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0017a527;" goto statement_identifier ;)) }))) (expression_statement "cVar1 = *pcVar7;" (assignment_expression "cVar1 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (if_statement "if (9 < (byte)(cVar1 - 0x30U)) {\n                    pcVar7 = sqlite3_mprintf("malformed prefix=... directive");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }" if (parenthesized_expression "(9 < (byte)(cVar1 - 0x30U))" ( (binary_expression "9 < (byte)(cVar1 - 0x30U)" number_literal < (call_expression "(byte)(cVar1 - 0x30U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar1 - 0x30U)" ( (binary_expression "cVar1 - 0x30U" identifier - number_literal) )))) )) (compound_statement "{\n                    pcVar7 = sqlite3_mprintf("malformed prefix=... directive");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }" { (expression_statement "pcVar7 = sqlite3_mprintf("malformed prefix=... directive");" (assignment_expression "pcVar7 = sqlite3_mprintf("malformed prefix=... directive")" identifier = (call_expression "sqlite3_mprintf("malformed prefix=... directive")" identifier (argument_list "("malformed prefix=... directive")" ( (string_literal ""malformed prefix=... directive"" " string_content ") )))) ;) (expression_statement "*pzErr = pcVar7;" (assignment_expression "*pzErr = pcVar7" (pointer_expression "*pzErr" * identifier) = identifier) ;) (expression_statement "bDummy = 1;" (assignment_expression "bDummy = 1" identifier = number_literal) ;) (expression_statement "iVar4 = bDummy;" (assignment_expression "iVar4 = bDummy" identifier = identifier) ;) (goto_statement "goto LAB_0017a527;" goto statement_identifier ;) })) (if_statement "if (pConfig->nPrefix == 0x1f) {\n                    pcVar7 = sqlite3_mprintf("too many prefix indexes (max %d)",0x1f);\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }" if (parenthesized_expression "(pConfig->nPrefix == 0x1f)" ( (binary_expression "pConfig->nPrefix == 0x1f" (field_expression "pConfig->nPrefix" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n                    pcVar7 = sqlite3_mprintf("too many prefix indexes (max %d)",0x1f);\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                    goto LAB_0017a527;\n                  }" { (expression_statement "pcVar7 = sqlite3_mprintf("too many prefix indexes (max %d)",0x1f);" (assignment_expression "pcVar7 = sqlite3_mprintf("too many prefix indexes (max %d)",0x1f)" identifier = (call_expression "sqlite3_mprintf("too many prefix indexes (max %d)",0x1f)" identifier (argument_list "("too many prefix indexes (max %d)",0x1f)" ( (string_literal ""too many prefix indexes (max %d)"" " string_content ") , number_literal )))) ;) (expression_statement "*pzErr = pcVar7;" (assignment_expression "*pzErr = pcVar7" (pointer_expression "*pzErr" * identifier) = identifier) ;) (expression_statement "bDummy = 1;" (assignment_expression "bDummy = 1" identifier = number_literal) ;) (expression_statement "iVar4 = bDummy;" (assignment_expression "iVar4 = bDummy" identifier = identifier) ;) (goto_statement "goto LAB_0017a527;" goto statement_identifier ;) })) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n                    iVar3 = cVar1 + -0x30 + iVar3 * 10;\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar3 < 1000);" do (compound_statement "{\n                    iVar3 = cVar1 + -0x30 + iVar3 * 10;\n                    pcVar7 = pcVar7 + 1;\n                    cVar1 = *pcVar7;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  }" { (expression_statement "iVar3 = cVar1 + -0x30 + iVar3 * 10;" (assignment_expression "iVar3 = cVar1 + -0x30 + iVar3 * 10" identifier = (binary_expression "cVar1 + -0x30 + iVar3 * 10" (binary_expression "cVar1 + -0x30" identifier + number_literal) + (binary_expression "iVar3 * 10" identifier * number_literal))) ;) (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar7;" (assignment_expression "cVar1 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (if_statement "if (9 < (byte)(cVar1 - 0x30U)) break;" if (parenthesized_expression "(9 < (byte)(cVar1 - 0x30U))" ( (binary_expression "9 < (byte)(cVar1 - 0x30U)" number_literal < (call_expression "(byte)(cVar1 - 0x30U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar1 - 0x30U)" ( (binary_expression "cVar1 - 0x30U" identifier - number_literal) )))) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "(iVar3 < 1000)" ( (binary_expression "iVar3 < 1000" identifier < number_literal) )) ;) (if_statement "if (0x3e6 < iVar3 - 1U) goto LAB_0017a6fb;" if (parenthesized_expression "(0x3e6 < iVar3 - 1U)" ( (binary_expression "0x3e6 < iVar3 - 1U" number_literal < (binary_expression "iVar3 - 1U" identifier - number_literal)) )) (goto_statement "goto LAB_0017a6fb;" goto statement_identifier ;)) (expression_statement "pConfig->aPrefix[pConfig->nPrefix] = iVar3;" (assignment_expression "pConfig->aPrefix[pConfig->nPrefix] = iVar3" (subscript_expression "pConfig->aPrefix[pConfig->nPrefix]" (field_expression "pConfig->aPrefix" identifier -> field_identifier) [ (field_expression "pConfig->nPrefix" identifier -> field_identifier) ]) = identifier) ;) (expression_statement "pConfig->nPrefix = pConfig->nPrefix + 1;" (assignment_expression "pConfig->nPrefix = pConfig->nPrefix + 1" (field_expression "pConfig->nPrefix" identifier -> field_identifier) = (binary_expression "pConfig->nPrefix + 1" (field_expression "pConfig->nPrefix" identifier -> field_identifier) + number_literal)) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) })) (expression_statement "piVar8 = (int *)sqlite3Fts5MallocZero(&bDummy,0x7c);" (assignment_expression "piVar8 = (int *)sqlite3Fts5MallocZero(&bDummy,0x7c)" identifier = (cast_expression "(int *)sqlite3Fts5MallocZero(&bDummy,0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3Fts5MallocZero(&bDummy,0x7c)" identifier (argument_list "(&bDummy,0x7c)" ( (pointer_expression "&bDummy" & identifier) , number_literal ))))) ;) (expression_statement "pConfig->aPrefix = piVar8;" (assignment_expression "pConfig->aPrefix = piVar8" (field_expression "pConfig->aPrefix" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar4 = bDummy;" (assignment_expression "iVar4 = bDummy" identifier = identifier) ;) (if_statement "if (bDummy == 0) goto LAB_0017a68f;" if (parenthesized_expression "(bDummy == 0)" ( (binary_expression "bDummy == 0" identifier == number_literal) )) (goto_statement "goto LAB_0017a68f;" goto statement_identifier ;)) }) (else_clause "else {\n              iVar4 = sqlite3_strnicmp("tokenize",pcVar14,N);\n              if (iVar4 == 0) {\n                uVar10 = 0xffffffffffffffff;\n                pcVar9 = pcVar7;\n                do {\n                  if (uVar10 == 0) break;\n                  uVar10 = uVar10 - 1;\n                  cVar1 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                } while (cVar1 != '\0');\n                ppcVar6 = (char **)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 8);\n                pcVar9 = (char *)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 2);\n                if ((ppcVar6 != (char **)0x0) && (pcVar9 != (char *)0x0)) {\n                  if (pConfig->pTok == (Fts5Tokenizer *)0x0) {\n                    lVar11 = 0;\n                    if (*pcVar7 != '\0') {\n                      lVar11 = 0;\n                      pcVar14 = pcVar9;\n                      do {\n                        pcVar7 = fts5ConfigSkipWhitespace(pcVar7);\n                        if (*pcVar7 == '\'') {\n                          pIn = fts5ConfigSkipLiteral(pcVar7);\n                        }\n                        else {\n                          pIn = fts5ConfigSkipBareword(pcVar7);\n                        }\n                        if (pIn == (char *)0x0) {\nLAB_0017a8ef:\n                          pcVar7 = sqlite3_mprintf("parse error in tokenize directive");\n                          *pzErr = pcVar7;\n                          bDummy = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(pcVar14,pcVar7,(long)pIn - (long)pcVar7);\n                        ppcVar6[lVar11] = pcVar14;\n                        sqlite3Fts5Dequote(pcVar14);\n                        pcVar14 = pcVar14 + ((long)pIn - (long)pcVar7) + 1;\n                        pcVar7 = fts5ConfigSkipWhitespace(pIn);\n                        lVar11 = lVar11 + 1;\n                        if (pcVar7 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar7 != '\0');\n                    }\n                    bDummy = sqlite3Fts5GetTokenizer\n                                       (pGlobal,ppcVar6,(int)lVar11,&pConfig->pTok,&pConfig->pTokApi\n                                        ,pzErr);\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple tokenize=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                  }\n                }\nLAB_0017a842:\n                sqlite3_free(ppcVar6);\n                sqlite3_free(pcVar9);\n                iVar4 = bDummy;\n              }\n              else {\n                iVar4 = sqlite3_strnicmp("content",pcVar14,N);\n                if (iVar4 == 0) {\n                  if (pConfig->eContent == 0) {\n                    if (*pcVar7 == '\0') {\n                      pConfig->eContent = 1;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pConfig->eContent = 2;\n                      pcVar7 = sqlite3Fts5Mprintf(&bDummy,"%Q.%Q",pConfig->zDb,pcVar7);\n                      pConfig->zContent = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple content=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                  }\n                }\n                else {\n                  iVar4 = sqlite3_strnicmp("content_rowid",pcVar14,N);\n                  if (iVar4 == 0) {\n                    if (pConfig->zContentRowid == (char *)0x0) {\n                      pcVar7 = sqlite3Fts5Strndup(&bDummy,pcVar7,-1);\n                      pConfig->zContentRowid = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pcVar7 = sqlite3_mprintf("multiple content_rowid=... directives");\n                      *pzErr = pcVar7;\n                      bDummy = 1;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    iVar4 = sqlite3_strnicmp("columnsize",pcVar14,N);\n                    if (iVar4 == 0) {\n                      if (((byte)(*pcVar7 - 0x30U) < 2) && (pcVar7[1] == '\0')) {\n                        pConfig->bColumnsize = (uint)(*pcVar7 == '1');\n                        iVar4 = bDummy;\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("malformed columnsize=... directive");\n                        *pzErr = pcVar7;\n                        bDummy = 1;\n                        iVar4 = bDummy;\n                      }\n                    }\n                    else {\n                      iVar4 = sqlite3_strnicmp("detail",pcVar14,N);\n                      if (iVar4 == 0) {\n                        aDetail[0].zName = "none";\n                        aDetail[0].eVal = 1;\n                        aDetail[1].zName = "full";\n                        aDetail[1].eVal = 0;\n                        aDetail[2].zName = "columns";\n                        aDetail[2].eVal = 2;\n                        aDetail[3].zName = (char *)0x0;\n                        aDetail[3].eVal = 0;\n                        lVar11 = -1;\n                        pcVar9 = pcVar7;\n                        do {\n                          if (lVar11 == 0) break;\n                          lVar11 = lVar11 + -1;\n                          cVar1 = *pcVar9;\n                          pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pFVar12 = aDetail;\n                        pcVar9 = "none";\n                        iVar3 = local_c8;\n                        do {\n                          pFVar12 = pFVar12 + 1;\n                          iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1);\n                          if (iVar4 == 0) {\n                            if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar3 = pFVar12[-1].eVal;\n                          }\n                          pcVar9 = pFVar12->zName;\n                        } while (pcVar9 != (char *)0x0);\n                        pConfig->eDetail = iVar3;\n                        bDummy = -(iVar3 >> 0x1f);\n                        iVar4 = bDummy;\n                        if (bDummy != 0) {\nLAB_0017ab15:\n                          pcVar7 = sqlite3_mprintf("malformed detail=... directive");\n                          *pzErr = pcVar7;\n                          iVar4 = bDummy;\n                        }\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14);\n                        *pzErr = pcVar7;\n                        iVar4 = iVar3;\n                      }\n                    }\n                  }\n                }\n              }\n            }" else (compound_statement "{\n              iVar4 = sqlite3_strnicmp("tokenize",pcVar14,N);\n              if (iVar4 == 0) {\n                uVar10 = 0xffffffffffffffff;\n                pcVar9 = pcVar7;\n                do {\n                  if (uVar10 == 0) break;\n                  uVar10 = uVar10 - 1;\n                  cVar1 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                } while (cVar1 != '\0');\n                ppcVar6 = (char **)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 8);\n                pcVar9 = (char *)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 2);\n                if ((ppcVar6 != (char **)0x0) && (pcVar9 != (char *)0x0)) {\n                  if (pConfig->pTok == (Fts5Tokenizer *)0x0) {\n                    lVar11 = 0;\n                    if (*pcVar7 != '\0') {\n                      lVar11 = 0;\n                      pcVar14 = pcVar9;\n                      do {\n                        pcVar7 = fts5ConfigSkipWhitespace(pcVar7);\n                        if (*pcVar7 == '\'') {\n                          pIn = fts5ConfigSkipLiteral(pcVar7);\n                        }\n                        else {\n                          pIn = fts5ConfigSkipBareword(pcVar7);\n                        }\n                        if (pIn == (char *)0x0) {\nLAB_0017a8ef:\n                          pcVar7 = sqlite3_mprintf("parse error in tokenize directive");\n                          *pzErr = pcVar7;\n                          bDummy = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(pcVar14,pcVar7,(long)pIn - (long)pcVar7);\n                        ppcVar6[lVar11] = pcVar14;\n                        sqlite3Fts5Dequote(pcVar14);\n                        pcVar14 = pcVar14 + ((long)pIn - (long)pcVar7) + 1;\n                        pcVar7 = fts5ConfigSkipWhitespace(pIn);\n                        lVar11 = lVar11 + 1;\n                        if (pcVar7 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar7 != '\0');\n                    }\n                    bDummy = sqlite3Fts5GetTokenizer\n                                       (pGlobal,ppcVar6,(int)lVar11,&pConfig->pTok,&pConfig->pTokApi\n                                        ,pzErr);\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple tokenize=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                  }\n                }\nLAB_0017a842:\n                sqlite3_free(ppcVar6);\n                sqlite3_free(pcVar9);\n                iVar4 = bDummy;\n              }\n              else {\n                iVar4 = sqlite3_strnicmp("content",pcVar14,N);\n                if (iVar4 == 0) {\n                  if (pConfig->eContent == 0) {\n                    if (*pcVar7 == '\0') {\n                      pConfig->eContent = 1;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pConfig->eContent = 2;\n                      pcVar7 = sqlite3Fts5Mprintf(&bDummy,"%Q.%Q",pConfig->zDb,pcVar7);\n                      pConfig->zContent = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple content=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                  }\n                }\n                else {\n                  iVar4 = sqlite3_strnicmp("content_rowid",pcVar14,N);\n                  if (iVar4 == 0) {\n                    if (pConfig->zContentRowid == (char *)0x0) {\n                      pcVar7 = sqlite3Fts5Strndup(&bDummy,pcVar7,-1);\n                      pConfig->zContentRowid = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pcVar7 = sqlite3_mprintf("multiple content_rowid=... directives");\n                      *pzErr = pcVar7;\n                      bDummy = 1;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    iVar4 = sqlite3_strnicmp("columnsize",pcVar14,N);\n                    if (iVar4 == 0) {\n                      if (((byte)(*pcVar7 - 0x30U) < 2) && (pcVar7[1] == '\0')) {\n                        pConfig->bColumnsize = (uint)(*pcVar7 == '1');\n                        iVar4 = bDummy;\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("malformed columnsize=... directive");\n                        *pzErr = pcVar7;\n                        bDummy = 1;\n                        iVar4 = bDummy;\n                      }\n                    }\n                    else {\n                      iVar4 = sqlite3_strnicmp("detail",pcVar14,N);\n                      if (iVar4 == 0) {\n                        aDetail[0].zName = "none";\n                        aDetail[0].eVal = 1;\n                        aDetail[1].zName = "full";\n                        aDetail[1].eVal = 0;\n                        aDetail[2].zName = "columns";\n                        aDetail[2].eVal = 2;\n                        aDetail[3].zName = (char *)0x0;\n                        aDetail[3].eVal = 0;\n                        lVar11 = -1;\n                        pcVar9 = pcVar7;\n                        do {\n                          if (lVar11 == 0) break;\n                          lVar11 = lVar11 + -1;\n                          cVar1 = *pcVar9;\n                          pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pFVar12 = aDetail;\n                        pcVar9 = "none";\n                        iVar3 = local_c8;\n                        do {\n                          pFVar12 = pFVar12 + 1;\n                          iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1);\n                          if (iVar4 == 0) {\n                            if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar3 = pFVar12[-1].eVal;\n                          }\n                          pcVar9 = pFVar12->zName;\n                        } while (pcVar9 != (char *)0x0);\n                        pConfig->eDetail = iVar3;\n                        bDummy = -(iVar3 >> 0x1f);\n                        iVar4 = bDummy;\n                        if (bDummy != 0) {\nLAB_0017ab15:\n                          pcVar7 = sqlite3_mprintf("malformed detail=... directive");\n                          *pzErr = pcVar7;\n                          iVar4 = bDummy;\n                        }\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14);\n                        *pzErr = pcVar7;\n                        iVar4 = iVar3;\n                      }\n                    }\n                  }\n                }\n              }\n            }" { (expression_statement "iVar4 = sqlite3_strnicmp("tokenize",pcVar14,N);" (assignment_expression "iVar4 = sqlite3_strnicmp("tokenize",pcVar14,N)" identifier = (call_expression "sqlite3_strnicmp("tokenize",pcVar14,N)" identifier (argument_list "("tokenize",pcVar14,N)" ( (string_literal ""tokenize"" " string_content ") , identifier , identifier )))) ;) (if_statement "if (iVar4 == 0) {\n                uVar10 = 0xffffffffffffffff;\n                pcVar9 = pcVar7;\n                do {\n                  if (uVar10 == 0) break;\n                  uVar10 = uVar10 - 1;\n                  cVar1 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                } while (cVar1 != '\0');\n                ppcVar6 = (char **)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 8);\n                pcVar9 = (char *)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 2);\n                if ((ppcVar6 != (char **)0x0) && (pcVar9 != (char *)0x0)) {\n                  if (pConfig->pTok == (Fts5Tokenizer *)0x0) {\n                    lVar11 = 0;\n                    if (*pcVar7 != '\0') {\n                      lVar11 = 0;\n                      pcVar14 = pcVar9;\n                      do {\n                        pcVar7 = fts5ConfigSkipWhitespace(pcVar7);\n                        if (*pcVar7 == '\'') {\n                          pIn = fts5ConfigSkipLiteral(pcVar7);\n                        }\n                        else {\n                          pIn = fts5ConfigSkipBareword(pcVar7);\n                        }\n                        if (pIn == (char *)0x0) {\nLAB_0017a8ef:\n                          pcVar7 = sqlite3_mprintf("parse error in tokenize directive");\n                          *pzErr = pcVar7;\n                          bDummy = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(pcVar14,pcVar7,(long)pIn - (long)pcVar7);\n                        ppcVar6[lVar11] = pcVar14;\n                        sqlite3Fts5Dequote(pcVar14);\n                        pcVar14 = pcVar14 + ((long)pIn - (long)pcVar7) + 1;\n                        pcVar7 = fts5ConfigSkipWhitespace(pIn);\n                        lVar11 = lVar11 + 1;\n                        if (pcVar7 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar7 != '\0');\n                    }\n                    bDummy = sqlite3Fts5GetTokenizer\n                                       (pGlobal,ppcVar6,(int)lVar11,&pConfig->pTok,&pConfig->pTokApi\n                                        ,pzErr);\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple tokenize=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                  }\n                }\nLAB_0017a842:\n                sqlite3_free(ppcVar6);\n                sqlite3_free(pcVar9);\n                iVar4 = bDummy;\n              }\n              else {\n                iVar4 = sqlite3_strnicmp("content",pcVar14,N);\n                if (iVar4 == 0) {\n                  if (pConfig->eContent == 0) {\n                    if (*pcVar7 == '\0') {\n                      pConfig->eContent = 1;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pConfig->eContent = 2;\n                      pcVar7 = sqlite3Fts5Mprintf(&bDummy,"%Q.%Q",pConfig->zDb,pcVar7);\n                      pConfig->zContent = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple content=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                  }\n                }\n                else {\n                  iVar4 = sqlite3_strnicmp("content_rowid",pcVar14,N);\n                  if (iVar4 == 0) {\n                    if (pConfig->zContentRowid == (char *)0x0) {\n                      pcVar7 = sqlite3Fts5Strndup(&bDummy,pcVar7,-1);\n                      pConfig->zContentRowid = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pcVar7 = sqlite3_mprintf("multiple content_rowid=... directives");\n                      *pzErr = pcVar7;\n                      bDummy = 1;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    iVar4 = sqlite3_strnicmp("columnsize",pcVar14,N);\n                    if (iVar4 == 0) {\n                      if (((byte)(*pcVar7 - 0x30U) < 2) && (pcVar7[1] == '\0')) {\n                        pConfig->bColumnsize = (uint)(*pcVar7 == '1');\n                        iVar4 = bDummy;\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("malformed columnsize=... directive");\n                        *pzErr = pcVar7;\n                        bDummy = 1;\n                        iVar4 = bDummy;\n                      }\n                    }\n                    else {\n                      iVar4 = sqlite3_strnicmp("detail",pcVar14,N);\n                      if (iVar4 == 0) {\n                        aDetail[0].zName = "none";\n                        aDetail[0].eVal = 1;\n                        aDetail[1].zName = "full";\n                        aDetail[1].eVal = 0;\n                        aDetail[2].zName = "columns";\n                        aDetail[2].eVal = 2;\n                        aDetail[3].zName = (char *)0x0;\n                        aDetail[3].eVal = 0;\n                        lVar11 = -1;\n                        pcVar9 = pcVar7;\n                        do {\n                          if (lVar11 == 0) break;\n                          lVar11 = lVar11 + -1;\n                          cVar1 = *pcVar9;\n                          pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pFVar12 = aDetail;\n                        pcVar9 = "none";\n                        iVar3 = local_c8;\n                        do {\n                          pFVar12 = pFVar12 + 1;\n                          iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1);\n                          if (iVar4 == 0) {\n                            if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar3 = pFVar12[-1].eVal;\n                          }\n                          pcVar9 = pFVar12->zName;\n                        } while (pcVar9 != (char *)0x0);\n                        pConfig->eDetail = iVar3;\n                        bDummy = -(iVar3 >> 0x1f);\n                        iVar4 = bDummy;\n                        if (bDummy != 0) {\nLAB_0017ab15:\n                          pcVar7 = sqlite3_mprintf("malformed detail=... directive");\n                          *pzErr = pcVar7;\n                          iVar4 = bDummy;\n                        }\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14);\n                        *pzErr = pcVar7;\n                        iVar4 = iVar3;\n                      }\n                    }\n                  }\n                }\n              }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                uVar10 = 0xffffffffffffffff;\n                pcVar9 = pcVar7;\n                do {\n                  if (uVar10 == 0) break;\n                  uVar10 = uVar10 - 1;\n                  cVar1 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                } while (cVar1 != '\0');\n                ppcVar6 = (char **)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 8);\n                pcVar9 = (char *)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 2);\n                if ((ppcVar6 != (char **)0x0) && (pcVar9 != (char *)0x0)) {\n                  if (pConfig->pTok == (Fts5Tokenizer *)0x0) {\n                    lVar11 = 0;\n                    if (*pcVar7 != '\0') {\n                      lVar11 = 0;\n                      pcVar14 = pcVar9;\n                      do {\n                        pcVar7 = fts5ConfigSkipWhitespace(pcVar7);\n                        if (*pcVar7 == '\'') {\n                          pIn = fts5ConfigSkipLiteral(pcVar7);\n                        }\n                        else {\n                          pIn = fts5ConfigSkipBareword(pcVar7);\n                        }\n                        if (pIn == (char *)0x0) {\nLAB_0017a8ef:\n                          pcVar7 = sqlite3_mprintf("parse error in tokenize directive");\n                          *pzErr = pcVar7;\n                          bDummy = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(pcVar14,pcVar7,(long)pIn - (long)pcVar7);\n                        ppcVar6[lVar11] = pcVar14;\n                        sqlite3Fts5Dequote(pcVar14);\n                        pcVar14 = pcVar14 + ((long)pIn - (long)pcVar7) + 1;\n                        pcVar7 = fts5ConfigSkipWhitespace(pIn);\n                        lVar11 = lVar11 + 1;\n                        if (pcVar7 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar7 != '\0');\n                    }\n                    bDummy = sqlite3Fts5GetTokenizer\n                                       (pGlobal,ppcVar6,(int)lVar11,&pConfig->pTok,&pConfig->pTokApi\n                                        ,pzErr);\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple tokenize=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                  }\n                }\nLAB_0017a842:\n                sqlite3_free(ppcVar6);\n                sqlite3_free(pcVar9);\n                iVar4 = bDummy;\n              }" { (expression_statement "uVar10 = 0xffffffffffffffff;" (assignment_expression "uVar10 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar9 = pcVar7;" (assignment_expression "pcVar9 = pcVar7" identifier = identifier) ;) (do_statement "do {\n                  if (uVar10 == 0) break;\n                  uVar10 = uVar10 - 1;\n                  cVar1 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                } while (cVar1 != '\0');" do (compound_statement "{\n                  if (uVar10 == 0) break;\n                  uVar10 = uVar10 - 1;\n                  cVar1 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                }" { (if_statement "if (uVar10 == 0) break;" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar10 = uVar10 - 1;" (assignment_expression "uVar10 = uVar10 - 1" identifier = (binary_expression "uVar10 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar9;" (assignment_expression "cVar1 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1" identifier = (binary_expression "pcVar9 + (ulong)bVar16 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar16 * -2" identifier + (binary_expression "(ulong)bVar16 * -2" (cast_expression "(ulong)bVar16" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "ppcVar6 = (char **)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 8);" (assignment_expression "ppcVar6 = (char **)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 8)" identifier = (cast_expression "(char **)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "sqlite3Fts5MallocZero(&bDummy,~uVar10 * 8)" identifier (argument_list "(&bDummy,~uVar10 * 8)" ( (pointer_expression "&bDummy" & identifier) , (binary_expression "~uVar10 * 8" (unary_expression "~uVar10" ~ identifier) * number_literal) ))))) ;) (expression_statement "pcVar9 = (char *)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 2);" (assignment_expression "pcVar9 = (char *)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 2)" identifier = (cast_expression "(char *)sqlite3Fts5MallocZero(&bDummy,~uVar10 * 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3Fts5MallocZero(&bDummy,~uVar10 * 2)" identifier (argument_list "(&bDummy,~uVar10 * 2)" ( (pointer_expression "&bDummy" & identifier) , (binary_expression "~uVar10 * 2" (unary_expression "~uVar10" ~ identifier) * number_literal) ))))) ;) (if_statement "if ((ppcVar6 != (char **)0x0) && (pcVar9 != (char *)0x0)) {\n                  if (pConfig->pTok == (Fts5Tokenizer *)0x0) {\n                    lVar11 = 0;\n                    if (*pcVar7 != '\0') {\n                      lVar11 = 0;\n                      pcVar14 = pcVar9;\n                      do {\n                        pcVar7 = fts5ConfigSkipWhitespace(pcVar7);\n                        if (*pcVar7 == '\'') {\n                          pIn = fts5ConfigSkipLiteral(pcVar7);\n                        }\n                        else {\n                          pIn = fts5ConfigSkipBareword(pcVar7);\n                        }\n                        if (pIn == (char *)0x0) {\nLAB_0017a8ef:\n                          pcVar7 = sqlite3_mprintf("parse error in tokenize directive");\n                          *pzErr = pcVar7;\n                          bDummy = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(pcVar14,pcVar7,(long)pIn - (long)pcVar7);\n                        ppcVar6[lVar11] = pcVar14;\n                        sqlite3Fts5Dequote(pcVar14);\n                        pcVar14 = pcVar14 + ((long)pIn - (long)pcVar7) + 1;\n                        pcVar7 = fts5ConfigSkipWhitespace(pIn);\n                        lVar11 = lVar11 + 1;\n                        if (pcVar7 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar7 != '\0');\n                    }\n                    bDummy = sqlite3Fts5GetTokenizer\n                                       (pGlobal,ppcVar6,(int)lVar11,&pConfig->pTok,&pConfig->pTokApi\n                                        ,pzErr);\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple tokenize=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                  }\n                }" if (parenthesized_expression "((ppcVar6 != (char **)0x0) && (pcVar9 != (char *)0x0))" ( (binary_expression "(ppcVar6 != (char **)0x0) && (pcVar9 != (char *)0x0)" (parenthesized_expression "(ppcVar6 != (char **)0x0)" ( (binary_expression "ppcVar6 != (char **)0x0" identifier != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) && (parenthesized_expression "(pcVar9 != (char *)0x0)" ( (binary_expression "pcVar9 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n                  if (pConfig->pTok == (Fts5Tokenizer *)0x0) {\n                    lVar11 = 0;\n                    if (*pcVar7 != '\0') {\n                      lVar11 = 0;\n                      pcVar14 = pcVar9;\n                      do {\n                        pcVar7 = fts5ConfigSkipWhitespace(pcVar7);\n                        if (*pcVar7 == '\'') {\n                          pIn = fts5ConfigSkipLiteral(pcVar7);\n                        }\n                        else {\n                          pIn = fts5ConfigSkipBareword(pcVar7);\n                        }\n                        if (pIn == (char *)0x0) {\nLAB_0017a8ef:\n                          pcVar7 = sqlite3_mprintf("parse error in tokenize directive");\n                          *pzErr = pcVar7;\n                          bDummy = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(pcVar14,pcVar7,(long)pIn - (long)pcVar7);\n                        ppcVar6[lVar11] = pcVar14;\n                        sqlite3Fts5Dequote(pcVar14);\n                        pcVar14 = pcVar14 + ((long)pIn - (long)pcVar7) + 1;\n                        pcVar7 = fts5ConfigSkipWhitespace(pIn);\n                        lVar11 = lVar11 + 1;\n                        if (pcVar7 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar7 != '\0');\n                    }\n                    bDummy = sqlite3Fts5GetTokenizer\n                                       (pGlobal,ppcVar6,(int)lVar11,&pConfig->pTok,&pConfig->pTokApi\n                                        ,pzErr);\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple tokenize=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                  }\n                }" { (if_statement "if (pConfig->pTok == (Fts5Tokenizer *)0x0) {\n                    lVar11 = 0;\n                    if (*pcVar7 != '\0') {\n                      lVar11 = 0;\n                      pcVar14 = pcVar9;\n                      do {\n                        pcVar7 = fts5ConfigSkipWhitespace(pcVar7);\n                        if (*pcVar7 == '\'') {\n                          pIn = fts5ConfigSkipLiteral(pcVar7);\n                        }\n                        else {\n                          pIn = fts5ConfigSkipBareword(pcVar7);\n                        }\n                        if (pIn == (char *)0x0) {\nLAB_0017a8ef:\n                          pcVar7 = sqlite3_mprintf("parse error in tokenize directive");\n                          *pzErr = pcVar7;\n                          bDummy = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(pcVar14,pcVar7,(long)pIn - (long)pcVar7);\n                        ppcVar6[lVar11] = pcVar14;\n                        sqlite3Fts5Dequote(pcVar14);\n                        pcVar14 = pcVar14 + ((long)pIn - (long)pcVar7) + 1;\n                        pcVar7 = fts5ConfigSkipWhitespace(pIn);\n                        lVar11 = lVar11 + 1;\n                        if (pcVar7 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar7 != '\0');\n                    }\n                    bDummy = sqlite3Fts5GetTokenizer\n                                       (pGlobal,ppcVar6,(int)lVar11,&pConfig->pTok,&pConfig->pTokApi\n                                        ,pzErr);\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple tokenize=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                  }" if (parenthesized_expression "(pConfig->pTok == (Fts5Tokenizer *)0x0)" ( (binary_expression "pConfig->pTok == (Fts5Tokenizer *)0x0" (field_expression "pConfig->pTok" identifier -> field_identifier) == (cast_expression "(Fts5Tokenizer *)0x0" ( (type_descriptor "Fts5Tokenizer *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    lVar11 = 0;\n                    if (*pcVar7 != '\0') {\n                      lVar11 = 0;\n                      pcVar14 = pcVar9;\n                      do {\n                        pcVar7 = fts5ConfigSkipWhitespace(pcVar7);\n                        if (*pcVar7 == '\'') {\n                          pIn = fts5ConfigSkipLiteral(pcVar7);\n                        }\n                        else {\n                          pIn = fts5ConfigSkipBareword(pcVar7);\n                        }\n                        if (pIn == (char *)0x0) {\nLAB_0017a8ef:\n                          pcVar7 = sqlite3_mprintf("parse error in tokenize directive");\n                          *pzErr = pcVar7;\n                          bDummy = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(pcVar14,pcVar7,(long)pIn - (long)pcVar7);\n                        ppcVar6[lVar11] = pcVar14;\n                        sqlite3Fts5Dequote(pcVar14);\n                        pcVar14 = pcVar14 + ((long)pIn - (long)pcVar7) + 1;\n                        pcVar7 = fts5ConfigSkipWhitespace(pIn);\n                        lVar11 = lVar11 + 1;\n                        if (pcVar7 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar7 != '\0');\n                    }\n                    bDummy = sqlite3Fts5GetTokenizer\n                                       (pGlobal,ppcVar6,(int)lVar11,&pConfig->pTok,&pConfig->pTokApi\n                                        ,pzErr);\n                  }" { (expression_statement "lVar11 = 0;" (assignment_expression "lVar11 = 0" identifier = number_literal) ;) (if_statement "if (*pcVar7 != '\0') {\n                      lVar11 = 0;\n                      pcVar14 = pcVar9;\n                      do {\n                        pcVar7 = fts5ConfigSkipWhitespace(pcVar7);\n                        if (*pcVar7 == '\'') {\n                          pIn = fts5ConfigSkipLiteral(pcVar7);\n                        }\n                        else {\n                          pIn = fts5ConfigSkipBareword(pcVar7);\n                        }\n                        if (pIn == (char *)0x0) {\nLAB_0017a8ef:\n                          pcVar7 = sqlite3_mprintf("parse error in tokenize directive");\n                          *pzErr = pcVar7;\n                          bDummy = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(pcVar14,pcVar7,(long)pIn - (long)pcVar7);\n                        ppcVar6[lVar11] = pcVar14;\n                        sqlite3Fts5Dequote(pcVar14);\n                        pcVar14 = pcVar14 + ((long)pIn - (long)pcVar7) + 1;\n                        pcVar7 = fts5ConfigSkipWhitespace(pIn);\n                        lVar11 = lVar11 + 1;\n                        if (pcVar7 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar7 != '\0');\n                    }" if (parenthesized_expression "(*pcVar7 != '\0')" ( (binary_expression "*pcVar7 != '\0'" (pointer_expression "*pcVar7" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                      lVar11 = 0;\n                      pcVar14 = pcVar9;\n                      do {\n                        pcVar7 = fts5ConfigSkipWhitespace(pcVar7);\n                        if (*pcVar7 == '\'') {\n                          pIn = fts5ConfigSkipLiteral(pcVar7);\n                        }\n                        else {\n                          pIn = fts5ConfigSkipBareword(pcVar7);\n                        }\n                        if (pIn == (char *)0x0) {\nLAB_0017a8ef:\n                          pcVar7 = sqlite3_mprintf("parse error in tokenize directive");\n                          *pzErr = pcVar7;\n                          bDummy = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(pcVar14,pcVar7,(long)pIn - (long)pcVar7);\n                        ppcVar6[lVar11] = pcVar14;\n                        sqlite3Fts5Dequote(pcVar14);\n                        pcVar14 = pcVar14 + ((long)pIn - (long)pcVar7) + 1;\n                        pcVar7 = fts5ConfigSkipWhitespace(pIn);\n                        lVar11 = lVar11 + 1;\n                        if (pcVar7 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar7 != '\0');\n                    }" { (expression_statement "lVar11 = 0;" (assignment_expression "lVar11 = 0" identifier = number_literal) ;) (expression_statement "pcVar14 = pcVar9;" (assignment_expression "pcVar14 = pcVar9" identifier = identifier) ;) (do_statement "do {\n                        pcVar7 = fts5ConfigSkipWhitespace(pcVar7);\n                        if (*pcVar7 == '\'') {\n                          pIn = fts5ConfigSkipLiteral(pcVar7);\n                        }\n                        else {\n                          pIn = fts5ConfigSkipBareword(pcVar7);\n                        }\n                        if (pIn == (char *)0x0) {\nLAB_0017a8ef:\n                          pcVar7 = sqlite3_mprintf("parse error in tokenize directive");\n                          *pzErr = pcVar7;\n                          bDummy = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(pcVar14,pcVar7,(long)pIn - (long)pcVar7);\n                        ppcVar6[lVar11] = pcVar14;\n                        sqlite3Fts5Dequote(pcVar14);\n                        pcVar14 = pcVar14 + ((long)pIn - (long)pcVar7) + 1;\n                        pcVar7 = fts5ConfigSkipWhitespace(pIn);\n                        lVar11 = lVar11 + 1;\n                        if (pcVar7 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar7 != '\0');" do (compound_statement "{\n                        pcVar7 = fts5ConfigSkipWhitespace(pcVar7);\n                        if (*pcVar7 == '\'') {\n                          pIn = fts5ConfigSkipLiteral(pcVar7);\n                        }\n                        else {\n                          pIn = fts5ConfigSkipBareword(pcVar7);\n                        }\n                        if (pIn == (char *)0x0) {\nLAB_0017a8ef:\n                          pcVar7 = sqlite3_mprintf("parse error in tokenize directive");\n                          *pzErr = pcVar7;\n                          bDummy = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(pcVar14,pcVar7,(long)pIn - (long)pcVar7);\n                        ppcVar6[lVar11] = pcVar14;\n                        sqlite3Fts5Dequote(pcVar14);\n                        pcVar14 = pcVar14 + ((long)pIn - (long)pcVar7) + 1;\n                        pcVar7 = fts5ConfigSkipWhitespace(pIn);\n                        lVar11 = lVar11 + 1;\n                        if (pcVar7 == (char *)0x0) goto LAB_0017a8ef;\n                      }" { (expression_statement "pcVar7 = fts5ConfigSkipWhitespace(pcVar7);" (assignment_expression "pcVar7 = fts5ConfigSkipWhitespace(pcVar7)" identifier = (call_expression "fts5ConfigSkipWhitespace(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier )))) ;) (if_statement "if (*pcVar7 == '\'') {\n                          pIn = fts5ConfigSkipLiteral(pcVar7);\n                        }\n                        else {\n                          pIn = fts5ConfigSkipBareword(pcVar7);\n                        }" if (parenthesized_expression "(*pcVar7 == '\'')" ( (binary_expression "*pcVar7 == '\''" (pointer_expression "*pcVar7" * identifier) == (char_literal "'\''" ' escape_sequence ')) )) (compound_statement "{\n                          pIn = fts5ConfigSkipLiteral(pcVar7);\n                        }" { (expression_statement "pIn = fts5ConfigSkipLiteral(pcVar7);" (assignment_expression "pIn = fts5ConfigSkipLiteral(pcVar7)" identifier = (call_expression "fts5ConfigSkipLiteral(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier )))) ;) }) (else_clause "else {\n                          pIn = fts5ConfigSkipBareword(pcVar7);\n                        }" else (compound_statement "{\n                          pIn = fts5ConfigSkipBareword(pcVar7);\n                        }" { (expression_statement "pIn = fts5ConfigSkipBareword(pcVar7);" (assignment_expression "pIn = fts5ConfigSkipBareword(pcVar7)" identifier = (call_expression "fts5ConfigSkipBareword(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier )))) ;) }))) (if_statement "if (pIn == (char *)0x0) {\nLAB_0017a8ef:\n                          pcVar7 = sqlite3_mprintf("parse error in tokenize directive");\n                          *pzErr = pcVar7;\n                          bDummy = 1;\n                          goto LAB_0017a842;\n                        }" if (parenthesized_expression "(pIn == (char *)0x0)" ( (binary_expression "pIn == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0017a8ef:\n                          pcVar7 = sqlite3_mprintf("parse error in tokenize directive");\n                          *pzErr = pcVar7;\n                          bDummy = 1;\n                          goto LAB_0017a842;\n                        }" { (labeled_statement "LAB_0017a8ef:\n                          pcVar7 = sqlite3_mprintf("parse error in tokenize directive");" statement_identifier : (expression_statement "pcVar7 = sqlite3_mprintf("parse error in tokenize directive");" (assignment_expression "pcVar7 = sqlite3_mprintf("parse error in tokenize directive")" identifier = (call_expression "sqlite3_mprintf("parse error in tokenize directive")" identifier (argument_list "("parse error in tokenize directive")" ( (string_literal ""parse error in tokenize directive"" " string_content ") )))) ;)) (expression_statement "*pzErr = pcVar7;" (assignment_expression "*pzErr = pcVar7" (pointer_expression "*pzErr" * identifier) = identifier) ;) (expression_statement "bDummy = 1;" (assignment_expression "bDummy = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0017a842;" goto statement_identifier ;) })) (expression_statement "memcpy(pcVar14,pcVar7,(long)pIn - (long)pcVar7);" (call_expression "memcpy(pcVar14,pcVar7,(long)pIn - (long)pcVar7)" identifier (argument_list "(pcVar14,pcVar7,(long)pIn - (long)pcVar7)" ( identifier , identifier , (binary_expression "(long)pIn - (long)pcVar7" (cast_expression "(long)pIn" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pcVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ;) (expression_statement "ppcVar6[lVar11] = pcVar14;" (assignment_expression "ppcVar6[lVar11] = pcVar14" (subscript_expression "ppcVar6[lVar11]" identifier [ identifier ]) = identifier) ;) (expression_statement "sqlite3Fts5Dequote(pcVar14);" (call_expression "sqlite3Fts5Dequote(pcVar14)" identifier (argument_list "(pcVar14)" ( identifier ))) ;) (expression_statement "pcVar14 = pcVar14 + ((long)pIn - (long)pcVar7) + 1;" (assignment_expression "pcVar14 = pcVar14 + ((long)pIn - (long)pcVar7) + 1" identifier = (binary_expression "pcVar14 + ((long)pIn - (long)pcVar7) + 1" (binary_expression "pcVar14 + ((long)pIn - (long)pcVar7)" identifier + (parenthesized_expression "((long)pIn - (long)pcVar7)" ( (binary_expression "(long)pIn - (long)pcVar7" (cast_expression "(long)pIn" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pcVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) + number_literal)) ;) (expression_statement "pcVar7 = fts5ConfigSkipWhitespace(pIn);" (assignment_expression "pcVar7 = fts5ConfigSkipWhitespace(pIn)" identifier = (call_expression "fts5ConfigSkipWhitespace(pIn)" identifier (argument_list "(pIn)" ( identifier )))) ;) (expression_statement "lVar11 = lVar11 + 1;" (assignment_expression "lVar11 = lVar11 + 1" identifier = (binary_expression "lVar11 + 1" identifier + number_literal)) ;) (if_statement "if (pcVar7 == (char *)0x0) goto LAB_0017a8ef;" if (parenthesized_expression "(pcVar7 == (char *)0x0)" ( (binary_expression "pcVar7 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0017a8ef;" goto statement_identifier ;)) }) while (parenthesized_expression "(*pcVar7 != '\0')" ( (binary_expression "*pcVar7 != '\0'" (pointer_expression "*pcVar7" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) ;) })) (expression_statement "bDummy = sqlite3Fts5GetTokenizer\n                                       (pGlobal,ppcVar6,(int)lVar11,&pConfig->pTok,&pConfig->pTokApi\n                                        ,pzErr);" (assignment_expression "bDummy = sqlite3Fts5GetTokenizer\n                                       (pGlobal,ppcVar6,(int)lVar11,&pConfig->pTok,&pConfig->pTokApi\n                                        ,pzErr)" identifier = (call_expression "sqlite3Fts5GetTokenizer\n                                       (pGlobal,ppcVar6,(int)lVar11,&pConfig->pTok,&pConfig->pTokApi\n                                        ,pzErr)" identifier (argument_list "(pGlobal,ppcVar6,(int)lVar11,&pConfig->pTok,&pConfig->pTokApi\n                                        ,pzErr)" ( identifier , identifier , (cast_expression "(int)lVar11" ( (type_descriptor "int" primitive_type) ) identifier) , (pointer_expression "&pConfig->pTok" & (field_expression "pConfig->pTok" identifier -> field_identifier)) , (pointer_expression "&pConfig->pTokApi" & (field_expression "pConfig->pTokApi" identifier -> field_identifier)) , identifier )))) ;) }) (else_clause "else {\n                    pcVar7 = sqlite3_mprintf("multiple tokenize=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                  }" else (compound_statement "{\n                    pcVar7 = sqlite3_mprintf("multiple tokenize=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                  }" { (expression_statement "pcVar7 = sqlite3_mprintf("multiple tokenize=... directives");" (assignment_expression "pcVar7 = sqlite3_mprintf("multiple tokenize=... directives")" identifier = (call_expression "sqlite3_mprintf("multiple tokenize=... directives")" identifier (argument_list "("multiple tokenize=... directives")" ( (string_literal ""multiple tokenize=... directives"" " string_content ") )))) ;) (expression_statement "*pzErr = pcVar7;" (assignment_expression "*pzErr = pcVar7" (pointer_expression "*pzErr" * identifier) = identifier) ;) (expression_statement "bDummy = 1;" (assignment_expression "bDummy = 1" identifier = number_literal) ;) }))) })) (labeled_statement "LAB_0017a842:\n                sqlite3_free(ppcVar6);" statement_identifier : (expression_statement "sqlite3_free(ppcVar6);" (call_expression "sqlite3_free(ppcVar6)" identifier (argument_list "(ppcVar6)" ( identifier ))) ;)) (expression_statement "sqlite3_free(pcVar9);" (call_expression "sqlite3_free(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier ))) ;) (expression_statement "iVar4 = bDummy;" (assignment_expression "iVar4 = bDummy" identifier = identifier) ;) }) (else_clause "else {\n                iVar4 = sqlite3_strnicmp("content",pcVar14,N);\n                if (iVar4 == 0) {\n                  if (pConfig->eContent == 0) {\n                    if (*pcVar7 == '\0') {\n                      pConfig->eContent = 1;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pConfig->eContent = 2;\n                      pcVar7 = sqlite3Fts5Mprintf(&bDummy,"%Q.%Q",pConfig->zDb,pcVar7);\n                      pConfig->zContent = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple content=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                  }\n                }\n                else {\n                  iVar4 = sqlite3_strnicmp("content_rowid",pcVar14,N);\n                  if (iVar4 == 0) {\n                    if (pConfig->zContentRowid == (char *)0x0) {\n                      pcVar7 = sqlite3Fts5Strndup(&bDummy,pcVar7,-1);\n                      pConfig->zContentRowid = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pcVar7 = sqlite3_mprintf("multiple content_rowid=... directives");\n                      *pzErr = pcVar7;\n                      bDummy = 1;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    iVar4 = sqlite3_strnicmp("columnsize",pcVar14,N);\n                    if (iVar4 == 0) {\n                      if (((byte)(*pcVar7 - 0x30U) < 2) && (pcVar7[1] == '\0')) {\n                        pConfig->bColumnsize = (uint)(*pcVar7 == '1');\n                        iVar4 = bDummy;\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("malformed columnsize=... directive");\n                        *pzErr = pcVar7;\n                        bDummy = 1;\n                        iVar4 = bDummy;\n                      }\n                    }\n                    else {\n                      iVar4 = sqlite3_strnicmp("detail",pcVar14,N);\n                      if (iVar4 == 0) {\n                        aDetail[0].zName = "none";\n                        aDetail[0].eVal = 1;\n                        aDetail[1].zName = "full";\n                        aDetail[1].eVal = 0;\n                        aDetail[2].zName = "columns";\n                        aDetail[2].eVal = 2;\n                        aDetail[3].zName = (char *)0x0;\n                        aDetail[3].eVal = 0;\n                        lVar11 = -1;\n                        pcVar9 = pcVar7;\n                        do {\n                          if (lVar11 == 0) break;\n                          lVar11 = lVar11 + -1;\n                          cVar1 = *pcVar9;\n                          pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pFVar12 = aDetail;\n                        pcVar9 = "none";\n                        iVar3 = local_c8;\n                        do {\n                          pFVar12 = pFVar12 + 1;\n                          iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1);\n                          if (iVar4 == 0) {\n                            if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar3 = pFVar12[-1].eVal;\n                          }\n                          pcVar9 = pFVar12->zName;\n                        } while (pcVar9 != (char *)0x0);\n                        pConfig->eDetail = iVar3;\n                        bDummy = -(iVar3 >> 0x1f);\n                        iVar4 = bDummy;\n                        if (bDummy != 0) {\nLAB_0017ab15:\n                          pcVar7 = sqlite3_mprintf("malformed detail=... directive");\n                          *pzErr = pcVar7;\n                          iVar4 = bDummy;\n                        }\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14);\n                        *pzErr = pcVar7;\n                        iVar4 = iVar3;\n                      }\n                    }\n                  }\n                }\n              }" else (compound_statement "{\n                iVar4 = sqlite3_strnicmp("content",pcVar14,N);\n                if (iVar4 == 0) {\n                  if (pConfig->eContent == 0) {\n                    if (*pcVar7 == '\0') {\n                      pConfig->eContent = 1;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pConfig->eContent = 2;\n                      pcVar7 = sqlite3Fts5Mprintf(&bDummy,"%Q.%Q",pConfig->zDb,pcVar7);\n                      pConfig->zContent = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple content=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                  }\n                }\n                else {\n                  iVar4 = sqlite3_strnicmp("content_rowid",pcVar14,N);\n                  if (iVar4 == 0) {\n                    if (pConfig->zContentRowid == (char *)0x0) {\n                      pcVar7 = sqlite3Fts5Strndup(&bDummy,pcVar7,-1);\n                      pConfig->zContentRowid = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pcVar7 = sqlite3_mprintf("multiple content_rowid=... directives");\n                      *pzErr = pcVar7;\n                      bDummy = 1;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    iVar4 = sqlite3_strnicmp("columnsize",pcVar14,N);\n                    if (iVar4 == 0) {\n                      if (((byte)(*pcVar7 - 0x30U) < 2) && (pcVar7[1] == '\0')) {\n                        pConfig->bColumnsize = (uint)(*pcVar7 == '1');\n                        iVar4 = bDummy;\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("malformed columnsize=... directive");\n                        *pzErr = pcVar7;\n                        bDummy = 1;\n                        iVar4 = bDummy;\n                      }\n                    }\n                    else {\n                      iVar4 = sqlite3_strnicmp("detail",pcVar14,N);\n                      if (iVar4 == 0) {\n                        aDetail[0].zName = "none";\n                        aDetail[0].eVal = 1;\n                        aDetail[1].zName = "full";\n                        aDetail[1].eVal = 0;\n                        aDetail[2].zName = "columns";\n                        aDetail[2].eVal = 2;\n                        aDetail[3].zName = (char *)0x0;\n                        aDetail[3].eVal = 0;\n                        lVar11 = -1;\n                        pcVar9 = pcVar7;\n                        do {\n                          if (lVar11 == 0) break;\n                          lVar11 = lVar11 + -1;\n                          cVar1 = *pcVar9;\n                          pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pFVar12 = aDetail;\n                        pcVar9 = "none";\n                        iVar3 = local_c8;\n                        do {\n                          pFVar12 = pFVar12 + 1;\n                          iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1);\n                          if (iVar4 == 0) {\n                            if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar3 = pFVar12[-1].eVal;\n                          }\n                          pcVar9 = pFVar12->zName;\n                        } while (pcVar9 != (char *)0x0);\n                        pConfig->eDetail = iVar3;\n                        bDummy = -(iVar3 >> 0x1f);\n                        iVar4 = bDummy;\n                        if (bDummy != 0) {\nLAB_0017ab15:\n                          pcVar7 = sqlite3_mprintf("malformed detail=... directive");\n                          *pzErr = pcVar7;\n                          iVar4 = bDummy;\n                        }\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14);\n                        *pzErr = pcVar7;\n                        iVar4 = iVar3;\n                      }\n                    }\n                  }\n                }\n              }" { (expression_statement "iVar4 = sqlite3_strnicmp("content",pcVar14,N);" (assignment_expression "iVar4 = sqlite3_strnicmp("content",pcVar14,N)" identifier = (call_expression "sqlite3_strnicmp("content",pcVar14,N)" identifier (argument_list "("content",pcVar14,N)" ( (string_literal ""content"" " string_content ") , identifier , identifier )))) ;) (if_statement "if (iVar4 == 0) {\n                  if (pConfig->eContent == 0) {\n                    if (*pcVar7 == '\0') {\n                      pConfig->eContent = 1;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pConfig->eContent = 2;\n                      pcVar7 = sqlite3Fts5Mprintf(&bDummy,"%Q.%Q",pConfig->zDb,pcVar7);\n                      pConfig->zContent = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple content=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                  }\n                }\n                else {\n                  iVar4 = sqlite3_strnicmp("content_rowid",pcVar14,N);\n                  if (iVar4 == 0) {\n                    if (pConfig->zContentRowid == (char *)0x0) {\n                      pcVar7 = sqlite3Fts5Strndup(&bDummy,pcVar7,-1);\n                      pConfig->zContentRowid = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pcVar7 = sqlite3_mprintf("multiple content_rowid=... directives");\n                      *pzErr = pcVar7;\n                      bDummy = 1;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    iVar4 = sqlite3_strnicmp("columnsize",pcVar14,N);\n                    if (iVar4 == 0) {\n                      if (((byte)(*pcVar7 - 0x30U) < 2) && (pcVar7[1] == '\0')) {\n                        pConfig->bColumnsize = (uint)(*pcVar7 == '1');\n                        iVar4 = bDummy;\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("malformed columnsize=... directive");\n                        *pzErr = pcVar7;\n                        bDummy = 1;\n                        iVar4 = bDummy;\n                      }\n                    }\n                    else {\n                      iVar4 = sqlite3_strnicmp("detail",pcVar14,N);\n                      if (iVar4 == 0) {\n                        aDetail[0].zName = "none";\n                        aDetail[0].eVal = 1;\n                        aDetail[1].zName = "full";\n                        aDetail[1].eVal = 0;\n                        aDetail[2].zName = "columns";\n                        aDetail[2].eVal = 2;\n                        aDetail[3].zName = (char *)0x0;\n                        aDetail[3].eVal = 0;\n                        lVar11 = -1;\n                        pcVar9 = pcVar7;\n                        do {\n                          if (lVar11 == 0) break;\n                          lVar11 = lVar11 + -1;\n                          cVar1 = *pcVar9;\n                          pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pFVar12 = aDetail;\n                        pcVar9 = "none";\n                        iVar3 = local_c8;\n                        do {\n                          pFVar12 = pFVar12 + 1;\n                          iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1);\n                          if (iVar4 == 0) {\n                            if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar3 = pFVar12[-1].eVal;\n                          }\n                          pcVar9 = pFVar12->zName;\n                        } while (pcVar9 != (char *)0x0);\n                        pConfig->eDetail = iVar3;\n                        bDummy = -(iVar3 >> 0x1f);\n                        iVar4 = bDummy;\n                        if (bDummy != 0) {\nLAB_0017ab15:\n                          pcVar7 = sqlite3_mprintf("malformed detail=... directive");\n                          *pzErr = pcVar7;\n                          iVar4 = bDummy;\n                        }\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14);\n                        *pzErr = pcVar7;\n                        iVar4 = iVar3;\n                      }\n                    }\n                  }\n                }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                  if (pConfig->eContent == 0) {\n                    if (*pcVar7 == '\0') {\n                      pConfig->eContent = 1;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pConfig->eContent = 2;\n                      pcVar7 = sqlite3Fts5Mprintf(&bDummy,"%Q.%Q",pConfig->zDb,pcVar7);\n                      pConfig->zContent = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple content=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                  }\n                }" { (if_statement "if (pConfig->eContent == 0) {\n                    if (*pcVar7 == '\0') {\n                      pConfig->eContent = 1;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pConfig->eContent = 2;\n                      pcVar7 = sqlite3Fts5Mprintf(&bDummy,"%Q.%Q",pConfig->zDb,pcVar7);\n                      pConfig->zContent = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    pcVar7 = sqlite3_mprintf("multiple content=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                  }" if (parenthesized_expression "(pConfig->eContent == 0)" ( (binary_expression "pConfig->eContent == 0" (field_expression "pConfig->eContent" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n                    if (*pcVar7 == '\0') {\n                      pConfig->eContent = 1;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pConfig->eContent = 2;\n                      pcVar7 = sqlite3Fts5Mprintf(&bDummy,"%Q.%Q",pConfig->zDb,pcVar7);\n                      pConfig->zContent = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                  }" { (if_statement "if (*pcVar7 == '\0') {\n                      pConfig->eContent = 1;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pConfig->eContent = 2;\n                      pcVar7 = sqlite3Fts5Mprintf(&bDummy,"%Q.%Q",pConfig->zDb,pcVar7);\n                      pConfig->zContent = pcVar7;\n                      iVar4 = bDummy;\n                    }" if (parenthesized_expression "(*pcVar7 == '\0')" ( (binary_expression "*pcVar7 == '\0'" (pointer_expression "*pcVar7" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                      pConfig->eContent = 1;\n                      iVar4 = bDummy;\n                    }" { (expression_statement "pConfig->eContent = 1;" (assignment_expression "pConfig->eContent = 1" (field_expression "pConfig->eContent" identifier -> field_identifier) = number_literal) ;) (expression_statement "iVar4 = bDummy;" (assignment_expression "iVar4 = bDummy" identifier = identifier) ;) }) (else_clause "else {\n                      pConfig->eContent = 2;\n                      pcVar7 = sqlite3Fts5Mprintf(&bDummy,"%Q.%Q",pConfig->zDb,pcVar7);\n                      pConfig->zContent = pcVar7;\n                      iVar4 = bDummy;\n                    }" else (compound_statement "{\n                      pConfig->eContent = 2;\n                      pcVar7 = sqlite3Fts5Mprintf(&bDummy,"%Q.%Q",pConfig->zDb,pcVar7);\n                      pConfig->zContent = pcVar7;\n                      iVar4 = bDummy;\n                    }" { (expression_statement "pConfig->eContent = 2;" (assignment_expression "pConfig->eContent = 2" (field_expression "pConfig->eContent" identifier -> field_identifier) = number_literal) ;) (expression_statement "pcVar7 = sqlite3Fts5Mprintf(&bDummy,"%Q.%Q",pConfig->zDb,pcVar7);" (assignment_expression "pcVar7 = sqlite3Fts5Mprintf(&bDummy,"%Q.%Q",pConfig->zDb,pcVar7)" identifier = (call_expression "sqlite3Fts5Mprintf(&bDummy,"%Q.%Q",pConfig->zDb,pcVar7)" identifier (argument_list "(&bDummy,"%Q.%Q",pConfig->zDb,pcVar7)" ( (pointer_expression "&bDummy" & identifier) , (string_literal ""%Q.%Q"" " string_content ") , (field_expression "pConfig->zDb" identifier -> field_identifier) , identifier )))) ;) (expression_statement "pConfig->zContent = pcVar7;" (assignment_expression "pConfig->zContent = pcVar7" (field_expression "pConfig->zContent" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar4 = bDummy;" (assignment_expression "iVar4 = bDummy" identifier = identifier) ;) }))) }) (else_clause "else {\n                    pcVar7 = sqlite3_mprintf("multiple content=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                  }" else (compound_statement "{\n                    pcVar7 = sqlite3_mprintf("multiple content=... directives");\n                    *pzErr = pcVar7;\n                    bDummy = 1;\n                    iVar4 = bDummy;\n                  }" { (expression_statement "pcVar7 = sqlite3_mprintf("multiple content=... directives");" (assignment_expression "pcVar7 = sqlite3_mprintf("multiple content=... directives")" identifier = (call_expression "sqlite3_mprintf("multiple content=... directives")" identifier (argument_list "("multiple content=... directives")" ( (string_literal ""multiple content=... directives"" " string_content ") )))) ;) (expression_statement "*pzErr = pcVar7;" (assignment_expression "*pzErr = pcVar7" (pointer_expression "*pzErr" * identifier) = identifier) ;) (expression_statement "bDummy = 1;" (assignment_expression "bDummy = 1" identifier = number_literal) ;) (expression_statement "iVar4 = bDummy;" (assignment_expression "iVar4 = bDummy" identifier = identifier) ;) }))) }) (else_clause "else {\n                  iVar4 = sqlite3_strnicmp("content_rowid",pcVar14,N);\n                  if (iVar4 == 0) {\n                    if (pConfig->zContentRowid == (char *)0x0) {\n                      pcVar7 = sqlite3Fts5Strndup(&bDummy,pcVar7,-1);\n                      pConfig->zContentRowid = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pcVar7 = sqlite3_mprintf("multiple content_rowid=... directives");\n                      *pzErr = pcVar7;\n                      bDummy = 1;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    iVar4 = sqlite3_strnicmp("columnsize",pcVar14,N);\n                    if (iVar4 == 0) {\n                      if (((byte)(*pcVar7 - 0x30U) < 2) && (pcVar7[1] == '\0')) {\n                        pConfig->bColumnsize = (uint)(*pcVar7 == '1');\n                        iVar4 = bDummy;\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("malformed columnsize=... directive");\n                        *pzErr = pcVar7;\n                        bDummy = 1;\n                        iVar4 = bDummy;\n                      }\n                    }\n                    else {\n                      iVar4 = sqlite3_strnicmp("detail",pcVar14,N);\n                      if (iVar4 == 0) {\n                        aDetail[0].zName = "none";\n                        aDetail[0].eVal = 1;\n                        aDetail[1].zName = "full";\n                        aDetail[1].eVal = 0;\n                        aDetail[2].zName = "columns";\n                        aDetail[2].eVal = 2;\n                        aDetail[3].zName = (char *)0x0;\n                        aDetail[3].eVal = 0;\n                        lVar11 = -1;\n                        pcVar9 = pcVar7;\n                        do {\n                          if (lVar11 == 0) break;\n                          lVar11 = lVar11 + -1;\n                          cVar1 = *pcVar9;\n                          pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pFVar12 = aDetail;\n                        pcVar9 = "none";\n                        iVar3 = local_c8;\n                        do {\n                          pFVar12 = pFVar12 + 1;\n                          iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1);\n                          if (iVar4 == 0) {\n                            if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar3 = pFVar12[-1].eVal;\n                          }\n                          pcVar9 = pFVar12->zName;\n                        } while (pcVar9 != (char *)0x0);\n                        pConfig->eDetail = iVar3;\n                        bDummy = -(iVar3 >> 0x1f);\n                        iVar4 = bDummy;\n                        if (bDummy != 0) {\nLAB_0017ab15:\n                          pcVar7 = sqlite3_mprintf("malformed detail=... directive");\n                          *pzErr = pcVar7;\n                          iVar4 = bDummy;\n                        }\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14);\n                        *pzErr = pcVar7;\n                        iVar4 = iVar3;\n                      }\n                    }\n                  }\n                }" else (compound_statement "{\n                  iVar4 = sqlite3_strnicmp("content_rowid",pcVar14,N);\n                  if (iVar4 == 0) {\n                    if (pConfig->zContentRowid == (char *)0x0) {\n                      pcVar7 = sqlite3Fts5Strndup(&bDummy,pcVar7,-1);\n                      pConfig->zContentRowid = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pcVar7 = sqlite3_mprintf("multiple content_rowid=... directives");\n                      *pzErr = pcVar7;\n                      bDummy = 1;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    iVar4 = sqlite3_strnicmp("columnsize",pcVar14,N);\n                    if (iVar4 == 0) {\n                      if (((byte)(*pcVar7 - 0x30U) < 2) && (pcVar7[1] == '\0')) {\n                        pConfig->bColumnsize = (uint)(*pcVar7 == '1');\n                        iVar4 = bDummy;\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("malformed columnsize=... directive");\n                        *pzErr = pcVar7;\n                        bDummy = 1;\n                        iVar4 = bDummy;\n                      }\n                    }\n                    else {\n                      iVar4 = sqlite3_strnicmp("detail",pcVar14,N);\n                      if (iVar4 == 0) {\n                        aDetail[0].zName = "none";\n                        aDetail[0].eVal = 1;\n                        aDetail[1].zName = "full";\n                        aDetail[1].eVal = 0;\n                        aDetail[2].zName = "columns";\n                        aDetail[2].eVal = 2;\n                        aDetail[3].zName = (char *)0x0;\n                        aDetail[3].eVal = 0;\n                        lVar11 = -1;\n                        pcVar9 = pcVar7;\n                        do {\n                          if (lVar11 == 0) break;\n                          lVar11 = lVar11 + -1;\n                          cVar1 = *pcVar9;\n                          pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pFVar12 = aDetail;\n                        pcVar9 = "none";\n                        iVar3 = local_c8;\n                        do {\n                          pFVar12 = pFVar12 + 1;\n                          iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1);\n                          if (iVar4 == 0) {\n                            if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar3 = pFVar12[-1].eVal;\n                          }\n                          pcVar9 = pFVar12->zName;\n                        } while (pcVar9 != (char *)0x0);\n                        pConfig->eDetail = iVar3;\n                        bDummy = -(iVar3 >> 0x1f);\n                        iVar4 = bDummy;\n                        if (bDummy != 0) {\nLAB_0017ab15:\n                          pcVar7 = sqlite3_mprintf("malformed detail=... directive");\n                          *pzErr = pcVar7;\n                          iVar4 = bDummy;\n                        }\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14);\n                        *pzErr = pcVar7;\n                        iVar4 = iVar3;\n                      }\n                    }\n                  }\n                }" { (expression_statement "iVar4 = sqlite3_strnicmp("content_rowid",pcVar14,N);" (assignment_expression "iVar4 = sqlite3_strnicmp("content_rowid",pcVar14,N)" identifier = (call_expression "sqlite3_strnicmp("content_rowid",pcVar14,N)" identifier (argument_list "("content_rowid",pcVar14,N)" ( (string_literal ""content_rowid"" " string_content ") , identifier , identifier )))) ;) (if_statement "if (iVar4 == 0) {\n                    if (pConfig->zContentRowid == (char *)0x0) {\n                      pcVar7 = sqlite3Fts5Strndup(&bDummy,pcVar7,-1);\n                      pConfig->zContentRowid = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pcVar7 = sqlite3_mprintf("multiple content_rowid=... directives");\n                      *pzErr = pcVar7;\n                      bDummy = 1;\n                      iVar4 = bDummy;\n                    }\n                  }\n                  else {\n                    iVar4 = sqlite3_strnicmp("columnsize",pcVar14,N);\n                    if (iVar4 == 0) {\n                      if (((byte)(*pcVar7 - 0x30U) < 2) && (pcVar7[1] == '\0')) {\n                        pConfig->bColumnsize = (uint)(*pcVar7 == '1');\n                        iVar4 = bDummy;\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("malformed columnsize=... directive");\n                        *pzErr = pcVar7;\n                        bDummy = 1;\n                        iVar4 = bDummy;\n                      }\n                    }\n                    else {\n                      iVar4 = sqlite3_strnicmp("detail",pcVar14,N);\n                      if (iVar4 == 0) {\n                        aDetail[0].zName = "none";\n                        aDetail[0].eVal = 1;\n                        aDetail[1].zName = "full";\n                        aDetail[1].eVal = 0;\n                        aDetail[2].zName = "columns";\n                        aDetail[2].eVal = 2;\n                        aDetail[3].zName = (char *)0x0;\n                        aDetail[3].eVal = 0;\n                        lVar11 = -1;\n                        pcVar9 = pcVar7;\n                        do {\n                          if (lVar11 == 0) break;\n                          lVar11 = lVar11 + -1;\n                          cVar1 = *pcVar9;\n                          pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pFVar12 = aDetail;\n                        pcVar9 = "none";\n                        iVar3 = local_c8;\n                        do {\n                          pFVar12 = pFVar12 + 1;\n                          iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1);\n                          if (iVar4 == 0) {\n                            if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar3 = pFVar12[-1].eVal;\n                          }\n                          pcVar9 = pFVar12->zName;\n                        } while (pcVar9 != (char *)0x0);\n                        pConfig->eDetail = iVar3;\n                        bDummy = -(iVar3 >> 0x1f);\n                        iVar4 = bDummy;\n                        if (bDummy != 0) {\nLAB_0017ab15:\n                          pcVar7 = sqlite3_mprintf("malformed detail=... directive");\n                          *pzErr = pcVar7;\n                          iVar4 = bDummy;\n                        }\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14);\n                        *pzErr = pcVar7;\n                        iVar4 = iVar3;\n                      }\n                    }\n                  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                    if (pConfig->zContentRowid == (char *)0x0) {\n                      pcVar7 = sqlite3Fts5Strndup(&bDummy,pcVar7,-1);\n                      pConfig->zContentRowid = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pcVar7 = sqlite3_mprintf("multiple content_rowid=... directives");\n                      *pzErr = pcVar7;\n                      bDummy = 1;\n                      iVar4 = bDummy;\n                    }\n                  }" { (if_statement "if (pConfig->zContentRowid == (char *)0x0) {\n                      pcVar7 = sqlite3Fts5Strndup(&bDummy,pcVar7,-1);\n                      pConfig->zContentRowid = pcVar7;\n                      iVar4 = bDummy;\n                    }\n                    else {\n                      pcVar7 = sqlite3_mprintf("multiple content_rowid=... directives");\n                      *pzErr = pcVar7;\n                      bDummy = 1;\n                      iVar4 = bDummy;\n                    }" if (parenthesized_expression "(pConfig->zContentRowid == (char *)0x0)" ( (binary_expression "pConfig->zContentRowid == (char *)0x0" (field_expression "pConfig->zContentRowid" identifier -> field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      pcVar7 = sqlite3Fts5Strndup(&bDummy,pcVar7,-1);\n                      pConfig->zContentRowid = pcVar7;\n                      iVar4 = bDummy;\n                    }" { (expression_statement "pcVar7 = sqlite3Fts5Strndup(&bDummy,pcVar7,-1);" (assignment_expression "pcVar7 = sqlite3Fts5Strndup(&bDummy,pcVar7,-1)" identifier = (call_expression "sqlite3Fts5Strndup(&bDummy,pcVar7,-1)" identifier (argument_list "(&bDummy,pcVar7,-1)" ( (pointer_expression "&bDummy" & identifier) , identifier , number_literal )))) ;) (expression_statement "pConfig->zContentRowid = pcVar7;" (assignment_expression "pConfig->zContentRowid = pcVar7" (field_expression "pConfig->zContentRowid" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar4 = bDummy;" (assignment_expression "iVar4 = bDummy" identifier = identifier) ;) }) (else_clause "else {\n                      pcVar7 = sqlite3_mprintf("multiple content_rowid=... directives");\n                      *pzErr = pcVar7;\n                      bDummy = 1;\n                      iVar4 = bDummy;\n                    }" else (compound_statement "{\n                      pcVar7 = sqlite3_mprintf("multiple content_rowid=... directives");\n                      *pzErr = pcVar7;\n                      bDummy = 1;\n                      iVar4 = bDummy;\n                    }" { (expression_statement "pcVar7 = sqlite3_mprintf("multiple content_rowid=... directives");" (assignment_expression "pcVar7 = sqlite3_mprintf("multiple content_rowid=... directives")" identifier = (call_expression "sqlite3_mprintf("multiple content_rowid=... directives")" identifier (argument_list "("multiple content_rowid=... directives")" ( (string_literal ""multiple content_rowid=... directives"" " string_content ") )))) ;) (expression_statement "*pzErr = pcVar7;" (assignment_expression "*pzErr = pcVar7" (pointer_expression "*pzErr" * identifier) = identifier) ;) (expression_statement "bDummy = 1;" (assignment_expression "bDummy = 1" identifier = number_literal) ;) (expression_statement "iVar4 = bDummy;" (assignment_expression "iVar4 = bDummy" identifier = identifier) ;) }))) }) (else_clause "else {\n                    iVar4 = sqlite3_strnicmp("columnsize",pcVar14,N);\n                    if (iVar4 == 0) {\n                      if (((byte)(*pcVar7 - 0x30U) < 2) && (pcVar7[1] == '\0')) {\n                        pConfig->bColumnsize = (uint)(*pcVar7 == '1');\n                        iVar4 = bDummy;\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("malformed columnsize=... directive");\n                        *pzErr = pcVar7;\n                        bDummy = 1;\n                        iVar4 = bDummy;\n                      }\n                    }\n                    else {\n                      iVar4 = sqlite3_strnicmp("detail",pcVar14,N);\n                      if (iVar4 == 0) {\n                        aDetail[0].zName = "none";\n                        aDetail[0].eVal = 1;\n                        aDetail[1].zName = "full";\n                        aDetail[1].eVal = 0;\n                        aDetail[2].zName = "columns";\n                        aDetail[2].eVal = 2;\n                        aDetail[3].zName = (char *)0x0;\n                        aDetail[3].eVal = 0;\n                        lVar11 = -1;\n                        pcVar9 = pcVar7;\n                        do {\n                          if (lVar11 == 0) break;\n                          lVar11 = lVar11 + -1;\n                          cVar1 = *pcVar9;\n                          pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pFVar12 = aDetail;\n                        pcVar9 = "none";\n                        iVar3 = local_c8;\n                        do {\n                          pFVar12 = pFVar12 + 1;\n                          iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1);\n                          if (iVar4 == 0) {\n                            if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar3 = pFVar12[-1].eVal;\n                          }\n                          pcVar9 = pFVar12->zName;\n                        } while (pcVar9 != (char *)0x0);\n                        pConfig->eDetail = iVar3;\n                        bDummy = -(iVar3 >> 0x1f);\n                        iVar4 = bDummy;\n                        if (bDummy != 0) {\nLAB_0017ab15:\n                          pcVar7 = sqlite3_mprintf("malformed detail=... directive");\n                          *pzErr = pcVar7;\n                          iVar4 = bDummy;\n                        }\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14);\n                        *pzErr = pcVar7;\n                        iVar4 = iVar3;\n                      }\n                    }\n                  }" else (compound_statement "{\n                    iVar4 = sqlite3_strnicmp("columnsize",pcVar14,N);\n                    if (iVar4 == 0) {\n                      if (((byte)(*pcVar7 - 0x30U) < 2) && (pcVar7[1] == '\0')) {\n                        pConfig->bColumnsize = (uint)(*pcVar7 == '1');\n                        iVar4 = bDummy;\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("malformed columnsize=... directive");\n                        *pzErr = pcVar7;\n                        bDummy = 1;\n                        iVar4 = bDummy;\n                      }\n                    }\n                    else {\n                      iVar4 = sqlite3_strnicmp("detail",pcVar14,N);\n                      if (iVar4 == 0) {\n                        aDetail[0].zName = "none";\n                        aDetail[0].eVal = 1;\n                        aDetail[1].zName = "full";\n                        aDetail[1].eVal = 0;\n                        aDetail[2].zName = "columns";\n                        aDetail[2].eVal = 2;\n                        aDetail[3].zName = (char *)0x0;\n                        aDetail[3].eVal = 0;\n                        lVar11 = -1;\n                        pcVar9 = pcVar7;\n                        do {\n                          if (lVar11 == 0) break;\n                          lVar11 = lVar11 + -1;\n                          cVar1 = *pcVar9;\n                          pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pFVar12 = aDetail;\n                        pcVar9 = "none";\n                        iVar3 = local_c8;\n                        do {\n                          pFVar12 = pFVar12 + 1;\n                          iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1);\n                          if (iVar4 == 0) {\n                            if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar3 = pFVar12[-1].eVal;\n                          }\n                          pcVar9 = pFVar12->zName;\n                        } while (pcVar9 != (char *)0x0);\n                        pConfig->eDetail = iVar3;\n                        bDummy = -(iVar3 >> 0x1f);\n                        iVar4 = bDummy;\n                        if (bDummy != 0) {\nLAB_0017ab15:\n                          pcVar7 = sqlite3_mprintf("malformed detail=... directive");\n                          *pzErr = pcVar7;\n                          iVar4 = bDummy;\n                        }\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14);\n                        *pzErr = pcVar7;\n                        iVar4 = iVar3;\n                      }\n                    }\n                  }" { (expression_statement "iVar4 = sqlite3_strnicmp("columnsize",pcVar14,N);" (assignment_expression "iVar4 = sqlite3_strnicmp("columnsize",pcVar14,N)" identifier = (call_expression "sqlite3_strnicmp("columnsize",pcVar14,N)" identifier (argument_list "("columnsize",pcVar14,N)" ( (string_literal ""columnsize"" " string_content ") , identifier , identifier )))) ;) (if_statement "if (iVar4 == 0) {\n                      if (((byte)(*pcVar7 - 0x30U) < 2) && (pcVar7[1] == '\0')) {\n                        pConfig->bColumnsize = (uint)(*pcVar7 == '1');\n                        iVar4 = bDummy;\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("malformed columnsize=... directive");\n                        *pzErr = pcVar7;\n                        bDummy = 1;\n                        iVar4 = bDummy;\n                      }\n                    }\n                    else {\n                      iVar4 = sqlite3_strnicmp("detail",pcVar14,N);\n                      if (iVar4 == 0) {\n                        aDetail[0].zName = "none";\n                        aDetail[0].eVal = 1;\n                        aDetail[1].zName = "full";\n                        aDetail[1].eVal = 0;\n                        aDetail[2].zName = "columns";\n                        aDetail[2].eVal = 2;\n                        aDetail[3].zName = (char *)0x0;\n                        aDetail[3].eVal = 0;\n                        lVar11 = -1;\n                        pcVar9 = pcVar7;\n                        do {\n                          if (lVar11 == 0) break;\n                          lVar11 = lVar11 + -1;\n                          cVar1 = *pcVar9;\n                          pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pFVar12 = aDetail;\n                        pcVar9 = "none";\n                        iVar3 = local_c8;\n                        do {\n                          pFVar12 = pFVar12 + 1;\n                          iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1);\n                          if (iVar4 == 0) {\n                            if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar3 = pFVar12[-1].eVal;\n                          }\n                          pcVar9 = pFVar12->zName;\n                        } while (pcVar9 != (char *)0x0);\n                        pConfig->eDetail = iVar3;\n                        bDummy = -(iVar3 >> 0x1f);\n                        iVar4 = bDummy;\n                        if (bDummy != 0) {\nLAB_0017ab15:\n                          pcVar7 = sqlite3_mprintf("malformed detail=... directive");\n                          *pzErr = pcVar7;\n                          iVar4 = bDummy;\n                        }\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14);\n                        *pzErr = pcVar7;\n                        iVar4 = iVar3;\n                      }\n                    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                      if (((byte)(*pcVar7 - 0x30U) < 2) && (pcVar7[1] == '\0')) {\n                        pConfig->bColumnsize = (uint)(*pcVar7 == '1');\n                        iVar4 = bDummy;\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("malformed columnsize=... directive");\n                        *pzErr = pcVar7;\n                        bDummy = 1;\n                        iVar4 = bDummy;\n                      }\n                    }" { (if_statement "if (((byte)(*pcVar7 - 0x30U) < 2) && (pcVar7[1] == '\0')) {\n                        pConfig->bColumnsize = (uint)(*pcVar7 == '1');\n                        iVar4 = bDummy;\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("malformed columnsize=... directive");\n                        *pzErr = pcVar7;\n                        bDummy = 1;\n                        iVar4 = bDummy;\n                      }" if (parenthesized_expression "(((byte)(*pcVar7 - 0x30U) < 2) && (pcVar7[1] == '\0'))" ( (binary_expression "((byte)(*pcVar7 - 0x30U) < 2) && (pcVar7[1] == '\0')" (parenthesized_expression "((byte)(*pcVar7 - 0x30U) < 2)" ( (binary_expression "(byte)(*pcVar7 - 0x30U) < 2" (call_expression "(byte)(*pcVar7 - 0x30U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*pcVar7 - 0x30U)" ( (binary_expression "*pcVar7 - 0x30U" (pointer_expression "*pcVar7" * identifier) - number_literal) ))) < number_literal) )) && (parenthesized_expression "(pcVar7[1] == '\0')" ( (binary_expression "pcVar7[1] == '\0'" (subscript_expression "pcVar7[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n                        pConfig->bColumnsize = (uint)(*pcVar7 == '1');\n                        iVar4 = bDummy;\n                      }" { (expression_statement "pConfig->bColumnsize = (uint)(*pcVar7 == '1');" (assignment_expression "pConfig->bColumnsize = (uint)(*pcVar7 == '1')" (field_expression "pConfig->bColumnsize" identifier -> field_identifier) = (call_expression "(uint)(*pcVar7 == '1')" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*pcVar7 == '1')" ( (binary_expression "*pcVar7 == '1'" (pointer_expression "*pcVar7" * identifier) == (char_literal "'1'" ' character ')) )))) ;) (expression_statement "iVar4 = bDummy;" (assignment_expression "iVar4 = bDummy" identifier = identifier) ;) }) (else_clause "else {\n                        pcVar7 = sqlite3_mprintf("malformed columnsize=... directive");\n                        *pzErr = pcVar7;\n                        bDummy = 1;\n                        iVar4 = bDummy;\n                      }" else (compound_statement "{\n                        pcVar7 = sqlite3_mprintf("malformed columnsize=... directive");\n                        *pzErr = pcVar7;\n                        bDummy = 1;\n                        iVar4 = bDummy;\n                      }" { (expression_statement "pcVar7 = sqlite3_mprintf("malformed columnsize=... directive");" (assignment_expression "pcVar7 = sqlite3_mprintf("malformed columnsize=... directive")" identifier = (call_expression "sqlite3_mprintf("malformed columnsize=... directive")" identifier (argument_list "("malformed columnsize=... directive")" ( (string_literal ""malformed columnsize=... directive"" " string_content ") )))) ;) (expression_statement "*pzErr = pcVar7;" (assignment_expression "*pzErr = pcVar7" (pointer_expression "*pzErr" * identifier) = identifier) ;) (expression_statement "bDummy = 1;" (assignment_expression "bDummy = 1" identifier = number_literal) ;) (expression_statement "iVar4 = bDummy;" (assignment_expression "iVar4 = bDummy" identifier = identifier) ;) }))) }) (else_clause "else {\n                      iVar4 = sqlite3_strnicmp("detail",pcVar14,N);\n                      if (iVar4 == 0) {\n                        aDetail[0].zName = "none";\n                        aDetail[0].eVal = 1;\n                        aDetail[1].zName = "full";\n                        aDetail[1].eVal = 0;\n                        aDetail[2].zName = "columns";\n                        aDetail[2].eVal = 2;\n                        aDetail[3].zName = (char *)0x0;\n                        aDetail[3].eVal = 0;\n                        lVar11 = -1;\n                        pcVar9 = pcVar7;\n                        do {\n                          if (lVar11 == 0) break;\n                          lVar11 = lVar11 + -1;\n                          cVar1 = *pcVar9;\n                          pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pFVar12 = aDetail;\n                        pcVar9 = "none";\n                        iVar3 = local_c8;\n                        do {\n                          pFVar12 = pFVar12 + 1;\n                          iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1);\n                          if (iVar4 == 0) {\n                            if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar3 = pFVar12[-1].eVal;\n                          }\n                          pcVar9 = pFVar12->zName;\n                        } while (pcVar9 != (char *)0x0);\n                        pConfig->eDetail = iVar3;\n                        bDummy = -(iVar3 >> 0x1f);\n                        iVar4 = bDummy;\n                        if (bDummy != 0) {\nLAB_0017ab15:\n                          pcVar7 = sqlite3_mprintf("malformed detail=... directive");\n                          *pzErr = pcVar7;\n                          iVar4 = bDummy;\n                        }\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14);\n                        *pzErr = pcVar7;\n                        iVar4 = iVar3;\n                      }\n                    }" else (compound_statement "{\n                      iVar4 = sqlite3_strnicmp("detail",pcVar14,N);\n                      if (iVar4 == 0) {\n                        aDetail[0].zName = "none";\n                        aDetail[0].eVal = 1;\n                        aDetail[1].zName = "full";\n                        aDetail[1].eVal = 0;\n                        aDetail[2].zName = "columns";\n                        aDetail[2].eVal = 2;\n                        aDetail[3].zName = (char *)0x0;\n                        aDetail[3].eVal = 0;\n                        lVar11 = -1;\n                        pcVar9 = pcVar7;\n                        do {\n                          if (lVar11 == 0) break;\n                          lVar11 = lVar11 + -1;\n                          cVar1 = *pcVar9;\n                          pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pFVar12 = aDetail;\n                        pcVar9 = "none";\n                        iVar3 = local_c8;\n                        do {\n                          pFVar12 = pFVar12 + 1;\n                          iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1);\n                          if (iVar4 == 0) {\n                            if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar3 = pFVar12[-1].eVal;\n                          }\n                          pcVar9 = pFVar12->zName;\n                        } while (pcVar9 != (char *)0x0);\n                        pConfig->eDetail = iVar3;\n                        bDummy = -(iVar3 >> 0x1f);\n                        iVar4 = bDummy;\n                        if (bDummy != 0) {\nLAB_0017ab15:\n                          pcVar7 = sqlite3_mprintf("malformed detail=... directive");\n                          *pzErr = pcVar7;\n                          iVar4 = bDummy;\n                        }\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14);\n                        *pzErr = pcVar7;\n                        iVar4 = iVar3;\n                      }\n                    }" { (expression_statement "iVar4 = sqlite3_strnicmp("detail",pcVar14,N);" (assignment_expression "iVar4 = sqlite3_strnicmp("detail",pcVar14,N)" identifier = (call_expression "sqlite3_strnicmp("detail",pcVar14,N)" identifier (argument_list "("detail",pcVar14,N)" ( (string_literal ""detail"" " string_content ") , identifier , identifier )))) ;) (if_statement "if (iVar4 == 0) {\n                        aDetail[0].zName = "none";\n                        aDetail[0].eVal = 1;\n                        aDetail[1].zName = "full";\n                        aDetail[1].eVal = 0;\n                        aDetail[2].zName = "columns";\n                        aDetail[2].eVal = 2;\n                        aDetail[3].zName = (char *)0x0;\n                        aDetail[3].eVal = 0;\n                        lVar11 = -1;\n                        pcVar9 = pcVar7;\n                        do {\n                          if (lVar11 == 0) break;\n                          lVar11 = lVar11 + -1;\n                          cVar1 = *pcVar9;\n                          pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pFVar12 = aDetail;\n                        pcVar9 = "none";\n                        iVar3 = local_c8;\n                        do {\n                          pFVar12 = pFVar12 + 1;\n                          iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1);\n                          if (iVar4 == 0) {\n                            if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar3 = pFVar12[-1].eVal;\n                          }\n                          pcVar9 = pFVar12->zName;\n                        } while (pcVar9 != (char *)0x0);\n                        pConfig->eDetail = iVar3;\n                        bDummy = -(iVar3 >> 0x1f);\n                        iVar4 = bDummy;\n                        if (bDummy != 0) {\nLAB_0017ab15:\n                          pcVar7 = sqlite3_mprintf("malformed detail=... directive");\n                          *pzErr = pcVar7;\n                          iVar4 = bDummy;\n                        }\n                      }\n                      else {\n                        pcVar7 = sqlite3_mprintf("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14);\n                        *pzErr = pcVar7;\n                        iVar4 = iVar3;\n                      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                        aDetail[0].zName = "none";\n                        aDetail[0].eVal = 1;\n                        aDetail[1].zName = "full";\n                        aDetail[1].eVal = 0;\n                        aDetail[2].zName = "columns";\n                        aDetail[2].eVal = 2;\n                        aDetail[3].zName = (char *)0x0;\n                        aDetail[3].eVal = 0;\n                        lVar11 = -1;\n                        pcVar9 = pcVar7;\n                        do {\n                          if (lVar11 == 0) break;\n                          lVar11 = lVar11 + -1;\n                          cVar1 = *pcVar9;\n                          pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pFVar12 = aDetail;\n                        pcVar9 = "none";\n                        iVar3 = local_c8;\n                        do {\n                          pFVar12 = pFVar12 + 1;\n                          iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1);\n                          if (iVar4 == 0) {\n                            if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar3 = pFVar12[-1].eVal;\n                          }\n                          pcVar9 = pFVar12->zName;\n                        } while (pcVar9 != (char *)0x0);\n                        pConfig->eDetail = iVar3;\n                        bDummy = -(iVar3 >> 0x1f);\n                        iVar4 = bDummy;\n                        if (bDummy != 0) {\nLAB_0017ab15:\n                          pcVar7 = sqlite3_mprintf("malformed detail=... directive");\n                          *pzErr = pcVar7;\n                          iVar4 = bDummy;\n                        }\n                      }" { (expression_statement "aDetail[0].zName = "none";" (assignment_expression "aDetail[0].zName = "none"" (field_expression "aDetail[0].zName" (subscript_expression "aDetail[0]" identifier [ number_literal ]) . field_identifier) = (string_literal ""none"" " string_content ")) ;) (expression_statement "aDetail[0].eVal = 1;" (assignment_expression "aDetail[0].eVal = 1" (field_expression "aDetail[0].eVal" (subscript_expression "aDetail[0]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "aDetail[1].zName = "full";" (assignment_expression "aDetail[1].zName = "full"" (field_expression "aDetail[1].zName" (subscript_expression "aDetail[1]" identifier [ number_literal ]) . field_identifier) = (string_literal ""full"" " string_content ")) ;) (expression_statement "aDetail[1].eVal = 0;" (assignment_expression "aDetail[1].eVal = 0" (field_expression "aDetail[1].eVal" (subscript_expression "aDetail[1]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "aDetail[2].zName = "columns";" (assignment_expression "aDetail[2].zName = "columns"" (field_expression "aDetail[2].zName" (subscript_expression "aDetail[2]" identifier [ number_literal ]) . field_identifier) = (string_literal ""columns"" " string_content ")) ;) (expression_statement "aDetail[2].eVal = 2;" (assignment_expression "aDetail[2].eVal = 2" (field_expression "aDetail[2].eVal" (subscript_expression "aDetail[2]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "aDetail[3].zName = (char *)0x0;" (assignment_expression "aDetail[3].zName = (char *)0x0" (field_expression "aDetail[3].zName" (subscript_expression "aDetail[3]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "aDetail[3].eVal = 0;" (assignment_expression "aDetail[3].eVal = 0" (field_expression "aDetail[3].eVal" (subscript_expression "aDetail[3]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "lVar11 = -1;" (assignment_expression "lVar11 = -1" identifier = number_literal) ;) (expression_statement "pcVar9 = pcVar7;" (assignment_expression "pcVar9 = pcVar7" identifier = identifier) ;) (do_statement "do {\n                          if (lVar11 == 0) break;\n                          lVar11 = lVar11 + -1;\n                          cVar1 = *pcVar9;\n                          pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                        } while (cVar1 != '\0');" do (compound_statement "{\n                          if (lVar11 == 0) break;\n                          lVar11 = lVar11 + -1;\n                          cVar1 = *pcVar9;\n                          pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;\n                        }" { (if_statement "if (lVar11 == 0) break;" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" identifier = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar9;" (assignment_expression "cVar1 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar16 * -2 + 1" identifier = (binary_expression "pcVar9 + (ulong)bVar16 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar16 * -2" identifier + (binary_expression "(ulong)bVar16 * -2" (cast_expression "(ulong)bVar16" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "pFVar12 = aDetail;" (assignment_expression "pFVar12 = aDetail" identifier = identifier) ;) (expression_statement "pcVar9 = "none";" (assignment_expression "pcVar9 = "none"" identifier = (string_literal ""none"" " string_content ")) ;) (expression_statement "iVar3 = local_c8;" (assignment_expression "iVar3 = local_c8" identifier = identifier) ;) (do_statement "do {\n                          pFVar12 = pFVar12 + 1;\n                          iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1);\n                          if (iVar4 == 0) {\n                            if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar3 = pFVar12[-1].eVal;\n                          }\n                          pcVar9 = pFVar12->zName;\n                        } while (pcVar9 != (char *)0x0);" do (compound_statement "{\n                          pFVar12 = pFVar12 + 1;\n                          iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1);\n                          if (iVar4 == 0) {\n                            if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar3 = pFVar12[-1].eVal;\n                          }\n                          pcVar9 = pFVar12->zName;\n                        }" { (expression_statement "pFVar12 = pFVar12 + 1;" (assignment_expression "pFVar12 = pFVar12 + 1" identifier = (binary_expression "pFVar12 + 1" identifier + number_literal)) ;) (expression_statement "iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1);" (assignment_expression "iVar4 = sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1)" identifier = (call_expression "sqlite3_strnicmp(pcVar9,pcVar7,~(uint)lVar11 - 1)" identifier (argument_list "(pcVar9,pcVar7,~(uint)lVar11 - 1)" ( identifier , identifier , (binary_expression "~(uint)lVar11 - 1" (unary_expression "~(uint)lVar11" ~ (cast_expression "(uint)lVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) - number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n                            if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar3 = pFVar12[-1].eVal;\n                          }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                            if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar3 = pFVar12[-1].eVal;\n                          }" { (if_statement "if (-1 < iVar3) {\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }" if (parenthesized_expression "(-1 < iVar3)" ( (binary_expression "-1 < iVar3" number_literal < identifier) )) (compound_statement "{\n                              bDummy = 1;\n                              goto LAB_0017ab15;\n                            }" { (expression_statement "bDummy = 1;" (assignment_expression "bDummy = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0017ab15;" goto statement_identifier ;) })) (expression_statement "iVar3 = pFVar12[-1].eVal;" (assignment_expression "iVar3 = pFVar12[-1].eVal" identifier = (field_expression "pFVar12[-1].eVal" (subscript_expression "pFVar12[-1]" identifier [ number_literal ]) . field_identifier)) ;) })) (expression_statement "pcVar9 = pFVar12->zName;" (assignment_expression "pcVar9 = pFVar12->zName" identifier = (field_expression "pFVar12->zName" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(pcVar9 != (char *)0x0)" ( (binary_expression "pcVar9 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pConfig->eDetail = iVar3;" (assignment_expression "pConfig->eDetail = iVar3" (field_expression "pConfig->eDetail" identifier -> field_identifier) = identifier) ;) (expression_statement "bDummy = -(iVar3 >> 0x1f);" (assignment_expression "bDummy = -(iVar3 >> 0x1f)" identifier = (unary_expression "-(iVar3 >> 0x1f)" - (parenthesized_expression "(iVar3 >> 0x1f)" ( (binary_expression "iVar3 >> 0x1f" identifier >> number_literal) )))) ;) (expression_statement "iVar4 = bDummy;" (assignment_expression "iVar4 = bDummy" identifier = identifier) ;) (if_statement "if (bDummy != 0) {\nLAB_0017ab15:\n                          pcVar7 = sqlite3_mprintf("malformed detail=... directive");\n                          *pzErr = pcVar7;\n                          iVar4 = bDummy;\n                        }" if (parenthesized_expression "(bDummy != 0)" ( (binary_expression "bDummy != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0017ab15:\n                          pcVar7 = sqlite3_mprintf("malformed detail=... directive");\n                          *pzErr = pcVar7;\n                          iVar4 = bDummy;\n                        }" { (labeled_statement "LAB_0017ab15:\n                          pcVar7 = sqlite3_mprintf("malformed detail=... directive");" statement_identifier : (expression_statement "pcVar7 = sqlite3_mprintf("malformed detail=... directive");" (assignment_expression "pcVar7 = sqlite3_mprintf("malformed detail=... directive")" identifier = (call_expression "sqlite3_mprintf("malformed detail=... directive")" identifier (argument_list "("malformed detail=... directive")" ( (string_literal ""malformed detail=... directive"" " string_content ") )))) ;)) (expression_statement "*pzErr = pcVar7;" (assignment_expression "*pzErr = pcVar7" (pointer_expression "*pzErr" * identifier) = identifier) ;) (expression_statement "iVar4 = bDummy;" (assignment_expression "iVar4 = bDummy" identifier = identifier) ;) })) }) (else_clause "else {\n                        pcVar7 = sqlite3_mprintf("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14);\n                        *pzErr = pcVar7;\n                        iVar4 = iVar3;\n                      }" else (compound_statement "{\n                        pcVar7 = sqlite3_mprintf("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14);\n                        *pzErr = pcVar7;\n                        iVar4 = iVar3;\n                      }" { (expression_statement "pcVar7 = sqlite3_mprintf("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14);" (assignment_expression "pcVar7 = sqlite3_mprintf("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14)" identifier = (call_expression "sqlite3_mprintf("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14)" identifier (argument_list "("unrecognized option: \"%.*s\"",\n                                                 ~uVar10 - 1 & 0xffffffff,pcVar14)" ( (string_literal ""unrecognized option: \"%.*s\""" " string_content escape_sequence string_content escape_sequence ") , (binary_expression "~uVar10 - 1 & 0xffffffff" (binary_expression "~uVar10 - 1" (unary_expression "~uVar10" ~ identifier) - number_literal) & number_literal) , identifier )))) ;) (expression_statement "*pzErr = pcVar7;" (assignment_expression "*pzErr = pcVar7" (pointer_expression "*pzErr" * identifier) = identifier) ;) (expression_statement "iVar4 = iVar3;" (assignment_expression "iVar4 = iVar3" identifier = identifier) ;) }))) }))) }))) }))) }))) }))) }))) })) }))) (goto_statement "goto LAB_0017a527;" goto statement_identifier ;) })) (labeled_statement "LAB_0017a368:\n    if (pConfig->pTok == (Fts5Tokenizer *)0x0) {\n      rc = sqlite3Fts5GetTokenizer\n                     (pGlobal,(char **)0x0,0,&pConfig->pTok,&pConfig->pTokApi,(char **)0x0);\n    }" statement_identifier : (if_statement "if (pConfig->pTok == (Fts5Tokenizer *)0x0) {\n      rc = sqlite3Fts5GetTokenizer\n                     (pGlobal,(char **)0x0,0,&pConfig->pTok,&pConfig->pTokApi,(char **)0x0);\n    }" if (parenthesized_expression "(pConfig->pTok == (Fts5Tokenizer *)0x0)" ( (binary_expression "pConfig->pTok == (Fts5Tokenizer *)0x0" (field_expression "pConfig->pTok" identifier -> field_identifier) == (cast_expression "(Fts5Tokenizer *)0x0" ( (type_descriptor "Fts5Tokenizer *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      rc = sqlite3Fts5GetTokenizer\n                     (pGlobal,(char **)0x0,0,&pConfig->pTok,&pConfig->pTokApi,(char **)0x0);\n    }" { (expression_statement "rc = sqlite3Fts5GetTokenizer\n                     (pGlobal,(char **)0x0,0,&pConfig->pTok,&pConfig->pTokApi,(char **)0x0);" (assignment_expression "rc = sqlite3Fts5GetTokenizer\n                     (pGlobal,(char **)0x0,0,&pConfig->pTok,&pConfig->pTokApi,(char **)0x0)" identifier = (call_expression "sqlite3Fts5GetTokenizer\n                     (pGlobal,(char **)0x0,0,&pConfig->pTok,&pConfig->pTokApi,(char **)0x0)" identifier (argument_list "(pGlobal,(char **)0x0,0,&pConfig->pTok,&pConfig->pTokApi,(char **)0x0)" ( identifier , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , number_literal , (pointer_expression "&pConfig->pTok" & (field_expression "pConfig->pTok" identifier -> field_identifier)) , (pointer_expression "&pConfig->pTokApi" & (field_expression "pConfig->pTokApi" identifier -> field_identifier)) , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) )))) ;) }))) }) (else_clause "else {\nLAB_0017a364:\n    if (rc == 0) goto LAB_0017a368;\n  }" else (compound_statement "{\nLAB_0017a364:\n    if (rc == 0) goto LAB_0017a368;\n  }" { (labeled_statement "LAB_0017a364:\n    if (rc == 0) goto LAB_0017a368;" statement_identifier : (if_statement "if (rc == 0) goto LAB_0017a368;" if (parenthesized_expression "(rc == 0)" ( (binary_expression "rc == 0" identifier == number_literal) )) (goto_statement "goto LAB_0017a368;" goto statement_identifier ;))) }))) (if_statement "if (rc == 0) {\n    if (pConfig->zContent == (char *)0x0) {\n      if (pConfig->eContent == 0) {\n        pcVar7 = "content";\n      }\n      else {\n        pcVar7 = "docsize";\n        if (pConfig->bColumnsize == 0) goto LAB_0017a389;\n      }\n      pcVar7 = sqlite3Fts5Mprintf(&rc,"%Q.\'%q_%s\'",pConfig->zDb,pConfig->zName,pcVar7);\n      pConfig->zContent = pcVar7;\n      if (rc != 0) goto LAB_0017acb0;\n    }\nLAB_0017a389:\n    if (pConfig->zContentRowid == (char *)0x0) {\n      pcVar7 = sqlite3Fts5Strndup(&rc,"rowid",-1);\n      pConfig->zContentRowid = pcVar7;\n      if (rc != 0) goto LAB_0017acb0;\n    }\n    zOne = (char *)((ulong)zOne & 0xffffffff00000000);\n    zTwo = (char *)0x0;\n    local_90 = 0;\n    local_8c = 0;\n    sqlite3Fts5BufferAppendPrintf((int *)&zOne,(Fts5Buffer *)&zTwo,"T.%Q",pConfig->zContentRowid);\n    if ((pConfig->eContent != 1) && (0 < pConfig->nCol)) {\n      uVar10 = 0;\n      do {\n        if (pConfig->eContent == 2) {\n          sqlite3Fts5BufferAppendPrintf\n                    ((int *)&zOne,(Fts5Buffer *)&zTwo,", T.%Q",pConfig->azCol[uVar10]);\n        }\n        else {\n          sqlite3Fts5BufferAppendPrintf\n                    ((int *)&zOne,(Fts5Buffer *)&zTwo,", T.c%d",uVar10 & 0xffffffff);\n        }\n        uVar10 = uVar10 + 1;\n      } while ((int)uVar10 < pConfig->nCol);\n    }\n    pConfig->zContentExprlist = zTwo;\n    rc = (int)zOne;\n    iVar5 = (int)zOne;\n    if ((int)zOne == 0) goto LAB_0017ad22;\n  }" if (parenthesized_expression "(rc == 0)" ( (binary_expression "rc == 0" identifier == number_literal) )) (compound_statement "{\n    if (pConfig->zContent == (char *)0x0) {\n      if (pConfig->eContent == 0) {\n        pcVar7 = "content";\n      }\n      else {\n        pcVar7 = "docsize";\n        if (pConfig->bColumnsize == 0) goto LAB_0017a389;\n      }\n      pcVar7 = sqlite3Fts5Mprintf(&rc,"%Q.\'%q_%s\'",pConfig->zDb,pConfig->zName,pcVar7);\n      pConfig->zContent = pcVar7;\n      if (rc != 0) goto LAB_0017acb0;\n    }\nLAB_0017a389:\n    if (pConfig->zContentRowid == (char *)0x0) {\n      pcVar7 = sqlite3Fts5Strndup(&rc,"rowid",-1);\n      pConfig->zContentRowid = pcVar7;\n      if (rc != 0) goto LAB_0017acb0;\n    }\n    zOne = (char *)((ulong)zOne & 0xffffffff00000000);\n    zTwo = (char *)0x0;\n    local_90 = 0;\n    local_8c = 0;\n    sqlite3Fts5BufferAppendPrintf((int *)&zOne,(Fts5Buffer *)&zTwo,"T.%Q",pConfig->zContentRowid);\n    if ((pConfig->eContent != 1) && (0 < pConfig->nCol)) {\n      uVar10 = 0;\n      do {\n        if (pConfig->eContent == 2) {\n          sqlite3Fts5BufferAppendPrintf\n                    ((int *)&zOne,(Fts5Buffer *)&zTwo,", T.%Q",pConfig->azCol[uVar10]);\n        }\n        else {\n          sqlite3Fts5BufferAppendPrintf\n                    ((int *)&zOne,(Fts5Buffer *)&zTwo,", T.c%d",uVar10 & 0xffffffff);\n        }\n        uVar10 = uVar10 + 1;\n      } while ((int)uVar10 < pConfig->nCol);\n    }\n    pConfig->zContentExprlist = zTwo;\n    rc = (int)zOne;\n    iVar5 = (int)zOne;\n    if ((int)zOne == 0) goto LAB_0017ad22;\n  }" { (if_statement "if (pConfig->zContent == (char *)0x0) {\n      if (pConfig->eContent == 0) {\n        pcVar7 = "content";\n      }\n      else {\n        pcVar7 = "docsize";\n        if (pConfig->bColumnsize == 0) goto LAB_0017a389;\n      }\n      pcVar7 = sqlite3Fts5Mprintf(&rc,"%Q.\'%q_%s\'",pConfig->zDb,pConfig->zName,pcVar7);\n      pConfig->zContent = pcVar7;\n      if (rc != 0) goto LAB_0017acb0;\n    }" if (parenthesized_expression "(pConfig->zContent == (char *)0x0)" ( (binary_expression "pConfig->zContent == (char *)0x0" (field_expression "pConfig->zContent" identifier -> field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (pConfig->eContent == 0) {\n        pcVar7 = "content";\n      }\n      else {\n        pcVar7 = "docsize";\n        if (pConfig->bColumnsize == 0) goto LAB_0017a389;\n      }\n      pcVar7 = sqlite3Fts5Mprintf(&rc,"%Q.\'%q_%s\'",pConfig->zDb,pConfig->zName,pcVar7);\n      pConfig->zContent = pcVar7;\n      if (rc != 0) goto LAB_0017acb0;\n    }" { (if_statement "if (pConfig->eContent == 0) {\n        pcVar7 = "content";\n      }\n      else {\n        pcVar7 = "docsize";\n        if (pConfig->bColumnsize == 0) goto LAB_0017a389;\n      }" if (parenthesized_expression "(pConfig->eContent == 0)" ( (binary_expression "pConfig->eContent == 0" (field_expression "pConfig->eContent" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n        pcVar7 = "content";\n      }" { (expression_statement "pcVar7 = "content";" (assignment_expression "pcVar7 = "content"" identifier = (string_literal ""content"" " string_content ")) ;) }) (else_clause "else {\n        pcVar7 = "docsize";\n        if (pConfig->bColumnsize == 0) goto LAB_0017a389;\n      }" else (compound_statement "{\n        pcVar7 = "docsize";\n        if (pConfig->bColumnsize == 0) goto LAB_0017a389;\n      }" { (expression_statement "pcVar7 = "docsize";" (assignment_expression "pcVar7 = "docsize"" identifier = (string_literal ""docsize"" " string_content ")) ;) (if_statement "if (pConfig->bColumnsize == 0) goto LAB_0017a389;" if (parenthesized_expression "(pConfig->bColumnsize == 0)" ( (binary_expression "pConfig->bColumnsize == 0" (field_expression "pConfig->bColumnsize" identifier -> field_identifier) == number_literal) )) (goto_statement "goto LAB_0017a389;" goto statement_identifier ;)) }))) (expression_statement "pcVar7 = sqlite3Fts5Mprintf(&rc,"%Q.\'%q_%s\'",pConfig->zDb,pConfig->zName,pcVar7);" (assignment_expression "pcVar7 = sqlite3Fts5Mprintf(&rc,"%Q.\'%q_%s\'",pConfig->zDb,pConfig->zName,pcVar7)" identifier = (call_expression "sqlite3Fts5Mprintf(&rc,"%Q.\'%q_%s\'",pConfig->zDb,pConfig->zName,pcVar7)" identifier (argument_list "(&rc,"%Q.\'%q_%s\'",pConfig->zDb,pConfig->zName,pcVar7)" ( (pointer_expression "&rc" & identifier) , (string_literal ""%Q.\'%q_%s\'"" " string_content escape_sequence string_content escape_sequence ") , (field_expression "pConfig->zDb" identifier -> field_identifier) , (field_expression "pConfig->zName" identifier -> field_identifier) , identifier )))) ;) (expression_statement "pConfig->zContent = pcVar7;" (assignment_expression "pConfig->zContent = pcVar7" (field_expression "pConfig->zContent" identifier -> field_identifier) = identifier) ;) (if_statement "if (rc != 0) goto LAB_0017acb0;" if (parenthesized_expression "(rc != 0)" ( (binary_expression "rc != 0" identifier != number_literal) )) (goto_statement "goto LAB_0017acb0;" goto statement_identifier ;)) })) (labeled_statement "LAB_0017a389:\n    if (pConfig->zContentRowid == (char *)0x0) {\n      pcVar7 = sqlite3Fts5Strndup(&rc,"rowid",-1);\n      pConfig->zContentRowid = pcVar7;\n      if (rc != 0) goto LAB_0017acb0;\n    }" statement_identifier : (if_statement "if (pConfig->zContentRowid == (char *)0x0) {\n      pcVar7 = sqlite3Fts5Strndup(&rc,"rowid",-1);\n      pConfig->zContentRowid = pcVar7;\n      if (rc != 0) goto LAB_0017acb0;\n    }" if (parenthesized_expression "(pConfig->zContentRowid == (char *)0x0)" ( (binary_expression "pConfig->zContentRowid == (char *)0x0" (field_expression "pConfig->zContentRowid" identifier -> field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar7 = sqlite3Fts5Strndup(&rc,"rowid",-1);\n      pConfig->zContentRowid = pcVar7;\n      if (rc != 0) goto LAB_0017acb0;\n    }" { (expression_statement "pcVar7 = sqlite3Fts5Strndup(&rc,"rowid",-1);" (assignment_expression "pcVar7 = sqlite3Fts5Strndup(&rc,"rowid",-1)" identifier = (call_expression "sqlite3Fts5Strndup(&rc,"rowid",-1)" identifier (argument_list "(&rc,"rowid",-1)" ( (pointer_expression "&rc" & identifier) , (string_literal ""rowid"" " string_content ") , number_literal )))) ;) (expression_statement "pConfig->zContentRowid = pcVar7;" (assignment_expression "pConfig->zContentRowid = pcVar7" (field_expression "pConfig->zContentRowid" identifier -> field_identifier) = identifier) ;) (if_statement "if (rc != 0) goto LAB_0017acb0;" if (parenthesized_expression "(rc != 0)" ( (binary_expression "rc != 0" identifier != number_literal) )) (goto_statement "goto LAB_0017acb0;" goto statement_identifier ;)) }))) (expression_statement "zOne = (char *)((ulong)zOne & 0xffffffff00000000);" (assignment_expression "zOne = (char *)((ulong)zOne & 0xffffffff00000000)" identifier = (cast_expression "(char *)((ulong)zOne & 0xffffffff00000000)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)zOne & 0xffffffff00000000)" ( (binary_expression "(ulong)zOne & 0xffffffff00000000" (cast_expression "(ulong)zOne" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "zTwo = (char *)0x0;" (assignment_expression "zTwo = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" identifier = number_literal) ;) (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" identifier = number_literal) ;) (expression_statement "sqlite3Fts5BufferAppendPrintf((int *)&zOne,(Fts5Buffer *)&zTwo,"T.%Q",pConfig->zContentRowid);" (call_expression "sqlite3Fts5BufferAppendPrintf((int *)&zOne,(Fts5Buffer *)&zTwo,"T.%Q",pConfig->zContentRowid)" identifier (argument_list "((int *)&zOne,(Fts5Buffer *)&zTwo,"T.%Q",pConfig->zContentRowid)" ( (cast_expression "(int *)&zOne" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&zOne" & identifier)) , (cast_expression "(Fts5Buffer *)&zTwo" ( (type_descriptor "Fts5Buffer *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&zTwo" & identifier)) , (string_literal ""T.%Q"" " string_content ") , (field_expression "pConfig->zContentRowid" identifier -> field_identifier) ))) ;) (if_statement "if ((pConfig->eContent != 1) && (0 < pConfig->nCol)) {\n      uVar10 = 0;\n      do {\n        if (pConfig->eContent == 2) {\n          sqlite3Fts5BufferAppendPrintf\n                    ((int *)&zOne,(Fts5Buffer *)&zTwo,", T.%Q",pConfig->azCol[uVar10]);\n        }\n        else {\n          sqlite3Fts5BufferAppendPrintf\n                    ((int *)&zOne,(Fts5Buffer *)&zTwo,", T.c%d",uVar10 & 0xffffffff);\n        }\n        uVar10 = uVar10 + 1;\n      } while ((int)uVar10 < pConfig->nCol);\n    }" if (parenthesized_expression "((pConfig->eContent != 1) && (0 < pConfig->nCol))" ( (binary_expression "(pConfig->eContent != 1) && (0 < pConfig->nCol)" (parenthesized_expression "(pConfig->eContent != 1)" ( (binary_expression "pConfig->eContent != 1" (field_expression "pConfig->eContent" identifier -> field_identifier) != number_literal) )) && (parenthesized_expression "(0 < pConfig->nCol)" ( (binary_expression "0 < pConfig->nCol" number_literal < (field_expression "pConfig->nCol" identifier -> field_identifier)) ))) )) (compound_statement "{\n      uVar10 = 0;\n      do {\n        if (pConfig->eContent == 2) {\n          sqlite3Fts5BufferAppendPrintf\n                    ((int *)&zOne,(Fts5Buffer *)&zTwo,", T.%Q",pConfig->azCol[uVar10]);\n        }\n        else {\n          sqlite3Fts5BufferAppendPrintf\n                    ((int *)&zOne,(Fts5Buffer *)&zTwo,", T.c%d",uVar10 & 0xffffffff);\n        }\n        uVar10 = uVar10 + 1;\n      } while ((int)uVar10 < pConfig->nCol);\n    }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n        if (pConfig->eContent == 2) {\n          sqlite3Fts5BufferAppendPrintf\n                    ((int *)&zOne,(Fts5Buffer *)&zTwo,", T.%Q",pConfig->azCol[uVar10]);\n        }\n        else {\n          sqlite3Fts5BufferAppendPrintf\n                    ((int *)&zOne,(Fts5Buffer *)&zTwo,", T.c%d",uVar10 & 0xffffffff);\n        }\n        uVar10 = uVar10 + 1;\n      } while ((int)uVar10 < pConfig->nCol);" do (compound_statement "{\n        if (pConfig->eContent == 2) {\n          sqlite3Fts5BufferAppendPrintf\n                    ((int *)&zOne,(Fts5Buffer *)&zTwo,", T.%Q",pConfig->azCol[uVar10]);\n        }\n        else {\n          sqlite3Fts5BufferAppendPrintf\n                    ((int *)&zOne,(Fts5Buffer *)&zTwo,", T.c%d",uVar10 & 0xffffffff);\n        }\n        uVar10 = uVar10 + 1;\n      }" { (if_statement "if (pConfig->eContent == 2) {\n          sqlite3Fts5BufferAppendPrintf\n                    ((int *)&zOne,(Fts5Buffer *)&zTwo,", T.%Q",pConfig->azCol[uVar10]);\n        }\n        else {\n          sqlite3Fts5BufferAppendPrintf\n                    ((int *)&zOne,(Fts5Buffer *)&zTwo,", T.c%d",uVar10 & 0xffffffff);\n        }" if (parenthesized_expression "(pConfig->eContent == 2)" ( (binary_expression "pConfig->eContent == 2" (field_expression "pConfig->eContent" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n          sqlite3Fts5BufferAppendPrintf\n                    ((int *)&zOne,(Fts5Buffer *)&zTwo,", T.%Q",pConfig->azCol[uVar10]);\n        }" { (expression_statement "sqlite3Fts5BufferAppendPrintf\n                    ((int *)&zOne,(Fts5Buffer *)&zTwo,", T.%Q",pConfig->azCol[uVar10]);" (call_expression "sqlite3Fts5BufferAppendPrintf\n                    ((int *)&zOne,(Fts5Buffer *)&zTwo,", T.%Q",pConfig->azCol[uVar10])" identifier (argument_list "((int *)&zOne,(Fts5Buffer *)&zTwo,", T.%Q",pConfig->azCol[uVar10])" ( (cast_expression "(int *)&zOne" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&zOne" & identifier)) , (cast_expression "(Fts5Buffer *)&zTwo" ( (type_descriptor "Fts5Buffer *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&zTwo" & identifier)) , (string_literal "", T.%Q"" " string_content ") , (subscript_expression "pConfig->azCol[uVar10]" (field_expression "pConfig->azCol" identifier -> field_identifier) [ identifier ]) ))) ;) }) (else_clause "else {\n          sqlite3Fts5BufferAppendPrintf\n                    ((int *)&zOne,(Fts5Buffer *)&zTwo,", T.c%d",uVar10 & 0xffffffff);\n        }" else (compound_statement "{\n          sqlite3Fts5BufferAppendPrintf\n                    ((int *)&zOne,(Fts5Buffer *)&zTwo,", T.c%d",uVar10 & 0xffffffff);\n        }" { (expression_statement "sqlite3Fts5BufferAppendPrintf\n                    ((int *)&zOne,(Fts5Buffer *)&zTwo,", T.c%d",uVar10 & 0xffffffff);" (call_expression "sqlite3Fts5BufferAppendPrintf\n                    ((int *)&zOne,(Fts5Buffer *)&zTwo,", T.c%d",uVar10 & 0xffffffff)" identifier (argument_list "((int *)&zOne,(Fts5Buffer *)&zTwo,", T.c%d",uVar10 & 0xffffffff)" ( (cast_expression "(int *)&zOne" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&zOne" & identifier)) , (cast_expression "(Fts5Buffer *)&zTwo" ( (type_descriptor "Fts5Buffer *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&zTwo" & identifier)) , (string_literal "", T.c%d"" " string_content ") , (binary_expression "uVar10 & 0xffffffff" identifier & number_literal) ))) ;) }))) (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((int)uVar10 < pConfig->nCol)" ( (binary_expression "(int)uVar10 < pConfig->nCol" (cast_expression "(int)uVar10" ( (type_descriptor "int" primitive_type) ) identifier) < (field_expression "pConfig->nCol" identifier -> field_identifier)) )) ;) })) (expression_statement "pConfig->zContentExprlist = zTwo;" (assignment_expression "pConfig->zContentExprlist = zTwo" (field_expression "pConfig->zContentExprlist" identifier -> field_identifier) = identifier) ;) (expression_statement "rc = (int)zOne;" (assignment_expression "rc = (int)zOne" identifier = (cast_expression "(int)zOne" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar5 = (int)zOne;" (assignment_expression "iVar5 = (int)zOne" identifier = (cast_expression "(int)zOne" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if ((int)zOne == 0) goto LAB_0017ad22;" if (parenthesized_expression "((int)zOne == 0)" ( (binary_expression "(int)zOne == 0" (cast_expression "(int)zOne" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (goto_statement "goto LAB_0017ad22;" goto statement_identifier ;)) })) (labeled_statement "LAB_0017acb0:\n  sqlite3Fts5ConfigFree(pConfig);" statement_identifier : (expression_statement "sqlite3Fts5ConfigFree(pConfig);" (call_expression "sqlite3Fts5ConfigFree(pConfig)" identifier (argument_list "(pConfig)" ( identifier ))) ;)) (expression_statement "*ppOut = (Fts5Config *)0x0;" (assignment_expression "*ppOut = (Fts5Config *)0x0" (pointer_expression "*ppOut" * identifier) = (cast_expression "(Fts5Config *)0x0" ( (type_descriptor "Fts5Config *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar5 = rc;" (assignment_expression "iVar5 = rc" identifier = identifier) ;) (labeled_statement "LAB_0017ad22:\n  if (lVar2 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (lVar2 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(lVar2 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lVar2 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return iVar5;" return identifier ;) (labeled_statement "LAB_0017a6fb:\n  pcVar7 = sqlite3_mprintf("prefix length out of range (max 999)");" statement_identifier : (expression_statement "pcVar7 = sqlite3_mprintf("prefix length out of range (max 999)");" (assignment_expression "pcVar7 = sqlite3_mprintf("prefix length out of range (max 999)")" identifier = (call_expression "sqlite3_mprintf("prefix length out of range (max 999)")" identifier (argument_list "("prefix length out of range (max 999)")" ( (string_literal ""prefix length out of range (max 999)"" " string_content ") )))) ;)) (expression_statement "*pzErr = pcVar7;" (assignment_expression "*pzErr = pcVar7" (pointer_expression "*pzErr" * identifier) = identifier) ;) (expression_statement "bDummy = 1;" (assignment_expression "bDummy = 1" identifier = number_literal) ;) (expression_statement "iVar4 = bDummy;" (assignment_expression "iVar4 = bDummy" identifier = identifier) ;) (labeled_statement "LAB_0017a527:\n  rc = iVar4;" statement_identifier : (expression_statement "rc = iVar4;" (assignment_expression "rc = iVar4" identifier = identifier) ;)) (expression_statement "sqlite3_free(zOne);" (call_expression "sqlite3_free(zOne)" identifier (argument_list "(zOne)" ( identifier ))) ;) (expression_statement "sqlite3_free(zTwo);" (call_expression "sqlite3_free(zTwo)" identifier (argument_list "(zTwo)" ( identifier ))) ;) (expression_statement "iVar3 = (int)lVar15;" (assignment_expression "iVar3 = (int)lVar15" identifier = (cast_expression "(int)lVar15" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "lVar15 = lVar15 + 1;" (assignment_expression "lVar15 = lVar15 + 1" identifier = (binary_expression "lVar15 + 1" identifier + number_literal)) ;) (if_statement "if (nArg <= iVar3 || rc != 0) goto LAB_0017a364;" if (parenthesized_expression "(nArg <= iVar3 || rc != 0)" ( (binary_expression "nArg <= iVar3 || rc != 0" (binary_expression "nArg <= iVar3" identifier <= identifier) || (binary_expression "rc != 0" identifier != number_literal)) )) (goto_statement "goto LAB_0017a364;" goto statement_identifier ;)) (goto_statement "goto LAB_0017a558;" goto statement_identifier ;) })))
(translation_unit "int FUN_0017a24a(undefined8 param_1,undefined8 param_2,int param_3,long param_4,long *param_5,\n                undefined8 *param_6)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  undefined8 *puVar5;\n  long lVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  void *pvVar9;\n  long lVar10;\n  ulong uVar11;\n  long lVar12;\n  char **ppcVar13;\n  undefined8 *puVar14;\n  char *pcVar15;\n  char *pcVar16;\n  char *pcVar17;\n  void *__dest;\n  long in_FS_OFFSET;\n  byte bVar18;\n  int local_c8;\n  int local_ac;\n  int local_a8;\n  int local_a4;\n  char *local_a0;\n  char *local_98;\n  undefined4 local_90;\n  undefined4 local_8c;\n  char *local_88;\n  undefined4 local_80 [2];\n  char *local_78;\n  undefined4 local_70;\n  char *local_68;\n  undefined4 local_60;\n  undefined8 local_58;\n  undefined4 local_50;\n  long local_40;\n  \n  bVar18 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_ac = 0;\n  puVar5 = (undefined8 *)FUN_0014ae6c(0xa8);\n  *param_5 = (long)puVar5;\n  if (puVar5 == (undefined8 *)0x0) {\n    iVar4 = 7;\n    goto LAB_0017ad22;\n  }\n  puVar5[1] = 0;\n  puVar5[0x14] = 0;\n  puVar14 = (undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8);\n  for (uVar11 = (ulong)(((int)puVar5 - (int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)\n                        ) + 0xa8U >> 3); uVar11 != 0; uVar11 = uVar11 - 1) {\n    *puVar14 = 0;\n    puVar14 = puVar14 + (ulong)bVar18 * -2 + 1;\n  }\n  *puVar5 = param_2;\n  *(undefined4 *)(puVar5 + 0xf) = 0xffffffff;\n  lVar6 = FUN_0014bc1d(&local_ac,(long)param_3 * 9);\n  puVar5[4] = lVar6;\n  puVar5[5] = lVar6 + (long)param_3 * 8;\n  uVar7 = FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 8),0xffffffff);\n  puVar5[1] = uVar7;\n  uVar7 = FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 0x10),0xffffffff);\n  iVar4 = local_ac;\n  puVar5[2] = uVar7;\n  *(undefined4 *)(puVar5 + 0xb) = 1;\n  *(undefined4 *)((long)puVar5 + 0x5c) = 0;\n  if (local_ac == 0) {\n    iVar2 = FUN_0012ad85(uVar7,&DAT_001f3ddb);\n    if (iVar2 == 0) {\n      uVar7 = FUN_001776d2("reserved fts5 table name: %s",uVar7);\n      *param_6 = uVar7;\n      local_ac = 1;\n      goto LAB_0017a364;\n    }\n    if (3 < param_3) {\n      lVar6 = 4;\n      local_c8 = -1;\nLAB_0017a558:\n      uVar7 = *(undefined8 *)(param_4 + -8 + lVar6 * 8);\n      local_a0 = (char *)0x0;\n      local_98 = (char *)0x0;\n      local_a8 = 0;\n      uVar8 = FUN_0014c842(&local_ac,uVar7,&local_a0,&local_a8);\n      pcVar17 = (char *)FUN_0013465f(uVar8);\n      iVar2 = iVar4;\n      if ((pcVar17 != (char *)0x0) && (*pcVar17 == '=')) {\n        if (local_a8 == 0) {\n          pcVar17 = pcVar17 + 1;\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = 1;\n          pcVar17 = (char *)0x0;\n        }\n      }\n      pcVar17 = (char *)FUN_0013465f(pcVar17);\n      if ((pcVar17 == (char *)0x0) ||\n         ((pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))))) {\n        iVar3 = local_ac;\n        if (local_ac == 0) {\n          uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);\n          *param_6 = uVar7;\n          local_ac = 1;\n          iVar3 = local_ac;\n        }\n      }\n      else {\n        iVar3 = local_ac;\n        local_a0 = pcVar16;\n        if (local_ac == 0) {\n          if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_0017a527;\n    }\nLAB_0017a368:\n    if (puVar5[0xd] == 0) {\n      local_ac = FUN_0017a177(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0);\n    }\n  }\n  else {\nLAB_0017a364:\n    if (local_ac == 0) goto LAB_0017a368;\n  }\n  if (local_ac == 0) {\n    if (puVar5[9] == 0) {\n      if (*(int *)(puVar5 + 8) == 0) {\n        pcVar17 = "content";\n      }\n      else {\n        pcVar17 = "docsize";\n        if (*(int *)(puVar5 + 0xb) == 0) goto LAB_0017a389;\n      }\n      uVar7 = FUN_00177220(&local_ac,"%Q.\'%q_%s\'",puVar5[1],puVar5[2],pcVar17);\n      puVar5[9] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }\nLAB_0017a389:\n    if (puVar5[10] == 0) {\n      uVar7 = FUN_0014b209(&local_ac,"rowid",0xffffffff);\n      puVar5[10] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }\n    local_a0 = (char *)((ulong)local_a0 & 0xffffffff00000000);\n    local_98 = (char *)0x0;\n    local_90 = 0;\n    local_8c = 0;\n    FUN_001765c7(&local_a0,&local_98,&DAT_001f4822,puVar5[10]);\n    if ((*(int *)(puVar5 + 8) != 1) && (0 < *(int *)(puVar5 + 3))) {\n      uVar11 = 0;\n      do {\n        if (*(int *)(puVar5 + 8) == 2) {\n          FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));\n        }\n        else {\n          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);\n        }\n        uVar11 = uVar11 + 1;\n      } while ((int)uVar11 < *(int *)(puVar5 + 3));\n    }\n    puVar5[0xc] = local_98;\n    local_ac = (int)local_a0;\n    iVar4 = (int)local_a0;\n    if ((int)local_a0 == 0) goto LAB_0017ad22;\n  }\nLAB_0017acb0:\n  FUN_00148182(puVar5);\n  *param_5 = 0;\n  iVar4 = local_ac;\nLAB_0017ad22:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return iVar4;\nLAB_0017a6fb:\n  uVar7 = FUN_001776d2("prefix length out of range (max 999)");\n  *param_6 = uVar7;\n  local_a4 = 1;\n  iVar3 = local_a4;\nLAB_0017a527:\n  local_ac = iVar3;\n  FUN_00141303(local_a0);\n  FUN_00141303(local_98);\n  iVar2 = (int)lVar6;\n  lVar6 = lVar6 + 1;\n  if (param_3 <= iVar2 || local_ac != 0) goto LAB_0017a364;\n  goto LAB_0017a558;\n}\n\n" (function_definition "int FUN_0017a24a(undefined8 param_1,undefined8 param_2,int param_3,long param_4,long *param_5,\n                undefined8 *param_6)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  undefined8 *puVar5;\n  long lVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  void *pvVar9;\n  long lVar10;\n  ulong uVar11;\n  long lVar12;\n  char **ppcVar13;\n  undefined8 *puVar14;\n  char *pcVar15;\n  char *pcVar16;\n  char *pcVar17;\n  void *__dest;\n  long in_FS_OFFSET;\n  byte bVar18;\n  int local_c8;\n  int local_ac;\n  int local_a8;\n  int local_a4;\n  char *local_a0;\n  char *local_98;\n  undefined4 local_90;\n  undefined4 local_8c;\n  char *local_88;\n  undefined4 local_80 [2];\n  char *local_78;\n  undefined4 local_70;\n  char *local_68;\n  undefined4 local_60;\n  undefined8 local_58;\n  undefined4 local_50;\n  long local_40;\n  \n  bVar18 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_ac = 0;\n  puVar5 = (undefined8 *)FUN_0014ae6c(0xa8);\n  *param_5 = (long)puVar5;\n  if (puVar5 == (undefined8 *)0x0) {\n    iVar4 = 7;\n    goto LAB_0017ad22;\n  }\n  puVar5[1] = 0;\n  puVar5[0x14] = 0;\n  puVar14 = (undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8);\n  for (uVar11 = (ulong)(((int)puVar5 - (int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)\n                        ) + 0xa8U >> 3); uVar11 != 0; uVar11 = uVar11 - 1) {\n    *puVar14 = 0;\n    puVar14 = puVar14 + (ulong)bVar18 * -2 + 1;\n  }\n  *puVar5 = param_2;\n  *(undefined4 *)(puVar5 + 0xf) = 0xffffffff;\n  lVar6 = FUN_0014bc1d(&local_ac,(long)param_3 * 9);\n  puVar5[4] = lVar6;\n  puVar5[5] = lVar6 + (long)param_3 * 8;\n  uVar7 = FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 8),0xffffffff);\n  puVar5[1] = uVar7;\n  uVar7 = FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 0x10),0xffffffff);\n  iVar4 = local_ac;\n  puVar5[2] = uVar7;\n  *(undefined4 *)(puVar5 + 0xb) = 1;\n  *(undefined4 *)((long)puVar5 + 0x5c) = 0;\n  if (local_ac == 0) {\n    iVar2 = FUN_0012ad85(uVar7,&DAT_001f3ddb);\n    if (iVar2 == 0) {\n      uVar7 = FUN_001776d2("reserved fts5 table name: %s",uVar7);\n      *param_6 = uVar7;\n      local_ac = 1;\n      goto LAB_0017a364;\n    }\n    if (3 < param_3) {\n      lVar6 = 4;\n      local_c8 = -1;\nLAB_0017a558:\n      uVar7 = *(undefined8 *)(param_4 + -8 + lVar6 * 8);\n      local_a0 = (char *)0x0;\n      local_98 = (char *)0x0;\n      local_a8 = 0;\n      uVar8 = FUN_0014c842(&local_ac,uVar7,&local_a0,&local_a8);\n      pcVar17 = (char *)FUN_0013465f(uVar8);\n      iVar2 = iVar4;\n      if ((pcVar17 != (char *)0x0) && (*pcVar17 == '=')) {\n        if (local_a8 == 0) {\n          pcVar17 = pcVar17 + 1;\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = 1;\n          pcVar17 = (char *)0x0;\n        }\n      }\n      pcVar17 = (char *)FUN_0013465f(pcVar17);\n      if ((pcVar17 == (char *)0x0) ||\n         ((pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))))) {\n        iVar3 = local_ac;\n        if (local_ac == 0) {\n          uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);\n          *param_6 = uVar7;\n          local_ac = 1;\n          iVar3 = local_ac;\n        }\n      }\n      else {\n        iVar3 = local_ac;\n        local_a0 = pcVar16;\n        if (local_ac == 0) {\n          if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_0017a527;\n    }\nLAB_0017a368:\n    if (puVar5[0xd] == 0) {\n      local_ac = FUN_0017a177(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0);\n    }\n  }\n  else {\nLAB_0017a364:\n    if (local_ac == 0) goto LAB_0017a368;\n  }\n  if (local_ac == 0) {\n    if (puVar5[9] == 0) {\n      if (*(int *)(puVar5 + 8) == 0) {\n        pcVar17 = "content";\n      }\n      else {\n        pcVar17 = "docsize";\n        if (*(int *)(puVar5 + 0xb) == 0) goto LAB_0017a389;\n      }\n      uVar7 = FUN_00177220(&local_ac,"%Q.\'%q_%s\'",puVar5[1],puVar5[2],pcVar17);\n      puVar5[9] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }\nLAB_0017a389:\n    if (puVar5[10] == 0) {\n      uVar7 = FUN_0014b209(&local_ac,"rowid",0xffffffff);\n      puVar5[10] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }\n    local_a0 = (char *)((ulong)local_a0 & 0xffffffff00000000);\n    local_98 = (char *)0x0;\n    local_90 = 0;\n    local_8c = 0;\n    FUN_001765c7(&local_a0,&local_98,&DAT_001f4822,puVar5[10]);\n    if ((*(int *)(puVar5 + 8) != 1) && (0 < *(int *)(puVar5 + 3))) {\n      uVar11 = 0;\n      do {\n        if (*(int *)(puVar5 + 8) == 2) {\n          FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));\n        }\n        else {\n          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);\n        }\n        uVar11 = uVar11 + 1;\n      } while ((int)uVar11 < *(int *)(puVar5 + 3));\n    }\n    puVar5[0xc] = local_98;\n    local_ac = (int)local_a0;\n    iVar4 = (int)local_a0;\n    if ((int)local_a0 == 0) goto LAB_0017ad22;\n  }\nLAB_0017acb0:\n  FUN_00148182(puVar5);\n  *param_5 = 0;\n  iVar4 = local_ac;\nLAB_0017ad22:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return iVar4;\nLAB_0017a6fb:\n  uVar7 = FUN_001776d2("prefix length out of range (max 999)");\n  *param_6 = uVar7;\n  local_a4 = 1;\n  iVar3 = local_a4;\nLAB_0017a527:\n  local_ac = iVar3;\n  FUN_00141303(local_a0);\n  FUN_00141303(local_98);\n  iVar2 = (int)lVar6;\n  lVar6 = lVar6 + 1;\n  if (param_3 <= iVar2 || local_ac != 0) goto LAB_0017a364;\n  goto LAB_0017a558;\n}" primitive_type (function_declarator "FUN_0017a24a(undefined8 param_1,undefined8 param_2,int param_3,long param_4,long *param_5,\n                undefined8 *param_6)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2,int param_3,long param_4,long *param_5,\n                undefined8 *param_6)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long *param_5" (sized_type_specifier "long" long) (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "undefined8 *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  undefined8 *puVar5;\n  long lVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  void *pvVar9;\n  long lVar10;\n  ulong uVar11;\n  long lVar12;\n  char **ppcVar13;\n  undefined8 *puVar14;\n  char *pcVar15;\n  char *pcVar16;\n  char *pcVar17;\n  void *__dest;\n  long in_FS_OFFSET;\n  byte bVar18;\n  int local_c8;\n  int local_ac;\n  int local_a8;\n  int local_a4;\n  char *local_a0;\n  char *local_98;\n  undefined4 local_90;\n  undefined4 local_8c;\n  char *local_88;\n  undefined4 local_80 [2];\n  char *local_78;\n  undefined4 local_70;\n  char *local_68;\n  undefined4 local_60;\n  undefined8 local_58;\n  undefined4 local_50;\n  long local_40;\n  \n  bVar18 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_ac = 0;\n  puVar5 = (undefined8 *)FUN_0014ae6c(0xa8);\n  *param_5 = (long)puVar5;\n  if (puVar5 == (undefined8 *)0x0) {\n    iVar4 = 7;\n    goto LAB_0017ad22;\n  }\n  puVar5[1] = 0;\n  puVar5[0x14] = 0;\n  puVar14 = (undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8);\n  for (uVar11 = (ulong)(((int)puVar5 - (int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)\n                        ) + 0xa8U >> 3); uVar11 != 0; uVar11 = uVar11 - 1) {\n    *puVar14 = 0;\n    puVar14 = puVar14 + (ulong)bVar18 * -2 + 1;\n  }\n  *puVar5 = param_2;\n  *(undefined4 *)(puVar5 + 0xf) = 0xffffffff;\n  lVar6 = FUN_0014bc1d(&local_ac,(long)param_3 * 9);\n  puVar5[4] = lVar6;\n  puVar5[5] = lVar6 + (long)param_3 * 8;\n  uVar7 = FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 8),0xffffffff);\n  puVar5[1] = uVar7;\n  uVar7 = FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 0x10),0xffffffff);\n  iVar4 = local_ac;\n  puVar5[2] = uVar7;\n  *(undefined4 *)(puVar5 + 0xb) = 1;\n  *(undefined4 *)((long)puVar5 + 0x5c) = 0;\n  if (local_ac == 0) {\n    iVar2 = FUN_0012ad85(uVar7,&DAT_001f3ddb);\n    if (iVar2 == 0) {\n      uVar7 = FUN_001776d2("reserved fts5 table name: %s",uVar7);\n      *param_6 = uVar7;\n      local_ac = 1;\n      goto LAB_0017a364;\n    }\n    if (3 < param_3) {\n      lVar6 = 4;\n      local_c8 = -1;\nLAB_0017a558:\n      uVar7 = *(undefined8 *)(param_4 + -8 + lVar6 * 8);\n      local_a0 = (char *)0x0;\n      local_98 = (char *)0x0;\n      local_a8 = 0;\n      uVar8 = FUN_0014c842(&local_ac,uVar7,&local_a0,&local_a8);\n      pcVar17 = (char *)FUN_0013465f(uVar8);\n      iVar2 = iVar4;\n      if ((pcVar17 != (char *)0x0) && (*pcVar17 == '=')) {\n        if (local_a8 == 0) {\n          pcVar17 = pcVar17 + 1;\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = 1;\n          pcVar17 = (char *)0x0;\n        }\n      }\n      pcVar17 = (char *)FUN_0013465f(pcVar17);\n      if ((pcVar17 == (char *)0x0) ||\n         ((pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))))) {\n        iVar3 = local_ac;\n        if (local_ac == 0) {\n          uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);\n          *param_6 = uVar7;\n          local_ac = 1;\n          iVar3 = local_ac;\n        }\n      }\n      else {\n        iVar3 = local_ac;\n        local_a0 = pcVar16;\n        if (local_ac == 0) {\n          if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_0017a527;\n    }\nLAB_0017a368:\n    if (puVar5[0xd] == 0) {\n      local_ac = FUN_0017a177(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0);\n    }\n  }\n  else {\nLAB_0017a364:\n    if (local_ac == 0) goto LAB_0017a368;\n  }\n  if (local_ac == 0) {\n    if (puVar5[9] == 0) {\n      if (*(int *)(puVar5 + 8) == 0) {\n        pcVar17 = "content";\n      }\n      else {\n        pcVar17 = "docsize";\n        if (*(int *)(puVar5 + 0xb) == 0) goto LAB_0017a389;\n      }\n      uVar7 = FUN_00177220(&local_ac,"%Q.\'%q_%s\'",puVar5[1],puVar5[2],pcVar17);\n      puVar5[9] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }\nLAB_0017a389:\n    if (puVar5[10] == 0) {\n      uVar7 = FUN_0014b209(&local_ac,"rowid",0xffffffff);\n      puVar5[10] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }\n    local_a0 = (char *)((ulong)local_a0 & 0xffffffff00000000);\n    local_98 = (char *)0x0;\n    local_90 = 0;\n    local_8c = 0;\n    FUN_001765c7(&local_a0,&local_98,&DAT_001f4822,puVar5[10]);\n    if ((*(int *)(puVar5 + 8) != 1) && (0 < *(int *)(puVar5 + 3))) {\n      uVar11 = 0;\n      do {\n        if (*(int *)(puVar5 + 8) == 2) {\n          FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));\n        }\n        else {\n          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);\n        }\n        uVar11 = uVar11 + 1;\n      } while ((int)uVar11 < *(int *)(puVar5 + 3));\n    }\n    puVar5[0xc] = local_98;\n    local_ac = (int)local_a0;\n    iVar4 = (int)local_a0;\n    if ((int)local_a0 == 0) goto LAB_0017ad22;\n  }\nLAB_0017acb0:\n  FUN_00148182(puVar5);\n  *param_5 = 0;\n  iVar4 = local_ac;\nLAB_0017ad22:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return iVar4;\nLAB_0017a6fb:\n  uVar7 = FUN_001776d2("prefix length out of range (max 999)");\n  *param_6 = uVar7;\n  local_a4 = 1;\n  iVar3 = local_a4;\nLAB_0017a527:\n  local_ac = iVar3;\n  FUN_00141303(local_a0);\n  FUN_00141303(local_98);\n  iVar2 = (int)lVar6;\n  lVar6 = lVar6 + 1;\n  if (param_3 <= iVar2 || local_ac != 0) goto LAB_0017a364;\n  goto LAB_0017a558;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined8 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "void *pvVar9;" primitive_type (pointer_declarator "*pvVar9" * identifier) ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar11;" type_identifier identifier ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "char **ppcVar13;" primitive_type (pointer_declarator "**ppcVar13" * (pointer_declarator "*ppcVar13" * identifier)) ;) (declaration "undefined8 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "char *pcVar17;" primitive_type (pointer_declarator "*pcVar17" * identifier) ;) (declaration "void *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar18;" type_identifier identifier ;) (declaration "int local_c8;" primitive_type identifier ;) (declaration "int local_ac;" primitive_type identifier ;) (declaration "int local_a8;" primitive_type identifier ;) (declaration "int local_a4;" primitive_type identifier ;) (declaration "char *local_a0;" primitive_type (pointer_declarator "*local_a0" * identifier) ;) (declaration "char *local_98;" primitive_type (pointer_declarator "*local_98" * identifier) ;) (declaration "undefined4 local_90;" type_identifier identifier ;) (declaration "undefined4 local_8c;" type_identifier identifier ;) (declaration "char *local_88;" primitive_type (pointer_declarator "*local_88" * identifier) ;) (declaration "undefined4 local_80 [2];" type_identifier (array_declarator "local_80 [2]" identifier [ number_literal ]) ;) (declaration "char *local_78;" primitive_type (pointer_declarator "*local_78" * identifier) ;) (declaration "undefined4 local_70;" type_identifier identifier ;) (declaration "char *local_68;" primitive_type (pointer_declarator "*local_68" * identifier) ;) (declaration "undefined4 local_60;" type_identifier identifier ;) (declaration "undefined8 local_58;" type_identifier identifier ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "bVar18 = 0;" (assignment_expression "bVar18 = 0" identifier = number_literal) ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "local_ac = 0;" (assignment_expression "local_ac = 0" identifier = number_literal) ;) (expression_statement "puVar5 = (undefined8 *)FUN_0014ae6c(0xa8);" (assignment_expression "puVar5 = (undefined8 *)FUN_0014ae6c(0xa8)" identifier = (cast_expression "(undefined8 *)FUN_0014ae6c(0xa8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0014ae6c(0xa8)" identifier (argument_list "(0xa8)" ( number_literal ))))) ;) (expression_statement "*param_5 = (long)puVar5;" (assignment_expression "*param_5 = (long)puVar5" (pointer_expression "*param_5" * identifier) = (cast_expression "(long)puVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (if_statement "if (puVar5 == (undefined8 *)0x0) {\n    iVar4 = 7;\n    goto LAB_0017ad22;\n  }" if (parenthesized_expression "(puVar5 == (undefined8 *)0x0)" ( (binary_expression "puVar5 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar4 = 7;\n    goto LAB_0017ad22;\n  }" { (expression_statement "iVar4 = 7;" (assignment_expression "iVar4 = 7" identifier = number_literal) ;) (goto_statement "goto LAB_0017ad22;" goto statement_identifier ;) })) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[0x14] = 0;" (assignment_expression "puVar5[0x14] = 0" (subscript_expression "puVar5[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14 = (undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8);" (assignment_expression "puVar14 = (undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)" identifier = (cast_expression "(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)(puVar5 + 2) & 0xfffffffffffffff8)" ( (binary_expression "(ulong)(puVar5 + 2) & 0xfffffffffffffff8" (call_expression "(ulong)(puVar5 + 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(puVar5 + 2)" ( (binary_expression "puVar5 + 2" identifier + number_literal) ))) & number_literal) )))) ;) (for_statement "for (uVar11 = (ulong)(((int)puVar5 - (int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)\n                        ) + 0xa8U >> 3); uVar11 != 0; uVar11 = uVar11 - 1) {\n    *puVar14 = 0;\n    puVar14 = puVar14 + (ulong)bVar18 * -2 + 1;\n  }" for ( (assignment_expression "uVar11 = (ulong)(((int)puVar5 - (int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)\n                        ) + 0xa8U >> 3)" identifier = (call_expression "(ulong)(((int)puVar5 - (int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)\n                        ) + 0xa8U >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(((int)puVar5 - (int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)\n                        ) + 0xa8U >> 3)" ( (binary_expression "((int)puVar5 - (int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)\n                        ) + 0xa8U >> 3" (binary_expression "((int)puVar5 - (int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)\n                        ) + 0xa8U" (parenthesized_expression "((int)puVar5 - (int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)\n                        )" ( (binary_expression "(int)puVar5 - (int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)" ( (type_descriptor "int" primitive_type) ) (cast_expression "(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)(puVar5 + 2) & 0xfffffffffffffff8)" ( (binary_expression "(ulong)(puVar5 + 2) & 0xfffffffffffffff8" (call_expression "(ulong)(puVar5 + 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(puVar5 + 2)" ( (binary_expression "puVar5 + 2" identifier + number_literal) ))) & number_literal) ))))) )) + number_literal) >> number_literal) )))) ; (binary_expression "uVar11 != 0" identifier != number_literal) ; (assignment_expression "uVar11 = uVar11 - 1" identifier = (binary_expression "uVar11 - 1" identifier - number_literal)) ) (compound_statement "{\n    *puVar14 = 0;\n    puVar14 = puVar14 + (ulong)bVar18 * -2 + 1;\n  }" { (expression_statement "*puVar14 = 0;" (assignment_expression "*puVar14 = 0" (pointer_expression "*puVar14" * identifier) = number_literal) ;) (expression_statement "puVar14 = puVar14 + (ulong)bVar18 * -2 + 1;" (assignment_expression "puVar14 = puVar14 + (ulong)bVar18 * -2 + 1" identifier = (binary_expression "puVar14 + (ulong)bVar18 * -2 + 1" (binary_expression "puVar14 + (ulong)bVar18 * -2" identifier + (binary_expression "(ulong)bVar18 * -2" (cast_expression "(ulong)bVar18" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "*puVar5 = param_2;" (assignment_expression "*puVar5 = param_2" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "*(undefined4 *)(puVar5 + 0xf) = 0xffffffff;" (assignment_expression "*(undefined4 *)(puVar5 + 0xf) = 0xffffffff" (pointer_expression "*(undefined4 *)(puVar5 + 0xf)" * (cast_expression "(undefined4 *)(puVar5 + 0xf)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0xf)" ( (binary_expression "puVar5 + 0xf" identifier + number_literal) )))) = number_literal) ;) (expression_statement "lVar6 = FUN_0014bc1d(&local_ac,(long)param_3 * 9);" (assignment_expression "lVar6 = FUN_0014bc1d(&local_ac,(long)param_3 * 9)" identifier = (call_expression "FUN_0014bc1d(&local_ac,(long)param_3 * 9)" identifier (argument_list "(&local_ac,(long)param_3 * 9)" ( (pointer_expression "&local_ac" & identifier) , (binary_expression "(long)param_3 * 9" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal) )))) ;) (expression_statement "puVar5[4] = lVar6;" (assignment_expression "puVar5[4] = lVar6" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[5] = lVar6 + (long)param_3 * 8;" (assignment_expression "puVar5[5] = lVar6 + (long)param_3 * 8" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = (binary_expression "lVar6 + (long)param_3 * 8" identifier + (binary_expression "(long)param_3 * 8" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal))) ;) (expression_statement "uVar7 = FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 8),0xffffffff);" (assignment_expression "uVar7 = FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 8),0xffffffff)" identifier = (call_expression "FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 8),0xffffffff)" identifier (argument_list "(&local_ac,*(undefined8 *)(param_4 + 8),0xffffffff)" ( (pointer_expression "&local_ac" & identifier) , (pointer_expression "*(undefined8 *)(param_4 + 8)" * (cast_expression "(undefined8 *)(param_4 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 8)" ( (binary_expression "param_4 + 8" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "puVar5[1] = uVar7;" (assignment_expression "puVar5[1] = uVar7" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar7 = FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 0x10),0xffffffff);" (assignment_expression "uVar7 = FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 0x10),0xffffffff)" identifier = (call_expression "FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 0x10),0xffffffff)" identifier (argument_list "(&local_ac,*(undefined8 *)(param_4 + 0x10),0xffffffff)" ( (pointer_expression "&local_ac" & identifier) , (pointer_expression "*(undefined8 *)(param_4 + 0x10)" * (cast_expression "(undefined8 *)(param_4 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x10)" ( (binary_expression "param_4 + 0x10" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "iVar4 = local_ac;" (assignment_expression "iVar4 = local_ac" identifier = identifier) ;) (expression_statement "puVar5[2] = uVar7;" (assignment_expression "puVar5[2] = uVar7" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)(puVar5 + 0xb) = 1;" (assignment_expression "*(undefined4 *)(puVar5 + 0xb) = 1" (pointer_expression "*(undefined4 *)(puVar5 + 0xb)" * (cast_expression "(undefined4 *)(puVar5 + 0xb)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0xb)" ( (binary_expression "puVar5 + 0xb" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((long)puVar5 + 0x5c) = 0;" (assignment_expression "*(undefined4 *)((long)puVar5 + 0x5c) = 0" (pointer_expression "*(undefined4 *)((long)puVar5 + 0x5c)" * (cast_expression "(undefined4 *)((long)puVar5 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar5 + 0x5c)" ( (binary_expression "(long)puVar5 + 0x5c" (cast_expression "(long)puVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (if_statement "if (local_ac == 0) {\n    iVar2 = FUN_0012ad85(uVar7,&DAT_001f3ddb);\n    if (iVar2 == 0) {\n      uVar7 = FUN_001776d2("reserved fts5 table name: %s",uVar7);\n      *param_6 = uVar7;\n      local_ac = 1;\n      goto LAB_0017a364;\n    }\n    if (3 < param_3) {\n      lVar6 = 4;\n      local_c8 = -1;\nLAB_0017a558:\n      uVar7 = *(undefined8 *)(param_4 + -8 + lVar6 * 8);\n      local_a0 = (char *)0x0;\n      local_98 = (char *)0x0;\n      local_a8 = 0;\n      uVar8 = FUN_0014c842(&local_ac,uVar7,&local_a0,&local_a8);\n      pcVar17 = (char *)FUN_0013465f(uVar8);\n      iVar2 = iVar4;\n      if ((pcVar17 != (char *)0x0) && (*pcVar17 == '=')) {\n        if (local_a8 == 0) {\n          pcVar17 = pcVar17 + 1;\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = 1;\n          pcVar17 = (char *)0x0;\n        }\n      }\n      pcVar17 = (char *)FUN_0013465f(pcVar17);\n      if ((pcVar17 == (char *)0x0) ||\n         ((pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))))) {\n        iVar3 = local_ac;\n        if (local_ac == 0) {\n          uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);\n          *param_6 = uVar7;\n          local_ac = 1;\n          iVar3 = local_ac;\n        }\n      }\n      else {\n        iVar3 = local_ac;\n        local_a0 = pcVar16;\n        if (local_ac == 0) {\n          if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_0017a527;\n    }\nLAB_0017a368:\n    if (puVar5[0xd] == 0) {\n      local_ac = FUN_0017a177(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0);\n    }\n  }\n  else {\nLAB_0017a364:\n    if (local_ac == 0) goto LAB_0017a368;\n  }" if (parenthesized_expression "(local_ac == 0)" ( (binary_expression "local_ac == 0" identifier == number_literal) )) (compound_statement "{\n    iVar2 = FUN_0012ad85(uVar7,&DAT_001f3ddb);\n    if (iVar2 == 0) {\n      uVar7 = FUN_001776d2("reserved fts5 table name: %s",uVar7);\n      *param_6 = uVar7;\n      local_ac = 1;\n      goto LAB_0017a364;\n    }\n    if (3 < param_3) {\n      lVar6 = 4;\n      local_c8 = -1;\nLAB_0017a558:\n      uVar7 = *(undefined8 *)(param_4 + -8 + lVar6 * 8);\n      local_a0 = (char *)0x0;\n      local_98 = (char *)0x0;\n      local_a8 = 0;\n      uVar8 = FUN_0014c842(&local_ac,uVar7,&local_a0,&local_a8);\n      pcVar17 = (char *)FUN_0013465f(uVar8);\n      iVar2 = iVar4;\n      if ((pcVar17 != (char *)0x0) && (*pcVar17 == '=')) {\n        if (local_a8 == 0) {\n          pcVar17 = pcVar17 + 1;\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = 1;\n          pcVar17 = (char *)0x0;\n        }\n      }\n      pcVar17 = (char *)FUN_0013465f(pcVar17);\n      if ((pcVar17 == (char *)0x0) ||\n         ((pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))))) {\n        iVar3 = local_ac;\n        if (local_ac == 0) {\n          uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);\n          *param_6 = uVar7;\n          local_ac = 1;\n          iVar3 = local_ac;\n        }\n      }\n      else {\n        iVar3 = local_ac;\n        local_a0 = pcVar16;\n        if (local_ac == 0) {\n          if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_0017a527;\n    }\nLAB_0017a368:\n    if (puVar5[0xd] == 0) {\n      local_ac = FUN_0017a177(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0);\n    }\n  }" { (expression_statement "iVar2 = FUN_0012ad85(uVar7,&DAT_001f3ddb);" (assignment_expression "iVar2 = FUN_0012ad85(uVar7,&DAT_001f3ddb)" identifier = (call_expression "FUN_0012ad85(uVar7,&DAT_001f3ddb)" identifier (argument_list "(uVar7,&DAT_001f3ddb)" ( identifier , (pointer_expression "&DAT_001f3ddb" & identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n      uVar7 = FUN_001776d2("reserved fts5 table name: %s",uVar7);\n      *param_6 = uVar7;\n      local_ac = 1;\n      goto LAB_0017a364;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar7 = FUN_001776d2("reserved fts5 table name: %s",uVar7);\n      *param_6 = uVar7;\n      local_ac = 1;\n      goto LAB_0017a364;\n    }" { (expression_statement "uVar7 = FUN_001776d2("reserved fts5 table name: %s",uVar7);" (assignment_expression "uVar7 = FUN_001776d2("reserved fts5 table name: %s",uVar7)" identifier = (call_expression "FUN_001776d2("reserved fts5 table name: %s",uVar7)" identifier (argument_list "("reserved fts5 table name: %s",uVar7)" ( (string_literal ""reserved fts5 table name: %s"" " string_content ") , identifier )))) ;) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "local_ac = 1;" (assignment_expression "local_ac = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0017a364;" goto statement_identifier ;) })) (if_statement "if (3 < param_3) {\n      lVar6 = 4;\n      local_c8 = -1;\nLAB_0017a558:\n      uVar7 = *(undefined8 *)(param_4 + -8 + lVar6 * 8);\n      local_a0 = (char *)0x0;\n      local_98 = (char *)0x0;\n      local_a8 = 0;\n      uVar8 = FUN_0014c842(&local_ac,uVar7,&local_a0,&local_a8);\n      pcVar17 = (char *)FUN_0013465f(uVar8);\n      iVar2 = iVar4;\n      if ((pcVar17 != (char *)0x0) && (*pcVar17 == '=')) {\n        if (local_a8 == 0) {\n          pcVar17 = pcVar17 + 1;\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = 1;\n          pcVar17 = (char *)0x0;\n        }\n      }\n      pcVar17 = (char *)FUN_0013465f(pcVar17);\n      if ((pcVar17 == (char *)0x0) ||\n         ((pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))))) {\n        iVar3 = local_ac;\n        if (local_ac == 0) {\n          uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);\n          *param_6 = uVar7;\n          local_ac = 1;\n          iVar3 = local_ac;\n        }\n      }\n      else {\n        iVar3 = local_ac;\n        local_a0 = pcVar16;\n        if (local_ac == 0) {\n          if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_0017a527;\n    }" if (parenthesized_expression "(3 < param_3)" ( (binary_expression "3 < param_3" number_literal < identifier) )) (compound_statement "{\n      lVar6 = 4;\n      local_c8 = -1;\nLAB_0017a558:\n      uVar7 = *(undefined8 *)(param_4 + -8 + lVar6 * 8);\n      local_a0 = (char *)0x0;\n      local_98 = (char *)0x0;\n      local_a8 = 0;\n      uVar8 = FUN_0014c842(&local_ac,uVar7,&local_a0,&local_a8);\n      pcVar17 = (char *)FUN_0013465f(uVar8);\n      iVar2 = iVar4;\n      if ((pcVar17 != (char *)0x0) && (*pcVar17 == '=')) {\n        if (local_a8 == 0) {\n          pcVar17 = pcVar17 + 1;\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = 1;\n          pcVar17 = (char *)0x0;\n        }\n      }\n      pcVar17 = (char *)FUN_0013465f(pcVar17);\n      if ((pcVar17 == (char *)0x0) ||\n         ((pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))))) {\n        iVar3 = local_ac;\n        if (local_ac == 0) {\n          uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);\n          *param_6 = uVar7;\n          local_ac = 1;\n          iVar3 = local_ac;\n        }\n      }\n      else {\n        iVar3 = local_ac;\n        local_a0 = pcVar16;\n        if (local_ac == 0) {\n          if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_0017a527;\n    }" { (expression_statement "lVar6 = 4;" (assignment_expression "lVar6 = 4" identifier = number_literal) ;) (expression_statement "local_c8 = -1;" (assignment_expression "local_c8 = -1" identifier = number_literal) ;) (labeled_statement "LAB_0017a558:\n      uVar7 = *(undefined8 *)(param_4 + -8 + lVar6 * 8);" statement_identifier : (expression_statement "uVar7 = *(undefined8 *)(param_4 + -8 + lVar6 * 8);" (assignment_expression "uVar7 = *(undefined8 *)(param_4 + -8 + lVar6 * 8)" identifier = (pointer_expression "*(undefined8 *)(param_4 + -8 + lVar6 * 8)" * (cast_expression "(undefined8 *)(param_4 + -8 + lVar6 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + -8 + lVar6 * 8)" ( (binary_expression "param_4 + -8 + lVar6 * 8" (binary_expression "param_4 + -8" identifier + number_literal) + (binary_expression "lVar6 * 8" identifier * number_literal)) ))))) ;)) (expression_statement "local_a0 = (char *)0x0;" (assignment_expression "local_a0 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_98 = (char *)0x0;" (assignment_expression "local_98 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = FUN_0014c842(&local_ac,uVar7,&local_a0,&local_a8);" (assignment_expression "uVar8 = FUN_0014c842(&local_ac,uVar7,&local_a0,&local_a8)" identifier = (call_expression "FUN_0014c842(&local_ac,uVar7,&local_a0,&local_a8)" identifier (argument_list "(&local_ac,uVar7,&local_a0,&local_a8)" ( (pointer_expression "&local_ac" & identifier) , identifier , (pointer_expression "&local_a0" & identifier) , (pointer_expression "&local_a8" & identifier) )))) ;) (expression_statement "pcVar17 = (char *)FUN_0013465f(uVar8);" (assignment_expression "pcVar17 = (char *)FUN_0013465f(uVar8)" identifier = (cast_expression "(char *)FUN_0013465f(uVar8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0013465f(uVar8)" identifier (argument_list "(uVar8)" ( identifier ))))) ;) (expression_statement "iVar2 = iVar4;" (assignment_expression "iVar2 = iVar4" identifier = identifier) ;) (if_statement "if ((pcVar17 != (char *)0x0) && (*pcVar17 == '=')) {\n        if (local_a8 == 0) {\n          pcVar17 = pcVar17 + 1;\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = 1;\n          pcVar17 = (char *)0x0;\n        }\n      }" if (parenthesized_expression "((pcVar17 != (char *)0x0) && (*pcVar17 == '='))" ( (binary_expression "(pcVar17 != (char *)0x0) && (*pcVar17 == '=')" (parenthesized_expression "(pcVar17 != (char *)0x0)" ( (binary_expression "pcVar17 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*pcVar17 == '=')" ( (binary_expression "*pcVar17 == '='" (pointer_expression "*pcVar17" * identifier) == (char_literal "'='" ' character ')) ))) )) (compound_statement "{\n        if (local_a8 == 0) {\n          pcVar17 = pcVar17 + 1;\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = 1;\n          pcVar17 = (char *)0x0;\n        }\n      }" { (if_statement "if (local_a8 == 0) {\n          pcVar17 = pcVar17 + 1;\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = 1;\n          pcVar17 = (char *)0x0;\n        }" if (parenthesized_expression "(local_a8 == 0)" ( (binary_expression "local_a8 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar17 = pcVar17 + 1;\n          iVar2 = 1;\n        }" { (expression_statement "pcVar17 = pcVar17 + 1;" (assignment_expression "pcVar17 = pcVar17 + 1" identifier = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }) (else_clause "else {\n          iVar2 = 1;\n          pcVar17 = (char *)0x0;\n        }" else (compound_statement "{\n          iVar2 = 1;\n          pcVar17 = (char *)0x0;\n        }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (expression_statement "pcVar17 = (char *)0x0;" (assignment_expression "pcVar17 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) })) (expression_statement "pcVar17 = (char *)FUN_0013465f(pcVar17);" (assignment_expression "pcVar17 = (char *)FUN_0013465f(pcVar17)" identifier = (cast_expression "(char *)FUN_0013465f(pcVar17)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0013465f(pcVar17)" identifier (argument_list "(pcVar17)" ( identifier ))))) ;) (if_statement "if ((pcVar17 == (char *)0x0) ||\n         ((pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))))) {\n        iVar3 = local_ac;\n        if (local_ac == 0) {\n          uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);\n          *param_6 = uVar7;\n          local_ac = 1;\n          iVar3 = local_ac;\n        }\n      }\n      else {\n        iVar3 = local_ac;\n        local_a0 = pcVar16;\n        if (local_ac == 0) {\n          if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "((pcVar17 == (char *)0x0) ||\n         ((pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0'))))))" ( (binary_expression "(pcVar17 == (char *)0x0) ||\n         ((pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))))" (parenthesized_expression "(pcVar17 == (char *)0x0)" ( (binary_expression "pcVar17 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))))" ( (parenthesized_expression "(pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0'))))" ( (comma_expression "pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))" (assignment_expression "pcVar16 = local_a0" identifier = identifier) , (binary_expression "*pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))" (binary_expression "*pcVar17 != '\0'" (pointer_expression "*pcVar17" * identifier) != (char_literal "'\0'" ' escape_sequence ')) && (parenthesized_expression "((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))" ( (parenthesized_expression "(pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0'))" ( (comma_expression "pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')" (assignment_expression "pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4)" identifier = (cast_expression "(char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4)" identifier (argument_list "(&local_ac,pcVar17,&local_98,&local_a4)" ( (pointer_expression "&local_ac" & identifier) , identifier , (pointer_expression "&local_98" & identifier) , (pointer_expression "&local_a4" & identifier) ))))) , (binary_expression "pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')" (binary_expression "pcVar17 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(pcVar16 = local_a0, *pcVar17 != '\0')" ( (comma_expression "pcVar16 = local_a0, *pcVar17 != '\0'" (assignment_expression "pcVar16 = local_a0" identifier = identifier) , (binary_expression "*pcVar17 != '\0'" (pointer_expression "*pcVar17" * identifier) != (char_literal "'\0'" ' escape_sequence '))) )))) )) )))) )) ))) )) (compound_statement "{\n        iVar3 = local_ac;\n        if (local_ac == 0) {\n          uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);\n          *param_6 = uVar7;\n          local_ac = 1;\n          iVar3 = local_ac;\n        }\n      }" { (expression_statement "iVar3 = local_ac;" (assignment_expression "iVar3 = local_ac" identifier = identifier) ;) (if_statement "if (local_ac == 0) {\n          uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);\n          *param_6 = uVar7;\n          local_ac = 1;\n          iVar3 = local_ac;\n        }" if (parenthesized_expression "(local_ac == 0)" ( (binary_expression "local_ac == 0" identifier == number_literal) )) (compound_statement "{\n          uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);\n          *param_6 = uVar7;\n          local_ac = 1;\n          iVar3 = local_ac;\n        }" { (expression_statement "uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);" (assignment_expression "uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7)" identifier = (call_expression "FUN_001776d2("parse error in \"%s\"",uVar7)" identifier (argument_list "("parse error in \"%s\"",uVar7)" ( (string_literal ""parse error in \"%s\""" " string_content escape_sequence string_content escape_sequence ") , identifier )))) ;) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "local_ac = 1;" (assignment_expression "local_ac = 1" identifier = number_literal) ;) (expression_statement "iVar3 = local_ac;" (assignment_expression "iVar3 = local_ac" identifier = identifier) ;) })) }) (else_clause "else {\n        iVar3 = local_ac;\n        local_a0 = pcVar16;\n        if (local_ac == 0) {\n          if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" else (compound_statement "{\n        iVar3 = local_ac;\n        local_a0 = pcVar16;\n        if (local_ac == 0) {\n          if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" { (expression_statement "iVar3 = local_ac;" (assignment_expression "iVar3 = local_ac" identifier = identifier) ;) (expression_statement "local_a0 = pcVar16;" (assignment_expression "local_a0 = pcVar16" identifier = identifier) ;) (if_statement "if (local_ac == 0) {\n          if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "(local_ac == 0)" ( (binary_expression "local_ac == 0" identifier == number_literal) )) (compound_statement "{\n          if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" { (if_statement "if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }" { (expression_statement "iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);" (assignment_expression "iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb)" identifier = (call_expression "FUN_0012ad85(pcVar16,&DAT_001f3ddb)" identifier (argument_list "(pcVar16,&DAT_001f3ddb)" ( identifier , (pointer_expression "&DAT_001f3ddb" & identifier) )))) ;) (if_statement "if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }" if (parenthesized_expression "((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0))" ( (binary_expression "(iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)" ( (comma_expression "iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0" (assignment_expression "iVar3 = FUN_0012ad85(pcVar16,"rowid")" identifier = (call_expression "FUN_0012ad85(pcVar16,"rowid")" identifier (argument_list "(pcVar16,"rowid")" ( identifier , (string_literal ""rowid"" " string_content ") )))) , (comma_expression "pcVar17 = local_98, iVar3 == 0" (assignment_expression "pcVar17 = local_98" identifier = identifier) , (binary_expression "iVar3 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }" { (expression_statement "uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);" (assignment_expression "uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16)" identifier = (call_expression "FUN_001776d2("reserved fts5 column name: %s",pcVar16)" identifier (argument_list "("reserved fts5 column name: %s",pcVar16)" ( (string_literal ""reserved fts5 column name: %s"" " string_content ") , identifier )))) ;) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }) (else_clause "else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }" else (if_statement "if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }" if (parenthesized_expression "(local_98 != (char *)0x0)" ( (binary_expression "local_98 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }" { (expression_statement "iVar2 = FUN_0012ad85(local_98,"unindexed");" (assignment_expression "iVar2 = FUN_0012ad85(local_98,"unindexed")" identifier = (call_expression "FUN_0012ad85(local_98,"unindexed")" identifier (argument_list "(local_98,"unindexed")" ( identifier , (string_literal ""unindexed"" " string_content ") )))) ;) (if_statement "if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }" { (expression_statement "*(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;" (assignment_expression "*(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1" (pointer_expression "*(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3))" * (cast_expression "(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5[5] + (long)*(int *)(puVar5 + 3))" ( (binary_expression "puVar5[5] + (long)*(int *)(puVar5 + 3)" (subscript_expression "puVar5[5]" identifier [ number_literal ]) + (cast_expression "(long)*(int *)(puVar5 + 3)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "*(int *)(puVar5 + 3)" * (cast_expression "(int *)(puVar5 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 3)" ( (binary_expression "puVar5 + 3" identifier + number_literal) )))))) )))) = number_literal) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }" else (compound_statement "{\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }" { (expression_statement "uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);" (assignment_expression "uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17)" identifier = (call_expression "FUN_001776d2("unrecognized column option: %s",pcVar17)" identifier (argument_list "("unrecognized column option: %s",pcVar17)" ( (string_literal ""unrecognized column option: %s"" " string_content ") , identifier )))) ;) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }))) })))) (expression_statement "iVar3 = *(int *)(puVar5 + 3);" (assignment_expression "iVar3 = *(int *)(puVar5 + 3)" identifier = (pointer_expression "*(int *)(puVar5 + 3)" * (cast_expression "(int *)(puVar5 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 3)" ( (binary_expression "puVar5 + 3" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar5 + 3) = iVar3 + 1;" (assignment_expression "*(int *)(puVar5 + 3) = iVar3 + 1" (pointer_expression "*(int *)(puVar5 + 3)" * (cast_expression "(int *)(puVar5 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 3)" ( (binary_expression "puVar5 + 3" identifier + number_literal) )))) = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "*(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;" (assignment_expression "*(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16" (pointer_expression "*(char **)(puVar5[4] + (long)iVar3 * 8)" * (cast_expression "(char **)(puVar5[4] + (long)iVar3 * 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5[4] + (long)iVar3 * 8)" ( (binary_expression "puVar5[4] + (long)iVar3 * 8" (subscript_expression "puVar5[4]" identifier [ number_literal ]) + (binary_expression "(long)iVar3 * 8" (cast_expression "(long)iVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) )))) = identifier) ;) (expression_statement "local_a0 = (char *)0x0;" (assignment_expression "local_a0 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar3 = iVar2;" (assignment_expression "iVar3 = iVar2" identifier = identifier) ;) }) (else_clause "else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }" else (compound_statement "{\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }" { (expression_statement "pcVar17 = local_98;" (assignment_expression "pcVar17 = local_98" identifier = identifier) ;) (if_statement "if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }" if (parenthesized_expression "(local_98 == (char *)0x0)" ( (binary_expression "local_98 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pcVar17 = "";\n            }" { (expression_statement "pcVar17 = "";" (assignment_expression "pcVar17 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "local_a4 = 0;" (assignment_expression "local_a4 = 0" identifier = number_literal) ;) (expression_statement "uVar11 = 0xffffffffffffffff;" (assignment_expression "uVar11 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar15 = pcVar16;" (assignment_expression "pcVar15 = pcVar16" identifier = identifier) ;) (do_statement "do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');" do (compound_statement "{\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            }" { (if_statement "if (uVar11 == 0) break;" if (parenthesized_expression "(uVar11 == 0)" ( (binary_expression "uVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar11 = uVar11 - 1;" (assignment_expression "uVar11 = uVar11 - 1" identifier = (binary_expression "uVar11 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar15;" (assignment_expression "cVar1 = *pcVar15" identifier = (pointer_expression "*pcVar15" * identifier)) ;) (expression_statement "pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;" (assignment_expression "pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1" identifier = (binary_expression "pcVar15 + (ulong)bVar18 * -2 + 1" (binary_expression "pcVar15 + (ulong)bVar18 * -2" identifier + (binary_expression "(ulong)bVar18 * -2" (cast_expression "(ulong)bVar18" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "uVar11 = ~uVar11 - 1;" (assignment_expression "uVar11 = ~uVar11 - 1" identifier = (binary_expression "~uVar11 - 1" (unary_expression "~uVar11" ~ identifier) - number_literal)) ;) (expression_statement "iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);" (assignment_expression "iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff)" identifier = (call_expression "FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff)" identifier (argument_list "("prefix",pcVar16,uVar11 & 0xffffffff)" ( (string_literal ""prefix"" " string_content ") , identifier , (binary_expression "uVar11 & 0xffffffff" identifier & number_literal) )))) ;) (if_statement "if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }" { (if_statement "if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }" if (parenthesized_expression "(puVar5[7] != 0)" ( (binary_expression "puVar5[7] != 0" (subscript_expression "puVar5[7]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }" { (labeled_statement "LAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );" statement_identifier : (do_statement "do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );" do (compound_statement "{\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                }" { (expression_statement "cVar1 = *pcVar17;" (assignment_expression "cVar1 = *pcVar17" identifier = (pointer_expression "*pcVar17" * identifier)) ;) (while_statement "while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }" while (parenthesized_expression "(cVar1 == ' ')" ( (binary_expression "cVar1 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }" { (expression_statement "pcVar17 = pcVar17 + 1;" (assignment_expression "pcVar17 = pcVar17 + 1" identifier = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar17;" (assignment_expression "cVar1 = *pcVar17" identifier = (pointer_expression "*pcVar17" * identifier)) ;) })) (if_statement "if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }" if (parenthesized_expression "((cVar1 == ',') && (iVar2 == 0))" ( (binary_expression "(cVar1 == ',') && (iVar2 == 0)" (parenthesized_expression "(cVar1 == ',')" ( (binary_expression "cVar1 == ','" identifier == (char_literal "','" ' character ')) )) && (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) ))) )) (compound_statement "{\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }" { (expression_statement "cVar1 = pcVar17[1];" (assignment_expression "cVar1 = pcVar17[1]" identifier = (subscript_expression "pcVar17[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar17 = pcVar17 + 1;" (assignment_expression "pcVar17 = pcVar17 + 1" identifier = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;) (while_statement "while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }" while (parenthesized_expression "(cVar1 == ' ')" ( (binary_expression "cVar1 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }" { (expression_statement "pcVar17 = pcVar17 + 1;" (assignment_expression "pcVar17 = pcVar17 + 1" identifier = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar17;" (assignment_expression "cVar1 = *pcVar17" identifier = (pointer_expression "*pcVar17" * identifier)) ;) })) }) (else_clause "else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }" else (compound_statement "{\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }" { (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" identifier = identifier) ;) (if_statement "if (cVar1 == '\0') goto LAB_0017a527;" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0017a527;" goto statement_identifier ;)) }))) (expression_statement "cVar1 = *pcVar17;" (assignment_expression "cVar1 = *pcVar17" identifier = (pointer_expression "*pcVar17" * identifier)) ;) (if_statement "if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }" if (parenthesized_expression "(9 < (byte)(cVar1 - 0x30U))" ( (binary_expression "9 < (byte)(cVar1 - 0x30U)" number_literal < (call_expression "(byte)(cVar1 - 0x30U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar1 - 0x30U)" ( (binary_expression "cVar1 - 0x30U" identifier - number_literal) )))) )) (compound_statement "{\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }" { (expression_statement "uVar7 = FUN_001776d2("malformed prefix=... directive");" (assignment_expression "uVar7 = FUN_001776d2("malformed prefix=... directive")" identifier = (call_expression "FUN_001776d2("malformed prefix=... directive")" identifier (argument_list "("malformed prefix=... directive")" ( (string_literal ""malformed prefix=... directive"" " string_content ") )))) ;) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "local_a4 = 1;" (assignment_expression "local_a4 = 1" identifier = number_literal) ;) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" identifier = identifier) ;) (goto_statement "goto LAB_0017a527;" goto statement_identifier ;) })) (if_statement "if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }" if (parenthesized_expression "(*(int *)(puVar5 + 6) == 0x1f)" ( (binary_expression "*(int *)(puVar5 + 6) == 0x1f" (pointer_expression "*(int *)(puVar5 + 6)" * (cast_expression "(int *)(puVar5 + 6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 6)" ( (binary_expression "puVar5 + 6" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }" { (expression_statement "uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);" (assignment_expression "uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f)" identifier = (call_expression "FUN_001776d2("too many prefix indexes (max %d)",0x1f)" identifier (argument_list "("too many prefix indexes (max %d)",0x1f)" ( (string_literal ""too many prefix indexes (max %d)"" " string_content ") , number_literal )))) ;) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "local_a4 = 1;" (assignment_expression "local_a4 = 1" identifier = number_literal) ;) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" identifier = identifier) ;) (goto_statement "goto LAB_0017a527;" goto statement_identifier ;) })) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (do_statement "do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);" do (compound_statement "{\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  }" { (expression_statement "iVar2 = cVar1 + -0x30 + iVar2 * 10;" (assignment_expression "iVar2 = cVar1 + -0x30 + iVar2 * 10" identifier = (binary_expression "cVar1 + -0x30 + iVar2 * 10" (binary_expression "cVar1 + -0x30" identifier + number_literal) + (binary_expression "iVar2 * 10" identifier * number_literal))) ;) (expression_statement "pcVar17 = pcVar17 + 1;" (assignment_expression "pcVar17 = pcVar17 + 1" identifier = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar17;" (assignment_expression "cVar1 = *pcVar17" identifier = (pointer_expression "*pcVar17" * identifier)) ;) (if_statement "if (9 < (byte)(cVar1 - 0x30U)) break;" if (parenthesized_expression "(9 < (byte)(cVar1 - 0x30U))" ( (binary_expression "9 < (byte)(cVar1 - 0x30U)" number_literal < (call_expression "(byte)(cVar1 - 0x30U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar1 - 0x30U)" ( (binary_expression "cVar1 - 0x30U" identifier - number_literal) )))) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "(iVar2 < 1000)" ( (binary_expression "iVar2 < 1000" identifier < number_literal) )) ;) (if_statement "if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;" if (parenthesized_expression "(0x3e6 < iVar2 - 1U)" ( (binary_expression "0x3e6 < iVar2 - 1U" number_literal < (binary_expression "iVar2 - 1U" identifier - number_literal)) )) (goto_statement "goto LAB_0017a6fb;" goto statement_identifier ;)) (expression_statement "*(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;" (assignment_expression "*(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2" (pointer_expression "*(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4)" * (cast_expression "(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4)" ( (binary_expression "puVar5[7] + (long)*(int *)(puVar5 + 6) * 4" (subscript_expression "puVar5[7]" identifier [ number_literal ]) + (binary_expression "(long)*(int *)(puVar5 + 6) * 4" (cast_expression "(long)*(int *)(puVar5 + 6)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "*(int *)(puVar5 + 6)" * (cast_expression "(int *)(puVar5 + 6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 6)" ( (binary_expression "puVar5 + 6" identifier + number_literal) ))))) * number_literal)) )))) = identifier) ;) (expression_statement "*(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;" (assignment_expression "*(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1" (pointer_expression "*(int *)(puVar5 + 6)" * (cast_expression "(int *)(puVar5 + 6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 6)" ( (binary_expression "puVar5 + 6" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar5 + 6) + 1" (pointer_expression "*(int *)(puVar5 + 6)" * (cast_expression "(int *)(puVar5 + 6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 6)" ( (binary_expression "puVar5 + 6" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) })) (expression_statement "uVar7 = FUN_0014bc1d(&local_a4,0x7c);" (assignment_expression "uVar7 = FUN_0014bc1d(&local_a4,0x7c)" identifier = (call_expression "FUN_0014bc1d(&local_a4,0x7c)" identifier (argument_list "(&local_a4,0x7c)" ( (pointer_expression "&local_a4" & identifier) , number_literal )))) ;) (expression_statement "puVar5[7] = uVar7;" (assignment_expression "puVar5[7] = uVar7" (subscript_expression "puVar5[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" identifier = identifier) ;) (if_statement "if (local_a4 == 0) goto LAB_0017a68f;" if (parenthesized_expression "(local_a4 == 0)" ( (binary_expression "local_a4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0017a68f;" goto statement_identifier ;)) }) (else_clause "else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }" else (compound_statement "{\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }" { (expression_statement "iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);" (assignment_expression "iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff)" identifier = (call_expression "FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff)" identifier (argument_list "("tokenize",pcVar16,uVar11 & 0xffffffff)" ( (string_literal ""tokenize"" " string_content ") , identifier , (binary_expression "uVar11 & 0xffffffff" identifier & number_literal) )))) ;) (if_statement "if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }" { (expression_statement "uVar11 = 0xffffffffffffffff;" (assignment_expression "uVar11 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar16 = pcVar17;" (assignment_expression "pcVar16 = pcVar17" identifier = identifier) ;) (do_statement "do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');" do (compound_statement "{\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                }" { (if_statement "if (uVar11 == 0) break;" if (parenthesized_expression "(uVar11 == 0)" ( (binary_expression "uVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar11 = uVar11 - 1;" (assignment_expression "uVar11 = uVar11 - 1" identifier = (binary_expression "uVar11 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar16;" (assignment_expression "cVar1 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) (expression_statement "pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;" (assignment_expression "pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1" identifier = (binary_expression "pcVar16 + (ulong)bVar18 * -2 + 1" (binary_expression "pcVar16 + (ulong)bVar18 * -2" identifier + (binary_expression "(ulong)bVar18 * -2" (cast_expression "(ulong)bVar18" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);" (assignment_expression "lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8)" identifier = (call_expression "FUN_0014bc1d(&local_a4,~uVar11 * 8)" identifier (argument_list "(&local_a4,~uVar11 * 8)" ( (pointer_expression "&local_a4" & identifier) , (binary_expression "~uVar11 * 8" (unary_expression "~uVar11" ~ identifier) * number_literal) )))) ;) (expression_statement "pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);" (assignment_expression "pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2)" identifier = (cast_expression "(void *)FUN_0014bc1d(&local_a4,~uVar11 * 2)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0014bc1d(&local_a4,~uVar11 * 2)" identifier (argument_list "(&local_a4,~uVar11 * 2)" ( (pointer_expression "&local_a4" & identifier) , (binary_expression "~uVar11 * 2" (unary_expression "~uVar11" ~ identifier) * number_literal) ))))) ;) (if_statement "if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }" if (parenthesized_expression "((lVar12 != 0) && (pvVar9 != (void *)0x0))" ( (binary_expression "(lVar12 != 0) && (pvVar9 != (void *)0x0)" (parenthesized_expression "(lVar12 != 0)" ( (binary_expression "lVar12 != 0" identifier != number_literal) )) && (parenthesized_expression "(pvVar9 != (void *)0x0)" ( (binary_expression "pvVar9 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }" { (if_statement "if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }" if (parenthesized_expression "(puVar5[0xd] == 0)" ( (binary_expression "puVar5[0xd] == 0" (subscript_expression "puVar5[0xd]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }" if (parenthesized_expression "(*pcVar17 != '\0')" ( (binary_expression "*pcVar17 != '\0'" (pointer_expression "*pcVar17" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "__dest = pvVar9;" (assignment_expression "__dest = pvVar9" identifier = identifier) ;) (do_statement "do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');" do (compound_statement "{\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      }" { (expression_statement "pcVar17 = (char *)FUN_0013465f(pcVar17);" (assignment_expression "pcVar17 = (char *)FUN_0013465f(pcVar17)" identifier = (cast_expression "(char *)FUN_0013465f(pcVar17)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0013465f(pcVar17)" identifier (argument_list "(pcVar17)" ( identifier ))))) ;) (if_statement "if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }" if (parenthesized_expression "(*pcVar17 == '\'')" ( (binary_expression "*pcVar17 == '\''" (pointer_expression "*pcVar17" * identifier) == (char_literal "'\''" ' escape_sequence ')) )) (compound_statement "{\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }" { (expression_statement "lVar10 = FUN_0013e006(pcVar17);" (assignment_expression "lVar10 = FUN_0013e006(pcVar17)" identifier = (call_expression "FUN_0013e006(pcVar17)" identifier (argument_list "(pcVar17)" ( identifier )))) ;) }) (else_clause "else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }" else (compound_statement "{\n                          lVar10 = FUN_00134676(pcVar17);\n                        }" { (expression_statement "lVar10 = FUN_00134676(pcVar17);" (assignment_expression "lVar10 = FUN_00134676(pcVar17)" identifier = (call_expression "FUN_00134676(pcVar17)" identifier (argument_list "(pcVar17)" ( identifier )))) ;) }))) (if_statement "if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }" { (labeled_statement "LAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");" statement_identifier : (expression_statement "uVar7 = FUN_001776d2("parse error in tokenize directive");" (assignment_expression "uVar7 = FUN_001776d2("parse error in tokenize directive")" identifier = (call_expression "FUN_001776d2("parse error in tokenize directive")" identifier (argument_list "("parse error in tokenize directive")" ( (string_literal ""parse error in tokenize directive"" " string_content ") )))) ;)) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "local_a4 = 1;" (assignment_expression "local_a4 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0017a842;" goto statement_identifier ;) })) (expression_statement "memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);" (call_expression "memcpy(__dest,pcVar17,lVar10 - (long)pcVar17)" identifier (argument_list "(__dest,pcVar17,lVar10 - (long)pcVar17)" ( identifier , identifier , (binary_expression "lVar10 - (long)pcVar17" identifier - (cast_expression "(long)pcVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ;) (expression_statement "*(void **)(lVar12 + uVar11 * 8) = __dest;" (assignment_expression "*(void **)(lVar12 + uVar11 * 8) = __dest" (pointer_expression "*(void **)(lVar12 + uVar11 * 8)" * (cast_expression "(void **)(lVar12 + uVar11 * 8)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar12 + uVar11 * 8)" ( (binary_expression "lVar12 + uVar11 * 8" identifier + (binary_expression "uVar11 * 8" identifier * number_literal)) )))) = identifier) ;) (expression_statement "FUN_00134700(__dest);" (call_expression "FUN_00134700(__dest)" identifier (argument_list "(__dest)" ( identifier ))) ;) (expression_statement "__dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);" (assignment_expression "__dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U)" identifier = (cast_expression "(void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__dest + (lVar10 - (long)pcVar17) + 1U)" ( (binary_expression "(long)__dest + (lVar10 - (long)pcVar17) + 1U" (binary_expression "(long)__dest + (lVar10 - (long)pcVar17)" (cast_expression "(long)__dest" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(lVar10 - (long)pcVar17)" ( (binary_expression "lVar10 - (long)pcVar17" identifier - (cast_expression "(long)pcVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) + number_literal) )))) ;) (expression_statement "pcVar17 = (char *)FUN_0013465f(lVar10);" (assignment_expression "pcVar17 = (char *)FUN_0013465f(lVar10)" identifier = (cast_expression "(char *)FUN_0013465f(lVar10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0013465f(lVar10)" identifier (argument_list "(lVar10)" ( identifier ))))) ;) (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (if_statement "if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;" if (parenthesized_expression "(pcVar17 == (char *)0x0)" ( (binary_expression "pcVar17 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0017a8ef;" goto statement_identifier ;)) }) while (parenthesized_expression "(*pcVar17 != '\0')" ( (binary_expression "*pcVar17 != '\0'" (pointer_expression "*pcVar17" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) ;) })) (expression_statement "local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);" (assignment_expression "local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6)" identifier = (call_expression "FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6)" identifier (argument_list "(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6)" ( identifier , identifier , (binary_expression "uVar11 & 0xffffffff" identifier & number_literal) , (binary_expression "puVar5 + 0xd" identifier + number_literal) , (binary_expression "puVar5 + 0xe" identifier + number_literal) , identifier )))) ;) }) (else_clause "else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }" else (compound_statement "{\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }" { (expression_statement "uVar7 = FUN_001776d2("multiple tokenize=... directives");" (assignment_expression "uVar7 = FUN_001776d2("multiple tokenize=... directives")" identifier = (call_expression "FUN_001776d2("multiple tokenize=... directives")" identifier (argument_list "("multiple tokenize=... directives")" ( (string_literal ""multiple tokenize=... directives"" " string_content ") )))) ;) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "local_a4 = 1;" (assignment_expression "local_a4 = 1" identifier = number_literal) ;) }))) })) (labeled_statement "LAB_0017a842:\n                FUN_00141303(lVar12);" statement_identifier : (expression_statement "FUN_00141303(lVar12);" (call_expression "FUN_00141303(lVar12)" identifier (argument_list "(lVar12)" ( identifier ))) ;)) (expression_statement "FUN_00141303(pvVar9);" (call_expression "FUN_00141303(pvVar9)" identifier (argument_list "(pvVar9)" ( identifier ))) ;) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" identifier = identifier) ;) }) (else_clause "else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }" else (compound_statement "{\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }" { (expression_statement "iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);" (assignment_expression "iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff)" identifier = (call_expression "FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff)" identifier (argument_list "("content",pcVar16,uVar11 & 0xffffffff)" ( (string_literal ""content"" " string_content ") , identifier , (binary_expression "uVar11 & 0xffffffff" identifier & number_literal) )))) ;) (if_statement "if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }" { (if_statement "if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }" if (parenthesized_expression "(*(int *)(puVar5 + 8) == 0)" ( (binary_expression "*(int *)(puVar5 + 8) == 0" (pointer_expression "*(int *)(puVar5 + 8)" * (cast_expression "(int *)(puVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 8)" ( (binary_expression "puVar5 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }" { (if_statement "if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }" if (parenthesized_expression "(*pcVar17 == '\0')" ( (binary_expression "*pcVar17 == '\0'" (pointer_expression "*pcVar17" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }" { (expression_statement "*(undefined4 *)(puVar5 + 8) = 1;" (assignment_expression "*(undefined4 *)(puVar5 + 8) = 1" (pointer_expression "*(undefined4 *)(puVar5 + 8)" * (cast_expression "(undefined4 *)(puVar5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 8)" ( (binary_expression "puVar5 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" identifier = identifier) ;) }) (else_clause "else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }" else (compound_statement "{\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }" { (expression_statement "*(undefined4 *)(puVar5 + 8) = 2;" (assignment_expression "*(undefined4 *)(puVar5 + 8) = 2" (pointer_expression "*(undefined4 *)(puVar5 + 8)" * (cast_expression "(undefined4 *)(puVar5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 8)" ( (binary_expression "puVar5 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);" (assignment_expression "uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17)" identifier = (call_expression "FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17)" identifier (argument_list "(&local_a4,"%Q.%Q",puVar5[1],pcVar17)" ( (pointer_expression "&local_a4" & identifier) , (string_literal ""%Q.%Q"" " string_content ") , (subscript_expression "puVar5[1]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "puVar5[9] = uVar7;" (assignment_expression "puVar5[9] = uVar7" (subscript_expression "puVar5[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" identifier = identifier) ;) }))) }) (else_clause "else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }" else (compound_statement "{\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }" { (expression_statement "uVar7 = FUN_001776d2("multiple content=... directives");" (assignment_expression "uVar7 = FUN_001776d2("multiple content=... directives")" identifier = (call_expression "FUN_001776d2("multiple content=... directives")" identifier (argument_list "("multiple content=... directives")" ( (string_literal ""multiple content=... directives"" " string_content ") )))) ;) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "local_a4 = 1;" (assignment_expression "local_a4 = 1" identifier = number_literal) ;) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" identifier = identifier) ;) }))) }) (else_clause "else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }" else (compound_statement "{\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }" { (expression_statement "iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);" (assignment_expression "iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff)" identifier = (call_expression "FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff)" identifier (argument_list "("content_rowid",pcVar16,uVar11 & 0xffffffff)" ( (string_literal ""content_rowid"" " string_content ") , identifier , (binary_expression "uVar11 & 0xffffffff" identifier & number_literal) )))) ;) (if_statement "if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }" { (if_statement "if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }" if (parenthesized_expression "(puVar5[10] == 0)" ( (binary_expression "puVar5[10] == 0" (subscript_expression "puVar5[10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }" { (expression_statement "uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);" (assignment_expression "uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff)" identifier = (call_expression "FUN_0014b209(&local_a4,pcVar17,0xffffffff)" identifier (argument_list "(&local_a4,pcVar17,0xffffffff)" ( (pointer_expression "&local_a4" & identifier) , identifier , number_literal )))) ;) (expression_statement "puVar5[10] = uVar7;" (assignment_expression "puVar5[10] = uVar7" (subscript_expression "puVar5[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" identifier = identifier) ;) }) (else_clause "else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }" else (compound_statement "{\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }" { (expression_statement "uVar7 = FUN_001776d2("multiple content_rowid=... directives");" (assignment_expression "uVar7 = FUN_001776d2("multiple content_rowid=... directives")" identifier = (call_expression "FUN_001776d2("multiple content_rowid=... directives")" identifier (argument_list "("multiple content_rowid=... directives")" ( (string_literal ""multiple content_rowid=... directives"" " string_content ") )))) ;) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "local_a4 = 1;" (assignment_expression "local_a4 = 1" identifier = number_literal) ;) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" identifier = identifier) ;) }))) }) (else_clause "else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }" else (compound_statement "{\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }" { (expression_statement "iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);" (assignment_expression "iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff)" identifier = (call_expression "FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff)" identifier (argument_list "("columnsize",pcVar16,uVar11 & 0xffffffff)" ( (string_literal ""columnsize"" " string_content ") , identifier , (binary_expression "uVar11 & 0xffffffff" identifier & number_literal) )))) ;) (if_statement "if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }" { (if_statement "if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }" if (parenthesized_expression "(((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0'))" ( (binary_expression "((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')" (parenthesized_expression "((byte)(*pcVar17 - 0x30U) < 2)" ( (binary_expression "(byte)(*pcVar17 - 0x30U) < 2" (call_expression "(byte)(*pcVar17 - 0x30U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*pcVar17 - 0x30U)" ( (binary_expression "*pcVar17 - 0x30U" (pointer_expression "*pcVar17" * identifier) - number_literal) ))) < number_literal) )) && (parenthesized_expression "(pcVar17[1] == '\0')" ( (binary_expression "pcVar17[1] == '\0'" (subscript_expression "pcVar17[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }" { (expression_statement "*(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');" (assignment_expression "*(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1')" (pointer_expression "*(uint *)(puVar5 + 0xb)" * (cast_expression "(uint *)(puVar5 + 0xb)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0xb)" ( (binary_expression "puVar5 + 0xb" identifier + number_literal) )))) = (call_expression "(uint)(*pcVar17 == '1')" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*pcVar17 == '1')" ( (binary_expression "*pcVar17 == '1'" (pointer_expression "*pcVar17" * identifier) == (char_literal "'1'" ' character ')) )))) ;) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" identifier = identifier) ;) }) (else_clause "else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }" else (compound_statement "{\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }" { (expression_statement "uVar7 = FUN_001776d2("malformed columnsize=... directive");" (assignment_expression "uVar7 = FUN_001776d2("malformed columnsize=... directive")" identifier = (call_expression "FUN_001776d2("malformed columnsize=... directive")" identifier (argument_list "("malformed columnsize=... directive")" ( (string_literal ""malformed columnsize=... directive"" " string_content ") )))) ;) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "local_a4 = 1;" (assignment_expression "local_a4 = 1" identifier = number_literal) ;) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" identifier = identifier) ;) }))) }) (else_clause "else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }" else (compound_statement "{\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }" { (expression_statement "iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);" (assignment_expression "iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff)" identifier = (call_expression "FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff)" identifier (argument_list "("detail",pcVar16,uVar11 & 0xffffffff)" ( (string_literal ""detail"" " string_content ") , identifier , (binary_expression "uVar11 & 0xffffffff" identifier & number_literal) )))) ;) (if_statement "if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }" { (expression_statement "local_88 = "none";" (assignment_expression "local_88 = "none"" identifier = (string_literal ""none"" " string_content ")) ;) (expression_statement "local_80[0] = 1;" (assignment_expression "local_80[0] = 1" (subscript_expression "local_80[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_78 = "full";" (assignment_expression "local_78 = "full"" identifier = (string_literal ""full"" " string_content ")) ;) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (expression_statement "local_68 = "columns";" (assignment_expression "local_68 = "columns"" identifier = (string_literal ""columns"" " string_content ")) ;) (expression_statement "local_60 = 2;" (assignment_expression "local_60 = 2" identifier = number_literal) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "lVar12 = -1;" (assignment_expression "lVar12 = -1" identifier = number_literal) ;) (expression_statement "pcVar16 = pcVar17;" (assignment_expression "pcVar16 = pcVar17" identifier = identifier) ;) (do_statement "do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');" do (compound_statement "{\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        }" { (if_statement "if (lVar12 == 0) break;" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar12 = lVar12 + -1;" (assignment_expression "lVar12 = lVar12 + -1" identifier = (binary_expression "lVar12 + -1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar16;" (assignment_expression "cVar1 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) (expression_statement "pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;" (assignment_expression "pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1" identifier = (binary_expression "pcVar16 + (ulong)bVar18 * -2 + 1" (binary_expression "pcVar16 + (ulong)bVar18 * -2" identifier + (binary_expression "(ulong)bVar18 * -2" (cast_expression "(ulong)bVar18" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "pcVar16 = "none";" (assignment_expression "pcVar16 = "none"" identifier = (string_literal ""none"" " string_content ")) ;) (expression_statement "ppcVar13 = &local_78;" (assignment_expression "ppcVar13 = &local_78" identifier = (pointer_expression "&local_78" & identifier)) ;) (expression_statement "iVar2 = local_c8;" (assignment_expression "iVar2 = local_c8" identifier = identifier) ;) (do_statement "do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);" do (compound_statement "{\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        }" { (expression_statement "iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);" (assignment_expression "iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1)" identifier = (call_expression "FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1)" identifier (argument_list "(pcVar16,pcVar17,~(uint)lVar12 - 1)" ( identifier , identifier , (binary_expression "~(uint)lVar12 - 1" (unary_expression "~(uint)lVar12" ~ (cast_expression "(uint)lVar12" ( (type_descriptor "uint" type_identifier) ) identifier)) - number_literal) )))) ;) (if_statement "if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }" { (if_statement "if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }" if (parenthesized_expression "(-1 < iVar2)" ( (binary_expression "-1 < iVar2" number_literal < identifier) )) (compound_statement "{\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }" { (expression_statement "local_a4 = 1;" (assignment_expression "local_a4 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0017ab15;" goto statement_identifier ;) })) (expression_statement "iVar2 = *(int *)(ppcVar13 + -1);" (assignment_expression "iVar2 = *(int *)(ppcVar13 + -1)" identifier = (pointer_expression "*(int *)(ppcVar13 + -1)" * (cast_expression "(int *)(ppcVar13 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppcVar13 + -1)" ( (binary_expression "ppcVar13 + -1" identifier + number_literal) ))))) ;) })) (expression_statement "pcVar16 = *ppcVar13;" (assignment_expression "pcVar16 = *ppcVar13" identifier = (pointer_expression "*ppcVar13" * identifier)) ;) (expression_statement "ppcVar13 = ppcVar13 + 2;" (assignment_expression "ppcVar13 = ppcVar13 + 2" identifier = (binary_expression "ppcVar13 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(pcVar16 != (char *)0x0)" ( (binary_expression "pcVar16 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "*(int *)((long)puVar5 + 0x5c) = iVar2;" (assignment_expression "*(int *)((long)puVar5 + 0x5c) = iVar2" (pointer_expression "*(int *)((long)puVar5 + 0x5c)" * (cast_expression "(int *)((long)puVar5 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar5 + 0x5c)" ( (binary_expression "(long)puVar5 + 0x5c" (cast_expression "(long)puVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_a4 = -(iVar2 >> 0x1f);" (assignment_expression "local_a4 = -(iVar2 >> 0x1f)" identifier = (unary_expression "-(iVar2 >> 0x1f)" - (parenthesized_expression "(iVar2 >> 0x1f)" ( (binary_expression "iVar2 >> 0x1f" identifier >> number_literal) )))) ;) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" identifier = identifier) ;) (if_statement "if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }" if (parenthesized_expression "(local_a4 != 0)" ( (binary_expression "local_a4 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }" { (labeled_statement "LAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");" statement_identifier : (expression_statement "uVar7 = FUN_001776d2("malformed detail=... directive");" (assignment_expression "uVar7 = FUN_001776d2("malformed detail=... directive")" identifier = (call_expression "FUN_001776d2("malformed detail=... directive")" identifier (argument_list "("malformed detail=... directive")" ( (string_literal ""malformed detail=... directive"" " string_content ") )))) ;)) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" identifier = identifier) ;) })) }) (else_clause "else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }" else (compound_statement "{\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }" { (expression_statement "uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);" (assignment_expression "uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16)" identifier = (call_expression "FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16)" identifier (argument_list "("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16)" ( (string_literal ""unrecognized option: \"%.*s\""" " string_content escape_sequence string_content escape_sequence ") , (binary_expression "uVar11 & 0xffffffff" identifier & number_literal) , identifier )))) ;) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "iVar3 = iVar2;" (assignment_expression "iVar3 = iVar2" identifier = identifier) ;) }))) }))) }))) }))) }))) }))) }))) })) }))) (goto_statement "goto LAB_0017a527;" goto statement_identifier ;) })) (labeled_statement "LAB_0017a368:\n    if (puVar5[0xd] == 0) {\n      local_ac = FUN_0017a177(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0);\n    }" statement_identifier : (if_statement "if (puVar5[0xd] == 0) {\n      local_ac = FUN_0017a177(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0);\n    }" if (parenthesized_expression "(puVar5[0xd] == 0)" ( (binary_expression "puVar5[0xd] == 0" (subscript_expression "puVar5[0xd]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      local_ac = FUN_0017a177(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0);\n    }" { (expression_statement "local_ac = FUN_0017a177(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0);" (assignment_expression "local_ac = FUN_0017a177(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0)" identifier = (call_expression "FUN_0017a177(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0)" identifier (argument_list "(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0)" ( identifier , number_literal , number_literal , (binary_expression "puVar5 + 0xd" identifier + number_literal) , (binary_expression "puVar5 + 0xe" identifier + number_literal) , number_literal )))) ;) }))) }) (else_clause "else {\nLAB_0017a364:\n    if (local_ac == 0) goto LAB_0017a368;\n  }" else (compound_statement "{\nLAB_0017a364:\n    if (local_ac == 0) goto LAB_0017a368;\n  }" { (labeled_statement "LAB_0017a364:\n    if (local_ac == 0) goto LAB_0017a368;" statement_identifier : (if_statement "if (local_ac == 0) goto LAB_0017a368;" if (parenthesized_expression "(local_ac == 0)" ( (binary_expression "local_ac == 0" identifier == number_literal) )) (goto_statement "goto LAB_0017a368;" goto statement_identifier ;))) }))) (if_statement "if (local_ac == 0) {\n    if (puVar5[9] == 0) {\n      if (*(int *)(puVar5 + 8) == 0) {\n        pcVar17 = "content";\n      }\n      else {\n        pcVar17 = "docsize";\n        if (*(int *)(puVar5 + 0xb) == 0) goto LAB_0017a389;\n      }\n      uVar7 = FUN_00177220(&local_ac,"%Q.\'%q_%s\'",puVar5[1],puVar5[2],pcVar17);\n      puVar5[9] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }\nLAB_0017a389:\n    if (puVar5[10] == 0) {\n      uVar7 = FUN_0014b209(&local_ac,"rowid",0xffffffff);\n      puVar5[10] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }\n    local_a0 = (char *)((ulong)local_a0 & 0xffffffff00000000);\n    local_98 = (char *)0x0;\n    local_90 = 0;\n    local_8c = 0;\n    FUN_001765c7(&local_a0,&local_98,&DAT_001f4822,puVar5[10]);\n    if ((*(int *)(puVar5 + 8) != 1) && (0 < *(int *)(puVar5 + 3))) {\n      uVar11 = 0;\n      do {\n        if (*(int *)(puVar5 + 8) == 2) {\n          FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));\n        }\n        else {\n          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);\n        }\n        uVar11 = uVar11 + 1;\n      } while ((int)uVar11 < *(int *)(puVar5 + 3));\n    }\n    puVar5[0xc] = local_98;\n    local_ac = (int)local_a0;\n    iVar4 = (int)local_a0;\n    if ((int)local_a0 == 0) goto LAB_0017ad22;\n  }" if (parenthesized_expression "(local_ac == 0)" ( (binary_expression "local_ac == 0" identifier == number_literal) )) (compound_statement "{\n    if (puVar5[9] == 0) {\n      if (*(int *)(puVar5 + 8) == 0) {\n        pcVar17 = "content";\n      }\n      else {\n        pcVar17 = "docsize";\n        if (*(int *)(puVar5 + 0xb) == 0) goto LAB_0017a389;\n      }\n      uVar7 = FUN_00177220(&local_ac,"%Q.\'%q_%s\'",puVar5[1],puVar5[2],pcVar17);\n      puVar5[9] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }\nLAB_0017a389:\n    if (puVar5[10] == 0) {\n      uVar7 = FUN_0014b209(&local_ac,"rowid",0xffffffff);\n      puVar5[10] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }\n    local_a0 = (char *)((ulong)local_a0 & 0xffffffff00000000);\n    local_98 = (char *)0x0;\n    local_90 = 0;\n    local_8c = 0;\n    FUN_001765c7(&local_a0,&local_98,&DAT_001f4822,puVar5[10]);\n    if ((*(int *)(puVar5 + 8) != 1) && (0 < *(int *)(puVar5 + 3))) {\n      uVar11 = 0;\n      do {\n        if (*(int *)(puVar5 + 8) == 2) {\n          FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));\n        }\n        else {\n          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);\n        }\n        uVar11 = uVar11 + 1;\n      } while ((int)uVar11 < *(int *)(puVar5 + 3));\n    }\n    puVar5[0xc] = local_98;\n    local_ac = (int)local_a0;\n    iVar4 = (int)local_a0;\n    if ((int)local_a0 == 0) goto LAB_0017ad22;\n  }" { (if_statement "if (puVar5[9] == 0) {\n      if (*(int *)(puVar5 + 8) == 0) {\n        pcVar17 = "content";\n      }\n      else {\n        pcVar17 = "docsize";\n        if (*(int *)(puVar5 + 0xb) == 0) goto LAB_0017a389;\n      }\n      uVar7 = FUN_00177220(&local_ac,"%Q.\'%q_%s\'",puVar5[1],puVar5[2],pcVar17);\n      puVar5[9] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }" if (parenthesized_expression "(puVar5[9] == 0)" ( (binary_expression "puVar5[9] == 0" (subscript_expression "puVar5[9]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      if (*(int *)(puVar5 + 8) == 0) {\n        pcVar17 = "content";\n      }\n      else {\n        pcVar17 = "docsize";\n        if (*(int *)(puVar5 + 0xb) == 0) goto LAB_0017a389;\n      }\n      uVar7 = FUN_00177220(&local_ac,"%Q.\'%q_%s\'",puVar5[1],puVar5[2],pcVar17);\n      puVar5[9] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }" { (if_statement "if (*(int *)(puVar5 + 8) == 0) {\n        pcVar17 = "content";\n      }\n      else {\n        pcVar17 = "docsize";\n        if (*(int *)(puVar5 + 0xb) == 0) goto LAB_0017a389;\n      }" if (parenthesized_expression "(*(int *)(puVar5 + 8) == 0)" ( (binary_expression "*(int *)(puVar5 + 8) == 0" (pointer_expression "*(int *)(puVar5 + 8)" * (cast_expression "(int *)(puVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 8)" ( (binary_expression "puVar5 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        pcVar17 = "content";\n      }" { (expression_statement "pcVar17 = "content";" (assignment_expression "pcVar17 = "content"" identifier = (string_literal ""content"" " string_content ")) ;) }) (else_clause "else {\n        pcVar17 = "docsize";\n        if (*(int *)(puVar5 + 0xb) == 0) goto LAB_0017a389;\n      }" else (compound_statement "{\n        pcVar17 = "docsize";\n        if (*(int *)(puVar5 + 0xb) == 0) goto LAB_0017a389;\n      }" { (expression_statement "pcVar17 = "docsize";" (assignment_expression "pcVar17 = "docsize"" identifier = (string_literal ""docsize"" " string_content ")) ;) (if_statement "if (*(int *)(puVar5 + 0xb) == 0) goto LAB_0017a389;" if (parenthesized_expression "(*(int *)(puVar5 + 0xb) == 0)" ( (binary_expression "*(int *)(puVar5 + 0xb) == 0" (pointer_expression "*(int *)(puVar5 + 0xb)" * (cast_expression "(int *)(puVar5 + 0xb)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0xb)" ( (binary_expression "puVar5 + 0xb" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0017a389;" goto statement_identifier ;)) }))) (expression_statement "uVar7 = FUN_00177220(&local_ac,"%Q.\'%q_%s\'",puVar5[1],puVar5[2],pcVar17);" (assignment_expression "uVar7 = FUN_00177220(&local_ac,"%Q.\'%q_%s\'",puVar5[1],puVar5[2],pcVar17)" identifier = (call_expression "FUN_00177220(&local_ac,"%Q.\'%q_%s\'",puVar5[1],puVar5[2],pcVar17)" identifier (argument_list "(&local_ac,"%Q.\'%q_%s\'",puVar5[1],puVar5[2],pcVar17)" ( (pointer_expression "&local_ac" & identifier) , (string_literal ""%Q.\'%q_%s\'"" " string_content escape_sequence string_content escape_sequence ") , (subscript_expression "puVar5[1]" identifier [ number_literal ]) , (subscript_expression "puVar5[2]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "puVar5[9] = uVar7;" (assignment_expression "puVar5[9] = uVar7" (subscript_expression "puVar5[9]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_ac != 0) goto LAB_0017acb0;" if (parenthesized_expression "(local_ac != 0)" ( (binary_expression "local_ac != 0" identifier != number_literal) )) (goto_statement "goto LAB_0017acb0;" goto statement_identifier ;)) })) (labeled_statement "LAB_0017a389:\n    if (puVar5[10] == 0) {\n      uVar7 = FUN_0014b209(&local_ac,"rowid",0xffffffff);\n      puVar5[10] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }" statement_identifier : (if_statement "if (puVar5[10] == 0) {\n      uVar7 = FUN_0014b209(&local_ac,"rowid",0xffffffff);\n      puVar5[10] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }" if (parenthesized_expression "(puVar5[10] == 0)" ( (binary_expression "puVar5[10] == 0" (subscript_expression "puVar5[10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      uVar7 = FUN_0014b209(&local_ac,"rowid",0xffffffff);\n      puVar5[10] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }" { (expression_statement "uVar7 = FUN_0014b209(&local_ac,"rowid",0xffffffff);" (assignment_expression "uVar7 = FUN_0014b209(&local_ac,"rowid",0xffffffff)" identifier = (call_expression "FUN_0014b209(&local_ac,"rowid",0xffffffff)" identifier (argument_list "(&local_ac,"rowid",0xffffffff)" ( (pointer_expression "&local_ac" & identifier) , (string_literal ""rowid"" " string_content ") , number_literal )))) ;) (expression_statement "puVar5[10] = uVar7;" (assignment_expression "puVar5[10] = uVar7" (subscript_expression "puVar5[10]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_ac != 0) goto LAB_0017acb0;" if (parenthesized_expression "(local_ac != 0)" ( (binary_expression "local_ac != 0" identifier != number_literal) )) (goto_statement "goto LAB_0017acb0;" goto statement_identifier ;)) }))) (expression_statement "local_a0 = (char *)((ulong)local_a0 & 0xffffffff00000000);" (assignment_expression "local_a0 = (char *)((ulong)local_a0 & 0xffffffff00000000)" identifier = (cast_expression "(char *)((ulong)local_a0 & 0xffffffff00000000)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)local_a0 & 0xffffffff00000000)" ( (binary_expression "(ulong)local_a0 & 0xffffffff00000000" (cast_expression "(ulong)local_a0" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "local_98 = (char *)0x0;" (assignment_expression "local_98 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" identifier = number_literal) ;) (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" identifier = number_literal) ;) (expression_statement "FUN_001765c7(&local_a0,&local_98,&DAT_001f4822,puVar5[10]);" (call_expression "FUN_001765c7(&local_a0,&local_98,&DAT_001f4822,puVar5[10])" identifier (argument_list "(&local_a0,&local_98,&DAT_001f4822,puVar5[10])" ( (pointer_expression "&local_a0" & identifier) , (pointer_expression "&local_98" & identifier) , (pointer_expression "&DAT_001f4822" & identifier) , (subscript_expression "puVar5[10]" identifier [ number_literal ]) ))) ;) (if_statement "if ((*(int *)(puVar5 + 8) != 1) && (0 < *(int *)(puVar5 + 3))) {\n      uVar11 = 0;\n      do {\n        if (*(int *)(puVar5 + 8) == 2) {\n          FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));\n        }\n        else {\n          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);\n        }\n        uVar11 = uVar11 + 1;\n      } while ((int)uVar11 < *(int *)(puVar5 + 3));\n    }" if (parenthesized_expression "((*(int *)(puVar5 + 8) != 1) && (0 < *(int *)(puVar5 + 3)))" ( (binary_expression "(*(int *)(puVar5 + 8) != 1) && (0 < *(int *)(puVar5 + 3))" (parenthesized_expression "(*(int *)(puVar5 + 8) != 1)" ( (binary_expression "*(int *)(puVar5 + 8) != 1" (pointer_expression "*(int *)(puVar5 + 8)" * (cast_expression "(int *)(puVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 8)" ( (binary_expression "puVar5 + 8" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(0 < *(int *)(puVar5 + 3))" ( (binary_expression "0 < *(int *)(puVar5 + 3)" number_literal < (pointer_expression "*(int *)(puVar5 + 3)" * (cast_expression "(int *)(puVar5 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 3)" ( (binary_expression "puVar5 + 3" identifier + number_literal) ))))) ))) )) (compound_statement "{\n      uVar11 = 0;\n      do {\n        if (*(int *)(puVar5 + 8) == 2) {\n          FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));\n        }\n        else {\n          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);\n        }\n        uVar11 = uVar11 + 1;\n      } while ((int)uVar11 < *(int *)(puVar5 + 3));\n    }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n        if (*(int *)(puVar5 + 8) == 2) {\n          FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));\n        }\n        else {\n          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);\n        }\n        uVar11 = uVar11 + 1;\n      } while ((int)uVar11 < *(int *)(puVar5 + 3));" do (compound_statement "{\n        if (*(int *)(puVar5 + 8) == 2) {\n          FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));\n        }\n        else {\n          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);\n        }\n        uVar11 = uVar11 + 1;\n      }" { (if_statement "if (*(int *)(puVar5 + 8) == 2) {\n          FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));\n        }\n        else {\n          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);\n        }" if (parenthesized_expression "(*(int *)(puVar5 + 8) == 2)" ( (binary_expression "*(int *)(puVar5 + 8) == 2" (pointer_expression "*(int *)(puVar5 + 8)" * (cast_expression "(int *)(puVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 8)" ( (binary_expression "puVar5 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));\n        }" { (expression_statement "FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));" (call_expression "FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8))" identifier (argument_list "(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8))" ( (pointer_expression "&local_a0" & identifier) , (pointer_expression "&local_98" & identifier) , (pointer_expression "&DAT_001f4820" & identifier) , (pointer_expression "*(undefined8 *)(puVar5[4] + uVar11 * 8)" * (cast_expression "(undefined8 *)(puVar5[4] + uVar11 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5[4] + uVar11 * 8)" ( (binary_expression "puVar5[4] + uVar11 * 8" (subscript_expression "puVar5[4]" identifier [ number_literal ]) + (binary_expression "uVar11 * 8" identifier * number_literal)) )))) ))) ;) }) (else_clause "else {\n          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);\n        }" else (compound_statement "{\n          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);\n        }" { (expression_statement "FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);" (call_expression "FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff)" identifier (argument_list "(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff)" ( (pointer_expression "&local_a0" & identifier) , (pointer_expression "&local_98" & identifier) , (string_literal "", T.c%d"" " string_content ") , (binary_expression "uVar11 & 0xffffffff" identifier & number_literal) ))) ;) }))) (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((int)uVar11 < *(int *)(puVar5 + 3))" ( (binary_expression "(int)uVar11 < *(int *)(puVar5 + 3)" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) < (pointer_expression "*(int *)(puVar5 + 3)" * (cast_expression "(int *)(puVar5 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 3)" ( (binary_expression "puVar5 + 3" identifier + number_literal) ))))) )) ;) })) (expression_statement "puVar5[0xc] = local_98;" (assignment_expression "puVar5[0xc] = local_98" (subscript_expression "puVar5[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_ac = (int)local_a0;" (assignment_expression "local_ac = (int)local_a0" identifier = (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar4 = (int)local_a0;" (assignment_expression "iVar4 = (int)local_a0" identifier = (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if ((int)local_a0 == 0) goto LAB_0017ad22;" if (parenthesized_expression "((int)local_a0 == 0)" ( (binary_expression "(int)local_a0 == 0" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (goto_statement "goto LAB_0017ad22;" goto statement_identifier ;)) })) (labeled_statement "LAB_0017acb0:\n  FUN_00148182(puVar5);" statement_identifier : (expression_statement "FUN_00148182(puVar5);" (call_expression "FUN_00148182(puVar5)" identifier (argument_list "(puVar5)" ( identifier ))) ;)) (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" * identifier) = number_literal) ;) (expression_statement "iVar4 = local_ac;" (assignment_expression "iVar4 = local_ac" identifier = identifier) ;) (labeled_statement "LAB_0017ad22:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    __stack_chk_fail();\n  }" { (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return iVar4;" return identifier ;) (labeled_statement "LAB_0017a6fb:\n  uVar7 = FUN_001776d2("prefix length out of range (max 999)");" statement_identifier : (expression_statement "uVar7 = FUN_001776d2("prefix length out of range (max 999)");" (assignment_expression "uVar7 = FUN_001776d2("prefix length out of range (max 999)")" identifier = (call_expression "FUN_001776d2("prefix length out of range (max 999)")" identifier (argument_list "("prefix length out of range (max 999)")" ( (string_literal ""prefix length out of range (max 999)"" " string_content ") )))) ;)) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "local_a4 = 1;" (assignment_expression "local_a4 = 1" identifier = number_literal) ;) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" identifier = identifier) ;) (labeled_statement "LAB_0017a527:\n  local_ac = iVar3;" statement_identifier : (expression_statement "local_ac = iVar3;" (assignment_expression "local_ac = iVar3" identifier = identifier) ;)) (expression_statement "FUN_00141303(local_a0);" (call_expression "FUN_00141303(local_a0)" identifier (argument_list "(local_a0)" ( identifier ))) ;) (expression_statement "FUN_00141303(local_98);" (call_expression "FUN_00141303(local_98)" identifier (argument_list "(local_98)" ( identifier ))) ;) (expression_statement "iVar2 = (int)lVar6;" (assignment_expression "iVar2 = (int)lVar6" identifier = (cast_expression "(int)lVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "lVar6 = lVar6 + 1;" (assignment_expression "lVar6 = lVar6 + 1" identifier = (binary_expression "lVar6 + 1" identifier + number_literal)) ;) (if_statement "if (param_3 <= iVar2 || local_ac != 0) goto LAB_0017a364;" if (parenthesized_expression "(param_3 <= iVar2 || local_ac != 0)" ( (binary_expression "param_3 <= iVar2 || local_ac != 0" (binary_expression "param_3 <= iVar2" identifier <= identifier) || (binary_expression "local_ac != 0" identifier != number_literal)) )) (goto_statement "goto LAB_0017a364;" goto statement_identifier ;)) (goto_statement "goto LAB_0017a558;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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 (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) )))) ;) (for_statement for ( (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) ))))) )) + LIT) >> LIT) )))) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT - LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) * LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) * LIT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) ))))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) ))))) , (binary_expression (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence '))) )))) )) )))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence ") , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (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 (subscript_expression IDENT [ LIT ]) + (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (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 { (expression_statement (assignment_expression IDENT = (string_literal " ")) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression ~ IDENT) - LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , (binary_expression IDENT & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) )))) )) (break_statement break ;)) }) while (parenthesized_expression ( (binary_expression IDENT < LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) while (parenthesized_expression ( BOOL )) ;)) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , (binary_expression IDENT & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (binary_expression (unary_expression ~ IDENT) * LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (binary_expression (unary_expression ~ IDENT) * LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression IDENT - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (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 ;)) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT & LIT) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , (binary_expression IDENT & LIT) )))) ;) (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) )))) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = 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) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (string_literal " string_content ") , (subscript_expression IDENT [ LIT ]) , IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , (binary_expression IDENT & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , (binary_expression IDENT & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * IDENT) - LIT) ))) < LIT) )) && (parenthesized_expression ( (binary_expression (subscript_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 IDENT + LIT) )))) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , (binary_expression IDENT & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT)) - LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence ") , (binary_expression IDENT & LIT) , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }))) }))) }))) }))) }))) }))) })) }))) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT )))) ;) }))) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;))) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == 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) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (if_statement if (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 = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (string_literal " string_content escape_sequence string_content escape_sequence ") , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) , IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (string_literal " string_content ") , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (subscript_expression IDENT [ LIT ]) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) && (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (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) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression * (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 (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , (string_literal " string_content ") , (binary_expression IDENT & LIT) ))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (return_statement return IDENT ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT <= IDENT) || (binary_expression IDENT != LIT)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })))
(function_definition "int FUN_0017a24a(undefined8 param_1,undefined8 param_2,int param_3,long param_4,long *param_5,\n                undefined8 *param_6)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  undefined8 *puVar5;\n  long lVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  void *pvVar9;\n  long lVar10;\n  ulong uVar11;\n  long lVar12;\n  char **ppcVar13;\n  undefined8 *puVar14;\n  char *pcVar15;\n  char *pcVar16;\n  char *pcVar17;\n  void *__dest;\n  long in_FS_OFFSET;\n  byte bVar18;\n  int local_c8;\n  int local_ac;\n  int local_a8;\n  int local_a4;\n  char *local_a0;\n  char *local_98;\n  undefined4 local_90;\n  undefined4 local_8c;\n  char *local_88;\n  undefined4 local_80 [2];\n  char *local_78;\n  undefined4 local_70;\n  char *local_68;\n  undefined4 local_60;\n  undefined8 local_58;\n  undefined4 local_50;\n  long local_40;\n  \n  bVar18 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_ac = 0;\n  puVar5 = (undefined8 *)FUN_0014ae6c(0xa8);\n  *param_5 = (long)puVar5;\n  if (puVar5 == (undefined8 *)0x0) {\n    iVar4 = 7;\n    goto LAB_0017ad22;\n  }\n  puVar5[1] = 0;\n  puVar5[0x14] = 0;\n  puVar14 = (undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8);\n  for (uVar11 = (ulong)(((int)puVar5 - (int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)\n                        ) + 0xa8U >> 3); uVar11 != 0; uVar11 = uVar11 - 1) {\n    *puVar14 = 0;\n    puVar14 = puVar14 + (ulong)bVar18 * -2 + 1;\n  }\n  *puVar5 = param_2;\n  *(undefined4 *)(puVar5 + 0xf) = 0xffffffff;\n  lVar6 = FUN_0014bc1d(&local_ac,(long)param_3 * 9);\n  puVar5[4] = lVar6;\n  puVar5[5] = lVar6 + (long)param_3 * 8;\n  uVar7 = FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 8),0xffffffff);\n  puVar5[1] = uVar7;\n  uVar7 = FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 0x10),0xffffffff);\n  iVar4 = local_ac;\n  puVar5[2] = uVar7;\n  *(undefined4 *)(puVar5 + 0xb) = 1;\n  *(undefined4 *)((long)puVar5 + 0x5c) = 0;\n  if (local_ac == 0) {\n    iVar2 = FUN_0012ad85(uVar7,&DAT_001f3ddb);\n    if (iVar2 == 0) {\n      uVar7 = FUN_001776d2("reserved fts5 table name: %s",uVar7);\n      *param_6 = uVar7;\n      local_ac = 1;\n      goto LAB_0017a364;\n    }\n    if (3 < param_3) {\n      lVar6 = 4;\n      local_c8 = -1;\nLAB_0017a558:\n      uVar7 = *(undefined8 *)(param_4 + -8 + lVar6 * 8);\n      local_a0 = (char *)0x0;\n      local_98 = (char *)0x0;\n      local_a8 = 0;\n      uVar8 = FUN_0014c842(&local_ac,uVar7,&local_a0,&local_a8);\n      pcVar17 = (char *)FUN_0013465f(uVar8);\n      iVar2 = iVar4;\n      if ((pcVar17 != (char *)0x0) && (*pcVar17 == '=')) {\n        if (local_a8 == 0) {\n          pcVar17 = pcVar17 + 1;\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = 1;\n          pcVar17 = (char *)0x0;\n        }\n      }\n      pcVar17 = (char *)FUN_0013465f(pcVar17);\n      if ((pcVar17 == (char *)0x0) ||\n         ((pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))))) {\n        iVar3 = local_ac;\n        if (local_ac == 0) {\n          uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);\n          *param_6 = uVar7;\n          local_ac = 1;\n          iVar3 = local_ac;\n        }\n      }\n      else {\n        iVar3 = local_ac;\n        local_a0 = pcVar16;\n        if (local_ac == 0) {\n          if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_0017a527;\n    }\nLAB_0017a368:\n    if (puVar5[0xd] == 0) {\n      local_ac = FUN_0017a177(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0);\n    }\n  }\n  else {\nLAB_0017a364:\n    if (local_ac == 0) goto LAB_0017a368;\n  }\n  if (local_ac == 0) {\n    if (puVar5[9] == 0) {\n      if (*(int *)(puVar5 + 8) == 0) {\n        pcVar17 = "content";\n      }\n      else {\n        pcVar17 = "docsize";\n        if (*(int *)(puVar5 + 0xb) == 0) goto LAB_0017a389;\n      }\n      uVar7 = FUN_00177220(&local_ac,"%Q.\'%q_%s\'",puVar5[1],puVar5[2],pcVar17);\n      puVar5[9] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }\nLAB_0017a389:\n    if (puVar5[10] == 0) {\n      uVar7 = FUN_0014b209(&local_ac,"rowid",0xffffffff);\n      puVar5[10] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }\n    local_a0 = (char *)((ulong)local_a0 & 0xffffffff00000000);\n    local_98 = (char *)0x0;\n    local_90 = 0;\n    local_8c = 0;\n    FUN_001765c7(&local_a0,&local_98,&DAT_001f4822,puVar5[10]);\n    if ((*(int *)(puVar5 + 8) != 1) && (0 < *(int *)(puVar5 + 3))) {\n      uVar11 = 0;\n      do {\n        if (*(int *)(puVar5 + 8) == 2) {\n          FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));\n        }\n        else {\n          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);\n        }\n        uVar11 = uVar11 + 1;\n      } while ((int)uVar11 < *(int *)(puVar5 + 3));\n    }\n    puVar5[0xc] = local_98;\n    local_ac = (int)local_a0;\n    iVar4 = (int)local_a0;\n    if ((int)local_a0 == 0) goto LAB_0017ad22;\n  }\nLAB_0017acb0:\n  FUN_00148182(puVar5);\n  *param_5 = 0;\n  iVar4 = local_ac;\nLAB_0017ad22:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return iVar4;\nLAB_0017a6fb:\n  uVar7 = FUN_001776d2("prefix length out of range (max 999)");\n  *param_6 = uVar7;\n  local_a4 = 1;\n  iVar3 = local_a4;\nLAB_0017a527:\n  local_ac = iVar3;\n  FUN_00141303(local_a0);\n  FUN_00141303(local_98);\n  iVar2 = (int)lVar6;\n  lVar6 = lVar6 + 1;\n  if (param_3 <= iVar2 || local_ac != 0) goto LAB_0017a364;\n  goto LAB_0017a558;\n}" (primitive_type "int") (function_declarator "FUN_0017a24a(undefined8 param_1,undefined8 param_2,int param_3,long param_4,long *param_5,\n                undefined8 *param_6)" (identifier "FUN_0017a24a") (parameter_list "(undefined8 param_1,undefined8 param_2,int param_3,long param_4,long *param_5,\n                undefined8 *param_6)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "long param_4" (sized_type_specifier "long" (long "long")) (identifier "param_4")) (, ",") (parameter_declaration "long *param_5" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "undefined8 *param_6" (type_identifier "undefined8") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) () ")"))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  undefined8 *puVar5;\n  long lVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  void *pvVar9;\n  long lVar10;\n  ulong uVar11;\n  long lVar12;\n  char **ppcVar13;\n  undefined8 *puVar14;\n  char *pcVar15;\n  char *pcVar16;\n  char *pcVar17;\n  void *__dest;\n  long in_FS_OFFSET;\n  byte bVar18;\n  int local_c8;\n  int local_ac;\n  int local_a8;\n  int local_a4;\n  char *local_a0;\n  char *local_98;\n  undefined4 local_90;\n  undefined4 local_8c;\n  char *local_88;\n  undefined4 local_80 [2];\n  char *local_78;\n  undefined4 local_70;\n  char *local_68;\n  undefined4 local_60;\n  undefined8 local_58;\n  undefined4 local_50;\n  long local_40;\n  \n  bVar18 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_ac = 0;\n  puVar5 = (undefined8 *)FUN_0014ae6c(0xa8);\n  *param_5 = (long)puVar5;\n  if (puVar5 == (undefined8 *)0x0) {\n    iVar4 = 7;\n    goto LAB_0017ad22;\n  }\n  puVar5[1] = 0;\n  puVar5[0x14] = 0;\n  puVar14 = (undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8);\n  for (uVar11 = (ulong)(((int)puVar5 - (int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)\n                        ) + 0xa8U >> 3); uVar11 != 0; uVar11 = uVar11 - 1) {\n    *puVar14 = 0;\n    puVar14 = puVar14 + (ulong)bVar18 * -2 + 1;\n  }\n  *puVar5 = param_2;\n  *(undefined4 *)(puVar5 + 0xf) = 0xffffffff;\n  lVar6 = FUN_0014bc1d(&local_ac,(long)param_3 * 9);\n  puVar5[4] = lVar6;\n  puVar5[5] = lVar6 + (long)param_3 * 8;\n  uVar7 = FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 8),0xffffffff);\n  puVar5[1] = uVar7;\n  uVar7 = FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 0x10),0xffffffff);\n  iVar4 = local_ac;\n  puVar5[2] = uVar7;\n  *(undefined4 *)(puVar5 + 0xb) = 1;\n  *(undefined4 *)((long)puVar5 + 0x5c) = 0;\n  if (local_ac == 0) {\n    iVar2 = FUN_0012ad85(uVar7,&DAT_001f3ddb);\n    if (iVar2 == 0) {\n      uVar7 = FUN_001776d2("reserved fts5 table name: %s",uVar7);\n      *param_6 = uVar7;\n      local_ac = 1;\n      goto LAB_0017a364;\n    }\n    if (3 < param_3) {\n      lVar6 = 4;\n      local_c8 = -1;\nLAB_0017a558:\n      uVar7 = *(undefined8 *)(param_4 + -8 + lVar6 * 8);\n      local_a0 = (char *)0x0;\n      local_98 = (char *)0x0;\n      local_a8 = 0;\n      uVar8 = FUN_0014c842(&local_ac,uVar7,&local_a0,&local_a8);\n      pcVar17 = (char *)FUN_0013465f(uVar8);\n      iVar2 = iVar4;\n      if ((pcVar17 != (char *)0x0) && (*pcVar17 == '=')) {\n        if (local_a8 == 0) {\n          pcVar17 = pcVar17 + 1;\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = 1;\n          pcVar17 = (char *)0x0;\n        }\n      }\n      pcVar17 = (char *)FUN_0013465f(pcVar17);\n      if ((pcVar17 == (char *)0x0) ||\n         ((pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))))) {\n        iVar3 = local_ac;\n        if (local_ac == 0) {\n          uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);\n          *param_6 = uVar7;\n          local_ac = 1;\n          iVar3 = local_ac;\n        }\n      }\n      else {\n        iVar3 = local_ac;\n        local_a0 = pcVar16;\n        if (local_ac == 0) {\n          if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_0017a527;\n    }\nLAB_0017a368:\n    if (puVar5[0xd] == 0) {\n      local_ac = FUN_0017a177(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0);\n    }\n  }\n  else {\nLAB_0017a364:\n    if (local_ac == 0) goto LAB_0017a368;\n  }\n  if (local_ac == 0) {\n    if (puVar5[9] == 0) {\n      if (*(int *)(puVar5 + 8) == 0) {\n        pcVar17 = "content";\n      }\n      else {\n        pcVar17 = "docsize";\n        if (*(int *)(puVar5 + 0xb) == 0) goto LAB_0017a389;\n      }\n      uVar7 = FUN_00177220(&local_ac,"%Q.\'%q_%s\'",puVar5[1],puVar5[2],pcVar17);\n      puVar5[9] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }\nLAB_0017a389:\n    if (puVar5[10] == 0) {\n      uVar7 = FUN_0014b209(&local_ac,"rowid",0xffffffff);\n      puVar5[10] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }\n    local_a0 = (char *)((ulong)local_a0 & 0xffffffff00000000);\n    local_98 = (char *)0x0;\n    local_90 = 0;\n    local_8c = 0;\n    FUN_001765c7(&local_a0,&local_98,&DAT_001f4822,puVar5[10]);\n    if ((*(int *)(puVar5 + 8) != 1) && (0 < *(int *)(puVar5 + 3))) {\n      uVar11 = 0;\n      do {\n        if (*(int *)(puVar5 + 8) == 2) {\n          FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));\n        }\n        else {\n          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);\n        }\n        uVar11 = uVar11 + 1;\n      } while ((int)uVar11 < *(int *)(puVar5 + 3));\n    }\n    puVar5[0xc] = local_98;\n    local_ac = (int)local_a0;\n    iVar4 = (int)local_a0;\n    if ((int)local_a0 == 0) goto LAB_0017ad22;\n  }\nLAB_0017acb0:\n  FUN_00148182(puVar5);\n  *param_5 = 0;\n  iVar4 = local_ac;\nLAB_0017ad22:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return iVar4;\nLAB_0017a6fb:\n  uVar7 = FUN_001776d2("prefix length out of range (max 999)");\n  *param_6 = uVar7;\n  local_a4 = 1;\n  iVar3 = local_a4;\nLAB_0017a527:\n  local_ac = iVar3;\n  FUN_00141303(local_a0);\n  FUN_00141303(local_98);\n  iVar2 = (int)lVar6;\n  lVar6 = lVar6 + 1;\n  if (param_3 <= iVar2 || local_ac != 0) goto LAB_0017a364;\n  goto LAB_0017a558;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "undefined8 *puVar5;" (type_identifier "undefined8") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "long lVar6;" (sized_type_specifier "long" (long "long")) (identifier "lVar6") (; ";")) (declaration "undefined8 uVar7;" (type_identifier "undefined8") (identifier "uVar7") (; ";")) (declaration "undefined8 uVar8;" (type_identifier "undefined8") (identifier "uVar8") (; ";")) (declaration "void *pvVar9;" (primitive_type "void") (pointer_declarator "*pvVar9" (* "*") (identifier "pvVar9")) (; ";")) (declaration "long lVar10;" (sized_type_specifier "long" (long "long")) (identifier "lVar10") (; ";")) (declaration "ulong uVar11;" (type_identifier "ulong") (identifier "uVar11") (; ";")) (declaration "long lVar12;" (sized_type_specifier "long" (long "long")) (identifier "lVar12") (; ";")) (declaration "char **ppcVar13;" (primitive_type "char") (pointer_declarator "**ppcVar13" (* "*") (pointer_declarator "*ppcVar13" (* "*") (identifier "ppcVar13"))) (; ";")) (declaration "undefined8 *puVar14;" (type_identifier "undefined8") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "char *pcVar15;" (primitive_type "char") (pointer_declarator "*pcVar15" (* "*") (identifier "pcVar15")) (; ";")) (declaration "char *pcVar16;" (primitive_type "char") (pointer_declarator "*pcVar16" (* "*") (identifier "pcVar16")) (; ";")) (declaration "char *pcVar17;" (primitive_type "char") (pointer_declarator "*pcVar17" (* "*") (identifier "pcVar17")) (; ";")) (declaration "void *__dest;" (primitive_type "void") (pointer_declarator "*__dest" (* "*") (identifier "__dest")) (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "byte bVar18;" (type_identifier "byte") (identifier "bVar18") (; ";")) (declaration "int local_c8;" (primitive_type "int") (identifier "local_c8") (; ";")) (declaration "int local_ac;" (primitive_type "int") (identifier "local_ac") (; ";")) (declaration "int local_a8;" (primitive_type "int") (identifier "local_a8") (; ";")) (declaration "int local_a4;" (primitive_type "int") (identifier "local_a4") (; ";")) (declaration "char *local_a0;" (primitive_type "char") (pointer_declarator "*local_a0" (* "*") (identifier "local_a0")) (; ";")) (declaration "char *local_98;" (primitive_type "char") (pointer_declarator "*local_98" (* "*") (identifier "local_98")) (; ";")) (declaration "undefined4 local_90;" (type_identifier "undefined4") (identifier "local_90") (; ";")) (declaration "undefined4 local_8c;" (type_identifier "undefined4") (identifier "local_8c") (; ";")) (declaration "char *local_88;" (primitive_type "char") (pointer_declarator "*local_88" (* "*") (identifier "local_88")) (; ";")) (declaration "undefined4 local_80 [2];" (type_identifier "undefined4") (array_declarator "local_80 [2]" (identifier "local_80") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "char *local_78;" (primitive_type "char") (pointer_declarator "*local_78" (* "*") (identifier "local_78")) (; ";")) (declaration "undefined4 local_70;" (type_identifier "undefined4") (identifier "local_70") (; ";")) (declaration "char *local_68;" (primitive_type "char") (pointer_declarator "*local_68" (* "*") (identifier "local_68")) (; ";")) (declaration "undefined4 local_60;" (type_identifier "undefined4") (identifier "local_60") (; ";")) (declaration "undefined8 local_58;" (type_identifier "undefined8") (identifier "local_58") (; ";")) (declaration "undefined4 local_50;" (type_identifier "undefined4") (identifier "local_50") (; ";")) (declaration "long local_40;" (sized_type_specifier "long" (long "long")) (identifier "local_40") (; ";")) (expression_statement "bVar18 = 0;" (assignment_expression "bVar18 = 0" (identifier "bVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "local_ac = 0;" (assignment_expression "local_ac = 0" (identifier "local_ac") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5 = (undefined8 *)FUN_0014ae6c(0xa8);" (assignment_expression "puVar5 = (undefined8 *)FUN_0014ae6c(0xa8)" (identifier "puVar5") (= "=") (cast_expression "(undefined8 *)FUN_0014ae6c(0xa8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0014ae6c(0xa8)" (identifier "FUN_0014ae6c") (argument_list "(0xa8)" (( "(") (number_literal "0xa8") () ")"))))) (; ";")) (expression_statement "*param_5 = (long)puVar5;" (assignment_expression "*param_5 = (long)puVar5" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (cast_expression "(long)puVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar5"))) (; ";")) (if_statement "if (puVar5 == (undefined8 *)0x0) {\n    iVar4 = 7;\n    goto LAB_0017ad22;\n  }" (if "if") (parenthesized_expression "(puVar5 == (undefined8 *)0x0)" (( "(") (binary_expression "puVar5 == (undefined8 *)0x0" (identifier "puVar5") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    iVar4 = 7;\n    goto LAB_0017ad22;\n  }" ({ "{") (expression_statement "iVar4 = 7;" (assignment_expression "iVar4 = 7" (identifier "iVar4") (= "=") (number_literal "7")) (; ";")) (goto_statement "goto LAB_0017ad22;" (goto "goto") (statement_identifier "LAB_0017ad22") (; ";")) (} "}"))) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[0x14] = 0;" (assignment_expression "puVar5[0x14] = 0" (subscript_expression "puVar5[0x14]" (identifier "puVar5") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14 = (undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8);" (assignment_expression "puVar14 = (undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)" (identifier "puVar14") (= "=") (cast_expression "(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulong)(puVar5 + 2) & 0xfffffffffffffff8)" (( "(") (binary_expression "(ulong)(puVar5 + 2) & 0xfffffffffffffff8" (call_expression "(ulong)(puVar5 + 2)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(puVar5 + 2)" (( "(") (binary_expression "puVar5 + 2" (identifier "puVar5") (+ "+") (number_literal "2")) () ")"))) (& "&") (number_literal "0xfffffffffffffff8")) () ")")))) (; ";")) (for_statement "for (uVar11 = (ulong)(((int)puVar5 - (int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)\n                        ) + 0xa8U >> 3); uVar11 != 0; uVar11 = uVar11 - 1) {\n    *puVar14 = 0;\n    puVar14 = puVar14 + (ulong)bVar18 * -2 + 1;\n  }" (for "for") (( "(") (assignment_expression "uVar11 = (ulong)(((int)puVar5 - (int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)\n                        ) + 0xa8U >> 3)" (identifier "uVar11") (= "=") (call_expression "(ulong)(((int)puVar5 - (int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)\n                        ) + 0xa8U >> 3)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(((int)puVar5 - (int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)\n                        ) + 0xa8U >> 3)" (( "(") (binary_expression "((int)puVar5 - (int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)\n                        ) + 0xa8U >> 3" (binary_expression "((int)puVar5 - (int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)\n                        ) + 0xa8U" (parenthesized_expression "((int)puVar5 - (int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)\n                        )" (( "(") (binary_expression "(int)puVar5 - (int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)" (cast_expression "(int)puVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar5")) (- "-") (cast_expression "(int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulong)(puVar5 + 2) & 0xfffffffffffffff8)" (( "(") (binary_expression "(ulong)(puVar5 + 2) & 0xfffffffffffffff8" (call_expression "(ulong)(puVar5 + 2)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(puVar5 + 2)" (( "(") (binary_expression "puVar5 + 2" (identifier "puVar5") (+ "+") (number_literal "2")) () ")"))) (& "&") (number_literal "0xfffffffffffffff8")) () ")"))))) () ")")) (+ "+") (number_literal "0xa8U")) (>> ">>") (number_literal "3")) () ")")))) (; ";") (binary_expression "uVar11 != 0" (identifier "uVar11") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "uVar11 = uVar11 - 1" (identifier "uVar11") (= "=") (binary_expression "uVar11 - 1" (identifier "uVar11") (- "-") (number_literal "1"))) () ")") (compound_statement "{\n    *puVar14 = 0;\n    puVar14 = puVar14 + (ulong)bVar18 * -2 + 1;\n  }" ({ "{") (expression_statement "*puVar14 = 0;" (assignment_expression "*puVar14 = 0" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14 = puVar14 + (ulong)bVar18 * -2 + 1;" (assignment_expression "puVar14 = puVar14 + (ulong)bVar18 * -2 + 1" (identifier "puVar14") (= "=") (binary_expression "puVar14 + (ulong)bVar18 * -2 + 1" (binary_expression "puVar14 + (ulong)bVar18 * -2" (identifier "puVar14") (+ "+") (binary_expression "(ulong)bVar18 * -2" (cast_expression "(ulong)bVar18" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar18")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "*puVar5 = param_2;" (assignment_expression "*puVar5 = param_2" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(undefined4 *)(puVar5 + 0xf) = 0xffffffff;" (assignment_expression "*(undefined4 *)(puVar5 + 0xf) = 0xffffffff" (pointer_expression "*(undefined4 *)(puVar5 + 0xf)" (* "*") (cast_expression "(undefined4 *)(puVar5 + 0xf)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 0xf)" (( "(") (binary_expression "puVar5 + 0xf" (identifier "puVar5") (+ "+") (number_literal "0xf")) () ")")))) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "lVar6 = FUN_0014bc1d(&local_ac,(long)param_3 * 9);" (assignment_expression "lVar6 = FUN_0014bc1d(&local_ac,(long)param_3 * 9)" (identifier "lVar6") (= "=") (call_expression "FUN_0014bc1d(&local_ac,(long)param_3 * 9)" (identifier "FUN_0014bc1d") (argument_list "(&local_ac,(long)param_3 * 9)" (( "(") (pointer_expression "&local_ac" (& "&") (identifier "local_ac")) (, ",") (binary_expression "(long)param_3 * 9" (cast_expression "(long)param_3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_3")) (* "*") (number_literal "9")) () ")")))) (; ";")) (expression_statement "puVar5[4] = lVar6;" (assignment_expression "puVar5[4] = lVar6" (subscript_expression "puVar5[4]" (identifier "puVar5") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "lVar6")) (; ";")) (expression_statement "puVar5[5] = lVar6 + (long)param_3 * 8;" (assignment_expression "puVar5[5] = lVar6 + (long)param_3 * 8" (subscript_expression "puVar5[5]" (identifier "puVar5") ([ "[") (number_literal "5") (] "]")) (= "=") (binary_expression "lVar6 + (long)param_3 * 8" (identifier "lVar6") (+ "+") (binary_expression "(long)param_3 * 8" (cast_expression "(long)param_3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_3")) (* "*") (number_literal "8")))) (; ";")) (expression_statement "uVar7 = FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 8),0xffffffff);" (assignment_expression "uVar7 = FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 8),0xffffffff)" (identifier "uVar7") (= "=") (call_expression "FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 8),0xffffffff)" (identifier "FUN_0014b209") (argument_list "(&local_ac,*(undefined8 *)(param_4 + 8),0xffffffff)" (( "(") (pointer_expression "&local_ac" (& "&") (identifier "local_ac")) (, ",") (pointer_expression "*(undefined8 *)(param_4 + 8)" (* "*") (cast_expression "(undefined8 *)(param_4 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 8)" (( "(") (binary_expression "param_4 + 8" (identifier "param_4") (+ "+") (number_literal "8")) () ")")))) (, ",") (number_literal "0xffffffff") () ")")))) (; ";")) (expression_statement "puVar5[1] = uVar7;" (assignment_expression "puVar5[1] = uVar7" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "uVar7 = FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 0x10),0xffffffff);" (assignment_expression "uVar7 = FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 0x10),0xffffffff)" (identifier "uVar7") (= "=") (call_expression "FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 0x10),0xffffffff)" (identifier "FUN_0014b209") (argument_list "(&local_ac,*(undefined8 *)(param_4 + 0x10),0xffffffff)" (( "(") (pointer_expression "&local_ac" (& "&") (identifier "local_ac")) (, ",") (pointer_expression "*(undefined8 *)(param_4 + 0x10)" (* "*") (cast_expression "(undefined8 *)(param_4 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x10)" (( "(") (binary_expression "param_4 + 0x10" (identifier "param_4") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (number_literal "0xffffffff") () ")")))) (; ";")) (expression_statement "iVar4 = local_ac;" (assignment_expression "iVar4 = local_ac" (identifier "iVar4") (= "=") (identifier "local_ac")) (; ";")) (expression_statement "puVar5[2] = uVar7;" (assignment_expression "puVar5[2] = uVar7" (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "*(undefined4 *)(puVar5 + 0xb) = 1;" (assignment_expression "*(undefined4 *)(puVar5 + 0xb) = 1" (pointer_expression "*(undefined4 *)(puVar5 + 0xb)" (* "*") (cast_expression "(undefined4 *)(puVar5 + 0xb)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 0xb)" (( "(") (binary_expression "puVar5 + 0xb" (identifier "puVar5") (+ "+") (number_literal "0xb")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)((long)puVar5 + 0x5c) = 0;" (assignment_expression "*(undefined4 *)((long)puVar5 + 0x5c) = 0" (pointer_expression "*(undefined4 *)((long)puVar5 + 0x5c)" (* "*") (cast_expression "(undefined4 *)((long)puVar5 + 0x5c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar5 + 0x5c)" (( "(") (binary_expression "(long)puVar5 + 0x5c" (cast_expression "(long)puVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar5")) (+ "+") (number_literal "0x5c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_ac == 0) {\n    iVar2 = FUN_0012ad85(uVar7,&DAT_001f3ddb);\n    if (iVar2 == 0) {\n      uVar7 = FUN_001776d2("reserved fts5 table name: %s",uVar7);\n      *param_6 = uVar7;\n      local_ac = 1;\n      goto LAB_0017a364;\n    }\n    if (3 < param_3) {\n      lVar6 = 4;\n      local_c8 = -1;\nLAB_0017a558:\n      uVar7 = *(undefined8 *)(param_4 + -8 + lVar6 * 8);\n      local_a0 = (char *)0x0;\n      local_98 = (char *)0x0;\n      local_a8 = 0;\n      uVar8 = FUN_0014c842(&local_ac,uVar7,&local_a0,&local_a8);\n      pcVar17 = (char *)FUN_0013465f(uVar8);\n      iVar2 = iVar4;\n      if ((pcVar17 != (char *)0x0) && (*pcVar17 == '=')) {\n        if (local_a8 == 0) {\n          pcVar17 = pcVar17 + 1;\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = 1;\n          pcVar17 = (char *)0x0;\n        }\n      }\n      pcVar17 = (char *)FUN_0013465f(pcVar17);\n      if ((pcVar17 == (char *)0x0) ||\n         ((pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))))) {\n        iVar3 = local_ac;\n        if (local_ac == 0) {\n          uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);\n          *param_6 = uVar7;\n          local_ac = 1;\n          iVar3 = local_ac;\n        }\n      }\n      else {\n        iVar3 = local_ac;\n        local_a0 = pcVar16;\n        if (local_ac == 0) {\n          if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_0017a527;\n    }\nLAB_0017a368:\n    if (puVar5[0xd] == 0) {\n      local_ac = FUN_0017a177(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0);\n    }\n  }\n  else {\nLAB_0017a364:\n    if (local_ac == 0) goto LAB_0017a368;\n  }" (if "if") (parenthesized_expression "(local_ac == 0)" (( "(") (binary_expression "local_ac == 0" (identifier "local_ac") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar2 = FUN_0012ad85(uVar7,&DAT_001f3ddb);\n    if (iVar2 == 0) {\n      uVar7 = FUN_001776d2("reserved fts5 table name: %s",uVar7);\n      *param_6 = uVar7;\n      local_ac = 1;\n      goto LAB_0017a364;\n    }\n    if (3 < param_3) {\n      lVar6 = 4;\n      local_c8 = -1;\nLAB_0017a558:\n      uVar7 = *(undefined8 *)(param_4 + -8 + lVar6 * 8);\n      local_a0 = (char *)0x0;\n      local_98 = (char *)0x0;\n      local_a8 = 0;\n      uVar8 = FUN_0014c842(&local_ac,uVar7,&local_a0,&local_a8);\n      pcVar17 = (char *)FUN_0013465f(uVar8);\n      iVar2 = iVar4;\n      if ((pcVar17 != (char *)0x0) && (*pcVar17 == '=')) {\n        if (local_a8 == 0) {\n          pcVar17 = pcVar17 + 1;\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = 1;\n          pcVar17 = (char *)0x0;\n        }\n      }\n      pcVar17 = (char *)FUN_0013465f(pcVar17);\n      if ((pcVar17 == (char *)0x0) ||\n         ((pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))))) {\n        iVar3 = local_ac;\n        if (local_ac == 0) {\n          uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);\n          *param_6 = uVar7;\n          local_ac = 1;\n          iVar3 = local_ac;\n        }\n      }\n      else {\n        iVar3 = local_ac;\n        local_a0 = pcVar16;\n        if (local_ac == 0) {\n          if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_0017a527;\n    }\nLAB_0017a368:\n    if (puVar5[0xd] == 0) {\n      local_ac = FUN_0017a177(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0);\n    }\n  }" ({ "{") (expression_statement "iVar2 = FUN_0012ad85(uVar7,&DAT_001f3ddb);" (assignment_expression "iVar2 = FUN_0012ad85(uVar7,&DAT_001f3ddb)" (identifier "iVar2") (= "=") (call_expression "FUN_0012ad85(uVar7,&DAT_001f3ddb)" (identifier "FUN_0012ad85") (argument_list "(uVar7,&DAT_001f3ddb)" (( "(") (identifier "uVar7") (, ",") (pointer_expression "&DAT_001f3ddb" (& "&") (identifier "DAT_001f3ddb")) () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n      uVar7 = FUN_001776d2("reserved fts5 table name: %s",uVar7);\n      *param_6 = uVar7;\n      local_ac = 1;\n      goto LAB_0017a364;\n    }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar7 = FUN_001776d2("reserved fts5 table name: %s",uVar7);\n      *param_6 = uVar7;\n      local_ac = 1;\n      goto LAB_0017a364;\n    }" ({ "{") (expression_statement "uVar7 = FUN_001776d2("reserved fts5 table name: %s",uVar7);" (assignment_expression "uVar7 = FUN_001776d2("reserved fts5 table name: %s",uVar7)" (identifier "uVar7") (= "=") (call_expression "FUN_001776d2("reserved fts5 table name: %s",uVar7)" (identifier "FUN_001776d2") (argument_list "("reserved fts5 table name: %s",uVar7)" (( "(") (string_literal ""reserved fts5 table name: %s"" (" """) (string_content "reserved fts5 table name: %s") (" """)) (, ",") (identifier "uVar7") () ")")))) (; ";")) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "local_ac = 1;" (assignment_expression "local_ac = 1" (identifier "local_ac") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0017a364;" (goto "goto") (statement_identifier "LAB_0017a364") (; ";")) (} "}"))) (if_statement "if (3 < param_3) {\n      lVar6 = 4;\n      local_c8 = -1;\nLAB_0017a558:\n      uVar7 = *(undefined8 *)(param_4 + -8 + lVar6 * 8);\n      local_a0 = (char *)0x0;\n      local_98 = (char *)0x0;\n      local_a8 = 0;\n      uVar8 = FUN_0014c842(&local_ac,uVar7,&local_a0,&local_a8);\n      pcVar17 = (char *)FUN_0013465f(uVar8);\n      iVar2 = iVar4;\n      if ((pcVar17 != (char *)0x0) && (*pcVar17 == '=')) {\n        if (local_a8 == 0) {\n          pcVar17 = pcVar17 + 1;\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = 1;\n          pcVar17 = (char *)0x0;\n        }\n      }\n      pcVar17 = (char *)FUN_0013465f(pcVar17);\n      if ((pcVar17 == (char *)0x0) ||\n         ((pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))))) {\n        iVar3 = local_ac;\n        if (local_ac == 0) {\n          uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);\n          *param_6 = uVar7;\n          local_ac = 1;\n          iVar3 = local_ac;\n        }\n      }\n      else {\n        iVar3 = local_ac;\n        local_a0 = pcVar16;\n        if (local_ac == 0) {\n          if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_0017a527;\n    }" (if "if") (parenthesized_expression "(3 < param_3)" (( "(") (binary_expression "3 < param_3" (number_literal "3") (< "<") (identifier "param_3")) () ")")) (compound_statement "{\n      lVar6 = 4;\n      local_c8 = -1;\nLAB_0017a558:\n      uVar7 = *(undefined8 *)(param_4 + -8 + lVar6 * 8);\n      local_a0 = (char *)0x0;\n      local_98 = (char *)0x0;\n      local_a8 = 0;\n      uVar8 = FUN_0014c842(&local_ac,uVar7,&local_a0,&local_a8);\n      pcVar17 = (char *)FUN_0013465f(uVar8);\n      iVar2 = iVar4;\n      if ((pcVar17 != (char *)0x0) && (*pcVar17 == '=')) {\n        if (local_a8 == 0) {\n          pcVar17 = pcVar17 + 1;\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = 1;\n          pcVar17 = (char *)0x0;\n        }\n      }\n      pcVar17 = (char *)FUN_0013465f(pcVar17);\n      if ((pcVar17 == (char *)0x0) ||\n         ((pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))))) {\n        iVar3 = local_ac;\n        if (local_ac == 0) {\n          uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);\n          *param_6 = uVar7;\n          local_ac = 1;\n          iVar3 = local_ac;\n        }\n      }\n      else {\n        iVar3 = local_ac;\n        local_a0 = pcVar16;\n        if (local_ac == 0) {\n          if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n      goto LAB_0017a527;\n    }" ({ "{") (expression_statement "lVar6 = 4;" (assignment_expression "lVar6 = 4" (identifier "lVar6") (= "=") (number_literal "4")) (; ";")) (expression_statement "local_c8 = -1;" (assignment_expression "local_c8 = -1" (identifier "local_c8") (= "=") (number_literal "-1")) (; ";")) (labeled_statement "LAB_0017a558:\n      uVar7 = *(undefined8 *)(param_4 + -8 + lVar6 * 8);" (statement_identifier "LAB_0017a558") (: ":") (expression_statement "uVar7 = *(undefined8 *)(param_4 + -8 + lVar6 * 8);" (assignment_expression "uVar7 = *(undefined8 *)(param_4 + -8 + lVar6 * 8)" (identifier "uVar7") (= "=") (pointer_expression "*(undefined8 *)(param_4 + -8 + lVar6 * 8)" (* "*") (cast_expression "(undefined8 *)(param_4 + -8 + lVar6 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + -8 + lVar6 * 8)" (( "(") (binary_expression "param_4 + -8 + lVar6 * 8" (binary_expression "param_4 + -8" (identifier "param_4") (+ "+") (number_literal "-8")) (+ "+") (binary_expression "lVar6 * 8" (identifier "lVar6") (* "*") (number_literal "8"))) () ")"))))) (; ";"))) (expression_statement "local_a0 = (char *)0x0;" (assignment_expression "local_a0 = (char *)0x0" (identifier "local_a0") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_98 = (char *)0x0;" (assignment_expression "local_98 = (char *)0x0" (identifier "local_98") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" (identifier "local_a8") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar8 = FUN_0014c842(&local_ac,uVar7,&local_a0,&local_a8);" (assignment_expression "uVar8 = FUN_0014c842(&local_ac,uVar7,&local_a0,&local_a8)" (identifier "uVar8") (= "=") (call_expression "FUN_0014c842(&local_ac,uVar7,&local_a0,&local_a8)" (identifier "FUN_0014c842") (argument_list "(&local_ac,uVar7,&local_a0,&local_a8)" (( "(") (pointer_expression "&local_ac" (& "&") (identifier "local_ac")) (, ",") (identifier "uVar7") (, ",") (pointer_expression "&local_a0" (& "&") (identifier "local_a0")) (, ",") (pointer_expression "&local_a8" (& "&") (identifier "local_a8")) () ")")))) (; ";")) (expression_statement "pcVar17 = (char *)FUN_0013465f(uVar8);" (assignment_expression "pcVar17 = (char *)FUN_0013465f(uVar8)" (identifier "pcVar17") (= "=") (cast_expression "(char *)FUN_0013465f(uVar8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0013465f(uVar8)" (identifier "FUN_0013465f") (argument_list "(uVar8)" (( "(") (identifier "uVar8") () ")"))))) (; ";")) (expression_statement "iVar2 = iVar4;" (assignment_expression "iVar2 = iVar4" (identifier "iVar2") (= "=") (identifier "iVar4")) (; ";")) (if_statement "if ((pcVar17 != (char *)0x0) && (*pcVar17 == '=')) {\n        if (local_a8 == 0) {\n          pcVar17 = pcVar17 + 1;\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = 1;\n          pcVar17 = (char *)0x0;\n        }\n      }" (if "if") (parenthesized_expression "((pcVar17 != (char *)0x0) && (*pcVar17 == '='))" (( "(") (binary_expression "(pcVar17 != (char *)0x0) && (*pcVar17 == '=')" (parenthesized_expression "(pcVar17 != (char *)0x0)" (( "(") (binary_expression "pcVar17 != (char *)0x0" (identifier "pcVar17") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(*pcVar17 == '=')" (( "(") (binary_expression "*pcVar17 == '='" (pointer_expression "*pcVar17" (* "*") (identifier "pcVar17")) (== "==") (char_literal "'='" (' "'") (character "=") (' "'"))) () ")"))) () ")")) (compound_statement "{\n        if (local_a8 == 0) {\n          pcVar17 = pcVar17 + 1;\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = 1;\n          pcVar17 = (char *)0x0;\n        }\n      }" ({ "{") (if_statement "if (local_a8 == 0) {\n          pcVar17 = pcVar17 + 1;\n          iVar2 = 1;\n        }\n        else {\n          iVar2 = 1;\n          pcVar17 = (char *)0x0;\n        }" (if "if") (parenthesized_expression "(local_a8 == 0)" (( "(") (binary_expression "local_a8 == 0" (identifier "local_a8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          pcVar17 = pcVar17 + 1;\n          iVar2 = 1;\n        }" ({ "{") (expression_statement "pcVar17 = pcVar17 + 1;" (assignment_expression "pcVar17 = pcVar17 + 1" (identifier "pcVar17") (= "=") (binary_expression "pcVar17 + 1" (identifier "pcVar17") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n          iVar2 = 1;\n          pcVar17 = (char *)0x0;\n        }" (else "else") (compound_statement "{\n          iVar2 = 1;\n          pcVar17 = (char *)0x0;\n        }" ({ "{") (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (expression_statement "pcVar17 = (char *)0x0;" (assignment_expression "pcVar17 = (char *)0x0" (identifier "pcVar17") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "pcVar17 = (char *)FUN_0013465f(pcVar17);" (assignment_expression "pcVar17 = (char *)FUN_0013465f(pcVar17)" (identifier "pcVar17") (= "=") (cast_expression "(char *)FUN_0013465f(pcVar17)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0013465f(pcVar17)" (identifier "FUN_0013465f") (argument_list "(pcVar17)" (( "(") (identifier "pcVar17") () ")"))))) (; ";")) (if_statement "if ((pcVar17 == (char *)0x0) ||\n         ((pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))))) {\n        iVar3 = local_ac;\n        if (local_ac == 0) {\n          uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);\n          *param_6 = uVar7;\n          local_ac = 1;\n          iVar3 = local_ac;\n        }\n      }\n      else {\n        iVar3 = local_ac;\n        local_a0 = pcVar16;\n        if (local_ac == 0) {\n          if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "((pcVar17 == (char *)0x0) ||\n         ((pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0'))))))" (( "(") (binary_expression "(pcVar17 == (char *)0x0) ||\n         ((pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))))" (parenthesized_expression "(pcVar17 == (char *)0x0)" (( "(") (binary_expression "pcVar17 == (char *)0x0" (identifier "pcVar17") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "((pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))))" (( "(") (parenthesized_expression "(pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0'))))" (( "(") (comma_expression "pcVar16 = local_a0, *pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))" (assignment_expression "pcVar16 = local_a0" (identifier "pcVar16") (= "=") (identifier "local_a0")) (, ",") (binary_expression "*pcVar17 != '\0' &&\n          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))" (binary_expression "*pcVar17 != '\0'" (pointer_expression "*pcVar17" (* "*") (identifier "pcVar17")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (&& "&&") (parenthesized_expression "((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))" (( "(") (parenthesized_expression "(pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0'))" (( "(") (comma_expression "pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),\n           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')" (assignment_expression "pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4)" (identifier "pcVar17") (= "=") (cast_expression "(char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4)" (identifier "FUN_0014c842") (argument_list "(&local_ac,pcVar17,&local_98,&local_a4)" (( "(") (pointer_expression "&local_ac" (& "&") (identifier "local_ac")) (, ",") (identifier "pcVar17") (, ",") (pointer_expression "&local_98" (& "&") (identifier "local_98")) (, ",") (pointer_expression "&local_a4" (& "&") (identifier "local_a4")) () ")"))))) (, ",") (binary_expression "pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')" (binary_expression "pcVar17 == (char *)0x0" (identifier "pcVar17") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (|| "||") (parenthesized_expression "(pcVar16 = local_a0, *pcVar17 != '\0')" (( "(") (comma_expression "pcVar16 = local_a0, *pcVar17 != '\0'" (assignment_expression "pcVar16 = local_a0" (identifier "pcVar16") (= "=") (identifier "local_a0")) (, ",") (binary_expression "*pcVar17 != '\0'" (pointer_expression "*pcVar17" (* "*") (identifier "pcVar17")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")")))) () ")")) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n        iVar3 = local_ac;\n        if (local_ac == 0) {\n          uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);\n          *param_6 = uVar7;\n          local_ac = 1;\n          iVar3 = local_ac;\n        }\n      }" ({ "{") (expression_statement "iVar3 = local_ac;" (assignment_expression "iVar3 = local_ac" (identifier "iVar3") (= "=") (identifier "local_ac")) (; ";")) (if_statement "if (local_ac == 0) {\n          uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);\n          *param_6 = uVar7;\n          local_ac = 1;\n          iVar3 = local_ac;\n        }" (if "if") (parenthesized_expression "(local_ac == 0)" (( "(") (binary_expression "local_ac == 0" (identifier "local_ac") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);\n          *param_6 = uVar7;\n          local_ac = 1;\n          iVar3 = local_ac;\n        }" ({ "{") (expression_statement "uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);" (assignment_expression "uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7)" (identifier "uVar7") (= "=") (call_expression "FUN_001776d2("parse error in \"%s\"",uVar7)" (identifier "FUN_001776d2") (argument_list "("parse error in \"%s\"",uVar7)" (( "(") (string_literal ""parse error in \"%s\""" (" """) (string_content "parse error in ") (escape_sequence "\"") (string_content "%s") (escape_sequence "\"") (" """)) (, ",") (identifier "uVar7") () ")")))) (; ";")) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "local_ac = 1;" (assignment_expression "local_ac = 1" (identifier "local_ac") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar3 = local_ac;" (assignment_expression "iVar3 = local_ac" (identifier "iVar3") (= "=") (identifier "local_ac")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        iVar3 = local_ac;\n        local_a0 = pcVar16;\n        if (local_ac == 0) {\n          if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" (else "else") (compound_statement "{\n        iVar3 = local_ac;\n        local_a0 = pcVar16;\n        if (local_ac == 0) {\n          if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "iVar3 = local_ac;" (assignment_expression "iVar3 = local_ac" (identifier "iVar3") (= "=") (identifier "local_ac")) (; ";")) (expression_statement "local_a0 = pcVar16;" (assignment_expression "local_a0 = pcVar16" (identifier "local_a0") (= "=") (identifier "pcVar16")) (; ";")) (if_statement "if (local_ac == 0) {\n          if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" (if "if") (parenthesized_expression "(local_ac == 0)" (( "(") (binary_expression "local_ac == 0" (identifier "local_ac") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" ({ "{") (if_statement "if (iVar2 == 0) {\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }\n          else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);\n            if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }\n            iVar3 = *(int *)(puVar5 + 3);\n            *(int *)(puVar5 + 3) = iVar3 + 1;\n            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;\n            local_a0 = (char *)0x0;\n            iVar3 = iVar2;\n          }" ({ "{") (expression_statement "iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);" (assignment_expression "iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb)" (identifier "iVar3") (= "=") (call_expression "FUN_0012ad85(pcVar16,&DAT_001f3ddb)" (identifier "FUN_0012ad85") (argument_list "(pcVar16,&DAT_001f3ddb)" (( "(") (identifier "pcVar16") (, ",") (pointer_expression "&DAT_001f3ddb" (& "&") (identifier "DAT_001f3ddb")) () ")")))) (; ";")) (if_statement "if ((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }\n            else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }" (if "if") (parenthesized_expression "((iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0))" (( "(") (binary_expression "(iVar3 == 0) ||\n               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)" (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)" (( "(") (comma_expression "iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0" (assignment_expression "iVar3 = FUN_0012ad85(pcVar16,"rowid")" (identifier "iVar3") (= "=") (call_expression "FUN_0012ad85(pcVar16,"rowid")" (identifier "FUN_0012ad85") (argument_list "(pcVar16,"rowid")" (( "(") (identifier "pcVar16") (, ",") (string_literal ""rowid"" (" """) (string_content "rowid") (" """)) () ")")))) (, ",") (comma_expression "pcVar17 = local_98, iVar3 == 0" (assignment_expression "pcVar17 = local_98" (identifier "pcVar17") (= "=") (identifier "local_98")) (, ",") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")))) () ")"))) () ")")) (compound_statement "{\n              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);\n              *param_6 = uVar7;\n              iVar2 = 1;\n            }" ({ "{") (expression_statement "uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);" (assignment_expression "uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16)" (identifier "uVar7") (= "=") (call_expression "FUN_001776d2("reserved fts5 column name: %s",pcVar16)" (identifier "FUN_001776d2") (argument_list "("reserved fts5 column name: %s",pcVar16)" (( "(") (string_literal ""reserved fts5 column name: %s"" (" """) (string_content "reserved fts5 column name: %s") (" """)) (, ",") (identifier "pcVar16") () ")")))) (; ";")) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }" (else "else") (if_statement "if (local_98 != (char *)0x0) {\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }" (if "if") (parenthesized_expression "(local_98 != (char *)0x0)" (( "(") (binary_expression "local_98 != (char *)0x0" (identifier "local_98") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              iVar2 = FUN_0012ad85(local_98,"unindexed");\n              if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }\n            }" ({ "{") (expression_statement "iVar2 = FUN_0012ad85(local_98,"unindexed");" (assignment_expression "iVar2 = FUN_0012ad85(local_98,"unindexed")" (identifier "iVar2") (= "=") (call_expression "FUN_0012ad85(local_98,"unindexed")" (identifier "FUN_0012ad85") (argument_list "(local_98,"unindexed")" (( "(") (identifier "local_98") (, ",") (string_literal ""unindexed"" (" """) (string_content "unindexed") (" """)) () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }\n              else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;\n                iVar2 = 0;\n              }" ({ "{") (expression_statement "*(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;" (assignment_expression "*(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1" (pointer_expression "*(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3))" (* "*") (cast_expression "(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3))" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5[5] + (long)*(int *)(puVar5 + 3))" (( "(") (binary_expression "puVar5[5] + (long)*(int *)(puVar5 + 3)" (subscript_expression "puVar5[5]" (identifier "puVar5") ([ "[") (number_literal "5") (] "]")) (+ "+") (cast_expression "(long)*(int *)(puVar5 + 3)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "*(int *)(puVar5 + 3)" (* "*") (cast_expression "(int *)(puVar5 + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 3)" (( "(") (binary_expression "puVar5 + 3" (identifier "puVar5") (+ "+") (number_literal "3")) () ")")))))) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }" (else "else") (compound_statement "{\n                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);\n                *param_6 = uVar7;\n                iVar2 = 1;\n              }" ({ "{") (expression_statement "uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);" (assignment_expression "uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17)" (identifier "uVar7") (= "=") (call_expression "FUN_001776d2("unrecognized column option: %s",pcVar17)" (identifier "FUN_001776d2") (argument_list "("unrecognized column option: %s",pcVar17)" (( "(") (string_literal ""unrecognized column option: %s"" (" """) (string_content "unrecognized column option: %s") (" """)) (, ",") (identifier "pcVar17") () ")")))) (; ";")) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (} "}")))) (} "}"))))) (expression_statement "iVar3 = *(int *)(puVar5 + 3);" (assignment_expression "iVar3 = *(int *)(puVar5 + 3)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(puVar5 + 3)" (* "*") (cast_expression "(int *)(puVar5 + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 3)" (( "(") (binary_expression "puVar5 + 3" (identifier "puVar5") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar5 + 3) = iVar3 + 1;" (assignment_expression "*(int *)(puVar5 + 3) = iVar3 + 1" (pointer_expression "*(int *)(puVar5 + 3)" (* "*") (cast_expression "(int *)(puVar5 + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 3)" (( "(") (binary_expression "puVar5 + 3" (identifier "puVar5") (+ "+") (number_literal "3")) () ")")))) (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;" (assignment_expression "*(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16" (pointer_expression "*(char **)(puVar5[4] + (long)iVar3 * 8)" (* "*") (cast_expression "(char **)(puVar5[4] + (long)iVar3 * 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar5[4] + (long)iVar3 * 8)" (( "(") (binary_expression "puVar5[4] + (long)iVar3 * 8" (subscript_expression "puVar5[4]" (identifier "puVar5") ([ "[") (number_literal "4") (] "]")) (+ "+") (binary_expression "(long)iVar3 * 8" (cast_expression "(long)iVar3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar3")) (* "*") (number_literal "8"))) () ")")))) (= "=") (identifier "pcVar16")) (; ";")) (expression_statement "local_a0 = (char *)0x0;" (assignment_expression "local_a0 = (char *)0x0" (identifier "local_a0") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar3 = iVar2;" (assignment_expression "iVar3 = iVar2" (identifier "iVar3") (= "=") (identifier "iVar2")) (; ";")) (} "}")) (else_clause "else {\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }" (else "else") (compound_statement "{\n            pcVar17 = local_98;\n            if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }\n            local_a4 = 0;\n            uVar11 = 0xffffffffffffffff;\n            pcVar15 = pcVar16;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');\n            uVar11 = ~uVar11 - 1;\n            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);\n            if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }" ({ "{") (expression_statement "pcVar17 = local_98;" (assignment_expression "pcVar17 = local_98" (identifier "pcVar17") (= "=") (identifier "local_98")) (; ";")) (if_statement "if (local_98 == (char *)0x0) {\n              pcVar17 = "";\n            }" (if "if") (parenthesized_expression "(local_98 == (char *)0x0)" (( "(") (binary_expression "local_98 == (char *)0x0" (identifier "local_98") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              pcVar17 = "";\n            }" ({ "{") (expression_statement "pcVar17 = "";" (assignment_expression "pcVar17 = """ (identifier "pcVar17") (= "=") (string_literal """" (" """) (" """))) (; ";")) (} "}"))) (expression_statement "local_a4 = 0;" (assignment_expression "local_a4 = 0" (identifier "local_a4") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar11 = 0xffffffffffffffff;" (assignment_expression "uVar11 = 0xffffffffffffffff" (identifier "uVar11") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar15 = pcVar16;" (assignment_expression "pcVar15 = pcVar16" (identifier "pcVar15") (= "=") (identifier "pcVar16")) (; ";")) (do_statement "do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            } while (cVar1 != '\0');" (do "do") (compound_statement "{\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar15;\n              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;\n            }" ({ "{") (if_statement "if (uVar11 == 0) break;" (if "if") (parenthesized_expression "(uVar11 == 0)" (( "(") (binary_expression "uVar11 == 0" (identifier "uVar11") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar11 = uVar11 - 1;" (assignment_expression "uVar11 = uVar11 - 1" (identifier "uVar11") (= "=") (binary_expression "uVar11 - 1" (identifier "uVar11") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar1 = *pcVar15;" (assignment_expression "cVar1 = *pcVar15" (identifier "cVar1") (= "=") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15"))) (; ";")) (expression_statement "pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;" (assignment_expression "pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1" (identifier "pcVar15") (= "=") (binary_expression "pcVar15 + (ulong)bVar18 * -2 + 1" (binary_expression "pcVar15 + (ulong)bVar18 * -2" (identifier "pcVar15") (+ "+") (binary_expression "(ulong)bVar18 * -2" (cast_expression "(ulong)bVar18" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar18")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar1 != '\0')" (( "(") (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "uVar11 = ~uVar11 - 1;" (assignment_expression "uVar11 = ~uVar11 - 1" (identifier "uVar11") (= "=") (binary_expression "~uVar11 - 1" (unary_expression "~uVar11" (~ "~") (identifier "uVar11")) (- "-") (number_literal "1"))) (; ";")) (expression_statement "iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);" (assignment_expression "iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff)" (identifier "iVar3") (= "=") (call_expression "FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff)" (identifier "FUN_0012ada6") (argument_list "("prefix",pcVar16,uVar11 & 0xffffffff)" (( "(") (string_literal ""prefix"" (" """) (string_content "prefix") (" """)) (, ",") (identifier "pcVar16") (, ",") (binary_expression "uVar11 & 0xffffffff" (identifier "uVar11") (& "&") (number_literal "0xffffffff")) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }\n            else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }\n              uVar7 = FUN_0014bc1d(&local_a4,0x7c);\n              puVar5[7] = uVar7;\n              iVar3 = local_a4;\n              if (local_a4 == 0) goto LAB_0017a68f;\n            }" ({ "{") (if_statement "if (puVar5[7] != 0) {\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }" (if "if") (parenthesized_expression "(puVar5[7] != 0)" (( "(") (binary_expression "puVar5[7] != 0" (subscript_expression "puVar5[7]" (identifier "puVar5") ([ "[") (number_literal "7") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );\n              }" ({ "{") (labeled_statement "LAB_0017a68f:\n                do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );" (statement_identifier "LAB_0017a68f") (: ":") (do_statement "do {\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                } while( true );" (do "do") (compound_statement "{\n                  cVar1 = *pcVar17;\n                  while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }\n                  if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }\n                  cVar1 = *pcVar17;\n                  if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }\n                  iVar2 = 0;\n                  do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);\n                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;\n                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;\n                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;\n                  iVar2 = 0;\n                }" ({ "{") (expression_statement "cVar1 = *pcVar17;" (assignment_expression "cVar1 = *pcVar17" (identifier "cVar1") (= "=") (pointer_expression "*pcVar17" (* "*") (identifier "pcVar17"))) (; ";")) (while_statement "while (cVar1 == ' ') {\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }" (while "while") (parenthesized_expression "(cVar1 == ' ')" (( "(") (binary_expression "cVar1 == ' '" (identifier "cVar1") (== "==") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")")) (compound_statement "{\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                  }" ({ "{") (expression_statement "pcVar17 = pcVar17 + 1;" (assignment_expression "pcVar17 = pcVar17 + 1" (identifier "pcVar17") (= "=") (binary_expression "pcVar17 + 1" (identifier "pcVar17") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar1 = *pcVar17;" (assignment_expression "cVar1 = *pcVar17" (identifier "cVar1") (= "=") (pointer_expression "*pcVar17" (* "*") (identifier "pcVar17"))) (; ";")) (} "}"))) (if_statement "if ((cVar1 == ',') && (iVar2 == 0)) {\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }\n                  else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }" (if "if") (parenthesized_expression "((cVar1 == ',') && (iVar2 == 0))" (( "(") (binary_expression "(cVar1 == ',') && (iVar2 == 0)" (parenthesized_expression "(cVar1 == ',')" (( "(") (binary_expression "cVar1 == ','" (identifier "cVar1") (== "==") (char_literal "','" (' "'") (character ",") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                    cVar1 = pcVar17[1];\n                    pcVar17 = pcVar17 + 1;\n                    while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }\n                  }" ({ "{") (expression_statement "cVar1 = pcVar17[1];" (assignment_expression "cVar1 = pcVar17[1]" (identifier "cVar1") (= "=") (subscript_expression "pcVar17[1]" (identifier "pcVar17") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pcVar17 = pcVar17 + 1;" (assignment_expression "pcVar17 = pcVar17 + 1" (identifier "pcVar17") (= "=") (binary_expression "pcVar17 + 1" (identifier "pcVar17") (+ "+") (number_literal "1"))) (; ";")) (while_statement "while (cVar1 == ' ') {\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }" (while "while") (parenthesized_expression "(cVar1 == ' ')" (( "(") (binary_expression "cVar1 == ' '" (identifier "cVar1") (== "==") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")")) (compound_statement "{\n                      pcVar17 = pcVar17 + 1;\n                      cVar1 = *pcVar17;\n                    }" ({ "{") (expression_statement "pcVar17 = pcVar17 + 1;" (assignment_expression "pcVar17 = pcVar17 + 1" (identifier "pcVar17") (= "=") (binary_expression "pcVar17 + 1" (identifier "pcVar17") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar1 = *pcVar17;" (assignment_expression "cVar1 = *pcVar17" (identifier "cVar1") (= "=") (pointer_expression "*pcVar17" (* "*") (identifier "pcVar17"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }" (else "else") (compound_statement "{\n                    iVar3 = local_a4;\n                    if (cVar1 == '\0') goto LAB_0017a527;\n                  }" ({ "{") (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" (identifier "iVar3") (= "=") (identifier "local_a4")) (; ";")) (if_statement "if (cVar1 == '\0') goto LAB_0017a527;" (if "if") (parenthesized_expression "(cVar1 == '\0')" (( "(") (binary_expression "cVar1 == '\0'" (identifier "cVar1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0017a527;" (goto "goto") (statement_identifier "LAB_0017a527") (; ";"))) (} "}")))) (expression_statement "cVar1 = *pcVar17;" (assignment_expression "cVar1 = *pcVar17" (identifier "cVar1") (= "=") (pointer_expression "*pcVar17" (* "*") (identifier "pcVar17"))) (; ";")) (if_statement "if (9 < (byte)(cVar1 - 0x30U)) {\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }" (if "if") (parenthesized_expression "(9 < (byte)(cVar1 - 0x30U))" (( "(") (binary_expression "9 < (byte)(cVar1 - 0x30U)" (number_literal "9") (< "<") (call_expression "(byte)(cVar1 - 0x30U)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(cVar1 - 0x30U)" (( "(") (binary_expression "cVar1 - 0x30U" (identifier "cVar1") (- "-") (number_literal "0x30U")) () ")")))) () ")")) (compound_statement "{\n                    uVar7 = FUN_001776d2("malformed prefix=... directive");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }" ({ "{") (expression_statement "uVar7 = FUN_001776d2("malformed prefix=... directive");" (assignment_expression "uVar7 = FUN_001776d2("malformed prefix=... directive")" (identifier "uVar7") (= "=") (call_expression "FUN_001776d2("malformed prefix=... directive")" (identifier "FUN_001776d2") (argument_list "("malformed prefix=... directive")" (( "(") (string_literal ""malformed prefix=... directive"" (" """) (string_content "malformed prefix=... directive") (" """)) () ")")))) (; ";")) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "local_a4 = 1;" (assignment_expression "local_a4 = 1" (identifier "local_a4") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" (identifier "iVar3") (= "=") (identifier "local_a4")) (; ";")) (goto_statement "goto LAB_0017a527;" (goto "goto") (statement_identifier "LAB_0017a527") (; ";")) (} "}"))) (if_statement "if (*(int *)(puVar5 + 6) == 0x1f) {\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }" (if "if") (parenthesized_expression "(*(int *)(puVar5 + 6) == 0x1f)" (( "(") (binary_expression "*(int *)(puVar5 + 6) == 0x1f" (pointer_expression "*(int *)(puVar5 + 6)" (* "*") (cast_expression "(int *)(puVar5 + 6)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 6)" (( "(") (binary_expression "puVar5 + 6" (identifier "puVar5") (+ "+") (number_literal "6")) () ")")))) (== "==") (number_literal "0x1f")) () ")")) (compound_statement "{\n                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                    goto LAB_0017a527;\n                  }" ({ "{") (expression_statement "uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);" (assignment_expression "uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f)" (identifier "uVar7") (= "=") (call_expression "FUN_001776d2("too many prefix indexes (max %d)",0x1f)" (identifier "FUN_001776d2") (argument_list "("too many prefix indexes (max %d)",0x1f)" (( "(") (string_literal ""too many prefix indexes (max %d)"" (" """) (string_content "too many prefix indexes (max %d)") (" """)) (, ",") (number_literal "0x1f") () ")")))) (; ";")) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "local_a4 = 1;" (assignment_expression "local_a4 = 1" (identifier "local_a4") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" (identifier "iVar3") (= "=") (identifier "local_a4")) (; ";")) (goto_statement "goto LAB_0017a527;" (goto "goto") (statement_identifier "LAB_0017a527") (; ";")) (} "}"))) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  } while (iVar2 < 1000);" (do "do") (compound_statement "{\n                    iVar2 = cVar1 + -0x30 + iVar2 * 10;\n                    pcVar17 = pcVar17 + 1;\n                    cVar1 = *pcVar17;\n                    if (9 < (byte)(cVar1 - 0x30U)) break;\n                  }" ({ "{") (expression_statement "iVar2 = cVar1 + -0x30 + iVar2 * 10;" (assignment_expression "iVar2 = cVar1 + -0x30 + iVar2 * 10" (identifier "iVar2") (= "=") (binary_expression "cVar1 + -0x30 + iVar2 * 10" (binary_expression "cVar1 + -0x30" (identifier "cVar1") (+ "+") (number_literal "-0x30")) (+ "+") (binary_expression "iVar2 * 10" (identifier "iVar2") (* "*") (number_literal "10")))) (; ";")) (expression_statement "pcVar17 = pcVar17 + 1;" (assignment_expression "pcVar17 = pcVar17 + 1" (identifier "pcVar17") (= "=") (binary_expression "pcVar17 + 1" (identifier "pcVar17") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar1 = *pcVar17;" (assignment_expression "cVar1 = *pcVar17" (identifier "cVar1") (= "=") (pointer_expression "*pcVar17" (* "*") (identifier "pcVar17"))) (; ";")) (if_statement "if (9 < (byte)(cVar1 - 0x30U)) break;" (if "if") (parenthesized_expression "(9 < (byte)(cVar1 - 0x30U))" (( "(") (binary_expression "9 < (byte)(cVar1 - 0x30U)" (number_literal "9") (< "<") (call_expression "(byte)(cVar1 - 0x30U)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(cVar1 - 0x30U)" (( "(") (binary_expression "cVar1 - 0x30U" (identifier "cVar1") (- "-") (number_literal "0x30U")) () ")")))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(iVar2 < 1000)" (( "(") (binary_expression "iVar2 < 1000" (identifier "iVar2") (< "<") (number_literal "1000")) () ")")) (; ";")) (if_statement "if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;" (if "if") (parenthesized_expression "(0x3e6 < iVar2 - 1U)" (( "(") (binary_expression "0x3e6 < iVar2 - 1U" (number_literal "0x3e6") (< "<") (binary_expression "iVar2 - 1U" (identifier "iVar2") (- "-") (number_literal "1U"))) () ")")) (goto_statement "goto LAB_0017a6fb;" (goto "goto") (statement_identifier "LAB_0017a6fb") (; ";"))) (expression_statement "*(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;" (assignment_expression "*(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2" (pointer_expression "*(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4)" (* "*") (cast_expression "(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4)" (( "(") (binary_expression "puVar5[7] + (long)*(int *)(puVar5 + 6) * 4" (subscript_expression "puVar5[7]" (identifier "puVar5") ([ "[") (number_literal "7") (] "]")) (+ "+") (binary_expression "(long)*(int *)(puVar5 + 6) * 4" (cast_expression "(long)*(int *)(puVar5 + 6)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "*(int *)(puVar5 + 6)" (* "*") (cast_expression "(int *)(puVar5 + 6)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 6)" (( "(") (binary_expression "puVar5 + 6" (identifier "puVar5") (+ "+") (number_literal "6")) () ")"))))) (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "iVar2")) (; ";")) (expression_statement "*(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;" (assignment_expression "*(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1" (pointer_expression "*(int *)(puVar5 + 6)" (* "*") (cast_expression "(int *)(puVar5 + 6)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 6)" (( "(") (binary_expression "puVar5 + 6" (identifier "puVar5") (+ "+") (number_literal "6")) () ")")))) (= "=") (binary_expression "*(int *)(puVar5 + 6) + 1" (pointer_expression "*(int *)(puVar5 + 6)" (* "*") (cast_expression "(int *)(puVar5 + 6)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 6)" (( "(") (binary_expression "puVar5 + 6" (identifier "puVar5") (+ "+") (number_literal "6")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (} "}"))) (expression_statement "uVar7 = FUN_0014bc1d(&local_a4,0x7c);" (assignment_expression "uVar7 = FUN_0014bc1d(&local_a4,0x7c)" (identifier "uVar7") (= "=") (call_expression "FUN_0014bc1d(&local_a4,0x7c)" (identifier "FUN_0014bc1d") (argument_list "(&local_a4,0x7c)" (( "(") (pointer_expression "&local_a4" (& "&") (identifier "local_a4")) (, ",") (number_literal "0x7c") () ")")))) (; ";")) (expression_statement "puVar5[7] = uVar7;" (assignment_expression "puVar5[7] = uVar7" (subscript_expression "puVar5[7]" (identifier "puVar5") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" (identifier "iVar3") (= "=") (identifier "local_a4")) (; ";")) (if_statement "if (local_a4 == 0) goto LAB_0017a68f;" (if "if") (parenthesized_expression "(local_a4 == 0)" (( "(") (binary_expression "local_a4 == 0" (identifier "local_a4") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0017a68f;" (goto "goto") (statement_identifier "LAB_0017a68f") (; ";"))) (} "}")) (else_clause "else {\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }" (else "else") (compound_statement "{\n              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);\n              if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }\n            }" ({ "{") (expression_statement "iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);" (assignment_expression "iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff)" (identifier "iVar3") (= "=") (call_expression "FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff)" (identifier "FUN_0012ada6") (argument_list "("tokenize",pcVar16,uVar11 & 0xffffffff)" (( "(") (string_literal ""tokenize"" (" """) (string_content "tokenize") (" """)) (, ",") (identifier "pcVar16") (, ",") (binary_expression "uVar11 & 0xffffffff" (identifier "uVar11") (& "&") (number_literal "0xffffffff")) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }\n              else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                uVar11 = 0xffffffffffffffff;\n                pcVar16 = pcVar17;\n                do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');\n                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);\n                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);\n                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }\nLAB_0017a842:\n                FUN_00141303(lVar12);\n                FUN_00141303(pvVar9);\n                iVar3 = local_a4;\n              }" ({ "{") (expression_statement "uVar11 = 0xffffffffffffffff;" (assignment_expression "uVar11 = 0xffffffffffffffff" (identifier "uVar11") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar16 = pcVar17;" (assignment_expression "pcVar16 = pcVar17" (identifier "pcVar16") (= "=") (identifier "pcVar17")) (; ";")) (do_statement "do {\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                } while (cVar1 != '\0');" (do "do") (compound_statement "{\n                  if (uVar11 == 0) break;\n                  uVar11 = uVar11 - 1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                }" ({ "{") (if_statement "if (uVar11 == 0) break;" (if "if") (parenthesized_expression "(uVar11 == 0)" (( "(") (binary_expression "uVar11 == 0" (identifier "uVar11") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar11 = uVar11 - 1;" (assignment_expression "uVar11 = uVar11 - 1" (identifier "uVar11") (= "=") (binary_expression "uVar11 - 1" (identifier "uVar11") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar1 = *pcVar16;" (assignment_expression "cVar1 = *pcVar16" (identifier "cVar1") (= "=") (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16"))) (; ";")) (expression_statement "pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;" (assignment_expression "pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1" (identifier "pcVar16") (= "=") (binary_expression "pcVar16 + (ulong)bVar18 * -2 + 1" (binary_expression "pcVar16 + (ulong)bVar18 * -2" (identifier "pcVar16") (+ "+") (binary_expression "(ulong)bVar18 * -2" (cast_expression "(ulong)bVar18" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar18")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar1 != '\0')" (( "(") (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);" (assignment_expression "lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8)" (identifier "lVar12") (= "=") (call_expression "FUN_0014bc1d(&local_a4,~uVar11 * 8)" (identifier "FUN_0014bc1d") (argument_list "(&local_a4,~uVar11 * 8)" (( "(") (pointer_expression "&local_a4" (& "&") (identifier "local_a4")) (, ",") (binary_expression "~uVar11 * 8" (unary_expression "~uVar11" (~ "~") (identifier "uVar11")) (* "*") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);" (assignment_expression "pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2)" (identifier "pvVar9") (= "=") (cast_expression "(void *)FUN_0014bc1d(&local_a4,~uVar11 * 2)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0014bc1d(&local_a4,~uVar11 * 2)" (identifier "FUN_0014bc1d") (argument_list "(&local_a4,~uVar11 * 2)" (( "(") (pointer_expression "&local_a4" (& "&") (identifier "local_a4")) (, ",") (binary_expression "~uVar11 * 2" (unary_expression "~uVar11" (~ "~") (identifier "uVar11")) (* "*") (number_literal "2")) () ")"))))) (; ";")) (if_statement "if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }" (if "if") (parenthesized_expression "((lVar12 != 0) && (pvVar9 != (void *)0x0))" (( "(") (binary_expression "(lVar12 != 0) && (pvVar9 != (void *)0x0)" (parenthesized_expression "(lVar12 != 0)" (( "(") (binary_expression "lVar12 != 0" (identifier "lVar12") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(pvVar9 != (void *)0x0)" (( "(") (binary_expression "pvVar9 != (void *)0x0" (identifier "pvVar9") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n                  if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }\n                }" ({ "{") (if_statement "if (puVar5[0xd] == 0) {\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }" (if "if") (parenthesized_expression "(puVar5[0xd] == 0)" (( "(") (binary_expression "puVar5[0xd] == 0" (subscript_expression "puVar5[0xd]" (identifier "puVar5") ([ "[") (number_literal "0xd") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    uVar11 = 0;\n                    if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }\n                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);\n                  }" ({ "{") (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (if_statement "if (*pcVar17 != '\0') {\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }" (if "if") (parenthesized_expression "(*pcVar17 != '\0')" (( "(") (binary_expression "*pcVar17 != '\0'" (pointer_expression "*pcVar17" (* "*") (identifier "pcVar17")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                      uVar11 = 0;\n                      __dest = pvVar9;\n                      do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');\n                    }" ({ "{") (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "__dest = pvVar9;" (assignment_expression "__dest = pvVar9" (identifier "__dest") (= "=") (identifier "pvVar9")) (; ";")) (do_statement "do {\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      } while (*pcVar17 != '\0');" (do "do") (compound_statement "{\n                        pcVar17 = (char *)FUN_0013465f(pcVar17);\n                        if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }\n                        if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }\n                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);\n                        *(void **)(lVar12 + uVar11 * 8) = __dest;\n                        FUN_00134700(__dest);\n                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);\n                        pcVar17 = (char *)FUN_0013465f(lVar10);\n                        uVar11 = uVar11 + 1;\n                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;\n                      }" ({ "{") (expression_statement "pcVar17 = (char *)FUN_0013465f(pcVar17);" (assignment_expression "pcVar17 = (char *)FUN_0013465f(pcVar17)" (identifier "pcVar17") (= "=") (cast_expression "(char *)FUN_0013465f(pcVar17)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0013465f(pcVar17)" (identifier "FUN_0013465f") (argument_list "(pcVar17)" (( "(") (identifier "pcVar17") () ")"))))) (; ";")) (if_statement "if (*pcVar17 == '\'') {\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }\n                        else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }" (if "if") (parenthesized_expression "(*pcVar17 == '\'')" (( "(") (binary_expression "*pcVar17 == '\''" (pointer_expression "*pcVar17" (* "*") (identifier "pcVar17")) (== "==") (char_literal "'\''" (' "'") (escape_sequence "\'") (' "'"))) () ")")) (compound_statement "{\n                          lVar10 = FUN_0013e006(pcVar17);\n                        }" ({ "{") (expression_statement "lVar10 = FUN_0013e006(pcVar17);" (assignment_expression "lVar10 = FUN_0013e006(pcVar17)" (identifier "lVar10") (= "=") (call_expression "FUN_0013e006(pcVar17)" (identifier "FUN_0013e006") (argument_list "(pcVar17)" (( "(") (identifier "pcVar17") () ")")))) (; ";")) (} "}")) (else_clause "else {\n                          lVar10 = FUN_00134676(pcVar17);\n                        }" (else "else") (compound_statement "{\n                          lVar10 = FUN_00134676(pcVar17);\n                        }" ({ "{") (expression_statement "lVar10 = FUN_00134676(pcVar17);" (assignment_expression "lVar10 = FUN_00134676(pcVar17)" (identifier "lVar10") (= "=") (call_expression "FUN_00134676(pcVar17)" (identifier "FUN_00134676") (argument_list "(pcVar17)" (( "(") (identifier "pcVar17") () ")")))) (; ";")) (} "}")))) (if_statement "if (lVar10 == 0) {\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");\n                          *param_6 = uVar7;\n                          local_a4 = 1;\n                          goto LAB_0017a842;\n                        }" ({ "{") (labeled_statement "LAB_0017a8ef:\n                          uVar7 = FUN_001776d2("parse error in tokenize directive");" (statement_identifier "LAB_0017a8ef") (: ":") (expression_statement "uVar7 = FUN_001776d2("parse error in tokenize directive");" (assignment_expression "uVar7 = FUN_001776d2("parse error in tokenize directive")" (identifier "uVar7") (= "=") (call_expression "FUN_001776d2("parse error in tokenize directive")" (identifier "FUN_001776d2") (argument_list "("parse error in tokenize directive")" (( "(") (string_literal ""parse error in tokenize directive"" (" """) (string_content "parse error in tokenize directive") (" """)) () ")")))) (; ";"))) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "local_a4 = 1;" (assignment_expression "local_a4 = 1" (identifier "local_a4") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0017a842;" (goto "goto") (statement_identifier "LAB_0017a842") (; ";")) (} "}"))) (expression_statement "memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);" (call_expression "memcpy(__dest,pcVar17,lVar10 - (long)pcVar17)" (identifier "memcpy") (argument_list "(__dest,pcVar17,lVar10 - (long)pcVar17)" (( "(") (identifier "__dest") (, ",") (identifier "pcVar17") (, ",") (binary_expression "lVar10 - (long)pcVar17" (identifier "lVar10") (- "-") (cast_expression "(long)pcVar17" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar17"))) () ")"))) (; ";")) (expression_statement "*(void **)(lVar12 + uVar11 * 8) = __dest;" (assignment_expression "*(void **)(lVar12 + uVar11 * 8) = __dest" (pointer_expression "*(void **)(lVar12 + uVar11 * 8)" (* "*") (cast_expression "(void **)(lVar12 + uVar11 * 8)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar12 + uVar11 * 8)" (( "(") (binary_expression "lVar12 + uVar11 * 8" (identifier "lVar12") (+ "+") (binary_expression "uVar11 * 8" (identifier "uVar11") (* "*") (number_literal "8"))) () ")")))) (= "=") (identifier "__dest")) (; ";")) (expression_statement "FUN_00134700(__dest);" (call_expression "FUN_00134700(__dest)" (identifier "FUN_00134700") (argument_list "(__dest)" (( "(") (identifier "__dest") () ")"))) (; ";")) (expression_statement "__dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);" (assignment_expression "__dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U)" (identifier "__dest") (= "=") (cast_expression "(void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__dest + (lVar10 - (long)pcVar17) + 1U)" (( "(") (binary_expression "(long)__dest + (lVar10 - (long)pcVar17) + 1U" (binary_expression "(long)__dest + (lVar10 - (long)pcVar17)" (cast_expression "(long)__dest" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__dest")) (+ "+") (parenthesized_expression "(lVar10 - (long)pcVar17)" (( "(") (binary_expression "lVar10 - (long)pcVar17" (identifier "lVar10") (- "-") (cast_expression "(long)pcVar17" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar17"))) () ")"))) (+ "+") (number_literal "1U")) () ")")))) (; ";")) (expression_statement "pcVar17 = (char *)FUN_0013465f(lVar10);" (assignment_expression "pcVar17 = (char *)FUN_0013465f(lVar10)" (identifier "pcVar17") (= "=") (cast_expression "(char *)FUN_0013465f(lVar10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0013465f(lVar10)" (identifier "FUN_0013465f") (argument_list "(lVar10)" (( "(") (identifier "lVar10") () ")"))))) (; ";")) (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" (identifier "uVar11") (= "=") (binary_expression "uVar11 + 1" (identifier "uVar11") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;" (if "if") (parenthesized_expression "(pcVar17 == (char *)0x0)" (( "(") (binary_expression "pcVar17 == (char *)0x0" (identifier "pcVar17") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0017a8ef;" (goto "goto") (statement_identifier "LAB_0017a8ef") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(*pcVar17 != '\0')" (( "(") (binary_expression "*pcVar17 != '\0'" (pointer_expression "*pcVar17" (* "*") (identifier "pcVar17")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (} "}"))) (expression_statement "local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6);" (assignment_expression "local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6)" (identifier "local_a4") (= "=") (call_expression "FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6)" (identifier "FUN_0017a177") (argument_list "(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,\n                                            puVar5 + 0xe,param_6)" (( "(") (identifier "param_1") (, ",") (identifier "lVar12") (, ",") (binary_expression "uVar11 & 0xffffffff" (identifier "uVar11") (& "&") (number_literal "0xffffffff")) (, ",") (binary_expression "puVar5 + 0xd" (identifier "puVar5") (+ "+") (number_literal "0xd")) (, ",") (binary_expression "puVar5 + 0xe" (identifier "puVar5") (+ "+") (number_literal "0xe")) (, ",") (identifier "param_6") () ")")))) (; ";")) (} "}")) (else_clause "else {\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }" (else "else") (compound_statement "{\n                    uVar7 = FUN_001776d2("multiple tokenize=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                  }" ({ "{") (expression_statement "uVar7 = FUN_001776d2("multiple tokenize=... directives");" (assignment_expression "uVar7 = FUN_001776d2("multiple tokenize=... directives")" (identifier "uVar7") (= "=") (call_expression "FUN_001776d2("multiple tokenize=... directives")" (identifier "FUN_001776d2") (argument_list "("multiple tokenize=... directives")" (( "(") (string_literal ""multiple tokenize=... directives"" (" """) (string_content "multiple tokenize=... directives") (" """)) () ")")))) (; ";")) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "local_a4 = 1;" (assignment_expression "local_a4 = 1" (identifier "local_a4") (= "=") (number_literal "1")) (; ";")) (} "}")))) (} "}"))) (labeled_statement "LAB_0017a842:\n                FUN_00141303(lVar12);" (statement_identifier "LAB_0017a842") (: ":") (expression_statement "FUN_00141303(lVar12);" (call_expression "FUN_00141303(lVar12)" (identifier "FUN_00141303") (argument_list "(lVar12)" (( "(") (identifier "lVar12") () ")"))) (; ";"))) (expression_statement "FUN_00141303(pvVar9);" (call_expression "FUN_00141303(pvVar9)" (identifier "FUN_00141303") (argument_list "(pvVar9)" (( "(") (identifier "pvVar9") () ")"))) (; ";")) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" (identifier "iVar3") (= "=") (identifier "local_a4")) (; ";")) (} "}")) (else_clause "else {\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }" (else "else") (compound_statement "{\n                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);\n                if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }\n              }" ({ "{") (expression_statement "iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);" (assignment_expression "iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff)" (identifier "iVar3") (= "=") (call_expression "FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff)" (identifier "FUN_0012ada6") (argument_list "("content",pcVar16,uVar11 & 0xffffffff)" (( "(") (string_literal ""content"" (" """) (string_content "content") (" """)) (, ",") (identifier "pcVar16") (, ",") (binary_expression "uVar11 & 0xffffffff" (identifier "uVar11") (& "&") (number_literal "0xffffffff")) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }\n                else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }\n                }" ({ "{") (if_statement "if (*(int *)(puVar5 + 8) == 0) {\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }" (if "if") (parenthesized_expression "(*(int *)(puVar5 + 8) == 0)" (( "(") (binary_expression "*(int *)(puVar5 + 8) == 0" (pointer_expression "*(int *)(puVar5 + 8)" (* "*") (cast_expression "(int *)(puVar5 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 8)" (( "(") (binary_expression "puVar5 + 8" (identifier "puVar5") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                  }" ({ "{") (if_statement "if (*pcVar17 == '\0') {\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }" (if "if") (parenthesized_expression "(*pcVar17 == '\0')" (( "(") (binary_expression "*pcVar17 == '\0'" (pointer_expression "*pcVar17" (* "*") (identifier "pcVar17")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                      *(undefined4 *)(puVar5 + 8) = 1;\n                      iVar3 = local_a4;\n                    }" ({ "{") (expression_statement "*(undefined4 *)(puVar5 + 8) = 1;" (assignment_expression "*(undefined4 *)(puVar5 + 8) = 1" (pointer_expression "*(undefined4 *)(puVar5 + 8)" (* "*") (cast_expression "(undefined4 *)(puVar5 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 8)" (( "(") (binary_expression "puVar5 + 8" (identifier "puVar5") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" (identifier "iVar3") (= "=") (identifier "local_a4")) (; ";")) (} "}")) (else_clause "else {\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }" (else "else") (compound_statement "{\n                      *(undefined4 *)(puVar5 + 8) = 2;\n                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);\n                      puVar5[9] = uVar7;\n                      iVar3 = local_a4;\n                    }" ({ "{") (expression_statement "*(undefined4 *)(puVar5 + 8) = 2;" (assignment_expression "*(undefined4 *)(puVar5 + 8) = 2" (pointer_expression "*(undefined4 *)(puVar5 + 8)" (* "*") (cast_expression "(undefined4 *)(puVar5 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 8)" (( "(") (binary_expression "puVar5 + 8" (identifier "puVar5") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);" (assignment_expression "uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17)" (identifier "uVar7") (= "=") (call_expression "FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17)" (identifier "FUN_00177220") (argument_list "(&local_a4,"%Q.%Q",puVar5[1],pcVar17)" (( "(") (pointer_expression "&local_a4" (& "&") (identifier "local_a4")) (, ",") (string_literal ""%Q.%Q"" (" """) (string_content "%Q.%Q") (" """)) (, ",") (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (, ",") (identifier "pcVar17") () ")")))) (; ";")) (expression_statement "puVar5[9] = uVar7;" (assignment_expression "puVar5[9] = uVar7" (subscript_expression "puVar5[9]" (identifier "puVar5") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" (identifier "iVar3") (= "=") (identifier "local_a4")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }" (else "else") (compound_statement "{\n                    uVar7 = FUN_001776d2("multiple content=... directives");\n                    *param_6 = uVar7;\n                    local_a4 = 1;\n                    iVar3 = local_a4;\n                  }" ({ "{") (expression_statement "uVar7 = FUN_001776d2("multiple content=... directives");" (assignment_expression "uVar7 = FUN_001776d2("multiple content=... directives")" (identifier "uVar7") (= "=") (call_expression "FUN_001776d2("multiple content=... directives")" (identifier "FUN_001776d2") (argument_list "("multiple content=... directives")" (( "(") (string_literal ""multiple content=... directives"" (" """) (string_content "multiple content=... directives") (" """)) () ")")))) (; ";")) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "local_a4 = 1;" (assignment_expression "local_a4 = 1" (identifier "local_a4") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" (identifier "iVar3") (= "=") (identifier "local_a4")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }" (else "else") (compound_statement "{\n                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);\n                  if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }\n                }" ({ "{") (expression_statement "iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);" (assignment_expression "iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff)" (identifier "iVar3") (= "=") (call_expression "FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff)" (identifier "FUN_0012ada6") (argument_list "("content_rowid",pcVar16,uVar11 & 0xffffffff)" (( "(") (string_literal ""content_rowid"" (" """) (string_content "content_rowid") (" """)) (, ",") (identifier "pcVar16") (, ",") (binary_expression "uVar11 & 0xffffffff" (identifier "uVar11") (& "&") (number_literal "0xffffffff")) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }\n                  else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }\n                  }" ({ "{") (if_statement "if (puVar5[10] == 0) {\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }\n                    else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }" (if "if") (parenthesized_expression "(puVar5[10] == 0)" (( "(") (binary_expression "puVar5[10] == 0" (subscript_expression "puVar5[10]" (identifier "puVar5") ([ "[") (number_literal "10") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);\n                      puVar5[10] = uVar7;\n                      iVar3 = local_a4;\n                    }" ({ "{") (expression_statement "uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);" (assignment_expression "uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff)" (identifier "uVar7") (= "=") (call_expression "FUN_0014b209(&local_a4,pcVar17,0xffffffff)" (identifier "FUN_0014b209") (argument_list "(&local_a4,pcVar17,0xffffffff)" (( "(") (pointer_expression "&local_a4" (& "&") (identifier "local_a4")) (, ",") (identifier "pcVar17") (, ",") (number_literal "0xffffffff") () ")")))) (; ";")) (expression_statement "puVar5[10] = uVar7;" (assignment_expression "puVar5[10] = uVar7" (subscript_expression "puVar5[10]" (identifier "puVar5") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" (identifier "iVar3") (= "=") (identifier "local_a4")) (; ";")) (} "}")) (else_clause "else {\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }" (else "else") (compound_statement "{\n                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");\n                      *param_6 = uVar7;\n                      local_a4 = 1;\n                      iVar3 = local_a4;\n                    }" ({ "{") (expression_statement "uVar7 = FUN_001776d2("multiple content_rowid=... directives");" (assignment_expression "uVar7 = FUN_001776d2("multiple content_rowid=... directives")" (identifier "uVar7") (= "=") (call_expression "FUN_001776d2("multiple content_rowid=... directives")" (identifier "FUN_001776d2") (argument_list "("multiple content_rowid=... directives")" (( "(") (string_literal ""multiple content_rowid=... directives"" (" """) (string_content "multiple content_rowid=... directives") (" """)) () ")")))) (; ";")) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "local_a4 = 1;" (assignment_expression "local_a4 = 1" (identifier "local_a4") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" (identifier "iVar3") (= "=") (identifier "local_a4")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }" (else "else") (compound_statement "{\n                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);\n                    if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }\n                  }" ({ "{") (expression_statement "iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);" (assignment_expression "iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff)" (identifier "iVar3") (= "=") (call_expression "FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff)" (identifier "FUN_0012ada6") (argument_list "("columnsize",pcVar16,uVar11 & 0xffffffff)" (( "(") (string_literal ""columnsize"" (" """) (string_content "columnsize") (" """)) (, ",") (identifier "pcVar16") (, ",") (binary_expression "uVar11 & 0xffffffff" (identifier "uVar11") (& "&") (number_literal "0xffffffff")) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }\n                    else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }\n                    }" ({ "{") (if_statement "if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }" (if "if") (parenthesized_expression "(((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0'))" (( "(") (binary_expression "((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')" (parenthesized_expression "((byte)(*pcVar17 - 0x30U) < 2)" (( "(") (binary_expression "(byte)(*pcVar17 - 0x30U) < 2" (call_expression "(byte)(*pcVar17 - 0x30U)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(*pcVar17 - 0x30U)" (( "(") (binary_expression "*pcVar17 - 0x30U" (pointer_expression "*pcVar17" (* "*") (identifier "pcVar17")) (- "-") (number_literal "0x30U")) () ")"))) (< "<") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "(pcVar17[1] == '\0')" (( "(") (binary_expression "pcVar17[1] == '\0'" (subscript_expression "pcVar17[1]" (identifier "pcVar17") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');\n                        iVar3 = local_a4;\n                      }" ({ "{") (expression_statement "*(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');" (assignment_expression "*(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1')" (pointer_expression "*(uint *)(puVar5 + 0xb)" (* "*") (cast_expression "(uint *)(puVar5 + 0xb)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 0xb)" (( "(") (binary_expression "puVar5 + 0xb" (identifier "puVar5") (+ "+") (number_literal "0xb")) () ")")))) (= "=") (call_expression "(uint)(*pcVar17 == '1')" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*pcVar17 == '1')" (( "(") (binary_expression "*pcVar17 == '1'" (pointer_expression "*pcVar17" (* "*") (identifier "pcVar17")) (== "==") (char_literal "'1'" (' "'") (character "1") (' "'"))) () ")")))) (; ";")) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" (identifier "iVar3") (= "=") (identifier "local_a4")) (; ";")) (} "}")) (else_clause "else {\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }" (else "else") (compound_statement "{\n                        uVar7 = FUN_001776d2("malformed columnsize=... directive");\n                        *param_6 = uVar7;\n                        local_a4 = 1;\n                        iVar3 = local_a4;\n                      }" ({ "{") (expression_statement "uVar7 = FUN_001776d2("malformed columnsize=... directive");" (assignment_expression "uVar7 = FUN_001776d2("malformed columnsize=... directive")" (identifier "uVar7") (= "=") (call_expression "FUN_001776d2("malformed columnsize=... directive")" (identifier "FUN_001776d2") (argument_list "("malformed columnsize=... directive")" (( "(") (string_literal ""malformed columnsize=... directive"" (" """) (string_content "malformed columnsize=... directive") (" """)) () ")")))) (; ";")) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "local_a4 = 1;" (assignment_expression "local_a4 = 1" (identifier "local_a4") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" (identifier "iVar3") (= "=") (identifier "local_a4")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }" (else "else") (compound_statement "{\n                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);\n                      if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }\n                    }" ({ "{") (expression_statement "iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);" (assignment_expression "iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff)" (identifier "iVar3") (= "=") (call_expression "FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff)" (identifier "FUN_0012ada6") (argument_list "("detail",pcVar16,uVar11 & 0xffffffff)" (( "(") (string_literal ""detail"" (" """) (string_content "detail") (" """)) (, ",") (identifier "pcVar16") (, ",") (binary_expression "uVar11 & 0xffffffff" (identifier "uVar11") (& "&") (number_literal "0xffffffff")) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }\n                      else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                        local_88 = "none";\n                        local_80[0] = 1;\n                        local_78 = "full";\n                        local_70 = 0;\n                        local_68 = "columns";\n                        local_60 = 2;\n                        local_58 = 0;\n                        local_50 = 0;\n                        lVar12 = -1;\n                        pcVar16 = pcVar17;\n                        do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');\n                        pcVar16 = "none";\n                        ppcVar13 = &local_78;\n                        iVar2 = local_c8;\n                        do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);\n                        *(int *)((long)puVar5 + 0x5c) = iVar2;\n                        local_a4 = -(iVar2 >> 0x1f);\n                        iVar3 = local_a4;\n                        if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }\n                      }" ({ "{") (expression_statement "local_88 = "none";" (assignment_expression "local_88 = "none"" (identifier "local_88") (= "=") (string_literal ""none"" (" """) (string_content "none") (" """))) (; ";")) (expression_statement "local_80[0] = 1;" (assignment_expression "local_80[0] = 1" (subscript_expression "local_80[0]" (identifier "local_80") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "local_78 = "full";" (assignment_expression "local_78 = "full"" (identifier "local_78") (= "=") (string_literal ""full"" (" """) (string_content "full") (" """))) (; ";")) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" (identifier "local_70") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_68 = "columns";" (assignment_expression "local_68 = "columns"" (identifier "local_68") (= "=") (string_literal ""columns"" (" """) (string_content "columns") (" """))) (; ";")) (expression_statement "local_60 = 2;" (assignment_expression "local_60 = 2" (identifier "local_60") (= "=") (number_literal "2")) (; ";")) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar12 = -1;" (assignment_expression "lVar12 = -1" (identifier "lVar12") (= "=") (number_literal "-1")) (; ";")) (expression_statement "pcVar16 = pcVar17;" (assignment_expression "pcVar16 = pcVar17" (identifier "pcVar16") (= "=") (identifier "pcVar17")) (; ";")) (do_statement "do {\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        } while (cVar1 != '\0');" (do "do") (compound_statement "{\n                          if (lVar12 == 0) break;\n                          lVar12 = lVar12 + -1;\n                          cVar1 = *pcVar16;\n                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;\n                        }" ({ "{") (if_statement "if (lVar12 == 0) break;" (if "if") (parenthesized_expression "(lVar12 == 0)" (( "(") (binary_expression "lVar12 == 0" (identifier "lVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar12 = lVar12 + -1;" (assignment_expression "lVar12 = lVar12 + -1" (identifier "lVar12") (= "=") (binary_expression "lVar12 + -1" (identifier "lVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "cVar1 = *pcVar16;" (assignment_expression "cVar1 = *pcVar16" (identifier "cVar1") (= "=") (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16"))) (; ";")) (expression_statement "pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;" (assignment_expression "pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1" (identifier "pcVar16") (= "=") (binary_expression "pcVar16 + (ulong)bVar18 * -2 + 1" (binary_expression "pcVar16 + (ulong)bVar18 * -2" (identifier "pcVar16") (+ "+") (binary_expression "(ulong)bVar18 * -2" (cast_expression "(ulong)bVar18" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar18")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar1 != '\0')" (( "(") (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "pcVar16 = "none";" (assignment_expression "pcVar16 = "none"" (identifier "pcVar16") (= "=") (string_literal ""none"" (" """) (string_content "none") (" """))) (; ";")) (expression_statement "ppcVar13 = &local_78;" (assignment_expression "ppcVar13 = &local_78" (identifier "ppcVar13") (= "=") (pointer_expression "&local_78" (& "&") (identifier "local_78"))) (; ";")) (expression_statement "iVar2 = local_c8;" (assignment_expression "iVar2 = local_c8" (identifier "iVar2") (= "=") (identifier "local_c8")) (; ";")) (do_statement "do {\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        } while (pcVar16 != (char *)0x0);" (do "do") (compound_statement "{\n                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);\n                          if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }\n                          pcVar16 = *ppcVar13;\n                          ppcVar13 = ppcVar13 + 2;\n                        }" ({ "{") (expression_statement "iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);" (assignment_expression "iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1)" (identifier "iVar3") (= "=") (call_expression "FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1)" (identifier "FUN_0012ada6") (argument_list "(pcVar16,pcVar17,~(uint)lVar12 - 1)" (( "(") (identifier "pcVar16") (, ",") (identifier "pcVar17") (, ",") (binary_expression "~(uint)lVar12 - 1" (unary_expression "~(uint)lVar12" (~ "~") (cast_expression "(uint)lVar12" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar12"))) (- "-") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                            if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }\n                            iVar2 = *(int *)(ppcVar13 + -1);\n                          }" ({ "{") (if_statement "if (-1 < iVar2) {\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }" (if "if") (parenthesized_expression "(-1 < iVar2)" (( "(") (binary_expression "-1 < iVar2" (number_literal "-1") (< "<") (identifier "iVar2")) () ")")) (compound_statement "{\n                              local_a4 = 1;\n                              goto LAB_0017ab15;\n                            }" ({ "{") (expression_statement "local_a4 = 1;" (assignment_expression "local_a4 = 1" (identifier "local_a4") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0017ab15;" (goto "goto") (statement_identifier "LAB_0017ab15") (; ";")) (} "}"))) (expression_statement "iVar2 = *(int *)(ppcVar13 + -1);" (assignment_expression "iVar2 = *(int *)(ppcVar13 + -1)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(ppcVar13 + -1)" (* "*") (cast_expression "(int *)(ppcVar13 + -1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppcVar13 + -1)" (( "(") (binary_expression "ppcVar13 + -1" (identifier "ppcVar13") (+ "+") (number_literal "-1")) () ")"))))) (; ";")) (} "}"))) (expression_statement "pcVar16 = *ppcVar13;" (assignment_expression "pcVar16 = *ppcVar13" (identifier "pcVar16") (= "=") (pointer_expression "*ppcVar13" (* "*") (identifier "ppcVar13"))) (; ";")) (expression_statement "ppcVar13 = ppcVar13 + 2;" (assignment_expression "ppcVar13 = ppcVar13 + 2" (identifier "ppcVar13") (= "=") (binary_expression "ppcVar13 + 2" (identifier "ppcVar13") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pcVar16 != (char *)0x0)" (( "(") (binary_expression "pcVar16 != (char *)0x0" (identifier "pcVar16") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "*(int *)((long)puVar5 + 0x5c) = iVar2;" (assignment_expression "*(int *)((long)puVar5 + 0x5c) = iVar2" (pointer_expression "*(int *)((long)puVar5 + 0x5c)" (* "*") (cast_expression "(int *)((long)puVar5 + 0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar5 + 0x5c)" (( "(") (binary_expression "(long)puVar5 + 0x5c" (cast_expression "(long)puVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar5")) (+ "+") (number_literal "0x5c")) () ")")))) (= "=") (identifier "iVar2")) (; ";")) (expression_statement "local_a4 = -(iVar2 >> 0x1f);" (assignment_expression "local_a4 = -(iVar2 >> 0x1f)" (identifier "local_a4") (= "=") (unary_expression "-(iVar2 >> 0x1f)" (- "-") (parenthesized_expression "(iVar2 >> 0x1f)" (( "(") (binary_expression "iVar2 >> 0x1f" (identifier "iVar2") (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" (identifier "iVar3") (= "=") (identifier "local_a4")) (; ";")) (if_statement "if (local_a4 != 0) {\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }" (if "if") (parenthesized_expression "(local_a4 != 0)" (( "(") (binary_expression "local_a4 != 0" (identifier "local_a4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");\n                          *param_6 = uVar7;\n                          iVar3 = local_a4;\n                        }" ({ "{") (labeled_statement "LAB_0017ab15:\n                          uVar7 = FUN_001776d2("malformed detail=... directive");" (statement_identifier "LAB_0017ab15") (: ":") (expression_statement "uVar7 = FUN_001776d2("malformed detail=... directive");" (assignment_expression "uVar7 = FUN_001776d2("malformed detail=... directive")" (identifier "uVar7") (= "=") (call_expression "FUN_001776d2("malformed detail=... directive")" (identifier "FUN_001776d2") (argument_list "("malformed detail=... directive")" (( "(") (string_literal ""malformed detail=... directive"" (" """) (string_content "malformed detail=... directive") (" """)) () ")")))) (; ";"))) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" (identifier "iVar3") (= "=") (identifier "local_a4")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }" (else "else") (compound_statement "{\n                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);\n                        *param_6 = uVar7;\n                        iVar3 = iVar2;\n                      }" ({ "{") (expression_statement "uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16);" (assignment_expression "uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16)" (identifier "uVar7") (= "=") (call_expression "FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16)" (identifier "FUN_001776d2") (argument_list "("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,\n                                             pcVar16)" (( "(") (string_literal ""unrecognized option: \"%.*s\""" (" """) (string_content "unrecognized option: ") (escape_sequence "\"") (string_content "%.*s") (escape_sequence "\"") (" """)) (, ",") (binary_expression "uVar11 & 0xffffffff" (identifier "uVar11") (& "&") (number_literal "0xffffffff")) (, ",") (identifier "pcVar16") () ")")))) (; ";")) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "iVar3 = iVar2;" (assignment_expression "iVar3 = iVar2" (identifier "iVar3") (= "=") (identifier "iVar2")) (; ";")) (} "}")))) (} "}")))) (} "}")))) (} "}")))) (} "}")))) (} "}")))) (} "}")))) (} "}"))) (} "}")))) (goto_statement "goto LAB_0017a527;" (goto "goto") (statement_identifier "LAB_0017a527") (; ";")) (} "}"))) (labeled_statement "LAB_0017a368:\n    if (puVar5[0xd] == 0) {\n      local_ac = FUN_0017a177(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0);\n    }" (statement_identifier "LAB_0017a368") (: ":") (if_statement "if (puVar5[0xd] == 0) {\n      local_ac = FUN_0017a177(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0);\n    }" (if "if") (parenthesized_expression "(puVar5[0xd] == 0)" (( "(") (binary_expression "puVar5[0xd] == 0" (subscript_expression "puVar5[0xd]" (identifier "puVar5") ([ "[") (number_literal "0xd") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_ac = FUN_0017a177(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0);\n    }" ({ "{") (expression_statement "local_ac = FUN_0017a177(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0);" (assignment_expression "local_ac = FUN_0017a177(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0)" (identifier "local_ac") (= "=") (call_expression "FUN_0017a177(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0)" (identifier "FUN_0017a177") (argument_list "(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (binary_expression "puVar5 + 0xd" (identifier "puVar5") (+ "+") (number_literal "0xd")) (, ",") (binary_expression "puVar5 + 0xe" (identifier "puVar5") (+ "+") (number_literal "0xe")) (, ",") (number_literal "0") () ")")))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\nLAB_0017a364:\n    if (local_ac == 0) goto LAB_0017a368;\n  }" (else "else") (compound_statement "{\nLAB_0017a364:\n    if (local_ac == 0) goto LAB_0017a368;\n  }" ({ "{") (labeled_statement "LAB_0017a364:\n    if (local_ac == 0) goto LAB_0017a368;" (statement_identifier "LAB_0017a364") (: ":") (if_statement "if (local_ac == 0) goto LAB_0017a368;" (if "if") (parenthesized_expression "(local_ac == 0)" (( "(") (binary_expression "local_ac == 0" (identifier "local_ac") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0017a368;" (goto "goto") (statement_identifier "LAB_0017a368") (; ";")))) (} "}")))) (if_statement "if (local_ac == 0) {\n    if (puVar5[9] == 0) {\n      if (*(int *)(puVar5 + 8) == 0) {\n        pcVar17 = "content";\n      }\n      else {\n        pcVar17 = "docsize";\n        if (*(int *)(puVar5 + 0xb) == 0) goto LAB_0017a389;\n      }\n      uVar7 = FUN_00177220(&local_ac,"%Q.\'%q_%s\'",puVar5[1],puVar5[2],pcVar17);\n      puVar5[9] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }\nLAB_0017a389:\n    if (puVar5[10] == 0) {\n      uVar7 = FUN_0014b209(&local_ac,"rowid",0xffffffff);\n      puVar5[10] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }\n    local_a0 = (char *)((ulong)local_a0 & 0xffffffff00000000);\n    local_98 = (char *)0x0;\n    local_90 = 0;\n    local_8c = 0;\n    FUN_001765c7(&local_a0,&local_98,&DAT_001f4822,puVar5[10]);\n    if ((*(int *)(puVar5 + 8) != 1) && (0 < *(int *)(puVar5 + 3))) {\n      uVar11 = 0;\n      do {\n        if (*(int *)(puVar5 + 8) == 2) {\n          FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));\n        }\n        else {\n          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);\n        }\n        uVar11 = uVar11 + 1;\n      } while ((int)uVar11 < *(int *)(puVar5 + 3));\n    }\n    puVar5[0xc] = local_98;\n    local_ac = (int)local_a0;\n    iVar4 = (int)local_a0;\n    if ((int)local_a0 == 0) goto LAB_0017ad22;\n  }" (if "if") (parenthesized_expression "(local_ac == 0)" (( "(") (binary_expression "local_ac == 0" (identifier "local_ac") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (puVar5[9] == 0) {\n      if (*(int *)(puVar5 + 8) == 0) {\n        pcVar17 = "content";\n      }\n      else {\n        pcVar17 = "docsize";\n        if (*(int *)(puVar5 + 0xb) == 0) goto LAB_0017a389;\n      }\n      uVar7 = FUN_00177220(&local_ac,"%Q.\'%q_%s\'",puVar5[1],puVar5[2],pcVar17);\n      puVar5[9] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }\nLAB_0017a389:\n    if (puVar5[10] == 0) {\n      uVar7 = FUN_0014b209(&local_ac,"rowid",0xffffffff);\n      puVar5[10] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }\n    local_a0 = (char *)((ulong)local_a0 & 0xffffffff00000000);\n    local_98 = (char *)0x0;\n    local_90 = 0;\n    local_8c = 0;\n    FUN_001765c7(&local_a0,&local_98,&DAT_001f4822,puVar5[10]);\n    if ((*(int *)(puVar5 + 8) != 1) && (0 < *(int *)(puVar5 + 3))) {\n      uVar11 = 0;\n      do {\n        if (*(int *)(puVar5 + 8) == 2) {\n          FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));\n        }\n        else {\n          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);\n        }\n        uVar11 = uVar11 + 1;\n      } while ((int)uVar11 < *(int *)(puVar5 + 3));\n    }\n    puVar5[0xc] = local_98;\n    local_ac = (int)local_a0;\n    iVar4 = (int)local_a0;\n    if ((int)local_a0 == 0) goto LAB_0017ad22;\n  }" ({ "{") (if_statement "if (puVar5[9] == 0) {\n      if (*(int *)(puVar5 + 8) == 0) {\n        pcVar17 = "content";\n      }\n      else {\n        pcVar17 = "docsize";\n        if (*(int *)(puVar5 + 0xb) == 0) goto LAB_0017a389;\n      }\n      uVar7 = FUN_00177220(&local_ac,"%Q.\'%q_%s\'",puVar5[1],puVar5[2],pcVar17);\n      puVar5[9] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }" (if "if") (parenthesized_expression "(puVar5[9] == 0)" (( "(") (binary_expression "puVar5[9] == 0" (subscript_expression "puVar5[9]" (identifier "puVar5") ([ "[") (number_literal "9") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (*(int *)(puVar5 + 8) == 0) {\n        pcVar17 = "content";\n      }\n      else {\n        pcVar17 = "docsize";\n        if (*(int *)(puVar5 + 0xb) == 0) goto LAB_0017a389;\n      }\n      uVar7 = FUN_00177220(&local_ac,"%Q.\'%q_%s\'",puVar5[1],puVar5[2],pcVar17);\n      puVar5[9] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }" ({ "{") (if_statement "if (*(int *)(puVar5 + 8) == 0) {\n        pcVar17 = "content";\n      }\n      else {\n        pcVar17 = "docsize";\n        if (*(int *)(puVar5 + 0xb) == 0) goto LAB_0017a389;\n      }" (if "if") (parenthesized_expression "(*(int *)(puVar5 + 8) == 0)" (( "(") (binary_expression "*(int *)(puVar5 + 8) == 0" (pointer_expression "*(int *)(puVar5 + 8)" (* "*") (cast_expression "(int *)(puVar5 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 8)" (( "(") (binary_expression "puVar5 + 8" (identifier "puVar5") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar17 = "content";\n      }" ({ "{") (expression_statement "pcVar17 = "content";" (assignment_expression "pcVar17 = "content"" (identifier "pcVar17") (= "=") (string_literal ""content"" (" """) (string_content "content") (" """))) (; ";")) (} "}")) (else_clause "else {\n        pcVar17 = "docsize";\n        if (*(int *)(puVar5 + 0xb) == 0) goto LAB_0017a389;\n      }" (else "else") (compound_statement "{\n        pcVar17 = "docsize";\n        if (*(int *)(puVar5 + 0xb) == 0) goto LAB_0017a389;\n      }" ({ "{") (expression_statement "pcVar17 = "docsize";" (assignment_expression "pcVar17 = "docsize"" (identifier "pcVar17") (= "=") (string_literal ""docsize"" (" """) (string_content "docsize") (" """))) (; ";")) (if_statement "if (*(int *)(puVar5 + 0xb) == 0) goto LAB_0017a389;" (if "if") (parenthesized_expression "(*(int *)(puVar5 + 0xb) == 0)" (( "(") (binary_expression "*(int *)(puVar5 + 0xb) == 0" (pointer_expression "*(int *)(puVar5 + 0xb)" (* "*") (cast_expression "(int *)(puVar5 + 0xb)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 0xb)" (( "(") (binary_expression "puVar5 + 0xb" (identifier "puVar5") (+ "+") (number_literal "0xb")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0017a389;" (goto "goto") (statement_identifier "LAB_0017a389") (; ";"))) (} "}")))) (expression_statement "uVar7 = FUN_00177220(&local_ac,"%Q.\'%q_%s\'",puVar5[1],puVar5[2],pcVar17);" (assignment_expression "uVar7 = FUN_00177220(&local_ac,"%Q.\'%q_%s\'",puVar5[1],puVar5[2],pcVar17)" (identifier "uVar7") (= "=") (call_expression "FUN_00177220(&local_ac,"%Q.\'%q_%s\'",puVar5[1],puVar5[2],pcVar17)" (identifier "FUN_00177220") (argument_list "(&local_ac,"%Q.\'%q_%s\'",puVar5[1],puVar5[2],pcVar17)" (( "(") (pointer_expression "&local_ac" (& "&") (identifier "local_ac")) (, ",") (string_literal ""%Q.\'%q_%s\'"" (" """) (string_content "%Q.") (escape_sequence "\'") (string_content "%q_%s") (escape_sequence "\'") (" """)) (, ",") (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (, ",") (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")) (, ",") (identifier "pcVar17") () ")")))) (; ";")) (expression_statement "puVar5[9] = uVar7;" (assignment_expression "puVar5[9] = uVar7" (subscript_expression "puVar5[9]" (identifier "puVar5") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "uVar7")) (; ";")) (if_statement "if (local_ac != 0) goto LAB_0017acb0;" (if "if") (parenthesized_expression "(local_ac != 0)" (( "(") (binary_expression "local_ac != 0" (identifier "local_ac") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0017acb0;" (goto "goto") (statement_identifier "LAB_0017acb0") (; ";"))) (} "}"))) (labeled_statement "LAB_0017a389:\n    if (puVar5[10] == 0) {\n      uVar7 = FUN_0014b209(&local_ac,"rowid",0xffffffff);\n      puVar5[10] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }" (statement_identifier "LAB_0017a389") (: ":") (if_statement "if (puVar5[10] == 0) {\n      uVar7 = FUN_0014b209(&local_ac,"rowid",0xffffffff);\n      puVar5[10] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }" (if "if") (parenthesized_expression "(puVar5[10] == 0)" (( "(") (binary_expression "puVar5[10] == 0" (subscript_expression "puVar5[10]" (identifier "puVar5") ([ "[") (number_literal "10") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar7 = FUN_0014b209(&local_ac,"rowid",0xffffffff);\n      puVar5[10] = uVar7;\n      if (local_ac != 0) goto LAB_0017acb0;\n    }" ({ "{") (expression_statement "uVar7 = FUN_0014b209(&local_ac,"rowid",0xffffffff);" (assignment_expression "uVar7 = FUN_0014b209(&local_ac,"rowid",0xffffffff)" (identifier "uVar7") (= "=") (call_expression "FUN_0014b209(&local_ac,"rowid",0xffffffff)" (identifier "FUN_0014b209") (argument_list "(&local_ac,"rowid",0xffffffff)" (( "(") (pointer_expression "&local_ac" (& "&") (identifier "local_ac")) (, ",") (string_literal ""rowid"" (" """) (string_content "rowid") (" """)) (, ",") (number_literal "0xffffffff") () ")")))) (; ";")) (expression_statement "puVar5[10] = uVar7;" (assignment_expression "puVar5[10] = uVar7" (subscript_expression "puVar5[10]" (identifier "puVar5") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "uVar7")) (; ";")) (if_statement "if (local_ac != 0) goto LAB_0017acb0;" (if "if") (parenthesized_expression "(local_ac != 0)" (( "(") (binary_expression "local_ac != 0" (identifier "local_ac") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0017acb0;" (goto "goto") (statement_identifier "LAB_0017acb0") (; ";"))) (} "}")))) (expression_statement "local_a0 = (char *)((ulong)local_a0 & 0xffffffff00000000);" (assignment_expression "local_a0 = (char *)((ulong)local_a0 & 0xffffffff00000000)" (identifier "local_a0") (= "=") (cast_expression "(char *)((ulong)local_a0 & 0xffffffff00000000)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulong)local_a0 & 0xffffffff00000000)" (( "(") (binary_expression "(ulong)local_a0 & 0xffffffff00000000" (cast_expression "(ulong)local_a0" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_a0")) (& "&") (number_literal "0xffffffff00000000")) () ")")))) (; ";")) (expression_statement "local_98 = (char *)0x0;" (assignment_expression "local_98 = (char *)0x0" (identifier "local_98") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" (identifier "local_90") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" (identifier "local_8c") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_001765c7(&local_a0,&local_98,&DAT_001f4822,puVar5[10]);" (call_expression "FUN_001765c7(&local_a0,&local_98,&DAT_001f4822,puVar5[10])" (identifier "FUN_001765c7") (argument_list "(&local_a0,&local_98,&DAT_001f4822,puVar5[10])" (( "(") (pointer_expression "&local_a0" (& "&") (identifier "local_a0")) (, ",") (pointer_expression "&local_98" (& "&") (identifier "local_98")) (, ",") (pointer_expression "&DAT_001f4822" (& "&") (identifier "DAT_001f4822")) (, ",") (subscript_expression "puVar5[10]" (identifier "puVar5") ([ "[") (number_literal "10") (] "]")) () ")"))) (; ";")) (if_statement "if ((*(int *)(puVar5 + 8) != 1) && (0 < *(int *)(puVar5 + 3))) {\n      uVar11 = 0;\n      do {\n        if (*(int *)(puVar5 + 8) == 2) {\n          FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));\n        }\n        else {\n          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);\n        }\n        uVar11 = uVar11 + 1;\n      } while ((int)uVar11 < *(int *)(puVar5 + 3));\n    }" (if "if") (parenthesized_expression "((*(int *)(puVar5 + 8) != 1) && (0 < *(int *)(puVar5 + 3)))" (( "(") (binary_expression "(*(int *)(puVar5 + 8) != 1) && (0 < *(int *)(puVar5 + 3))" (parenthesized_expression "(*(int *)(puVar5 + 8) != 1)" (( "(") (binary_expression "*(int *)(puVar5 + 8) != 1" (pointer_expression "*(int *)(puVar5 + 8)" (* "*") (cast_expression "(int *)(puVar5 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 8)" (( "(") (binary_expression "puVar5 + 8" (identifier "puVar5") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(0 < *(int *)(puVar5 + 3))" (( "(") (binary_expression "0 < *(int *)(puVar5 + 3)" (number_literal "0") (< "<") (pointer_expression "*(int *)(puVar5 + 3)" (* "*") (cast_expression "(int *)(puVar5 + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 3)" (( "(") (binary_expression "puVar5 + 3" (identifier "puVar5") (+ "+") (number_literal "3")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n      uVar11 = 0;\n      do {\n        if (*(int *)(puVar5 + 8) == 2) {\n          FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));\n        }\n        else {\n          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);\n        }\n        uVar11 = uVar11 + 1;\n      } while ((int)uVar11 < *(int *)(puVar5 + 3));\n    }" ({ "{") (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        if (*(int *)(puVar5 + 8) == 2) {\n          FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));\n        }\n        else {\n          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);\n        }\n        uVar11 = uVar11 + 1;\n      } while ((int)uVar11 < *(int *)(puVar5 + 3));" (do "do") (compound_statement "{\n        if (*(int *)(puVar5 + 8) == 2) {\n          FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));\n        }\n        else {\n          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);\n        }\n        uVar11 = uVar11 + 1;\n      }" ({ "{") (if_statement "if (*(int *)(puVar5 + 8) == 2) {\n          FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));\n        }\n        else {\n          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);\n        }" (if "if") (parenthesized_expression "(*(int *)(puVar5 + 8) == 2)" (( "(") (binary_expression "*(int *)(puVar5 + 8) == 2" (pointer_expression "*(int *)(puVar5 + 8)" (* "*") (cast_expression "(int *)(puVar5 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 8)" (( "(") (binary_expression "puVar5 + 8" (identifier "puVar5") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n          FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));\n        }" ({ "{") (expression_statement "FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));" (call_expression "FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8))" (identifier "FUN_001765c7") (argument_list "(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8))" (( "(") (pointer_expression "&local_a0" (& "&") (identifier "local_a0")) (, ",") (pointer_expression "&local_98" (& "&") (identifier "local_98")) (, ",") (pointer_expression "&DAT_001f4820" (& "&") (identifier "DAT_001f4820")) (, ",") (pointer_expression "*(undefined8 *)(puVar5[4] + uVar11 * 8)" (* "*") (cast_expression "(undefined8 *)(puVar5[4] + uVar11 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5[4] + uVar11 * 8)" (( "(") (binary_expression "puVar5[4] + uVar11 * 8" (subscript_expression "puVar5[4]" (identifier "puVar5") ([ "[") (number_literal "4") (] "]")) (+ "+") (binary_expression "uVar11 * 8" (identifier "uVar11") (* "*") (number_literal "8"))) () ")")))) () ")"))) (; ";")) (} "}")) (else_clause "else {\n          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);\n        }" (else "else") (compound_statement "{\n          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);\n        }" ({ "{") (expression_statement "FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);" (call_expression "FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff)" (identifier "FUN_001765c7") (argument_list "(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff)" (( "(") (pointer_expression "&local_a0" (& "&") (identifier "local_a0")) (, ",") (pointer_expression "&local_98" (& "&") (identifier "local_98")) (, ",") (string_literal "", T.c%d"" (" """) (string_content ", T.c%d") (" """)) (, ",") (binary_expression "uVar11 & 0xffffffff" (identifier "uVar11") (& "&") (number_literal "0xffffffff")) () ")"))) (; ";")) (} "}")))) (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" (identifier "uVar11") (= "=") (binary_expression "uVar11 + 1" (identifier "uVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)uVar11 < *(int *)(puVar5 + 3))" (( "(") (binary_expression "(int)uVar11 < *(int *)(puVar5 + 3)" (cast_expression "(int)uVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar11")) (< "<") (pointer_expression "*(int *)(puVar5 + 3)" (* "*") (cast_expression "(int *)(puVar5 + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 3)" (( "(") (binary_expression "puVar5 + 3" (identifier "puVar5") (+ "+") (number_literal "3")) () ")"))))) () ")")) (; ";")) (} "}"))) (expression_statement "puVar5[0xc] = local_98;" (assignment_expression "puVar5[0xc] = local_98" (subscript_expression "puVar5[0xc]" (identifier "puVar5") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "local_98")) (; ";")) (expression_statement "local_ac = (int)local_a0;" (assignment_expression "local_ac = (int)local_a0" (identifier "local_ac") (= "=") (cast_expression "(int)local_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a0"))) (; ";")) (expression_statement "iVar4 = (int)local_a0;" (assignment_expression "iVar4 = (int)local_a0" (identifier "iVar4") (= "=") (cast_expression "(int)local_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a0"))) (; ";")) (if_statement "if ((int)local_a0 == 0) goto LAB_0017ad22;" (if "if") (parenthesized_expression "((int)local_a0 == 0)" (( "(") (binary_expression "(int)local_a0 == 0" (cast_expression "(int)local_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a0")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0017ad22;" (goto "goto") (statement_identifier "LAB_0017ad22") (; ";"))) (} "}"))) (labeled_statement "LAB_0017acb0:\n  FUN_00148182(puVar5);" (statement_identifier "LAB_0017acb0") (: ":") (expression_statement "FUN_00148182(puVar5);" (call_expression "FUN_00148182(puVar5)" (identifier "FUN_00148182") (argument_list "(puVar5)" (( "(") (identifier "puVar5") () ")"))) (; ";"))) (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar4 = local_ac;" (assignment_expression "iVar4 = local_ac" (identifier "iVar4") (= "=") (identifier "local_ac")) (; ";")) (labeled_statement "LAB_0017ad22:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" (statement_identifier "LAB_0017ad22") (: ":") (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" (if "if") (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (!= "!=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n                    \n    __stack_chk_fail();\n  }" ({ "{") (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (return_statement "return iVar4;" (return "return") (identifier "iVar4") (; ";")) (labeled_statement "LAB_0017a6fb:\n  uVar7 = FUN_001776d2("prefix length out of range (max 999)");" (statement_identifier "LAB_0017a6fb") (: ":") (expression_statement "uVar7 = FUN_001776d2("prefix length out of range (max 999)");" (assignment_expression "uVar7 = FUN_001776d2("prefix length out of range (max 999)")" (identifier "uVar7") (= "=") (call_expression "FUN_001776d2("prefix length out of range (max 999)")" (identifier "FUN_001776d2") (argument_list "("prefix length out of range (max 999)")" (( "(") (string_literal ""prefix length out of range (max 999)"" (" """) (string_content "prefix length out of range (max 999)") (" """)) () ")")))) (; ";"))) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "local_a4 = 1;" (assignment_expression "local_a4 = 1" (identifier "local_a4") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar3 = local_a4;" (assignment_expression "iVar3 = local_a4" (identifier "iVar3") (= "=") (identifier "local_a4")) (; ";")) (labeled_statement "LAB_0017a527:\n  local_ac = iVar3;" (statement_identifier "LAB_0017a527") (: ":") (expression_statement "local_ac = iVar3;" (assignment_expression "local_ac = iVar3" (identifier "local_ac") (= "=") (identifier "iVar3")) (; ";"))) (expression_statement "FUN_00141303(local_a0);" (call_expression "FUN_00141303(local_a0)" (identifier "FUN_00141303") (argument_list "(local_a0)" (( "(") (identifier "local_a0") () ")"))) (; ";")) (expression_statement "FUN_00141303(local_98);" (call_expression "FUN_00141303(local_98)" (identifier "FUN_00141303") (argument_list "(local_98)" (( "(") (identifier "local_98") () ")"))) (; ";")) (expression_statement "iVar2 = (int)lVar6;" (assignment_expression "iVar2 = (int)lVar6" (identifier "iVar2") (= "=") (cast_expression "(int)lVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar6"))) (; ";")) (expression_statement "lVar6 = lVar6 + 1;" (assignment_expression "lVar6 = lVar6 + 1" (identifier "lVar6") (= "=") (binary_expression "lVar6 + 1" (identifier "lVar6") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (param_3 <= iVar2 || local_ac != 0) goto LAB_0017a364;" (if "if") (parenthesized_expression "(param_3 <= iVar2 || local_ac != 0)" (( "(") (binary_expression "param_3 <= iVar2 || local_ac != 0" (binary_expression "param_3 <= iVar2" (identifier "param_3") (<= "<=") (identifier "iVar2")) (|| "||") (binary_expression "local_ac != 0" (identifier "local_ac") (!= "!=") (number_literal "0"))) () ")")) (goto_statement "goto LAB_0017a364;" (goto "goto") (statement_identifier "LAB_0017a364") (; ";"))) (goto_statement "goto LAB_0017a558;" (goto "goto") (statement_identifier "LAB_0017a558") (; ";")) (} "}")))

int function_1
              (type_1 *pGlobal,type_2 *db,int var_8,char **azArg,type_3 **ppOut,char **pzErr
              )

{
  char var_21;
  long var_38;
  int var_12;
  int var_19;
  int iVar5;
  type_3 *var_3;
  char **var_7;
  char *var_23;
  int *piVar8;
  char *var_17;
  char *var_27;
  type_4 var_4;
  long var_31;
  int N;
  type_5 *var_35;
  type_6 *var_5;
  char *var_30;
  long var_14;
  long var_1;
  type_7 bVar16;
  int local_c8;
  int var_10;
  int var_18;
  int var_24;
  char *zOne;
  char *var_20;
  int local_90;
  int local_8c;
  type_5 aDetail [4];
  
  bVar16 = 0;
  var_38 = *(long *)(var_1 + 0x28);
  var_10 = 0;
  var_3 = (type_3 *)var_2(0xa8);
  *ppOut = var_3;
  if (var_3 == (type_3 *)0x0) {
    iVar5 = 7;
    goto LAB_0017ad22;
  }
  var_3->zDb = (char *)0x0;
  var_3->pzErrmsg = (char **)0x0;
  var_5 = (type_6 *)((type_4)&var_3->zName & 0xfffffffffffffff8);
  var_4 = (type_4)(((int)var_3 - (int)var_5) + 0xa8U >> 3);
  for (; var_4 != 0; var_4 = var_4 - 1) {
    *var_5 = 0;
    var_5 = var_5 + (type_4)bVar16 * -2 + 1;
  }
  var_3->db = db;
  var_3->iCookie = -1;
  var_7 = (char **)var_6(&var_10,(long)var_8 * 9);
  var_3->azCol = var_7;
  var_3->abUnindexed = (type_8 *)(var_7 + var_8);
  var_23 = var_9(&var_10,azArg[1],-1);
  var_3->zDb = var_23;
  var_23 = var_9(&var_10,azArg[2],-1);
  iVar5 = var_10;
  var_3->zName = var_23;
  var_3->bColumnsize = 1;
  var_3->eDetail = 0;
  if (var_10 == 0) {
    var_12 = var_11(var_23,"rank");
    if (var_12 == 0) {
      var_23 = var_13("reserved fts5 table name: %s",var_23);
      *pzErr = var_23;
      var_10 = 1;
      goto LAB_0017a364;
    }
    if (3 < var_8) {
      var_14 = 4;
      local_c8 = -1;
LAB_0017a558:
      var_23 = azArg[var_14 + -1];
      zOne = (char *)0x0;
      var_20 = (char *)0x0;
      var_18 = 0;
      var_17 = var_15(&var_10,var_23,&zOne,&var_18);
      var_17 = var_16(var_17);
      var_12 = iVar5;
      if ((var_17 != (char *)0x0) && (*var_17 == '=')) {
        if (var_18 == 0) {
          var_17 = var_17 + 1;
          var_12 = 1;
        }
        else {
          var_12 = 1;
          var_17 = (char *)0x0;
        }
      }
      var_17 = var_16(var_17);
      if ((var_17 == (char *)0x0) ||
         ((var_30 = zOne, *var_17 != '\0' &&
          ((var_17 = var_15(&var_10,var_17,&var_20,&var_24), var_17 == (char *)0x0 ||
           (var_30 = zOne, *var_17 != '\0')))))) {
        var_19 = var_10;
        if (var_10 == 0) {
          var_23 = var_13("parse error in \"%s\"",var_23);
          *pzErr = var_23;
          var_10 = 1;
          var_19 = var_10;
        }
      }
      else {
        var_19 = var_10;
        zOne = var_30;
        if (var_10 == 0) {
          if (var_12 == 0) {
            var_19 = var_11(var_30,"rank");
            if ((var_19 == 0) ||
               (var_19 = var_11(var_30,"rowid"), var_23 = var_20, var_19 == 0)) {
              var_23 = var_13("reserved fts5 column name: %s",var_30);
              *pzErr = var_23;
              var_12 = 1;
            }
            else if (var_20 != (char *)0x0) {
              var_12 = var_11(var_20,"unindexed");
              if (var_12 == 0) {
                var_3->abUnindexed[var_3->nCol] = '\x01';
                var_12 = 0;
              }
              else {
                var_23 = var_13("unrecognized column option: %s",var_23);
                *pzErr = var_23;
                var_12 = 1;
              }
            }
            var_19 = var_3->nCol;
            var_3->nCol = var_19 + 1;
            var_3->azCol[var_19] = var_30;
            zOne = (char *)0x0;
            var_19 = var_12;
          }
          else {
            var_23 = var_20;
            if (var_20 == (char *)0x0) {
              var_23 = "";
            }
            var_24 = 0;
            var_4 = 0xffffffffffffffff;
            var_17 = var_30;
            do {
              if (var_4 == 0) break;
              var_4 = var_4 - 1;
              var_21 = *var_17;
              var_17 = var_17 + (type_4)bVar16 * -2 + 1;
            } while (var_21 != '\0');
            N = (int)(~var_4 - 1);
            var_19 = var_22("prefix",var_30,N);
            if (var_19 == 0) {
              if (var_3->aPrefix != (int *)0x0) {
LAB_0017a68f:
                do {
                  var_21 = *var_23;
                  while (var_21 == ' ') {
                    var_23 = var_23 + 1;
                    var_21 = *var_23;
                  }
                  if ((var_21 == ',') && (var_12 == 0)) {
                    var_21 = var_23[1];
                    var_23 = var_23 + 1;
                    while (var_21 == ' ') {
                      var_23 = var_23 + 1;
                      var_21 = *var_23;
                    }
                  }
                  else {
                    var_19 = var_24;
                    if (var_21 == '\0') goto LAB_0017a527;
                  }
                  var_21 = *var_23;
                  if (9 < (type_7)(var_21 - 0x30U)) {
                    var_23 = var_13("malformed prefix=... directive");
                    *pzErr = var_23;
                    var_24 = 1;
                    var_19 = var_24;
                    goto LAB_0017a527;
                  }
                  if (var_3->nPrefix == 0x1f) {
                    var_23 = var_13("too many prefix indexes (max %d)",0x1f);
                    *pzErr = var_23;
                    var_24 = 1;
                    var_19 = var_24;
                    goto LAB_0017a527;
                  }
                  var_12 = 0;
                  do {
                    var_12 = var_21 + -0x30 + var_12 * 10;
                    var_23 = var_23 + 1;
                    var_21 = *var_23;
                    if (9 < (type_7)(var_21 - 0x30U)) break;
                  } while (var_12 < 1000);
                  if (0x3e6 < var_12 - 1U) goto LAB_0017a6fb;
                  var_3->aPrefix[var_3->nPrefix] = var_12;
                  var_3->nPrefix = var_3->nPrefix + 1;
                  var_12 = 0;
                } while( true );
              }
              piVar8 = (int *)var_6(&var_24,0x7c);
              var_3->aPrefix = piVar8;
              var_19 = var_24;
              if (var_24 == 0) goto LAB_0017a68f;
            }
            else {
              var_19 = var_22("tokenize",var_30,N);
              if (var_19 == 0) {
                var_4 = 0xffffffffffffffff;
                var_17 = var_23;
                do {
                  if (var_4 == 0) break;
                  var_4 = var_4 - 1;
                  var_21 = *var_17;
                  var_17 = var_17 + (type_4)bVar16 * -2 + 1;
                } while (var_21 != '\0');
                var_7 = (char **)var_6(&var_24,~var_4 * 8);
                var_17 = (char *)var_6(&var_24,~var_4 * 2);
                if ((var_7 != (char **)0x0) && (var_17 != (char *)0x0)) {
                  if (var_3->pTok == (type_9 *)0x0) {
                    var_31 = 0;
                    if (*var_23 != '\0') {
                      var_31 = 0;
                      var_30 = var_17;
                      do {
                        var_23 = var_16(var_23);
                        if (*var_23 == '\'') {
                          var_27 = var_25(var_23);
                        }
                        else {
                          var_27 = var_26(var_23);
                        }
                        if (var_27 == (char *)0x0) {
LAB_0017a8ef:
                          var_23 = var_13("parse error in tokenize directive");
                          *pzErr = var_23;
                          var_24 = 1;
                          goto LAB_0017a842;
                        }
                        var_28(var_30,var_23,(long)var_27 - (long)var_23);
                        var_7[var_31] = var_30;
                        var_29(var_30);
                        var_30 = var_30 + ((long)var_27 - (long)var_23) + 1;
                        var_23 = var_16(var_27);
                        var_31 = var_31 + 1;
                        if (var_23 == (char *)0x0) goto LAB_0017a8ef;
                      } while (*var_23 != '\0');
                    }
                    var_24 = var_32
                                       (pGlobal,var_7,(int)var_31,&var_3->pTok,&var_3->pTokApi
                                        ,pzErr);
                  }
                  else {
                    var_23 = var_13("multiple tokenize=... directives");
                    *pzErr = var_23;
                    var_24 = 1;
                  }
                }
LAB_0017a842:
                var_33(var_7);
                var_33(var_17);
                var_19 = var_24;
              }
              else {
                var_19 = var_22("content",var_30,N);
                if (var_19 == 0) {
                  if (var_3->eContent == 0) {
                    if (*var_23 == '\0') {
                      var_3->eContent = 1;
                      var_19 = var_24;
                    }
                    else {
                      var_3->eContent = 2;
                      var_23 = var_34(&var_24,"%Q.%Q",var_3->zDb,var_23);
                      var_3->zContent = var_23;
                      var_19 = var_24;
                    }
                  }
                  else {
                    var_23 = var_13("multiple content=... directives");
                    *pzErr = var_23;
                    var_24 = 1;
                    var_19 = var_24;
                  }
                }
                else {
                  var_19 = var_22("content_rowid",var_30,N);
                  if (var_19 == 0) {
                    if (var_3->zContentRowid == (char *)0x0) {
                      var_23 = var_9(&var_24,var_23,-1);
                      var_3->zContentRowid = var_23;
                      var_19 = var_24;
                    }
                    else {
                      var_23 = var_13("multiple content_rowid=... directives");
                      *pzErr = var_23;
                      var_24 = 1;
                      var_19 = var_24;
                    }
                  }
                  else {
                    var_19 = var_22("columnsize",var_30,N);
                    if (var_19 == 0) {
                      if (((type_7)(*var_23 - 0x30U) < 2) && (var_23[1] == '\0')) {
                        var_3->bColumnsize = (type_10)(*var_23 == '1');
                        var_19 = var_24;
                      }
                      else {
                        var_23 = var_13("malformed columnsize=... directive");
                        *pzErr = var_23;
                        var_24 = 1;
                        var_19 = var_24;
                      }
                    }
                    else {
                      var_19 = var_22("detail",var_30,N);
                      if (var_19 == 0) {
                        aDetail[0].zName = "none";
                        aDetail[0].eVal = 1;
                        aDetail[1].zName = "full";
                        aDetail[1].eVal = 0;
                        aDetail[2].zName = "columns";
                        aDetail[2].eVal = 2;
                        aDetail[3].zName = (char *)0x0;
                        aDetail[3].eVal = 0;
                        var_31 = -1;
                        var_17 = var_23;
                        do {
                          if (var_31 == 0) break;
                          var_31 = var_31 + -1;
                          var_21 = *var_17;
                          var_17 = var_17 + (type_4)bVar16 * -2 + 1;
                        } while (var_21 != '\0');
                        var_35 = aDetail;
                        var_17 = "none";
                        var_12 = local_c8;
                        do {
                          var_35 = var_35 + 1;
                          var_19 = var_22(var_17,var_23,~(type_10)var_31 - 1);
                          if (var_19 == 0) {
                            if (-1 < var_12) {
                              var_24 = 1;
                              goto LAB_0017ab15;
                            }
                            var_12 = var_35[-1].eVal;
                          }
                          var_17 = var_35->zName;
                        } while (var_17 != (char *)0x0);
                        var_3->eDetail = var_12;
                        var_24 = -(var_12 >> 0x1f);
                        var_19 = var_24;
                        if (var_24 != 0) {
LAB_0017ab15:
                          var_23 = var_13("malformed detail=... directive");
                          *pzErr = var_23;
                          var_19 = var_24;
                        }
                      }
                      else {
                        var_23 = var_13("unrecognized option: \"%.*s\"",
                                                 ~var_4 - 1 & 0xffffffff,var_30);
                        *pzErr = var_23;
                        var_19 = var_12;
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      goto LAB_0017a527;
    }
LAB_0017a368:
    if (var_3->pTok == (type_9 *)0x0) {
      var_10 = var_32
                     (pGlobal,(char **)0x0,0,&var_3->pTok,&var_3->pTokApi,(char **)0x0);
    }
  }
  else {
LAB_0017a364:
    if (var_10 == 0) goto LAB_0017a368;
  }
  if (var_10 == 0) {
    if (var_3->zContent == (char *)0x0) {
      if (var_3->eContent == 0) {
        var_23 = "content";
      }
      else {
        var_23 = "docsize";
        if (var_3->bColumnsize == 0) goto LAB_0017a389;
      }
      var_23 = var_34(&var_10,"%Q.\'%q_%s\'",var_3->zDb,var_3->zName,var_23);
      var_3->zContent = var_23;
      if (var_10 != 0) goto LAB_0017acb0;
    }
LAB_0017a389:
    if (var_3->zContentRowid == (char *)0x0) {
      var_23 = var_9(&var_10,"rowid",-1);
      var_3->zContentRowid = var_23;
      if (var_10 != 0) goto LAB_0017acb0;
    }
    zOne = (char *)((type_4)zOne & 0xffffffff00000000);
    var_20 = (char *)0x0;
    local_90 = 0;
    local_8c = 0;
    var_36((int *)&zOne,(type_11 *)&var_20,"T.%Q",var_3->zContentRowid);
    if ((var_3->eContent != 1) && (0 < var_3->nCol)) {
      var_4 = 0;
      do {
        if (var_3->eContent == 2) {
          var_36
                    ((int *)&zOne,(type_11 *)&var_20,", T.%Q",var_3->azCol[var_4]);
        }
        else {
          var_36
                    ((int *)&zOne,(type_11 *)&var_20,", T.c%d",var_4 & 0xffffffff);
        }
        var_4 = var_4 + 1;
      } while ((int)var_4 < var_3->nCol);
    }
    var_3->zContentExprlist = var_20;
    var_10 = (int)zOne;
    iVar5 = (int)zOne;
    if ((int)zOne == 0) goto LAB_0017ad22;
  }
LAB_0017acb0:
  var_37(var_3);
  *ppOut = (type_3 *)0x0;
  iVar5 = var_10;
LAB_0017ad22:
  if (var_38 != *(long *)(var_1 + 0x28)) {
                    /* WARNING: Subroutine does not return */
    var_39();
  }
  return iVar5;
LAB_0017a6fb:
  var_23 = var_13("prefix length out of range (max 999)");
  *pzErr = var_23;
  var_24 = 1;
  var_19 = var_24;
LAB_0017a527:
  var_10 = var_19;
  var_33(zOne);
  var_33(var_20);
  var_12 = (int)var_14;
  var_14 = var_14 + 1;
  if (var_8 <= var_12 || var_10 != 0) goto LAB_0017a364;
  goto LAB_0017a558;
}


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

int MASKED(undefined8 param_1,undefined8 param_2,int param_3,long param_4,long *param_5,
                undefined8 *param_6)

{
  char cVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  undefined8 *puVar5;
  long lVar6;
  undefined8 uVar7;
  undefined8 uVar8;
  void *pvVar9;
  long lVar10;
  ulong uVar11;
  long lVar12;
  char **ppcVar13;
  undefined8 *puVar14;
  char *pcVar15;
  char *pcVar16;
  char *pcVar17;
  void *__dest;
  long in_FS_OFFSET;
  byte bVar18;
  int local_c8;
  int local_ac;
  int local_a8;
  int local_a4;
  char *local_a0;
  char *local_98;
  undefined4 local_90;
  undefined4 local_8c;
  char *local_88;
  undefined4 local_80 [2];
  char *local_78;
  undefined4 local_70;
  char *local_68;
  undefined4 local_60;
  undefined8 local_58;
  undefined4 local_50;
  long local_40;
  
  bVar18 = 0;
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  local_ac = 0;
  puVar5 = (undefined8 *)FUN_0014ae6c(0xa8);
  *param_5 = (long)puVar5;
  if (puVar5 == (undefined8 *)0x0) {
    iVar4 = 7;
    goto LAB_0017ad22;
  }
  puVar5[1] = 0;
  puVar5[0x14] = 0;
  puVar14 = (undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8);
  for (uVar11 = (ulong)(((int)puVar5 - (int)(undefined8 *)((ulong)(puVar5 + 2) & 0xfffffffffffffff8)
                        ) + 0xa8U >> 3); uVar11 != 0; uVar11 = uVar11 - 1) {
    *puVar14 = 0;
    puVar14 = puVar14 + (ulong)bVar18 * -2 + 1;
  }
  *puVar5 = param_2;
  *(undefined4 *)(puVar5 + 0xf) = 0xffffffff;
  lVar6 = FUN_0014bc1d(&local_ac,(long)param_3 * 9);
  puVar5[4] = lVar6;
  puVar5[5] = lVar6 + (long)param_3 * 8;
  uVar7 = FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 8),0xffffffff);
  puVar5[1] = uVar7;
  uVar7 = FUN_0014b209(&local_ac,*(undefined8 *)(param_4 + 0x10),0xffffffff);
  iVar4 = local_ac;
  puVar5[2] = uVar7;
  *(undefined4 *)(puVar5 + 0xb) = 1;
  *(undefined4 *)((long)puVar5 + 0x5c) = 0;
  if (local_ac == 0) {
    iVar2 = FUN_0012ad85(uVar7,&DAT_001f3ddb);
    if (iVar2 == 0) {
      uVar7 = FUN_001776d2("reserved fts5 table name: %s",uVar7);
      *param_6 = uVar7;
      local_ac = 1;
      goto LAB_0017a364;
    }
    if (3 < param_3) {
      lVar6 = 4;
      local_c8 = -1;
LAB_0017a558:
      uVar7 = *(undefined8 *)(param_4 + -8 + lVar6 * 8);
      local_a0 = (char *)0x0;
      local_98 = (char *)0x0;
      local_a8 = 0;
      uVar8 = FUN_0014c842(&local_ac,uVar7,&local_a0,&local_a8);
      pcVar17 = (char *)FUN_0013465f(uVar8);
      iVar2 = iVar4;
      if ((pcVar17 != (char *)0x0) && (*pcVar17 == '=')) {
        if (local_a8 == 0) {
          pcVar17 = pcVar17 + 1;
          iVar2 = 1;
        }
        else {
          iVar2 = 1;
          pcVar17 = (char *)0x0;
        }
      }
      pcVar17 = (char *)FUN_0013465f(pcVar17);
      if ((pcVar17 == (char *)0x0) ||
         ((pcVar16 = local_a0, *pcVar17 != '\0' &&
          ((pcVar17 = (char *)FUN_0014c842(&local_ac,pcVar17,&local_98,&local_a4),
           pcVar17 == (char *)0x0 || (pcVar16 = local_a0, *pcVar17 != '\0')))))) {
        iVar3 = local_ac;
        if (local_ac == 0) {
          uVar7 = FUN_001776d2("parse error in \"%s\"",uVar7);
          *param_6 = uVar7;
          local_ac = 1;
          iVar3 = local_ac;
        }
      }
      else {
        iVar3 = local_ac;
        local_a0 = pcVar16;
        if (local_ac == 0) {
          if (iVar2 == 0) {
            iVar3 = FUN_0012ad85(pcVar16,&DAT_001f3ddb);
            if ((iVar3 == 0) ||
               (iVar3 = FUN_0012ad85(pcVar16,"rowid"), pcVar17 = local_98, iVar3 == 0)) {
              uVar7 = FUN_001776d2("reserved fts5 column name: %s",pcVar16);
              *param_6 = uVar7;
              iVar2 = 1;
            }
            else if (local_98 != (char *)0x0) {
              iVar2 = FUN_0012ad85(local_98,"unindexed");
              if (iVar2 == 0) {
                *(undefined1 *)(puVar5[5] + (long)*(int *)(puVar5 + 3)) = 1;
                iVar2 = 0;
              }
              else {
                uVar7 = FUN_001776d2("unrecognized column option: %s",pcVar17);
                *param_6 = uVar7;
                iVar2 = 1;
              }
            }
            iVar3 = *(int *)(puVar5 + 3);
            *(int *)(puVar5 + 3) = iVar3 + 1;
            *(char **)(puVar5[4] + (long)iVar3 * 8) = pcVar16;
            local_a0 = (char *)0x0;
            iVar3 = iVar2;
          }
          else {
            pcVar17 = local_98;
            if (local_98 == (char *)0x0) {
              pcVar17 = "";
            }
            local_a4 = 0;
            uVar11 = 0xffffffffffffffff;
            pcVar15 = pcVar16;
            do {
              if (uVar11 == 0) break;
              uVar11 = uVar11 - 1;
              cVar1 = *pcVar15;
              pcVar15 = pcVar15 + (ulong)bVar18 * -2 + 1;
            } while (cVar1 != '\0');
            uVar11 = ~uVar11 - 1;
            iVar3 = FUN_0012ada6("prefix",pcVar16,uVar11 & 0xffffffff);
            if (iVar3 == 0) {
              if (puVar5[7] != 0) {
LAB_0017a68f:
                do {
                  cVar1 = *pcVar17;
                  while (cVar1 == ' ') {
                    pcVar17 = pcVar17 + 1;
                    cVar1 = *pcVar17;
                  }
                  if ((cVar1 == ',') && (iVar2 == 0)) {
                    cVar1 = pcVar17[1];
                    pcVar17 = pcVar17 + 1;
                    while (cVar1 == ' ') {
                      pcVar17 = pcVar17 + 1;
                      cVar1 = *pcVar17;
                    }
                  }
                  else {
                    iVar3 = local_a4;
                    if (cVar1 == '\0') goto LAB_0017a527;
                  }
                  cVar1 = *pcVar17;
                  if (9 < (byte)(cVar1 - 0x30U)) {
                    uVar7 = FUN_001776d2("malformed prefix=... directive");
                    *param_6 = uVar7;
                    local_a4 = 1;
                    iVar3 = local_a4;
                    goto LAB_0017a527;
                  }
                  if (*(int *)(puVar5 + 6) == 0x1f) {
                    uVar7 = FUN_001776d2("too many prefix indexes (max %d)",0x1f);
                    *param_6 = uVar7;
                    local_a4 = 1;
                    iVar3 = local_a4;
                    goto LAB_0017a527;
                  }
                  iVar2 = 0;
                  do {
                    iVar2 = cVar1 + -0x30 + iVar2 * 10;
                    pcVar17 = pcVar17 + 1;
                    cVar1 = *pcVar17;
                    if (9 < (byte)(cVar1 - 0x30U)) break;
                  } while (iVar2 < 1000);
                  if (0x3e6 < iVar2 - 1U) goto LAB_0017a6fb;
                  *(int *)(puVar5[7] + (long)*(int *)(puVar5 + 6) * 4) = iVar2;
                  *(int *)(puVar5 + 6) = *(int *)(puVar5 + 6) + 1;
                  iVar2 = 0;
                } while( true );
              }
              uVar7 = FUN_0014bc1d(&local_a4,0x7c);
              puVar5[7] = uVar7;
              iVar3 = local_a4;
              if (local_a4 == 0) goto LAB_0017a68f;
            }
            else {
              iVar3 = FUN_0012ada6("tokenize",pcVar16,uVar11 & 0xffffffff);
              if (iVar3 == 0) {
                uVar11 = 0xffffffffffffffff;
                pcVar16 = pcVar17;
                do {
                  if (uVar11 == 0) break;
                  uVar11 = uVar11 - 1;
                  cVar1 = *pcVar16;
                  pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;
                } while (cVar1 != '\0');
                lVar12 = FUN_0014bc1d(&local_a4,~uVar11 * 8);
                pvVar9 = (void *)FUN_0014bc1d(&local_a4,~uVar11 * 2);
                if ((lVar12 != 0) && (pvVar9 != (void *)0x0)) {
                  if (puVar5[0xd] == 0) {
                    uVar11 = 0;
                    if (*pcVar17 != '\0') {
                      uVar11 = 0;
                      __dest = pvVar9;
                      do {
                        pcVar17 = (char *)FUN_0013465f(pcVar17);
                        if (*pcVar17 == '\'') {
                          lVar10 = FUN_0013e006(pcVar17);
                        }
                        else {
                          lVar10 = FUN_00134676(pcVar17);
                        }
                        if (lVar10 == 0) {
LAB_0017a8ef:
                          uVar7 = FUN_001776d2("parse error in tokenize directive");
                          *param_6 = uVar7;
                          local_a4 = 1;
                          goto LAB_0017a842;
                        }
                        memcpy(__dest,pcVar17,lVar10 - (long)pcVar17);
                        *(void **)(lVar12 + uVar11 * 8) = __dest;
                        FUN_00134700(__dest);
                        __dest = (void *)((long)__dest + (lVar10 - (long)pcVar17) + 1U);
                        pcVar17 = (char *)FUN_0013465f(lVar10);
                        uVar11 = uVar11 + 1;
                        if (pcVar17 == (char *)0x0) goto LAB_0017a8ef;
                      } while (*pcVar17 != '\0');
                    }
                    local_a4 = FUN_0017a177(param_1,lVar12,uVar11 & 0xffffffff,puVar5 + 0xd,
                                            puVar5 + 0xe,param_6);
                  }
                  else {
                    uVar7 = FUN_001776d2("multiple tokenize=... directives");
                    *param_6 = uVar7;
                    local_a4 = 1;
                  }
                }
LAB_0017a842:
                FUN_00141303(lVar12);
                FUN_00141303(pvVar9);
                iVar3 = local_a4;
              }
              else {
                iVar3 = FUN_0012ada6("content",pcVar16,uVar11 & 0xffffffff);
                if (iVar3 == 0) {
                  if (*(int *)(puVar5 + 8) == 0) {
                    if (*pcVar17 == '\0') {
                      *(undefined4 *)(puVar5 + 8) = 1;
                      iVar3 = local_a4;
                    }
                    else {
                      *(undefined4 *)(puVar5 + 8) = 2;
                      uVar7 = FUN_00177220(&local_a4,"%Q.%Q",puVar5[1],pcVar17);
                      puVar5[9] = uVar7;
                      iVar3 = local_a4;
                    }
                  }
                  else {
                    uVar7 = FUN_001776d2("multiple content=... directives");
                    *param_6 = uVar7;
                    local_a4 = 1;
                    iVar3 = local_a4;
                  }
                }
                else {
                  iVar3 = FUN_0012ada6("content_rowid",pcVar16,uVar11 & 0xffffffff);
                  if (iVar3 == 0) {
                    if (puVar5[10] == 0) {
                      uVar7 = FUN_0014b209(&local_a4,pcVar17,0xffffffff);
                      puVar5[10] = uVar7;
                      iVar3 = local_a4;
                    }
                    else {
                      uVar7 = FUN_001776d2("multiple content_rowid=... directives");
                      *param_6 = uVar7;
                      local_a4 = 1;
                      iVar3 = local_a4;
                    }
                  }
                  else {
                    iVar3 = FUN_0012ada6("columnsize",pcVar16,uVar11 & 0xffffffff);
                    if (iVar3 == 0) {
                      if (((byte)(*pcVar17 - 0x30U) < 2) && (pcVar17[1] == '\0')) {
                        *(uint *)(puVar5 + 0xb) = (uint)(*pcVar17 == '1');
                        iVar3 = local_a4;
                      }
                      else {
                        uVar7 = FUN_001776d2("malformed columnsize=... directive");
                        *param_6 = uVar7;
                        local_a4 = 1;
                        iVar3 = local_a4;
                      }
                    }
                    else {
                      iVar3 = FUN_0012ada6("detail",pcVar16,uVar11 & 0xffffffff);
                      if (iVar3 == 0) {
                        local_88 = "none";
                        local_80[0] = 1;
                        local_78 = "full";
                        local_70 = 0;
                        local_68 = "columns";
                        local_60 = 2;
                        local_58 = 0;
                        local_50 = 0;
                        lVar12 = -1;
                        pcVar16 = pcVar17;
                        do {
                          if (lVar12 == 0) break;
                          lVar12 = lVar12 + -1;
                          cVar1 = *pcVar16;
                          pcVar16 = pcVar16 + (ulong)bVar18 * -2 + 1;
                        } while (cVar1 != '\0');
                        pcVar16 = "none";
                        ppcVar13 = &local_78;
                        iVar2 = local_c8;
                        do {
                          iVar3 = FUN_0012ada6(pcVar16,pcVar17,~(uint)lVar12 - 1);
                          if (iVar3 == 0) {
                            if (-1 < iVar2) {
                              local_a4 = 1;
                              goto LAB_0017ab15;
                            }
                            iVar2 = *(int *)(ppcVar13 + -1);
                          }
                          pcVar16 = *ppcVar13;
                          ppcVar13 = ppcVar13 + 2;
                        } while (pcVar16 != (char *)0x0);
                        *(int *)((long)puVar5 + 0x5c) = iVar2;
                        local_a4 = -(iVar2 >> 0x1f);
                        iVar3 = local_a4;
                        if (local_a4 != 0) {
LAB_0017ab15:
                          uVar7 = FUN_001776d2("malformed detail=... directive");
                          *param_6 = uVar7;
                          iVar3 = local_a4;
                        }
                      }
                      else {
                        uVar7 = FUN_001776d2("unrecognized option: \"%.*s\"",uVar11 & 0xffffffff,
                                             pcVar16);
                        *param_6 = uVar7;
                        iVar3 = iVar2;
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      goto LAB_0017a527;
    }
LAB_0017a368:
    if (puVar5[0xd] == 0) {
      local_ac = FUN_0017a177(param_1,0,0,puVar5 + 0xd,puVar5 + 0xe,0);
    }
  }
  else {
LAB_0017a364:
    if (local_ac == 0) goto LAB_0017a368;
  }
  if (local_ac == 0) {
    if (puVar5[9] == 0) {
      if (*(int *)(puVar5 + 8) == 0) {
        pcVar17 = "content";
      }
      else {
        pcVar17 = "docsize";
        if (*(int *)(puVar5 + 0xb) == 0) goto LAB_0017a389;
      }
      uVar7 = FUN_00177220(&local_ac,"%Q.\'%q_%s\'",puVar5[1],puVar5[2],pcVar17);
      puVar5[9] = uVar7;
      if (local_ac != 0) goto LAB_0017acb0;
    }
LAB_0017a389:
    if (puVar5[10] == 0) {
      uVar7 = FUN_0014b209(&local_ac,"rowid",0xffffffff);
      puVar5[10] = uVar7;
      if (local_ac != 0) goto LAB_0017acb0;
    }
    local_a0 = (char *)((ulong)local_a0 & 0xffffffff00000000);
    local_98 = (char *)0x0;
    local_90 = 0;
    local_8c = 0;
    FUN_001765c7(&local_a0,&local_98,&DAT_001f4822,puVar5[10]);
    if ((*(int *)(puVar5 + 8) != 1) && (0 < *(int *)(puVar5 + 3))) {
      uVar11 = 0;
      do {
        if (*(int *)(puVar5 + 8) == 2) {
          FUN_001765c7(&local_a0,&local_98,&DAT_001f4820,*(undefined8 *)(puVar5[4] + uVar11 * 8));
        }
        else {
          FUN_001765c7(&local_a0,&local_98,", T.c%d",uVar11 & 0xffffffff);
        }
        uVar11 = uVar11 + 1;
      } while ((int)uVar11 < *(int *)(puVar5 + 3));
    }
    puVar5[0xc] = local_98;
    local_ac = (int)local_a0;
    iVar4 = (int)local_a0;
    if ((int)local_a0 == 0) goto LAB_0017ad22;
  }
LAB_0017acb0:
  FUN_00148182(puVar5);
  *param_5 = 0;
  iVar4 = local_ac;
LAB_0017ad22:
  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return iVar4;
LAB_0017a6fb:
  uVar7 = FUN_001776d2("prefix length out of range (max 999)");
  *param_6 = uVar7;
  local_a4 = 1;
  iVar3 = local_a4;
LAB_0017a527:
  local_ac = iVar3;
  FUN_00141303(local_a0);
  FUN_00141303(local_98);
  iVar2 = (int)lVar6;
  lVar6 = lVar6 + 1;
  if (param_3 <= iVar2 || local_ac != 0) goto LAB_0017a364;
  goto LAB_0017a558;
}

