
char * fts5ConfigGobbleWord(int *pRc,char *zIn,char **pzOut,int *pbQuoted)

{
  char cVar1;
  undefined *puVar2;
  int iVar3;
  int iVar4;
  char *pcVar5;
  char *pcVar6;
  Unicode61Tokenizer *p;
  int iVar7;
  byte bVar9;
  uint uVar8;
  undefined4 *puVar10;
  undefined4 *puVar11;
  u8 *puVar12;
  byte bVar13;
  char *pcVar14;
  undefined4 uVar15;
  byte bVar16;
  byte *pbVar17;
  byte *pbVar18;
  int iVar19;
  uint uVar20;
  byte *pbVar21;
  byte *pbVar22;
  byte *pbVar23;
  byte *pbVar24;
  byte *pbVar25;
  code *pcVar26;
  byte *pbVar27;
  int in_stack_fffffe50;
  int in_stack_fffffe54;
  int iStack_19c;
  int iStack_194;
  int iStack_150;
  code *pcStack_14c;
  undefined1 *puVar28;
  undefined4 in_stack_ffffff54;
  u8 aBareword [128];
  
  puVar2 = PTR___stack_chk_guard_0015ca30;
  puVar28 = &_gp;
  iVar3 = *(int *)PTR___stack_chk_guard_0015ca30;
  pbVar17 = (byte *)pbQuoted;
  iVar4 = (*(code *)PTR_strlen_0015c9c8)(zIn);
  pcVar14 = (char *)(iVar4 + 1);
  pcVar5 = (char *)sqlite3_malloc64(CONCAT44(puVar28,in_stack_ffffff54));
  *pbQuoted = 0;
  *pzOut = (char *)0x0;
  if (pcVar5 == (char *)0x0) {
    pcVar26 = *(code **)(puVar28 + -0x7fc4);
    *pRc = 7;
    (*pcVar26)(0);
    pcVar6 = (char *)0x0;
    iStack_194 = in_stack_fffffe50;
    goto LAB_000530c4;
  }
  pcVar14 = zIn;
  (**(code **)(puVar28 + -0x7b7c))(pcVar5,zIn,(char *)(iVar4 + 1));
  cVar1 = *pcVar5;
  if ((((cVar1 == '\"') || (cVar1 == '\'')) || (cVar1 == '[')) ||
     (iVar4 = *(int *)(puVar28 + -0x7fbc), cVar1 == '`')) {
    iVar4 = (*(code *)(*(int *)(puVar28 + -0x7f44) + 0x4688))(pcVar5);
    pcVar6 = zIn + iVar4;
    *pbQuoted = 1;
    if (pcVar6 == (char *)0x0) goto LAB_0005311c;
  }
  else {
    iVar19 = *(int *)(puVar28 + -0x7fbc);
    pcVar6 = zIn;
    while( true ) {
      cVar1 = *pcVar6;
      puVar10 = (undefined4 *)(iVar4 + 0xf68);
      puVar12 = aBareword;
      do {
        puVar11 = puVar10 + 4;
        *(undefined4 *)puVar12 = *puVar10;
        pbVar17 = (byte *)puVar10[1];
        uVar15 = puVar10[2];
        pcVar14 = (char *)puVar10[3];
        *(byte **)(puVar12 + 4) = pbVar17;
        *(undefined4 *)(puVar12 + 8) = uVar15;
        *(char **)(puVar12 + 0xc) = pcVar14;
        puVar10 = puVar11;
        puVar12 = puVar12 + 0x10;
      } while (puVar11 != (undefined4 *)(iVar19 + 0xfe8));
      if ((-1 < cVar1) && (aBareword[cVar1] == '\0')) break;
      pcVar6 = pcVar6 + 1;
    }
    if (zIn == pcVar6) {
LAB_0005311c:
      (**(code **)(puVar28 + -0x7fc4))(pcVar5);
      pcVar6 = (char *)0x0;
      iStack_194 = in_stack_fffffe50;
      goto LAB_000530c4;
    }
    pcVar5[(int)pcVar6 - (int)zIn] = '\0';
  }
  *pzOut = pcVar5;
  iStack_194 = in_stack_fffffe50;
LAB_000530c4:
  if (iVar3 == *(int *)puVar2) {
    return pcVar6;
  }
  pcVar26 = *(code **)(puVar28 + -0x7b9c);
  (*pcVar26)();
  p = (Unicode61Tokenizer *)**(int **)(pcVar26 + 0x1098c8);
  if (0 < (int)puVar28) {
    pcVar14 = (char *)FUN_000531e8();
    return pcVar14;
  }
  if (p == (Unicode61Tokenizer *)**(int **)(pcVar26 + 0x1098c8)) {
    return (char *)0x0;
  }
  pcVar26 = *(code **)(pcVar26 + 0x1098ac);
  (*pcVar26)();
  iStack_19c = p->nFold;
  iVar4 = *(int *)(pcVar26 + 0x1092d0);
  pbVar21 = (byte *)p->aFold;
  iVar3 = *(int *)(pcVar26 + 0x1092a4);
  pbVar24 = pbVar21 + iStack_19c + -6;
  pbVar25 = pbVar17 + iStack_150;
  pbVar27 = pbVar17;
LAB_00053480:
  iVar19 = iStack_194;
  if (pbVar25 <= pbVar27) {
    return (char *)0x0;
  }
  do {
    bVar9 = *pbVar27;
    uVar20 = (uint)bVar9;
    pbVar22 = pbVar27 + 1;
    pbVar18 = pbVar21;
    if ((char)bVar9 < '\0') {
      if (0xbf < uVar20) {
        uVar20 = (uint)*(byte *)(uVar20 + iVar3 + -0x73b4 + -0xc0);
        if ((pbVar25 == pbVar22) || (uVar8 = (uint)pbVar27[1], (uVar8 & 0xc0) != 0x80)) {
          if (uVar20 < 0x80) {
            uVar20 = 0xfffd;
          }
        }
        else {
          do {
            pbVar22 = pbVar22 + 1;
            uVar20 = (uVar8 & 0x3f) + uVar20 * 0x40;
            if (pbVar25 == pbVar22) break;
            uVar8 = (uint)*pbVar22;
          } while ((uVar8 & 0xffffffc0) == 0x80);
          if (((uVar20 < 0x80) || ((uVar20 & 0xfffff800) == 0xd800)) ||
             ((uVar20 & 0xfffffffe) == 0xfffe)) {
            uVar20 = 0xfffd;
          }
        }
      }
      iVar7 = fts5UnicodeIsAlnum(p,uVar20);
      if (iVar7 != 0) break;
    }
    else {
      iStack_194 = (int)pbVar27 - (int)pbVar17;
      if (p->aTokenChar[uVar20] != '\0') goto LAB_000535b0;
    }
    pbVar27 = pbVar22;
    if (pbVar25 <= pbVar22) goto LAB_00053644;
  } while( true );
  iStack_194 = (int)pbVar27 - (int)pbVar17;
  do {
    while( true ) {
      uVar20 = (*(code *)(iVar4 + 0x2d68))(uVar20,p->eRemoveDiacritic);
      pbVar23 = pbVar22;
      if (uVar20 != 0) {
        if (uVar20 < 0x80) {
          *pbVar18 = (byte)uVar20;
          pbVar18 = pbVar18 + 1;
        }
        else {
          bVar16 = ((byte)uVar20 & 0x3f) + 0x80;
          bVar9 = (byte)((uVar20 << 0x12) >> 0x18);
          if (uVar20 < 0x800) {
            pbVar18[1] = bVar16;
            *pbVar18 = bVar9 - 0x40;
            pbVar18 = pbVar18 + 2;
          }
          else {
            bVar13 = (bVar9 & 0x3f) + 0x80;
            bVar9 = (byte)((uVar20 << 0xc) >> 0x18);
            if (uVar20 < 0x10000) {
              pbVar18[1] = bVar13;
              pbVar18[2] = bVar16;
              *pbVar18 = bVar9 - 0x20;
              pbVar18 = pbVar18 + 3;
            }
            else {
              pbVar18[2] = bVar13;
              pbVar18[3] = bVar16;
              *pbVar18 = (byte)((uVar20 << 0xb) >> 0x1d) - 0x10;
              pbVar18[1] = (bVar9 & 0x3f) + 0x80;
              pbVar18 = pbVar18 + 4;
            }
          }
        }
      }
      while( true ) {
        pbVar27 = pbVar23;
        if (pbVar25 <= pbVar23) goto LAB_00053608;
        if (pbVar24 < pbVar18) {
          iVar7 = iStack_19c * 2;
          pbVar21 = (byte *)sqlite3_malloc64(CONCAT44(iVar19,in_stack_fffffe54));
          if (pbVar21 == (byte *)0x0) {
            return &DAT_00000007;
          }
          pbVar18 = pbVar21 + ((int)pbVar18 - (int)p->aFold);
          (**(code **)(pcVar26 + 0x109640))(pbVar21,p->aFold,iStack_19c);
          (**(code **)(pcVar26 + 0x1091f8))(p->aFold);
          pbVar24 = pbVar21 + iVar7 + -6;
          p->aFold = (char *)pbVar21;
          p->nFold = iVar7;
          iStack_19c = iVar7;
        }
        bVar9 = *pbVar23;
        uVar20 = (uint)bVar9;
        if ((char)bVar9 < '\0') break;
        if (p->aTokenChar[uVar20] == '\0') goto LAB_00053608;
        pbVar22 = pbVar23 + 1;
LAB_000535b0:
        if (uVar20 - 0x41 < 0x1a) {
          bVar9 = (char)uVar20 + 0x20;
        }
        *pbVar18 = bVar9;
        pbVar18 = pbVar18 + 1;
        pbVar23 = pbVar22;
      }
      pbVar22 = pbVar23 + 1;
      if (uVar20 < 0xc0) break;
      uVar20 = (uint)*(byte *)(uVar20 + iVar3 + -0x73b4 + -0xc0);
      if ((pbVar25 == pbVar22) || (uVar8 = (uint)pbVar23[1], (uVar8 & 0xc0) != 0x80)) {
        if (uVar20 < 0x80) goto LAB_00053748;
      }
      else {
        do {
          pbVar22 = pbVar22 + 1;
          uVar20 = (uVar8 & 0x3f) + uVar20 * 0x40;
          if (pbVar25 == pbVar22) break;
          uVar8 = (uint)*pbVar22;
        } while ((uVar8 & 0xffffffc0) == 0x80);
        if (((uVar20 < 0x80) || ((uVar20 & 0xfffff800) == 0xd800)) ||
           ((uVar20 & 0xfffffffe) == 0xfffe)) {
LAB_00053748:
          iVar7 = fts5UnicodeIsAlnum(p,0xfffd);
          uVar20 = 0xfffd;
          goto joined_r0x00053764;
        }
      }
      iVar7 = fts5UnicodeIsAlnum(p,uVar20);
      if ((iVar7 == 0) &&
         ((pbVar27 = pbVar22, 0x31 < uVar20 - 0x300 ||
          (iVar7 = sqlite3FtsUnicodeIsdiacritic(uVar20), iVar7 == 0)))) goto LAB_00053608;
    }
    iVar7 = fts5UnicodeIsAlnum(p,uVar20);
joined_r0x00053764:
    pbVar27 = pbVar22;
  } while (iVar7 != 0);
LAB_00053608:
  in_stack_fffffe54 = (int)pbVar23 - (int)pbVar17;
  pcVar5 = (char *)(*pcStack_14c)(pcVar14,0,pbVar21,(int)pbVar18 - (int)pbVar21);
  if (pcVar5 != (char *)0x0) {
    if (pcVar5 == (char *)0x65) {
LAB_00053644:
      pcVar5 = (char *)0x0;
    }
    return pcVar5;
  }
  goto LAB_00053480;
}



char * FUN_00052f80(undefined4 *param_1,char *param_2,undefined4 *param_3,code *param_4)

{
  bool bVar1;
  char cVar2;
  byte bVar3;
  undefined *puVar4;
  char *pcVar5;
  int iVar6;
  int *piVar7;
  code *pcVar8;
  undefined1 *puVar9;
  int iVar10;
  int iVar11;
  uint uVar12;
  undefined4 *puVar13;
  undefined4 *puVar14;
  char *pcVar15;
  code cVar16;
  code cVar17;
  char *pcVar18;
  char *pcVar19;
  code *pcVar20;
  undefined4 uVar21;
  code *pcVar22;
  code *pcVar23;
  code *pcVar24;
  int iVar25;
  uint uVar26;
  char *pcVar27;
  code *pcVar28;
  code *pcVar29;
  code *pcVar30;
  undefined *puVar31;
  code *pcVar32;
  uint local_19c;
  int local_194;
  code *local_150;
  code *local_14c;
  undefined1 auStack_12c [64];
  int local_ec;
  char *local_e8;
  char *local_e4;
  undefined *local_e0;
  undefined4 *local_dc;
  char *local_d8;
  code *local_d4;
  undefined4 *local_d0;
  code *local_ac;
  char local_a4 [4];
  undefined4 local_a0 [31];
  int local_24;
  
  puVar4 = PTR___stack_chk_guard_0015ca30;
  local_24 = *(int *)PTR___stack_chk_guard_0015ca30;
  pcVar22 = param_4;
  pcVar5 = (char *)(*(code *)PTR_strlen_0015c9c8)(param_2);
  pcVar27 = pcVar5 + 1;
  pcVar18 = pcVar27;
  pcVar5 = (char *)sqlite3_malloc64(pcVar27 < pcVar5);
  *(undefined4 *)param_4 = 0;
  *param_3 = 0;
  puVar31 = PTR_sqlite3_free_0015c5ec;
  if (pcVar5 == (char *)0x0) {
    *param_1 = 7;
    (*(code *)puVar31)(0);
    pcVar19 = (char *)0x0;
    goto LAB_000530c4;
  }
  pcVar18 = param_2;
  (*(code *)PTR_memcpy_0015ca34)(pcVar5,param_2,pcVar27);
  cVar2 = *pcVar5;
  if ((((cVar2 == '\"') || (cVar2 == '\'')) || (cVar2 == '[')) || (cVar2 == '`')) {
    iVar6 = (*(code *)(PTR_LAB_0015c66c + 0x4688))(pcVar5);
    pcVar19 = param_2 + iVar6;
    *(undefined4 *)param_4 = 1;
    if (pcVar19 == (char *)0x0) goto LAB_0005311c;
  }
  else {
    pcVar19 = param_2;
    while( true ) {
      cVar2 = *pcVar19;
      puVar13 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xf68);
      pcVar15 = local_a4;
      do {
        puVar14 = puVar13 + 4;
        *(undefined4 *)pcVar15 = *puVar13;
        pcVar22 = (code *)puVar13[1];
        uVar21 = puVar13[2];
        pcVar18 = (char *)puVar13[3];
        *(code **)(pcVar15 + 4) = pcVar22;
        *(undefined4 *)(pcVar15 + 8) = uVar21;
        *(char **)(pcVar15 + 0xc) = pcVar18;
        puVar13 = puVar14;
        pcVar15 = pcVar15 + 0x10;
      } while (puVar14 != (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8));
      if ((-1 < cVar2) && (local_a4[cVar2] == '\0')) break;
      pcVar19 = pcVar19 + 1;
    }
    bVar1 = param_2 == pcVar19;
    param_2 = pcVar19 + -(int)param_2;
    if (bVar1) {
LAB_0005311c:
      (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);
      pcVar19 = (char *)0x0;
      goto LAB_000530c4;
    }
    param_2 = pcVar5 + (int)param_2;
    *param_2 = '\0';
  }
  *param_3 = pcVar5;
LAB_000530c4:
  if (local_24 == *(int *)puVar4) {
    return pcVar19;
  }
  iVar6 = local_24;
  puVar31 = PTR___stack_chk_fail_0015ca14;
  (*(code *)PTR___stack_chk_fail_0015ca14)();
  piVar7 = *(int **)(puVar31 + 0x1098c8);
  local_e0 = puVar4;
  local_ec = *piVar7;
  iVar25 = 0x40;
  pcVar19 = pcVar18;
  pcVar20 = pcVar22;
  puVar9 = auStack_12c;
  pcVar24 = (code *)0x0;
  local_e8 = pcVar5;
  local_e4 = param_2;
  local_dc = param_3;
  local_d8 = pcVar27;
  local_d4 = param_4;
  local_d0 = param_1;
LAB_000531e8:
  do {
    pcVar30 = pcVar24;
    pcVar24 = pcVar30 + 1;
    pcVar8 = pcVar24;
    if ((-1 < (char)pcVar22[(int)pcVar30]) &&
       (*(char *)(iVar6 + (char)pcVar22[(int)pcVar30]) == '\0')) {
      if ((int)pcVar24 < 0x1645b0) goto LAB_000531e8;
      pcVar8 = pcVar30 + 2;
      pcVar30 = pcVar24;
      if (pcVar24 == (code *)&_gp_1) {
        if (puVar9 != auStack_12c) {
          (**(code **)(puVar31 + 0x109484))(puVar9);
        }
        goto LAB_00053398;
      }
    }
    if ((int)pcVar8 < 0x1645b0) {
      do {
        if ((-1 < (char)pcVar22[(int)pcVar8]) &&
           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')
           ) goto LAB_00053254;
        pcVar8 = pcVar8 + 1;
      } while (pcVar8 != (code *)&_gp_1);
      pcVar24 = (code *)(&_gp_1 + -(int)pcVar30);
LAB_00053254:
      if (iVar25 < (int)pcVar24) {
        pcVar19 = (char *)((int)pcVar24 << 1);
        uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;
LAB_00053270:
        if (puVar9 != auStack_12c) {
          (**(code **)(puVar31 + 0x109484))(puVar9);
        }
        pcVar20 = pcVar24;
        puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);
        if (puVar9 == (undefined1 *)0x0) {
          pcVar5 = &DAT_00000007;
          goto LAB_000533c0;
        }
        iVar25 = (int)pcVar24 << 1;
      }
      pcVar20 = pcVar24;
      if (0 < (int)pcVar24) goto LAB_000532c0;
    }
    else {
      pcVar19 = &SUB_00000002;
      if (iVar25 < 1) {
        uVar26 = 0;
        pcVar24 = (code *)0x1;
        goto LAB_00053270;
      }
      pcVar24 = (code *)0x1;
LAB_000532c0:
      iVar10 = 0;
      do {
        cVar16 = pcVar22[(int)(pcVar30 + iVar10)];
        if ((byte)cVar16 - 0x41 < 0x1a) {
          cVar16 = (code)((char)cVar16 + 0x20);
        }
        pcVar20 = (code *)(puVar9 + iVar10);
        iVar10 = iVar10 + 1;
        *pcVar20 = cVar16;
        pcVar20 = pcVar24;
      } while (iVar10 < (int)pcVar24);
    }
    pcVar19 = (char *)0x0;
    pcVar5 = (char *)(*local_ac)(pcVar18,0,puVar9);
    local_150 = pcVar30;
    local_14c = pcVar8;
    if ((0x1645af < (int)(pcVar8 + 1)) || (pcVar24 = pcVar8 + 1, pcVar5 != (char *)0x0)) break;
  } while( true );
  if (puVar9 == auStack_12c) {
    if (pcVar5 == (char *)0x65) {
LAB_00053398:
      pcVar5 = (char *)0x0;
    }
  }
  else {
LAB_000533c0:
    (**(code **)(puVar31 + 0x109484))(puVar9);
    if (pcVar5 == (char *)0x65) {
      pcVar5 = (char *)0x0;
    }
  }
  if (local_ec == *piVar7) {
    return pcVar5;
  }
  pcVar32 = *(code **)(puVar31 + 0x1098ac);
  iVar6 = local_ec;
  (*pcVar32)();
  local_19c = *(uint *)(iVar6 + 0x84);
  iVar10 = *(int *)(pcVar32 + 0x1092d0);
  pcVar24 = *(code **)(iVar6 + 0x80);
  iVar25 = *(int *)(pcVar32 + 0x1092a4);
  pcVar8 = pcVar24 + (local_19c - 6);
  pcVar30 = pcVar20 + (int)local_150;
  pcVar22 = pcVar20;
LAB_00053480:
  if (pcVar30 <= pcVar22) {
    return (char *)0x0;
  }
  do {
    cVar16 = *pcVar22;
    uVar26 = (uint)(byte)cVar16;
    pcVar28 = pcVar22 + 1;
    pcVar23 = pcVar24;
    if ((char)cVar16 < '\0') {
      if (0xbf < uVar26) {
        uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);
        if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)) {
          if (uVar26 < 0x80) {
            uVar26 = 0xfffd;
          }
        }
        else {
          do {
            pcVar28 = pcVar28 + 1;
            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;
            if (pcVar30 == pcVar28) break;
            uVar12 = (uint)(byte)*pcVar28;
          } while ((uVar12 & 0xffffffc0) == 0x80);
          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||
             ((uVar26 & 0xfffffffe) == 0xfffe)) {
            uVar26 = 0xfffd;
          }
        }
      }
      iVar11 = FUN_00042fcc(iVar6,uVar26);
      if (iVar11 != 0) break;
    }
    else {
      local_194 = (int)pcVar22 - (int)pcVar20;
      if (*(char *)(iVar6 + uVar26) != '\0') goto LAB_000535b0;
    }
    pcVar22 = pcVar28;
    if (pcVar30 <= pcVar28) goto LAB_00053644;
  } while( true );
  local_194 = (int)pcVar22 - (int)pcVar20;
  do {
    while( true ) {
      uVar26 = (*(code *)(iVar10 + 0x2d68))(uVar26,*(undefined4 *)(iVar6 + 0x88));
      pcVar29 = pcVar28;
      if (uVar26 != 0) {
        if (uVar26 < 0x80) {
          *pcVar23 = SUB41(uVar26,0);
          pcVar23 = pcVar23 + 1;
        }
        else {
          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);
          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);
          if (uVar26 < 0x800) {
            pcVar23[1] = cVar16;
            *pcVar23 = (code)(bVar3 - 0x40);
            pcVar23 = pcVar23 + 2;
          }
          else {
            cVar17 = (code)((bVar3 & 0x3f) + 0x80);
            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);
            if (uVar26 < 0x10000) {
              pcVar23[1] = cVar17;
              pcVar23[2] = cVar16;
              *pcVar23 = (code)(bVar3 - 0x20);
              pcVar23 = pcVar23 + 3;
            }
            else {
              pcVar23[2] = cVar17;
              pcVar23[3] = cVar16;
              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);
              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);
              pcVar23 = pcVar23 + 4;
            }
          }
        }
      }
      while( true ) {
        pcVar22 = pcVar29;
        if (pcVar30 <= pcVar29) goto LAB_00053608;
        if (pcVar8 < pcVar23) {
          uVar26 = local_19c * 2;
          pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,
                                             uVar26);
          if (pcVar24 == (code *)0x0) {
            return &DAT_00000007;
          }
          pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));
          (**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);
          (**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));
          pcVar8 = pcVar24 + (uVar26 - 6);
          *(code **)(iVar6 + 0x80) = pcVar24;
          *(uint *)(iVar6 + 0x84) = uVar26;
          local_19c = uVar26;
        }
        cVar16 = *pcVar29;
        uVar26 = (uint)(byte)cVar16;
        if ((char)cVar16 < '\0') break;
        if (*(char *)(iVar6 + uVar26) == '\0') goto LAB_00053608;
        pcVar28 = pcVar29 + 1;
LAB_000535b0:
        if (uVar26 - 0x41 < 0x1a) {
          cVar16 = (code)((char)uVar26 + 0x20);
        }
        *pcVar23 = cVar16;
        pcVar23 = pcVar23 + 1;
        pcVar29 = pcVar28;
      }
      pcVar28 = pcVar29 + 1;
      if (uVar26 < 0xc0) break;
      uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);
      if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80)) {
        if (uVar26 < 0x80) goto LAB_00053748;
      }
      else {
        do {
          pcVar28 = pcVar28 + 1;
          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;
          if (pcVar30 == pcVar28) break;
          uVar12 = (uint)(byte)*pcVar28;
        } while ((uVar12 & 0xffffffc0) == 0x80);
        if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||
           ((uVar26 & 0xfffffffe) == 0xfffe)) {
LAB_00053748:
          iVar11 = FUN_00042fcc(iVar6,0xfffd);
          uVar26 = 0xfffd;
          goto joined_r0x00053724;
        }
      }
      iVar11 = FUN_00042fcc(iVar6,uVar26);
      if ((iVar11 == 0) &&
         ((pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))
         )) goto LAB_00053608;
    }
    iVar11 = FUN_00042fcc(iVar6,uVar26);
joined_r0x00053724:
    pcVar22 = pcVar28;
  } while (iVar11 != 0);
LAB_00053608:
  pcVar18 = (char *)(*local_14c)(pcVar19,0,pcVar24,(int)pcVar23 - (int)pcVar24,local_194,
                                 (int)pcVar29 - (int)pcVar20);
  if (pcVar18 != (char *)0x0) {
    if (pcVar18 == (char *)0x65) {
LAB_00053644:
      pcVar18 = (char *)0x0;
    }
    return pcVar18;
  }
  goto LAB_00053480;
}


lui gp,0x11
addiu gp,gp,0x1630
addu gp,gp,t9
addiu sp,sp,-0xc0
lw t9,-0x7be8(gp)
sw s2,0xa8(sp)
sw gp,0x10(sp)
sw ra,0xbc(sp)
sw s6,0xb8(sp)
or s6,a0,zero
sw s5,0xb4(sp)
or a0,a1,zero
sw s4,0xb0(sp)
or s5,a3,zero
sw s3,0xac(sp)
or s3,a2,zero
sw s1,0xa4(sp)
or s1,a1,zero
sw s0,0xa0(sp)
lw s2,-0x7b80(gp)
lw v0,0x0(s2)
sw v0,0x9c(sp)
jalr t9
_nop
lw gp,0x10(sp)
addiu s4,v0,0x1
sltu a0,s4,v0
lw t9,-0x7e4c(gp)
bal 0x000518bc
_or a1,s4,zero
lw gp,0x10(sp)
or s0,v0,zero
sw zero,0x0(s5)
beq v0,zero,0x00053134
_sw zero,0x0(s3)
lw t9,-0x7b7c(gp)
or a2,s4,zero
or a1,s1,zero
jalr t9
_or a0,v0,zero
li v1,0x22
lb v0,0x0(s0)
beq v0,v1,0x000530f8
_lw gp,0x10(sp)
li v1,0x27
beq v0,v1,0x000530f8
_li v1,0x5b
beq v0,v1,0x000530f8
_li v1,0x60
beq v0,v1,0x000530f8
_lw t3,-0x7fbc(gp)
addiu t4,sp,0x1c
lw t1,-0x7fbc(gp)
or v0,s1,zero
addiu t3,t3,0xf68
addiu t1,t1,0xfe8
lb t2,0x0(v0)
or v1,t3,zero
or a0,t4,zero
lw t0,0x0(v1)
addiu v1,v1,0x10
addiu a0,a0,0x10
sw t0,-0x10(a0)
lw a3,-0xc(v1)
lw a2,-0x8(v1)
lw a1,-0x4(v1)
sw a3,-0xc(a0)
sw a2,-0x8(a0)
bne v1,t1,0x0005306c
_sw a1,-0x4(a0)
bltz t2,0x00053154
_addiu v1,sp,0xa0
addu t2,v1,t2
lbu v1,-0x84(t2)
bne v1,zero,0x00053154
_nop
beq s1,v0,0x0005311c
_subu s1,v0,s1
addu s1,s0,s1
sb zero,0x0(s1)
sw s0,0x0(s3)
lw a0,0x9c(sp)
lw v1,0x0(s2)
bne a0,v1,0x0005315c
_lw ra,0xbc(sp)
lw s6,0xb8(sp)
lw s5,0xb4(sp)
lw s4,0xb0(sp)
lw s3,0xac(sp)
lw s2,0xa8(sp)
lw s1,0xa4(sp)
lw s0,0xa0(sp)
jr ra
_addiu sp,sp,0xc0
lw t9,-0x7f44(gp)
addiu t9,t9,0x4688
jalr t9
_or a0,s0,zero
li v1,0x1
addu v0,s1,v0
lw gp,0x10(sp)
bne v0,zero,0x000530c0
_sw v1,0x0(s5)
lw t9,-0x7fc4(gp)
jalr t9
_or a0,s0,zero
or v0,zero,zero
b 0x000530c4
_lw gp,0x10(sp)
li v0,0x7
lw t9,-0x7fc4(gp)
or a0,s0,zero
jalr t9
_sw v0,0x0(s6)
or v0,zero,zero
b 0x000530c4
_lw gp,0x10(sp)
b 0x00053060
_addiu v0,v0,0x1
lw t9,-0x7b9c(gp)
jalr t9
_nop
lui gp,0x11
addiu gp,gp,0x1448
addu gp,gp,t9
addiu sp,sp,-0xa0
lw v0,-0x7b80(gp)
lw v1,0xb4(sp)
sw s8,0x98(sp)
sw gp,0x18(sp)
sw ra,0x9c(sp)
sw s7,0x94(sp)
sw s6,0x90(sp)
sw s5,0x8c(sp)
sw s4,0x88(sp)
sw s3,0x84(sp)
sw s2,0x80(sp)
sw s1,0x7c(sp)
sw s0,0x78(sp)
sw v0,0x2c(sp)
sw v1,0x20(sp)
lw v0,0x0(v0)
lw s8,0xb0(sp)
sw v0,0x74(sp)
blez s8,0x00053398
_addiu s4,sp,0x34
or s3,a0,zero
or s2,a1,zero
or s7,a3,zero
li s1,0x40
or s5,s4,zero
b 0x000531e8
_or s6,zero,zero
or s6,s0,zero
addu v0,s7,s6
lb v0,0x0(v0)
bltz v0,0x00053220
_addiu s0,s6,0x1
addu v0,s3,v0
lbu v0,0x0(v0)
bne v0,zero,0x00053220
_slt v0,s0,s8
bne v0,zero,0x000531e4
_nop
beq s8,s0,0x00053384
_addiu v0,s6,0x2
or s6,s0,zero
or s0,v0,zero
slt v0,s0,s8
beq v0,zero,0x000533a0
_addu v0,s7,s0
lb v0,0x0(v0)
bltz v0,0x00053244
_addu v0,s3,v0
lbu v0,0x0(v0)
beq v0,zero,0x00053254
_subu a3,s0,s6
addiu s0,s0,0x1
bne s8,s0,0x0005322c
_addu v0,s7,s0
subu a3,s0,s6
slt v0,s1,a3
beq v0,zero,0x000532b8
_srl v0,a3,0x1f
sra s1,a3,0x1f
sll s1,s1,0x1
sll a1,a3,0x1
or s1,v0,s1
beq s5,s4,0x00053294
_lw t9,-0x7fc4(gp)
or a0,s5,zero
sw a1,0x28(sp)
jalr t9
_sw a3,0x24(sp)
lw gp,0x18(sp)
lw a1,0x28(sp)
lw a3,0x24(sp)
lw t9,-0x7e4c(gp)
or a0,s1,zero
bal 0x000518bc
_sw a3,0x24(sp)
lw gp,0x18(sp)
beq v0,zero,0x000533bc
_or s5,v0,zero
lw a3,0x24(sp)
sll s1,a3,0x1
blez a3,0x00053304
_lw t9,0x20(sp)
or v0,zero,zero
addu v1,v0,s6
addu v1,s7,v1
lb a0,0x0(v1)
andi a1,a0,0xff
addiu v1,a1,-0x41
sltiu v1,v1,0x1a
beq v1,zero,0x000532ec
_nop
addiu a0,a1,0x20
seb a0,a0
addu a1,s5,v0
addiu v0,v0,0x1
slt v1,v0,a3
bne v1,zero,0x000532c4
_sb a0,0x0(a1)
lw t9,0x20(sp)
or a1,zero,zero
sw s6,0x10(sp)
addiu s6,s0,0x1
sw s0,0x14(sp)
or a2,s5,zero
jalr t9
_or a0,s2,zero
slt v1,s6,s8
beq v1,zero,0x00053334
_lw gp,0x18(sp)
beq v0,zero,0x000531e8
_nop
bne s5,s4,0x000533c0
_li v1,0x65
beq v0,v1,0x00053398
_nop
lw v1,0x2c(sp)
lw a0,0x74(sp)
lw v1,0x0(v1)
bne a0,v1,0x000533e8
_lw ra,0x9c(sp)
lw s8,0x98(sp)
lw s7,0x94(sp)
lw s6,0x90(sp)
lw s5,0x8c(sp)
lw s4,0x88(sp)
lw s3,0x84(sp)
lw s2,0x80(sp)
lw s1,0x7c(sp)
lw s0,0x78(sp)
jr ra
_addiu sp,sp,0xa0
beq s5,s4,0x00053398
_lw t9,-0x7fc4(gp)
jalr t9
_or a0,s5,zero
lw gp,0x18(sp)
b 0x00053344
_or v0,zero,zero
bgtz s1,0x000533b4
_li a1,0x2
or s1,zero,zero
b 0x00053270
_li a3,0x1
b 0x000532c0
_li a3,0x1
li v0,0x7
lw t9,-0x7fc4(gp)
or a0,s5,zero
jalr t9
_sw v0,0x20(sp)
li v1,0x65
lw v0,0x20(sp)
bne v0,v1,0x00053344
_lw gp,0x18(sp)
b 0x00053344
_or v0,zero,zero
lw t9,-0x7b9c(gp)
jalr t9
_nop
lui gp,0x11
addiu gp,gp,0x11bc
addu gp,gp,t9
addiu sp,sp,-0x60
sw s8,0x58(sp)
or s8,a3,zero
sw s7,0x54(sp)
sw s6,0x50(sp)
or s6,a0,zero
sw s5,0x4c(sp)
sw s4,0x48(sp)
sw s3,0x44(sp)
or s3,a3,zero
sw s1,0x3c(sp)
sw s0,0x38(sp)
sw gp,0x18(sp)
sw ra,0x5c(sp)
sw s2,0x40(sp)
lw v0,0x84(a0)
lw s4,-0x7eec(gp)
lw s2,0x80(a0)
addiu s5,v0,-0x6
lw t1,0x70(sp)
lw s0,-0x7eec(gp)
lw s1,-0x7f18(gp)
addu s5,s2,s5
sw v0,0x24(sp)
addu s7,a3,t1
lw v0,-0x7eec(gp)
addiu s0,s0,0x2fcc
addiu s1,s1,-0x73b4
sw a1,0x64(sp)
sw v0,0x28(sp)
addiu v0,s4,0x2d68
sw v0,0x20(sp)
sltu v0,s8,s7
bne v0,zero,0x000534b0
_or v0,zero,zero
b 0x0005364c
_lw ra,0x5c(sp)
addu a0,s6,t4
lbu a0,0x0(a0)
bne a0,zero,0x000535a8
_subu v1,s8,s3
sltu v1,s4,s7
beq v1,zero,0x00053644
_or s8,s4,zero
lbu t4,0x0(s8)
seb v0,t4
bgez v0,0x00053494
_addiu s4,s8,0x1
sltiu v0,t4,0xc0
beq v0,zero,0x00053528
_nop
or a1,t4,zero
or t9,s0,zero
bal 0x00042fcc
_or a0,s6,zero
beq v0,zero,0x000534a4
_lw gp,0x18(sp)
subu v0,s8,s3
or t3,s2,zero
sw v0,0x2c(sp)
lw a1,0x88(s6)
or a0,t4,zero
lw t9,0x20(sp)
jalr t9
_sw t3,0x30(sp)
lw gp,0x18(sp)
beq v0,zero,0x00053678
_lw t3,0x30(sp)
sltiu a0,v0,0x80
beq a0,zero,0x00053694
_andi a2,v0,0x3f
addiu a3,s2,0x1
b 0x000535cc
_sb v0,0x0(s2)
addu t4,t4,s1
beq s7,s4,0x00053680
_lbu t4,-0xc0(t4)
lbu v0,0x1(s8)
li a0,0x80
andi a1,v0,0xc0
bne a1,a0,0x00053680
_li a2,-0x40
b 0x00053560
_li a1,0x80
lbu v0,0x0(s4)
and a0,v0,a2
bne a0,a1,0x00053574
_nop
sll t4,t4,0x6
addiu s4,s4,0x1
andi v0,v0,0x3f
bne s7,s4,0x00053550
_addu t4,v0,t4
sltiu v0,t4,0x80
bne v0,zero,0x000535a0
_li v0,-0x800
ori a0,zero,0xd800
and v0,t4,v0
beq v0,a0,0x000535a0
_li v0,-0x2
ori a0,zero,0xfffe
and v0,t4,v0
bne v0,a0,0x000534d0
_or a1,t4,zero
b 0x000534cc
_ori t4,zero,0xfffd
or t3,s2,zero
sw v1,0x2c(sp)
addiu a0,t4,-0x41
sltiu a0,a0,0x1a
beq a0,zero,0x000535c8
_addiu a3,s2,0x1
addiu v0,t4,0x20
seb v0,v0
sb v0,0x0(s2)
sltu v0,s4,s7
beq v0,zero,0x00053604
_or s2,t3,zero
sltu v0,s5,a3
bne v0,zero,0x00053774
_lw t9,-0x7e4c(gp)
lbu t4,0x0(s4)
seb v0,t4
bltz v0,0x000536fc
_addu a0,s6,t4
lbu a0,0x0(a0)
bne a0,zero,0x000536dc
_nop
or s2,t3,zero
or s8,s4,zero
lw v0,0x2c(sp)
subu v1,s4,s3
lw a0,0x64(sp)
subu a3,a3,t3
lw t9,0x74(sp)
or a1,zero,zero
sw v0,0x10(sp)
or a2,t3,zero
jalr t9
_sw v1,0x14(sp)
beq v0,zero,0x00053480
_lw gp,0x18(sp)
li v1,0x65
bne v0,v1,0x0005364c
_lw ra,0x5c(sp)
or v0,zero,zero
lw ra,0x5c(sp)
lw s8,0x58(sp)
lw s7,0x54(sp)
lw s6,0x50(sp)
lw s5,0x4c(sp)
lw s4,0x48(sp)
lw s3,0x44(sp)
lw s2,0x40(sp)
lw s1,0x3c(sp)
lw s0,0x38(sp)
jr ra
_addiu sp,sp,0x60
b 0x000535cc
_or a3,s2,zero
sltiu v0,t4,0x80
beq v0,zero,0x000534d0
_or a1,t4,zero
b 0x000534cc
_ori t4,zero,0xfffd
addiu a2,a2,-0x80
sltiu a1,v0,0x800
ext a0,v0,0x6,0x8
bne a1,zero,0x000536e8
_seb a2,a2
andi a0,a0,0x3f
lui a3,0x1
addiu a0,a0,-0x80
sltu a3,v0,a3
ext a1,v0,0xc,0x8
beq a3,zero,0x000537fc
_seb a0,a0
addiu a1,a1,-0x20
sb a0,0x1(s2)
addiu a3,s2,0x3
sb a2,0x2(s2)
b 0x000535cc
_sb a1,0x0(s2)
addiu s4,s4,0x1
b 0x000535b0
_or s2,a3,zero
addiu a0,a0,-0x40
sb a2,0x1(s2)
addiu a3,s2,0x2
b 0x000535cc
_sb a0,0x0(s2)
sltiu v0,t4,0xc0
beq v0,zero,0x00053824
_addiu s8,s4,0x1
sw a3,0x34(sp)
or a1,t4,zero
sw t3,0x30(sp)
or t9,s0,zero
bal 0x00042fcc
_or a0,s6,zero
lw t3,0x30(sp)
beq v0,zero,0x0005376c
_lw a3,0x34(sp)
or s2,a3,zero
b 0x000534f0
_or s4,s8,zero
sltiu v0,t4,0x80
beq v0,zero,0x0005389c
_nop
ori a1,zero,0xfffd
sw a3,0x34(sp)
sw t3,0x30(sp)
or t9,s0,zero
bal 0x00042fcc
_or a0,s6,zero
ori t4,zero,0xfffd
lw t3,0x30(sp)
bne v0,zero,0x0005372c
_lw a3,0x34(sp)
b 0x00053608
_or s2,t3,zero
lw s5,0x24(sp)
sw a3,0x30(sp)
sra v0,s5,0x1f
srl a0,s5,0x1f
sll v0,v0,0x1
sll s2,s5,0x1
or a0,a0,v0
bal 0x000518bc
_or a1,s2,zero
beq v0,zero,0x000538f4
_lw gp,0x18(sp)
lw a1,0x80(s6)
or a2,s5,zero
lw a3,0x30(sp)
or a0,v0,zero
lw t9,-0x7b7c(gp)
addiu s5,s2,-0x6
sw v0,0x34(sp)
subu a3,a3,a1
addu a3,v0,a3
jalr t9
_sw a3,0x30(sp)
lw gp,0x18(sp)
lw t9,-0x7fc4(gp)
jalr t9
_lw a0,0x80(s6)
lw t3,0x34(sp)
lw gp,0x18(sp)
lw a3,0x30(sp)
sw s2,0x24(sp)
addu s5,t3,s5
sw t3,0x80(s6)
b 0x000535e4
_sw s2,0x84(s6)
ext v0,v0,0x12,0x3
sb a0,0x2(s2)
andi a0,a1,0x3f
sb a2,0x3(s2)
addiu v0,v0,-0x10
addiu a0,a0,-0x80
sb v0,0x0(s2)
addiu a3,s2,0x4
b 0x000535cc
_sb a0,0x1(s2)
addu t4,t4,s1
beq s7,s8,0x00053738
_lbu t4,-0xc0(t4)
lbu v0,0x1(s4)
li a0,0x80
andi a1,v0,0xc0
bne a1,a0,0x00053738
_li a2,-0x40
b 0x0005385c
_li a1,0x80
lbu v0,0x0(s8)
and a0,v0,a2
bne a0,a1,0x00053870
_nop
sll t4,t4,0x6
addiu s8,s8,0x1
andi v0,v0,0x3f
bne s7,s8,0x0005384c
_addu t4,v0,t4
sltiu v0,t4,0x80
bne v0,zero,0x00053744
_li v0,-0x800
ori a0,zero,0xd800
and v0,t4,v0
beq v0,a0,0x00053744
_li v0,-0x2
ori a0,zero,0xfffe
and v0,t4,v0
beq v0,a0,0x00053748
_ori a1,zero,0xfffd
sw a3,0x34(sp)
or a1,t4,zero
sw t3,0x30(sp)
or t9,s0,zero
bal 0x00042fcc
_or a0,s6,zero
lw t3,0x30(sp)
bne v0,zero,0x0005372c
_lw a3,0x34(sp)
addiu v0,t4,-0x300
sltiu v0,v0,0x32
beq v0,zero,0x0005376c
_lw v0,0x28(sp)
addiu t9,v0,-0x1760
bal 0x0003e8a0
_or a0,t4,zero
lw t3,0x30(sp)
beq v0,zero,0x0005376c
_lw a3,0x34(sp)
or s2,a3,zero
b 0x000534f0
_or s4,s8,zero
b 0x00053648
_li v0,0x7
(translation_unit "char * FUN_00052f80(undefined4 *param_1,char *param_2,undefined4 *param_3,code *param_4)\n\n{\n  bool bVar1;\n  char cVar2;\n  byte bVar3;\n  undefined *puVar4;\n  char *pcVar5;\n  int iVar6;\n  int *piVar7;\n  code *pcVar8;\n  undefined1 *puVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  char *pcVar15;\n  code cVar16;\n  code cVar17;\n  char *pcVar18;\n  char *pcVar19;\n  code *pcVar20;\n  undefined4 uVar21;\n  code *pcVar22;\n  code *pcVar23;\n  code *pcVar24;\n  int iVar25;\n  uint uVar26;\n  char *pcVar27;\n  code *pcVar28;\n  code *pcVar29;\n  code *pcVar30;\n  undefined *puVar31;\n  code *pcVar32;\n  uint local_19c;\n  int local_194;\n  code *local_150;\n  code *local_14c;\n  undefined1 auStack_12c [64];\n  int local_ec;\n  char *local_e8;\n  char *local_e4;\n  undefined *local_e0;\n  undefined4 *local_dc;\n  char *local_d8;\n  code *local_d4;\n  undefined4 *local_d0;\n  code *local_ac;\n  char local_a4 [4];\n  undefined4 local_a0 [31];\n  int local_24;\n  \n  puVar4 = PTR___stack_chk_guard_0015ca30;\n  local_24 = *(int *)PTR___stack_chk_guard_0015ca30;\n  pcVar22 = param_4;\n  pcVar5 = (char *)(*(code *)PTR_strlen_0015c9c8)(param_2);\n  pcVar27 = pcVar5 + 1;\n  pcVar18 = pcVar27;\n  pcVar5 = (char *)sqlite3_malloc64(pcVar27 < pcVar5);\n  *(undefined4 *)param_4 = 0;\n  *param_3 = 0;\n  puVar31 = PTR_sqlite3_free_0015c5ec;\n  if (pcVar5 == (char *)0x0) {\n    *param_1 = 7;\n    (*(code *)puVar31)(0);\n    pcVar19 = (char *)0x0;\n    goto LAB_000530c4;\n  }\n  pcVar18 = param_2;\n  (*(code *)PTR_memcpy_0015ca34)(pcVar5,param_2,pcVar27);\n  cVar2 = *pcVar5;\n  if ((((cVar2 == '\"') || (cVar2 == '\'')) || (cVar2 == '[')) || (cVar2 == '`')) {\n    iVar6 = (*(code *)(PTR_LAB_0015c66c + 0x4688))(pcVar5);\n    pcVar19 = param_2 + iVar6;\n    *(undefined4 *)param_4 = 1;\n    if (pcVar19 == (char *)0x0) goto LAB_0005311c;\n  }\n  else {\n    pcVar19 = param_2;\n    while( true ) {\n      cVar2 = *pcVar19;\n      puVar13 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xf68);\n      pcVar15 = local_a4;\n      do {\n        puVar14 = puVar13 + 4;\n        *(undefined4 *)pcVar15 = *puVar13;\n        pcVar22 = (code *)puVar13[1];\n        uVar21 = puVar13[2];\n        pcVar18 = (char *)puVar13[3];\n        *(code **)(pcVar15 + 4) = pcVar22;\n        *(undefined4 *)(pcVar15 + 8) = uVar21;\n        *(char **)(pcVar15 + 0xc) = pcVar18;\n        puVar13 = puVar14;\n        pcVar15 = pcVar15 + 0x10;\n      } while (puVar14 != (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8));\n      if ((-1 < cVar2) && (local_a4[cVar2] == '\0')) break;\n      pcVar19 = pcVar19 + 1;\n    }\n    bVar1 = param_2 == pcVar19;\n    param_2 = pcVar19 + -(int)param_2;\n    if (bVar1) {\nLAB_0005311c:\n      (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n      pcVar19 = (char *)0x0;\n      goto LAB_000530c4;\n    }\n    param_2 = pcVar5 + (int)param_2;\n    *param_2 = '\0';\n  }\n  *param_3 = pcVar5;\nLAB_000530c4:\n  if (local_24 == *(int *)puVar4) {\n    return pcVar19;\n  }\n  iVar6 = local_24;\n  puVar31 = PTR___stack_chk_fail_0015ca14;\n  (*(code *)PTR___stack_chk_fail_0015ca14)();\n  piVar7 = *(int **)(puVar31 + 0x1098c8);\n  local_e0 = puVar4;\n  local_ec = *piVar7;\n  iVar25 = 0x40;\n  pcVar19 = pcVar18;\n  pcVar20 = pcVar22;\n  puVar9 = auStack_12c;\n  pcVar24 = (code *)0x0;\n  local_e8 = pcVar5;\n  local_e4 = param_2;\n  local_dc = param_3;\n  local_d8 = pcVar27;\n  local_d4 = param_4;\n  local_d0 = param_1;\nLAB_000531e8:\n  do {\n    pcVar30 = pcVar24;\n    pcVar24 = pcVar30 + 1;\n    pcVar8 = pcVar24;\n    if ((-1 < (char)pcVar22[(int)pcVar30]) &&\n       (*(char *)(iVar6 + (char)pcVar22[(int)pcVar30]) == '\0')) {\n      if ((int)pcVar24 < 0x1645b0) goto LAB_000531e8;\n      pcVar8 = pcVar30 + 2;\n      pcVar30 = pcVar24;\n      if (pcVar24 == (code *)&_gp_1) {\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        goto LAB_00053398;\n      }\n    }\n    if ((int)pcVar8 < 0x1645b0) {\n      do {\n        if ((-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')\n           ) goto LAB_00053254;\n        pcVar8 = pcVar8 + 1;\n      } while (pcVar8 != (code *)&_gp_1);\n      pcVar24 = (code *)(&_gp_1 + -(int)pcVar30);\nLAB_00053254:\n      if (iVar25 < (int)pcVar24) {\n        pcVar19 = (char *)((int)pcVar24 << 1);\n        uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;\nLAB_00053270:\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        pcVar20 = pcVar24;\n        puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);\n        if (puVar9 == (undefined1 *)0x0) {\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }\n        iVar25 = (int)pcVar24 << 1;\n      }\n      pcVar20 = pcVar24;\n      if (0 < (int)pcVar24) goto LAB_000532c0;\n    }\n    else {\n      pcVar19 = &SUB_00000002;\n      if (iVar25 < 1) {\n        uVar26 = 0;\n        pcVar24 = (code *)0x1;\n        goto LAB_00053270;\n      }\n      pcVar24 = (code *)0x1;\nLAB_000532c0:\n      iVar10 = 0;\n      do {\n        cVar16 = pcVar22[(int)(pcVar30 + iVar10)];\n        if ((byte)cVar16 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }\n        pcVar20 = (code *)(puVar9 + iVar10);\n        iVar10 = iVar10 + 1;\n        *pcVar20 = cVar16;\n        pcVar20 = pcVar24;\n      } while (iVar10 < (int)pcVar24);\n    }\n    pcVar19 = (char *)0x0;\n    pcVar5 = (char *)(*local_ac)(pcVar18,0,puVar9);\n    local_150 = pcVar30;\n    local_14c = pcVar8;\n    if ((0x1645af < (int)(pcVar8 + 1)) || (pcVar24 = pcVar8 + 1, pcVar5 != (char *)0x0)) break;\n  } while( true );\n  if (puVar9 == auStack_12c) {\n    if (pcVar5 == (char *)0x65) {\nLAB_00053398:\n      pcVar5 = (char *)0x0;\n    }\n  }\n  else {\nLAB_000533c0:\n    (**(code **)(puVar31 + 0x109484))(puVar9);\n    if (pcVar5 == (char *)0x65) {\n      pcVar5 = (char *)0x0;\n    }\n  }\n  if (local_ec == *piVar7) {\n    return pcVar5;\n  }\n  pcVar32 = *(code **)(puVar31 + 0x1098ac);\n  iVar6 = local_ec;\n  (*pcVar32)();\n  local_19c = *(uint *)(iVar6 + 0x84);\n  iVar10 = *(int *)(pcVar32 + 0x1092d0);\n  pcVar24 = *(code **)(iVar6 + 0x80);\n  iVar25 = *(int *)(pcVar32 + 0x1092a4);\n  pcVar8 = pcVar24 + (local_19c - 6);\n  pcVar30 = pcVar20 + (int)local_150;\n  pcVar22 = pcVar20;\nLAB_00053480:\n  if (pcVar30 <= pcVar22) {\n    return (char *)0x0;\n  }\n  do {\n    cVar16 = *pcVar22;\n    uVar26 = (uint)(byte)cVar16;\n    pcVar28 = pcVar22 + 1;\n    pcVar23 = pcVar24;\n    if ((char)cVar16 < '\0') {\n      if (0xbf < uVar26) {\n        uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n        if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)) {\n          if (uVar26 < 0x80) {\n            uVar26 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);\n          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if (iVar11 != 0) break;\n    }\n    else {\n      local_194 = (int)pcVar22 - (int)pcVar20;\n      if (*(char *)(iVar6 + uVar26) != '\0') goto LAB_000535b0;\n    }\n    pcVar22 = pcVar28;\n    if (pcVar30 <= pcVar28) goto LAB_00053644;\n  } while( true );\n  local_194 = (int)pcVar22 - (int)pcVar20;\n  do {\n    while( true ) {\n      uVar26 = (*(code *)(iVar10 + 0x2d68))(uVar26,*(undefined4 *)(iVar6 + 0x88));\n      pcVar29 = pcVar28;\n      if (uVar26 != 0) {\n        if (uVar26 < 0x80) {\n          *pcVar23 = SUB41(uVar26,0);\n          pcVar23 = pcVar23 + 1;\n        }\n        else {\n          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);\n          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);\n          if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }\n        }\n      }\n      while( true ) {\n        pcVar22 = pcVar29;\n        if (pcVar30 <= pcVar29) goto LAB_00053608;\n        if (pcVar8 < pcVar23) {\n          uVar26 = local_19c * 2;\n          pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26);\n          if (pcVar24 == (code *)0x0) {\n            return &DAT_00000007;\n          }\n          pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));\n          (**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);\n          (**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));\n          pcVar8 = pcVar24 + (uVar26 - 6);\n          *(code **)(iVar6 + 0x80) = pcVar24;\n          *(uint *)(iVar6 + 0x84) = uVar26;\n          local_19c = uVar26;\n        }\n        cVar16 = *pcVar29;\n        uVar26 = (uint)(byte)cVar16;\n        if ((char)cVar16 < '\0') break;\n        if (*(char *)(iVar6 + uVar26) == '\0') goto LAB_00053608;\n        pcVar28 = pcVar29 + 1;\nLAB_000535b0:\n        if (uVar26 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)uVar26 + 0x20);\n        }\n        *pcVar23 = cVar16;\n        pcVar23 = pcVar23 + 1;\n        pcVar29 = pcVar28;\n      }\n      pcVar28 = pcVar29 + 1;\n      if (uVar26 < 0xc0) break;\n      uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n      if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80)) {\n        if (uVar26 < 0x80) goto LAB_00053748;\n      }\n      else {\n        do {\n          pcVar28 = pcVar28 + 1;\n          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n          if (pcVar30 == pcVar28) break;\n          uVar12 = (uint)(byte)*pcVar28;\n        } while ((uVar12 & 0xffffffc0) == 0x80);\n        if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);\n          uVar26 = 0xfffd;\n          goto joined_r0x00053724;\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if ((iVar11 == 0) &&\n         ((pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))\n         )) goto LAB_00053608;\n    }\n    iVar11 = FUN_00042fcc(iVar6,uVar26);\njoined_r0x00053724:\n    pcVar22 = pcVar28;\n  } while (iVar11 != 0);\nLAB_00053608:\n  pcVar18 = (char *)(*local_14c)(pcVar19,0,pcVar24,(int)pcVar23 - (int)pcVar24,local_194,\n                                 (int)pcVar29 - (int)pcVar20);\n  if (pcVar18 != (char *)0x0) {\n    if (pcVar18 == (char *)0x65) {\nLAB_00053644:\n      pcVar18 = (char *)0x0;\n    }\n    return pcVar18;\n  }\n  goto LAB_00053480;\n}\n\n" (function_definition "char * FUN_00052f80(undefined4 *param_1,char *param_2,undefined4 *param_3,code *param_4)\n\n{\n  bool bVar1;\n  char cVar2;\n  byte bVar3;\n  undefined *puVar4;\n  char *pcVar5;\n  int iVar6;\n  int *piVar7;\n  code *pcVar8;\n  undefined1 *puVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  char *pcVar15;\n  code cVar16;\n  code cVar17;\n  char *pcVar18;\n  char *pcVar19;\n  code *pcVar20;\n  undefined4 uVar21;\n  code *pcVar22;\n  code *pcVar23;\n  code *pcVar24;\n  int iVar25;\n  uint uVar26;\n  char *pcVar27;\n  code *pcVar28;\n  code *pcVar29;\n  code *pcVar30;\n  undefined *puVar31;\n  code *pcVar32;\n  uint local_19c;\n  int local_194;\n  code *local_150;\n  code *local_14c;\n  undefined1 auStack_12c [64];\n  int local_ec;\n  char *local_e8;\n  char *local_e4;\n  undefined *local_e0;\n  undefined4 *local_dc;\n  char *local_d8;\n  code *local_d4;\n  undefined4 *local_d0;\n  code *local_ac;\n  char local_a4 [4];\n  undefined4 local_a0 [31];\n  int local_24;\n  \n  puVar4 = PTR___stack_chk_guard_0015ca30;\n  local_24 = *(int *)PTR___stack_chk_guard_0015ca30;\n  pcVar22 = param_4;\n  pcVar5 = (char *)(*(code *)PTR_strlen_0015c9c8)(param_2);\n  pcVar27 = pcVar5 + 1;\n  pcVar18 = pcVar27;\n  pcVar5 = (char *)sqlite3_malloc64(pcVar27 < pcVar5);\n  *(undefined4 *)param_4 = 0;\n  *param_3 = 0;\n  puVar31 = PTR_sqlite3_free_0015c5ec;\n  if (pcVar5 == (char *)0x0) {\n    *param_1 = 7;\n    (*(code *)puVar31)(0);\n    pcVar19 = (char *)0x0;\n    goto LAB_000530c4;\n  }\n  pcVar18 = param_2;\n  (*(code *)PTR_memcpy_0015ca34)(pcVar5,param_2,pcVar27);\n  cVar2 = *pcVar5;\n  if ((((cVar2 == '\"') || (cVar2 == '\'')) || (cVar2 == '[')) || (cVar2 == '`')) {\n    iVar6 = (*(code *)(PTR_LAB_0015c66c + 0x4688))(pcVar5);\n    pcVar19 = param_2 + iVar6;\n    *(undefined4 *)param_4 = 1;\n    if (pcVar19 == (char *)0x0) goto LAB_0005311c;\n  }\n  else {\n    pcVar19 = param_2;\n    while( true ) {\n      cVar2 = *pcVar19;\n      puVar13 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xf68);\n      pcVar15 = local_a4;\n      do {\n        puVar14 = puVar13 + 4;\n        *(undefined4 *)pcVar15 = *puVar13;\n        pcVar22 = (code *)puVar13[1];\n        uVar21 = puVar13[2];\n        pcVar18 = (char *)puVar13[3];\n        *(code **)(pcVar15 + 4) = pcVar22;\n        *(undefined4 *)(pcVar15 + 8) = uVar21;\n        *(char **)(pcVar15 + 0xc) = pcVar18;\n        puVar13 = puVar14;\n        pcVar15 = pcVar15 + 0x10;\n      } while (puVar14 != (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8));\n      if ((-1 < cVar2) && (local_a4[cVar2] == '\0')) break;\n      pcVar19 = pcVar19 + 1;\n    }\n    bVar1 = param_2 == pcVar19;\n    param_2 = pcVar19 + -(int)param_2;\n    if (bVar1) {\nLAB_0005311c:\n      (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n      pcVar19 = (char *)0x0;\n      goto LAB_000530c4;\n    }\n    param_2 = pcVar5 + (int)param_2;\n    *param_2 = '\0';\n  }\n  *param_3 = pcVar5;\nLAB_000530c4:\n  if (local_24 == *(int *)puVar4) {\n    return pcVar19;\n  }\n  iVar6 = local_24;\n  puVar31 = PTR___stack_chk_fail_0015ca14;\n  (*(code *)PTR___stack_chk_fail_0015ca14)();\n  piVar7 = *(int **)(puVar31 + 0x1098c8);\n  local_e0 = puVar4;\n  local_ec = *piVar7;\n  iVar25 = 0x40;\n  pcVar19 = pcVar18;\n  pcVar20 = pcVar22;\n  puVar9 = auStack_12c;\n  pcVar24 = (code *)0x0;\n  local_e8 = pcVar5;\n  local_e4 = param_2;\n  local_dc = param_3;\n  local_d8 = pcVar27;\n  local_d4 = param_4;\n  local_d0 = param_1;\nLAB_000531e8:\n  do {\n    pcVar30 = pcVar24;\n    pcVar24 = pcVar30 + 1;\n    pcVar8 = pcVar24;\n    if ((-1 < (char)pcVar22[(int)pcVar30]) &&\n       (*(char *)(iVar6 + (char)pcVar22[(int)pcVar30]) == '\0')) {\n      if ((int)pcVar24 < 0x1645b0) goto LAB_000531e8;\n      pcVar8 = pcVar30 + 2;\n      pcVar30 = pcVar24;\n      if (pcVar24 == (code *)&_gp_1) {\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        goto LAB_00053398;\n      }\n    }\n    if ((int)pcVar8 < 0x1645b0) {\n      do {\n        if ((-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')\n           ) goto LAB_00053254;\n        pcVar8 = pcVar8 + 1;\n      } while (pcVar8 != (code *)&_gp_1);\n      pcVar24 = (code *)(&_gp_1 + -(int)pcVar30);\nLAB_00053254:\n      if (iVar25 < (int)pcVar24) {\n        pcVar19 = (char *)((int)pcVar24 << 1);\n        uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;\nLAB_00053270:\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        pcVar20 = pcVar24;\n        puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);\n        if (puVar9 == (undefined1 *)0x0) {\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }\n        iVar25 = (int)pcVar24 << 1;\n      }\n      pcVar20 = pcVar24;\n      if (0 < (int)pcVar24) goto LAB_000532c0;\n    }\n    else {\n      pcVar19 = &SUB_00000002;\n      if (iVar25 < 1) {\n        uVar26 = 0;\n        pcVar24 = (code *)0x1;\n        goto LAB_00053270;\n      }\n      pcVar24 = (code *)0x1;\nLAB_000532c0:\n      iVar10 = 0;\n      do {\n        cVar16 = pcVar22[(int)(pcVar30 + iVar10)];\n        if ((byte)cVar16 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }\n        pcVar20 = (code *)(puVar9 + iVar10);\n        iVar10 = iVar10 + 1;\n        *pcVar20 = cVar16;\n        pcVar20 = pcVar24;\n      } while (iVar10 < (int)pcVar24);\n    }\n    pcVar19 = (char *)0x0;\n    pcVar5 = (char *)(*local_ac)(pcVar18,0,puVar9);\n    local_150 = pcVar30;\n    local_14c = pcVar8;\n    if ((0x1645af < (int)(pcVar8 + 1)) || (pcVar24 = pcVar8 + 1, pcVar5 != (char *)0x0)) break;\n  } while( true );\n  if (puVar9 == auStack_12c) {\n    if (pcVar5 == (char *)0x65) {\nLAB_00053398:\n      pcVar5 = (char *)0x0;\n    }\n  }\n  else {\nLAB_000533c0:\n    (**(code **)(puVar31 + 0x109484))(puVar9);\n    if (pcVar5 == (char *)0x65) {\n      pcVar5 = (char *)0x0;\n    }\n  }\n  if (local_ec == *piVar7) {\n    return pcVar5;\n  }\n  pcVar32 = *(code **)(puVar31 + 0x1098ac);\n  iVar6 = local_ec;\n  (*pcVar32)();\n  local_19c = *(uint *)(iVar6 + 0x84);\n  iVar10 = *(int *)(pcVar32 + 0x1092d0);\n  pcVar24 = *(code **)(iVar6 + 0x80);\n  iVar25 = *(int *)(pcVar32 + 0x1092a4);\n  pcVar8 = pcVar24 + (local_19c - 6);\n  pcVar30 = pcVar20 + (int)local_150;\n  pcVar22 = pcVar20;\nLAB_00053480:\n  if (pcVar30 <= pcVar22) {\n    return (char *)0x0;\n  }\n  do {\n    cVar16 = *pcVar22;\n    uVar26 = (uint)(byte)cVar16;\n    pcVar28 = pcVar22 + 1;\n    pcVar23 = pcVar24;\n    if ((char)cVar16 < '\0') {\n      if (0xbf < uVar26) {\n        uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n        if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)) {\n          if (uVar26 < 0x80) {\n            uVar26 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);\n          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if (iVar11 != 0) break;\n    }\n    else {\n      local_194 = (int)pcVar22 - (int)pcVar20;\n      if (*(char *)(iVar6 + uVar26) != '\0') goto LAB_000535b0;\n    }\n    pcVar22 = pcVar28;\n    if (pcVar30 <= pcVar28) goto LAB_00053644;\n  } while( true );\n  local_194 = (int)pcVar22 - (int)pcVar20;\n  do {\n    while( true ) {\n      uVar26 = (*(code *)(iVar10 + 0x2d68))(uVar26,*(undefined4 *)(iVar6 + 0x88));\n      pcVar29 = pcVar28;\n      if (uVar26 != 0) {\n        if (uVar26 < 0x80) {\n          *pcVar23 = SUB41(uVar26,0);\n          pcVar23 = pcVar23 + 1;\n        }\n        else {\n          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);\n          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);\n          if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }\n        }\n      }\n      while( true ) {\n        pcVar22 = pcVar29;\n        if (pcVar30 <= pcVar29) goto LAB_00053608;\n        if (pcVar8 < pcVar23) {\n          uVar26 = local_19c * 2;\n          pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26);\n          if (pcVar24 == (code *)0x0) {\n            return &DAT_00000007;\n          }\n          pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));\n          (**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);\n          (**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));\n          pcVar8 = pcVar24 + (uVar26 - 6);\n          *(code **)(iVar6 + 0x80) = pcVar24;\n          *(uint *)(iVar6 + 0x84) = uVar26;\n          local_19c = uVar26;\n        }\n        cVar16 = *pcVar29;\n        uVar26 = (uint)(byte)cVar16;\n        if ((char)cVar16 < '\0') break;\n        if (*(char *)(iVar6 + uVar26) == '\0') goto LAB_00053608;\n        pcVar28 = pcVar29 + 1;\nLAB_000535b0:\n        if (uVar26 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)uVar26 + 0x20);\n        }\n        *pcVar23 = cVar16;\n        pcVar23 = pcVar23 + 1;\n        pcVar29 = pcVar28;\n      }\n      pcVar28 = pcVar29 + 1;\n      if (uVar26 < 0xc0) break;\n      uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n      if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80)) {\n        if (uVar26 < 0x80) goto LAB_00053748;\n      }\n      else {\n        do {\n          pcVar28 = pcVar28 + 1;\n          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n          if (pcVar30 == pcVar28) break;\n          uVar12 = (uint)(byte)*pcVar28;\n        } while ((uVar12 & 0xffffffc0) == 0x80);\n        if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);\n          uVar26 = 0xfffd;\n          goto joined_r0x00053724;\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if ((iVar11 == 0) &&\n         ((pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))\n         )) goto LAB_00053608;\n    }\n    iVar11 = FUN_00042fcc(iVar6,uVar26);\njoined_r0x00053724:\n    pcVar22 = pcVar28;\n  } while (iVar11 != 0);\nLAB_00053608:\n  pcVar18 = (char *)(*local_14c)(pcVar19,0,pcVar24,(int)pcVar23 - (int)pcVar24,local_194,\n                                 (int)pcVar29 - (int)pcVar20);\n  if (pcVar18 != (char *)0x0) {\n    if (pcVar18 == (char *)0x65) {\nLAB_00053644:\n      pcVar18 = (char *)0x0;\n    }\n    return pcVar18;\n  }\n  goto LAB_00053480;\n}" primitive_type (pointer_declarator "* FUN_00052f80(undefined4 *param_1,char *param_2,undefined4 *param_3,code *param_4)" * (function_declarator "FUN_00052f80(undefined4 *param_1,char *param_2,undefined4 *param_3,code *param_4)" identifier (parameter_list "(undefined4 *param_1,char *param_2,undefined4 *param_3,code *param_4)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "code *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) )))) (compound_statement "{\n  bool bVar1;\n  char cVar2;\n  byte bVar3;\n  undefined *puVar4;\n  char *pcVar5;\n  int iVar6;\n  int *piVar7;\n  code *pcVar8;\n  undefined1 *puVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  char *pcVar15;\n  code cVar16;\n  code cVar17;\n  char *pcVar18;\n  char *pcVar19;\n  code *pcVar20;\n  undefined4 uVar21;\n  code *pcVar22;\n  code *pcVar23;\n  code *pcVar24;\n  int iVar25;\n  uint uVar26;\n  char *pcVar27;\n  code *pcVar28;\n  code *pcVar29;\n  code *pcVar30;\n  undefined *puVar31;\n  code *pcVar32;\n  uint local_19c;\n  int local_194;\n  code *local_150;\n  code *local_14c;\n  undefined1 auStack_12c [64];\n  int local_ec;\n  char *local_e8;\n  char *local_e4;\n  undefined *local_e0;\n  undefined4 *local_dc;\n  char *local_d8;\n  code *local_d4;\n  undefined4 *local_d0;\n  code *local_ac;\n  char local_a4 [4];\n  undefined4 local_a0 [31];\n  int local_24;\n  \n  puVar4 = PTR___stack_chk_guard_0015ca30;\n  local_24 = *(int *)PTR___stack_chk_guard_0015ca30;\n  pcVar22 = param_4;\n  pcVar5 = (char *)(*(code *)PTR_strlen_0015c9c8)(param_2);\n  pcVar27 = pcVar5 + 1;\n  pcVar18 = pcVar27;\n  pcVar5 = (char *)sqlite3_malloc64(pcVar27 < pcVar5);\n  *(undefined4 *)param_4 = 0;\n  *param_3 = 0;\n  puVar31 = PTR_sqlite3_free_0015c5ec;\n  if (pcVar5 == (char *)0x0) {\n    *param_1 = 7;\n    (*(code *)puVar31)(0);\n    pcVar19 = (char *)0x0;\n    goto LAB_000530c4;\n  }\n  pcVar18 = param_2;\n  (*(code *)PTR_memcpy_0015ca34)(pcVar5,param_2,pcVar27);\n  cVar2 = *pcVar5;\n  if ((((cVar2 == '\"') || (cVar2 == '\'')) || (cVar2 == '[')) || (cVar2 == '`')) {\n    iVar6 = (*(code *)(PTR_LAB_0015c66c + 0x4688))(pcVar5);\n    pcVar19 = param_2 + iVar6;\n    *(undefined4 *)param_4 = 1;\n    if (pcVar19 == (char *)0x0) goto LAB_0005311c;\n  }\n  else {\n    pcVar19 = param_2;\n    while( true ) {\n      cVar2 = *pcVar19;\n      puVar13 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xf68);\n      pcVar15 = local_a4;\n      do {\n        puVar14 = puVar13 + 4;\n        *(undefined4 *)pcVar15 = *puVar13;\n        pcVar22 = (code *)puVar13[1];\n        uVar21 = puVar13[2];\n        pcVar18 = (char *)puVar13[3];\n        *(code **)(pcVar15 + 4) = pcVar22;\n        *(undefined4 *)(pcVar15 + 8) = uVar21;\n        *(char **)(pcVar15 + 0xc) = pcVar18;\n        puVar13 = puVar14;\n        pcVar15 = pcVar15 + 0x10;\n      } while (puVar14 != (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8));\n      if ((-1 < cVar2) && (local_a4[cVar2] == '\0')) break;\n      pcVar19 = pcVar19 + 1;\n    }\n    bVar1 = param_2 == pcVar19;\n    param_2 = pcVar19 + -(int)param_2;\n    if (bVar1) {\nLAB_0005311c:\n      (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n      pcVar19 = (char *)0x0;\n      goto LAB_000530c4;\n    }\n    param_2 = pcVar5 + (int)param_2;\n    *param_2 = '\0';\n  }\n  *param_3 = pcVar5;\nLAB_000530c4:\n  if (local_24 == *(int *)puVar4) {\n    return pcVar19;\n  }\n  iVar6 = local_24;\n  puVar31 = PTR___stack_chk_fail_0015ca14;\n  (*(code *)PTR___stack_chk_fail_0015ca14)();\n  piVar7 = *(int **)(puVar31 + 0x1098c8);\n  local_e0 = puVar4;\n  local_ec = *piVar7;\n  iVar25 = 0x40;\n  pcVar19 = pcVar18;\n  pcVar20 = pcVar22;\n  puVar9 = auStack_12c;\n  pcVar24 = (code *)0x0;\n  local_e8 = pcVar5;\n  local_e4 = param_2;\n  local_dc = param_3;\n  local_d8 = pcVar27;\n  local_d4 = param_4;\n  local_d0 = param_1;\nLAB_000531e8:\n  do {\n    pcVar30 = pcVar24;\n    pcVar24 = pcVar30 + 1;\n    pcVar8 = pcVar24;\n    if ((-1 < (char)pcVar22[(int)pcVar30]) &&\n       (*(char *)(iVar6 + (char)pcVar22[(int)pcVar30]) == '\0')) {\n      if ((int)pcVar24 < 0x1645b0) goto LAB_000531e8;\n      pcVar8 = pcVar30 + 2;\n      pcVar30 = pcVar24;\n      if (pcVar24 == (code *)&_gp_1) {\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        goto LAB_00053398;\n      }\n    }\n    if ((int)pcVar8 < 0x1645b0) {\n      do {\n        if ((-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')\n           ) goto LAB_00053254;\n        pcVar8 = pcVar8 + 1;\n      } while (pcVar8 != (code *)&_gp_1);\n      pcVar24 = (code *)(&_gp_1 + -(int)pcVar30);\nLAB_00053254:\n      if (iVar25 < (int)pcVar24) {\n        pcVar19 = (char *)((int)pcVar24 << 1);\n        uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;\nLAB_00053270:\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        pcVar20 = pcVar24;\n        puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);\n        if (puVar9 == (undefined1 *)0x0) {\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }\n        iVar25 = (int)pcVar24 << 1;\n      }\n      pcVar20 = pcVar24;\n      if (0 < (int)pcVar24) goto LAB_000532c0;\n    }\n    else {\n      pcVar19 = &SUB_00000002;\n      if (iVar25 < 1) {\n        uVar26 = 0;\n        pcVar24 = (code *)0x1;\n        goto LAB_00053270;\n      }\n      pcVar24 = (code *)0x1;\nLAB_000532c0:\n      iVar10 = 0;\n      do {\n        cVar16 = pcVar22[(int)(pcVar30 + iVar10)];\n        if ((byte)cVar16 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }\n        pcVar20 = (code *)(puVar9 + iVar10);\n        iVar10 = iVar10 + 1;\n        *pcVar20 = cVar16;\n        pcVar20 = pcVar24;\n      } while (iVar10 < (int)pcVar24);\n    }\n    pcVar19 = (char *)0x0;\n    pcVar5 = (char *)(*local_ac)(pcVar18,0,puVar9);\n    local_150 = pcVar30;\n    local_14c = pcVar8;\n    if ((0x1645af < (int)(pcVar8 + 1)) || (pcVar24 = pcVar8 + 1, pcVar5 != (char *)0x0)) break;\n  } while( true );\n  if (puVar9 == auStack_12c) {\n    if (pcVar5 == (char *)0x65) {\nLAB_00053398:\n      pcVar5 = (char *)0x0;\n    }\n  }\n  else {\nLAB_000533c0:\n    (**(code **)(puVar31 + 0x109484))(puVar9);\n    if (pcVar5 == (char *)0x65) {\n      pcVar5 = (char *)0x0;\n    }\n  }\n  if (local_ec == *piVar7) {\n    return pcVar5;\n  }\n  pcVar32 = *(code **)(puVar31 + 0x1098ac);\n  iVar6 = local_ec;\n  (*pcVar32)();\n  local_19c = *(uint *)(iVar6 + 0x84);\n  iVar10 = *(int *)(pcVar32 + 0x1092d0);\n  pcVar24 = *(code **)(iVar6 + 0x80);\n  iVar25 = *(int *)(pcVar32 + 0x1092a4);\n  pcVar8 = pcVar24 + (local_19c - 6);\n  pcVar30 = pcVar20 + (int)local_150;\n  pcVar22 = pcVar20;\nLAB_00053480:\n  if (pcVar30 <= pcVar22) {\n    return (char *)0x0;\n  }\n  do {\n    cVar16 = *pcVar22;\n    uVar26 = (uint)(byte)cVar16;\n    pcVar28 = pcVar22 + 1;\n    pcVar23 = pcVar24;\n    if ((char)cVar16 < '\0') {\n      if (0xbf < uVar26) {\n        uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n        if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)) {\n          if (uVar26 < 0x80) {\n            uVar26 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);\n          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if (iVar11 != 0) break;\n    }\n    else {\n      local_194 = (int)pcVar22 - (int)pcVar20;\n      if (*(char *)(iVar6 + uVar26) != '\0') goto LAB_000535b0;\n    }\n    pcVar22 = pcVar28;\n    if (pcVar30 <= pcVar28) goto LAB_00053644;\n  } while( true );\n  local_194 = (int)pcVar22 - (int)pcVar20;\n  do {\n    while( true ) {\n      uVar26 = (*(code *)(iVar10 + 0x2d68))(uVar26,*(undefined4 *)(iVar6 + 0x88));\n      pcVar29 = pcVar28;\n      if (uVar26 != 0) {\n        if (uVar26 < 0x80) {\n          *pcVar23 = SUB41(uVar26,0);\n          pcVar23 = pcVar23 + 1;\n        }\n        else {\n          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);\n          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);\n          if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }\n        }\n      }\n      while( true ) {\n        pcVar22 = pcVar29;\n        if (pcVar30 <= pcVar29) goto LAB_00053608;\n        if (pcVar8 < pcVar23) {\n          uVar26 = local_19c * 2;\n          pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26);\n          if (pcVar24 == (code *)0x0) {\n            return &DAT_00000007;\n          }\n          pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));\n          (**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);\n          (**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));\n          pcVar8 = pcVar24 + (uVar26 - 6);\n          *(code **)(iVar6 + 0x80) = pcVar24;\n          *(uint *)(iVar6 + 0x84) = uVar26;\n          local_19c = uVar26;\n        }\n        cVar16 = *pcVar29;\n        uVar26 = (uint)(byte)cVar16;\n        if ((char)cVar16 < '\0') break;\n        if (*(char *)(iVar6 + uVar26) == '\0') goto LAB_00053608;\n        pcVar28 = pcVar29 + 1;\nLAB_000535b0:\n        if (uVar26 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)uVar26 + 0x20);\n        }\n        *pcVar23 = cVar16;\n        pcVar23 = pcVar23 + 1;\n        pcVar29 = pcVar28;\n      }\n      pcVar28 = pcVar29 + 1;\n      if (uVar26 < 0xc0) break;\n      uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n      if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80)) {\n        if (uVar26 < 0x80) goto LAB_00053748;\n      }\n      else {\n        do {\n          pcVar28 = pcVar28 + 1;\n          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n          if (pcVar30 == pcVar28) break;\n          uVar12 = (uint)(byte)*pcVar28;\n        } while ((uVar12 & 0xffffffc0) == 0x80);\n        if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);\n          uVar26 = 0xfffd;\n          goto joined_r0x00053724;\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if ((iVar11 == 0) &&\n         ((pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))\n         )) goto LAB_00053608;\n    }\n    iVar11 = FUN_00042fcc(iVar6,uVar26);\njoined_r0x00053724:\n    pcVar22 = pcVar28;\n  } while (iVar11 != 0);\nLAB_00053608:\n  pcVar18 = (char *)(*local_14c)(pcVar19,0,pcVar24,(int)pcVar23 - (int)pcVar24,local_194,\n                                 (int)pcVar29 - (int)pcVar20);\n  if (pcVar18 != (char *)0x0) {\n    if (pcVar18 == (char *)0x65) {\nLAB_00053644:\n      pcVar18 = (char *)0x0;\n    }\n    return pcVar18;\n  }\n  goto LAB_00053480;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "undefined1 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "code cVar16;" type_identifier identifier ;) (declaration "code cVar17;" type_identifier identifier ;) (declaration "char *pcVar18;" primitive_type (pointer_declarator "*pcVar18" * identifier) ;) (declaration "char *pcVar19;" primitive_type (pointer_declarator "*pcVar19" * identifier) ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "undefined4 uVar21;" type_identifier identifier ;) (declaration "code *pcVar22;" type_identifier (pointer_declarator "*pcVar22" * identifier) ;) (declaration "code *pcVar23;" type_identifier (pointer_declarator "*pcVar23" * identifier) ;) (declaration "code *pcVar24;" type_identifier (pointer_declarator "*pcVar24" * identifier) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "char *pcVar27;" primitive_type (pointer_declarator "*pcVar27" * identifier) ;) (declaration "code *pcVar28;" type_identifier (pointer_declarator "*pcVar28" * identifier) ;) (declaration "code *pcVar29;" type_identifier (pointer_declarator "*pcVar29" * identifier) ;) (declaration "code *pcVar30;" type_identifier (pointer_declarator "*pcVar30" * identifier) ;) (declaration "undefined *puVar31;" type_identifier (pointer_declarator "*puVar31" * identifier) ;) (declaration "code *pcVar32;" type_identifier (pointer_declarator "*pcVar32" * identifier) ;) (declaration "uint local_19c;" type_identifier identifier ;) (declaration "int local_194;" primitive_type identifier ;) (declaration "code *local_150;" type_identifier (pointer_declarator "*local_150" * identifier) ;) (declaration "code *local_14c;" type_identifier (pointer_declarator "*local_14c" * identifier) ;) (declaration "undefined1 auStack_12c [64];" type_identifier (array_declarator "auStack_12c [64]" identifier [ number_literal ]) ;) (declaration "int local_ec;" primitive_type identifier ;) (declaration "char *local_e8;" primitive_type (pointer_declarator "*local_e8" * identifier) ;) (declaration "char *local_e4;" primitive_type (pointer_declarator "*local_e4" * identifier) ;) (declaration "undefined *local_e0;" type_identifier (pointer_declarator "*local_e0" * identifier) ;) (declaration "undefined4 *local_dc;" type_identifier (pointer_declarator "*local_dc" * identifier) ;) (declaration "char *local_d8;" primitive_type (pointer_declarator "*local_d8" * identifier) ;) (declaration "code *local_d4;" type_identifier (pointer_declarator "*local_d4" * identifier) ;) (declaration "undefined4 *local_d0;" type_identifier (pointer_declarator "*local_d0" * identifier) ;) (declaration "code *local_ac;" type_identifier (pointer_declarator "*local_ac" * identifier) ;) (declaration "char local_a4 [4];" primitive_type (array_declarator "local_a4 [4]" identifier [ number_literal ]) ;) (declaration "undefined4 local_a0 [31];" type_identifier (array_declarator "local_a0 [31]" identifier [ number_literal ]) ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "puVar4 = PTR___stack_chk_guard_0015ca30;" (assignment_expression "puVar4 = PTR___stack_chk_guard_0015ca30" identifier = identifier) ;) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_0015ca30;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_0015ca30" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0015ca30" * (cast_expression "(int *)PTR___stack_chk_guard_0015ca30" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar22 = param_4;" (assignment_expression "pcVar22 = param_4" identifier = identifier) ;) (expression_statement "pcVar5 = (char *)(*(code *)PTR_strlen_0015c9c8)(param_2);" (assignment_expression "pcVar5 = (char *)(*(code *)PTR_strlen_0015c9c8)(param_2)" identifier = (cast_expression "(char *)(*(code *)PTR_strlen_0015c9c8)(param_2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strlen_0015c9c8)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_0015c9c8)" ( (pointer_expression "*(code *)PTR_strlen_0015c9c8" * (cast_expression "(code *)PTR_strlen_0015c9c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier ))))) ;) (expression_statement "pcVar27 = pcVar5 + 1;" (assignment_expression "pcVar27 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (expression_statement "pcVar18 = pcVar27;" (assignment_expression "pcVar18 = pcVar27" identifier = identifier) ;) (expression_statement "pcVar5 = (char *)sqlite3_malloc64(pcVar27 < pcVar5);" (assignment_expression "pcVar5 = (char *)sqlite3_malloc64(pcVar27 < pcVar5)" identifier = (cast_expression "(char *)sqlite3_malloc64(pcVar27 < pcVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3_malloc64(pcVar27 < pcVar5)" identifier (argument_list "(pcVar27 < pcVar5)" ( (binary_expression "pcVar27 < pcVar5" identifier < identifier) ))))) ;) (expression_statement "*(undefined4 *)param_4 = 0;" (assignment_expression "*(undefined4 *)param_4 = 0" (pointer_expression "*(undefined4 *)param_4" * (cast_expression "(undefined4 *)param_4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" * identifier) = number_literal) ;) (expression_statement "puVar31 = PTR_sqlite3_free_0015c5ec;" (assignment_expression "puVar31 = PTR_sqlite3_free_0015c5ec" identifier = identifier) ;) (if_statement "if (pcVar5 == (char *)0x0) {\n    *param_1 = 7;\n    (*(code *)puVar31)(0);\n    pcVar19 = (char *)0x0;\n    goto LAB_000530c4;\n  }" if (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *param_1 = 7;\n    (*(code *)puVar31)(0);\n    pcVar19 = (char *)0x0;\n    goto LAB_000530c4;\n  }" { (expression_statement "*param_1 = 7;" (assignment_expression "*param_1 = 7" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "(*(code *)puVar31)(0);" (call_expression "(*(code *)puVar31)(0)" (parenthesized_expression "(*(code *)puVar31)" ( (pointer_expression "*(code *)puVar31" * (cast_expression "(code *)puVar31" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0)" ( number_literal ))) ;) (expression_statement "pcVar19 = (char *)0x0;" (assignment_expression "pcVar19 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000530c4;" goto statement_identifier ;) })) (expression_statement "pcVar18 = param_2;" (assignment_expression "pcVar18 = param_2" identifier = identifier) ;) (expression_statement "(*(code *)PTR_memcpy_0015ca34)(pcVar5,param_2,pcVar27);" (call_expression "(*(code *)PTR_memcpy_0015ca34)(pcVar5,param_2,pcVar27)" (parenthesized_expression "(*(code *)PTR_memcpy_0015ca34)" ( (pointer_expression "*(code *)PTR_memcpy_0015ca34" * (cast_expression "(code *)PTR_memcpy_0015ca34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar5,param_2,pcVar27)" ( identifier , identifier , identifier ))) ;) (expression_statement "cVar2 = *pcVar5;" (assignment_expression "cVar2 = *pcVar5" identifier = (pointer_expression "*pcVar5" * identifier)) ;) (if_statement "if ((((cVar2 == '\"') || (cVar2 == '\'')) || (cVar2 == '[')) || (cVar2 == '`')) {\n    iVar6 = (*(code *)(PTR_LAB_0015c66c + 0x4688))(pcVar5);\n    pcVar19 = param_2 + iVar6;\n    *(undefined4 *)param_4 = 1;\n    if (pcVar19 == (char *)0x0) goto LAB_0005311c;\n  }\n  else {\n    pcVar19 = param_2;\n    while( true ) {\n      cVar2 = *pcVar19;\n      puVar13 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xf68);\n      pcVar15 = local_a4;\n      do {\n        puVar14 = puVar13 + 4;\n        *(undefined4 *)pcVar15 = *puVar13;\n        pcVar22 = (code *)puVar13[1];\n        uVar21 = puVar13[2];\n        pcVar18 = (char *)puVar13[3];\n        *(code **)(pcVar15 + 4) = pcVar22;\n        *(undefined4 *)(pcVar15 + 8) = uVar21;\n        *(char **)(pcVar15 + 0xc) = pcVar18;\n        puVar13 = puVar14;\n        pcVar15 = pcVar15 + 0x10;\n      } while (puVar14 != (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8));\n      if ((-1 < cVar2) && (local_a4[cVar2] == '\0')) break;\n      pcVar19 = pcVar19 + 1;\n    }\n    bVar1 = param_2 == pcVar19;\n    param_2 = pcVar19 + -(int)param_2;\n    if (bVar1) {\nLAB_0005311c:\n      (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n      pcVar19 = (char *)0x0;\n      goto LAB_000530c4;\n    }\n    param_2 = pcVar5 + (int)param_2;\n    *param_2 = '\0';\n  }" if (parenthesized_expression "((((cVar2 == '\"') || (cVar2 == '\'')) || (cVar2 == '[')) || (cVar2 == '`'))" ( (binary_expression "(((cVar2 == '\"') || (cVar2 == '\'')) || (cVar2 == '[')) || (cVar2 == '`')" (parenthesized_expression "(((cVar2 == '\"') || (cVar2 == '\'')) || (cVar2 == '['))" ( (binary_expression "((cVar2 == '\"') || (cVar2 == '\'')) || (cVar2 == '[')" (parenthesized_expression "((cVar2 == '\"') || (cVar2 == '\''))" ( (binary_expression "(cVar2 == '\"') || (cVar2 == '\'')" (parenthesized_expression "(cVar2 == '\"')" ( (binary_expression "cVar2 == '\"'" identifier == (char_literal "'\"'" ' escape_sequence ')) )) || (parenthesized_expression "(cVar2 == '\'')" ( (binary_expression "cVar2 == '\''" identifier == (char_literal "'\''" ' escape_sequence ')) ))) )) || (parenthesized_expression "(cVar2 == '[')" ( (binary_expression "cVar2 == '['" identifier == (char_literal "'['" ' character ')) ))) )) || (parenthesized_expression "(cVar2 == '`')" ( (binary_expression "cVar2 == '`'" identifier == (char_literal "'`'" ' character ')) ))) )) (compound_statement "{\n    iVar6 = (*(code *)(PTR_LAB_0015c66c + 0x4688))(pcVar5);\n    pcVar19 = param_2 + iVar6;\n    *(undefined4 *)param_4 = 1;\n    if (pcVar19 == (char *)0x0) goto LAB_0005311c;\n  }" { (expression_statement "iVar6 = (*(code *)(PTR_LAB_0015c66c + 0x4688))(pcVar5);" (assignment_expression "iVar6 = (*(code *)(PTR_LAB_0015c66c + 0x4688))(pcVar5)" identifier = (call_expression "(*(code *)(PTR_LAB_0015c66c + 0x4688))(pcVar5)" (parenthesized_expression "(*(code *)(PTR_LAB_0015c66c + 0x4688))" ( (pointer_expression "*(code *)(PTR_LAB_0015c66c + 0x4688)" * (cast_expression "(code *)(PTR_LAB_0015c66c + 0x4688)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015c66c + 0x4688)" ( (binary_expression "PTR_LAB_0015c66c + 0x4688" identifier + number_literal) )))) )) (argument_list "(pcVar5)" ( identifier )))) ;) (expression_statement "pcVar19 = param_2 + iVar6;" (assignment_expression "pcVar19 = param_2 + iVar6" identifier = (binary_expression "param_2 + iVar6" identifier + identifier)) ;) (expression_statement "*(undefined4 *)param_4 = 1;" (assignment_expression "*(undefined4 *)param_4 = 1" (pointer_expression "*(undefined4 *)param_4" * (cast_expression "(undefined4 *)param_4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (if_statement "if (pcVar19 == (char *)0x0) goto LAB_0005311c;" if (parenthesized_expression "(pcVar19 == (char *)0x0)" ( (binary_expression "pcVar19 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0005311c;" goto statement_identifier ;)) }) (else_clause "else {\n    pcVar19 = param_2;\n    while( true ) {\n      cVar2 = *pcVar19;\n      puVar13 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xf68);\n      pcVar15 = local_a4;\n      do {\n        puVar14 = puVar13 + 4;\n        *(undefined4 *)pcVar15 = *puVar13;\n        pcVar22 = (code *)puVar13[1];\n        uVar21 = puVar13[2];\n        pcVar18 = (char *)puVar13[3];\n        *(code **)(pcVar15 + 4) = pcVar22;\n        *(undefined4 *)(pcVar15 + 8) = uVar21;\n        *(char **)(pcVar15 + 0xc) = pcVar18;\n        puVar13 = puVar14;\n        pcVar15 = pcVar15 + 0x10;\n      } while (puVar14 != (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8));\n      if ((-1 < cVar2) && (local_a4[cVar2] == '\0')) break;\n      pcVar19 = pcVar19 + 1;\n    }\n    bVar1 = param_2 == pcVar19;\n    param_2 = pcVar19 + -(int)param_2;\n    if (bVar1) {\nLAB_0005311c:\n      (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n      pcVar19 = (char *)0x0;\n      goto LAB_000530c4;\n    }\n    param_2 = pcVar5 + (int)param_2;\n    *param_2 = '\0';\n  }" else (compound_statement "{\n    pcVar19 = param_2;\n    while( true ) {\n      cVar2 = *pcVar19;\n      puVar13 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xf68);\n      pcVar15 = local_a4;\n      do {\n        puVar14 = puVar13 + 4;\n        *(undefined4 *)pcVar15 = *puVar13;\n        pcVar22 = (code *)puVar13[1];\n        uVar21 = puVar13[2];\n        pcVar18 = (char *)puVar13[3];\n        *(code **)(pcVar15 + 4) = pcVar22;\n        *(undefined4 *)(pcVar15 + 8) = uVar21;\n        *(char **)(pcVar15 + 0xc) = pcVar18;\n        puVar13 = puVar14;\n        pcVar15 = pcVar15 + 0x10;\n      } while (puVar14 != (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8));\n      if ((-1 < cVar2) && (local_a4[cVar2] == '\0')) break;\n      pcVar19 = pcVar19 + 1;\n    }\n    bVar1 = param_2 == pcVar19;\n    param_2 = pcVar19 + -(int)param_2;\n    if (bVar1) {\nLAB_0005311c:\n      (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n      pcVar19 = (char *)0x0;\n      goto LAB_000530c4;\n    }\n    param_2 = pcVar5 + (int)param_2;\n    *param_2 = '\0';\n  }" { (expression_statement "pcVar19 = param_2;" (assignment_expression "pcVar19 = param_2" identifier = identifier) ;) (while_statement "while( true ) {\n      cVar2 = *pcVar19;\n      puVar13 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xf68);\n      pcVar15 = local_a4;\n      do {\n        puVar14 = puVar13 + 4;\n        *(undefined4 *)pcVar15 = *puVar13;\n        pcVar22 = (code *)puVar13[1];\n        uVar21 = puVar13[2];\n        pcVar18 = (char *)puVar13[3];\n        *(code **)(pcVar15 + 4) = pcVar22;\n        *(undefined4 *)(pcVar15 + 8) = uVar21;\n        *(char **)(pcVar15 + 0xc) = pcVar18;\n        puVar13 = puVar14;\n        pcVar15 = pcVar15 + 0x10;\n      } while (puVar14 != (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8));\n      if ((-1 < cVar2) && (local_a4[cVar2] == '\0')) break;\n      pcVar19 = pcVar19 + 1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      cVar2 = *pcVar19;\n      puVar13 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xf68);\n      pcVar15 = local_a4;\n      do {\n        puVar14 = puVar13 + 4;\n        *(undefined4 *)pcVar15 = *puVar13;\n        pcVar22 = (code *)puVar13[1];\n        uVar21 = puVar13[2];\n        pcVar18 = (char *)puVar13[3];\n        *(code **)(pcVar15 + 4) = pcVar22;\n        *(undefined4 *)(pcVar15 + 8) = uVar21;\n        *(char **)(pcVar15 + 0xc) = pcVar18;\n        puVar13 = puVar14;\n        pcVar15 = pcVar15 + 0x10;\n      } while (puVar14 != (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8));\n      if ((-1 < cVar2) && (local_a4[cVar2] == '\0')) break;\n      pcVar19 = pcVar19 + 1;\n    }" { (expression_statement "cVar2 = *pcVar19;" (assignment_expression "cVar2 = *pcVar19" identifier = (pointer_expression "*pcVar19" * identifier)) ;) (expression_statement "puVar13 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xf68);" (assignment_expression "puVar13 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xf68)" identifier = (cast_expression "(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xf68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_LE_FTS4_0015c5f4 + 0xf68)" ( (binary_expression "PTR_s_LE_FTS4_0015c5f4 + 0xf68" identifier + number_literal) )))) ;) (expression_statement "pcVar15 = local_a4;" (assignment_expression "pcVar15 = local_a4" identifier = identifier) ;) (do_statement "do {\n        puVar14 = puVar13 + 4;\n        *(undefined4 *)pcVar15 = *puVar13;\n        pcVar22 = (code *)puVar13[1];\n        uVar21 = puVar13[2];\n        pcVar18 = (char *)puVar13[3];\n        *(code **)(pcVar15 + 4) = pcVar22;\n        *(undefined4 *)(pcVar15 + 8) = uVar21;\n        *(char **)(pcVar15 + 0xc) = pcVar18;\n        puVar13 = puVar14;\n        pcVar15 = pcVar15 + 0x10;\n      } while (puVar14 != (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8));" do (compound_statement "{\n        puVar14 = puVar13 + 4;\n        *(undefined4 *)pcVar15 = *puVar13;\n        pcVar22 = (code *)puVar13[1];\n        uVar21 = puVar13[2];\n        pcVar18 = (char *)puVar13[3];\n        *(code **)(pcVar15 + 4) = pcVar22;\n        *(undefined4 *)(pcVar15 + 8) = uVar21;\n        *(char **)(pcVar15 + 0xc) = pcVar18;\n        puVar13 = puVar14;\n        pcVar15 = pcVar15 + 0x10;\n      }" { (expression_statement "puVar14 = puVar13 + 4;" (assignment_expression "puVar14 = puVar13 + 4" identifier = (binary_expression "puVar13 + 4" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)pcVar15 = *puVar13;" (assignment_expression "*(undefined4 *)pcVar15 = *puVar13" (pointer_expression "*(undefined4 *)pcVar15" * (cast_expression "(undefined4 *)pcVar15" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "pcVar22 = (code *)puVar13[1];" (assignment_expression "pcVar22 = (code *)puVar13[1]" identifier = (cast_expression "(code *)puVar13[1]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[1]" identifier [ number_literal ]))) ;) (expression_statement "uVar21 = puVar13[2];" (assignment_expression "uVar21 = puVar13[2]" identifier = (subscript_expression "puVar13[2]" identifier [ number_literal ])) ;) (expression_statement "pcVar18 = (char *)puVar13[3];" (assignment_expression "pcVar18 = (char *)puVar13[3]" identifier = (cast_expression "(char *)puVar13[3]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[3]" identifier [ number_literal ]))) ;) (expression_statement "*(code **)(pcVar15 + 4) = pcVar22;" (assignment_expression "*(code **)(pcVar15 + 4) = pcVar22" (pointer_expression "*(code **)(pcVar15 + 4)" * (cast_expression "(code **)(pcVar15 + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 4)" ( (binary_expression "pcVar15 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pcVar15 + 8) = uVar21;" (assignment_expression "*(undefined4 *)(pcVar15 + 8) = uVar21" (pointer_expression "*(undefined4 *)(pcVar15 + 8)" * (cast_expression "(undefined4 *)(pcVar15 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 8)" ( (binary_expression "pcVar15 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(pcVar15 + 0xc) = pcVar18;" (assignment_expression "*(char **)(pcVar15 + 0xc) = pcVar18" (pointer_expression "*(char **)(pcVar15 + 0xc)" * (cast_expression "(char **)(pcVar15 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0xc)" ( (binary_expression "pcVar15 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar13 = puVar14;" (assignment_expression "puVar13 = puVar14" identifier = identifier) ;) (expression_statement "pcVar15 = pcVar15 + 0x10;" (assignment_expression "pcVar15 = pcVar15 + 0x10" identifier = (binary_expression "pcVar15 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar14 != (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8))" ( (binary_expression "puVar14 != (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8)" identifier != (cast_expression "(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_LE_FTS4_0015c5f4 + 0xfe8)" ( (binary_expression "PTR_s_LE_FTS4_0015c5f4 + 0xfe8" identifier + number_literal) )))) )) ;) (if_statement "if ((-1 < cVar2) && (local_a4[cVar2] == '\0')) break;" if (parenthesized_expression "((-1 < cVar2) && (local_a4[cVar2] == '\0'))" ( (binary_expression "(-1 < cVar2) && (local_a4[cVar2] == '\0')" (parenthesized_expression "(-1 < cVar2)" ( (binary_expression "-1 < cVar2" number_literal < identifier) )) && (parenthesized_expression "(local_a4[cVar2] == '\0')" ( (binary_expression "local_a4[cVar2] == '\0'" (subscript_expression "local_a4[cVar2]" identifier [ identifier ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (break_statement "break;" break ;)) (expression_statement "pcVar19 = pcVar19 + 1;" (assignment_expression "pcVar19 = pcVar19 + 1" identifier = (binary_expression "pcVar19 + 1" identifier + number_literal)) ;) })) (expression_statement "bVar1 = param_2 == pcVar19;" (assignment_expression "bVar1 = param_2 == pcVar19" identifier = (binary_expression "param_2 == pcVar19" identifier == identifier)) ;) (expression_statement "param_2 = pcVar19 + -(int)param_2;" (assignment_expression "param_2 = pcVar19 + -(int)param_2" identifier = (binary_expression "pcVar19 + -(int)param_2" identifier + (unary_expression "-(int)param_2" - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (if_statement "if (bVar1) {\nLAB_0005311c:\n      (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n      pcVar19 = (char *)0x0;\n      goto LAB_000530c4;\n    }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\nLAB_0005311c:\n      (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n      pcVar19 = (char *)0x0;\n      goto LAB_000530c4;\n    }" { (labeled_statement "LAB_0005311c:\n      (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);" statement_identifier : (expression_statement "(*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);" (call_expression "(*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5)" (parenthesized_expression "(*(code *)PTR_sqlite3_free_0015c5ec)" ( (pointer_expression "*(code *)PTR_sqlite3_free_0015c5ec" * (cast_expression "(code *)PTR_sqlite3_free_0015c5ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar5)" ( identifier ))) ;)) (expression_statement "pcVar19 = (char *)0x0;" (assignment_expression "pcVar19 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000530c4;" goto statement_identifier ;) })) (expression_statement "param_2 = pcVar5 + (int)param_2;" (assignment_expression "param_2 = pcVar5 + (int)param_2" identifier = (binary_expression "pcVar5 + (int)param_2" identifier + (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*param_2 = '\0';" (assignment_expression "*param_2 = '\0'" (pointer_expression "*param_2" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) }))) (expression_statement "*param_3 = pcVar5;" (assignment_expression "*param_3 = pcVar5" (pointer_expression "*param_3" * identifier) = identifier) ;) (labeled_statement "LAB_000530c4:\n  if (local_24 == *(int *)puVar4) {\n    return pcVar19;\n  }" statement_identifier : (if_statement "if (local_24 == *(int *)puVar4) {\n    return pcVar19;\n  }" if (parenthesized_expression "(local_24 == *(int *)puVar4)" ( (binary_expression "local_24 == *(int *)puVar4" identifier == (pointer_expression "*(int *)puVar4" * (cast_expression "(int *)puVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return pcVar19;\n  }" { (return_statement "return pcVar19;" return identifier ;) }))) (expression_statement "iVar6 = local_24;" (assignment_expression "iVar6 = local_24" identifier = identifier) ;) (expression_statement "puVar31 = PTR___stack_chk_fail_0015ca14;" (assignment_expression "puVar31 = PTR___stack_chk_fail_0015ca14" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0015ca14)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015ca14)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015ca14)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0015ca14" * (cast_expression "(code *)PTR___stack_chk_fail_0015ca14" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar7 = *(int **)(puVar31 + 0x1098c8);" (assignment_expression "piVar7 = *(int **)(puVar31 + 0x1098c8)" identifier = (pointer_expression "*(int **)(puVar31 + 0x1098c8)" * (cast_expression "(int **)(puVar31 + 0x1098c8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar31 + 0x1098c8)" ( (binary_expression "puVar31 + 0x1098c8" identifier + number_literal) ))))) ;) (expression_statement "local_e0 = puVar4;" (assignment_expression "local_e0 = puVar4" identifier = identifier) ;) (expression_statement "local_ec = *piVar7;" (assignment_expression "local_ec = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "iVar25 = 0x40;" (assignment_expression "iVar25 = 0x40" identifier = number_literal) ;) (expression_statement "pcVar19 = pcVar18;" (assignment_expression "pcVar19 = pcVar18" identifier = identifier) ;) (expression_statement "pcVar20 = pcVar22;" (assignment_expression "pcVar20 = pcVar22" identifier = identifier) ;) (expression_statement "puVar9 = auStack_12c;" (assignment_expression "puVar9 = auStack_12c" identifier = identifier) ;) (expression_statement "pcVar24 = (code *)0x0;" (assignment_expression "pcVar24 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_e8 = pcVar5;" (assignment_expression "local_e8 = pcVar5" identifier = identifier) ;) (expression_statement "local_e4 = param_2;" (assignment_expression "local_e4 = param_2" identifier = identifier) ;) (expression_statement "local_dc = param_3;" (assignment_expression "local_dc = param_3" identifier = identifier) ;) (expression_statement "local_d8 = pcVar27;" (assignment_expression "local_d8 = pcVar27" identifier = identifier) ;) (expression_statement "local_d4 = param_4;" (assignment_expression "local_d4 = param_4" identifier = identifier) ;) (expression_statement "local_d0 = param_1;" (assignment_expression "local_d0 = param_1" identifier = identifier) ;) (labeled_statement "LAB_000531e8:\n  do {\n    pcVar30 = pcVar24;\n    pcVar24 = pcVar30 + 1;\n    pcVar8 = pcVar24;\n    if ((-1 < (char)pcVar22[(int)pcVar30]) &&\n       (*(char *)(iVar6 + (char)pcVar22[(int)pcVar30]) == '\0')) {\n      if ((int)pcVar24 < 0x1645b0) goto LAB_000531e8;\n      pcVar8 = pcVar30 + 2;\n      pcVar30 = pcVar24;\n      if (pcVar24 == (code *)&_gp_1) {\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        goto LAB_00053398;\n      }\n    }\n    if ((int)pcVar8 < 0x1645b0) {\n      do {\n        if ((-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')\n           ) goto LAB_00053254;\n        pcVar8 = pcVar8 + 1;\n      } while (pcVar8 != (code *)&_gp_1);\n      pcVar24 = (code *)(&_gp_1 + -(int)pcVar30);\nLAB_00053254:\n      if (iVar25 < (int)pcVar24) {\n        pcVar19 = (char *)((int)pcVar24 << 1);\n        uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;\nLAB_00053270:\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        pcVar20 = pcVar24;\n        puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);\n        if (puVar9 == (undefined1 *)0x0) {\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }\n        iVar25 = (int)pcVar24 << 1;\n      }\n      pcVar20 = pcVar24;\n      if (0 < (int)pcVar24) goto LAB_000532c0;\n    }\n    else {\n      pcVar19 = &SUB_00000002;\n      if (iVar25 < 1) {\n        uVar26 = 0;\n        pcVar24 = (code *)0x1;\n        goto LAB_00053270;\n      }\n      pcVar24 = (code *)0x1;\nLAB_000532c0:\n      iVar10 = 0;\n      do {\n        cVar16 = pcVar22[(int)(pcVar30 + iVar10)];\n        if ((byte)cVar16 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }\n        pcVar20 = (code *)(puVar9 + iVar10);\n        iVar10 = iVar10 + 1;\n        *pcVar20 = cVar16;\n        pcVar20 = pcVar24;\n      } while (iVar10 < (int)pcVar24);\n    }\n    pcVar19 = (char *)0x0;\n    pcVar5 = (char *)(*local_ac)(pcVar18,0,puVar9);\n    local_150 = pcVar30;\n    local_14c = pcVar8;\n    if ((0x1645af < (int)(pcVar8 + 1)) || (pcVar24 = pcVar8 + 1, pcVar5 != (char *)0x0)) break;\n  } while( true );" statement_identifier : (do_statement "do {\n    pcVar30 = pcVar24;\n    pcVar24 = pcVar30 + 1;\n    pcVar8 = pcVar24;\n    if ((-1 < (char)pcVar22[(int)pcVar30]) &&\n       (*(char *)(iVar6 + (char)pcVar22[(int)pcVar30]) == '\0')) {\n      if ((int)pcVar24 < 0x1645b0) goto LAB_000531e8;\n      pcVar8 = pcVar30 + 2;\n      pcVar30 = pcVar24;\n      if (pcVar24 == (code *)&_gp_1) {\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        goto LAB_00053398;\n      }\n    }\n    if ((int)pcVar8 < 0x1645b0) {\n      do {\n        if ((-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')\n           ) goto LAB_00053254;\n        pcVar8 = pcVar8 + 1;\n      } while (pcVar8 != (code *)&_gp_1);\n      pcVar24 = (code *)(&_gp_1 + -(int)pcVar30);\nLAB_00053254:\n      if (iVar25 < (int)pcVar24) {\n        pcVar19 = (char *)((int)pcVar24 << 1);\n        uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;\nLAB_00053270:\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        pcVar20 = pcVar24;\n        puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);\n        if (puVar9 == (undefined1 *)0x0) {\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }\n        iVar25 = (int)pcVar24 << 1;\n      }\n      pcVar20 = pcVar24;\n      if (0 < (int)pcVar24) goto LAB_000532c0;\n    }\n    else {\n      pcVar19 = &SUB_00000002;\n      if (iVar25 < 1) {\n        uVar26 = 0;\n        pcVar24 = (code *)0x1;\n        goto LAB_00053270;\n      }\n      pcVar24 = (code *)0x1;\nLAB_000532c0:\n      iVar10 = 0;\n      do {\n        cVar16 = pcVar22[(int)(pcVar30 + iVar10)];\n        if ((byte)cVar16 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }\n        pcVar20 = (code *)(puVar9 + iVar10);\n        iVar10 = iVar10 + 1;\n        *pcVar20 = cVar16;\n        pcVar20 = pcVar24;\n      } while (iVar10 < (int)pcVar24);\n    }\n    pcVar19 = (char *)0x0;\n    pcVar5 = (char *)(*local_ac)(pcVar18,0,puVar9);\n    local_150 = pcVar30;\n    local_14c = pcVar8;\n    if ((0x1645af < (int)(pcVar8 + 1)) || (pcVar24 = pcVar8 + 1, pcVar5 != (char *)0x0)) break;\n  } while( true );" do (compound_statement "{\n    pcVar30 = pcVar24;\n    pcVar24 = pcVar30 + 1;\n    pcVar8 = pcVar24;\n    if ((-1 < (char)pcVar22[(int)pcVar30]) &&\n       (*(char *)(iVar6 + (char)pcVar22[(int)pcVar30]) == '\0')) {\n      if ((int)pcVar24 < 0x1645b0) goto LAB_000531e8;\n      pcVar8 = pcVar30 + 2;\n      pcVar30 = pcVar24;\n      if (pcVar24 == (code *)&_gp_1) {\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        goto LAB_00053398;\n      }\n    }\n    if ((int)pcVar8 < 0x1645b0) {\n      do {\n        if ((-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')\n           ) goto LAB_00053254;\n        pcVar8 = pcVar8 + 1;\n      } while (pcVar8 != (code *)&_gp_1);\n      pcVar24 = (code *)(&_gp_1 + -(int)pcVar30);\nLAB_00053254:\n      if (iVar25 < (int)pcVar24) {\n        pcVar19 = (char *)((int)pcVar24 << 1);\n        uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;\nLAB_00053270:\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        pcVar20 = pcVar24;\n        puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);\n        if (puVar9 == (undefined1 *)0x0) {\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }\n        iVar25 = (int)pcVar24 << 1;\n      }\n      pcVar20 = pcVar24;\n      if (0 < (int)pcVar24) goto LAB_000532c0;\n    }\n    else {\n      pcVar19 = &SUB_00000002;\n      if (iVar25 < 1) {\n        uVar26 = 0;\n        pcVar24 = (code *)0x1;\n        goto LAB_00053270;\n      }\n      pcVar24 = (code *)0x1;\nLAB_000532c0:\n      iVar10 = 0;\n      do {\n        cVar16 = pcVar22[(int)(pcVar30 + iVar10)];\n        if ((byte)cVar16 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }\n        pcVar20 = (code *)(puVar9 + iVar10);\n        iVar10 = iVar10 + 1;\n        *pcVar20 = cVar16;\n        pcVar20 = pcVar24;\n      } while (iVar10 < (int)pcVar24);\n    }\n    pcVar19 = (char *)0x0;\n    pcVar5 = (char *)(*local_ac)(pcVar18,0,puVar9);\n    local_150 = pcVar30;\n    local_14c = pcVar8;\n    if ((0x1645af < (int)(pcVar8 + 1)) || (pcVar24 = pcVar8 + 1, pcVar5 != (char *)0x0)) break;\n  }" { (expression_statement "pcVar30 = pcVar24;" (assignment_expression "pcVar30 = pcVar24" identifier = identifier) ;) (expression_statement "pcVar24 = pcVar30 + 1;" (assignment_expression "pcVar24 = pcVar30 + 1" identifier = (binary_expression "pcVar30 + 1" identifier + number_literal)) ;) (expression_statement "pcVar8 = pcVar24;" (assignment_expression "pcVar8 = pcVar24" identifier = identifier) ;) (if_statement "if ((-1 < (char)pcVar22[(int)pcVar30]) &&\n       (*(char *)(iVar6 + (char)pcVar22[(int)pcVar30]) == '\0')) {\n      if ((int)pcVar24 < 0x1645b0) goto LAB_000531e8;\n      pcVar8 = pcVar30 + 2;\n      pcVar30 = pcVar24;\n      if (pcVar24 == (code *)&_gp_1) {\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        goto LAB_00053398;\n      }\n    }" if (parenthesized_expression "((-1 < (char)pcVar22[(int)pcVar30]) &&\n       (*(char *)(iVar6 + (char)pcVar22[(int)pcVar30]) == '\0'))" ( (binary_expression "(-1 < (char)pcVar22[(int)pcVar30]) &&\n       (*(char *)(iVar6 + (char)pcVar22[(int)pcVar30]) == '\0')" (parenthesized_expression "(-1 < (char)pcVar22[(int)pcVar30])" ( (binary_expression "-1 < (char)pcVar22[(int)pcVar30]" number_literal < (cast_expression "(char)pcVar22[(int)pcVar30]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pcVar22[(int)pcVar30]" identifier [ (cast_expression "(int)pcVar30" ( (type_descriptor "int" primitive_type) ) identifier) ]))) )) && (parenthesized_expression "(*(char *)(iVar6 + (char)pcVar22[(int)pcVar30]) == '\0')" ( (binary_expression "*(char *)(iVar6 + (char)pcVar22[(int)pcVar30]) == '\0'" (pointer_expression "*(char *)(iVar6 + (char)pcVar22[(int)pcVar30])" * (cast_expression "(char *)(iVar6 + (char)pcVar22[(int)pcVar30])" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + (char)pcVar22[(int)pcVar30])" ( (binary_expression "iVar6 + (char)pcVar22[(int)pcVar30]" identifier + (cast_expression "(char)pcVar22[(int)pcVar30]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pcVar22[(int)pcVar30]" identifier [ (cast_expression "(int)pcVar30" ( (type_descriptor "int" primitive_type) ) identifier) ]))) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      if ((int)pcVar24 < 0x1645b0) goto LAB_000531e8;\n      pcVar8 = pcVar30 + 2;\n      pcVar30 = pcVar24;\n      if (pcVar24 == (code *)&_gp_1) {\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        goto LAB_00053398;\n      }\n    }" { (if_statement "if ((int)pcVar24 < 0x1645b0) goto LAB_000531e8;" if (parenthesized_expression "((int)pcVar24 < 0x1645b0)" ( (binary_expression "(int)pcVar24 < 0x1645b0" (cast_expression "(int)pcVar24" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_000531e8;" goto statement_identifier ;)) (expression_statement "pcVar8 = pcVar30 + 2;" (assignment_expression "pcVar8 = pcVar30 + 2" identifier = (binary_expression "pcVar30 + 2" identifier + number_literal)) ;) (expression_statement "pcVar30 = pcVar24;" (assignment_expression "pcVar30 = pcVar24" identifier = identifier) ;) (if_statement "if (pcVar24 == (code *)&_gp_1) {\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        goto LAB_00053398;\n      }" if (parenthesized_expression "(pcVar24 == (code *)&_gp_1)" ( (binary_expression "pcVar24 == (code *)&_gp_1" identifier == (cast_expression "(code *)&_gp_1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&_gp_1" & identifier))) )) (compound_statement "{\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        goto LAB_00053398;\n      }" { (if_statement "if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }" if (parenthesized_expression "(puVar9 != auStack_12c)" ( (binary_expression "puVar9 != auStack_12c" identifier != identifier) )) (compound_statement "{\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }" { (expression_statement "(**(code **)(puVar31 + 0x109484))(puVar9);" (call_expression "(**(code **)(puVar31 + 0x109484))(puVar9)" (parenthesized_expression "(**(code **)(puVar31 + 0x109484))" ( (pointer_expression "**(code **)(puVar31 + 0x109484)" * (pointer_expression "*(code **)(puVar31 + 0x109484)" * (cast_expression "(code **)(puVar31 + 0x109484)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar31 + 0x109484)" ( (binary_expression "puVar31 + 0x109484" identifier + number_literal) ))))) )) (argument_list "(puVar9)" ( identifier ))) ;) })) (goto_statement "goto LAB_00053398;" goto statement_identifier ;) })) })) (if_statement "if ((int)pcVar8 < 0x1645b0) {\n      do {\n        if ((-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')\n           ) goto LAB_00053254;\n        pcVar8 = pcVar8 + 1;\n      } while (pcVar8 != (code *)&_gp_1);\n      pcVar24 = (code *)(&_gp_1 + -(int)pcVar30);\nLAB_00053254:\n      if (iVar25 < (int)pcVar24) {\n        pcVar19 = (char *)((int)pcVar24 << 1);\n        uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;\nLAB_00053270:\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        pcVar20 = pcVar24;\n        puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);\n        if (puVar9 == (undefined1 *)0x0) {\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }\n        iVar25 = (int)pcVar24 << 1;\n      }\n      pcVar20 = pcVar24;\n      if (0 < (int)pcVar24) goto LAB_000532c0;\n    }\n    else {\n      pcVar19 = &SUB_00000002;\n      if (iVar25 < 1) {\n        uVar26 = 0;\n        pcVar24 = (code *)0x1;\n        goto LAB_00053270;\n      }\n      pcVar24 = (code *)0x1;\nLAB_000532c0:\n      iVar10 = 0;\n      do {\n        cVar16 = pcVar22[(int)(pcVar30 + iVar10)];\n        if ((byte)cVar16 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }\n        pcVar20 = (code *)(puVar9 + iVar10);\n        iVar10 = iVar10 + 1;\n        *pcVar20 = cVar16;\n        pcVar20 = pcVar24;\n      } while (iVar10 < (int)pcVar24);\n    }" if (parenthesized_expression "((int)pcVar8 < 0x1645b0)" ( (binary_expression "(int)pcVar8 < 0x1645b0" (cast_expression "(int)pcVar8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      do {\n        if ((-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')\n           ) goto LAB_00053254;\n        pcVar8 = pcVar8 + 1;\n      } while (pcVar8 != (code *)&_gp_1);\n      pcVar24 = (code *)(&_gp_1 + -(int)pcVar30);\nLAB_00053254:\n      if (iVar25 < (int)pcVar24) {\n        pcVar19 = (char *)((int)pcVar24 << 1);\n        uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;\nLAB_00053270:\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        pcVar20 = pcVar24;\n        puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);\n        if (puVar9 == (undefined1 *)0x0) {\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }\n        iVar25 = (int)pcVar24 << 1;\n      }\n      pcVar20 = pcVar24;\n      if (0 < (int)pcVar24) goto LAB_000532c0;\n    }" { (do_statement "do {\n        if ((-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')\n           ) goto LAB_00053254;\n        pcVar8 = pcVar8 + 1;\n      } while (pcVar8 != (code *)&_gp_1);" do (compound_statement "{\n        if ((-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')\n           ) goto LAB_00053254;\n        pcVar8 = pcVar8 + 1;\n      }" { (if_statement "if ((-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')\n           ) goto LAB_00053254;" if (parenthesized_expression "((-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')\n           )" ( (binary_expression "(-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')" (parenthesized_expression "(-1 < (char)pcVar22[(int)pcVar8])" ( (binary_expression "-1 < (char)pcVar22[(int)pcVar8]" number_literal < (cast_expression "(char)pcVar22[(int)pcVar8]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pcVar22[(int)pcVar8]" identifier [ (cast_expression "(int)pcVar8" ( (type_descriptor "int" primitive_type) ) identifier) ]))) )) && (parenthesized_expression "(pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')" ( (comma_expression "pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0'" (assignment_expression "pcVar24 = pcVar8 + -(int)pcVar30" identifier = (binary_expression "pcVar8 + -(int)pcVar30" identifier + (unary_expression "-(int)pcVar30" - (cast_expression "(int)pcVar30" ( (type_descriptor "int" primitive_type) ) identifier)))) , (binary_expression "*(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0'" (pointer_expression "*(char *)(iVar6 + (char)pcVar22[(int)pcVar8])" * (cast_expression "(char *)(iVar6 + (char)pcVar22[(int)pcVar8])" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + (char)pcVar22[(int)pcVar8])" ( (binary_expression "iVar6 + (char)pcVar22[(int)pcVar8]" identifier + (cast_expression "(char)pcVar22[(int)pcVar8]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pcVar22[(int)pcVar8]" identifier [ (cast_expression "(int)pcVar8" ( (type_descriptor "int" primitive_type) ) identifier) ]))) )))) == (char_literal "'\0'" ' escape_sequence '))) ))) )) (goto_statement "goto LAB_00053254;" goto statement_identifier ;)) (expression_statement "pcVar8 = pcVar8 + 1;" (assignment_expression "pcVar8 = pcVar8 + 1" identifier = (binary_expression "pcVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pcVar8 != (code *)&_gp_1)" ( (binary_expression "pcVar8 != (code *)&_gp_1" identifier != (cast_expression "(code *)&_gp_1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&_gp_1" & identifier))) )) ;) (expression_statement "pcVar24 = (code *)(&_gp_1 + -(int)pcVar30);" (assignment_expression "pcVar24 = (code *)(&_gp_1 + -(int)pcVar30)" identifier = (cast_expression "(code *)(&_gp_1 + -(int)pcVar30)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + -(int)pcVar30)" ( (binary_expression "&_gp_1 + -(int)pcVar30" (pointer_expression "&_gp_1" & identifier) + (unary_expression "-(int)pcVar30" - (cast_expression "(int)pcVar30" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;) (labeled_statement "LAB_00053254:\n      if (iVar25 < (int)pcVar24) {\n        pcVar19 = (char *)((int)pcVar24 << 1);\n        uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;\nLAB_00053270:\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        pcVar20 = pcVar24;\n        puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);\n        if (puVar9 == (undefined1 *)0x0) {\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }\n        iVar25 = (int)pcVar24 << 1;\n      }" statement_identifier : (if_statement "if (iVar25 < (int)pcVar24) {\n        pcVar19 = (char *)((int)pcVar24 << 1);\n        uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;\nLAB_00053270:\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        pcVar20 = pcVar24;\n        puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);\n        if (puVar9 == (undefined1 *)0x0) {\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }\n        iVar25 = (int)pcVar24 << 1;\n      }" if (parenthesized_expression "(iVar25 < (int)pcVar24)" ( (binary_expression "iVar25 < (int)pcVar24" identifier < (cast_expression "(int)pcVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        pcVar19 = (char *)((int)pcVar24 << 1);\n        uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;\nLAB_00053270:\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        pcVar20 = pcVar24;\n        puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);\n        if (puVar9 == (undefined1 *)0x0) {\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }\n        iVar25 = (int)pcVar24 << 1;\n      }" { (expression_statement "pcVar19 = (char *)((int)pcVar24 << 1);" (assignment_expression "pcVar19 = (char *)((int)pcVar24 << 1)" identifier = (cast_expression "(char *)((int)pcVar24 << 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pcVar24 << 1)" ( (binary_expression "(int)pcVar24 << 1" (cast_expression "(int)pcVar24" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;" (assignment_expression "uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1" identifier = (binary_expression "(uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1" (binary_expression "(uint)pcVar24 >> 0x1f" (cast_expression "(uint)pcVar24" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) | (binary_expression "((int)pcVar24 >> 0x1f) << 1" (parenthesized_expression "((int)pcVar24 >> 0x1f)" ( (binary_expression "(int)pcVar24 >> 0x1f" (cast_expression "(int)pcVar24" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) << number_literal))) ;) (labeled_statement "LAB_00053270:\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }" statement_identifier : (if_statement "if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }" if (parenthesized_expression "(puVar9 != auStack_12c)" ( (binary_expression "puVar9 != auStack_12c" identifier != identifier) )) (compound_statement "{\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }" { (expression_statement "(**(code **)(puVar31 + 0x109484))(puVar9);" (call_expression "(**(code **)(puVar31 + 0x109484))(puVar9)" (parenthesized_expression "(**(code **)(puVar31 + 0x109484))" ( (pointer_expression "**(code **)(puVar31 + 0x109484)" * (pointer_expression "*(code **)(puVar31 + 0x109484)" * (cast_expression "(code **)(puVar31 + 0x109484)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar31 + 0x109484)" ( (binary_expression "puVar31 + 0x109484" identifier + number_literal) ))))) )) (argument_list "(puVar9)" ( identifier ))) ;) }))) (expression_statement "pcVar20 = pcVar24;" (assignment_expression "pcVar20 = pcVar24" identifier = identifier) ;) (expression_statement "puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);" (assignment_expression "puVar9 = (undefined1 *)sqlite3_malloc64(uVar26)" identifier = (cast_expression "(undefined1 *)sqlite3_malloc64(uVar26)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3_malloc64(uVar26)" identifier (argument_list "(uVar26)" ( identifier ))))) ;) (if_statement "if (puVar9 == (undefined1 *)0x0) {\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }" if (parenthesized_expression "(puVar9 == (undefined1 *)0x0)" ( (binary_expression "puVar9 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }" { (expression_statement "pcVar5 = &DAT_00000007;" (assignment_expression "pcVar5 = &DAT_00000007" identifier = (pointer_expression "&DAT_00000007" & identifier)) ;) (goto_statement "goto LAB_000533c0;" goto statement_identifier ;) })) (expression_statement "iVar25 = (int)pcVar24 << 1;" (assignment_expression "iVar25 = (int)pcVar24 << 1" identifier = (binary_expression "(int)pcVar24 << 1" (cast_expression "(int)pcVar24" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;) }))) (expression_statement "pcVar20 = pcVar24;" (assignment_expression "pcVar20 = pcVar24" identifier = identifier) ;) (if_statement "if (0 < (int)pcVar24) goto LAB_000532c0;" if (parenthesized_expression "(0 < (int)pcVar24)" ( (binary_expression "0 < (int)pcVar24" number_literal < (cast_expression "(int)pcVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_000532c0;" goto statement_identifier ;)) }) (else_clause "else {\n      pcVar19 = &SUB_00000002;\n      if (iVar25 < 1) {\n        uVar26 = 0;\n        pcVar24 = (code *)0x1;\n        goto LAB_00053270;\n      }\n      pcVar24 = (code *)0x1;\nLAB_000532c0:\n      iVar10 = 0;\n      do {\n        cVar16 = pcVar22[(int)(pcVar30 + iVar10)];\n        if ((byte)cVar16 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }\n        pcVar20 = (code *)(puVar9 + iVar10);\n        iVar10 = iVar10 + 1;\n        *pcVar20 = cVar16;\n        pcVar20 = pcVar24;\n      } while (iVar10 < (int)pcVar24);\n    }" else (compound_statement "{\n      pcVar19 = &SUB_00000002;\n      if (iVar25 < 1) {\n        uVar26 = 0;\n        pcVar24 = (code *)0x1;\n        goto LAB_00053270;\n      }\n      pcVar24 = (code *)0x1;\nLAB_000532c0:\n      iVar10 = 0;\n      do {\n        cVar16 = pcVar22[(int)(pcVar30 + iVar10)];\n        if ((byte)cVar16 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }\n        pcVar20 = (code *)(puVar9 + iVar10);\n        iVar10 = iVar10 + 1;\n        *pcVar20 = cVar16;\n        pcVar20 = pcVar24;\n      } while (iVar10 < (int)pcVar24);\n    }" { (expression_statement "pcVar19 = &SUB_00000002;" (assignment_expression "pcVar19 = &SUB_00000002" identifier = (pointer_expression "&SUB_00000002" & identifier)) ;) (if_statement "if (iVar25 < 1) {\n        uVar26 = 0;\n        pcVar24 = (code *)0x1;\n        goto LAB_00053270;\n      }" if (parenthesized_expression "(iVar25 < 1)" ( (binary_expression "iVar25 < 1" identifier < number_literal) )) (compound_statement "{\n        uVar26 = 0;\n        pcVar24 = (code *)0x1;\n        goto LAB_00053270;\n      }" { (expression_statement "uVar26 = 0;" (assignment_expression "uVar26 = 0" identifier = number_literal) ;) (expression_statement "pcVar24 = (code *)0x1;" (assignment_expression "pcVar24 = (code *)0x1" identifier = (cast_expression "(code *)0x1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00053270;" goto statement_identifier ;) })) (expression_statement "pcVar24 = (code *)0x1;" (assignment_expression "pcVar24 = (code *)0x1" identifier = (cast_expression "(code *)0x1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_000532c0:\n      iVar10 = 0;" statement_identifier : (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;)) (do_statement "do {\n        cVar16 = pcVar22[(int)(pcVar30 + iVar10)];\n        if ((byte)cVar16 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }\n        pcVar20 = (code *)(puVar9 + iVar10);\n        iVar10 = iVar10 + 1;\n        *pcVar20 = cVar16;\n        pcVar20 = pcVar24;\n      } while (iVar10 < (int)pcVar24);" do (compound_statement "{\n        cVar16 = pcVar22[(int)(pcVar30 + iVar10)];\n        if ((byte)cVar16 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }\n        pcVar20 = (code *)(puVar9 + iVar10);\n        iVar10 = iVar10 + 1;\n        *pcVar20 = cVar16;\n        pcVar20 = pcVar24;\n      }" { (expression_statement "cVar16 = pcVar22[(int)(pcVar30 + iVar10)];" (assignment_expression "cVar16 = pcVar22[(int)(pcVar30 + iVar10)]" identifier = (subscript_expression "pcVar22[(int)(pcVar30 + iVar10)]" identifier [ (cast_expression "(int)(pcVar30 + iVar10)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar30 + iVar10)" ( (binary_expression "pcVar30 + iVar10" identifier + identifier) ))) ])) ;) (if_statement "if ((byte)cVar16 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }" if (parenthesized_expression "((byte)cVar16 - 0x41 < 0x1a)" ( (binary_expression "(byte)cVar16 - 0x41 < 0x1a" (binary_expression "(byte)cVar16 - 0x41" (cast_expression "(byte)cVar16" ( (type_descriptor "byte" type_identifier) ) identifier) - number_literal) < number_literal) )) (compound_statement "{\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }" { (expression_statement "cVar16 = (code)((char)cVar16 + 0x20);" (assignment_expression "cVar16 = (code)((char)cVar16 + 0x20)" identifier = (call_expression "(code)((char)cVar16 + 0x20)" (parenthesized_expression "(code)" ( identifier )) (argument_list "((char)cVar16 + 0x20)" ( (binary_expression "(char)cVar16 + 0x20" (cast_expression "(char)cVar16" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "pcVar20 = (code *)(puVar9 + iVar10);" (assignment_expression "pcVar20 = (code *)(puVar9 + iVar10)" identifier = (cast_expression "(code *)(puVar9 + iVar10)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + iVar10)" ( (binary_expression "puVar9 + iVar10" identifier + identifier) )))) ;) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar20 = cVar16;" (assignment_expression "*pcVar20 = cVar16" (pointer_expression "*pcVar20" * identifier) = identifier) ;) (expression_statement "pcVar20 = pcVar24;" (assignment_expression "pcVar20 = pcVar24" identifier = identifier) ;) }) while (parenthesized_expression "(iVar10 < (int)pcVar24)" ( (binary_expression "iVar10 < (int)pcVar24" identifier < (cast_expression "(int)pcVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) }))) (expression_statement "pcVar19 = (char *)0x0;" (assignment_expression "pcVar19 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar5 = (char *)(*local_ac)(pcVar18,0,puVar9);" (assignment_expression "pcVar5 = (char *)(*local_ac)(pcVar18,0,puVar9)" identifier = (cast_expression "(char *)(*local_ac)(pcVar18,0,puVar9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*local_ac)(pcVar18,0,puVar9)" (parenthesized_expression "(*local_ac)" ( (pointer_expression "*local_ac" * identifier) )) (argument_list "(pcVar18,0,puVar9)" ( identifier , number_literal , identifier ))))) ;) (expression_statement "local_150 = pcVar30;" (assignment_expression "local_150 = pcVar30" identifier = identifier) ;) (expression_statement "local_14c = pcVar8;" (assignment_expression "local_14c = pcVar8" identifier = identifier) ;) (if_statement "if ((0x1645af < (int)(pcVar8 + 1)) || (pcVar24 = pcVar8 + 1, pcVar5 != (char *)0x0)) break;" if (parenthesized_expression "((0x1645af < (int)(pcVar8 + 1)) || (pcVar24 = pcVar8 + 1, pcVar5 != (char *)0x0))" ( (binary_expression "(0x1645af < (int)(pcVar8 + 1)) || (pcVar24 = pcVar8 + 1, pcVar5 != (char *)0x0)" (parenthesized_expression "(0x1645af < (int)(pcVar8 + 1))" ( (binary_expression "0x1645af < (int)(pcVar8 + 1)" number_literal < (cast_expression "(int)(pcVar8 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar8 + 1)" ( (binary_expression "pcVar8 + 1" identifier + number_literal) )))) )) || (parenthesized_expression "(pcVar24 = pcVar8 + 1, pcVar5 != (char *)0x0)" ( (comma_expression "pcVar24 = pcVar8 + 1, pcVar5 != (char *)0x0" (assignment_expression "pcVar24 = pcVar8 + 1" identifier = (binary_expression "pcVar8 + 1" identifier + number_literal)) , (binary_expression "pcVar5 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) (if_statement "if (puVar9 == auStack_12c) {\n    if (pcVar5 == (char *)0x65) {\nLAB_00053398:\n      pcVar5 = (char *)0x0;\n    }\n  }\n  else {\nLAB_000533c0:\n    (**(code **)(puVar31 + 0x109484))(puVar9);\n    if (pcVar5 == (char *)0x65) {\n      pcVar5 = (char *)0x0;\n    }\n  }" if (parenthesized_expression "(puVar9 == auStack_12c)" ( (binary_expression "puVar9 == auStack_12c" identifier == identifier) )) (compound_statement "{\n    if (pcVar5 == (char *)0x65) {\nLAB_00053398:\n      pcVar5 = (char *)0x0;\n    }\n  }" { (if_statement "if (pcVar5 == (char *)0x65) {\nLAB_00053398:\n      pcVar5 = (char *)0x0;\n    }" if (parenthesized_expression "(pcVar5 == (char *)0x65)" ( (binary_expression "pcVar5 == (char *)0x65" identifier == (cast_expression "(char *)0x65" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00053398:\n      pcVar5 = (char *)0x0;\n    }" { (labeled_statement "LAB_00053398:\n      pcVar5 = (char *)0x0;" statement_identifier : (expression_statement "pcVar5 = (char *)0x0;" (assignment_expression "pcVar5 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) })) }) (else_clause "else {\nLAB_000533c0:\n    (**(code **)(puVar31 + 0x109484))(puVar9);\n    if (pcVar5 == (char *)0x65) {\n      pcVar5 = (char *)0x0;\n    }\n  }" else (compound_statement "{\nLAB_000533c0:\n    (**(code **)(puVar31 + 0x109484))(puVar9);\n    if (pcVar5 == (char *)0x65) {\n      pcVar5 = (char *)0x0;\n    }\n  }" { (labeled_statement "LAB_000533c0:\n    (**(code **)(puVar31 + 0x109484))(puVar9);" statement_identifier : (expression_statement "(**(code **)(puVar31 + 0x109484))(puVar9);" (call_expression "(**(code **)(puVar31 + 0x109484))(puVar9)" (parenthesized_expression "(**(code **)(puVar31 + 0x109484))" ( (pointer_expression "**(code **)(puVar31 + 0x109484)" * (pointer_expression "*(code **)(puVar31 + 0x109484)" * (cast_expression "(code **)(puVar31 + 0x109484)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar31 + 0x109484)" ( (binary_expression "puVar31 + 0x109484" identifier + number_literal) ))))) )) (argument_list "(puVar9)" ( identifier ))) ;)) (if_statement "if (pcVar5 == (char *)0x65) {\n      pcVar5 = (char *)0x0;\n    }" if (parenthesized_expression "(pcVar5 == (char *)0x65)" ( (binary_expression "pcVar5 == (char *)0x65" identifier == (cast_expression "(char *)0x65" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar5 = (char *)0x0;\n    }" { (expression_statement "pcVar5 = (char *)0x0;" (assignment_expression "pcVar5 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) (if_statement "if (local_ec == *piVar7) {\n    return pcVar5;\n  }" if (parenthesized_expression "(local_ec == *piVar7)" ( (binary_expression "local_ec == *piVar7" identifier == (pointer_expression "*piVar7" * identifier)) )) (compound_statement "{\n    return pcVar5;\n  }" { (return_statement "return pcVar5;" return identifier ;) })) (expression_statement "pcVar32 = *(code **)(puVar31 + 0x1098ac);" (assignment_expression "pcVar32 = *(code **)(puVar31 + 0x1098ac)" identifier = (pointer_expression "*(code **)(puVar31 + 0x1098ac)" * (cast_expression "(code **)(puVar31 + 0x1098ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar31 + 0x1098ac)" ( (binary_expression "puVar31 + 0x1098ac" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = local_ec;" (assignment_expression "iVar6 = local_ec" identifier = identifier) ;) (expression_statement "(*pcVar32)();" (call_expression "(*pcVar32)()" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "local_19c = *(uint *)(iVar6 + 0x84);" (assignment_expression "local_19c = *(uint *)(iVar6 + 0x84)" identifier = (pointer_expression "*(uint *)(iVar6 + 0x84)" * (cast_expression "(uint *)(iVar6 + 0x84)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x84)" ( (binary_expression "iVar6 + 0x84" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(pcVar32 + 0x1092d0);" (assignment_expression "iVar10 = *(int *)(pcVar32 + 0x1092d0)" identifier = (pointer_expression "*(int *)(pcVar32 + 0x1092d0)" * (cast_expression "(int *)(pcVar32 + 0x1092d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0x1092d0)" ( (binary_expression "pcVar32 + 0x1092d0" identifier + number_literal) ))))) ;) (expression_statement "pcVar24 = *(code **)(iVar6 + 0x80);" (assignment_expression "pcVar24 = *(code **)(iVar6 + 0x80)" identifier = (pointer_expression "*(code **)(iVar6 + 0x80)" * (cast_expression "(code **)(iVar6 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x80)" ( (binary_expression "iVar6 + 0x80" identifier + number_literal) ))))) ;) (expression_statement "iVar25 = *(int *)(pcVar32 + 0x1092a4);" (assignment_expression "iVar25 = *(int *)(pcVar32 + 0x1092a4)" identifier = (pointer_expression "*(int *)(pcVar32 + 0x1092a4)" * (cast_expression "(int *)(pcVar32 + 0x1092a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0x1092a4)" ( (binary_expression "pcVar32 + 0x1092a4" identifier + number_literal) ))))) ;) (expression_statement "pcVar8 = pcVar24 + (local_19c - 6);" (assignment_expression "pcVar8 = pcVar24 + (local_19c - 6)" identifier = (binary_expression "pcVar24 + (local_19c - 6)" identifier + (parenthesized_expression "(local_19c - 6)" ( (binary_expression "local_19c - 6" identifier - number_literal) )))) ;) (expression_statement "pcVar30 = pcVar20 + (int)local_150;" (assignment_expression "pcVar30 = pcVar20 + (int)local_150" identifier = (binary_expression "pcVar20 + (int)local_150" identifier + (cast_expression "(int)local_150" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar22 = pcVar20;" (assignment_expression "pcVar22 = pcVar20" identifier = identifier) ;) (labeled_statement "LAB_00053480:\n  if (pcVar30 <= pcVar22) {\n    return (char *)0x0;\n  }" statement_identifier : (if_statement "if (pcVar30 <= pcVar22) {\n    return (char *)0x0;\n  }" if (parenthesized_expression "(pcVar30 <= pcVar22)" ( (binary_expression "pcVar30 <= pcVar22" identifier <= identifier) )) (compound_statement "{\n    return (char *)0x0;\n  }" { (return_statement "return (char *)0x0;" return (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) }))) (do_statement "do {\n    cVar16 = *pcVar22;\n    uVar26 = (uint)(byte)cVar16;\n    pcVar28 = pcVar22 + 1;\n    pcVar23 = pcVar24;\n    if ((char)cVar16 < '\0') {\n      if (0xbf < uVar26) {\n        uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n        if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)) {\n          if (uVar26 < 0x80) {\n            uVar26 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);\n          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if (iVar11 != 0) break;\n    }\n    else {\n      local_194 = (int)pcVar22 - (int)pcVar20;\n      if (*(char *)(iVar6 + uVar26) != '\0') goto LAB_000535b0;\n    }\n    pcVar22 = pcVar28;\n    if (pcVar30 <= pcVar28) goto LAB_00053644;\n  } while( true );" do (compound_statement "{\n    cVar16 = *pcVar22;\n    uVar26 = (uint)(byte)cVar16;\n    pcVar28 = pcVar22 + 1;\n    pcVar23 = pcVar24;\n    if ((char)cVar16 < '\0') {\n      if (0xbf < uVar26) {\n        uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n        if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)) {\n          if (uVar26 < 0x80) {\n            uVar26 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);\n          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if (iVar11 != 0) break;\n    }\n    else {\n      local_194 = (int)pcVar22 - (int)pcVar20;\n      if (*(char *)(iVar6 + uVar26) != '\0') goto LAB_000535b0;\n    }\n    pcVar22 = pcVar28;\n    if (pcVar30 <= pcVar28) goto LAB_00053644;\n  }" { (expression_statement "cVar16 = *pcVar22;" (assignment_expression "cVar16 = *pcVar22" identifier = (pointer_expression "*pcVar22" * identifier)) ;) (expression_statement "uVar26 = (uint)(byte)cVar16;" (assignment_expression "uVar26 = (uint)(byte)cVar16" identifier = (cast_expression "(uint)(byte)cVar16" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)cVar16" ( (type_descriptor "byte" type_identifier) ) identifier))) ;) (expression_statement "pcVar28 = pcVar22 + 1;" (assignment_expression "pcVar28 = pcVar22 + 1" identifier = (binary_expression "pcVar22 + 1" identifier + number_literal)) ;) (expression_statement "pcVar23 = pcVar24;" (assignment_expression "pcVar23 = pcVar24" identifier = identifier) ;) (if_statement "if ((char)cVar16 < '\0') {\n      if (0xbf < uVar26) {\n        uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n        if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)) {\n          if (uVar26 < 0x80) {\n            uVar26 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);\n          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if (iVar11 != 0) break;\n    }\n    else {\n      local_194 = (int)pcVar22 - (int)pcVar20;\n      if (*(char *)(iVar6 + uVar26) != '\0') goto LAB_000535b0;\n    }" if (parenthesized_expression "((char)cVar16 < '\0')" ( (binary_expression "(char)cVar16 < '\0'" (cast_expression "(char)cVar16" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (0xbf < uVar26) {\n        uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n        if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)) {\n          if (uVar26 < 0x80) {\n            uVar26 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);\n          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if (iVar11 != 0) break;\n    }" { (if_statement "if (0xbf < uVar26) {\n        uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n        if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)) {\n          if (uVar26 < 0x80) {\n            uVar26 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);\n          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }\n        }\n      }" if (parenthesized_expression "(0xbf < uVar26)" ( (binary_expression "0xbf < uVar26" number_literal < identifier) )) (compound_statement "{\n        uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n        if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)) {\n          if (uVar26 < 0x80) {\n            uVar26 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);\n          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }\n        }\n      }" { (expression_statement "uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);" (assignment_expression "uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0)" identifier = (binary_expression "(uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 + iVar25 + -0x73b4 + -0xc0)" ( (binary_expression "uVar26 + iVar25 + -0x73b4 + -0xc0" (binary_expression "uVar26 + iVar25 + -0x73b4" (binary_expression "uVar26 + iVar25" identifier + identifier) + number_literal) + number_literal) ))))) ;) (if_statement "if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)) {\n          if (uVar26 < 0x80) {\n            uVar26 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);\n          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }\n        }" if (parenthesized_expression "((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80))" ( (binary_expression "(pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)" (parenthesized_expression "(pcVar30 == pcVar28)" ( (binary_expression "pcVar30 == pcVar28" identifier == identifier) )) || (parenthesized_expression "(uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)" ( (comma_expression "uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80" (assignment_expression "uVar12 = (uint)(byte)pcVar22[1]" identifier = (cast_expression "(uint)(byte)pcVar22[1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pcVar22[1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar22[1]" identifier [ number_literal ])))) , (binary_expression "(uVar12 & 0xc0) != 0x80" (parenthesized_expression "(uVar12 & 0xc0)" ( (binary_expression "uVar12 & 0xc0" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n          if (uVar26 < 0x80) {\n            uVar26 = 0xfffd;\n          }\n        }" { (if_statement "if (uVar26 < 0x80) {\n            uVar26 = 0xfffd;\n          }" if (parenthesized_expression "(uVar26 < 0x80)" ( (binary_expression "uVar26 < 0x80" identifier < number_literal) )) (compound_statement "{\n            uVar26 = 0xfffd;\n          }" { (expression_statement "uVar26 = 0xfffd;" (assignment_expression "uVar26 = 0xfffd" identifier = number_literal) ;) })) }) (else_clause "else {\n          do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);\n          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }\n        }" else (compound_statement "{\n          do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);\n          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }\n        }" { (do_statement "do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);" do (compound_statement "{\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          }" { (expression_statement "pcVar28 = pcVar28 + 1;" (assignment_expression "pcVar28 = pcVar28 + 1" identifier = (binary_expression "pcVar28 + 1" identifier + number_literal)) ;) (expression_statement "uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;" (assignment_expression "uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40" identifier = (binary_expression "(uVar12 & 0x3f) + uVar26 * 0x40" (parenthesized_expression "(uVar12 & 0x3f)" ( (binary_expression "uVar12 & 0x3f" identifier & number_literal) )) + (binary_expression "uVar26 * 0x40" identifier * number_literal))) ;) (if_statement "if (pcVar30 == pcVar28) break;" if (parenthesized_expression "(pcVar30 == pcVar28)" ( (binary_expression "pcVar30 == pcVar28" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar12 = (uint)(byte)*pcVar28;" (assignment_expression "uVar12 = (uint)(byte)*pcVar28" identifier = (binary_expression "(uint)(byte)*pcVar28" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * identifier)) ;) }) while (parenthesized_expression "((uVar12 & 0xffffffc0) == 0x80)" ( (binary_expression "(uVar12 & 0xffffffc0) == 0x80" (parenthesized_expression "(uVar12 & 0xffffffc0)" ( (binary_expression "uVar12 & 0xffffffc0" identifier & number_literal) )) == number_literal) )) ;) (if_statement "if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }" if (parenthesized_expression "(((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe))" ( (binary_expression "((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)" (parenthesized_expression "((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800))" ( (binary_expression "(uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)" (parenthesized_expression "(uVar26 < 0x80)" ( (binary_expression "uVar26 < 0x80" identifier < number_literal) )) || (parenthesized_expression "((uVar26 & 0xfffff800) == 0xd800)" ( (binary_expression "(uVar26 & 0xfffff800) == 0xd800" (parenthesized_expression "(uVar26 & 0xfffff800)" ( (binary_expression "uVar26 & 0xfffff800" identifier & number_literal) )) == number_literal) ))) )) || (parenthesized_expression "((uVar26 & 0xfffffffe) == 0xfffe)" ( (binary_expression "(uVar26 & 0xfffffffe) == 0xfffe" (parenthesized_expression "(uVar26 & 0xfffffffe)" ( (binary_expression "uVar26 & 0xfffffffe" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n            uVar26 = 0xfffd;\n          }" { (expression_statement "uVar26 = 0xfffd;" (assignment_expression "uVar26 = 0xfffd" identifier = number_literal) ;) })) }))) })) (expression_statement "iVar11 = FUN_00042fcc(iVar6,uVar26);" (assignment_expression "iVar11 = FUN_00042fcc(iVar6,uVar26)" identifier = (call_expression "FUN_00042fcc(iVar6,uVar26)" identifier (argument_list "(iVar6,uVar26)" ( identifier , identifier )))) ;) (if_statement "if (iVar11 != 0) break;" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) }) (else_clause "else {\n      local_194 = (int)pcVar22 - (int)pcVar20;\n      if (*(char *)(iVar6 + uVar26) != '\0') goto LAB_000535b0;\n    }" else (compound_statement "{\n      local_194 = (int)pcVar22 - (int)pcVar20;\n      if (*(char *)(iVar6 + uVar26) != '\0') goto LAB_000535b0;\n    }" { (expression_statement "local_194 = (int)pcVar22 - (int)pcVar20;" (assignment_expression "local_194 = (int)pcVar22 - (int)pcVar20" identifier = (binary_expression "(int)pcVar22 - (int)pcVar20" (cast_expression "(int)pcVar22" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (*(char *)(iVar6 + uVar26) != '\0') goto LAB_000535b0;" if (parenthesized_expression "(*(char *)(iVar6 + uVar26) != '\0')" ( (binary_expression "*(char *)(iVar6 + uVar26) != '\0'" (pointer_expression "*(char *)(iVar6 + uVar26)" * (cast_expression "(char *)(iVar6 + uVar26)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + uVar26)" ( (binary_expression "iVar6 + uVar26" identifier + identifier) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000535b0;" goto statement_identifier ;)) }))) (expression_statement "pcVar22 = pcVar28;" (assignment_expression "pcVar22 = pcVar28" identifier = identifier) ;) (if_statement "if (pcVar30 <= pcVar28) goto LAB_00053644;" if (parenthesized_expression "(pcVar30 <= pcVar28)" ( (binary_expression "pcVar30 <= pcVar28" identifier <= identifier) )) (goto_statement "goto LAB_00053644;" goto statement_identifier ;)) }) while (parenthesized_expression "( true )" ( true )) ;) (expression_statement "local_194 = (int)pcVar22 - (int)pcVar20;" (assignment_expression "local_194 = (int)pcVar22 - (int)pcVar20" identifier = (binary_expression "(int)pcVar22 - (int)pcVar20" (cast_expression "(int)pcVar22" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (do_statement "do {\n    while( true ) {\n      uVar26 = (*(code *)(iVar10 + 0x2d68))(uVar26,*(undefined4 *)(iVar6 + 0x88));\n      pcVar29 = pcVar28;\n      if (uVar26 != 0) {\n        if (uVar26 < 0x80) {\n          *pcVar23 = SUB41(uVar26,0);\n          pcVar23 = pcVar23 + 1;\n        }\n        else {\n          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);\n          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);\n          if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }\n        }\n      }\n      while( true ) {\n        pcVar22 = pcVar29;\n        if (pcVar30 <= pcVar29) goto LAB_00053608;\n        if (pcVar8 < pcVar23) {\n          uVar26 = local_19c * 2;\n          pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26);\n          if (pcVar24 == (code *)0x0) {\n            return &DAT_00000007;\n          }\n          pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));\n          (**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);\n          (**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));\n          pcVar8 = pcVar24 + (uVar26 - 6);\n          *(code **)(iVar6 + 0x80) = pcVar24;\n          *(uint *)(iVar6 + 0x84) = uVar26;\n          local_19c = uVar26;\n        }\n        cVar16 = *pcVar29;\n        uVar26 = (uint)(byte)cVar16;\n        if ((char)cVar16 < '\0') break;\n        if (*(char *)(iVar6 + uVar26) == '\0') goto LAB_00053608;\n        pcVar28 = pcVar29 + 1;\nLAB_000535b0:\n        if (uVar26 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)uVar26 + 0x20);\n        }\n        *pcVar23 = cVar16;\n        pcVar23 = pcVar23 + 1;\n        pcVar29 = pcVar28;\n      }\n      pcVar28 = pcVar29 + 1;\n      if (uVar26 < 0xc0) break;\n      uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n      if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80)) {\n        if (uVar26 < 0x80) goto LAB_00053748;\n      }\n      else {\n        do {\n          pcVar28 = pcVar28 + 1;\n          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n          if (pcVar30 == pcVar28) break;\n          uVar12 = (uint)(byte)*pcVar28;\n        } while ((uVar12 & 0xffffffc0) == 0x80);\n        if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);\n          uVar26 = 0xfffd;\n          goto joined_r0x00053724;\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if ((iVar11 == 0) &&\n         ((pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))\n         )) goto LAB_00053608;\n    }\n    iVar11 = FUN_00042fcc(iVar6,uVar26);\njoined_r0x00053724:\n    pcVar22 = pcVar28;\n  } while (iVar11 != 0);" do (compound_statement "{\n    while( true ) {\n      uVar26 = (*(code *)(iVar10 + 0x2d68))(uVar26,*(undefined4 *)(iVar6 + 0x88));\n      pcVar29 = pcVar28;\n      if (uVar26 != 0) {\n        if (uVar26 < 0x80) {\n          *pcVar23 = SUB41(uVar26,0);\n          pcVar23 = pcVar23 + 1;\n        }\n        else {\n          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);\n          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);\n          if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }\n        }\n      }\n      while( true ) {\n        pcVar22 = pcVar29;\n        if (pcVar30 <= pcVar29) goto LAB_00053608;\n        if (pcVar8 < pcVar23) {\n          uVar26 = local_19c * 2;\n          pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26);\n          if (pcVar24 == (code *)0x0) {\n            return &DAT_00000007;\n          }\n          pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));\n          (**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);\n          (**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));\n          pcVar8 = pcVar24 + (uVar26 - 6);\n          *(code **)(iVar6 + 0x80) = pcVar24;\n          *(uint *)(iVar6 + 0x84) = uVar26;\n          local_19c = uVar26;\n        }\n        cVar16 = *pcVar29;\n        uVar26 = (uint)(byte)cVar16;\n        if ((char)cVar16 < '\0') break;\n        if (*(char *)(iVar6 + uVar26) == '\0') goto LAB_00053608;\n        pcVar28 = pcVar29 + 1;\nLAB_000535b0:\n        if (uVar26 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)uVar26 + 0x20);\n        }\n        *pcVar23 = cVar16;\n        pcVar23 = pcVar23 + 1;\n        pcVar29 = pcVar28;\n      }\n      pcVar28 = pcVar29 + 1;\n      if (uVar26 < 0xc0) break;\n      uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n      if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80)) {\n        if (uVar26 < 0x80) goto LAB_00053748;\n      }\n      else {\n        do {\n          pcVar28 = pcVar28 + 1;\n          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n          if (pcVar30 == pcVar28) break;\n          uVar12 = (uint)(byte)*pcVar28;\n        } while ((uVar12 & 0xffffffc0) == 0x80);\n        if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);\n          uVar26 = 0xfffd;\n          goto joined_r0x00053724;\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if ((iVar11 == 0) &&\n         ((pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))\n         )) goto LAB_00053608;\n    }\n    iVar11 = FUN_00042fcc(iVar6,uVar26);\njoined_r0x00053724:\n    pcVar22 = pcVar28;\n  }" { (while_statement "while( true ) {\n      uVar26 = (*(code *)(iVar10 + 0x2d68))(uVar26,*(undefined4 *)(iVar6 + 0x88));\n      pcVar29 = pcVar28;\n      if (uVar26 != 0) {\n        if (uVar26 < 0x80) {\n          *pcVar23 = SUB41(uVar26,0);\n          pcVar23 = pcVar23 + 1;\n        }\n        else {\n          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);\n          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);\n          if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }\n        }\n      }\n      while( true ) {\n        pcVar22 = pcVar29;\n        if (pcVar30 <= pcVar29) goto LAB_00053608;\n        if (pcVar8 < pcVar23) {\n          uVar26 = local_19c * 2;\n          pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26);\n          if (pcVar24 == (code *)0x0) {\n            return &DAT_00000007;\n          }\n          pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));\n          (**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);\n          (**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));\n          pcVar8 = pcVar24 + (uVar26 - 6);\n          *(code **)(iVar6 + 0x80) = pcVar24;\n          *(uint *)(iVar6 + 0x84) = uVar26;\n          local_19c = uVar26;\n        }\n        cVar16 = *pcVar29;\n        uVar26 = (uint)(byte)cVar16;\n        if ((char)cVar16 < '\0') break;\n        if (*(char *)(iVar6 + uVar26) == '\0') goto LAB_00053608;\n        pcVar28 = pcVar29 + 1;\nLAB_000535b0:\n        if (uVar26 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)uVar26 + 0x20);\n        }\n        *pcVar23 = cVar16;\n        pcVar23 = pcVar23 + 1;\n        pcVar29 = pcVar28;\n      }\n      pcVar28 = pcVar29 + 1;\n      if (uVar26 < 0xc0) break;\n      uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n      if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80)) {\n        if (uVar26 < 0x80) goto LAB_00053748;\n      }\n      else {\n        do {\n          pcVar28 = pcVar28 + 1;\n          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n          if (pcVar30 == pcVar28) break;\n          uVar12 = (uint)(byte)*pcVar28;\n        } while ((uVar12 & 0xffffffc0) == 0x80);\n        if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);\n          uVar26 = 0xfffd;\n          goto joined_r0x00053724;\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if ((iVar11 == 0) &&\n         ((pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))\n         )) goto LAB_00053608;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      uVar26 = (*(code *)(iVar10 + 0x2d68))(uVar26,*(undefined4 *)(iVar6 + 0x88));\n      pcVar29 = pcVar28;\n      if (uVar26 != 0) {\n        if (uVar26 < 0x80) {\n          *pcVar23 = SUB41(uVar26,0);\n          pcVar23 = pcVar23 + 1;\n        }\n        else {\n          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);\n          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);\n          if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }\n        }\n      }\n      while( true ) {\n        pcVar22 = pcVar29;\n        if (pcVar30 <= pcVar29) goto LAB_00053608;\n        if (pcVar8 < pcVar23) {\n          uVar26 = local_19c * 2;\n          pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26);\n          if (pcVar24 == (code *)0x0) {\n            return &DAT_00000007;\n          }\n          pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));\n          (**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);\n          (**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));\n          pcVar8 = pcVar24 + (uVar26 - 6);\n          *(code **)(iVar6 + 0x80) = pcVar24;\n          *(uint *)(iVar6 + 0x84) = uVar26;\n          local_19c = uVar26;\n        }\n        cVar16 = *pcVar29;\n        uVar26 = (uint)(byte)cVar16;\n        if ((char)cVar16 < '\0') break;\n        if (*(char *)(iVar6 + uVar26) == '\0') goto LAB_00053608;\n        pcVar28 = pcVar29 + 1;\nLAB_000535b0:\n        if (uVar26 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)uVar26 + 0x20);\n        }\n        *pcVar23 = cVar16;\n        pcVar23 = pcVar23 + 1;\n        pcVar29 = pcVar28;\n      }\n      pcVar28 = pcVar29 + 1;\n      if (uVar26 < 0xc0) break;\n      uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n      if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80)) {\n        if (uVar26 < 0x80) goto LAB_00053748;\n      }\n      else {\n        do {\n          pcVar28 = pcVar28 + 1;\n          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n          if (pcVar30 == pcVar28) break;\n          uVar12 = (uint)(byte)*pcVar28;\n        } while ((uVar12 & 0xffffffc0) == 0x80);\n        if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);\n          uVar26 = 0xfffd;\n          goto joined_r0x00053724;\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if ((iVar11 == 0) &&\n         ((pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))\n         )) goto LAB_00053608;\n    }" { (expression_statement "uVar26 = (*(code *)(iVar10 + 0x2d68))(uVar26,*(undefined4 *)(iVar6 + 0x88));" (assignment_expression "uVar26 = (*(code *)(iVar10 + 0x2d68))(uVar26,*(undefined4 *)(iVar6 + 0x88))" identifier = (call_expression "(*(code *)(iVar10 + 0x2d68))(uVar26,*(undefined4 *)(iVar6 + 0x88))" (parenthesized_expression "(*(code *)(iVar10 + 0x2d68))" ( (pointer_expression "*(code *)(iVar10 + 0x2d68)" * (cast_expression "(code *)(iVar10 + 0x2d68)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x2d68)" ( (binary_expression "iVar10 + 0x2d68" identifier + number_literal) )))) )) (argument_list "(uVar26,*(undefined4 *)(iVar6 + 0x88))" ( identifier , (pointer_expression "*(undefined4 *)(iVar6 + 0x88)" * (cast_expression "(undefined4 *)(iVar6 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x88)" ( (binary_expression "iVar6 + 0x88" identifier + number_literal) )))) )))) ;) (expression_statement "pcVar29 = pcVar28;" (assignment_expression "pcVar29 = pcVar28" identifier = identifier) ;) (if_statement "if (uVar26 != 0) {\n        if (uVar26 < 0x80) {\n          *pcVar23 = SUB41(uVar26,0);\n          pcVar23 = pcVar23 + 1;\n        }\n        else {\n          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);\n          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);\n          if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(uVar26 != 0)" ( (binary_expression "uVar26 != 0" identifier != number_literal) )) (compound_statement "{\n        if (uVar26 < 0x80) {\n          *pcVar23 = SUB41(uVar26,0);\n          pcVar23 = pcVar23 + 1;\n        }\n        else {\n          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);\n          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);\n          if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }\n        }\n      }" { (if_statement "if (uVar26 < 0x80) {\n          *pcVar23 = SUB41(uVar26,0);\n          pcVar23 = pcVar23 + 1;\n        }\n        else {\n          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);\n          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);\n          if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }\n        }" if (parenthesized_expression "(uVar26 < 0x80)" ( (binary_expression "uVar26 < 0x80" identifier < number_literal) )) (compound_statement "{\n          *pcVar23 = SUB41(uVar26,0);\n          pcVar23 = pcVar23 + 1;\n        }" { (expression_statement "*pcVar23 = SUB41(uVar26,0);" (assignment_expression "*pcVar23 = SUB41(uVar26,0)" (pointer_expression "*pcVar23" * identifier) = (call_expression "SUB41(uVar26,0)" identifier (argument_list "(uVar26,0)" ( identifier , number_literal )))) ;) (expression_statement "pcVar23 = pcVar23 + 1;" (assignment_expression "pcVar23 = pcVar23 + 1" identifier = (binary_expression "pcVar23 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);\n          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);\n          if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }\n        }" else (compound_statement "{\n          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);\n          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);\n          if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }\n        }" { (expression_statement "cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);" (assignment_expression "cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80)" identifier = (call_expression "(code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80)" (parenthesized_expression "(code)" ( identifier )) (argument_list "(((byte)SUB41(uVar26,0) & 0x3f) + 0x80)" ( (binary_expression "((byte)SUB41(uVar26,0) & 0x3f) + 0x80" (parenthesized_expression "((byte)SUB41(uVar26,0) & 0x3f)" ( (binary_expression "(byte)SUB41(uVar26,0) & 0x3f" (cast_expression "(byte)SUB41(uVar26,0)" ( (type_descriptor "byte" type_identifier) ) (call_expression "SUB41(uVar26,0)" identifier (argument_list "(uVar26,0)" ( identifier , number_literal )))) & number_literal) )) + number_literal) )))) ;) (expression_statement "bVar3 = (byte)((uVar26 << 0x12) >> 0x18);" (assignment_expression "bVar3 = (byte)((uVar26 << 0x12) >> 0x18)" identifier = (call_expression "(byte)((uVar26 << 0x12) >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uVar26 << 0x12) >> 0x18)" ( (binary_expression "(uVar26 << 0x12) >> 0x18" (parenthesized_expression "(uVar26 << 0x12)" ( (binary_expression "uVar26 << 0x12" identifier << number_literal) )) >> number_literal) )))) ;) (if_statement "if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }" if (parenthesized_expression "(uVar26 < 0x800)" ( (binary_expression "uVar26 < 0x800" identifier < number_literal) )) (compound_statement "{\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }" { (expression_statement "pcVar23[1] = cVar16;" (assignment_expression "pcVar23[1] = cVar16" (subscript_expression "pcVar23[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*pcVar23 = (code)(bVar3 - 0x40);" (assignment_expression "*pcVar23 = (code)(bVar3 - 0x40)" (pointer_expression "*pcVar23" * identifier) = (call_expression "(code)(bVar3 - 0x40)" (parenthesized_expression "(code)" ( identifier )) (argument_list "(bVar3 - 0x40)" ( (binary_expression "bVar3 - 0x40" identifier - number_literal) )))) ;) (expression_statement "pcVar23 = pcVar23 + 2;" (assignment_expression "pcVar23 = pcVar23 + 2" identifier = (binary_expression "pcVar23 + 2" identifier + number_literal)) ;) }) (else_clause "else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }" else (compound_statement "{\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }" { (expression_statement "cVar17 = (code)((bVar3 & 0x3f) + 0x80);" (assignment_expression "cVar17 = (code)((bVar3 & 0x3f) + 0x80)" identifier = (call_expression "(code)((bVar3 & 0x3f) + 0x80)" (parenthesized_expression "(code)" ( identifier )) (argument_list "((bVar3 & 0x3f) + 0x80)" ( (binary_expression "(bVar3 & 0x3f) + 0x80" (parenthesized_expression "(bVar3 & 0x3f)" ( (binary_expression "bVar3 & 0x3f" identifier & number_literal) )) + number_literal) )))) ;) (expression_statement "bVar3 = (byte)((uVar26 << 0xc) >> 0x18);" (assignment_expression "bVar3 = (byte)((uVar26 << 0xc) >> 0x18)" identifier = (call_expression "(byte)((uVar26 << 0xc) >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uVar26 << 0xc) >> 0x18)" ( (binary_expression "(uVar26 << 0xc) >> 0x18" (parenthesized_expression "(uVar26 << 0xc)" ( (binary_expression "uVar26 << 0xc" identifier << number_literal) )) >> number_literal) )))) ;) (if_statement "if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }" if (parenthesized_expression "(uVar26 < 0x10000)" ( (binary_expression "uVar26 < 0x10000" identifier < number_literal) )) (compound_statement "{\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }" { (expression_statement "pcVar23[1] = cVar17;" (assignment_expression "pcVar23[1] = cVar17" (subscript_expression "pcVar23[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pcVar23[2] = cVar16;" (assignment_expression "pcVar23[2] = cVar16" (subscript_expression "pcVar23[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*pcVar23 = (code)(bVar3 - 0x20);" (assignment_expression "*pcVar23 = (code)(bVar3 - 0x20)" (pointer_expression "*pcVar23" * identifier) = (call_expression "(code)(bVar3 - 0x20)" (parenthesized_expression "(code)" ( identifier )) (argument_list "(bVar3 - 0x20)" ( (binary_expression "bVar3 - 0x20" identifier - number_literal) )))) ;) (expression_statement "pcVar23 = pcVar23 + 3;" (assignment_expression "pcVar23 = pcVar23 + 3" identifier = (binary_expression "pcVar23 + 3" identifier + number_literal)) ;) }) (else_clause "else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }" else (compound_statement "{\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }" { (expression_statement "pcVar23[2] = cVar17;" (assignment_expression "pcVar23[2] = cVar17" (subscript_expression "pcVar23[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pcVar23[3] = cVar16;" (assignment_expression "pcVar23[3] = cVar16" (subscript_expression "pcVar23[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);" (assignment_expression "*pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10)" (pointer_expression "*pcVar23" * identifier) = (call_expression "(code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10)" (parenthesized_expression "(code)" ( identifier )) (argument_list "((byte)((uVar26 << 0xb) >> 0x1d) - 0x10)" ( (binary_expression "(byte)((uVar26 << 0xb) >> 0x1d) - 0x10" (call_expression "(byte)((uVar26 << 0xb) >> 0x1d)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uVar26 << 0xb) >> 0x1d)" ( (binary_expression "(uVar26 << 0xb) >> 0x1d" (parenthesized_expression "(uVar26 << 0xb)" ( (binary_expression "uVar26 << 0xb" identifier << number_literal) )) >> number_literal) ))) - number_literal) )))) ;) (expression_statement "pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);" (assignment_expression "pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80)" (subscript_expression "pcVar23[1]" identifier [ number_literal ]) = (call_expression "(code)((bVar3 & 0x3f) + 0x80)" (parenthesized_expression "(code)" ( identifier )) (argument_list "((bVar3 & 0x3f) + 0x80)" ( (binary_expression "(bVar3 & 0x3f) + 0x80" (parenthesized_expression "(bVar3 & 0x3f)" ( (binary_expression "bVar3 & 0x3f" identifier & number_literal) )) + number_literal) )))) ;) (expression_statement "pcVar23 = pcVar23 + 4;" (assignment_expression "pcVar23 = pcVar23 + 4" identifier = (binary_expression "pcVar23 + 4" identifier + number_literal)) ;) }))) }))) }))) })) (while_statement "while( true ) {\n        pcVar22 = pcVar29;\n        if (pcVar30 <= pcVar29) goto LAB_00053608;\n        if (pcVar8 < pcVar23) {\n          uVar26 = local_19c * 2;\n          pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26);\n          if (pcVar24 == (code *)0x0) {\n            return &DAT_00000007;\n          }\n          pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));\n          (**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);\n          (**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));\n          pcVar8 = pcVar24 + (uVar26 - 6);\n          *(code **)(iVar6 + 0x80) = pcVar24;\n          *(uint *)(iVar6 + 0x84) = uVar26;\n          local_19c = uVar26;\n        }\n        cVar16 = *pcVar29;\n        uVar26 = (uint)(byte)cVar16;\n        if ((char)cVar16 < '\0') break;\n        if (*(char *)(iVar6 + uVar26) == '\0') goto LAB_00053608;\n        pcVar28 = pcVar29 + 1;\nLAB_000535b0:\n        if (uVar26 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)uVar26 + 0x20);\n        }\n        *pcVar23 = cVar16;\n        pcVar23 = pcVar23 + 1;\n        pcVar29 = pcVar28;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        pcVar22 = pcVar29;\n        if (pcVar30 <= pcVar29) goto LAB_00053608;\n        if (pcVar8 < pcVar23) {\n          uVar26 = local_19c * 2;\n          pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26);\n          if (pcVar24 == (code *)0x0) {\n            return &DAT_00000007;\n          }\n          pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));\n          (**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);\n          (**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));\n          pcVar8 = pcVar24 + (uVar26 - 6);\n          *(code **)(iVar6 + 0x80) = pcVar24;\n          *(uint *)(iVar6 + 0x84) = uVar26;\n          local_19c = uVar26;\n        }\n        cVar16 = *pcVar29;\n        uVar26 = (uint)(byte)cVar16;\n        if ((char)cVar16 < '\0') break;\n        if (*(char *)(iVar6 + uVar26) == '\0') goto LAB_00053608;\n        pcVar28 = pcVar29 + 1;\nLAB_000535b0:\n        if (uVar26 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)uVar26 + 0x20);\n        }\n        *pcVar23 = cVar16;\n        pcVar23 = pcVar23 + 1;\n        pcVar29 = pcVar28;\n      }" { (expression_statement "pcVar22 = pcVar29;" (assignment_expression "pcVar22 = pcVar29" identifier = identifier) ;) (if_statement "if (pcVar30 <= pcVar29) goto LAB_00053608;" if (parenthesized_expression "(pcVar30 <= pcVar29)" ( (binary_expression "pcVar30 <= pcVar29" identifier <= identifier) )) (goto_statement "goto LAB_00053608;" goto statement_identifier ;)) (if_statement "if (pcVar8 < pcVar23) {\n          uVar26 = local_19c * 2;\n          pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26);\n          if (pcVar24 == (code *)0x0) {\n            return &DAT_00000007;\n          }\n          pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));\n          (**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);\n          (**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));\n          pcVar8 = pcVar24 + (uVar26 - 6);\n          *(code **)(iVar6 + 0x80) = pcVar24;\n          *(uint *)(iVar6 + 0x84) = uVar26;\n          local_19c = uVar26;\n        }" if (parenthesized_expression "(pcVar8 < pcVar23)" ( (binary_expression "pcVar8 < pcVar23" identifier < identifier) )) (compound_statement "{\n          uVar26 = local_19c * 2;\n          pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26);\n          if (pcVar24 == (code *)0x0) {\n            return &DAT_00000007;\n          }\n          pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));\n          (**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);\n          (**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));\n          pcVar8 = pcVar24 + (uVar26 - 6);\n          *(code **)(iVar6 + 0x80) = pcVar24;\n          *(uint *)(iVar6 + 0x84) = uVar26;\n          local_19c = uVar26;\n        }" { (expression_statement "uVar26 = local_19c * 2;" (assignment_expression "uVar26 = local_19c * 2" identifier = (binary_expression "local_19c * 2" identifier * number_literal)) ;) (expression_statement "pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26);" (assignment_expression "pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26)" identifier = (cast_expression "(code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26)" identifier (argument_list "(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26)" ( (binary_expression "local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1" (binary_expression "local_19c >> 0x1f" identifier >> number_literal) | (binary_expression "((int)local_19c >> 0x1f) << 1" (parenthesized_expression "((int)local_19c >> 0x1f)" ( (binary_expression "(int)local_19c >> 0x1f" (cast_expression "(int)local_19c" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) << number_literal)) , identifier ))))) ;) (if_statement "if (pcVar24 == (code *)0x0) {\n            return &DAT_00000007;\n          }" if (parenthesized_expression "(pcVar24 == (code *)0x0)" ( (binary_expression "pcVar24 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            return &DAT_00000007;\n          }" { (return_statement "return &DAT_00000007;" return (pointer_expression "&DAT_00000007" & identifier) ;) })) (expression_statement "pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));" (assignment_expression "pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80))" identifier = (binary_expression "pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80))" identifier + (parenthesized_expression "((int)pcVar23 - *(int *)(iVar6 + 0x80))" ( (binary_expression "(int)pcVar23 - *(int *)(iVar6 + 0x80)" (cast_expression "(int)pcVar23" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar6 + 0x80)" * (cast_expression "(int *)(iVar6 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x80)" ( (binary_expression "iVar6 + 0x80" identifier + number_literal) ))))) )))) ;) (expression_statement "(**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);" (call_expression "(**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c)" (parenthesized_expression "(**(code **)(pcVar32 + 0x109640))" ( (pointer_expression "**(code **)(pcVar32 + 0x109640)" * (pointer_expression "*(code **)(pcVar32 + 0x109640)" * (cast_expression "(code **)(pcVar32 + 0x109640)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x109640)" ( (binary_expression "pcVar32 + 0x109640" identifier + number_literal) ))))) )) (argument_list "(pcVar24,*(int *)(iVar6 + 0x80),local_19c)" ( identifier , (pointer_expression "*(int *)(iVar6 + 0x80)" * (cast_expression "(int *)(iVar6 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x80)" ( (binary_expression "iVar6 + 0x80" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "(**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));" (call_expression "(**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80))" (parenthesized_expression "(**(code **)(pcVar32 + 0x1091f8))" ( (pointer_expression "**(code **)(pcVar32 + 0x1091f8)" * (pointer_expression "*(code **)(pcVar32 + 0x1091f8)" * (cast_expression "(code **)(pcVar32 + 0x1091f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x1091f8)" ( (binary_expression "pcVar32 + 0x1091f8" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar6 + 0x80))" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x80)" * (cast_expression "(undefined4 *)(iVar6 + 0x80)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x80)" ( (binary_expression "iVar6 + 0x80" identifier + number_literal) )))) ))) ;) (expression_statement "pcVar8 = pcVar24 + (uVar26 - 6);" (assignment_expression "pcVar8 = pcVar24 + (uVar26 - 6)" identifier = (binary_expression "pcVar24 + (uVar26 - 6)" identifier + (parenthesized_expression "(uVar26 - 6)" ( (binary_expression "uVar26 - 6" identifier - number_literal) )))) ;) (expression_statement "*(code **)(iVar6 + 0x80) = pcVar24;" (assignment_expression "*(code **)(iVar6 + 0x80) = pcVar24" (pointer_expression "*(code **)(iVar6 + 0x80)" * (cast_expression "(code **)(iVar6 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x80)" ( (binary_expression "iVar6 + 0x80" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar6 + 0x84) = uVar26;" (assignment_expression "*(uint *)(iVar6 + 0x84) = uVar26" (pointer_expression "*(uint *)(iVar6 + 0x84)" * (cast_expression "(uint *)(iVar6 + 0x84)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x84)" ( (binary_expression "iVar6 + 0x84" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_19c = uVar26;" (assignment_expression "local_19c = uVar26" identifier = identifier) ;) })) (expression_statement "cVar16 = *pcVar29;" (assignment_expression "cVar16 = *pcVar29" identifier = (pointer_expression "*pcVar29" * identifier)) ;) (expression_statement "uVar26 = (uint)(byte)cVar16;" (assignment_expression "uVar26 = (uint)(byte)cVar16" identifier = (cast_expression "(uint)(byte)cVar16" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)cVar16" ( (type_descriptor "byte" type_identifier) ) identifier))) ;) (if_statement "if ((char)cVar16 < '\0') break;" if (parenthesized_expression "((char)cVar16 < '\0')" ( (binary_expression "(char)cVar16 < '\0'" (cast_expression "(char)cVar16" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (if_statement "if (*(char *)(iVar6 + uVar26) == '\0') goto LAB_00053608;" if (parenthesized_expression "(*(char *)(iVar6 + uVar26) == '\0')" ( (binary_expression "*(char *)(iVar6 + uVar26) == '\0'" (pointer_expression "*(char *)(iVar6 + uVar26)" * (cast_expression "(char *)(iVar6 + uVar26)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + uVar26)" ( (binary_expression "iVar6 + uVar26" identifier + identifier) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00053608;" goto statement_identifier ;)) (expression_statement "pcVar28 = pcVar29 + 1;" (assignment_expression "pcVar28 = pcVar29 + 1" identifier = (binary_expression "pcVar29 + 1" identifier + number_literal)) ;) (labeled_statement "LAB_000535b0:\n        if (uVar26 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)uVar26 + 0x20);\n        }" statement_identifier : (if_statement "if (uVar26 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)uVar26 + 0x20);\n        }" if (parenthesized_expression "(uVar26 - 0x41 < 0x1a)" ( (binary_expression "uVar26 - 0x41 < 0x1a" (binary_expression "uVar26 - 0x41" identifier - number_literal) < number_literal) )) (compound_statement "{\n          cVar16 = (code)((char)uVar26 + 0x20);\n        }" { (expression_statement "cVar16 = (code)((char)uVar26 + 0x20);" (assignment_expression "cVar16 = (code)((char)uVar26 + 0x20)" identifier = (call_expression "(code)((char)uVar26 + 0x20)" (parenthesized_expression "(code)" ( identifier )) (argument_list "((char)uVar26 + 0x20)" ( (binary_expression "(char)uVar26 + 0x20" (cast_expression "(char)uVar26" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal) )))) ;) }))) (expression_statement "*pcVar23 = cVar16;" (assignment_expression "*pcVar23 = cVar16" (pointer_expression "*pcVar23" * identifier) = identifier) ;) (expression_statement "pcVar23 = pcVar23 + 1;" (assignment_expression "pcVar23 = pcVar23 + 1" identifier = (binary_expression "pcVar23 + 1" identifier + number_literal)) ;) (expression_statement "pcVar29 = pcVar28;" (assignment_expression "pcVar29 = pcVar28" identifier = identifier) ;) })) (expression_statement "pcVar28 = pcVar29 + 1;" (assignment_expression "pcVar28 = pcVar29 + 1" identifier = (binary_expression "pcVar29 + 1" identifier + number_literal)) ;) (if_statement "if (uVar26 < 0xc0) break;" if (parenthesized_expression "(uVar26 < 0xc0)" ( (binary_expression "uVar26 < 0xc0" identifier < number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);" (assignment_expression "uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0)" identifier = (binary_expression "(uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 + iVar25 + -0x73b4 + -0xc0)" ( (binary_expression "uVar26 + iVar25 + -0x73b4 + -0xc0" (binary_expression "uVar26 + iVar25 + -0x73b4" (binary_expression "uVar26 + iVar25" identifier + identifier) + number_literal) + number_literal) ))))) ;) (if_statement "if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80)) {\n        if (uVar26 < 0x80) goto LAB_00053748;\n      }\n      else {\n        do {\n          pcVar28 = pcVar28 + 1;\n          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n          if (pcVar30 == pcVar28) break;\n          uVar12 = (uint)(byte)*pcVar28;\n        } while ((uVar12 & 0xffffffc0) == 0x80);\n        if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);\n          uVar26 = 0xfffd;\n          goto joined_r0x00053724;\n        }\n      }" if (parenthesized_expression "((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80))" ( (binary_expression "(pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80)" (parenthesized_expression "(pcVar30 == pcVar28)" ( (binary_expression "pcVar30 == pcVar28" identifier == identifier) )) || (parenthesized_expression "(uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80)" ( (comma_expression "uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80" (assignment_expression "uVar12 = (uint)(byte)pcVar29[1]" identifier = (cast_expression "(uint)(byte)pcVar29[1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pcVar29[1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar29[1]" identifier [ number_literal ])))) , (binary_expression "(uVar12 & 0xc0) != 0x80" (parenthesized_expression "(uVar12 & 0xc0)" ( (binary_expression "uVar12 & 0xc0" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n        if (uVar26 < 0x80) goto LAB_00053748;\n      }" { (if_statement "if (uVar26 < 0x80) goto LAB_00053748;" if (parenthesized_expression "(uVar26 < 0x80)" ( (binary_expression "uVar26 < 0x80" identifier < number_literal) )) (goto_statement "goto LAB_00053748;" goto statement_identifier ;)) }) (else_clause "else {\n        do {\n          pcVar28 = pcVar28 + 1;\n          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n          if (pcVar30 == pcVar28) break;\n          uVar12 = (uint)(byte)*pcVar28;\n        } while ((uVar12 & 0xffffffc0) == 0x80);\n        if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);\n          uVar26 = 0xfffd;\n          goto joined_r0x00053724;\n        }\n      }" else (compound_statement "{\n        do {\n          pcVar28 = pcVar28 + 1;\n          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n          if (pcVar30 == pcVar28) break;\n          uVar12 = (uint)(byte)*pcVar28;\n        } while ((uVar12 & 0xffffffc0) == 0x80);\n        if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);\n          uVar26 = 0xfffd;\n          goto joined_r0x00053724;\n        }\n      }" { (do_statement "do {\n          pcVar28 = pcVar28 + 1;\n          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n          if (pcVar30 == pcVar28) break;\n          uVar12 = (uint)(byte)*pcVar28;\n        } while ((uVar12 & 0xffffffc0) == 0x80);" do (compound_statement "{\n          pcVar28 = pcVar28 + 1;\n          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n          if (pcVar30 == pcVar28) break;\n          uVar12 = (uint)(byte)*pcVar28;\n        }" { (expression_statement "pcVar28 = pcVar28 + 1;" (assignment_expression "pcVar28 = pcVar28 + 1" identifier = (binary_expression "pcVar28 + 1" identifier + number_literal)) ;) (expression_statement "uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;" (assignment_expression "uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40" identifier = (binary_expression "(uVar12 & 0x3f) + uVar26 * 0x40" (parenthesized_expression "(uVar12 & 0x3f)" ( (binary_expression "uVar12 & 0x3f" identifier & number_literal) )) + (binary_expression "uVar26 * 0x40" identifier * number_literal))) ;) (if_statement "if (pcVar30 == pcVar28) break;" if (parenthesized_expression "(pcVar30 == pcVar28)" ( (binary_expression "pcVar30 == pcVar28" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar12 = (uint)(byte)*pcVar28;" (assignment_expression "uVar12 = (uint)(byte)*pcVar28" identifier = (binary_expression "(uint)(byte)*pcVar28" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * identifier)) ;) }) while (parenthesized_expression "((uVar12 & 0xffffffc0) == 0x80)" ( (binary_expression "(uVar12 & 0xffffffc0) == 0x80" (parenthesized_expression "(uVar12 & 0xffffffc0)" ( (binary_expression "uVar12 & 0xffffffc0" identifier & number_literal) )) == number_literal) )) ;) (if_statement "if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);\n          uVar26 = 0xfffd;\n          goto joined_r0x00053724;\n        }" if (parenthesized_expression "(((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe))" ( (binary_expression "((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe)" (parenthesized_expression "((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800))" ( (binary_expression "(uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)" (parenthesized_expression "(uVar26 < 0x80)" ( (binary_expression "uVar26 < 0x80" identifier < number_literal) )) || (parenthesized_expression "((uVar26 & 0xfffff800) == 0xd800)" ( (binary_expression "(uVar26 & 0xfffff800) == 0xd800" (parenthesized_expression "(uVar26 & 0xfffff800)" ( (binary_expression "uVar26 & 0xfffff800" identifier & number_literal) )) == number_literal) ))) )) || (parenthesized_expression "((uVar26 & 0xfffffffe) == 0xfffe)" ( (binary_expression "(uVar26 & 0xfffffffe) == 0xfffe" (parenthesized_expression "(uVar26 & 0xfffffffe)" ( (binary_expression "uVar26 & 0xfffffffe" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\nLAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);\n          uVar26 = 0xfffd;\n          goto joined_r0x00053724;\n        }" { (labeled_statement "LAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);" statement_identifier : (expression_statement "iVar11 = FUN_00042fcc(iVar6,0xfffd);" (assignment_expression "iVar11 = FUN_00042fcc(iVar6,0xfffd)" identifier = (call_expression "FUN_00042fcc(iVar6,0xfffd)" identifier (argument_list "(iVar6,0xfffd)" ( identifier , number_literal )))) ;)) (expression_statement "uVar26 = 0xfffd;" (assignment_expression "uVar26 = 0xfffd" identifier = number_literal) ;) (goto_statement "goto joined_r0x00053724;" goto statement_identifier ;) })) }))) (expression_statement "iVar11 = FUN_00042fcc(iVar6,uVar26);" (assignment_expression "iVar11 = FUN_00042fcc(iVar6,uVar26)" identifier = (call_expression "FUN_00042fcc(iVar6,uVar26)" identifier (argument_list "(iVar6,uVar26)" ( identifier , identifier )))) ;) (if_statement "if ((iVar11 == 0) &&\n         ((pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))\n         )) goto LAB_00053608;" if (parenthesized_expression "((iVar11 == 0) &&\n         ((pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))\n         ))" ( (binary_expression "(iVar11 == 0) &&\n         ((pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))\n         )" (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) && (parenthesized_expression "((pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))\n         )" ( (parenthesized_expression "(pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))" ( (comma_expression "pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0)" (assignment_expression "pcVar22 = pcVar28" identifier = identifier) , (binary_expression "0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0)" (binary_expression "0x31 < uVar26 - 0x300" number_literal < (binary_expression "uVar26 - 0x300" identifier - number_literal)) || (parenthesized_expression "(iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0)" ( (comma_expression "iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0" (assignment_expression "iVar11 = FUN_0003e8a0(uVar26)" identifier = (call_expression "FUN_0003e8a0(uVar26)" identifier (argument_list "(uVar26)" ( identifier )))) , (binary_expression "iVar11 == 0" identifier == number_literal)) )))) )) ))) )) (goto_statement "goto LAB_00053608;" goto statement_identifier ;)) })) (expression_statement "iVar11 = FUN_00042fcc(iVar6,uVar26);" (assignment_expression "iVar11 = FUN_00042fcc(iVar6,uVar26)" identifier = (call_expression "FUN_00042fcc(iVar6,uVar26)" identifier (argument_list "(iVar6,uVar26)" ( identifier , identifier )))) ;) (labeled_statement "joined_r0x00053724:\n    pcVar22 = pcVar28;" statement_identifier : (expression_statement "pcVar22 = pcVar28;" (assignment_expression "pcVar22 = pcVar28" identifier = identifier) ;)) }) while (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) ;) (labeled_statement "LAB_00053608:\n  pcVar18 = (char *)(*local_14c)(pcVar19,0,pcVar24,(int)pcVar23 - (int)pcVar24,local_194,\n                                 (int)pcVar29 - (int)pcVar20);" statement_identifier : (expression_statement "pcVar18 = (char *)(*local_14c)(pcVar19,0,pcVar24,(int)pcVar23 - (int)pcVar24,local_194,\n                                 (int)pcVar29 - (int)pcVar20);" (assignment_expression "pcVar18 = (char *)(*local_14c)(pcVar19,0,pcVar24,(int)pcVar23 - (int)pcVar24,local_194,\n                                 (int)pcVar29 - (int)pcVar20)" identifier = (cast_expression "(char *)(*local_14c)(pcVar19,0,pcVar24,(int)pcVar23 - (int)pcVar24,local_194,\n                                 (int)pcVar29 - (int)pcVar20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*local_14c)(pcVar19,0,pcVar24,(int)pcVar23 - (int)pcVar24,local_194,\n                                 (int)pcVar29 - (int)pcVar20)" (parenthesized_expression "(*local_14c)" ( (pointer_expression "*local_14c" * identifier) )) (argument_list "(pcVar19,0,pcVar24,(int)pcVar23 - (int)pcVar24,local_194,\n                                 (int)pcVar29 - (int)pcVar20)" ( identifier , number_literal , identifier , (binary_expression "(int)pcVar23 - (int)pcVar24" (cast_expression "(int)pcVar23" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar24" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier , (binary_expression "(int)pcVar29 - (int)pcVar20" (cast_expression "(int)pcVar29" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar20" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;)) (if_statement "if (pcVar18 != (char *)0x0) {\n    if (pcVar18 == (char *)0x65) {\nLAB_00053644:\n      pcVar18 = (char *)0x0;\n    }\n    return pcVar18;\n  }" if (parenthesized_expression "(pcVar18 != (char *)0x0)" ( (binary_expression "pcVar18 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (pcVar18 == (char *)0x65) {\nLAB_00053644:\n      pcVar18 = (char *)0x0;\n    }\n    return pcVar18;\n  }" { (if_statement "if (pcVar18 == (char *)0x65) {\nLAB_00053644:\n      pcVar18 = (char *)0x0;\n    }" if (parenthesized_expression "(pcVar18 == (char *)0x65)" ( (binary_expression "pcVar18 == (char *)0x65" identifier == (cast_expression "(char *)0x65" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00053644:\n      pcVar18 = (char *)0x0;\n    }" { (labeled_statement "LAB_00053644:\n      pcVar18 = (char *)0x0;" statement_identifier : (expression_statement "pcVar18 = (char *)0x0;" (assignment_expression "pcVar18 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) })) (return_statement "return pcVar18;" return identifier ;) })) (goto_statement "goto LAB_00053480;" goto statement_identifier ;) })))
(translation_unit "char * fts5ConfigGobbleWord(int *pRc,char *zIn,char **pzOut,int *pbQuoted)\n\n{\n  char cVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  char *pcVar5;\n  char *pcVar6;\n  Unicode61Tokenizer *p;\n  int iVar7;\n  byte bVar9;\n  uint uVar8;\n  undefined4 *puVar10;\n  undefined4 *puVar11;\n  u8 *puVar12;\n  byte bVar13;\n  char *pcVar14;\n  undefined4 uVar15;\n  byte bVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  int iVar19;\n  uint uVar20;\n  byte *pbVar21;\n  byte *pbVar22;\n  byte *pbVar23;\n  byte *pbVar24;\n  byte *pbVar25;\n  code *pcVar26;\n  byte *pbVar27;\n  int in_stack_fffffe50;\n  int in_stack_fffffe54;\n  int iStack_19c;\n  int iStack_194;\n  int iStack_150;\n  code *pcStack_14c;\n  undefined1 *puVar28;\n  undefined4 in_stack_ffffff54;\n  u8 aBareword [128];\n  \n  puVar2 = PTR___stack_chk_guard_0015ca30;\n  puVar28 = &_gp;\n  iVar3 = *(int *)PTR___stack_chk_guard_0015ca30;\n  pbVar17 = (byte *)pbQuoted;\n  iVar4 = (*(code *)PTR_strlen_0015c9c8)(zIn);\n  pcVar14 = (char *)(iVar4 + 1);\n  pcVar5 = (char *)sqlite3_malloc64(CONCAT44(puVar28,in_stack_ffffff54));\n  *pbQuoted = 0;\n  *pzOut = (char *)0x0;\n  if (pcVar5 == (char *)0x0) {\n    pcVar26 = *(code **)(puVar28 + -0x7fc4);\n    *pRc = 7;\n    (*pcVar26)(0);\n    pcVar6 = (char *)0x0;\n    iStack_194 = in_stack_fffffe50;\n    goto LAB_000530c4;\n  }\n  pcVar14 = zIn;\n  (**(code **)(puVar28 + -0x7b7c))(pcVar5,zIn,(char *)(iVar4 + 1));\n  cVar1 = *pcVar5;\n  if ((((cVar1 == '\"') || (cVar1 == '\'')) || (cVar1 == '[')) ||\n     (iVar4 = *(int *)(puVar28 + -0x7fbc), cVar1 == '`')) {\n    iVar4 = (*(code *)(*(int *)(puVar28 + -0x7f44) + 0x4688))(pcVar5);\n    pcVar6 = zIn + iVar4;\n    *pbQuoted = 1;\n    if (pcVar6 == (char *)0x0) goto LAB_0005311c;\n  }\n  else {\n    iVar19 = *(int *)(puVar28 + -0x7fbc);\n    pcVar6 = zIn;\n    while( true ) {\n      cVar1 = *pcVar6;\n      puVar10 = (undefined4 *)(iVar4 + 0xf68);\n      puVar12 = aBareword;\n      do {\n        puVar11 = puVar10 + 4;\n        *(undefined4 *)puVar12 = *puVar10;\n        pbVar17 = (byte *)puVar10[1];\n        uVar15 = puVar10[2];\n        pcVar14 = (char *)puVar10[3];\n        *(byte **)(puVar12 + 4) = pbVar17;\n        *(undefined4 *)(puVar12 + 8) = uVar15;\n        *(char **)(puVar12 + 0xc) = pcVar14;\n        puVar10 = puVar11;\n        puVar12 = puVar12 + 0x10;\n      } while (puVar11 != (undefined4 *)(iVar19 + 0xfe8));\n      if ((-1 < cVar1) && (aBareword[cVar1] == '\0')) break;\n      pcVar6 = pcVar6 + 1;\n    }\n    if (zIn == pcVar6) {\nLAB_0005311c:\n      (**(code **)(puVar28 + -0x7fc4))(pcVar5);\n      pcVar6 = (char *)0x0;\n      iStack_194 = in_stack_fffffe50;\n      goto LAB_000530c4;\n    }\n    pcVar5[(int)pcVar6 - (int)zIn] = '\0';\n  }\n  *pzOut = pcVar5;\n  iStack_194 = in_stack_fffffe50;\nLAB_000530c4:\n  if (iVar3 == *(int *)puVar2) {\n    return pcVar6;\n  }\n  pcVar26 = *(code **)(puVar28 + -0x7b9c);\n  (*pcVar26)();\n  p = (Unicode61Tokenizer *)**(int **)(pcVar26 + 0x1098c8);\n  if (0 < (int)puVar28) {\n    pcVar14 = (char *)FUN_000531e8();\n    return pcVar14;\n  }\n  if (p == (Unicode61Tokenizer *)**(int **)(pcVar26 + 0x1098c8)) {\n    return (char *)0x0;\n  }\n  pcVar26 = *(code **)(pcVar26 + 0x1098ac);\n  (*pcVar26)();\n  iStack_19c = p->nFold;\n  iVar4 = *(int *)(pcVar26 + 0x1092d0);\n  pbVar21 = (byte *)p->aFold;\n  iVar3 = *(int *)(pcVar26 + 0x1092a4);\n  pbVar24 = pbVar21 + iStack_19c + -6;\n  pbVar25 = pbVar17 + iStack_150;\n  pbVar27 = pbVar17;\nLAB_00053480:\n  iVar19 = iStack_194;\n  if (pbVar25 <= pbVar27) {\n    return (char *)0x0;\n  }\n  do {\n    bVar9 = *pbVar27;\n    uVar20 = (uint)bVar9;\n    pbVar22 = pbVar27 + 1;\n    pbVar18 = pbVar21;\n    if ((char)bVar9 < '\0') {\n      if (0xbf < uVar20) {\n        uVar20 = (uint)*(byte *)(uVar20 + iVar3 + -0x73b4 + -0xc0);\n        if ((pbVar25 == pbVar22) || (uVar8 = (uint)pbVar27[1], (uVar8 & 0xc0) != 0x80)) {\n          if (uVar20 < 0x80) {\n            uVar20 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pbVar22 = pbVar22 + 1;\n            uVar20 = (uVar8 & 0x3f) + uVar20 * 0x40;\n            if (pbVar25 == pbVar22) break;\n            uVar8 = (uint)*pbVar22;\n          } while ((uVar8 & 0xffffffc0) == 0x80);\n          if (((uVar20 < 0x80) || ((uVar20 & 0xfffff800) == 0xd800)) ||\n             ((uVar20 & 0xfffffffe) == 0xfffe)) {\n            uVar20 = 0xfffd;\n          }\n        }\n      }\n      iVar7 = fts5UnicodeIsAlnum(p,uVar20);\n      if (iVar7 != 0) break;\n    }\n    else {\n      iStack_194 = (int)pbVar27 - (int)pbVar17;\n      if (p->aTokenChar[uVar20] != '\0') goto LAB_000535b0;\n    }\n    pbVar27 = pbVar22;\n    if (pbVar25 <= pbVar22) goto LAB_00053644;\n  } while( true );\n  iStack_194 = (int)pbVar27 - (int)pbVar17;\n  do {\n    while( true ) {\n      uVar20 = (*(code *)(iVar4 + 0x2d68))(uVar20,p->eRemoveDiacritic);\n      pbVar23 = pbVar22;\n      if (uVar20 != 0) {\n        if (uVar20 < 0x80) {\n          *pbVar18 = (byte)uVar20;\n          pbVar18 = pbVar18 + 1;\n        }\n        else {\n          bVar16 = ((byte)uVar20 & 0x3f) + 0x80;\n          bVar9 = (byte)((uVar20 << 0x12) >> 0x18);\n          if (uVar20 < 0x800) {\n            pbVar18[1] = bVar16;\n            *pbVar18 = bVar9 - 0x40;\n            pbVar18 = pbVar18 + 2;\n          }\n          else {\n            bVar13 = (bVar9 & 0x3f) + 0x80;\n            bVar9 = (byte)((uVar20 << 0xc) >> 0x18);\n            if (uVar20 < 0x10000) {\n              pbVar18[1] = bVar13;\n              pbVar18[2] = bVar16;\n              *pbVar18 = bVar9 - 0x20;\n              pbVar18 = pbVar18 + 3;\n            }\n            else {\n              pbVar18[2] = bVar13;\n              pbVar18[3] = bVar16;\n              *pbVar18 = (byte)((uVar20 << 0xb) >> 0x1d) - 0x10;\n              pbVar18[1] = (bVar9 & 0x3f) + 0x80;\n              pbVar18 = pbVar18 + 4;\n            }\n          }\n        }\n      }\n      while( true ) {\n        pbVar27 = pbVar23;\n        if (pbVar25 <= pbVar23) goto LAB_00053608;\n        if (pbVar24 < pbVar18) {\n          iVar7 = iStack_19c * 2;\n          pbVar21 = (byte *)sqlite3_malloc64(CONCAT44(iVar19,in_stack_fffffe54));\n          if (pbVar21 == (byte *)0x0) {\n            return &DAT_00000007;\n          }\n          pbVar18 = pbVar21 + ((int)pbVar18 - (int)p->aFold);\n          (**(code **)(pcVar26 + 0x109640))(pbVar21,p->aFold,iStack_19c);\n          (**(code **)(pcVar26 + 0x1091f8))(p->aFold);\n          pbVar24 = pbVar21 + iVar7 + -6;\n          p->aFold = (char *)pbVar21;\n          p->nFold = iVar7;\n          iStack_19c = iVar7;\n        }\n        bVar9 = *pbVar23;\n        uVar20 = (uint)bVar9;\n        if ((char)bVar9 < '\0') break;\n        if (p->aTokenChar[uVar20] == '\0') goto LAB_00053608;\n        pbVar22 = pbVar23 + 1;\nLAB_000535b0:\n        if (uVar20 - 0x41 < 0x1a) {\n          bVar9 = (char)uVar20 + 0x20;\n        }\n        *pbVar18 = bVar9;\n        pbVar18 = pbVar18 + 1;\n        pbVar23 = pbVar22;\n      }\n      pbVar22 = pbVar23 + 1;\n      if (uVar20 < 0xc0) break;\n      uVar20 = (uint)*(byte *)(uVar20 + iVar3 + -0x73b4 + -0xc0);\n      if ((pbVar25 == pbVar22) || (uVar8 = (uint)pbVar23[1], (uVar8 & 0xc0) != 0x80)) {\n        if (uVar20 < 0x80) goto LAB_00053748;\n      }\n      else {\n        do {\n          pbVar22 = pbVar22 + 1;\n          uVar20 = (uVar8 & 0x3f) + uVar20 * 0x40;\n          if (pbVar25 == pbVar22) break;\n          uVar8 = (uint)*pbVar22;\n        } while ((uVar8 & 0xffffffc0) == 0x80);\n        if (((uVar20 < 0x80) || ((uVar20 & 0xfffff800) == 0xd800)) ||\n           ((uVar20 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar7 = fts5UnicodeIsAlnum(p,0xfffd);\n          uVar20 = 0xfffd;\n          goto joined_r0x00053764;\n        }\n      }\n      iVar7 = fts5UnicodeIsAlnum(p,uVar20);\n      if ((iVar7 == 0) &&\n         ((pbVar27 = pbVar22, 0x31 < uVar20 - 0x300 ||\n          (iVar7 = sqlite3FtsUnicodeIsdiacritic(uVar20), iVar7 == 0)))) goto LAB_00053608;\n    }\n    iVar7 = fts5UnicodeIsAlnum(p,uVar20);\njoined_r0x00053764:\n    pbVar27 = pbVar22;\n  } while (iVar7 != 0);\nLAB_00053608:\n  in_stack_fffffe54 = (int)pbVar23 - (int)pbVar17;\n  pcVar5 = (char *)(*pcStack_14c)(pcVar14,0,pbVar21,(int)pbVar18 - (int)pbVar21);\n  if (pcVar5 != (char *)0x0) {\n    if (pcVar5 == (char *)0x65) {\nLAB_00053644:\n      pcVar5 = (char *)0x0;\n    }\n    return pcVar5;\n  }\n  goto LAB_00053480;\n}\n\n" (function_definition "char * fts5ConfigGobbleWord(int *pRc,char *zIn,char **pzOut,int *pbQuoted)\n\n{\n  char cVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  char *pcVar5;\n  char *pcVar6;\n  Unicode61Tokenizer *p;\n  int iVar7;\n  byte bVar9;\n  uint uVar8;\n  undefined4 *puVar10;\n  undefined4 *puVar11;\n  u8 *puVar12;\n  byte bVar13;\n  char *pcVar14;\n  undefined4 uVar15;\n  byte bVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  int iVar19;\n  uint uVar20;\n  byte *pbVar21;\n  byte *pbVar22;\n  byte *pbVar23;\n  byte *pbVar24;\n  byte *pbVar25;\n  code *pcVar26;\n  byte *pbVar27;\n  int in_stack_fffffe50;\n  int in_stack_fffffe54;\n  int iStack_19c;\n  int iStack_194;\n  int iStack_150;\n  code *pcStack_14c;\n  undefined1 *puVar28;\n  undefined4 in_stack_ffffff54;\n  u8 aBareword [128];\n  \n  puVar2 = PTR___stack_chk_guard_0015ca30;\n  puVar28 = &_gp;\n  iVar3 = *(int *)PTR___stack_chk_guard_0015ca30;\n  pbVar17 = (byte *)pbQuoted;\n  iVar4 = (*(code *)PTR_strlen_0015c9c8)(zIn);\n  pcVar14 = (char *)(iVar4 + 1);\n  pcVar5 = (char *)sqlite3_malloc64(CONCAT44(puVar28,in_stack_ffffff54));\n  *pbQuoted = 0;\n  *pzOut = (char *)0x0;\n  if (pcVar5 == (char *)0x0) {\n    pcVar26 = *(code **)(puVar28 + -0x7fc4);\n    *pRc = 7;\n    (*pcVar26)(0);\n    pcVar6 = (char *)0x0;\n    iStack_194 = in_stack_fffffe50;\n    goto LAB_000530c4;\n  }\n  pcVar14 = zIn;\n  (**(code **)(puVar28 + -0x7b7c))(pcVar5,zIn,(char *)(iVar4 + 1));\n  cVar1 = *pcVar5;\n  if ((((cVar1 == '\"') || (cVar1 == '\'')) || (cVar1 == '[')) ||\n     (iVar4 = *(int *)(puVar28 + -0x7fbc), cVar1 == '`')) {\n    iVar4 = (*(code *)(*(int *)(puVar28 + -0x7f44) + 0x4688))(pcVar5);\n    pcVar6 = zIn + iVar4;\n    *pbQuoted = 1;\n    if (pcVar6 == (char *)0x0) goto LAB_0005311c;\n  }\n  else {\n    iVar19 = *(int *)(puVar28 + -0x7fbc);\n    pcVar6 = zIn;\n    while( true ) {\n      cVar1 = *pcVar6;\n      puVar10 = (undefined4 *)(iVar4 + 0xf68);\n      puVar12 = aBareword;\n      do {\n        puVar11 = puVar10 + 4;\n        *(undefined4 *)puVar12 = *puVar10;\n        pbVar17 = (byte *)puVar10[1];\n        uVar15 = puVar10[2];\n        pcVar14 = (char *)puVar10[3];\n        *(byte **)(puVar12 + 4) = pbVar17;\n        *(undefined4 *)(puVar12 + 8) = uVar15;\n        *(char **)(puVar12 + 0xc) = pcVar14;\n        puVar10 = puVar11;\n        puVar12 = puVar12 + 0x10;\n      } while (puVar11 != (undefined4 *)(iVar19 + 0xfe8));\n      if ((-1 < cVar1) && (aBareword[cVar1] == '\0')) break;\n      pcVar6 = pcVar6 + 1;\n    }\n    if (zIn == pcVar6) {\nLAB_0005311c:\n      (**(code **)(puVar28 + -0x7fc4))(pcVar5);\n      pcVar6 = (char *)0x0;\n      iStack_194 = in_stack_fffffe50;\n      goto LAB_000530c4;\n    }\n    pcVar5[(int)pcVar6 - (int)zIn] = '\0';\n  }\n  *pzOut = pcVar5;\n  iStack_194 = in_stack_fffffe50;\nLAB_000530c4:\n  if (iVar3 == *(int *)puVar2) {\n    return pcVar6;\n  }\n  pcVar26 = *(code **)(puVar28 + -0x7b9c);\n  (*pcVar26)();\n  p = (Unicode61Tokenizer *)**(int **)(pcVar26 + 0x1098c8);\n  if (0 < (int)puVar28) {\n    pcVar14 = (char *)FUN_000531e8();\n    return pcVar14;\n  }\n  if (p == (Unicode61Tokenizer *)**(int **)(pcVar26 + 0x1098c8)) {\n    return (char *)0x0;\n  }\n  pcVar26 = *(code **)(pcVar26 + 0x1098ac);\n  (*pcVar26)();\n  iStack_19c = p->nFold;\n  iVar4 = *(int *)(pcVar26 + 0x1092d0);\n  pbVar21 = (byte *)p->aFold;\n  iVar3 = *(int *)(pcVar26 + 0x1092a4);\n  pbVar24 = pbVar21 + iStack_19c + -6;\n  pbVar25 = pbVar17 + iStack_150;\n  pbVar27 = pbVar17;\nLAB_00053480:\n  iVar19 = iStack_194;\n  if (pbVar25 <= pbVar27) {\n    return (char *)0x0;\n  }\n  do {\n    bVar9 = *pbVar27;\n    uVar20 = (uint)bVar9;\n    pbVar22 = pbVar27 + 1;\n    pbVar18 = pbVar21;\n    if ((char)bVar9 < '\0') {\n      if (0xbf < uVar20) {\n        uVar20 = (uint)*(byte *)(uVar20 + iVar3 + -0x73b4 + -0xc0);\n        if ((pbVar25 == pbVar22) || (uVar8 = (uint)pbVar27[1], (uVar8 & 0xc0) != 0x80)) {\n          if (uVar20 < 0x80) {\n            uVar20 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pbVar22 = pbVar22 + 1;\n            uVar20 = (uVar8 & 0x3f) + uVar20 * 0x40;\n            if (pbVar25 == pbVar22) break;\n            uVar8 = (uint)*pbVar22;\n          } while ((uVar8 & 0xffffffc0) == 0x80);\n          if (((uVar20 < 0x80) || ((uVar20 & 0xfffff800) == 0xd800)) ||\n             ((uVar20 & 0xfffffffe) == 0xfffe)) {\n            uVar20 = 0xfffd;\n          }\n        }\n      }\n      iVar7 = fts5UnicodeIsAlnum(p,uVar20);\n      if (iVar7 != 0) break;\n    }\n    else {\n      iStack_194 = (int)pbVar27 - (int)pbVar17;\n      if (p->aTokenChar[uVar20] != '\0') goto LAB_000535b0;\n    }\n    pbVar27 = pbVar22;\n    if (pbVar25 <= pbVar22) goto LAB_00053644;\n  } while( true );\n  iStack_194 = (int)pbVar27 - (int)pbVar17;\n  do {\n    while( true ) {\n      uVar20 = (*(code *)(iVar4 + 0x2d68))(uVar20,p->eRemoveDiacritic);\n      pbVar23 = pbVar22;\n      if (uVar20 != 0) {\n        if (uVar20 < 0x80) {\n          *pbVar18 = (byte)uVar20;\n          pbVar18 = pbVar18 + 1;\n        }\n        else {\n          bVar16 = ((byte)uVar20 & 0x3f) + 0x80;\n          bVar9 = (byte)((uVar20 << 0x12) >> 0x18);\n          if (uVar20 < 0x800) {\n            pbVar18[1] = bVar16;\n            *pbVar18 = bVar9 - 0x40;\n            pbVar18 = pbVar18 + 2;\n          }\n          else {\n            bVar13 = (bVar9 & 0x3f) + 0x80;\n            bVar9 = (byte)((uVar20 << 0xc) >> 0x18);\n            if (uVar20 < 0x10000) {\n              pbVar18[1] = bVar13;\n              pbVar18[2] = bVar16;\n              *pbVar18 = bVar9 - 0x20;\n              pbVar18 = pbVar18 + 3;\n            }\n            else {\n              pbVar18[2] = bVar13;\n              pbVar18[3] = bVar16;\n              *pbVar18 = (byte)((uVar20 << 0xb) >> 0x1d) - 0x10;\n              pbVar18[1] = (bVar9 & 0x3f) + 0x80;\n              pbVar18 = pbVar18 + 4;\n            }\n          }\n        }\n      }\n      while( true ) {\n        pbVar27 = pbVar23;\n        if (pbVar25 <= pbVar23) goto LAB_00053608;\n        if (pbVar24 < pbVar18) {\n          iVar7 = iStack_19c * 2;\n          pbVar21 = (byte *)sqlite3_malloc64(CONCAT44(iVar19,in_stack_fffffe54));\n          if (pbVar21 == (byte *)0x0) {\n            return &DAT_00000007;\n          }\n          pbVar18 = pbVar21 + ((int)pbVar18 - (int)p->aFold);\n          (**(code **)(pcVar26 + 0x109640))(pbVar21,p->aFold,iStack_19c);\n          (**(code **)(pcVar26 + 0x1091f8))(p->aFold);\n          pbVar24 = pbVar21 + iVar7 + -6;\n          p->aFold = (char *)pbVar21;\n          p->nFold = iVar7;\n          iStack_19c = iVar7;\n        }\n        bVar9 = *pbVar23;\n        uVar20 = (uint)bVar9;\n        if ((char)bVar9 < '\0') break;\n        if (p->aTokenChar[uVar20] == '\0') goto LAB_00053608;\n        pbVar22 = pbVar23 + 1;\nLAB_000535b0:\n        if (uVar20 - 0x41 < 0x1a) {\n          bVar9 = (char)uVar20 + 0x20;\n        }\n        *pbVar18 = bVar9;\n        pbVar18 = pbVar18 + 1;\n        pbVar23 = pbVar22;\n      }\n      pbVar22 = pbVar23 + 1;\n      if (uVar20 < 0xc0) break;\n      uVar20 = (uint)*(byte *)(uVar20 + iVar3 + -0x73b4 + -0xc0);\n      if ((pbVar25 == pbVar22) || (uVar8 = (uint)pbVar23[1], (uVar8 & 0xc0) != 0x80)) {\n        if (uVar20 < 0x80) goto LAB_00053748;\n      }\n      else {\n        do {\n          pbVar22 = pbVar22 + 1;\n          uVar20 = (uVar8 & 0x3f) + uVar20 * 0x40;\n          if (pbVar25 == pbVar22) break;\n          uVar8 = (uint)*pbVar22;\n        } while ((uVar8 & 0xffffffc0) == 0x80);\n        if (((uVar20 < 0x80) || ((uVar20 & 0xfffff800) == 0xd800)) ||\n           ((uVar20 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar7 = fts5UnicodeIsAlnum(p,0xfffd);\n          uVar20 = 0xfffd;\n          goto joined_r0x00053764;\n        }\n      }\n      iVar7 = fts5UnicodeIsAlnum(p,uVar20);\n      if ((iVar7 == 0) &&\n         ((pbVar27 = pbVar22, 0x31 < uVar20 - 0x300 ||\n          (iVar7 = sqlite3FtsUnicodeIsdiacritic(uVar20), iVar7 == 0)))) goto LAB_00053608;\n    }\n    iVar7 = fts5UnicodeIsAlnum(p,uVar20);\njoined_r0x00053764:\n    pbVar27 = pbVar22;\n  } while (iVar7 != 0);\nLAB_00053608:\n  in_stack_fffffe54 = (int)pbVar23 - (int)pbVar17;\n  pcVar5 = (char *)(*pcStack_14c)(pcVar14,0,pbVar21,(int)pbVar18 - (int)pbVar21);\n  if (pcVar5 != (char *)0x0) {\n    if (pcVar5 == (char *)0x65) {\nLAB_00053644:\n      pcVar5 = (char *)0x0;\n    }\n    return pcVar5;\n  }\n  goto LAB_00053480;\n}" primitive_type (pointer_declarator "* fts5ConfigGobbleWord(int *pRc,char *zIn,char **pzOut,int *pbQuoted)" * (function_declarator "fts5ConfigGobbleWord(int *pRc,char *zIn,char **pzOut,int *pbQuoted)" identifier (parameter_list "(int *pRc,char *zIn,char **pzOut,int *pbQuoted)" ( (parameter_declaration "int *pRc" primitive_type (pointer_declarator "*pRc" * identifier)) , (parameter_declaration "char *zIn" primitive_type (pointer_declarator "*zIn" * identifier)) , (parameter_declaration "char **pzOut" primitive_type (pointer_declarator "**pzOut" * (pointer_declarator "*pzOut" * identifier))) , (parameter_declaration "int *pbQuoted" primitive_type (pointer_declarator "*pbQuoted" * identifier)) )))) (compound_statement "{\n  char cVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  char *pcVar5;\n  char *pcVar6;\n  Unicode61Tokenizer *p;\n  int iVar7;\n  byte bVar9;\n  uint uVar8;\n  undefined4 *puVar10;\n  undefined4 *puVar11;\n  u8 *puVar12;\n  byte bVar13;\n  char *pcVar14;\n  undefined4 uVar15;\n  byte bVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  int iVar19;\n  uint uVar20;\n  byte *pbVar21;\n  byte *pbVar22;\n  byte *pbVar23;\n  byte *pbVar24;\n  byte *pbVar25;\n  code *pcVar26;\n  byte *pbVar27;\n  int in_stack_fffffe50;\n  int in_stack_fffffe54;\n  int iStack_19c;\n  int iStack_194;\n  int iStack_150;\n  code *pcStack_14c;\n  undefined1 *puVar28;\n  undefined4 in_stack_ffffff54;\n  u8 aBareword [128];\n  \n  puVar2 = PTR___stack_chk_guard_0015ca30;\n  puVar28 = &_gp;\n  iVar3 = *(int *)PTR___stack_chk_guard_0015ca30;\n  pbVar17 = (byte *)pbQuoted;\n  iVar4 = (*(code *)PTR_strlen_0015c9c8)(zIn);\n  pcVar14 = (char *)(iVar4 + 1);\n  pcVar5 = (char *)sqlite3_malloc64(CONCAT44(puVar28,in_stack_ffffff54));\n  *pbQuoted = 0;\n  *pzOut = (char *)0x0;\n  if (pcVar5 == (char *)0x0) {\n    pcVar26 = *(code **)(puVar28 + -0x7fc4);\n    *pRc = 7;\n    (*pcVar26)(0);\n    pcVar6 = (char *)0x0;\n    iStack_194 = in_stack_fffffe50;\n    goto LAB_000530c4;\n  }\n  pcVar14 = zIn;\n  (**(code **)(puVar28 + -0x7b7c))(pcVar5,zIn,(char *)(iVar4 + 1));\n  cVar1 = *pcVar5;\n  if ((((cVar1 == '\"') || (cVar1 == '\'')) || (cVar1 == '[')) ||\n     (iVar4 = *(int *)(puVar28 + -0x7fbc), cVar1 == '`')) {\n    iVar4 = (*(code *)(*(int *)(puVar28 + -0x7f44) + 0x4688))(pcVar5);\n    pcVar6 = zIn + iVar4;\n    *pbQuoted = 1;\n    if (pcVar6 == (char *)0x0) goto LAB_0005311c;\n  }\n  else {\n    iVar19 = *(int *)(puVar28 + -0x7fbc);\n    pcVar6 = zIn;\n    while( true ) {\n      cVar1 = *pcVar6;\n      puVar10 = (undefined4 *)(iVar4 + 0xf68);\n      puVar12 = aBareword;\n      do {\n        puVar11 = puVar10 + 4;\n        *(undefined4 *)puVar12 = *puVar10;\n        pbVar17 = (byte *)puVar10[1];\n        uVar15 = puVar10[2];\n        pcVar14 = (char *)puVar10[3];\n        *(byte **)(puVar12 + 4) = pbVar17;\n        *(undefined4 *)(puVar12 + 8) = uVar15;\n        *(char **)(puVar12 + 0xc) = pcVar14;\n        puVar10 = puVar11;\n        puVar12 = puVar12 + 0x10;\n      } while (puVar11 != (undefined4 *)(iVar19 + 0xfe8));\n      if ((-1 < cVar1) && (aBareword[cVar1] == '\0')) break;\n      pcVar6 = pcVar6 + 1;\n    }\n    if (zIn == pcVar6) {\nLAB_0005311c:\n      (**(code **)(puVar28 + -0x7fc4))(pcVar5);\n      pcVar6 = (char *)0x0;\n      iStack_194 = in_stack_fffffe50;\n      goto LAB_000530c4;\n    }\n    pcVar5[(int)pcVar6 - (int)zIn] = '\0';\n  }\n  *pzOut = pcVar5;\n  iStack_194 = in_stack_fffffe50;\nLAB_000530c4:\n  if (iVar3 == *(int *)puVar2) {\n    return pcVar6;\n  }\n  pcVar26 = *(code **)(puVar28 + -0x7b9c);\n  (*pcVar26)();\n  p = (Unicode61Tokenizer *)**(int **)(pcVar26 + 0x1098c8);\n  if (0 < (int)puVar28) {\n    pcVar14 = (char *)FUN_000531e8();\n    return pcVar14;\n  }\n  if (p == (Unicode61Tokenizer *)**(int **)(pcVar26 + 0x1098c8)) {\n    return (char *)0x0;\n  }\n  pcVar26 = *(code **)(pcVar26 + 0x1098ac);\n  (*pcVar26)();\n  iStack_19c = p->nFold;\n  iVar4 = *(int *)(pcVar26 + 0x1092d0);\n  pbVar21 = (byte *)p->aFold;\n  iVar3 = *(int *)(pcVar26 + 0x1092a4);\n  pbVar24 = pbVar21 + iStack_19c + -6;\n  pbVar25 = pbVar17 + iStack_150;\n  pbVar27 = pbVar17;\nLAB_00053480:\n  iVar19 = iStack_194;\n  if (pbVar25 <= pbVar27) {\n    return (char *)0x0;\n  }\n  do {\n    bVar9 = *pbVar27;\n    uVar20 = (uint)bVar9;\n    pbVar22 = pbVar27 + 1;\n    pbVar18 = pbVar21;\n    if ((char)bVar9 < '\0') {\n      if (0xbf < uVar20) {\n        uVar20 = (uint)*(byte *)(uVar20 + iVar3 + -0x73b4 + -0xc0);\n        if ((pbVar25 == pbVar22) || (uVar8 = (uint)pbVar27[1], (uVar8 & 0xc0) != 0x80)) {\n          if (uVar20 < 0x80) {\n            uVar20 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pbVar22 = pbVar22 + 1;\n            uVar20 = (uVar8 & 0x3f) + uVar20 * 0x40;\n            if (pbVar25 == pbVar22) break;\n            uVar8 = (uint)*pbVar22;\n          } while ((uVar8 & 0xffffffc0) == 0x80);\n          if (((uVar20 < 0x80) || ((uVar20 & 0xfffff800) == 0xd800)) ||\n             ((uVar20 & 0xfffffffe) == 0xfffe)) {\n            uVar20 = 0xfffd;\n          }\n        }\n      }\n      iVar7 = fts5UnicodeIsAlnum(p,uVar20);\n      if (iVar7 != 0) break;\n    }\n    else {\n      iStack_194 = (int)pbVar27 - (int)pbVar17;\n      if (p->aTokenChar[uVar20] != '\0') goto LAB_000535b0;\n    }\n    pbVar27 = pbVar22;\n    if (pbVar25 <= pbVar22) goto LAB_00053644;\n  } while( true );\n  iStack_194 = (int)pbVar27 - (int)pbVar17;\n  do {\n    while( true ) {\n      uVar20 = (*(code *)(iVar4 + 0x2d68))(uVar20,p->eRemoveDiacritic);\n      pbVar23 = pbVar22;\n      if (uVar20 != 0) {\n        if (uVar20 < 0x80) {\n          *pbVar18 = (byte)uVar20;\n          pbVar18 = pbVar18 + 1;\n        }\n        else {\n          bVar16 = ((byte)uVar20 & 0x3f) + 0x80;\n          bVar9 = (byte)((uVar20 << 0x12) >> 0x18);\n          if (uVar20 < 0x800) {\n            pbVar18[1] = bVar16;\n            *pbVar18 = bVar9 - 0x40;\n            pbVar18 = pbVar18 + 2;\n          }\n          else {\n            bVar13 = (bVar9 & 0x3f) + 0x80;\n            bVar9 = (byte)((uVar20 << 0xc) >> 0x18);\n            if (uVar20 < 0x10000) {\n              pbVar18[1] = bVar13;\n              pbVar18[2] = bVar16;\n              *pbVar18 = bVar9 - 0x20;\n              pbVar18 = pbVar18 + 3;\n            }\n            else {\n              pbVar18[2] = bVar13;\n              pbVar18[3] = bVar16;\n              *pbVar18 = (byte)((uVar20 << 0xb) >> 0x1d) - 0x10;\n              pbVar18[1] = (bVar9 & 0x3f) + 0x80;\n              pbVar18 = pbVar18 + 4;\n            }\n          }\n        }\n      }\n      while( true ) {\n        pbVar27 = pbVar23;\n        if (pbVar25 <= pbVar23) goto LAB_00053608;\n        if (pbVar24 < pbVar18) {\n          iVar7 = iStack_19c * 2;\n          pbVar21 = (byte *)sqlite3_malloc64(CONCAT44(iVar19,in_stack_fffffe54));\n          if (pbVar21 == (byte *)0x0) {\n            return &DAT_00000007;\n          }\n          pbVar18 = pbVar21 + ((int)pbVar18 - (int)p->aFold);\n          (**(code **)(pcVar26 + 0x109640))(pbVar21,p->aFold,iStack_19c);\n          (**(code **)(pcVar26 + 0x1091f8))(p->aFold);\n          pbVar24 = pbVar21 + iVar7 + -6;\n          p->aFold = (char *)pbVar21;\n          p->nFold = iVar7;\n          iStack_19c = iVar7;\n        }\n        bVar9 = *pbVar23;\n        uVar20 = (uint)bVar9;\n        if ((char)bVar9 < '\0') break;\n        if (p->aTokenChar[uVar20] == '\0') goto LAB_00053608;\n        pbVar22 = pbVar23 + 1;\nLAB_000535b0:\n        if (uVar20 - 0x41 < 0x1a) {\n          bVar9 = (char)uVar20 + 0x20;\n        }\n        *pbVar18 = bVar9;\n        pbVar18 = pbVar18 + 1;\n        pbVar23 = pbVar22;\n      }\n      pbVar22 = pbVar23 + 1;\n      if (uVar20 < 0xc0) break;\n      uVar20 = (uint)*(byte *)(uVar20 + iVar3 + -0x73b4 + -0xc0);\n      if ((pbVar25 == pbVar22) || (uVar8 = (uint)pbVar23[1], (uVar8 & 0xc0) != 0x80)) {\n        if (uVar20 < 0x80) goto LAB_00053748;\n      }\n      else {\n        do {\n          pbVar22 = pbVar22 + 1;\n          uVar20 = (uVar8 & 0x3f) + uVar20 * 0x40;\n          if (pbVar25 == pbVar22) break;\n          uVar8 = (uint)*pbVar22;\n        } while ((uVar8 & 0xffffffc0) == 0x80);\n        if (((uVar20 < 0x80) || ((uVar20 & 0xfffff800) == 0xd800)) ||\n           ((uVar20 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar7 = fts5UnicodeIsAlnum(p,0xfffd);\n          uVar20 = 0xfffd;\n          goto joined_r0x00053764;\n        }\n      }\n      iVar7 = fts5UnicodeIsAlnum(p,uVar20);\n      if ((iVar7 == 0) &&\n         ((pbVar27 = pbVar22, 0x31 < uVar20 - 0x300 ||\n          (iVar7 = sqlite3FtsUnicodeIsdiacritic(uVar20), iVar7 == 0)))) goto LAB_00053608;\n    }\n    iVar7 = fts5UnicodeIsAlnum(p,uVar20);\njoined_r0x00053764:\n    pbVar27 = pbVar22;\n  } while (iVar7 != 0);\nLAB_00053608:\n  in_stack_fffffe54 = (int)pbVar23 - (int)pbVar17;\n  pcVar5 = (char *)(*pcStack_14c)(pcVar14,0,pbVar21,(int)pbVar18 - (int)pbVar21);\n  if (pcVar5 != (char *)0x0) {\n    if (pcVar5 == (char *)0x65) {\nLAB_00053644:\n      pcVar5 = (char *)0x0;\n    }\n    return pcVar5;\n  }\n  goto LAB_00053480;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "Unicode61Tokenizer *p;" type_identifier (pointer_declarator "*p" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "byte bVar9;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "u8 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "byte bVar13;" type_identifier identifier ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "byte bVar16;" type_identifier identifier ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "byte *pbVar23;" type_identifier (pointer_declarator "*pbVar23" * identifier) ;) (declaration "byte *pbVar24;" type_identifier (pointer_declarator "*pbVar24" * identifier) ;) (declaration "byte *pbVar25;" type_identifier (pointer_declarator "*pbVar25" * identifier) ;) (declaration "code *pcVar26;" type_identifier (pointer_declarator "*pcVar26" * identifier) ;) (declaration "byte *pbVar27;" type_identifier (pointer_declarator "*pbVar27" * identifier) ;) (declaration "int in_stack_fffffe50;" primitive_type identifier ;) (declaration "int in_stack_fffffe54;" primitive_type identifier ;) (declaration "int iStack_19c;" primitive_type identifier ;) (declaration "int iStack_194;" primitive_type identifier ;) (declaration "int iStack_150;" primitive_type identifier ;) (declaration "code *pcStack_14c;" type_identifier (pointer_declarator "*pcStack_14c" * identifier) ;) (declaration "undefined1 *puVar28;" type_identifier (pointer_declarator "*puVar28" * identifier) ;) (declaration "undefined4 in_stack_ffffff54;" type_identifier identifier ;) (declaration "u8 aBareword [128];" type_identifier (array_declarator "aBareword [128]" identifier [ number_literal ]) ;) (expression_statement "puVar2 = PTR___stack_chk_guard_0015ca30;" (assignment_expression "puVar2 = PTR___stack_chk_guard_0015ca30" identifier = identifier) ;) (expression_statement "puVar28 = &_gp;" (assignment_expression "puVar28 = &_gp" identifier = (pointer_expression "&_gp" & identifier)) ;) (expression_statement "iVar3 = *(int *)PTR___stack_chk_guard_0015ca30;" (assignment_expression "iVar3 = *(int *)PTR___stack_chk_guard_0015ca30" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0015ca30" * (cast_expression "(int *)PTR___stack_chk_guard_0015ca30" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar17 = (byte *)pbQuoted;" (assignment_expression "pbVar17 = (byte *)pbQuoted" identifier = (cast_expression "(byte *)pbQuoted" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar4 = (*(code *)PTR_strlen_0015c9c8)(zIn);" (assignment_expression "iVar4 = (*(code *)PTR_strlen_0015c9c8)(zIn)" identifier = (call_expression "(*(code *)PTR_strlen_0015c9c8)(zIn)" (parenthesized_expression "(*(code *)PTR_strlen_0015c9c8)" ( (pointer_expression "*(code *)PTR_strlen_0015c9c8" * (cast_expression "(code *)PTR_strlen_0015c9c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(zIn)" ( identifier )))) ;) (expression_statement "pcVar14 = (char *)(iVar4 + 1);" (assignment_expression "pcVar14 = (char *)(iVar4 + 1)" identifier = (cast_expression "(char *)(iVar4 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 1)" ( (binary_expression "iVar4 + 1" identifier + number_literal) )))) ;) (expression_statement "pcVar5 = (char *)sqlite3_malloc64(CONCAT44(puVar28,in_stack_ffffff54));" (assignment_expression "pcVar5 = (char *)sqlite3_malloc64(CONCAT44(puVar28,in_stack_ffffff54))" identifier = (cast_expression "(char *)sqlite3_malloc64(CONCAT44(puVar28,in_stack_ffffff54))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3_malloc64(CONCAT44(puVar28,in_stack_ffffff54))" identifier (argument_list "(CONCAT44(puVar28,in_stack_ffffff54))" ( (call_expression "CONCAT44(puVar28,in_stack_ffffff54)" identifier (argument_list "(puVar28,in_stack_ffffff54)" ( identifier , identifier ))) ))))) ;) (expression_statement "*pbQuoted = 0;" (assignment_expression "*pbQuoted = 0" (pointer_expression "*pbQuoted" * identifier) = number_literal) ;) (expression_statement "*pzOut = (char *)0x0;" (assignment_expression "*pzOut = (char *)0x0" (pointer_expression "*pzOut" * identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pcVar5 == (char *)0x0) {\n    pcVar26 = *(code **)(puVar28 + -0x7fc4);\n    *pRc = 7;\n    (*pcVar26)(0);\n    pcVar6 = (char *)0x0;\n    iStack_194 = in_stack_fffffe50;\n    goto LAB_000530c4;\n  }" if (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar26 = *(code **)(puVar28 + -0x7fc4);\n    *pRc = 7;\n    (*pcVar26)(0);\n    pcVar6 = (char *)0x0;\n    iStack_194 = in_stack_fffffe50;\n    goto LAB_000530c4;\n  }" { (expression_statement "pcVar26 = *(code **)(puVar28 + -0x7fc4);" (assignment_expression "pcVar26 = *(code **)(puVar28 + -0x7fc4)" identifier = (pointer_expression "*(code **)(puVar28 + -0x7fc4)" * (cast_expression "(code **)(puVar28 + -0x7fc4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + -0x7fc4)" ( (binary_expression "puVar28 + -0x7fc4" identifier + number_literal) ))))) ;) (expression_statement "*pRc = 7;" (assignment_expression "*pRc = 7" (pointer_expression "*pRc" * identifier) = number_literal) ;) (expression_statement "(*pcVar26)(0);" (call_expression "(*pcVar26)(0)" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "(0)" ( number_literal ))) ;) (expression_statement "pcVar6 = (char *)0x0;" (assignment_expression "pcVar6 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iStack_194 = in_stack_fffffe50;" (assignment_expression "iStack_194 = in_stack_fffffe50" identifier = identifier) ;) (goto_statement "goto LAB_000530c4;" goto statement_identifier ;) })) (expression_statement "pcVar14 = zIn;" (assignment_expression "pcVar14 = zIn" identifier = identifier) ;) (expression_statement "(**(code **)(puVar28 + -0x7b7c))(pcVar5,zIn,(char *)(iVar4 + 1));" (call_expression "(**(code **)(puVar28 + -0x7b7c))(pcVar5,zIn,(char *)(iVar4 + 1))" (parenthesized_expression "(**(code **)(puVar28 + -0x7b7c))" ( (pointer_expression "**(code **)(puVar28 + -0x7b7c)" * (pointer_expression "*(code **)(puVar28 + -0x7b7c)" * (cast_expression "(code **)(puVar28 + -0x7b7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + -0x7b7c)" ( (binary_expression "puVar28 + -0x7b7c" identifier + number_literal) ))))) )) (argument_list "(pcVar5,zIn,(char *)(iVar4 + 1))" ( identifier , identifier , (cast_expression "(char *)(iVar4 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 1)" ( (binary_expression "iVar4 + 1" identifier + number_literal) ))) ))) ;) (expression_statement "cVar1 = *pcVar5;" (assignment_expression "cVar1 = *pcVar5" identifier = (pointer_expression "*pcVar5" * identifier)) ;) (if_statement "if ((((cVar1 == '\"') || (cVar1 == '\'')) || (cVar1 == '[')) ||\n     (iVar4 = *(int *)(puVar28 + -0x7fbc), cVar1 == '`')) {\n    iVar4 = (*(code *)(*(int *)(puVar28 + -0x7f44) + 0x4688))(pcVar5);\n    pcVar6 = zIn + iVar4;\n    *pbQuoted = 1;\n    if (pcVar6 == (char *)0x0) goto LAB_0005311c;\n  }\n  else {\n    iVar19 = *(int *)(puVar28 + -0x7fbc);\n    pcVar6 = zIn;\n    while( true ) {\n      cVar1 = *pcVar6;\n      puVar10 = (undefined4 *)(iVar4 + 0xf68);\n      puVar12 = aBareword;\n      do {\n        puVar11 = puVar10 + 4;\n        *(undefined4 *)puVar12 = *puVar10;\n        pbVar17 = (byte *)puVar10[1];\n        uVar15 = puVar10[2];\n        pcVar14 = (char *)puVar10[3];\n        *(byte **)(puVar12 + 4) = pbVar17;\n        *(undefined4 *)(puVar12 + 8) = uVar15;\n        *(char **)(puVar12 + 0xc) = pcVar14;\n        puVar10 = puVar11;\n        puVar12 = puVar12 + 0x10;\n      } while (puVar11 != (undefined4 *)(iVar19 + 0xfe8));\n      if ((-1 < cVar1) && (aBareword[cVar1] == '\0')) break;\n      pcVar6 = pcVar6 + 1;\n    }\n    if (zIn == pcVar6) {\nLAB_0005311c:\n      (**(code **)(puVar28 + -0x7fc4))(pcVar5);\n      pcVar6 = (char *)0x0;\n      iStack_194 = in_stack_fffffe50;\n      goto LAB_000530c4;\n    }\n    pcVar5[(int)pcVar6 - (int)zIn] = '\0';\n  }" if (parenthesized_expression "((((cVar1 == '\"') || (cVar1 == '\'')) || (cVar1 == '[')) ||\n     (iVar4 = *(int *)(puVar28 + -0x7fbc), cVar1 == '`'))" ( (binary_expression "(((cVar1 == '\"') || (cVar1 == '\'')) || (cVar1 == '[')) ||\n     (iVar4 = *(int *)(puVar28 + -0x7fbc), cVar1 == '`')" (parenthesized_expression "(((cVar1 == '\"') || (cVar1 == '\'')) || (cVar1 == '['))" ( (binary_expression "((cVar1 == '\"') || (cVar1 == '\'')) || (cVar1 == '[')" (parenthesized_expression "((cVar1 == '\"') || (cVar1 == '\''))" ( (binary_expression "(cVar1 == '\"') || (cVar1 == '\'')" (parenthesized_expression "(cVar1 == '\"')" ( (binary_expression "cVar1 == '\"'" identifier == (char_literal "'\"'" ' escape_sequence ')) )) || (parenthesized_expression "(cVar1 == '\'')" ( (binary_expression "cVar1 == '\''" identifier == (char_literal "'\''" ' escape_sequence ')) ))) )) || (parenthesized_expression "(cVar1 == '[')" ( (binary_expression "cVar1 == '['" identifier == (char_literal "'['" ' character ')) ))) )) || (parenthesized_expression "(iVar4 = *(int *)(puVar28 + -0x7fbc), cVar1 == '`')" ( (comma_expression "iVar4 = *(int *)(puVar28 + -0x7fbc), cVar1 == '`'" (assignment_expression "iVar4 = *(int *)(puVar28 + -0x7fbc)" identifier = (pointer_expression "*(int *)(puVar28 + -0x7fbc)" * (cast_expression "(int *)(puVar28 + -0x7fbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x7fbc)" ( (binary_expression "puVar28 + -0x7fbc" identifier + number_literal) ))))) , (binary_expression "cVar1 == '`'" identifier == (char_literal "'`'" ' character '))) ))) )) (compound_statement "{\n    iVar4 = (*(code *)(*(int *)(puVar28 + -0x7f44) + 0x4688))(pcVar5);\n    pcVar6 = zIn + iVar4;\n    *pbQuoted = 1;\n    if (pcVar6 == (char *)0x0) goto LAB_0005311c;\n  }" { (expression_statement "iVar4 = (*(code *)(*(int *)(puVar28 + -0x7f44) + 0x4688))(pcVar5);" (assignment_expression "iVar4 = (*(code *)(*(int *)(puVar28 + -0x7f44) + 0x4688))(pcVar5)" identifier = (call_expression "(*(code *)(*(int *)(puVar28 + -0x7f44) + 0x4688))(pcVar5)" (parenthesized_expression "(*(code *)(*(int *)(puVar28 + -0x7f44) + 0x4688))" ( (pointer_expression "*(code *)(*(int *)(puVar28 + -0x7f44) + 0x4688)" * (cast_expression "(code *)(*(int *)(puVar28 + -0x7f44) + 0x4688)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar28 + -0x7f44) + 0x4688)" ( (binary_expression "*(int *)(puVar28 + -0x7f44) + 0x4688" (pointer_expression "*(int *)(puVar28 + -0x7f44)" * (cast_expression "(int *)(puVar28 + -0x7f44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x7f44)" ( (binary_expression "puVar28 + -0x7f44" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(pcVar5)" ( identifier )))) ;) (expression_statement "pcVar6 = zIn + iVar4;" (assignment_expression "pcVar6 = zIn + iVar4" identifier = (binary_expression "zIn + iVar4" identifier + identifier)) ;) (expression_statement "*pbQuoted = 1;" (assignment_expression "*pbQuoted = 1" (pointer_expression "*pbQuoted" * identifier) = number_literal) ;) (if_statement "if (pcVar6 == (char *)0x0) goto LAB_0005311c;" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0005311c;" goto statement_identifier ;)) }) (else_clause "else {\n    iVar19 = *(int *)(puVar28 + -0x7fbc);\n    pcVar6 = zIn;\n    while( true ) {\n      cVar1 = *pcVar6;\n      puVar10 = (undefined4 *)(iVar4 + 0xf68);\n      puVar12 = aBareword;\n      do {\n        puVar11 = puVar10 + 4;\n        *(undefined4 *)puVar12 = *puVar10;\n        pbVar17 = (byte *)puVar10[1];\n        uVar15 = puVar10[2];\n        pcVar14 = (char *)puVar10[3];\n        *(byte **)(puVar12 + 4) = pbVar17;\n        *(undefined4 *)(puVar12 + 8) = uVar15;\n        *(char **)(puVar12 + 0xc) = pcVar14;\n        puVar10 = puVar11;\n        puVar12 = puVar12 + 0x10;\n      } while (puVar11 != (undefined4 *)(iVar19 + 0xfe8));\n      if ((-1 < cVar1) && (aBareword[cVar1] == '\0')) break;\n      pcVar6 = pcVar6 + 1;\n    }\n    if (zIn == pcVar6) {\nLAB_0005311c:\n      (**(code **)(puVar28 + -0x7fc4))(pcVar5);\n      pcVar6 = (char *)0x0;\n      iStack_194 = in_stack_fffffe50;\n      goto LAB_000530c4;\n    }\n    pcVar5[(int)pcVar6 - (int)zIn] = '\0';\n  }" else (compound_statement "{\n    iVar19 = *(int *)(puVar28 + -0x7fbc);\n    pcVar6 = zIn;\n    while( true ) {\n      cVar1 = *pcVar6;\n      puVar10 = (undefined4 *)(iVar4 + 0xf68);\n      puVar12 = aBareword;\n      do {\n        puVar11 = puVar10 + 4;\n        *(undefined4 *)puVar12 = *puVar10;\n        pbVar17 = (byte *)puVar10[1];\n        uVar15 = puVar10[2];\n        pcVar14 = (char *)puVar10[3];\n        *(byte **)(puVar12 + 4) = pbVar17;\n        *(undefined4 *)(puVar12 + 8) = uVar15;\n        *(char **)(puVar12 + 0xc) = pcVar14;\n        puVar10 = puVar11;\n        puVar12 = puVar12 + 0x10;\n      } while (puVar11 != (undefined4 *)(iVar19 + 0xfe8));\n      if ((-1 < cVar1) && (aBareword[cVar1] == '\0')) break;\n      pcVar6 = pcVar6 + 1;\n    }\n    if (zIn == pcVar6) {\nLAB_0005311c:\n      (**(code **)(puVar28 + -0x7fc4))(pcVar5);\n      pcVar6 = (char *)0x0;\n      iStack_194 = in_stack_fffffe50;\n      goto LAB_000530c4;\n    }\n    pcVar5[(int)pcVar6 - (int)zIn] = '\0';\n  }" { (expression_statement "iVar19 = *(int *)(puVar28 + -0x7fbc);" (assignment_expression "iVar19 = *(int *)(puVar28 + -0x7fbc)" identifier = (pointer_expression "*(int *)(puVar28 + -0x7fbc)" * (cast_expression "(int *)(puVar28 + -0x7fbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x7fbc)" ( (binary_expression "puVar28 + -0x7fbc" identifier + number_literal) ))))) ;) (expression_statement "pcVar6 = zIn;" (assignment_expression "pcVar6 = zIn" identifier = identifier) ;) (while_statement "while( true ) {\n      cVar1 = *pcVar6;\n      puVar10 = (undefined4 *)(iVar4 + 0xf68);\n      puVar12 = aBareword;\n      do {\n        puVar11 = puVar10 + 4;\n        *(undefined4 *)puVar12 = *puVar10;\n        pbVar17 = (byte *)puVar10[1];\n        uVar15 = puVar10[2];\n        pcVar14 = (char *)puVar10[3];\n        *(byte **)(puVar12 + 4) = pbVar17;\n        *(undefined4 *)(puVar12 + 8) = uVar15;\n        *(char **)(puVar12 + 0xc) = pcVar14;\n        puVar10 = puVar11;\n        puVar12 = puVar12 + 0x10;\n      } while (puVar11 != (undefined4 *)(iVar19 + 0xfe8));\n      if ((-1 < cVar1) && (aBareword[cVar1] == '\0')) break;\n      pcVar6 = pcVar6 + 1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      cVar1 = *pcVar6;\n      puVar10 = (undefined4 *)(iVar4 + 0xf68);\n      puVar12 = aBareword;\n      do {\n        puVar11 = puVar10 + 4;\n        *(undefined4 *)puVar12 = *puVar10;\n        pbVar17 = (byte *)puVar10[1];\n        uVar15 = puVar10[2];\n        pcVar14 = (char *)puVar10[3];\n        *(byte **)(puVar12 + 4) = pbVar17;\n        *(undefined4 *)(puVar12 + 8) = uVar15;\n        *(char **)(puVar12 + 0xc) = pcVar14;\n        puVar10 = puVar11;\n        puVar12 = puVar12 + 0x10;\n      } while (puVar11 != (undefined4 *)(iVar19 + 0xfe8));\n      if ((-1 < cVar1) && (aBareword[cVar1] == '\0')) break;\n      pcVar6 = pcVar6 + 1;\n    }" { (expression_statement "cVar1 = *pcVar6;" (assignment_expression "cVar1 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (expression_statement "puVar10 = (undefined4 *)(iVar4 + 0xf68);" (assignment_expression "puVar10 = (undefined4 *)(iVar4 + 0xf68)" identifier = (cast_expression "(undefined4 *)(iVar4 + 0xf68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xf68)" ( (binary_expression "iVar4 + 0xf68" identifier + number_literal) )))) ;) (expression_statement "puVar12 = aBareword;" (assignment_expression "puVar12 = aBareword" identifier = identifier) ;) (do_statement "do {\n        puVar11 = puVar10 + 4;\n        *(undefined4 *)puVar12 = *puVar10;\n        pbVar17 = (byte *)puVar10[1];\n        uVar15 = puVar10[2];\n        pcVar14 = (char *)puVar10[3];\n        *(byte **)(puVar12 + 4) = pbVar17;\n        *(undefined4 *)(puVar12 + 8) = uVar15;\n        *(char **)(puVar12 + 0xc) = pcVar14;\n        puVar10 = puVar11;\n        puVar12 = puVar12 + 0x10;\n      } while (puVar11 != (undefined4 *)(iVar19 + 0xfe8));" do (compound_statement "{\n        puVar11 = puVar10 + 4;\n        *(undefined4 *)puVar12 = *puVar10;\n        pbVar17 = (byte *)puVar10[1];\n        uVar15 = puVar10[2];\n        pcVar14 = (char *)puVar10[3];\n        *(byte **)(puVar12 + 4) = pbVar17;\n        *(undefined4 *)(puVar12 + 8) = uVar15;\n        *(char **)(puVar12 + 0xc) = pcVar14;\n        puVar10 = puVar11;\n        puVar12 = puVar12 + 0x10;\n      }" { (expression_statement "puVar11 = puVar10 + 4;" (assignment_expression "puVar11 = puVar10 + 4" identifier = (binary_expression "puVar10 + 4" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)puVar12 = *puVar10;" (assignment_expression "*(undefined4 *)puVar12 = *puVar10" (pointer_expression "*(undefined4 *)puVar12" * (cast_expression "(undefined4 *)puVar12" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "pbVar17 = (byte *)puVar10[1];" (assignment_expression "pbVar17 = (byte *)puVar10[1]" identifier = (cast_expression "(byte *)puVar10[1]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar10[1]" identifier [ number_literal ]))) ;) (expression_statement "uVar15 = puVar10[2];" (assignment_expression "uVar15 = puVar10[2]" identifier = (subscript_expression "puVar10[2]" identifier [ number_literal ])) ;) (expression_statement "pcVar14 = (char *)puVar10[3];" (assignment_expression "pcVar14 = (char *)puVar10[3]" identifier = (cast_expression "(char *)puVar10[3]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar10[3]" identifier [ number_literal ]))) ;) (expression_statement "*(byte **)(puVar12 + 4) = pbVar17;" (assignment_expression "*(byte **)(puVar12 + 4) = pbVar17" (pointer_expression "*(byte **)(puVar12 + 4)" * (cast_expression "(byte **)(puVar12 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 4)" ( (binary_expression "puVar12 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar12 + 8) = uVar15;" (assignment_expression "*(undefined4 *)(puVar12 + 8) = uVar15" (pointer_expression "*(undefined4 *)(puVar12 + 8)" * (cast_expression "(undefined4 *)(puVar12 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 8)" ( (binary_expression "puVar12 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(puVar12 + 0xc) = pcVar14;" (assignment_expression "*(char **)(puVar12 + 0xc) = pcVar14" (pointer_expression "*(char **)(puVar12 + 0xc)" * (cast_expression "(char **)(puVar12 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0xc)" ( (binary_expression "puVar12 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar10 = puVar11;" (assignment_expression "puVar10 = puVar11" identifier = identifier) ;) (expression_statement "puVar12 = puVar12 + 0x10;" (assignment_expression "puVar12 = puVar12 + 0x10" identifier = (binary_expression "puVar12 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar11 != (undefined4 *)(iVar19 + 0xfe8))" ( (binary_expression "puVar11 != (undefined4 *)(iVar19 + 0xfe8)" identifier != (cast_expression "(undefined4 *)(iVar19 + 0xfe8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0xfe8)" ( (binary_expression "iVar19 + 0xfe8" identifier + number_literal) )))) )) ;) (if_statement "if ((-1 < cVar1) && (aBareword[cVar1] == '\0')) break;" if (parenthesized_expression "((-1 < cVar1) && (aBareword[cVar1] == '\0'))" ( (binary_expression "(-1 < cVar1) && (aBareword[cVar1] == '\0')" (parenthesized_expression "(-1 < cVar1)" ( (binary_expression "-1 < cVar1" number_literal < identifier) )) && (parenthesized_expression "(aBareword[cVar1] == '\0')" ( (binary_expression "aBareword[cVar1] == '\0'" (subscript_expression "aBareword[cVar1]" identifier [ identifier ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (break_statement "break;" break ;)) (expression_statement "pcVar6 = pcVar6 + 1;" (assignment_expression "pcVar6 = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) })) (if_statement "if (zIn == pcVar6) {\nLAB_0005311c:\n      (**(code **)(puVar28 + -0x7fc4))(pcVar5);\n      pcVar6 = (char *)0x0;\n      iStack_194 = in_stack_fffffe50;\n      goto LAB_000530c4;\n    }" if (parenthesized_expression "(zIn == pcVar6)" ( (binary_expression "zIn == pcVar6" identifier == identifier) )) (compound_statement "{\nLAB_0005311c:\n      (**(code **)(puVar28 + -0x7fc4))(pcVar5);\n      pcVar6 = (char *)0x0;\n      iStack_194 = in_stack_fffffe50;\n      goto LAB_000530c4;\n    }" { (labeled_statement "LAB_0005311c:\n      (**(code **)(puVar28 + -0x7fc4))(pcVar5);" statement_identifier : (expression_statement "(**(code **)(puVar28 + -0x7fc4))(pcVar5);" (call_expression "(**(code **)(puVar28 + -0x7fc4))(pcVar5)" (parenthesized_expression "(**(code **)(puVar28 + -0x7fc4))" ( (pointer_expression "**(code **)(puVar28 + -0x7fc4)" * (pointer_expression "*(code **)(puVar28 + -0x7fc4)" * (cast_expression "(code **)(puVar28 + -0x7fc4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + -0x7fc4)" ( (binary_expression "puVar28 + -0x7fc4" identifier + number_literal) ))))) )) (argument_list "(pcVar5)" ( identifier ))) ;)) (expression_statement "pcVar6 = (char *)0x0;" (assignment_expression "pcVar6 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iStack_194 = in_stack_fffffe50;" (assignment_expression "iStack_194 = in_stack_fffffe50" identifier = identifier) ;) (goto_statement "goto LAB_000530c4;" goto statement_identifier ;) })) (expression_statement "pcVar5[(int)pcVar6 - (int)zIn] = '\0';" (assignment_expression "pcVar5[(int)pcVar6 - (int)zIn] = '\0'" (subscript_expression "pcVar5[(int)pcVar6 - (int)zIn]" identifier [ (binary_expression "(int)pcVar6 - (int)zIn" (cast_expression "(int)pcVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)zIn" ( (type_descriptor "int" primitive_type) ) identifier)) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) }))) (expression_statement "*pzOut = pcVar5;" (assignment_expression "*pzOut = pcVar5" (pointer_expression "*pzOut" * identifier) = identifier) ;) (expression_statement "iStack_194 = in_stack_fffffe50;" (assignment_expression "iStack_194 = in_stack_fffffe50" identifier = identifier) ;) (labeled_statement "LAB_000530c4:\n  if (iVar3 == *(int *)puVar2) {\n    return pcVar6;\n  }" statement_identifier : (if_statement "if (iVar3 == *(int *)puVar2) {\n    return pcVar6;\n  }" if (parenthesized_expression "(iVar3 == *(int *)puVar2)" ( (binary_expression "iVar3 == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return pcVar6;\n  }" { (return_statement "return pcVar6;" return identifier ;) }))) (expression_statement "pcVar26 = *(code **)(puVar28 + -0x7b9c);" (assignment_expression "pcVar26 = *(code **)(puVar28 + -0x7b9c)" identifier = (pointer_expression "*(code **)(puVar28 + -0x7b9c)" * (cast_expression "(code **)(puVar28 + -0x7b9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + -0x7b9c)" ( (binary_expression "puVar28 + -0x7b9c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar26)();" (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "p = (Unicode61Tokenizer *)**(int **)(pcVar26 + 0x1098c8);" (assignment_expression "p = (Unicode61Tokenizer *)**(int **)(pcVar26 + 0x1098c8)" identifier = (cast_expression "(Unicode61Tokenizer *)**(int **)(pcVar26 + 0x1098c8)" ( (type_descriptor "Unicode61Tokenizer *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcVar26 + 0x1098c8)" * (pointer_expression "*(int **)(pcVar26 + 0x1098c8)" * (cast_expression "(int **)(pcVar26 + 0x1098c8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1098c8)" ( (binary_expression "pcVar26 + 0x1098c8" identifier + number_literal) ))))))) ;) (if_statement "if (0 < (int)puVar28) {\n    pcVar14 = (char *)FUN_000531e8();\n    return pcVar14;\n  }" if (parenthesized_expression "(0 < (int)puVar28)" ( (binary_expression "0 < (int)puVar28" number_literal < (cast_expression "(int)puVar28" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    pcVar14 = (char *)FUN_000531e8();\n    return pcVar14;\n  }" { (expression_statement "pcVar14 = (char *)FUN_000531e8();" (assignment_expression "pcVar14 = (char *)FUN_000531e8()" identifier = (cast_expression "(char *)FUN_000531e8()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000531e8()" identifier (argument_list "()" ( ))))) ;) (return_statement "return pcVar14;" return identifier ;) })) (if_statement "if (p == (Unicode61Tokenizer *)**(int **)(pcVar26 + 0x1098c8)) {\n    return (char *)0x0;\n  }" if (parenthesized_expression "(p == (Unicode61Tokenizer *)**(int **)(pcVar26 + 0x1098c8))" ( (binary_expression "p == (Unicode61Tokenizer *)**(int **)(pcVar26 + 0x1098c8)" identifier == (cast_expression "(Unicode61Tokenizer *)**(int **)(pcVar26 + 0x1098c8)" ( (type_descriptor "Unicode61Tokenizer *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcVar26 + 0x1098c8)" * (pointer_expression "*(int **)(pcVar26 + 0x1098c8)" * (cast_expression "(int **)(pcVar26 + 0x1098c8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1098c8)" ( (binary_expression "pcVar26 + 0x1098c8" identifier + number_literal) ))))))) )) (compound_statement "{\n    return (char *)0x0;\n  }" { (return_statement "return (char *)0x0;" return (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "pcVar26 = *(code **)(pcVar26 + 0x1098ac);" (assignment_expression "pcVar26 = *(code **)(pcVar26 + 0x1098ac)" identifier = (pointer_expression "*(code **)(pcVar26 + 0x1098ac)" * (cast_expression "(code **)(pcVar26 + 0x1098ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1098ac)" ( (binary_expression "pcVar26 + 0x1098ac" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar26)();" (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iStack_19c = p->nFold;" (assignment_expression "iStack_19c = p->nFold" identifier = (field_expression "p->nFold" identifier -> field_identifier)) ;) (expression_statement "iVar4 = *(int *)(pcVar26 + 0x1092d0);" (assignment_expression "iVar4 = *(int *)(pcVar26 + 0x1092d0)" identifier = (pointer_expression "*(int *)(pcVar26 + 0x1092d0)" * (cast_expression "(int *)(pcVar26 + 0x1092d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x1092d0)" ( (binary_expression "pcVar26 + 0x1092d0" identifier + number_literal) ))))) ;) (expression_statement "pbVar21 = (byte *)p->aFold;" (assignment_expression "pbVar21 = (byte *)p->aFold" identifier = (cast_expression "(byte *)p->aFold" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "p->aFold" identifier -> field_identifier))) ;) (expression_statement "iVar3 = *(int *)(pcVar26 + 0x1092a4);" (assignment_expression "iVar3 = *(int *)(pcVar26 + 0x1092a4)" identifier = (pointer_expression "*(int *)(pcVar26 + 0x1092a4)" * (cast_expression "(int *)(pcVar26 + 0x1092a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x1092a4)" ( (binary_expression "pcVar26 + 0x1092a4" identifier + number_literal) ))))) ;) (expression_statement "pbVar24 = pbVar21 + iStack_19c + -6;" (assignment_expression "pbVar24 = pbVar21 + iStack_19c + -6" identifier = (binary_expression "pbVar21 + iStack_19c + -6" (binary_expression "pbVar21 + iStack_19c" identifier + identifier) + number_literal)) ;) (expression_statement "pbVar25 = pbVar17 + iStack_150;" (assignment_expression "pbVar25 = pbVar17 + iStack_150" identifier = (binary_expression "pbVar17 + iStack_150" identifier + identifier)) ;) (expression_statement "pbVar27 = pbVar17;" (assignment_expression "pbVar27 = pbVar17" identifier = identifier) ;) (labeled_statement "LAB_00053480:\n  iVar19 = iStack_194;" statement_identifier : (expression_statement "iVar19 = iStack_194;" (assignment_expression "iVar19 = iStack_194" identifier = identifier) ;)) (if_statement "if (pbVar25 <= pbVar27) {\n    return (char *)0x0;\n  }" if (parenthesized_expression "(pbVar25 <= pbVar27)" ( (binary_expression "pbVar25 <= pbVar27" identifier <= identifier) )) (compound_statement "{\n    return (char *)0x0;\n  }" { (return_statement "return (char *)0x0;" return (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (do_statement "do {\n    bVar9 = *pbVar27;\n    uVar20 = (uint)bVar9;\n    pbVar22 = pbVar27 + 1;\n    pbVar18 = pbVar21;\n    if ((char)bVar9 < '\0') {\n      if (0xbf < uVar20) {\n        uVar20 = (uint)*(byte *)(uVar20 + iVar3 + -0x73b4 + -0xc0);\n        if ((pbVar25 == pbVar22) || (uVar8 = (uint)pbVar27[1], (uVar8 & 0xc0) != 0x80)) {\n          if (uVar20 < 0x80) {\n            uVar20 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pbVar22 = pbVar22 + 1;\n            uVar20 = (uVar8 & 0x3f) + uVar20 * 0x40;\n            if (pbVar25 == pbVar22) break;\n            uVar8 = (uint)*pbVar22;\n          } while ((uVar8 & 0xffffffc0) == 0x80);\n          if (((uVar20 < 0x80) || ((uVar20 & 0xfffff800) == 0xd800)) ||\n             ((uVar20 & 0xfffffffe) == 0xfffe)) {\n            uVar20 = 0xfffd;\n          }\n        }\n      }\n      iVar7 = fts5UnicodeIsAlnum(p,uVar20);\n      if (iVar7 != 0) break;\n    }\n    else {\n      iStack_194 = (int)pbVar27 - (int)pbVar17;\n      if (p->aTokenChar[uVar20] != '\0') goto LAB_000535b0;\n    }\n    pbVar27 = pbVar22;\n    if (pbVar25 <= pbVar22) goto LAB_00053644;\n  } while( true );" do (compound_statement "{\n    bVar9 = *pbVar27;\n    uVar20 = (uint)bVar9;\n    pbVar22 = pbVar27 + 1;\n    pbVar18 = pbVar21;\n    if ((char)bVar9 < '\0') {\n      if (0xbf < uVar20) {\n        uVar20 = (uint)*(byte *)(uVar20 + iVar3 + -0x73b4 + -0xc0);\n        if ((pbVar25 == pbVar22) || (uVar8 = (uint)pbVar27[1], (uVar8 & 0xc0) != 0x80)) {\n          if (uVar20 < 0x80) {\n            uVar20 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pbVar22 = pbVar22 + 1;\n            uVar20 = (uVar8 & 0x3f) + uVar20 * 0x40;\n            if (pbVar25 == pbVar22) break;\n            uVar8 = (uint)*pbVar22;\n          } while ((uVar8 & 0xffffffc0) == 0x80);\n          if (((uVar20 < 0x80) || ((uVar20 & 0xfffff800) == 0xd800)) ||\n             ((uVar20 & 0xfffffffe) == 0xfffe)) {\n            uVar20 = 0xfffd;\n          }\n        }\n      }\n      iVar7 = fts5UnicodeIsAlnum(p,uVar20);\n      if (iVar7 != 0) break;\n    }\n    else {\n      iStack_194 = (int)pbVar27 - (int)pbVar17;\n      if (p->aTokenChar[uVar20] != '\0') goto LAB_000535b0;\n    }\n    pbVar27 = pbVar22;\n    if (pbVar25 <= pbVar22) goto LAB_00053644;\n  }" { (expression_statement "bVar9 = *pbVar27;" (assignment_expression "bVar9 = *pbVar27" identifier = (pointer_expression "*pbVar27" * identifier)) ;) (expression_statement "uVar20 = (uint)bVar9;" (assignment_expression "uVar20 = (uint)bVar9" identifier = (cast_expression "(uint)bVar9" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pbVar22 = pbVar27 + 1;" (assignment_expression "pbVar22 = pbVar27 + 1" identifier = (binary_expression "pbVar27 + 1" identifier + number_literal)) ;) (expression_statement "pbVar18 = pbVar21;" (assignment_expression "pbVar18 = pbVar21" identifier = identifier) ;) (if_statement "if ((char)bVar9 < '\0') {\n      if (0xbf < uVar20) {\n        uVar20 = (uint)*(byte *)(uVar20 + iVar3 + -0x73b4 + -0xc0);\n        if ((pbVar25 == pbVar22) || (uVar8 = (uint)pbVar27[1], (uVar8 & 0xc0) != 0x80)) {\n          if (uVar20 < 0x80) {\n            uVar20 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pbVar22 = pbVar22 + 1;\n            uVar20 = (uVar8 & 0x3f) + uVar20 * 0x40;\n            if (pbVar25 == pbVar22) break;\n            uVar8 = (uint)*pbVar22;\n          } while ((uVar8 & 0xffffffc0) == 0x80);\n          if (((uVar20 < 0x80) || ((uVar20 & 0xfffff800) == 0xd800)) ||\n             ((uVar20 & 0xfffffffe) == 0xfffe)) {\n            uVar20 = 0xfffd;\n          }\n        }\n      }\n      iVar7 = fts5UnicodeIsAlnum(p,uVar20);\n      if (iVar7 != 0) break;\n    }\n    else {\n      iStack_194 = (int)pbVar27 - (int)pbVar17;\n      if (p->aTokenChar[uVar20] != '\0') goto LAB_000535b0;\n    }" if (parenthesized_expression "((char)bVar9 < '\0')" ( (binary_expression "(char)bVar9 < '\0'" (cast_expression "(char)bVar9" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (0xbf < uVar20) {\n        uVar20 = (uint)*(byte *)(uVar20 + iVar3 + -0x73b4 + -0xc0);\n        if ((pbVar25 == pbVar22) || (uVar8 = (uint)pbVar27[1], (uVar8 & 0xc0) != 0x80)) {\n          if (uVar20 < 0x80) {\n            uVar20 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pbVar22 = pbVar22 + 1;\n            uVar20 = (uVar8 & 0x3f) + uVar20 * 0x40;\n            if (pbVar25 == pbVar22) break;\n            uVar8 = (uint)*pbVar22;\n          } while ((uVar8 & 0xffffffc0) == 0x80);\n          if (((uVar20 < 0x80) || ((uVar20 & 0xfffff800) == 0xd800)) ||\n             ((uVar20 & 0xfffffffe) == 0xfffe)) {\n            uVar20 = 0xfffd;\n          }\n        }\n      }\n      iVar7 = fts5UnicodeIsAlnum(p,uVar20);\n      if (iVar7 != 0) break;\n    }" { (if_statement "if (0xbf < uVar20) {\n        uVar20 = (uint)*(byte *)(uVar20 + iVar3 + -0x73b4 + -0xc0);\n        if ((pbVar25 == pbVar22) || (uVar8 = (uint)pbVar27[1], (uVar8 & 0xc0) != 0x80)) {\n          if (uVar20 < 0x80) {\n            uVar20 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pbVar22 = pbVar22 + 1;\n            uVar20 = (uVar8 & 0x3f) + uVar20 * 0x40;\n            if (pbVar25 == pbVar22) break;\n            uVar8 = (uint)*pbVar22;\n          } while ((uVar8 & 0xffffffc0) == 0x80);\n          if (((uVar20 < 0x80) || ((uVar20 & 0xfffff800) == 0xd800)) ||\n             ((uVar20 & 0xfffffffe) == 0xfffe)) {\n            uVar20 = 0xfffd;\n          }\n        }\n      }" if (parenthesized_expression "(0xbf < uVar20)" ( (binary_expression "0xbf < uVar20" number_literal < identifier) )) (compound_statement "{\n        uVar20 = (uint)*(byte *)(uVar20 + iVar3 + -0x73b4 + -0xc0);\n        if ((pbVar25 == pbVar22) || (uVar8 = (uint)pbVar27[1], (uVar8 & 0xc0) != 0x80)) {\n          if (uVar20 < 0x80) {\n            uVar20 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pbVar22 = pbVar22 + 1;\n            uVar20 = (uVar8 & 0x3f) + uVar20 * 0x40;\n            if (pbVar25 == pbVar22) break;\n            uVar8 = (uint)*pbVar22;\n          } while ((uVar8 & 0xffffffc0) == 0x80);\n          if (((uVar20 < 0x80) || ((uVar20 & 0xfffff800) == 0xd800)) ||\n             ((uVar20 & 0xfffffffe) == 0xfffe)) {\n            uVar20 = 0xfffd;\n          }\n        }\n      }" { (expression_statement "uVar20 = (uint)*(byte *)(uVar20 + iVar3 + -0x73b4 + -0xc0);" (assignment_expression "uVar20 = (uint)*(byte *)(uVar20 + iVar3 + -0x73b4 + -0xc0)" identifier = (binary_expression "(uint)*(byte *)(uVar20 + iVar3 + -0x73b4 + -0xc0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(uVar20 + iVar3 + -0x73b4 + -0xc0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar20 + iVar3 + -0x73b4 + -0xc0)" ( (binary_expression "uVar20 + iVar3 + -0x73b4 + -0xc0" (binary_expression "uVar20 + iVar3 + -0x73b4" (binary_expression "uVar20 + iVar3" identifier + identifier) + number_literal) + number_literal) ))))) ;) (if_statement "if ((pbVar25 == pbVar22) || (uVar8 = (uint)pbVar27[1], (uVar8 & 0xc0) != 0x80)) {\n          if (uVar20 < 0x80) {\n            uVar20 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pbVar22 = pbVar22 + 1;\n            uVar20 = (uVar8 & 0x3f) + uVar20 * 0x40;\n            if (pbVar25 == pbVar22) break;\n            uVar8 = (uint)*pbVar22;\n          } while ((uVar8 & 0xffffffc0) == 0x80);\n          if (((uVar20 < 0x80) || ((uVar20 & 0xfffff800) == 0xd800)) ||\n             ((uVar20 & 0xfffffffe) == 0xfffe)) {\n            uVar20 = 0xfffd;\n          }\n        }" if (parenthesized_expression "((pbVar25 == pbVar22) || (uVar8 = (uint)pbVar27[1], (uVar8 & 0xc0) != 0x80))" ( (binary_expression "(pbVar25 == pbVar22) || (uVar8 = (uint)pbVar27[1], (uVar8 & 0xc0) != 0x80)" (parenthesized_expression "(pbVar25 == pbVar22)" ( (binary_expression "pbVar25 == pbVar22" identifier == identifier) )) || (parenthesized_expression "(uVar8 = (uint)pbVar27[1], (uVar8 & 0xc0) != 0x80)" ( (comma_expression "uVar8 = (uint)pbVar27[1], (uVar8 & 0xc0) != 0x80" (assignment_expression "uVar8 = (uint)pbVar27[1]" identifier = (cast_expression "(uint)pbVar27[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar27[1]" identifier [ number_literal ]))) , (binary_expression "(uVar8 & 0xc0) != 0x80" (parenthesized_expression "(uVar8 & 0xc0)" ( (binary_expression "uVar8 & 0xc0" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n          if (uVar20 < 0x80) {\n            uVar20 = 0xfffd;\n          }\n        }" { (if_statement "if (uVar20 < 0x80) {\n            uVar20 = 0xfffd;\n          }" if (parenthesized_expression "(uVar20 < 0x80)" ( (binary_expression "uVar20 < 0x80" identifier < number_literal) )) (compound_statement "{\n            uVar20 = 0xfffd;\n          }" { (expression_statement "uVar20 = 0xfffd;" (assignment_expression "uVar20 = 0xfffd" identifier = number_literal) ;) })) }) (else_clause "else {\n          do {\n            pbVar22 = pbVar22 + 1;\n            uVar20 = (uVar8 & 0x3f) + uVar20 * 0x40;\n            if (pbVar25 == pbVar22) break;\n            uVar8 = (uint)*pbVar22;\n          } while ((uVar8 & 0xffffffc0) == 0x80);\n          if (((uVar20 < 0x80) || ((uVar20 & 0xfffff800) == 0xd800)) ||\n             ((uVar20 & 0xfffffffe) == 0xfffe)) {\n            uVar20 = 0xfffd;\n          }\n        }" else (compound_statement "{\n          do {\n            pbVar22 = pbVar22 + 1;\n            uVar20 = (uVar8 & 0x3f) + uVar20 * 0x40;\n            if (pbVar25 == pbVar22) break;\n            uVar8 = (uint)*pbVar22;\n          } while ((uVar8 & 0xffffffc0) == 0x80);\n          if (((uVar20 < 0x80) || ((uVar20 & 0xfffff800) == 0xd800)) ||\n             ((uVar20 & 0xfffffffe) == 0xfffe)) {\n            uVar20 = 0xfffd;\n          }\n        }" { (do_statement "do {\n            pbVar22 = pbVar22 + 1;\n            uVar20 = (uVar8 & 0x3f) + uVar20 * 0x40;\n            if (pbVar25 == pbVar22) break;\n            uVar8 = (uint)*pbVar22;\n          } while ((uVar8 & 0xffffffc0) == 0x80);" do (compound_statement "{\n            pbVar22 = pbVar22 + 1;\n            uVar20 = (uVar8 & 0x3f) + uVar20 * 0x40;\n            if (pbVar25 == pbVar22) break;\n            uVar8 = (uint)*pbVar22;\n          }" { (expression_statement "pbVar22 = pbVar22 + 1;" (assignment_expression "pbVar22 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) (expression_statement "uVar20 = (uVar8 & 0x3f) + uVar20 * 0x40;" (assignment_expression "uVar20 = (uVar8 & 0x3f) + uVar20 * 0x40" identifier = (binary_expression "(uVar8 & 0x3f) + uVar20 * 0x40" (parenthesized_expression "(uVar8 & 0x3f)" ( (binary_expression "uVar8 & 0x3f" identifier & number_literal) )) + (binary_expression "uVar20 * 0x40" identifier * number_literal))) ;) (if_statement "if (pbVar25 == pbVar22) break;" if (parenthesized_expression "(pbVar25 == pbVar22)" ( (binary_expression "pbVar25 == pbVar22" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar8 = (uint)*pbVar22;" (assignment_expression "uVar8 = (uint)*pbVar22" identifier = (binary_expression "(uint)*pbVar22" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) }) while (parenthesized_expression "((uVar8 & 0xffffffc0) == 0x80)" ( (binary_expression "(uVar8 & 0xffffffc0) == 0x80" (parenthesized_expression "(uVar8 & 0xffffffc0)" ( (binary_expression "uVar8 & 0xffffffc0" identifier & number_literal) )) == number_literal) )) ;) (if_statement "if (((uVar20 < 0x80) || ((uVar20 & 0xfffff800) == 0xd800)) ||\n             ((uVar20 & 0xfffffffe) == 0xfffe)) {\n            uVar20 = 0xfffd;\n          }" if (parenthesized_expression "(((uVar20 < 0x80) || ((uVar20 & 0xfffff800) == 0xd800)) ||\n             ((uVar20 & 0xfffffffe) == 0xfffe))" ( (binary_expression "((uVar20 < 0x80) || ((uVar20 & 0xfffff800) == 0xd800)) ||\n             ((uVar20 & 0xfffffffe) == 0xfffe)" (parenthesized_expression "((uVar20 < 0x80) || ((uVar20 & 0xfffff800) == 0xd800))" ( (binary_expression "(uVar20 < 0x80) || ((uVar20 & 0xfffff800) == 0xd800)" (parenthesized_expression "(uVar20 < 0x80)" ( (binary_expression "uVar20 < 0x80" identifier < number_literal) )) || (parenthesized_expression "((uVar20 & 0xfffff800) == 0xd800)" ( (binary_expression "(uVar20 & 0xfffff800) == 0xd800" (parenthesized_expression "(uVar20 & 0xfffff800)" ( (binary_expression "uVar20 & 0xfffff800" identifier & number_literal) )) == number_literal) ))) )) || (parenthesized_expression "((uVar20 & 0xfffffffe) == 0xfffe)" ( (binary_expression "(uVar20 & 0xfffffffe) == 0xfffe" (parenthesized_expression "(uVar20 & 0xfffffffe)" ( (binary_expression "uVar20 & 0xfffffffe" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n            uVar20 = 0xfffd;\n          }" { (expression_statement "uVar20 = 0xfffd;" (assignment_expression "uVar20 = 0xfffd" identifier = number_literal) ;) })) }))) })) (expression_statement "iVar7 = fts5UnicodeIsAlnum(p,uVar20);" (assignment_expression "iVar7 = fts5UnicodeIsAlnum(p,uVar20)" identifier = (call_expression "fts5UnicodeIsAlnum(p,uVar20)" identifier (argument_list "(p,uVar20)" ( identifier , identifier )))) ;) (if_statement "if (iVar7 != 0) break;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) }) (else_clause "else {\n      iStack_194 = (int)pbVar27 - (int)pbVar17;\n      if (p->aTokenChar[uVar20] != '\0') goto LAB_000535b0;\n    }" else (compound_statement "{\n      iStack_194 = (int)pbVar27 - (int)pbVar17;\n      if (p->aTokenChar[uVar20] != '\0') goto LAB_000535b0;\n    }" { (expression_statement "iStack_194 = (int)pbVar27 - (int)pbVar17;" (assignment_expression "iStack_194 = (int)pbVar27 - (int)pbVar17" identifier = (binary_expression "(int)pbVar27 - (int)pbVar17" (cast_expression "(int)pbVar27" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar17" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (p->aTokenChar[uVar20] != '\0') goto LAB_000535b0;" if (parenthesized_expression "(p->aTokenChar[uVar20] != '\0')" ( (binary_expression "p->aTokenChar[uVar20] != '\0'" (subscript_expression "p->aTokenChar[uVar20]" (field_expression "p->aTokenChar" identifier -> field_identifier) [ identifier ]) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000535b0;" goto statement_identifier ;)) }))) (expression_statement "pbVar27 = pbVar22;" (assignment_expression "pbVar27 = pbVar22" identifier = identifier) ;) (if_statement "if (pbVar25 <= pbVar22) goto LAB_00053644;" if (parenthesized_expression "(pbVar25 <= pbVar22)" ( (binary_expression "pbVar25 <= pbVar22" identifier <= identifier) )) (goto_statement "goto LAB_00053644;" goto statement_identifier ;)) }) while (parenthesized_expression "( true )" ( true )) ;) (expression_statement "iStack_194 = (int)pbVar27 - (int)pbVar17;" (assignment_expression "iStack_194 = (int)pbVar27 - (int)pbVar17" identifier = (binary_expression "(int)pbVar27 - (int)pbVar17" (cast_expression "(int)pbVar27" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar17" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (do_statement "do {\n    while( true ) {\n      uVar20 = (*(code *)(iVar4 + 0x2d68))(uVar20,p->eRemoveDiacritic);\n      pbVar23 = pbVar22;\n      if (uVar20 != 0) {\n        if (uVar20 < 0x80) {\n          *pbVar18 = (byte)uVar20;\n          pbVar18 = pbVar18 + 1;\n        }\n        else {\n          bVar16 = ((byte)uVar20 & 0x3f) + 0x80;\n          bVar9 = (byte)((uVar20 << 0x12) >> 0x18);\n          if (uVar20 < 0x800) {\n            pbVar18[1] = bVar16;\n            *pbVar18 = bVar9 - 0x40;\n            pbVar18 = pbVar18 + 2;\n          }\n          else {\n            bVar13 = (bVar9 & 0x3f) + 0x80;\n            bVar9 = (byte)((uVar20 << 0xc) >> 0x18);\n            if (uVar20 < 0x10000) {\n              pbVar18[1] = bVar13;\n              pbVar18[2] = bVar16;\n              *pbVar18 = bVar9 - 0x20;\n              pbVar18 = pbVar18 + 3;\n            }\n            else {\n              pbVar18[2] = bVar13;\n              pbVar18[3] = bVar16;\n              *pbVar18 = (byte)((uVar20 << 0xb) >> 0x1d) - 0x10;\n              pbVar18[1] = (bVar9 & 0x3f) + 0x80;\n              pbVar18 = pbVar18 + 4;\n            }\n          }\n        }\n      }\n      while( true ) {\n        pbVar27 = pbVar23;\n        if (pbVar25 <= pbVar23) goto LAB_00053608;\n        if (pbVar24 < pbVar18) {\n          iVar7 = iStack_19c * 2;\n          pbVar21 = (byte *)sqlite3_malloc64(CONCAT44(iVar19,in_stack_fffffe54));\n          if (pbVar21 == (byte *)0x0) {\n            return &DAT_00000007;\n          }\n          pbVar18 = pbVar21 + ((int)pbVar18 - (int)p->aFold);\n          (**(code **)(pcVar26 + 0x109640))(pbVar21,p->aFold,iStack_19c);\n          (**(code **)(pcVar26 + 0x1091f8))(p->aFold);\n          pbVar24 = pbVar21 + iVar7 + -6;\n          p->aFold = (char *)pbVar21;\n          p->nFold = iVar7;\n          iStack_19c = iVar7;\n        }\n        bVar9 = *pbVar23;\n        uVar20 = (uint)bVar9;\n        if ((char)bVar9 < '\0') break;\n        if (p->aTokenChar[uVar20] == '\0') goto LAB_00053608;\n        pbVar22 = pbVar23 + 1;\nLAB_000535b0:\n        if (uVar20 - 0x41 < 0x1a) {\n          bVar9 = (char)uVar20 + 0x20;\n        }\n        *pbVar18 = bVar9;\n        pbVar18 = pbVar18 + 1;\n        pbVar23 = pbVar22;\n      }\n      pbVar22 = pbVar23 + 1;\n      if (uVar20 < 0xc0) break;\n      uVar20 = (uint)*(byte *)(uVar20 + iVar3 + -0x73b4 + -0xc0);\n      if ((pbVar25 == pbVar22) || (uVar8 = (uint)pbVar23[1], (uVar8 & 0xc0) != 0x80)) {\n        if (uVar20 < 0x80) goto LAB_00053748;\n      }\n      else {\n        do {\n          pbVar22 = pbVar22 + 1;\n          uVar20 = (uVar8 & 0x3f) + uVar20 * 0x40;\n          if (pbVar25 == pbVar22) break;\n          uVar8 = (uint)*pbVar22;\n        } while ((uVar8 & 0xffffffc0) == 0x80);\n        if (((uVar20 < 0x80) || ((uVar20 & 0xfffff800) == 0xd800)) ||\n           ((uVar20 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar7 = fts5UnicodeIsAlnum(p,0xfffd);\n          uVar20 = 0xfffd;\n          goto joined_r0x00053764;\n        }\n      }\n      iVar7 = fts5UnicodeIsAlnum(p,uVar20);\n      if ((iVar7 == 0) &&\n         ((pbVar27 = pbVar22, 0x31 < uVar20 - 0x300 ||\n          (iVar7 = sqlite3FtsUnicodeIsdiacritic(uVar20), iVar7 == 0)))) goto LAB_00053608;\n    }\n    iVar7 = fts5UnicodeIsAlnum(p,uVar20);\njoined_r0x00053764:\n    pbVar27 = pbVar22;\n  } while (iVar7 != 0);" do (compound_statement "{\n    while( true ) {\n      uVar20 = (*(code *)(iVar4 + 0x2d68))(uVar20,p->eRemoveDiacritic);\n      pbVar23 = pbVar22;\n      if (uVar20 != 0) {\n        if (uVar20 < 0x80) {\n          *pbVar18 = (byte)uVar20;\n          pbVar18 = pbVar18 + 1;\n        }\n        else {\n          bVar16 = ((byte)uVar20 & 0x3f) + 0x80;\n          bVar9 = (byte)((uVar20 << 0x12) >> 0x18);\n          if (uVar20 < 0x800) {\n            pbVar18[1] = bVar16;\n            *pbVar18 = bVar9 - 0x40;\n            pbVar18 = pbVar18 + 2;\n          }\n          else {\n            bVar13 = (bVar9 & 0x3f) + 0x80;\n            bVar9 = (byte)((uVar20 << 0xc) >> 0x18);\n            if (uVar20 < 0x10000) {\n              pbVar18[1] = bVar13;\n              pbVar18[2] = bVar16;\n              *pbVar18 = bVar9 - 0x20;\n              pbVar18 = pbVar18 + 3;\n            }\n            else {\n              pbVar18[2] = bVar13;\n              pbVar18[3] = bVar16;\n              *pbVar18 = (byte)((uVar20 << 0xb) >> 0x1d) - 0x10;\n              pbVar18[1] = (bVar9 & 0x3f) + 0x80;\n              pbVar18 = pbVar18 + 4;\n            }\n          }\n        }\n      }\n      while( true ) {\n        pbVar27 = pbVar23;\n        if (pbVar25 <= pbVar23) goto LAB_00053608;\n        if (pbVar24 < pbVar18) {\n          iVar7 = iStack_19c * 2;\n          pbVar21 = (byte *)sqlite3_malloc64(CONCAT44(iVar19,in_stack_fffffe54));\n          if (pbVar21 == (byte *)0x0) {\n            return &DAT_00000007;\n          }\n          pbVar18 = pbVar21 + ((int)pbVar18 - (int)p->aFold);\n          (**(code **)(pcVar26 + 0x109640))(pbVar21,p->aFold,iStack_19c);\n          (**(code **)(pcVar26 + 0x1091f8))(p->aFold);\n          pbVar24 = pbVar21 + iVar7 + -6;\n          p->aFold = (char *)pbVar21;\n          p->nFold = iVar7;\n          iStack_19c = iVar7;\n        }\n        bVar9 = *pbVar23;\n        uVar20 = (uint)bVar9;\n        if ((char)bVar9 < '\0') break;\n        if (p->aTokenChar[uVar20] == '\0') goto LAB_00053608;\n        pbVar22 = pbVar23 + 1;\nLAB_000535b0:\n        if (uVar20 - 0x41 < 0x1a) {\n          bVar9 = (char)uVar20 + 0x20;\n        }\n        *pbVar18 = bVar9;\n        pbVar18 = pbVar18 + 1;\n        pbVar23 = pbVar22;\n      }\n      pbVar22 = pbVar23 + 1;\n      if (uVar20 < 0xc0) break;\n      uVar20 = (uint)*(byte *)(uVar20 + iVar3 + -0x73b4 + -0xc0);\n      if ((pbVar25 == pbVar22) || (uVar8 = (uint)pbVar23[1], (uVar8 & 0xc0) != 0x80)) {\n        if (uVar20 < 0x80) goto LAB_00053748;\n      }\n      else {\n        do {\n          pbVar22 = pbVar22 + 1;\n          uVar20 = (uVar8 & 0x3f) + uVar20 * 0x40;\n          if (pbVar25 == pbVar22) break;\n          uVar8 = (uint)*pbVar22;\n        } while ((uVar8 & 0xffffffc0) == 0x80);\n        if (((uVar20 < 0x80) || ((uVar20 & 0xfffff800) == 0xd800)) ||\n           ((uVar20 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar7 = fts5UnicodeIsAlnum(p,0xfffd);\n          uVar20 = 0xfffd;\n          goto joined_r0x00053764;\n        }\n      }\n      iVar7 = fts5UnicodeIsAlnum(p,uVar20);\n      if ((iVar7 == 0) &&\n         ((pbVar27 = pbVar22, 0x31 < uVar20 - 0x300 ||\n          (iVar7 = sqlite3FtsUnicodeIsdiacritic(uVar20), iVar7 == 0)))) goto LAB_00053608;\n    }\n    iVar7 = fts5UnicodeIsAlnum(p,uVar20);\njoined_r0x00053764:\n    pbVar27 = pbVar22;\n  }" { (while_statement "while( true ) {\n      uVar20 = (*(code *)(iVar4 + 0x2d68))(uVar20,p->eRemoveDiacritic);\n      pbVar23 = pbVar22;\n      if (uVar20 != 0) {\n        if (uVar20 < 0x80) {\n          *pbVar18 = (byte)uVar20;\n          pbVar18 = pbVar18 + 1;\n        }\n        else {\n          bVar16 = ((byte)uVar20 & 0x3f) + 0x80;\n          bVar9 = (byte)((uVar20 << 0x12) >> 0x18);\n          if (uVar20 < 0x800) {\n            pbVar18[1] = bVar16;\n            *pbVar18 = bVar9 - 0x40;\n            pbVar18 = pbVar18 + 2;\n          }\n          else {\n            bVar13 = (bVar9 & 0x3f) + 0x80;\n            bVar9 = (byte)((uVar20 << 0xc) >> 0x18);\n            if (uVar20 < 0x10000) {\n              pbVar18[1] = bVar13;\n              pbVar18[2] = bVar16;\n              *pbVar18 = bVar9 - 0x20;\n              pbVar18 = pbVar18 + 3;\n            }\n            else {\n              pbVar18[2] = bVar13;\n              pbVar18[3] = bVar16;\n              *pbVar18 = (byte)((uVar20 << 0xb) >> 0x1d) - 0x10;\n              pbVar18[1] = (bVar9 & 0x3f) + 0x80;\n              pbVar18 = pbVar18 + 4;\n            }\n          }\n        }\n      }\n      while( true ) {\n        pbVar27 = pbVar23;\n        if (pbVar25 <= pbVar23) goto LAB_00053608;\n        if (pbVar24 < pbVar18) {\n          iVar7 = iStack_19c * 2;\n          pbVar21 = (byte *)sqlite3_malloc64(CONCAT44(iVar19,in_stack_fffffe54));\n          if (pbVar21 == (byte *)0x0) {\n            return &DAT_00000007;\n          }\n          pbVar18 = pbVar21 + ((int)pbVar18 - (int)p->aFold);\n          (**(code **)(pcVar26 + 0x109640))(pbVar21,p->aFold,iStack_19c);\n          (**(code **)(pcVar26 + 0x1091f8))(p->aFold);\n          pbVar24 = pbVar21 + iVar7 + -6;\n          p->aFold = (char *)pbVar21;\n          p->nFold = iVar7;\n          iStack_19c = iVar7;\n        }\n        bVar9 = *pbVar23;\n        uVar20 = (uint)bVar9;\n        if ((char)bVar9 < '\0') break;\n        if (p->aTokenChar[uVar20] == '\0') goto LAB_00053608;\n        pbVar22 = pbVar23 + 1;\nLAB_000535b0:\n        if (uVar20 - 0x41 < 0x1a) {\n          bVar9 = (char)uVar20 + 0x20;\n        }\n        *pbVar18 = bVar9;\n        pbVar18 = pbVar18 + 1;\n        pbVar23 = pbVar22;\n      }\n      pbVar22 = pbVar23 + 1;\n      if (uVar20 < 0xc0) break;\n      uVar20 = (uint)*(byte *)(uVar20 + iVar3 + -0x73b4 + -0xc0);\n      if ((pbVar25 == pbVar22) || (uVar8 = (uint)pbVar23[1], (uVar8 & 0xc0) != 0x80)) {\n        if (uVar20 < 0x80) goto LAB_00053748;\n      }\n      else {\n        do {\n          pbVar22 = pbVar22 + 1;\n          uVar20 = (uVar8 & 0x3f) + uVar20 * 0x40;\n          if (pbVar25 == pbVar22) break;\n          uVar8 = (uint)*pbVar22;\n        } while ((uVar8 & 0xffffffc0) == 0x80);\n        if (((uVar20 < 0x80) || ((uVar20 & 0xfffff800) == 0xd800)) ||\n           ((uVar20 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar7 = fts5UnicodeIsAlnum(p,0xfffd);\n          uVar20 = 0xfffd;\n          goto joined_r0x00053764;\n        }\n      }\n      iVar7 = fts5UnicodeIsAlnum(p,uVar20);\n      if ((iVar7 == 0) &&\n         ((pbVar27 = pbVar22, 0x31 < uVar20 - 0x300 ||\n          (iVar7 = sqlite3FtsUnicodeIsdiacritic(uVar20), iVar7 == 0)))) goto LAB_00053608;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      uVar20 = (*(code *)(iVar4 + 0x2d68))(uVar20,p->eRemoveDiacritic);\n      pbVar23 = pbVar22;\n      if (uVar20 != 0) {\n        if (uVar20 < 0x80) {\n          *pbVar18 = (byte)uVar20;\n          pbVar18 = pbVar18 + 1;\n        }\n        else {\n          bVar16 = ((byte)uVar20 & 0x3f) + 0x80;\n          bVar9 = (byte)((uVar20 << 0x12) >> 0x18);\n          if (uVar20 < 0x800) {\n            pbVar18[1] = bVar16;\n            *pbVar18 = bVar9 - 0x40;\n            pbVar18 = pbVar18 + 2;\n          }\n          else {\n            bVar13 = (bVar9 & 0x3f) + 0x80;\n            bVar9 = (byte)((uVar20 << 0xc) >> 0x18);\n            if (uVar20 < 0x10000) {\n              pbVar18[1] = bVar13;\n              pbVar18[2] = bVar16;\n              *pbVar18 = bVar9 - 0x20;\n              pbVar18 = pbVar18 + 3;\n            }\n            else {\n              pbVar18[2] = bVar13;\n              pbVar18[3] = bVar16;\n              *pbVar18 = (byte)((uVar20 << 0xb) >> 0x1d) - 0x10;\n              pbVar18[1] = (bVar9 & 0x3f) + 0x80;\n              pbVar18 = pbVar18 + 4;\n            }\n          }\n        }\n      }\n      while( true ) {\n        pbVar27 = pbVar23;\n        if (pbVar25 <= pbVar23) goto LAB_00053608;\n        if (pbVar24 < pbVar18) {\n          iVar7 = iStack_19c * 2;\n          pbVar21 = (byte *)sqlite3_malloc64(CONCAT44(iVar19,in_stack_fffffe54));\n          if (pbVar21 == (byte *)0x0) {\n            return &DAT_00000007;\n          }\n          pbVar18 = pbVar21 + ((int)pbVar18 - (int)p->aFold);\n          (**(code **)(pcVar26 + 0x109640))(pbVar21,p->aFold,iStack_19c);\n          (**(code **)(pcVar26 + 0x1091f8))(p->aFold);\n          pbVar24 = pbVar21 + iVar7 + -6;\n          p->aFold = (char *)pbVar21;\n          p->nFold = iVar7;\n          iStack_19c = iVar7;\n        }\n        bVar9 = *pbVar23;\n        uVar20 = (uint)bVar9;\n        if ((char)bVar9 < '\0') break;\n        if (p->aTokenChar[uVar20] == '\0') goto LAB_00053608;\n        pbVar22 = pbVar23 + 1;\nLAB_000535b0:\n        if (uVar20 - 0x41 < 0x1a) {\n          bVar9 = (char)uVar20 + 0x20;\n        }\n        *pbVar18 = bVar9;\n        pbVar18 = pbVar18 + 1;\n        pbVar23 = pbVar22;\n      }\n      pbVar22 = pbVar23 + 1;\n      if (uVar20 < 0xc0) break;\n      uVar20 = (uint)*(byte *)(uVar20 + iVar3 + -0x73b4 + -0xc0);\n      if ((pbVar25 == pbVar22) || (uVar8 = (uint)pbVar23[1], (uVar8 & 0xc0) != 0x80)) {\n        if (uVar20 < 0x80) goto LAB_00053748;\n      }\n      else {\n        do {\n          pbVar22 = pbVar22 + 1;\n          uVar20 = (uVar8 & 0x3f) + uVar20 * 0x40;\n          if (pbVar25 == pbVar22) break;\n          uVar8 = (uint)*pbVar22;\n        } while ((uVar8 & 0xffffffc0) == 0x80);\n        if (((uVar20 < 0x80) || ((uVar20 & 0xfffff800) == 0xd800)) ||\n           ((uVar20 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar7 = fts5UnicodeIsAlnum(p,0xfffd);\n          uVar20 = 0xfffd;\n          goto joined_r0x00053764;\n        }\n      }\n      iVar7 = fts5UnicodeIsAlnum(p,uVar20);\n      if ((iVar7 == 0) &&\n         ((pbVar27 = pbVar22, 0x31 < uVar20 - 0x300 ||\n          (iVar7 = sqlite3FtsUnicodeIsdiacritic(uVar20), iVar7 == 0)))) goto LAB_00053608;\n    }" { (expression_statement "uVar20 = (*(code *)(iVar4 + 0x2d68))(uVar20,p->eRemoveDiacritic);" (assignment_expression "uVar20 = (*(code *)(iVar4 + 0x2d68))(uVar20,p->eRemoveDiacritic)" identifier = (call_expression "(*(code *)(iVar4 + 0x2d68))(uVar20,p->eRemoveDiacritic)" (parenthesized_expression "(*(code *)(iVar4 + 0x2d68))" ( (pointer_expression "*(code *)(iVar4 + 0x2d68)" * (cast_expression "(code *)(iVar4 + 0x2d68)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2d68)" ( (binary_expression "iVar4 + 0x2d68" identifier + number_literal) )))) )) (argument_list "(uVar20,p->eRemoveDiacritic)" ( identifier , (field_expression "p->eRemoveDiacritic" identifier -> field_identifier) )))) ;) (expression_statement "pbVar23 = pbVar22;" (assignment_expression "pbVar23 = pbVar22" identifier = identifier) ;) (if_statement "if (uVar20 != 0) {\n        if (uVar20 < 0x80) {\n          *pbVar18 = (byte)uVar20;\n          pbVar18 = pbVar18 + 1;\n        }\n        else {\n          bVar16 = ((byte)uVar20 & 0x3f) + 0x80;\n          bVar9 = (byte)((uVar20 << 0x12) >> 0x18);\n          if (uVar20 < 0x800) {\n            pbVar18[1] = bVar16;\n            *pbVar18 = bVar9 - 0x40;\n            pbVar18 = pbVar18 + 2;\n          }\n          else {\n            bVar13 = (bVar9 & 0x3f) + 0x80;\n            bVar9 = (byte)((uVar20 << 0xc) >> 0x18);\n            if (uVar20 < 0x10000) {\n              pbVar18[1] = bVar13;\n              pbVar18[2] = bVar16;\n              *pbVar18 = bVar9 - 0x20;\n              pbVar18 = pbVar18 + 3;\n            }\n            else {\n              pbVar18[2] = bVar13;\n              pbVar18[3] = bVar16;\n              *pbVar18 = (byte)((uVar20 << 0xb) >> 0x1d) - 0x10;\n              pbVar18[1] = (bVar9 & 0x3f) + 0x80;\n              pbVar18 = pbVar18 + 4;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(uVar20 != 0)" ( (binary_expression "uVar20 != 0" identifier != number_literal) )) (compound_statement "{\n        if (uVar20 < 0x80) {\n          *pbVar18 = (byte)uVar20;\n          pbVar18 = pbVar18 + 1;\n        }\n        else {\n          bVar16 = ((byte)uVar20 & 0x3f) + 0x80;\n          bVar9 = (byte)((uVar20 << 0x12) >> 0x18);\n          if (uVar20 < 0x800) {\n            pbVar18[1] = bVar16;\n            *pbVar18 = bVar9 - 0x40;\n            pbVar18 = pbVar18 + 2;\n          }\n          else {\n            bVar13 = (bVar9 & 0x3f) + 0x80;\n            bVar9 = (byte)((uVar20 << 0xc) >> 0x18);\n            if (uVar20 < 0x10000) {\n              pbVar18[1] = bVar13;\n              pbVar18[2] = bVar16;\n              *pbVar18 = bVar9 - 0x20;\n              pbVar18 = pbVar18 + 3;\n            }\n            else {\n              pbVar18[2] = bVar13;\n              pbVar18[3] = bVar16;\n              *pbVar18 = (byte)((uVar20 << 0xb) >> 0x1d) - 0x10;\n              pbVar18[1] = (bVar9 & 0x3f) + 0x80;\n              pbVar18 = pbVar18 + 4;\n            }\n          }\n        }\n      }" { (if_statement "if (uVar20 < 0x80) {\n          *pbVar18 = (byte)uVar20;\n          pbVar18 = pbVar18 + 1;\n        }\n        else {\n          bVar16 = ((byte)uVar20 & 0x3f) + 0x80;\n          bVar9 = (byte)((uVar20 << 0x12) >> 0x18);\n          if (uVar20 < 0x800) {\n            pbVar18[1] = bVar16;\n            *pbVar18 = bVar9 - 0x40;\n            pbVar18 = pbVar18 + 2;\n          }\n          else {\n            bVar13 = (bVar9 & 0x3f) + 0x80;\n            bVar9 = (byte)((uVar20 << 0xc) >> 0x18);\n            if (uVar20 < 0x10000) {\n              pbVar18[1] = bVar13;\n              pbVar18[2] = bVar16;\n              *pbVar18 = bVar9 - 0x20;\n              pbVar18 = pbVar18 + 3;\n            }\n            else {\n              pbVar18[2] = bVar13;\n              pbVar18[3] = bVar16;\n              *pbVar18 = (byte)((uVar20 << 0xb) >> 0x1d) - 0x10;\n              pbVar18[1] = (bVar9 & 0x3f) + 0x80;\n              pbVar18 = pbVar18 + 4;\n            }\n          }\n        }" if (parenthesized_expression "(uVar20 < 0x80)" ( (binary_expression "uVar20 < 0x80" identifier < number_literal) )) (compound_statement "{\n          *pbVar18 = (byte)uVar20;\n          pbVar18 = pbVar18 + 1;\n        }" { (expression_statement "*pbVar18 = (byte)uVar20;" (assignment_expression "*pbVar18 = (byte)uVar20" (pointer_expression "*pbVar18" * identifier) = (cast_expression "(byte)uVar20" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n          bVar16 = ((byte)uVar20 & 0x3f) + 0x80;\n          bVar9 = (byte)((uVar20 << 0x12) >> 0x18);\n          if (uVar20 < 0x800) {\n            pbVar18[1] = bVar16;\n            *pbVar18 = bVar9 - 0x40;\n            pbVar18 = pbVar18 + 2;\n          }\n          else {\n            bVar13 = (bVar9 & 0x3f) + 0x80;\n            bVar9 = (byte)((uVar20 << 0xc) >> 0x18);\n            if (uVar20 < 0x10000) {\n              pbVar18[1] = bVar13;\n              pbVar18[2] = bVar16;\n              *pbVar18 = bVar9 - 0x20;\n              pbVar18 = pbVar18 + 3;\n            }\n            else {\n              pbVar18[2] = bVar13;\n              pbVar18[3] = bVar16;\n              *pbVar18 = (byte)((uVar20 << 0xb) >> 0x1d) - 0x10;\n              pbVar18[1] = (bVar9 & 0x3f) + 0x80;\n              pbVar18 = pbVar18 + 4;\n            }\n          }\n        }" else (compound_statement "{\n          bVar16 = ((byte)uVar20 & 0x3f) + 0x80;\n          bVar9 = (byte)((uVar20 << 0x12) >> 0x18);\n          if (uVar20 < 0x800) {\n            pbVar18[1] = bVar16;\n            *pbVar18 = bVar9 - 0x40;\n            pbVar18 = pbVar18 + 2;\n          }\n          else {\n            bVar13 = (bVar9 & 0x3f) + 0x80;\n            bVar9 = (byte)((uVar20 << 0xc) >> 0x18);\n            if (uVar20 < 0x10000) {\n              pbVar18[1] = bVar13;\n              pbVar18[2] = bVar16;\n              *pbVar18 = bVar9 - 0x20;\n              pbVar18 = pbVar18 + 3;\n            }\n            else {\n              pbVar18[2] = bVar13;\n              pbVar18[3] = bVar16;\n              *pbVar18 = (byte)((uVar20 << 0xb) >> 0x1d) - 0x10;\n              pbVar18[1] = (bVar9 & 0x3f) + 0x80;\n              pbVar18 = pbVar18 + 4;\n            }\n          }\n        }" { (expression_statement "bVar16 = ((byte)uVar20 & 0x3f) + 0x80;" (assignment_expression "bVar16 = ((byte)uVar20 & 0x3f) + 0x80" identifier = (binary_expression "((byte)uVar20 & 0x3f) + 0x80" (parenthesized_expression "((byte)uVar20 & 0x3f)" ( (binary_expression "(byte)uVar20 & 0x3f" (cast_expression "(byte)uVar20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) + number_literal)) ;) (expression_statement "bVar9 = (byte)((uVar20 << 0x12) >> 0x18);" (assignment_expression "bVar9 = (byte)((uVar20 << 0x12) >> 0x18)" identifier = (call_expression "(byte)((uVar20 << 0x12) >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uVar20 << 0x12) >> 0x18)" ( (binary_expression "(uVar20 << 0x12) >> 0x18" (parenthesized_expression "(uVar20 << 0x12)" ( (binary_expression "uVar20 << 0x12" identifier << number_literal) )) >> number_literal) )))) ;) (if_statement "if (uVar20 < 0x800) {\n            pbVar18[1] = bVar16;\n            *pbVar18 = bVar9 - 0x40;\n            pbVar18 = pbVar18 + 2;\n          }\n          else {\n            bVar13 = (bVar9 & 0x3f) + 0x80;\n            bVar9 = (byte)((uVar20 << 0xc) >> 0x18);\n            if (uVar20 < 0x10000) {\n              pbVar18[1] = bVar13;\n              pbVar18[2] = bVar16;\n              *pbVar18 = bVar9 - 0x20;\n              pbVar18 = pbVar18 + 3;\n            }\n            else {\n              pbVar18[2] = bVar13;\n              pbVar18[3] = bVar16;\n              *pbVar18 = (byte)((uVar20 << 0xb) >> 0x1d) - 0x10;\n              pbVar18[1] = (bVar9 & 0x3f) + 0x80;\n              pbVar18 = pbVar18 + 4;\n            }\n          }" if (parenthesized_expression "(uVar20 < 0x800)" ( (binary_expression "uVar20 < 0x800" identifier < number_literal) )) (compound_statement "{\n            pbVar18[1] = bVar16;\n            *pbVar18 = bVar9 - 0x40;\n            pbVar18 = pbVar18 + 2;\n          }" { (expression_statement "pbVar18[1] = bVar16;" (assignment_expression "pbVar18[1] = bVar16" (subscript_expression "pbVar18[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*pbVar18 = bVar9 - 0x40;" (assignment_expression "*pbVar18 = bVar9 - 0x40" (pointer_expression "*pbVar18" * identifier) = (binary_expression "bVar9 - 0x40" identifier - number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + 2;" (assignment_expression "pbVar18 = pbVar18 + 2" identifier = (binary_expression "pbVar18 + 2" identifier + number_literal)) ;) }) (else_clause "else {\n            bVar13 = (bVar9 & 0x3f) + 0x80;\n            bVar9 = (byte)((uVar20 << 0xc) >> 0x18);\n            if (uVar20 < 0x10000) {\n              pbVar18[1] = bVar13;\n              pbVar18[2] = bVar16;\n              *pbVar18 = bVar9 - 0x20;\n              pbVar18 = pbVar18 + 3;\n            }\n            else {\n              pbVar18[2] = bVar13;\n              pbVar18[3] = bVar16;\n              *pbVar18 = (byte)((uVar20 << 0xb) >> 0x1d) - 0x10;\n              pbVar18[1] = (bVar9 & 0x3f) + 0x80;\n              pbVar18 = pbVar18 + 4;\n            }\n          }" else (compound_statement "{\n            bVar13 = (bVar9 & 0x3f) + 0x80;\n            bVar9 = (byte)((uVar20 << 0xc) >> 0x18);\n            if (uVar20 < 0x10000) {\n              pbVar18[1] = bVar13;\n              pbVar18[2] = bVar16;\n              *pbVar18 = bVar9 - 0x20;\n              pbVar18 = pbVar18 + 3;\n            }\n            else {\n              pbVar18[2] = bVar13;\n              pbVar18[3] = bVar16;\n              *pbVar18 = (byte)((uVar20 << 0xb) >> 0x1d) - 0x10;\n              pbVar18[1] = (bVar9 & 0x3f) + 0x80;\n              pbVar18 = pbVar18 + 4;\n            }\n          }" { (expression_statement "bVar13 = (bVar9 & 0x3f) + 0x80;" (assignment_expression "bVar13 = (bVar9 & 0x3f) + 0x80" identifier = (binary_expression "(bVar9 & 0x3f) + 0x80" (parenthesized_expression "(bVar9 & 0x3f)" ( (binary_expression "bVar9 & 0x3f" identifier & number_literal) )) + number_literal)) ;) (expression_statement "bVar9 = (byte)((uVar20 << 0xc) >> 0x18);" (assignment_expression "bVar9 = (byte)((uVar20 << 0xc) >> 0x18)" identifier = (call_expression "(byte)((uVar20 << 0xc) >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uVar20 << 0xc) >> 0x18)" ( (binary_expression "(uVar20 << 0xc) >> 0x18" (parenthesized_expression "(uVar20 << 0xc)" ( (binary_expression "uVar20 << 0xc" identifier << number_literal) )) >> number_literal) )))) ;) (if_statement "if (uVar20 < 0x10000) {\n              pbVar18[1] = bVar13;\n              pbVar18[2] = bVar16;\n              *pbVar18 = bVar9 - 0x20;\n              pbVar18 = pbVar18 + 3;\n            }\n            else {\n              pbVar18[2] = bVar13;\n              pbVar18[3] = bVar16;\n              *pbVar18 = (byte)((uVar20 << 0xb) >> 0x1d) - 0x10;\n              pbVar18[1] = (bVar9 & 0x3f) + 0x80;\n              pbVar18 = pbVar18 + 4;\n            }" if (parenthesized_expression "(uVar20 < 0x10000)" ( (binary_expression "uVar20 < 0x10000" identifier < number_literal) )) (compound_statement "{\n              pbVar18[1] = bVar13;\n              pbVar18[2] = bVar16;\n              *pbVar18 = bVar9 - 0x20;\n              pbVar18 = pbVar18 + 3;\n            }" { (expression_statement "pbVar18[1] = bVar13;" (assignment_expression "pbVar18[1] = bVar13" (subscript_expression "pbVar18[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar18[2] = bVar16;" (assignment_expression "pbVar18[2] = bVar16" (subscript_expression "pbVar18[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*pbVar18 = bVar9 - 0x20;" (assignment_expression "*pbVar18 = bVar9 - 0x20" (pointer_expression "*pbVar18" * identifier) = (binary_expression "bVar9 - 0x20" identifier - number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + 3;" (assignment_expression "pbVar18 = pbVar18 + 3" identifier = (binary_expression "pbVar18 + 3" identifier + number_literal)) ;) }) (else_clause "else {\n              pbVar18[2] = bVar13;\n              pbVar18[3] = bVar16;\n              *pbVar18 = (byte)((uVar20 << 0xb) >> 0x1d) - 0x10;\n              pbVar18[1] = (bVar9 & 0x3f) + 0x80;\n              pbVar18 = pbVar18 + 4;\n            }" else (compound_statement "{\n              pbVar18[2] = bVar13;\n              pbVar18[3] = bVar16;\n              *pbVar18 = (byte)((uVar20 << 0xb) >> 0x1d) - 0x10;\n              pbVar18[1] = (bVar9 & 0x3f) + 0x80;\n              pbVar18 = pbVar18 + 4;\n            }" { (expression_statement "pbVar18[2] = bVar13;" (assignment_expression "pbVar18[2] = bVar13" (subscript_expression "pbVar18[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar18[3] = bVar16;" (assignment_expression "pbVar18[3] = bVar16" (subscript_expression "pbVar18[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*pbVar18 = (byte)((uVar20 << 0xb) >> 0x1d) - 0x10;" (assignment_expression "*pbVar18 = (byte)((uVar20 << 0xb) >> 0x1d) - 0x10" (pointer_expression "*pbVar18" * identifier) = (binary_expression "(byte)((uVar20 << 0xb) >> 0x1d) - 0x10" (call_expression "(byte)((uVar20 << 0xb) >> 0x1d)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uVar20 << 0xb) >> 0x1d)" ( (binary_expression "(uVar20 << 0xb) >> 0x1d" (parenthesized_expression "(uVar20 << 0xb)" ( (binary_expression "uVar20 << 0xb" identifier << number_literal) )) >> number_literal) ))) - number_literal)) ;) (expression_statement "pbVar18[1] = (bVar9 & 0x3f) + 0x80;" (assignment_expression "pbVar18[1] = (bVar9 & 0x3f) + 0x80" (subscript_expression "pbVar18[1]" identifier [ number_literal ]) = (binary_expression "(bVar9 & 0x3f) + 0x80" (parenthesized_expression "(bVar9 & 0x3f)" ( (binary_expression "bVar9 & 0x3f" identifier & number_literal) )) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + 4;" (assignment_expression "pbVar18 = pbVar18 + 4" identifier = (binary_expression "pbVar18 + 4" identifier + number_literal)) ;) }))) }))) }))) })) (while_statement "while( true ) {\n        pbVar27 = pbVar23;\n        if (pbVar25 <= pbVar23) goto LAB_00053608;\n        if (pbVar24 < pbVar18) {\n          iVar7 = iStack_19c * 2;\n          pbVar21 = (byte *)sqlite3_malloc64(CONCAT44(iVar19,in_stack_fffffe54));\n          if (pbVar21 == (byte *)0x0) {\n            return &DAT_00000007;\n          }\n          pbVar18 = pbVar21 + ((int)pbVar18 - (int)p->aFold);\n          (**(code **)(pcVar26 + 0x109640))(pbVar21,p->aFold,iStack_19c);\n          (**(code **)(pcVar26 + 0x1091f8))(p->aFold);\n          pbVar24 = pbVar21 + iVar7 + -6;\n          p->aFold = (char *)pbVar21;\n          p->nFold = iVar7;\n          iStack_19c = iVar7;\n        }\n        bVar9 = *pbVar23;\n        uVar20 = (uint)bVar9;\n        if ((char)bVar9 < '\0') break;\n        if (p->aTokenChar[uVar20] == '\0') goto LAB_00053608;\n        pbVar22 = pbVar23 + 1;\nLAB_000535b0:\n        if (uVar20 - 0x41 < 0x1a) {\n          bVar9 = (char)uVar20 + 0x20;\n        }\n        *pbVar18 = bVar9;\n        pbVar18 = pbVar18 + 1;\n        pbVar23 = pbVar22;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        pbVar27 = pbVar23;\n        if (pbVar25 <= pbVar23) goto LAB_00053608;\n        if (pbVar24 < pbVar18) {\n          iVar7 = iStack_19c * 2;\n          pbVar21 = (byte *)sqlite3_malloc64(CONCAT44(iVar19,in_stack_fffffe54));\n          if (pbVar21 == (byte *)0x0) {\n            return &DAT_00000007;\n          }\n          pbVar18 = pbVar21 + ((int)pbVar18 - (int)p->aFold);\n          (**(code **)(pcVar26 + 0x109640))(pbVar21,p->aFold,iStack_19c);\n          (**(code **)(pcVar26 + 0x1091f8))(p->aFold);\n          pbVar24 = pbVar21 + iVar7 + -6;\n          p->aFold = (char *)pbVar21;\n          p->nFold = iVar7;\n          iStack_19c = iVar7;\n        }\n        bVar9 = *pbVar23;\n        uVar20 = (uint)bVar9;\n        if ((char)bVar9 < '\0') break;\n        if (p->aTokenChar[uVar20] == '\0') goto LAB_00053608;\n        pbVar22 = pbVar23 + 1;\nLAB_000535b0:\n        if (uVar20 - 0x41 < 0x1a) {\n          bVar9 = (char)uVar20 + 0x20;\n        }\n        *pbVar18 = bVar9;\n        pbVar18 = pbVar18 + 1;\n        pbVar23 = pbVar22;\n      }" { (expression_statement "pbVar27 = pbVar23;" (assignment_expression "pbVar27 = pbVar23" identifier = identifier) ;) (if_statement "if (pbVar25 <= pbVar23) goto LAB_00053608;" if (parenthesized_expression "(pbVar25 <= pbVar23)" ( (binary_expression "pbVar25 <= pbVar23" identifier <= identifier) )) (goto_statement "goto LAB_00053608;" goto statement_identifier ;)) (if_statement "if (pbVar24 < pbVar18) {\n          iVar7 = iStack_19c * 2;\n          pbVar21 = (byte *)sqlite3_malloc64(CONCAT44(iVar19,in_stack_fffffe54));\n          if (pbVar21 == (byte *)0x0) {\n            return &DAT_00000007;\n          }\n          pbVar18 = pbVar21 + ((int)pbVar18 - (int)p->aFold);\n          (**(code **)(pcVar26 + 0x109640))(pbVar21,p->aFold,iStack_19c);\n          (**(code **)(pcVar26 + 0x1091f8))(p->aFold);\n          pbVar24 = pbVar21 + iVar7 + -6;\n          p->aFold = (char *)pbVar21;\n          p->nFold = iVar7;\n          iStack_19c = iVar7;\n        }" if (parenthesized_expression "(pbVar24 < pbVar18)" ( (binary_expression "pbVar24 < pbVar18" identifier < identifier) )) (compound_statement "{\n          iVar7 = iStack_19c * 2;\n          pbVar21 = (byte *)sqlite3_malloc64(CONCAT44(iVar19,in_stack_fffffe54));\n          if (pbVar21 == (byte *)0x0) {\n            return &DAT_00000007;\n          }\n          pbVar18 = pbVar21 + ((int)pbVar18 - (int)p->aFold);\n          (**(code **)(pcVar26 + 0x109640))(pbVar21,p->aFold,iStack_19c);\n          (**(code **)(pcVar26 + 0x1091f8))(p->aFold);\n          pbVar24 = pbVar21 + iVar7 + -6;\n          p->aFold = (char *)pbVar21;\n          p->nFold = iVar7;\n          iStack_19c = iVar7;\n        }" { (expression_statement "iVar7 = iStack_19c * 2;" (assignment_expression "iVar7 = iStack_19c * 2" identifier = (binary_expression "iStack_19c * 2" identifier * number_literal)) ;) (expression_statement "pbVar21 = (byte *)sqlite3_malloc64(CONCAT44(iVar19,in_stack_fffffe54));" (assignment_expression "pbVar21 = (byte *)sqlite3_malloc64(CONCAT44(iVar19,in_stack_fffffe54))" identifier = (cast_expression "(byte *)sqlite3_malloc64(CONCAT44(iVar19,in_stack_fffffe54))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3_malloc64(CONCAT44(iVar19,in_stack_fffffe54))" identifier (argument_list "(CONCAT44(iVar19,in_stack_fffffe54))" ( (call_expression "CONCAT44(iVar19,in_stack_fffffe54)" identifier (argument_list "(iVar19,in_stack_fffffe54)" ( identifier , identifier ))) ))))) ;) (if_statement "if (pbVar21 == (byte *)0x0) {\n            return &DAT_00000007;\n          }" if (parenthesized_expression "(pbVar21 == (byte *)0x0)" ( (binary_expression "pbVar21 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            return &DAT_00000007;\n          }" { (return_statement "return &DAT_00000007;" return (pointer_expression "&DAT_00000007" & identifier) ;) })) (expression_statement "pbVar18 = pbVar21 + ((int)pbVar18 - (int)p->aFold);" (assignment_expression "pbVar18 = pbVar21 + ((int)pbVar18 - (int)p->aFold)" identifier = (binary_expression "pbVar21 + ((int)pbVar18 - (int)p->aFold)" identifier + (parenthesized_expression "((int)pbVar18 - (int)p->aFold)" ( (binary_expression "(int)pbVar18 - (int)p->aFold" (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)p->aFold" ( (type_descriptor "int" primitive_type) ) (field_expression "p->aFold" identifier -> field_identifier))) )))) ;) (expression_statement "(**(code **)(pcVar26 + 0x109640))(pbVar21,p->aFold,iStack_19c);" (call_expression "(**(code **)(pcVar26 + 0x109640))(pbVar21,p->aFold,iStack_19c)" (parenthesized_expression "(**(code **)(pcVar26 + 0x109640))" ( (pointer_expression "**(code **)(pcVar26 + 0x109640)" * (pointer_expression "*(code **)(pcVar26 + 0x109640)" * (cast_expression "(code **)(pcVar26 + 0x109640)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x109640)" ( (binary_expression "pcVar26 + 0x109640" identifier + number_literal) ))))) )) (argument_list "(pbVar21,p->aFold,iStack_19c)" ( identifier , (field_expression "p->aFold" identifier -> field_identifier) , identifier ))) ;) (expression_statement "(**(code **)(pcVar26 + 0x1091f8))(p->aFold);" (call_expression "(**(code **)(pcVar26 + 0x1091f8))(p->aFold)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1091f8))" ( (pointer_expression "**(code **)(pcVar26 + 0x1091f8)" * (pointer_expression "*(code **)(pcVar26 + 0x1091f8)" * (cast_expression "(code **)(pcVar26 + 0x1091f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1091f8)" ( (binary_expression "pcVar26 + 0x1091f8" identifier + number_literal) ))))) )) (argument_list "(p->aFold)" ( (field_expression "p->aFold" identifier -> field_identifier) ))) ;) (expression_statement "pbVar24 = pbVar21 + iVar7 + -6;" (assignment_expression "pbVar24 = pbVar21 + iVar7 + -6" identifier = (binary_expression "pbVar21 + iVar7 + -6" (binary_expression "pbVar21 + iVar7" identifier + identifier) + number_literal)) ;) (expression_statement "p->aFold = (char *)pbVar21;" (assignment_expression "p->aFold = (char *)pbVar21" (field_expression "p->aFold" identifier -> field_identifier) = (cast_expression "(char *)pbVar21" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "p->nFold = iVar7;" (assignment_expression "p->nFold = iVar7" (field_expression "p->nFold" identifier -> field_identifier) = identifier) ;) (expression_statement "iStack_19c = iVar7;" (assignment_expression "iStack_19c = iVar7" identifier = identifier) ;) })) (expression_statement "bVar9 = *pbVar23;" (assignment_expression "bVar9 = *pbVar23" identifier = (pointer_expression "*pbVar23" * identifier)) ;) (expression_statement "uVar20 = (uint)bVar9;" (assignment_expression "uVar20 = (uint)bVar9" identifier = (cast_expression "(uint)bVar9" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((char)bVar9 < '\0') break;" if (parenthesized_expression "((char)bVar9 < '\0')" ( (binary_expression "(char)bVar9 < '\0'" (cast_expression "(char)bVar9" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (if_statement "if (p->aTokenChar[uVar20] == '\0') goto LAB_00053608;" if (parenthesized_expression "(p->aTokenChar[uVar20] == '\0')" ( (binary_expression "p->aTokenChar[uVar20] == '\0'" (subscript_expression "p->aTokenChar[uVar20]" (field_expression "p->aTokenChar" identifier -> field_identifier) [ identifier ]) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00053608;" goto statement_identifier ;)) (expression_statement "pbVar22 = pbVar23 + 1;" (assignment_expression "pbVar22 = pbVar23 + 1" identifier = (binary_expression "pbVar23 + 1" identifier + number_literal)) ;) (labeled_statement "LAB_000535b0:\n        if (uVar20 - 0x41 < 0x1a) {\n          bVar9 = (char)uVar20 + 0x20;\n        }" statement_identifier : (if_statement "if (uVar20 - 0x41 < 0x1a) {\n          bVar9 = (char)uVar20 + 0x20;\n        }" if (parenthesized_expression "(uVar20 - 0x41 < 0x1a)" ( (binary_expression "uVar20 - 0x41 < 0x1a" (binary_expression "uVar20 - 0x41" identifier - number_literal) < number_literal) )) (compound_statement "{\n          bVar9 = (char)uVar20 + 0x20;\n        }" { (expression_statement "bVar9 = (char)uVar20 + 0x20;" (assignment_expression "bVar9 = (char)uVar20 + 0x20" identifier = (binary_expression "(char)uVar20 + 0x20" (cast_expression "(char)uVar20" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal)) ;) }))) (expression_statement "*pbVar18 = bVar9;" (assignment_expression "*pbVar18 = bVar9" (pointer_expression "*pbVar18" * identifier) = identifier) ;) (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) (expression_statement "pbVar23 = pbVar22;" (assignment_expression "pbVar23 = pbVar22" identifier = identifier) ;) })) (expression_statement "pbVar22 = pbVar23 + 1;" (assignment_expression "pbVar22 = pbVar23 + 1" identifier = (binary_expression "pbVar23 + 1" identifier + number_literal)) ;) (if_statement "if (uVar20 < 0xc0) break;" if (parenthesized_expression "(uVar20 < 0xc0)" ( (binary_expression "uVar20 < 0xc0" identifier < number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar20 = (uint)*(byte *)(uVar20 + iVar3 + -0x73b4 + -0xc0);" (assignment_expression "uVar20 = (uint)*(byte *)(uVar20 + iVar3 + -0x73b4 + -0xc0)" identifier = (binary_expression "(uint)*(byte *)(uVar20 + iVar3 + -0x73b4 + -0xc0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(uVar20 + iVar3 + -0x73b4 + -0xc0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar20 + iVar3 + -0x73b4 + -0xc0)" ( (binary_expression "uVar20 + iVar3 + -0x73b4 + -0xc0" (binary_expression "uVar20 + iVar3 + -0x73b4" (binary_expression "uVar20 + iVar3" identifier + identifier) + number_literal) + number_literal) ))))) ;) (if_statement "if ((pbVar25 == pbVar22) || (uVar8 = (uint)pbVar23[1], (uVar8 & 0xc0) != 0x80)) {\n        if (uVar20 < 0x80) goto LAB_00053748;\n      }\n      else {\n        do {\n          pbVar22 = pbVar22 + 1;\n          uVar20 = (uVar8 & 0x3f) + uVar20 * 0x40;\n          if (pbVar25 == pbVar22) break;\n          uVar8 = (uint)*pbVar22;\n        } while ((uVar8 & 0xffffffc0) == 0x80);\n        if (((uVar20 < 0x80) || ((uVar20 & 0xfffff800) == 0xd800)) ||\n           ((uVar20 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar7 = fts5UnicodeIsAlnum(p,0xfffd);\n          uVar20 = 0xfffd;\n          goto joined_r0x00053764;\n        }\n      }" if (parenthesized_expression "((pbVar25 == pbVar22) || (uVar8 = (uint)pbVar23[1], (uVar8 & 0xc0) != 0x80))" ( (binary_expression "(pbVar25 == pbVar22) || (uVar8 = (uint)pbVar23[1], (uVar8 & 0xc0) != 0x80)" (parenthesized_expression "(pbVar25 == pbVar22)" ( (binary_expression "pbVar25 == pbVar22" identifier == identifier) )) || (parenthesized_expression "(uVar8 = (uint)pbVar23[1], (uVar8 & 0xc0) != 0x80)" ( (comma_expression "uVar8 = (uint)pbVar23[1], (uVar8 & 0xc0) != 0x80" (assignment_expression "uVar8 = (uint)pbVar23[1]" identifier = (cast_expression "(uint)pbVar23[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar23[1]" identifier [ number_literal ]))) , (binary_expression "(uVar8 & 0xc0) != 0x80" (parenthesized_expression "(uVar8 & 0xc0)" ( (binary_expression "uVar8 & 0xc0" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n        if (uVar20 < 0x80) goto LAB_00053748;\n      }" { (if_statement "if (uVar20 < 0x80) goto LAB_00053748;" if (parenthesized_expression "(uVar20 < 0x80)" ( (binary_expression "uVar20 < 0x80" identifier < number_literal) )) (goto_statement "goto LAB_00053748;" goto statement_identifier ;)) }) (else_clause "else {\n        do {\n          pbVar22 = pbVar22 + 1;\n          uVar20 = (uVar8 & 0x3f) + uVar20 * 0x40;\n          if (pbVar25 == pbVar22) break;\n          uVar8 = (uint)*pbVar22;\n        } while ((uVar8 & 0xffffffc0) == 0x80);\n        if (((uVar20 < 0x80) || ((uVar20 & 0xfffff800) == 0xd800)) ||\n           ((uVar20 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar7 = fts5UnicodeIsAlnum(p,0xfffd);\n          uVar20 = 0xfffd;\n          goto joined_r0x00053764;\n        }\n      }" else (compound_statement "{\n        do {\n          pbVar22 = pbVar22 + 1;\n          uVar20 = (uVar8 & 0x3f) + uVar20 * 0x40;\n          if (pbVar25 == pbVar22) break;\n          uVar8 = (uint)*pbVar22;\n        } while ((uVar8 & 0xffffffc0) == 0x80);\n        if (((uVar20 < 0x80) || ((uVar20 & 0xfffff800) == 0xd800)) ||\n           ((uVar20 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar7 = fts5UnicodeIsAlnum(p,0xfffd);\n          uVar20 = 0xfffd;\n          goto joined_r0x00053764;\n        }\n      }" { (do_statement "do {\n          pbVar22 = pbVar22 + 1;\n          uVar20 = (uVar8 & 0x3f) + uVar20 * 0x40;\n          if (pbVar25 == pbVar22) break;\n          uVar8 = (uint)*pbVar22;\n        } while ((uVar8 & 0xffffffc0) == 0x80);" do (compound_statement "{\n          pbVar22 = pbVar22 + 1;\n          uVar20 = (uVar8 & 0x3f) + uVar20 * 0x40;\n          if (pbVar25 == pbVar22) break;\n          uVar8 = (uint)*pbVar22;\n        }" { (expression_statement "pbVar22 = pbVar22 + 1;" (assignment_expression "pbVar22 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) (expression_statement "uVar20 = (uVar8 & 0x3f) + uVar20 * 0x40;" (assignment_expression "uVar20 = (uVar8 & 0x3f) + uVar20 * 0x40" identifier = (binary_expression "(uVar8 & 0x3f) + uVar20 * 0x40" (parenthesized_expression "(uVar8 & 0x3f)" ( (binary_expression "uVar8 & 0x3f" identifier & number_literal) )) + (binary_expression "uVar20 * 0x40" identifier * number_literal))) ;) (if_statement "if (pbVar25 == pbVar22) break;" if (parenthesized_expression "(pbVar25 == pbVar22)" ( (binary_expression "pbVar25 == pbVar22" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar8 = (uint)*pbVar22;" (assignment_expression "uVar8 = (uint)*pbVar22" identifier = (binary_expression "(uint)*pbVar22" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) }) while (parenthesized_expression "((uVar8 & 0xffffffc0) == 0x80)" ( (binary_expression "(uVar8 & 0xffffffc0) == 0x80" (parenthesized_expression "(uVar8 & 0xffffffc0)" ( (binary_expression "uVar8 & 0xffffffc0" identifier & number_literal) )) == number_literal) )) ;) (if_statement "if (((uVar20 < 0x80) || ((uVar20 & 0xfffff800) == 0xd800)) ||\n           ((uVar20 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar7 = fts5UnicodeIsAlnum(p,0xfffd);\n          uVar20 = 0xfffd;\n          goto joined_r0x00053764;\n        }" if (parenthesized_expression "(((uVar20 < 0x80) || ((uVar20 & 0xfffff800) == 0xd800)) ||\n           ((uVar20 & 0xfffffffe) == 0xfffe))" ( (binary_expression "((uVar20 < 0x80) || ((uVar20 & 0xfffff800) == 0xd800)) ||\n           ((uVar20 & 0xfffffffe) == 0xfffe)" (parenthesized_expression "((uVar20 < 0x80) || ((uVar20 & 0xfffff800) == 0xd800))" ( (binary_expression "(uVar20 < 0x80) || ((uVar20 & 0xfffff800) == 0xd800)" (parenthesized_expression "(uVar20 < 0x80)" ( (binary_expression "uVar20 < 0x80" identifier < number_literal) )) || (parenthesized_expression "((uVar20 & 0xfffff800) == 0xd800)" ( (binary_expression "(uVar20 & 0xfffff800) == 0xd800" (parenthesized_expression "(uVar20 & 0xfffff800)" ( (binary_expression "uVar20 & 0xfffff800" identifier & number_literal) )) == number_literal) ))) )) || (parenthesized_expression "((uVar20 & 0xfffffffe) == 0xfffe)" ( (binary_expression "(uVar20 & 0xfffffffe) == 0xfffe" (parenthesized_expression "(uVar20 & 0xfffffffe)" ( (binary_expression "uVar20 & 0xfffffffe" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\nLAB_00053748:\n          iVar7 = fts5UnicodeIsAlnum(p,0xfffd);\n          uVar20 = 0xfffd;\n          goto joined_r0x00053764;\n        }" { (labeled_statement "LAB_00053748:\n          iVar7 = fts5UnicodeIsAlnum(p,0xfffd);" statement_identifier : (expression_statement "iVar7 = fts5UnicodeIsAlnum(p,0xfffd);" (assignment_expression "iVar7 = fts5UnicodeIsAlnum(p,0xfffd)" identifier = (call_expression "fts5UnicodeIsAlnum(p,0xfffd)" identifier (argument_list "(p,0xfffd)" ( identifier , number_literal )))) ;)) (expression_statement "uVar20 = 0xfffd;" (assignment_expression "uVar20 = 0xfffd" identifier = number_literal) ;) (goto_statement "goto joined_r0x00053764;" goto statement_identifier ;) })) }))) (expression_statement "iVar7 = fts5UnicodeIsAlnum(p,uVar20);" (assignment_expression "iVar7 = fts5UnicodeIsAlnum(p,uVar20)" identifier = (call_expression "fts5UnicodeIsAlnum(p,uVar20)" identifier (argument_list "(p,uVar20)" ( identifier , identifier )))) ;) (if_statement "if ((iVar7 == 0) &&\n         ((pbVar27 = pbVar22, 0x31 < uVar20 - 0x300 ||\n          (iVar7 = sqlite3FtsUnicodeIsdiacritic(uVar20), iVar7 == 0)))) goto LAB_00053608;" if (parenthesized_expression "((iVar7 == 0) &&\n         ((pbVar27 = pbVar22, 0x31 < uVar20 - 0x300 ||\n          (iVar7 = sqlite3FtsUnicodeIsdiacritic(uVar20), iVar7 == 0))))" ( (binary_expression "(iVar7 == 0) &&\n         ((pbVar27 = pbVar22, 0x31 < uVar20 - 0x300 ||\n          (iVar7 = sqlite3FtsUnicodeIsdiacritic(uVar20), iVar7 == 0)))" (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) && (parenthesized_expression "((pbVar27 = pbVar22, 0x31 < uVar20 - 0x300 ||\n          (iVar7 = sqlite3FtsUnicodeIsdiacritic(uVar20), iVar7 == 0)))" ( (parenthesized_expression "(pbVar27 = pbVar22, 0x31 < uVar20 - 0x300 ||\n          (iVar7 = sqlite3FtsUnicodeIsdiacritic(uVar20), iVar7 == 0))" ( (comma_expression "pbVar27 = pbVar22, 0x31 < uVar20 - 0x300 ||\n          (iVar7 = sqlite3FtsUnicodeIsdiacritic(uVar20), iVar7 == 0)" (assignment_expression "pbVar27 = pbVar22" identifier = identifier) , (binary_expression "0x31 < uVar20 - 0x300 ||\n          (iVar7 = sqlite3FtsUnicodeIsdiacritic(uVar20), iVar7 == 0)" (binary_expression "0x31 < uVar20 - 0x300" number_literal < (binary_expression "uVar20 - 0x300" identifier - number_literal)) || (parenthesized_expression "(iVar7 = sqlite3FtsUnicodeIsdiacritic(uVar20), iVar7 == 0)" ( (comma_expression "iVar7 = sqlite3FtsUnicodeIsdiacritic(uVar20), iVar7 == 0" (assignment_expression "iVar7 = sqlite3FtsUnicodeIsdiacritic(uVar20)" identifier = (call_expression "sqlite3FtsUnicodeIsdiacritic(uVar20)" identifier (argument_list "(uVar20)" ( identifier )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) )))) )) ))) )) (goto_statement "goto LAB_00053608;" goto statement_identifier ;)) })) (expression_statement "iVar7 = fts5UnicodeIsAlnum(p,uVar20);" (assignment_expression "iVar7 = fts5UnicodeIsAlnum(p,uVar20)" identifier = (call_expression "fts5UnicodeIsAlnum(p,uVar20)" identifier (argument_list "(p,uVar20)" ( identifier , identifier )))) ;) (labeled_statement "joined_r0x00053764:\n    pbVar27 = pbVar22;" statement_identifier : (expression_statement "pbVar27 = pbVar22;" (assignment_expression "pbVar27 = pbVar22" identifier = identifier) ;)) }) while (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) ;) (labeled_statement "LAB_00053608:\n  in_stack_fffffe54 = (int)pbVar23 - (int)pbVar17;" statement_identifier : (expression_statement "in_stack_fffffe54 = (int)pbVar23 - (int)pbVar17;" (assignment_expression "in_stack_fffffe54 = (int)pbVar23 - (int)pbVar17" identifier = (binary_expression "(int)pbVar23 - (int)pbVar17" (cast_expression "(int)pbVar23" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar17" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (expression_statement "pcVar5 = (char *)(*pcStack_14c)(pcVar14,0,pbVar21,(int)pbVar18 - (int)pbVar21);" (assignment_expression "pcVar5 = (char *)(*pcStack_14c)(pcVar14,0,pbVar21,(int)pbVar18 - (int)pbVar21)" identifier = (cast_expression "(char *)(*pcStack_14c)(pcVar14,0,pbVar21,(int)pbVar18 - (int)pbVar21)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcStack_14c)(pcVar14,0,pbVar21,(int)pbVar18 - (int)pbVar21)" (parenthesized_expression "(*pcStack_14c)" ( (pointer_expression "*pcStack_14c" * identifier) )) (argument_list "(pcVar14,0,pbVar21,(int)pbVar18 - (int)pbVar21)" ( identifier , number_literal , identifier , (binary_expression "(int)pbVar18 - (int)pbVar21" (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar21" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if (pcVar5 != (char *)0x0) {\n    if (pcVar5 == (char *)0x65) {\nLAB_00053644:\n      pcVar5 = (char *)0x0;\n    }\n    return pcVar5;\n  }" if (parenthesized_expression "(pcVar5 != (char *)0x0)" ( (binary_expression "pcVar5 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (pcVar5 == (char *)0x65) {\nLAB_00053644:\n      pcVar5 = (char *)0x0;\n    }\n    return pcVar5;\n  }" { (if_statement "if (pcVar5 == (char *)0x65) {\nLAB_00053644:\n      pcVar5 = (char *)0x0;\n    }" if (parenthesized_expression "(pcVar5 == (char *)0x65)" ( (binary_expression "pcVar5 == (char *)0x65" identifier == (cast_expression "(char *)0x65" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00053644:\n      pcVar5 = (char *)0x0;\n    }" { (labeled_statement "LAB_00053644:\n      pcVar5 = (char *)0x0;" statement_identifier : (expression_statement "pcVar5 = (char *)0x0;" (assignment_expression "pcVar5 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) })) (return_statement "return pcVar5;" return identifier ;) })) (goto_statement "goto LAB_00053480;" goto statement_identifier ;) })))
(translation_unit "char * FUN_00052f80(undefined4 *param_1,char *param_2,undefined4 *param_3,code *param_4)\n\n{\n  bool bVar1;\n  char cVar2;\n  byte bVar3;\n  undefined *puVar4;\n  char *pcVar5;\n  int iVar6;\n  int *piVar7;\n  code *pcVar8;\n  undefined1 *puVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  char *pcVar15;\n  code cVar16;\n  code cVar17;\n  char *pcVar18;\n  char *pcVar19;\n  code *pcVar20;\n  undefined4 uVar21;\n  code *pcVar22;\n  code *pcVar23;\n  code *pcVar24;\n  int iVar25;\n  uint uVar26;\n  char *pcVar27;\n  code *pcVar28;\n  code *pcVar29;\n  code *pcVar30;\n  undefined *puVar31;\n  code *pcVar32;\n  uint local_19c;\n  int local_194;\n  code *local_150;\n  code *local_14c;\n  undefined1 auStack_12c [64];\n  int local_ec;\n  char *local_e8;\n  char *local_e4;\n  undefined *local_e0;\n  undefined4 *local_dc;\n  char *local_d8;\n  code *local_d4;\n  undefined4 *local_d0;\n  code *local_ac;\n  char local_a4 [4];\n  undefined4 local_a0 [31];\n  int local_24;\n  \n  puVar4 = PTR___stack_chk_guard_0015ca30;\n  local_24 = *(int *)PTR___stack_chk_guard_0015ca30;\n  pcVar22 = param_4;\n  pcVar5 = (char *)(*(code *)PTR_strlen_0015c9c8)(param_2);\n  pcVar27 = pcVar5 + 1;\n  pcVar18 = pcVar27;\n  pcVar5 = (char *)sqlite3_malloc64(pcVar27 < pcVar5);\n  *(undefined4 *)param_4 = 0;\n  *param_3 = 0;\n  puVar31 = PTR_sqlite3_free_0015c5ec;\n  if (pcVar5 == (char *)0x0) {\n    *param_1 = 7;\n    (*(code *)puVar31)(0);\n    pcVar19 = (char *)0x0;\n    goto LAB_000530c4;\n  }\n  pcVar18 = param_2;\n  (*(code *)PTR_memcpy_0015ca34)(pcVar5,param_2,pcVar27);\n  cVar2 = *pcVar5;\n  if ((((cVar2 == '\"') || (cVar2 == '\'')) || (cVar2 == '[')) || (cVar2 == '`')) {\n    iVar6 = (*(code *)(PTR_LAB_0015c66c + 0x4688))(pcVar5);\n    pcVar19 = param_2 + iVar6;\n    *(undefined4 *)param_4 = 1;\n    if (pcVar19 == (char *)0x0) goto LAB_0005311c;\n  }\n  else {\n    pcVar19 = param_2;\n    while( true ) {\n      cVar2 = *pcVar19;\n      puVar13 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xf68);\n      pcVar15 = local_a4;\n      do {\n        puVar14 = puVar13 + 4;\n        *(undefined4 *)pcVar15 = *puVar13;\n        pcVar22 = (code *)puVar13[1];\n        uVar21 = puVar13[2];\n        pcVar18 = (char *)puVar13[3];\n        *(code **)(pcVar15 + 4) = pcVar22;\n        *(undefined4 *)(pcVar15 + 8) = uVar21;\n        *(char **)(pcVar15 + 0xc) = pcVar18;\n        puVar13 = puVar14;\n        pcVar15 = pcVar15 + 0x10;\n      } while (puVar14 != (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8));\n      if ((-1 < cVar2) && (local_a4[cVar2] == '\0')) break;\n      pcVar19 = pcVar19 + 1;\n    }\n    bVar1 = param_2 == pcVar19;\n    param_2 = pcVar19 + -(int)param_2;\n    if (bVar1) {\nLAB_0005311c:\n      (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n      pcVar19 = (char *)0x0;\n      goto LAB_000530c4;\n    }\n    param_2 = pcVar5 + (int)param_2;\n    *param_2 = '\0';\n  }\n  *param_3 = pcVar5;\nLAB_000530c4:\n  if (local_24 == *(int *)puVar4) {\n    return pcVar19;\n  }\n  iVar6 = local_24;\n  puVar31 = PTR___stack_chk_fail_0015ca14;\n  (*(code *)PTR___stack_chk_fail_0015ca14)();\n  piVar7 = *(int **)(puVar31 + 0x1098c8);\n  local_e0 = puVar4;\n  local_ec = *piVar7;\n  iVar25 = 0x40;\n  pcVar19 = pcVar18;\n  pcVar20 = pcVar22;\n  puVar9 = auStack_12c;\n  pcVar24 = (code *)0x0;\n  local_e8 = pcVar5;\n  local_e4 = param_2;\n  local_dc = param_3;\n  local_d8 = pcVar27;\n  local_d4 = param_4;\n  local_d0 = param_1;\nLAB_000531e8:\n  do {\n    pcVar30 = pcVar24;\n    pcVar24 = pcVar30 + 1;\n    pcVar8 = pcVar24;\n    if ((-1 < (char)pcVar22[(int)pcVar30]) &&\n       (*(char *)(iVar6 + (char)pcVar22[(int)pcVar30]) == '\0')) {\n      if ((int)pcVar24 < 0x1645b0) goto LAB_000531e8;\n      pcVar8 = pcVar30 + 2;\n      pcVar30 = pcVar24;\n      if (pcVar24 == (code *)&_gp_1) {\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        goto LAB_00053398;\n      }\n    }\n    if ((int)pcVar8 < 0x1645b0) {\n      do {\n        if ((-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')\n           ) goto LAB_00053254;\n        pcVar8 = pcVar8 + 1;\n      } while (pcVar8 != (code *)&_gp_1);\n      pcVar24 = (code *)(&_gp_1 + -(int)pcVar30);\nLAB_00053254:\n      if (iVar25 < (int)pcVar24) {\n        pcVar19 = (char *)((int)pcVar24 << 1);\n        uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;\nLAB_00053270:\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        pcVar20 = pcVar24;\n        puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);\n        if (puVar9 == (undefined1 *)0x0) {\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }\n        iVar25 = (int)pcVar24 << 1;\n      }\n      pcVar20 = pcVar24;\n      if (0 < (int)pcVar24) goto LAB_000532c0;\n    }\n    else {\n      pcVar19 = &SUB_00000002;\n      if (iVar25 < 1) {\n        uVar26 = 0;\n        pcVar24 = (code *)0x1;\n        goto LAB_00053270;\n      }\n      pcVar24 = (code *)0x1;\nLAB_000532c0:\n      iVar10 = 0;\n      do {\n        cVar16 = pcVar22[(int)(pcVar30 + iVar10)];\n        if ((byte)cVar16 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }\n        pcVar20 = (code *)(puVar9 + iVar10);\n        iVar10 = iVar10 + 1;\n        *pcVar20 = cVar16;\n        pcVar20 = pcVar24;\n      } while (iVar10 < (int)pcVar24);\n    }\n    pcVar19 = (char *)0x0;\n    pcVar5 = (char *)(*local_ac)(pcVar18,0,puVar9);\n    local_150 = pcVar30;\n    local_14c = pcVar8;\n    if ((0x1645af < (int)(pcVar8 + 1)) || (pcVar24 = pcVar8 + 1, pcVar5 != (char *)0x0)) break;\n  } while( true );\n  if (puVar9 == auStack_12c) {\n    if (pcVar5 == (char *)0x65) {\nLAB_00053398:\n      pcVar5 = (char *)0x0;\n    }\n  }\n  else {\nLAB_000533c0:\n    (**(code **)(puVar31 + 0x109484))(puVar9);\n    if (pcVar5 == (char *)0x65) {\n      pcVar5 = (char *)0x0;\n    }\n  }\n  if (local_ec == *piVar7) {\n    return pcVar5;\n  }\n  pcVar32 = *(code **)(puVar31 + 0x1098ac);\n  iVar6 = local_ec;\n  (*pcVar32)();\n  local_19c = *(uint *)(iVar6 + 0x84);\n  iVar10 = *(int *)(pcVar32 + 0x1092d0);\n  pcVar24 = *(code **)(iVar6 + 0x80);\n  iVar25 = *(int *)(pcVar32 + 0x1092a4);\n  pcVar8 = pcVar24 + (local_19c - 6);\n  pcVar30 = pcVar20 + (int)local_150;\n  pcVar22 = pcVar20;\nLAB_00053480:\n  if (pcVar30 <= pcVar22) {\n    return (char *)0x0;\n  }\n  do {\n    cVar16 = *pcVar22;\n    uVar26 = (uint)(byte)cVar16;\n    pcVar28 = pcVar22 + 1;\n    pcVar23 = pcVar24;\n    if ((char)cVar16 < '\0') {\n      if (0xbf < uVar26) {\n        uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n        if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)) {\n          if (uVar26 < 0x80) {\n            uVar26 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);\n          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if (iVar11 != 0) break;\n    }\n    else {\n      local_194 = (int)pcVar22 - (int)pcVar20;\n      if (*(char *)(iVar6 + uVar26) != '\0') goto LAB_000535b0;\n    }\n    pcVar22 = pcVar28;\n    if (pcVar30 <= pcVar28) goto LAB_00053644;\n  } while( true );\n  local_194 = (int)pcVar22 - (int)pcVar20;\n  do {\n    while( true ) {\n      uVar26 = (*(code *)(iVar10 + 0x2d68))(uVar26,*(undefined4 *)(iVar6 + 0x88));\n      pcVar29 = pcVar28;\n      if (uVar26 != 0) {\n        if (uVar26 < 0x80) {\n          *pcVar23 = SUB41(uVar26,0);\n          pcVar23 = pcVar23 + 1;\n        }\n        else {\n          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);\n          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);\n          if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }\n        }\n      }\n      while( true ) {\n        pcVar22 = pcVar29;\n        if (pcVar30 <= pcVar29) goto LAB_00053608;\n        if (pcVar8 < pcVar23) {\n          uVar26 = local_19c * 2;\n          pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26);\n          if (pcVar24 == (code *)0x0) {\n            return &DAT_00000007;\n          }\n          pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));\n          (**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);\n          (**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));\n          pcVar8 = pcVar24 + (uVar26 - 6);\n          *(code **)(iVar6 + 0x80) = pcVar24;\n          *(uint *)(iVar6 + 0x84) = uVar26;\n          local_19c = uVar26;\n        }\n        cVar16 = *pcVar29;\n        uVar26 = (uint)(byte)cVar16;\n        if ((char)cVar16 < '\0') break;\n        if (*(char *)(iVar6 + uVar26) == '\0') goto LAB_00053608;\n        pcVar28 = pcVar29 + 1;\nLAB_000535b0:\n        if (uVar26 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)uVar26 + 0x20);\n        }\n        *pcVar23 = cVar16;\n        pcVar23 = pcVar23 + 1;\n        pcVar29 = pcVar28;\n      }\n      pcVar28 = pcVar29 + 1;\n      if (uVar26 < 0xc0) break;\n      uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n      if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80)) {\n        if (uVar26 < 0x80) goto LAB_00053748;\n      }\n      else {\n        do {\n          pcVar28 = pcVar28 + 1;\n          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n          if (pcVar30 == pcVar28) break;\n          uVar12 = (uint)(byte)*pcVar28;\n        } while ((uVar12 & 0xffffffc0) == 0x80);\n        if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);\n          uVar26 = 0xfffd;\n          goto joined_r0x00053724;\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if ((iVar11 == 0) &&\n         ((pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))\n         )) goto LAB_00053608;\n    }\n    iVar11 = FUN_00042fcc(iVar6,uVar26);\njoined_r0x00053724:\n    pcVar22 = pcVar28;\n  } while (iVar11 != 0);\nLAB_00053608:\n  pcVar18 = (char *)(*local_14c)(pcVar19,0,pcVar24,(int)pcVar23 - (int)pcVar24,local_194,\n                                 (int)pcVar29 - (int)pcVar20);\n  if (pcVar18 != (char *)0x0) {\n    if (pcVar18 == (char *)0x65) {\nLAB_00053644:\n      pcVar18 = (char *)0x0;\n    }\n    return pcVar18;\n  }\n  goto LAB_00053480;\n}\n\n" (function_definition "char * FUN_00052f80(undefined4 *param_1,char *param_2,undefined4 *param_3,code *param_4)\n\n{\n  bool bVar1;\n  char cVar2;\n  byte bVar3;\n  undefined *puVar4;\n  char *pcVar5;\n  int iVar6;\n  int *piVar7;\n  code *pcVar8;\n  undefined1 *puVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  char *pcVar15;\n  code cVar16;\n  code cVar17;\n  char *pcVar18;\n  char *pcVar19;\n  code *pcVar20;\n  undefined4 uVar21;\n  code *pcVar22;\n  code *pcVar23;\n  code *pcVar24;\n  int iVar25;\n  uint uVar26;\n  char *pcVar27;\n  code *pcVar28;\n  code *pcVar29;\n  code *pcVar30;\n  undefined *puVar31;\n  code *pcVar32;\n  uint local_19c;\n  int local_194;\n  code *local_150;\n  code *local_14c;\n  undefined1 auStack_12c [64];\n  int local_ec;\n  char *local_e8;\n  char *local_e4;\n  undefined *local_e0;\n  undefined4 *local_dc;\n  char *local_d8;\n  code *local_d4;\n  undefined4 *local_d0;\n  code *local_ac;\n  char local_a4 [4];\n  undefined4 local_a0 [31];\n  int local_24;\n  \n  puVar4 = PTR___stack_chk_guard_0015ca30;\n  local_24 = *(int *)PTR___stack_chk_guard_0015ca30;\n  pcVar22 = param_4;\n  pcVar5 = (char *)(*(code *)PTR_strlen_0015c9c8)(param_2);\n  pcVar27 = pcVar5 + 1;\n  pcVar18 = pcVar27;\n  pcVar5 = (char *)sqlite3_malloc64(pcVar27 < pcVar5);\n  *(undefined4 *)param_4 = 0;\n  *param_3 = 0;\n  puVar31 = PTR_sqlite3_free_0015c5ec;\n  if (pcVar5 == (char *)0x0) {\n    *param_1 = 7;\n    (*(code *)puVar31)(0);\n    pcVar19 = (char *)0x0;\n    goto LAB_000530c4;\n  }\n  pcVar18 = param_2;\n  (*(code *)PTR_memcpy_0015ca34)(pcVar5,param_2,pcVar27);\n  cVar2 = *pcVar5;\n  if ((((cVar2 == '\"') || (cVar2 == '\'')) || (cVar2 == '[')) || (cVar2 == '`')) {\n    iVar6 = (*(code *)(PTR_LAB_0015c66c + 0x4688))(pcVar5);\n    pcVar19 = param_2 + iVar6;\n    *(undefined4 *)param_4 = 1;\n    if (pcVar19 == (char *)0x0) goto LAB_0005311c;\n  }\n  else {\n    pcVar19 = param_2;\n    while( true ) {\n      cVar2 = *pcVar19;\n      puVar13 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xf68);\n      pcVar15 = local_a4;\n      do {\n        puVar14 = puVar13 + 4;\n        *(undefined4 *)pcVar15 = *puVar13;\n        pcVar22 = (code *)puVar13[1];\n        uVar21 = puVar13[2];\n        pcVar18 = (char *)puVar13[3];\n        *(code **)(pcVar15 + 4) = pcVar22;\n        *(undefined4 *)(pcVar15 + 8) = uVar21;\n        *(char **)(pcVar15 + 0xc) = pcVar18;\n        puVar13 = puVar14;\n        pcVar15 = pcVar15 + 0x10;\n      } while (puVar14 != (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8));\n      if ((-1 < cVar2) && (local_a4[cVar2] == '\0')) break;\n      pcVar19 = pcVar19 + 1;\n    }\n    bVar1 = param_2 == pcVar19;\n    param_2 = pcVar19 + -(int)param_2;\n    if (bVar1) {\nLAB_0005311c:\n      (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n      pcVar19 = (char *)0x0;\n      goto LAB_000530c4;\n    }\n    param_2 = pcVar5 + (int)param_2;\n    *param_2 = '\0';\n  }\n  *param_3 = pcVar5;\nLAB_000530c4:\n  if (local_24 == *(int *)puVar4) {\n    return pcVar19;\n  }\n  iVar6 = local_24;\n  puVar31 = PTR___stack_chk_fail_0015ca14;\n  (*(code *)PTR___stack_chk_fail_0015ca14)();\n  piVar7 = *(int **)(puVar31 + 0x1098c8);\n  local_e0 = puVar4;\n  local_ec = *piVar7;\n  iVar25 = 0x40;\n  pcVar19 = pcVar18;\n  pcVar20 = pcVar22;\n  puVar9 = auStack_12c;\n  pcVar24 = (code *)0x0;\n  local_e8 = pcVar5;\n  local_e4 = param_2;\n  local_dc = param_3;\n  local_d8 = pcVar27;\n  local_d4 = param_4;\n  local_d0 = param_1;\nLAB_000531e8:\n  do {\n    pcVar30 = pcVar24;\n    pcVar24 = pcVar30 + 1;\n    pcVar8 = pcVar24;\n    if ((-1 < (char)pcVar22[(int)pcVar30]) &&\n       (*(char *)(iVar6 + (char)pcVar22[(int)pcVar30]) == '\0')) {\n      if ((int)pcVar24 < 0x1645b0) goto LAB_000531e8;\n      pcVar8 = pcVar30 + 2;\n      pcVar30 = pcVar24;\n      if (pcVar24 == (code *)&_gp_1) {\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        goto LAB_00053398;\n      }\n    }\n    if ((int)pcVar8 < 0x1645b0) {\n      do {\n        if ((-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')\n           ) goto LAB_00053254;\n        pcVar8 = pcVar8 + 1;\n      } while (pcVar8 != (code *)&_gp_1);\n      pcVar24 = (code *)(&_gp_1 + -(int)pcVar30);\nLAB_00053254:\n      if (iVar25 < (int)pcVar24) {\n        pcVar19 = (char *)((int)pcVar24 << 1);\n        uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;\nLAB_00053270:\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        pcVar20 = pcVar24;\n        puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);\n        if (puVar9 == (undefined1 *)0x0) {\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }\n        iVar25 = (int)pcVar24 << 1;\n      }\n      pcVar20 = pcVar24;\n      if (0 < (int)pcVar24) goto LAB_000532c0;\n    }\n    else {\n      pcVar19 = &SUB_00000002;\n      if (iVar25 < 1) {\n        uVar26 = 0;\n        pcVar24 = (code *)0x1;\n        goto LAB_00053270;\n      }\n      pcVar24 = (code *)0x1;\nLAB_000532c0:\n      iVar10 = 0;\n      do {\n        cVar16 = pcVar22[(int)(pcVar30 + iVar10)];\n        if ((byte)cVar16 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }\n        pcVar20 = (code *)(puVar9 + iVar10);\n        iVar10 = iVar10 + 1;\n        *pcVar20 = cVar16;\n        pcVar20 = pcVar24;\n      } while (iVar10 < (int)pcVar24);\n    }\n    pcVar19 = (char *)0x0;\n    pcVar5 = (char *)(*local_ac)(pcVar18,0,puVar9);\n    local_150 = pcVar30;\n    local_14c = pcVar8;\n    if ((0x1645af < (int)(pcVar8 + 1)) || (pcVar24 = pcVar8 + 1, pcVar5 != (char *)0x0)) break;\n  } while( true );\n  if (puVar9 == auStack_12c) {\n    if (pcVar5 == (char *)0x65) {\nLAB_00053398:\n      pcVar5 = (char *)0x0;\n    }\n  }\n  else {\nLAB_000533c0:\n    (**(code **)(puVar31 + 0x109484))(puVar9);\n    if (pcVar5 == (char *)0x65) {\n      pcVar5 = (char *)0x0;\n    }\n  }\n  if (local_ec == *piVar7) {\n    return pcVar5;\n  }\n  pcVar32 = *(code **)(puVar31 + 0x1098ac);\n  iVar6 = local_ec;\n  (*pcVar32)();\n  local_19c = *(uint *)(iVar6 + 0x84);\n  iVar10 = *(int *)(pcVar32 + 0x1092d0);\n  pcVar24 = *(code **)(iVar6 + 0x80);\n  iVar25 = *(int *)(pcVar32 + 0x1092a4);\n  pcVar8 = pcVar24 + (local_19c - 6);\n  pcVar30 = pcVar20 + (int)local_150;\n  pcVar22 = pcVar20;\nLAB_00053480:\n  if (pcVar30 <= pcVar22) {\n    return (char *)0x0;\n  }\n  do {\n    cVar16 = *pcVar22;\n    uVar26 = (uint)(byte)cVar16;\n    pcVar28 = pcVar22 + 1;\n    pcVar23 = pcVar24;\n    if ((char)cVar16 < '\0') {\n      if (0xbf < uVar26) {\n        uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n        if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)) {\n          if (uVar26 < 0x80) {\n            uVar26 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);\n          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if (iVar11 != 0) break;\n    }\n    else {\n      local_194 = (int)pcVar22 - (int)pcVar20;\n      if (*(char *)(iVar6 + uVar26) != '\0') goto LAB_000535b0;\n    }\n    pcVar22 = pcVar28;\n    if (pcVar30 <= pcVar28) goto LAB_00053644;\n  } while( true );\n  local_194 = (int)pcVar22 - (int)pcVar20;\n  do {\n    while( true ) {\n      uVar26 = (*(code *)(iVar10 + 0x2d68))(uVar26,*(undefined4 *)(iVar6 + 0x88));\n      pcVar29 = pcVar28;\n      if (uVar26 != 0) {\n        if (uVar26 < 0x80) {\n          *pcVar23 = SUB41(uVar26,0);\n          pcVar23 = pcVar23 + 1;\n        }\n        else {\n          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);\n          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);\n          if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }\n        }\n      }\n      while( true ) {\n        pcVar22 = pcVar29;\n        if (pcVar30 <= pcVar29) goto LAB_00053608;\n        if (pcVar8 < pcVar23) {\n          uVar26 = local_19c * 2;\n          pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26);\n          if (pcVar24 == (code *)0x0) {\n            return &DAT_00000007;\n          }\n          pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));\n          (**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);\n          (**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));\n          pcVar8 = pcVar24 + (uVar26 - 6);\n          *(code **)(iVar6 + 0x80) = pcVar24;\n          *(uint *)(iVar6 + 0x84) = uVar26;\n          local_19c = uVar26;\n        }\n        cVar16 = *pcVar29;\n        uVar26 = (uint)(byte)cVar16;\n        if ((char)cVar16 < '\0') break;\n        if (*(char *)(iVar6 + uVar26) == '\0') goto LAB_00053608;\n        pcVar28 = pcVar29 + 1;\nLAB_000535b0:\n        if (uVar26 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)uVar26 + 0x20);\n        }\n        *pcVar23 = cVar16;\n        pcVar23 = pcVar23 + 1;\n        pcVar29 = pcVar28;\n      }\n      pcVar28 = pcVar29 + 1;\n      if (uVar26 < 0xc0) break;\n      uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n      if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80)) {\n        if (uVar26 < 0x80) goto LAB_00053748;\n      }\n      else {\n        do {\n          pcVar28 = pcVar28 + 1;\n          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n          if (pcVar30 == pcVar28) break;\n          uVar12 = (uint)(byte)*pcVar28;\n        } while ((uVar12 & 0xffffffc0) == 0x80);\n        if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);\n          uVar26 = 0xfffd;\n          goto joined_r0x00053724;\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if ((iVar11 == 0) &&\n         ((pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))\n         )) goto LAB_00053608;\n    }\n    iVar11 = FUN_00042fcc(iVar6,uVar26);\njoined_r0x00053724:\n    pcVar22 = pcVar28;\n  } while (iVar11 != 0);\nLAB_00053608:\n  pcVar18 = (char *)(*local_14c)(pcVar19,0,pcVar24,(int)pcVar23 - (int)pcVar24,local_194,\n                                 (int)pcVar29 - (int)pcVar20);\n  if (pcVar18 != (char *)0x0) {\n    if (pcVar18 == (char *)0x65) {\nLAB_00053644:\n      pcVar18 = (char *)0x0;\n    }\n    return pcVar18;\n  }\n  goto LAB_00053480;\n}" primitive_type (pointer_declarator "* FUN_00052f80(undefined4 *param_1,char *param_2,undefined4 *param_3,code *param_4)" * (function_declarator "FUN_00052f80(undefined4 *param_1,char *param_2,undefined4 *param_3,code *param_4)" identifier (parameter_list "(undefined4 *param_1,char *param_2,undefined4 *param_3,code *param_4)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "code *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) )))) (compound_statement "{\n  bool bVar1;\n  char cVar2;\n  byte bVar3;\n  undefined *puVar4;\n  char *pcVar5;\n  int iVar6;\n  int *piVar7;\n  code *pcVar8;\n  undefined1 *puVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  char *pcVar15;\n  code cVar16;\n  code cVar17;\n  char *pcVar18;\n  char *pcVar19;\n  code *pcVar20;\n  undefined4 uVar21;\n  code *pcVar22;\n  code *pcVar23;\n  code *pcVar24;\n  int iVar25;\n  uint uVar26;\n  char *pcVar27;\n  code *pcVar28;\n  code *pcVar29;\n  code *pcVar30;\n  undefined *puVar31;\n  code *pcVar32;\n  uint local_19c;\n  int local_194;\n  code *local_150;\n  code *local_14c;\n  undefined1 auStack_12c [64];\n  int local_ec;\n  char *local_e8;\n  char *local_e4;\n  undefined *local_e0;\n  undefined4 *local_dc;\n  char *local_d8;\n  code *local_d4;\n  undefined4 *local_d0;\n  code *local_ac;\n  char local_a4 [4];\n  undefined4 local_a0 [31];\n  int local_24;\n  \n  puVar4 = PTR___stack_chk_guard_0015ca30;\n  local_24 = *(int *)PTR___stack_chk_guard_0015ca30;\n  pcVar22 = param_4;\n  pcVar5 = (char *)(*(code *)PTR_strlen_0015c9c8)(param_2);\n  pcVar27 = pcVar5 + 1;\n  pcVar18 = pcVar27;\n  pcVar5 = (char *)sqlite3_malloc64(pcVar27 < pcVar5);\n  *(undefined4 *)param_4 = 0;\n  *param_3 = 0;\n  puVar31 = PTR_sqlite3_free_0015c5ec;\n  if (pcVar5 == (char *)0x0) {\n    *param_1 = 7;\n    (*(code *)puVar31)(0);\n    pcVar19 = (char *)0x0;\n    goto LAB_000530c4;\n  }\n  pcVar18 = param_2;\n  (*(code *)PTR_memcpy_0015ca34)(pcVar5,param_2,pcVar27);\n  cVar2 = *pcVar5;\n  if ((((cVar2 == '\"') || (cVar2 == '\'')) || (cVar2 == '[')) || (cVar2 == '`')) {\n    iVar6 = (*(code *)(PTR_LAB_0015c66c + 0x4688))(pcVar5);\n    pcVar19 = param_2 + iVar6;\n    *(undefined4 *)param_4 = 1;\n    if (pcVar19 == (char *)0x0) goto LAB_0005311c;\n  }\n  else {\n    pcVar19 = param_2;\n    while( true ) {\n      cVar2 = *pcVar19;\n      puVar13 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xf68);\n      pcVar15 = local_a4;\n      do {\n        puVar14 = puVar13 + 4;\n        *(undefined4 *)pcVar15 = *puVar13;\n        pcVar22 = (code *)puVar13[1];\n        uVar21 = puVar13[2];\n        pcVar18 = (char *)puVar13[3];\n        *(code **)(pcVar15 + 4) = pcVar22;\n        *(undefined4 *)(pcVar15 + 8) = uVar21;\n        *(char **)(pcVar15 + 0xc) = pcVar18;\n        puVar13 = puVar14;\n        pcVar15 = pcVar15 + 0x10;\n      } while (puVar14 != (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8));\n      if ((-1 < cVar2) && (local_a4[cVar2] == '\0')) break;\n      pcVar19 = pcVar19 + 1;\n    }\n    bVar1 = param_2 == pcVar19;\n    param_2 = pcVar19 + -(int)param_2;\n    if (bVar1) {\nLAB_0005311c:\n      (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n      pcVar19 = (char *)0x0;\n      goto LAB_000530c4;\n    }\n    param_2 = pcVar5 + (int)param_2;\n    *param_2 = '\0';\n  }\n  *param_3 = pcVar5;\nLAB_000530c4:\n  if (local_24 == *(int *)puVar4) {\n    return pcVar19;\n  }\n  iVar6 = local_24;\n  puVar31 = PTR___stack_chk_fail_0015ca14;\n  (*(code *)PTR___stack_chk_fail_0015ca14)();\n  piVar7 = *(int **)(puVar31 + 0x1098c8);\n  local_e0 = puVar4;\n  local_ec = *piVar7;\n  iVar25 = 0x40;\n  pcVar19 = pcVar18;\n  pcVar20 = pcVar22;\n  puVar9 = auStack_12c;\n  pcVar24 = (code *)0x0;\n  local_e8 = pcVar5;\n  local_e4 = param_2;\n  local_dc = param_3;\n  local_d8 = pcVar27;\n  local_d4 = param_4;\n  local_d0 = param_1;\nLAB_000531e8:\n  do {\n    pcVar30 = pcVar24;\n    pcVar24 = pcVar30 + 1;\n    pcVar8 = pcVar24;\n    if ((-1 < (char)pcVar22[(int)pcVar30]) &&\n       (*(char *)(iVar6 + (char)pcVar22[(int)pcVar30]) == '\0')) {\n      if ((int)pcVar24 < 0x1645b0) goto LAB_000531e8;\n      pcVar8 = pcVar30 + 2;\n      pcVar30 = pcVar24;\n      if (pcVar24 == (code *)&_gp_1) {\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        goto LAB_00053398;\n      }\n    }\n    if ((int)pcVar8 < 0x1645b0) {\n      do {\n        if ((-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')\n           ) goto LAB_00053254;\n        pcVar8 = pcVar8 + 1;\n      } while (pcVar8 != (code *)&_gp_1);\n      pcVar24 = (code *)(&_gp_1 + -(int)pcVar30);\nLAB_00053254:\n      if (iVar25 < (int)pcVar24) {\n        pcVar19 = (char *)((int)pcVar24 << 1);\n        uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;\nLAB_00053270:\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        pcVar20 = pcVar24;\n        puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);\n        if (puVar9 == (undefined1 *)0x0) {\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }\n        iVar25 = (int)pcVar24 << 1;\n      }\n      pcVar20 = pcVar24;\n      if (0 < (int)pcVar24) goto LAB_000532c0;\n    }\n    else {\n      pcVar19 = &SUB_00000002;\n      if (iVar25 < 1) {\n        uVar26 = 0;\n        pcVar24 = (code *)0x1;\n        goto LAB_00053270;\n      }\n      pcVar24 = (code *)0x1;\nLAB_000532c0:\n      iVar10 = 0;\n      do {\n        cVar16 = pcVar22[(int)(pcVar30 + iVar10)];\n        if ((byte)cVar16 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }\n        pcVar20 = (code *)(puVar9 + iVar10);\n        iVar10 = iVar10 + 1;\n        *pcVar20 = cVar16;\n        pcVar20 = pcVar24;\n      } while (iVar10 < (int)pcVar24);\n    }\n    pcVar19 = (char *)0x0;\n    pcVar5 = (char *)(*local_ac)(pcVar18,0,puVar9);\n    local_150 = pcVar30;\n    local_14c = pcVar8;\n    if ((0x1645af < (int)(pcVar8 + 1)) || (pcVar24 = pcVar8 + 1, pcVar5 != (char *)0x0)) break;\n  } while( true );\n  if (puVar9 == auStack_12c) {\n    if (pcVar5 == (char *)0x65) {\nLAB_00053398:\n      pcVar5 = (char *)0x0;\n    }\n  }\n  else {\nLAB_000533c0:\n    (**(code **)(puVar31 + 0x109484))(puVar9);\n    if (pcVar5 == (char *)0x65) {\n      pcVar5 = (char *)0x0;\n    }\n  }\n  if (local_ec == *piVar7) {\n    return pcVar5;\n  }\n  pcVar32 = *(code **)(puVar31 + 0x1098ac);\n  iVar6 = local_ec;\n  (*pcVar32)();\n  local_19c = *(uint *)(iVar6 + 0x84);\n  iVar10 = *(int *)(pcVar32 + 0x1092d0);\n  pcVar24 = *(code **)(iVar6 + 0x80);\n  iVar25 = *(int *)(pcVar32 + 0x1092a4);\n  pcVar8 = pcVar24 + (local_19c - 6);\n  pcVar30 = pcVar20 + (int)local_150;\n  pcVar22 = pcVar20;\nLAB_00053480:\n  if (pcVar30 <= pcVar22) {\n    return (char *)0x0;\n  }\n  do {\n    cVar16 = *pcVar22;\n    uVar26 = (uint)(byte)cVar16;\n    pcVar28 = pcVar22 + 1;\n    pcVar23 = pcVar24;\n    if ((char)cVar16 < '\0') {\n      if (0xbf < uVar26) {\n        uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n        if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)) {\n          if (uVar26 < 0x80) {\n            uVar26 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);\n          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if (iVar11 != 0) break;\n    }\n    else {\n      local_194 = (int)pcVar22 - (int)pcVar20;\n      if (*(char *)(iVar6 + uVar26) != '\0') goto LAB_000535b0;\n    }\n    pcVar22 = pcVar28;\n    if (pcVar30 <= pcVar28) goto LAB_00053644;\n  } while( true );\n  local_194 = (int)pcVar22 - (int)pcVar20;\n  do {\n    while( true ) {\n      uVar26 = (*(code *)(iVar10 + 0x2d68))(uVar26,*(undefined4 *)(iVar6 + 0x88));\n      pcVar29 = pcVar28;\n      if (uVar26 != 0) {\n        if (uVar26 < 0x80) {\n          *pcVar23 = SUB41(uVar26,0);\n          pcVar23 = pcVar23 + 1;\n        }\n        else {\n          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);\n          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);\n          if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }\n        }\n      }\n      while( true ) {\n        pcVar22 = pcVar29;\n        if (pcVar30 <= pcVar29) goto LAB_00053608;\n        if (pcVar8 < pcVar23) {\n          uVar26 = local_19c * 2;\n          pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26);\n          if (pcVar24 == (code *)0x0) {\n            return &DAT_00000007;\n          }\n          pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));\n          (**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);\n          (**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));\n          pcVar8 = pcVar24 + (uVar26 - 6);\n          *(code **)(iVar6 + 0x80) = pcVar24;\n          *(uint *)(iVar6 + 0x84) = uVar26;\n          local_19c = uVar26;\n        }\n        cVar16 = *pcVar29;\n        uVar26 = (uint)(byte)cVar16;\n        if ((char)cVar16 < '\0') break;\n        if (*(char *)(iVar6 + uVar26) == '\0') goto LAB_00053608;\n        pcVar28 = pcVar29 + 1;\nLAB_000535b0:\n        if (uVar26 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)uVar26 + 0x20);\n        }\n        *pcVar23 = cVar16;\n        pcVar23 = pcVar23 + 1;\n        pcVar29 = pcVar28;\n      }\n      pcVar28 = pcVar29 + 1;\n      if (uVar26 < 0xc0) break;\n      uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n      if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80)) {\n        if (uVar26 < 0x80) goto LAB_00053748;\n      }\n      else {\n        do {\n          pcVar28 = pcVar28 + 1;\n          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n          if (pcVar30 == pcVar28) break;\n          uVar12 = (uint)(byte)*pcVar28;\n        } while ((uVar12 & 0xffffffc0) == 0x80);\n        if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);\n          uVar26 = 0xfffd;\n          goto joined_r0x00053724;\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if ((iVar11 == 0) &&\n         ((pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))\n         )) goto LAB_00053608;\n    }\n    iVar11 = FUN_00042fcc(iVar6,uVar26);\njoined_r0x00053724:\n    pcVar22 = pcVar28;\n  } while (iVar11 != 0);\nLAB_00053608:\n  pcVar18 = (char *)(*local_14c)(pcVar19,0,pcVar24,(int)pcVar23 - (int)pcVar24,local_194,\n                                 (int)pcVar29 - (int)pcVar20);\n  if (pcVar18 != (char *)0x0) {\n    if (pcVar18 == (char *)0x65) {\nLAB_00053644:\n      pcVar18 = (char *)0x0;\n    }\n    return pcVar18;\n  }\n  goto LAB_00053480;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "undefined1 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "code cVar16;" type_identifier identifier ;) (declaration "code cVar17;" type_identifier identifier ;) (declaration "char *pcVar18;" primitive_type (pointer_declarator "*pcVar18" * identifier) ;) (declaration "char *pcVar19;" primitive_type (pointer_declarator "*pcVar19" * identifier) ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "undefined4 uVar21;" type_identifier identifier ;) (declaration "code *pcVar22;" type_identifier (pointer_declarator "*pcVar22" * identifier) ;) (declaration "code *pcVar23;" type_identifier (pointer_declarator "*pcVar23" * identifier) ;) (declaration "code *pcVar24;" type_identifier (pointer_declarator "*pcVar24" * identifier) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "char *pcVar27;" primitive_type (pointer_declarator "*pcVar27" * identifier) ;) (declaration "code *pcVar28;" type_identifier (pointer_declarator "*pcVar28" * identifier) ;) (declaration "code *pcVar29;" type_identifier (pointer_declarator "*pcVar29" * identifier) ;) (declaration "code *pcVar30;" type_identifier (pointer_declarator "*pcVar30" * identifier) ;) (declaration "undefined *puVar31;" type_identifier (pointer_declarator "*puVar31" * identifier) ;) (declaration "code *pcVar32;" type_identifier (pointer_declarator "*pcVar32" * identifier) ;) (declaration "uint local_19c;" type_identifier identifier ;) (declaration "int local_194;" primitive_type identifier ;) (declaration "code *local_150;" type_identifier (pointer_declarator "*local_150" * identifier) ;) (declaration "code *local_14c;" type_identifier (pointer_declarator "*local_14c" * identifier) ;) (declaration "undefined1 auStack_12c [64];" type_identifier (array_declarator "auStack_12c [64]" identifier [ number_literal ]) ;) (declaration "int local_ec;" primitive_type identifier ;) (declaration "char *local_e8;" primitive_type (pointer_declarator "*local_e8" * identifier) ;) (declaration "char *local_e4;" primitive_type (pointer_declarator "*local_e4" * identifier) ;) (declaration "undefined *local_e0;" type_identifier (pointer_declarator "*local_e0" * identifier) ;) (declaration "undefined4 *local_dc;" type_identifier (pointer_declarator "*local_dc" * identifier) ;) (declaration "char *local_d8;" primitive_type (pointer_declarator "*local_d8" * identifier) ;) (declaration "code *local_d4;" type_identifier (pointer_declarator "*local_d4" * identifier) ;) (declaration "undefined4 *local_d0;" type_identifier (pointer_declarator "*local_d0" * identifier) ;) (declaration "code *local_ac;" type_identifier (pointer_declarator "*local_ac" * identifier) ;) (declaration "char local_a4 [4];" primitive_type (array_declarator "local_a4 [4]" identifier [ number_literal ]) ;) (declaration "undefined4 local_a0 [31];" type_identifier (array_declarator "local_a0 [31]" identifier [ number_literal ]) ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "puVar4 = PTR___stack_chk_guard_0015ca30;" (assignment_expression "puVar4 = PTR___stack_chk_guard_0015ca30" identifier = identifier) ;) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_0015ca30;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_0015ca30" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0015ca30" * (cast_expression "(int *)PTR___stack_chk_guard_0015ca30" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar22 = param_4;" (assignment_expression "pcVar22 = param_4" identifier = identifier) ;) (expression_statement "pcVar5 = (char *)(*(code *)PTR_strlen_0015c9c8)(param_2);" (assignment_expression "pcVar5 = (char *)(*(code *)PTR_strlen_0015c9c8)(param_2)" identifier = (cast_expression "(char *)(*(code *)PTR_strlen_0015c9c8)(param_2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strlen_0015c9c8)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_0015c9c8)" ( (pointer_expression "*(code *)PTR_strlen_0015c9c8" * (cast_expression "(code *)PTR_strlen_0015c9c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier ))))) ;) (expression_statement "pcVar27 = pcVar5 + 1;" (assignment_expression "pcVar27 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (expression_statement "pcVar18 = pcVar27;" (assignment_expression "pcVar18 = pcVar27" identifier = identifier) ;) (expression_statement "pcVar5 = (char *)sqlite3_malloc64(pcVar27 < pcVar5);" (assignment_expression "pcVar5 = (char *)sqlite3_malloc64(pcVar27 < pcVar5)" identifier = (cast_expression "(char *)sqlite3_malloc64(pcVar27 < pcVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3_malloc64(pcVar27 < pcVar5)" identifier (argument_list "(pcVar27 < pcVar5)" ( (binary_expression "pcVar27 < pcVar5" identifier < identifier) ))))) ;) (expression_statement "*(undefined4 *)param_4 = 0;" (assignment_expression "*(undefined4 *)param_4 = 0" (pointer_expression "*(undefined4 *)param_4" * (cast_expression "(undefined4 *)param_4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" * identifier) = number_literal) ;) (expression_statement "puVar31 = PTR_sqlite3_free_0015c5ec;" (assignment_expression "puVar31 = PTR_sqlite3_free_0015c5ec" identifier = identifier) ;) (if_statement "if (pcVar5 == (char *)0x0) {\n    *param_1 = 7;\n    (*(code *)puVar31)(0);\n    pcVar19 = (char *)0x0;\n    goto LAB_000530c4;\n  }" if (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *param_1 = 7;\n    (*(code *)puVar31)(0);\n    pcVar19 = (char *)0x0;\n    goto LAB_000530c4;\n  }" { (expression_statement "*param_1 = 7;" (assignment_expression "*param_1 = 7" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "(*(code *)puVar31)(0);" (call_expression "(*(code *)puVar31)(0)" (parenthesized_expression "(*(code *)puVar31)" ( (pointer_expression "*(code *)puVar31" * (cast_expression "(code *)puVar31" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0)" ( number_literal ))) ;) (expression_statement "pcVar19 = (char *)0x0;" (assignment_expression "pcVar19 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000530c4;" goto statement_identifier ;) })) (expression_statement "pcVar18 = param_2;" (assignment_expression "pcVar18 = param_2" identifier = identifier) ;) (expression_statement "(*(code *)PTR_memcpy_0015ca34)(pcVar5,param_2,pcVar27);" (call_expression "(*(code *)PTR_memcpy_0015ca34)(pcVar5,param_2,pcVar27)" (parenthesized_expression "(*(code *)PTR_memcpy_0015ca34)" ( (pointer_expression "*(code *)PTR_memcpy_0015ca34" * (cast_expression "(code *)PTR_memcpy_0015ca34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar5,param_2,pcVar27)" ( identifier , identifier , identifier ))) ;) (expression_statement "cVar2 = *pcVar5;" (assignment_expression "cVar2 = *pcVar5" identifier = (pointer_expression "*pcVar5" * identifier)) ;) (if_statement "if ((((cVar2 == '\"') || (cVar2 == '\'')) || (cVar2 == '[')) || (cVar2 == '`')) {\n    iVar6 = (*(code *)(PTR_LAB_0015c66c + 0x4688))(pcVar5);\n    pcVar19 = param_2 + iVar6;\n    *(undefined4 *)param_4 = 1;\n    if (pcVar19 == (char *)0x0) goto LAB_0005311c;\n  }\n  else {\n    pcVar19 = param_2;\n    while( true ) {\n      cVar2 = *pcVar19;\n      puVar13 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xf68);\n      pcVar15 = local_a4;\n      do {\n        puVar14 = puVar13 + 4;\n        *(undefined4 *)pcVar15 = *puVar13;\n        pcVar22 = (code *)puVar13[1];\n        uVar21 = puVar13[2];\n        pcVar18 = (char *)puVar13[3];\n        *(code **)(pcVar15 + 4) = pcVar22;\n        *(undefined4 *)(pcVar15 + 8) = uVar21;\n        *(char **)(pcVar15 + 0xc) = pcVar18;\n        puVar13 = puVar14;\n        pcVar15 = pcVar15 + 0x10;\n      } while (puVar14 != (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8));\n      if ((-1 < cVar2) && (local_a4[cVar2] == '\0')) break;\n      pcVar19 = pcVar19 + 1;\n    }\n    bVar1 = param_2 == pcVar19;\n    param_2 = pcVar19 + -(int)param_2;\n    if (bVar1) {\nLAB_0005311c:\n      (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n      pcVar19 = (char *)0x0;\n      goto LAB_000530c4;\n    }\n    param_2 = pcVar5 + (int)param_2;\n    *param_2 = '\0';\n  }" if (parenthesized_expression "((((cVar2 == '\"') || (cVar2 == '\'')) || (cVar2 == '[')) || (cVar2 == '`'))" ( (binary_expression "(((cVar2 == '\"') || (cVar2 == '\'')) || (cVar2 == '[')) || (cVar2 == '`')" (parenthesized_expression "(((cVar2 == '\"') || (cVar2 == '\'')) || (cVar2 == '['))" ( (binary_expression "((cVar2 == '\"') || (cVar2 == '\'')) || (cVar2 == '[')" (parenthesized_expression "((cVar2 == '\"') || (cVar2 == '\''))" ( (binary_expression "(cVar2 == '\"') || (cVar2 == '\'')" (parenthesized_expression "(cVar2 == '\"')" ( (binary_expression "cVar2 == '\"'" identifier == (char_literal "'\"'" ' escape_sequence ')) )) || (parenthesized_expression "(cVar2 == '\'')" ( (binary_expression "cVar2 == '\''" identifier == (char_literal "'\''" ' escape_sequence ')) ))) )) || (parenthesized_expression "(cVar2 == '[')" ( (binary_expression "cVar2 == '['" identifier == (char_literal "'['" ' character ')) ))) )) || (parenthesized_expression "(cVar2 == '`')" ( (binary_expression "cVar2 == '`'" identifier == (char_literal "'`'" ' character ')) ))) )) (compound_statement "{\n    iVar6 = (*(code *)(PTR_LAB_0015c66c + 0x4688))(pcVar5);\n    pcVar19 = param_2 + iVar6;\n    *(undefined4 *)param_4 = 1;\n    if (pcVar19 == (char *)0x0) goto LAB_0005311c;\n  }" { (expression_statement "iVar6 = (*(code *)(PTR_LAB_0015c66c + 0x4688))(pcVar5);" (assignment_expression "iVar6 = (*(code *)(PTR_LAB_0015c66c + 0x4688))(pcVar5)" identifier = (call_expression "(*(code *)(PTR_LAB_0015c66c + 0x4688))(pcVar5)" (parenthesized_expression "(*(code *)(PTR_LAB_0015c66c + 0x4688))" ( (pointer_expression "*(code *)(PTR_LAB_0015c66c + 0x4688)" * (cast_expression "(code *)(PTR_LAB_0015c66c + 0x4688)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015c66c + 0x4688)" ( (binary_expression "PTR_LAB_0015c66c + 0x4688" identifier + number_literal) )))) )) (argument_list "(pcVar5)" ( identifier )))) ;) (expression_statement "pcVar19 = param_2 + iVar6;" (assignment_expression "pcVar19 = param_2 + iVar6" identifier = (binary_expression "param_2 + iVar6" identifier + identifier)) ;) (expression_statement "*(undefined4 *)param_4 = 1;" (assignment_expression "*(undefined4 *)param_4 = 1" (pointer_expression "*(undefined4 *)param_4" * (cast_expression "(undefined4 *)param_4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (if_statement "if (pcVar19 == (char *)0x0) goto LAB_0005311c;" if (parenthesized_expression "(pcVar19 == (char *)0x0)" ( (binary_expression "pcVar19 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0005311c;" goto statement_identifier ;)) }) (else_clause "else {\n    pcVar19 = param_2;\n    while( true ) {\n      cVar2 = *pcVar19;\n      puVar13 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xf68);\n      pcVar15 = local_a4;\n      do {\n        puVar14 = puVar13 + 4;\n        *(undefined4 *)pcVar15 = *puVar13;\n        pcVar22 = (code *)puVar13[1];\n        uVar21 = puVar13[2];\n        pcVar18 = (char *)puVar13[3];\n        *(code **)(pcVar15 + 4) = pcVar22;\n        *(undefined4 *)(pcVar15 + 8) = uVar21;\n        *(char **)(pcVar15 + 0xc) = pcVar18;\n        puVar13 = puVar14;\n        pcVar15 = pcVar15 + 0x10;\n      } while (puVar14 != (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8));\n      if ((-1 < cVar2) && (local_a4[cVar2] == '\0')) break;\n      pcVar19 = pcVar19 + 1;\n    }\n    bVar1 = param_2 == pcVar19;\n    param_2 = pcVar19 + -(int)param_2;\n    if (bVar1) {\nLAB_0005311c:\n      (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n      pcVar19 = (char *)0x0;\n      goto LAB_000530c4;\n    }\n    param_2 = pcVar5 + (int)param_2;\n    *param_2 = '\0';\n  }" else (compound_statement "{\n    pcVar19 = param_2;\n    while( true ) {\n      cVar2 = *pcVar19;\n      puVar13 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xf68);\n      pcVar15 = local_a4;\n      do {\n        puVar14 = puVar13 + 4;\n        *(undefined4 *)pcVar15 = *puVar13;\n        pcVar22 = (code *)puVar13[1];\n        uVar21 = puVar13[2];\n        pcVar18 = (char *)puVar13[3];\n        *(code **)(pcVar15 + 4) = pcVar22;\n        *(undefined4 *)(pcVar15 + 8) = uVar21;\n        *(char **)(pcVar15 + 0xc) = pcVar18;\n        puVar13 = puVar14;\n        pcVar15 = pcVar15 + 0x10;\n      } while (puVar14 != (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8));\n      if ((-1 < cVar2) && (local_a4[cVar2] == '\0')) break;\n      pcVar19 = pcVar19 + 1;\n    }\n    bVar1 = param_2 == pcVar19;\n    param_2 = pcVar19 + -(int)param_2;\n    if (bVar1) {\nLAB_0005311c:\n      (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n      pcVar19 = (char *)0x0;\n      goto LAB_000530c4;\n    }\n    param_2 = pcVar5 + (int)param_2;\n    *param_2 = '\0';\n  }" { (expression_statement "pcVar19 = param_2;" (assignment_expression "pcVar19 = param_2" identifier = identifier) ;) (while_statement "while( true ) {\n      cVar2 = *pcVar19;\n      puVar13 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xf68);\n      pcVar15 = local_a4;\n      do {\n        puVar14 = puVar13 + 4;\n        *(undefined4 *)pcVar15 = *puVar13;\n        pcVar22 = (code *)puVar13[1];\n        uVar21 = puVar13[2];\n        pcVar18 = (char *)puVar13[3];\n        *(code **)(pcVar15 + 4) = pcVar22;\n        *(undefined4 *)(pcVar15 + 8) = uVar21;\n        *(char **)(pcVar15 + 0xc) = pcVar18;\n        puVar13 = puVar14;\n        pcVar15 = pcVar15 + 0x10;\n      } while (puVar14 != (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8));\n      if ((-1 < cVar2) && (local_a4[cVar2] == '\0')) break;\n      pcVar19 = pcVar19 + 1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      cVar2 = *pcVar19;\n      puVar13 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xf68);\n      pcVar15 = local_a4;\n      do {\n        puVar14 = puVar13 + 4;\n        *(undefined4 *)pcVar15 = *puVar13;\n        pcVar22 = (code *)puVar13[1];\n        uVar21 = puVar13[2];\n        pcVar18 = (char *)puVar13[3];\n        *(code **)(pcVar15 + 4) = pcVar22;\n        *(undefined4 *)(pcVar15 + 8) = uVar21;\n        *(char **)(pcVar15 + 0xc) = pcVar18;\n        puVar13 = puVar14;\n        pcVar15 = pcVar15 + 0x10;\n      } while (puVar14 != (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8));\n      if ((-1 < cVar2) && (local_a4[cVar2] == '\0')) break;\n      pcVar19 = pcVar19 + 1;\n    }" { (expression_statement "cVar2 = *pcVar19;" (assignment_expression "cVar2 = *pcVar19" identifier = (pointer_expression "*pcVar19" * identifier)) ;) (expression_statement "puVar13 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xf68);" (assignment_expression "puVar13 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xf68)" identifier = (cast_expression "(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xf68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_LE_FTS4_0015c5f4 + 0xf68)" ( (binary_expression "PTR_s_LE_FTS4_0015c5f4 + 0xf68" identifier + number_literal) )))) ;) (expression_statement "pcVar15 = local_a4;" (assignment_expression "pcVar15 = local_a4" identifier = identifier) ;) (do_statement "do {\n        puVar14 = puVar13 + 4;\n        *(undefined4 *)pcVar15 = *puVar13;\n        pcVar22 = (code *)puVar13[1];\n        uVar21 = puVar13[2];\n        pcVar18 = (char *)puVar13[3];\n        *(code **)(pcVar15 + 4) = pcVar22;\n        *(undefined4 *)(pcVar15 + 8) = uVar21;\n        *(char **)(pcVar15 + 0xc) = pcVar18;\n        puVar13 = puVar14;\n        pcVar15 = pcVar15 + 0x10;\n      } while (puVar14 != (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8));" do (compound_statement "{\n        puVar14 = puVar13 + 4;\n        *(undefined4 *)pcVar15 = *puVar13;\n        pcVar22 = (code *)puVar13[1];\n        uVar21 = puVar13[2];\n        pcVar18 = (char *)puVar13[3];\n        *(code **)(pcVar15 + 4) = pcVar22;\n        *(undefined4 *)(pcVar15 + 8) = uVar21;\n        *(char **)(pcVar15 + 0xc) = pcVar18;\n        puVar13 = puVar14;\n        pcVar15 = pcVar15 + 0x10;\n      }" { (expression_statement "puVar14 = puVar13 + 4;" (assignment_expression "puVar14 = puVar13 + 4" identifier = (binary_expression "puVar13 + 4" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)pcVar15 = *puVar13;" (assignment_expression "*(undefined4 *)pcVar15 = *puVar13" (pointer_expression "*(undefined4 *)pcVar15" * (cast_expression "(undefined4 *)pcVar15" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "pcVar22 = (code *)puVar13[1];" (assignment_expression "pcVar22 = (code *)puVar13[1]" identifier = (cast_expression "(code *)puVar13[1]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[1]" identifier [ number_literal ]))) ;) (expression_statement "uVar21 = puVar13[2];" (assignment_expression "uVar21 = puVar13[2]" identifier = (subscript_expression "puVar13[2]" identifier [ number_literal ])) ;) (expression_statement "pcVar18 = (char *)puVar13[3];" (assignment_expression "pcVar18 = (char *)puVar13[3]" identifier = (cast_expression "(char *)puVar13[3]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[3]" identifier [ number_literal ]))) ;) (expression_statement "*(code **)(pcVar15 + 4) = pcVar22;" (assignment_expression "*(code **)(pcVar15 + 4) = pcVar22" (pointer_expression "*(code **)(pcVar15 + 4)" * (cast_expression "(code **)(pcVar15 + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 4)" ( (binary_expression "pcVar15 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pcVar15 + 8) = uVar21;" (assignment_expression "*(undefined4 *)(pcVar15 + 8) = uVar21" (pointer_expression "*(undefined4 *)(pcVar15 + 8)" * (cast_expression "(undefined4 *)(pcVar15 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 8)" ( (binary_expression "pcVar15 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(pcVar15 + 0xc) = pcVar18;" (assignment_expression "*(char **)(pcVar15 + 0xc) = pcVar18" (pointer_expression "*(char **)(pcVar15 + 0xc)" * (cast_expression "(char **)(pcVar15 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0xc)" ( (binary_expression "pcVar15 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar13 = puVar14;" (assignment_expression "puVar13 = puVar14" identifier = identifier) ;) (expression_statement "pcVar15 = pcVar15 + 0x10;" (assignment_expression "pcVar15 = pcVar15 + 0x10" identifier = (binary_expression "pcVar15 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar14 != (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8))" ( (binary_expression "puVar14 != (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8)" identifier != (cast_expression "(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_LE_FTS4_0015c5f4 + 0xfe8)" ( (binary_expression "PTR_s_LE_FTS4_0015c5f4 + 0xfe8" identifier + number_literal) )))) )) ;) (if_statement "if ((-1 < cVar2) && (local_a4[cVar2] == '\0')) break;" if (parenthesized_expression "((-1 < cVar2) && (local_a4[cVar2] == '\0'))" ( (binary_expression "(-1 < cVar2) && (local_a4[cVar2] == '\0')" (parenthesized_expression "(-1 < cVar2)" ( (binary_expression "-1 < cVar2" number_literal < identifier) )) && (parenthesized_expression "(local_a4[cVar2] == '\0')" ( (binary_expression "local_a4[cVar2] == '\0'" (subscript_expression "local_a4[cVar2]" identifier [ identifier ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (break_statement "break;" break ;)) (expression_statement "pcVar19 = pcVar19 + 1;" (assignment_expression "pcVar19 = pcVar19 + 1" identifier = (binary_expression "pcVar19 + 1" identifier + number_literal)) ;) })) (expression_statement "bVar1 = param_2 == pcVar19;" (assignment_expression "bVar1 = param_2 == pcVar19" identifier = (binary_expression "param_2 == pcVar19" identifier == identifier)) ;) (expression_statement "param_2 = pcVar19 + -(int)param_2;" (assignment_expression "param_2 = pcVar19 + -(int)param_2" identifier = (binary_expression "pcVar19 + -(int)param_2" identifier + (unary_expression "-(int)param_2" - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (if_statement "if (bVar1) {\nLAB_0005311c:\n      (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n      pcVar19 = (char *)0x0;\n      goto LAB_000530c4;\n    }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\nLAB_0005311c:\n      (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n      pcVar19 = (char *)0x0;\n      goto LAB_000530c4;\n    }" { (labeled_statement "LAB_0005311c:\n      (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);" statement_identifier : (expression_statement "(*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);" (call_expression "(*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5)" (parenthesized_expression "(*(code *)PTR_sqlite3_free_0015c5ec)" ( (pointer_expression "*(code *)PTR_sqlite3_free_0015c5ec" * (cast_expression "(code *)PTR_sqlite3_free_0015c5ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar5)" ( identifier ))) ;)) (expression_statement "pcVar19 = (char *)0x0;" (assignment_expression "pcVar19 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000530c4;" goto statement_identifier ;) })) (expression_statement "param_2 = pcVar5 + (int)param_2;" (assignment_expression "param_2 = pcVar5 + (int)param_2" identifier = (binary_expression "pcVar5 + (int)param_2" identifier + (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*param_2 = '\0';" (assignment_expression "*param_2 = '\0'" (pointer_expression "*param_2" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) }))) (expression_statement "*param_3 = pcVar5;" (assignment_expression "*param_3 = pcVar5" (pointer_expression "*param_3" * identifier) = identifier) ;) (labeled_statement "LAB_000530c4:\n  if (local_24 == *(int *)puVar4) {\n    return pcVar19;\n  }" statement_identifier : (if_statement "if (local_24 == *(int *)puVar4) {\n    return pcVar19;\n  }" if (parenthesized_expression "(local_24 == *(int *)puVar4)" ( (binary_expression "local_24 == *(int *)puVar4" identifier == (pointer_expression "*(int *)puVar4" * (cast_expression "(int *)puVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return pcVar19;\n  }" { (return_statement "return pcVar19;" return identifier ;) }))) (expression_statement "iVar6 = local_24;" (assignment_expression "iVar6 = local_24" identifier = identifier) ;) (expression_statement "puVar31 = PTR___stack_chk_fail_0015ca14;" (assignment_expression "puVar31 = PTR___stack_chk_fail_0015ca14" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0015ca14)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015ca14)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015ca14)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0015ca14" * (cast_expression "(code *)PTR___stack_chk_fail_0015ca14" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar7 = *(int **)(puVar31 + 0x1098c8);" (assignment_expression "piVar7 = *(int **)(puVar31 + 0x1098c8)" identifier = (pointer_expression "*(int **)(puVar31 + 0x1098c8)" * (cast_expression "(int **)(puVar31 + 0x1098c8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar31 + 0x1098c8)" ( (binary_expression "puVar31 + 0x1098c8" identifier + number_literal) ))))) ;) (expression_statement "local_e0 = puVar4;" (assignment_expression "local_e0 = puVar4" identifier = identifier) ;) (expression_statement "local_ec = *piVar7;" (assignment_expression "local_ec = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "iVar25 = 0x40;" (assignment_expression "iVar25 = 0x40" identifier = number_literal) ;) (expression_statement "pcVar19 = pcVar18;" (assignment_expression "pcVar19 = pcVar18" identifier = identifier) ;) (expression_statement "pcVar20 = pcVar22;" (assignment_expression "pcVar20 = pcVar22" identifier = identifier) ;) (expression_statement "puVar9 = auStack_12c;" (assignment_expression "puVar9 = auStack_12c" identifier = identifier) ;) (expression_statement "pcVar24 = (code *)0x0;" (assignment_expression "pcVar24 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_e8 = pcVar5;" (assignment_expression "local_e8 = pcVar5" identifier = identifier) ;) (expression_statement "local_e4 = param_2;" (assignment_expression "local_e4 = param_2" identifier = identifier) ;) (expression_statement "local_dc = param_3;" (assignment_expression "local_dc = param_3" identifier = identifier) ;) (expression_statement "local_d8 = pcVar27;" (assignment_expression "local_d8 = pcVar27" identifier = identifier) ;) (expression_statement "local_d4 = param_4;" (assignment_expression "local_d4 = param_4" identifier = identifier) ;) (expression_statement "local_d0 = param_1;" (assignment_expression "local_d0 = param_1" identifier = identifier) ;) (labeled_statement "LAB_000531e8:\n  do {\n    pcVar30 = pcVar24;\n    pcVar24 = pcVar30 + 1;\n    pcVar8 = pcVar24;\n    if ((-1 < (char)pcVar22[(int)pcVar30]) &&\n       (*(char *)(iVar6 + (char)pcVar22[(int)pcVar30]) == '\0')) {\n      if ((int)pcVar24 < 0x1645b0) goto LAB_000531e8;\n      pcVar8 = pcVar30 + 2;\n      pcVar30 = pcVar24;\n      if (pcVar24 == (code *)&_gp_1) {\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        goto LAB_00053398;\n      }\n    }\n    if ((int)pcVar8 < 0x1645b0) {\n      do {\n        if ((-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')\n           ) goto LAB_00053254;\n        pcVar8 = pcVar8 + 1;\n      } while (pcVar8 != (code *)&_gp_1);\n      pcVar24 = (code *)(&_gp_1 + -(int)pcVar30);\nLAB_00053254:\n      if (iVar25 < (int)pcVar24) {\n        pcVar19 = (char *)((int)pcVar24 << 1);\n        uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;\nLAB_00053270:\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        pcVar20 = pcVar24;\n        puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);\n        if (puVar9 == (undefined1 *)0x0) {\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }\n        iVar25 = (int)pcVar24 << 1;\n      }\n      pcVar20 = pcVar24;\n      if (0 < (int)pcVar24) goto LAB_000532c0;\n    }\n    else {\n      pcVar19 = &SUB_00000002;\n      if (iVar25 < 1) {\n        uVar26 = 0;\n        pcVar24 = (code *)0x1;\n        goto LAB_00053270;\n      }\n      pcVar24 = (code *)0x1;\nLAB_000532c0:\n      iVar10 = 0;\n      do {\n        cVar16 = pcVar22[(int)(pcVar30 + iVar10)];\n        if ((byte)cVar16 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }\n        pcVar20 = (code *)(puVar9 + iVar10);\n        iVar10 = iVar10 + 1;\n        *pcVar20 = cVar16;\n        pcVar20 = pcVar24;\n      } while (iVar10 < (int)pcVar24);\n    }\n    pcVar19 = (char *)0x0;\n    pcVar5 = (char *)(*local_ac)(pcVar18,0,puVar9);\n    local_150 = pcVar30;\n    local_14c = pcVar8;\n    if ((0x1645af < (int)(pcVar8 + 1)) || (pcVar24 = pcVar8 + 1, pcVar5 != (char *)0x0)) break;\n  } while( true );" statement_identifier : (do_statement "do {\n    pcVar30 = pcVar24;\n    pcVar24 = pcVar30 + 1;\n    pcVar8 = pcVar24;\n    if ((-1 < (char)pcVar22[(int)pcVar30]) &&\n       (*(char *)(iVar6 + (char)pcVar22[(int)pcVar30]) == '\0')) {\n      if ((int)pcVar24 < 0x1645b0) goto LAB_000531e8;\n      pcVar8 = pcVar30 + 2;\n      pcVar30 = pcVar24;\n      if (pcVar24 == (code *)&_gp_1) {\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        goto LAB_00053398;\n      }\n    }\n    if ((int)pcVar8 < 0x1645b0) {\n      do {\n        if ((-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')\n           ) goto LAB_00053254;\n        pcVar8 = pcVar8 + 1;\n      } while (pcVar8 != (code *)&_gp_1);\n      pcVar24 = (code *)(&_gp_1 + -(int)pcVar30);\nLAB_00053254:\n      if (iVar25 < (int)pcVar24) {\n        pcVar19 = (char *)((int)pcVar24 << 1);\n        uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;\nLAB_00053270:\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        pcVar20 = pcVar24;\n        puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);\n        if (puVar9 == (undefined1 *)0x0) {\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }\n        iVar25 = (int)pcVar24 << 1;\n      }\n      pcVar20 = pcVar24;\n      if (0 < (int)pcVar24) goto LAB_000532c0;\n    }\n    else {\n      pcVar19 = &SUB_00000002;\n      if (iVar25 < 1) {\n        uVar26 = 0;\n        pcVar24 = (code *)0x1;\n        goto LAB_00053270;\n      }\n      pcVar24 = (code *)0x1;\nLAB_000532c0:\n      iVar10 = 0;\n      do {\n        cVar16 = pcVar22[(int)(pcVar30 + iVar10)];\n        if ((byte)cVar16 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }\n        pcVar20 = (code *)(puVar9 + iVar10);\n        iVar10 = iVar10 + 1;\n        *pcVar20 = cVar16;\n        pcVar20 = pcVar24;\n      } while (iVar10 < (int)pcVar24);\n    }\n    pcVar19 = (char *)0x0;\n    pcVar5 = (char *)(*local_ac)(pcVar18,0,puVar9);\n    local_150 = pcVar30;\n    local_14c = pcVar8;\n    if ((0x1645af < (int)(pcVar8 + 1)) || (pcVar24 = pcVar8 + 1, pcVar5 != (char *)0x0)) break;\n  } while( true );" do (compound_statement "{\n    pcVar30 = pcVar24;\n    pcVar24 = pcVar30 + 1;\n    pcVar8 = pcVar24;\n    if ((-1 < (char)pcVar22[(int)pcVar30]) &&\n       (*(char *)(iVar6 + (char)pcVar22[(int)pcVar30]) == '\0')) {\n      if ((int)pcVar24 < 0x1645b0) goto LAB_000531e8;\n      pcVar8 = pcVar30 + 2;\n      pcVar30 = pcVar24;\n      if (pcVar24 == (code *)&_gp_1) {\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        goto LAB_00053398;\n      }\n    }\n    if ((int)pcVar8 < 0x1645b0) {\n      do {\n        if ((-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')\n           ) goto LAB_00053254;\n        pcVar8 = pcVar8 + 1;\n      } while (pcVar8 != (code *)&_gp_1);\n      pcVar24 = (code *)(&_gp_1 + -(int)pcVar30);\nLAB_00053254:\n      if (iVar25 < (int)pcVar24) {\n        pcVar19 = (char *)((int)pcVar24 << 1);\n        uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;\nLAB_00053270:\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        pcVar20 = pcVar24;\n        puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);\n        if (puVar9 == (undefined1 *)0x0) {\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }\n        iVar25 = (int)pcVar24 << 1;\n      }\n      pcVar20 = pcVar24;\n      if (0 < (int)pcVar24) goto LAB_000532c0;\n    }\n    else {\n      pcVar19 = &SUB_00000002;\n      if (iVar25 < 1) {\n        uVar26 = 0;\n        pcVar24 = (code *)0x1;\n        goto LAB_00053270;\n      }\n      pcVar24 = (code *)0x1;\nLAB_000532c0:\n      iVar10 = 0;\n      do {\n        cVar16 = pcVar22[(int)(pcVar30 + iVar10)];\n        if ((byte)cVar16 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }\n        pcVar20 = (code *)(puVar9 + iVar10);\n        iVar10 = iVar10 + 1;\n        *pcVar20 = cVar16;\n        pcVar20 = pcVar24;\n      } while (iVar10 < (int)pcVar24);\n    }\n    pcVar19 = (char *)0x0;\n    pcVar5 = (char *)(*local_ac)(pcVar18,0,puVar9);\n    local_150 = pcVar30;\n    local_14c = pcVar8;\n    if ((0x1645af < (int)(pcVar8 + 1)) || (pcVar24 = pcVar8 + 1, pcVar5 != (char *)0x0)) break;\n  }" { (expression_statement "pcVar30 = pcVar24;" (assignment_expression "pcVar30 = pcVar24" identifier = identifier) ;) (expression_statement "pcVar24 = pcVar30 + 1;" (assignment_expression "pcVar24 = pcVar30 + 1" identifier = (binary_expression "pcVar30 + 1" identifier + number_literal)) ;) (expression_statement "pcVar8 = pcVar24;" (assignment_expression "pcVar8 = pcVar24" identifier = identifier) ;) (if_statement "if ((-1 < (char)pcVar22[(int)pcVar30]) &&\n       (*(char *)(iVar6 + (char)pcVar22[(int)pcVar30]) == '\0')) {\n      if ((int)pcVar24 < 0x1645b0) goto LAB_000531e8;\n      pcVar8 = pcVar30 + 2;\n      pcVar30 = pcVar24;\n      if (pcVar24 == (code *)&_gp_1) {\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        goto LAB_00053398;\n      }\n    }" if (parenthesized_expression "((-1 < (char)pcVar22[(int)pcVar30]) &&\n       (*(char *)(iVar6 + (char)pcVar22[(int)pcVar30]) == '\0'))" ( (binary_expression "(-1 < (char)pcVar22[(int)pcVar30]) &&\n       (*(char *)(iVar6 + (char)pcVar22[(int)pcVar30]) == '\0')" (parenthesized_expression "(-1 < (char)pcVar22[(int)pcVar30])" ( (binary_expression "-1 < (char)pcVar22[(int)pcVar30]" number_literal < (cast_expression "(char)pcVar22[(int)pcVar30]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pcVar22[(int)pcVar30]" identifier [ (cast_expression "(int)pcVar30" ( (type_descriptor "int" primitive_type) ) identifier) ]))) )) && (parenthesized_expression "(*(char *)(iVar6 + (char)pcVar22[(int)pcVar30]) == '\0')" ( (binary_expression "*(char *)(iVar6 + (char)pcVar22[(int)pcVar30]) == '\0'" (pointer_expression "*(char *)(iVar6 + (char)pcVar22[(int)pcVar30])" * (cast_expression "(char *)(iVar6 + (char)pcVar22[(int)pcVar30])" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + (char)pcVar22[(int)pcVar30])" ( (binary_expression "iVar6 + (char)pcVar22[(int)pcVar30]" identifier + (cast_expression "(char)pcVar22[(int)pcVar30]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pcVar22[(int)pcVar30]" identifier [ (cast_expression "(int)pcVar30" ( (type_descriptor "int" primitive_type) ) identifier) ]))) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      if ((int)pcVar24 < 0x1645b0) goto LAB_000531e8;\n      pcVar8 = pcVar30 + 2;\n      pcVar30 = pcVar24;\n      if (pcVar24 == (code *)&_gp_1) {\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        goto LAB_00053398;\n      }\n    }" { (if_statement "if ((int)pcVar24 < 0x1645b0) goto LAB_000531e8;" if (parenthesized_expression "((int)pcVar24 < 0x1645b0)" ( (binary_expression "(int)pcVar24 < 0x1645b0" (cast_expression "(int)pcVar24" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_000531e8;" goto statement_identifier ;)) (expression_statement "pcVar8 = pcVar30 + 2;" (assignment_expression "pcVar8 = pcVar30 + 2" identifier = (binary_expression "pcVar30 + 2" identifier + number_literal)) ;) (expression_statement "pcVar30 = pcVar24;" (assignment_expression "pcVar30 = pcVar24" identifier = identifier) ;) (if_statement "if (pcVar24 == (code *)&_gp_1) {\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        goto LAB_00053398;\n      }" if (parenthesized_expression "(pcVar24 == (code *)&_gp_1)" ( (binary_expression "pcVar24 == (code *)&_gp_1" identifier == (cast_expression "(code *)&_gp_1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&_gp_1" & identifier))) )) (compound_statement "{\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        goto LAB_00053398;\n      }" { (if_statement "if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }" if (parenthesized_expression "(puVar9 != auStack_12c)" ( (binary_expression "puVar9 != auStack_12c" identifier != identifier) )) (compound_statement "{\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }" { (expression_statement "(**(code **)(puVar31 + 0x109484))(puVar9);" (call_expression "(**(code **)(puVar31 + 0x109484))(puVar9)" (parenthesized_expression "(**(code **)(puVar31 + 0x109484))" ( (pointer_expression "**(code **)(puVar31 + 0x109484)" * (pointer_expression "*(code **)(puVar31 + 0x109484)" * (cast_expression "(code **)(puVar31 + 0x109484)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar31 + 0x109484)" ( (binary_expression "puVar31 + 0x109484" identifier + number_literal) ))))) )) (argument_list "(puVar9)" ( identifier ))) ;) })) (goto_statement "goto LAB_00053398;" goto statement_identifier ;) })) })) (if_statement "if ((int)pcVar8 < 0x1645b0) {\n      do {\n        if ((-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')\n           ) goto LAB_00053254;\n        pcVar8 = pcVar8 + 1;\n      } while (pcVar8 != (code *)&_gp_1);\n      pcVar24 = (code *)(&_gp_1 + -(int)pcVar30);\nLAB_00053254:\n      if (iVar25 < (int)pcVar24) {\n        pcVar19 = (char *)((int)pcVar24 << 1);\n        uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;\nLAB_00053270:\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        pcVar20 = pcVar24;\n        puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);\n        if (puVar9 == (undefined1 *)0x0) {\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }\n        iVar25 = (int)pcVar24 << 1;\n      }\n      pcVar20 = pcVar24;\n      if (0 < (int)pcVar24) goto LAB_000532c0;\n    }\n    else {\n      pcVar19 = &SUB_00000002;\n      if (iVar25 < 1) {\n        uVar26 = 0;\n        pcVar24 = (code *)0x1;\n        goto LAB_00053270;\n      }\n      pcVar24 = (code *)0x1;\nLAB_000532c0:\n      iVar10 = 0;\n      do {\n        cVar16 = pcVar22[(int)(pcVar30 + iVar10)];\n        if ((byte)cVar16 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }\n        pcVar20 = (code *)(puVar9 + iVar10);\n        iVar10 = iVar10 + 1;\n        *pcVar20 = cVar16;\n        pcVar20 = pcVar24;\n      } while (iVar10 < (int)pcVar24);\n    }" if (parenthesized_expression "((int)pcVar8 < 0x1645b0)" ( (binary_expression "(int)pcVar8 < 0x1645b0" (cast_expression "(int)pcVar8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      do {\n        if ((-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')\n           ) goto LAB_00053254;\n        pcVar8 = pcVar8 + 1;\n      } while (pcVar8 != (code *)&_gp_1);\n      pcVar24 = (code *)(&_gp_1 + -(int)pcVar30);\nLAB_00053254:\n      if (iVar25 < (int)pcVar24) {\n        pcVar19 = (char *)((int)pcVar24 << 1);\n        uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;\nLAB_00053270:\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        pcVar20 = pcVar24;\n        puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);\n        if (puVar9 == (undefined1 *)0x0) {\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }\n        iVar25 = (int)pcVar24 << 1;\n      }\n      pcVar20 = pcVar24;\n      if (0 < (int)pcVar24) goto LAB_000532c0;\n    }" { (do_statement "do {\n        if ((-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')\n           ) goto LAB_00053254;\n        pcVar8 = pcVar8 + 1;\n      } while (pcVar8 != (code *)&_gp_1);" do (compound_statement "{\n        if ((-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')\n           ) goto LAB_00053254;\n        pcVar8 = pcVar8 + 1;\n      }" { (if_statement "if ((-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')\n           ) goto LAB_00053254;" if (parenthesized_expression "((-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')\n           )" ( (binary_expression "(-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')" (parenthesized_expression "(-1 < (char)pcVar22[(int)pcVar8])" ( (binary_expression "-1 < (char)pcVar22[(int)pcVar8]" number_literal < (cast_expression "(char)pcVar22[(int)pcVar8]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pcVar22[(int)pcVar8]" identifier [ (cast_expression "(int)pcVar8" ( (type_descriptor "int" primitive_type) ) identifier) ]))) )) && (parenthesized_expression "(pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')" ( (comma_expression "pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0'" (assignment_expression "pcVar24 = pcVar8 + -(int)pcVar30" identifier = (binary_expression "pcVar8 + -(int)pcVar30" identifier + (unary_expression "-(int)pcVar30" - (cast_expression "(int)pcVar30" ( (type_descriptor "int" primitive_type) ) identifier)))) , (binary_expression "*(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0'" (pointer_expression "*(char *)(iVar6 + (char)pcVar22[(int)pcVar8])" * (cast_expression "(char *)(iVar6 + (char)pcVar22[(int)pcVar8])" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + (char)pcVar22[(int)pcVar8])" ( (binary_expression "iVar6 + (char)pcVar22[(int)pcVar8]" identifier + (cast_expression "(char)pcVar22[(int)pcVar8]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pcVar22[(int)pcVar8]" identifier [ (cast_expression "(int)pcVar8" ( (type_descriptor "int" primitive_type) ) identifier) ]))) )))) == (char_literal "'\0'" ' escape_sequence '))) ))) )) (goto_statement "goto LAB_00053254;" goto statement_identifier ;)) (expression_statement "pcVar8 = pcVar8 + 1;" (assignment_expression "pcVar8 = pcVar8 + 1" identifier = (binary_expression "pcVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pcVar8 != (code *)&_gp_1)" ( (binary_expression "pcVar8 != (code *)&_gp_1" identifier != (cast_expression "(code *)&_gp_1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&_gp_1" & identifier))) )) ;) (expression_statement "pcVar24 = (code *)(&_gp_1 + -(int)pcVar30);" (assignment_expression "pcVar24 = (code *)(&_gp_1 + -(int)pcVar30)" identifier = (cast_expression "(code *)(&_gp_1 + -(int)pcVar30)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + -(int)pcVar30)" ( (binary_expression "&_gp_1 + -(int)pcVar30" (pointer_expression "&_gp_1" & identifier) + (unary_expression "-(int)pcVar30" - (cast_expression "(int)pcVar30" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;) (labeled_statement "LAB_00053254:\n      if (iVar25 < (int)pcVar24) {\n        pcVar19 = (char *)((int)pcVar24 << 1);\n        uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;\nLAB_00053270:\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        pcVar20 = pcVar24;\n        puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);\n        if (puVar9 == (undefined1 *)0x0) {\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }\n        iVar25 = (int)pcVar24 << 1;\n      }" statement_identifier : (if_statement "if (iVar25 < (int)pcVar24) {\n        pcVar19 = (char *)((int)pcVar24 << 1);\n        uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;\nLAB_00053270:\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        pcVar20 = pcVar24;\n        puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);\n        if (puVar9 == (undefined1 *)0x0) {\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }\n        iVar25 = (int)pcVar24 << 1;\n      }" if (parenthesized_expression "(iVar25 < (int)pcVar24)" ( (binary_expression "iVar25 < (int)pcVar24" identifier < (cast_expression "(int)pcVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        pcVar19 = (char *)((int)pcVar24 << 1);\n        uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;\nLAB_00053270:\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        pcVar20 = pcVar24;\n        puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);\n        if (puVar9 == (undefined1 *)0x0) {\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }\n        iVar25 = (int)pcVar24 << 1;\n      }" { (expression_statement "pcVar19 = (char *)((int)pcVar24 << 1);" (assignment_expression "pcVar19 = (char *)((int)pcVar24 << 1)" identifier = (cast_expression "(char *)((int)pcVar24 << 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pcVar24 << 1)" ( (binary_expression "(int)pcVar24 << 1" (cast_expression "(int)pcVar24" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;" (assignment_expression "uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1" identifier = (binary_expression "(uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1" (binary_expression "(uint)pcVar24 >> 0x1f" (cast_expression "(uint)pcVar24" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) | (binary_expression "((int)pcVar24 >> 0x1f) << 1" (parenthesized_expression "((int)pcVar24 >> 0x1f)" ( (binary_expression "(int)pcVar24 >> 0x1f" (cast_expression "(int)pcVar24" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) << number_literal))) ;) (labeled_statement "LAB_00053270:\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }" statement_identifier : (if_statement "if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }" if (parenthesized_expression "(puVar9 != auStack_12c)" ( (binary_expression "puVar9 != auStack_12c" identifier != identifier) )) (compound_statement "{\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }" { (expression_statement "(**(code **)(puVar31 + 0x109484))(puVar9);" (call_expression "(**(code **)(puVar31 + 0x109484))(puVar9)" (parenthesized_expression "(**(code **)(puVar31 + 0x109484))" ( (pointer_expression "**(code **)(puVar31 + 0x109484)" * (pointer_expression "*(code **)(puVar31 + 0x109484)" * (cast_expression "(code **)(puVar31 + 0x109484)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar31 + 0x109484)" ( (binary_expression "puVar31 + 0x109484" identifier + number_literal) ))))) )) (argument_list "(puVar9)" ( identifier ))) ;) }))) (expression_statement "pcVar20 = pcVar24;" (assignment_expression "pcVar20 = pcVar24" identifier = identifier) ;) (expression_statement "puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);" (assignment_expression "puVar9 = (undefined1 *)sqlite3_malloc64(uVar26)" identifier = (cast_expression "(undefined1 *)sqlite3_malloc64(uVar26)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3_malloc64(uVar26)" identifier (argument_list "(uVar26)" ( identifier ))))) ;) (if_statement "if (puVar9 == (undefined1 *)0x0) {\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }" if (parenthesized_expression "(puVar9 == (undefined1 *)0x0)" ( (binary_expression "puVar9 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }" { (expression_statement "pcVar5 = &DAT_00000007;" (assignment_expression "pcVar5 = &DAT_00000007" identifier = (pointer_expression "&DAT_00000007" & identifier)) ;) (goto_statement "goto LAB_000533c0;" goto statement_identifier ;) })) (expression_statement "iVar25 = (int)pcVar24 << 1;" (assignment_expression "iVar25 = (int)pcVar24 << 1" identifier = (binary_expression "(int)pcVar24 << 1" (cast_expression "(int)pcVar24" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;) }))) (expression_statement "pcVar20 = pcVar24;" (assignment_expression "pcVar20 = pcVar24" identifier = identifier) ;) (if_statement "if (0 < (int)pcVar24) goto LAB_000532c0;" if (parenthesized_expression "(0 < (int)pcVar24)" ( (binary_expression "0 < (int)pcVar24" number_literal < (cast_expression "(int)pcVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_000532c0;" goto statement_identifier ;)) }) (else_clause "else {\n      pcVar19 = &SUB_00000002;\n      if (iVar25 < 1) {\n        uVar26 = 0;\n        pcVar24 = (code *)0x1;\n        goto LAB_00053270;\n      }\n      pcVar24 = (code *)0x1;\nLAB_000532c0:\n      iVar10 = 0;\n      do {\n        cVar16 = pcVar22[(int)(pcVar30 + iVar10)];\n        if ((byte)cVar16 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }\n        pcVar20 = (code *)(puVar9 + iVar10);\n        iVar10 = iVar10 + 1;\n        *pcVar20 = cVar16;\n        pcVar20 = pcVar24;\n      } while (iVar10 < (int)pcVar24);\n    }" else (compound_statement "{\n      pcVar19 = &SUB_00000002;\n      if (iVar25 < 1) {\n        uVar26 = 0;\n        pcVar24 = (code *)0x1;\n        goto LAB_00053270;\n      }\n      pcVar24 = (code *)0x1;\nLAB_000532c0:\n      iVar10 = 0;\n      do {\n        cVar16 = pcVar22[(int)(pcVar30 + iVar10)];\n        if ((byte)cVar16 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }\n        pcVar20 = (code *)(puVar9 + iVar10);\n        iVar10 = iVar10 + 1;\n        *pcVar20 = cVar16;\n        pcVar20 = pcVar24;\n      } while (iVar10 < (int)pcVar24);\n    }" { (expression_statement "pcVar19 = &SUB_00000002;" (assignment_expression "pcVar19 = &SUB_00000002" identifier = (pointer_expression "&SUB_00000002" & identifier)) ;) (if_statement "if (iVar25 < 1) {\n        uVar26 = 0;\n        pcVar24 = (code *)0x1;\n        goto LAB_00053270;\n      }" if (parenthesized_expression "(iVar25 < 1)" ( (binary_expression "iVar25 < 1" identifier < number_literal) )) (compound_statement "{\n        uVar26 = 0;\n        pcVar24 = (code *)0x1;\n        goto LAB_00053270;\n      }" { (expression_statement "uVar26 = 0;" (assignment_expression "uVar26 = 0" identifier = number_literal) ;) (expression_statement "pcVar24 = (code *)0x1;" (assignment_expression "pcVar24 = (code *)0x1" identifier = (cast_expression "(code *)0x1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00053270;" goto statement_identifier ;) })) (expression_statement "pcVar24 = (code *)0x1;" (assignment_expression "pcVar24 = (code *)0x1" identifier = (cast_expression "(code *)0x1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_000532c0:\n      iVar10 = 0;" statement_identifier : (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;)) (do_statement "do {\n        cVar16 = pcVar22[(int)(pcVar30 + iVar10)];\n        if ((byte)cVar16 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }\n        pcVar20 = (code *)(puVar9 + iVar10);\n        iVar10 = iVar10 + 1;\n        *pcVar20 = cVar16;\n        pcVar20 = pcVar24;\n      } while (iVar10 < (int)pcVar24);" do (compound_statement "{\n        cVar16 = pcVar22[(int)(pcVar30 + iVar10)];\n        if ((byte)cVar16 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }\n        pcVar20 = (code *)(puVar9 + iVar10);\n        iVar10 = iVar10 + 1;\n        *pcVar20 = cVar16;\n        pcVar20 = pcVar24;\n      }" { (expression_statement "cVar16 = pcVar22[(int)(pcVar30 + iVar10)];" (assignment_expression "cVar16 = pcVar22[(int)(pcVar30 + iVar10)]" identifier = (subscript_expression "pcVar22[(int)(pcVar30 + iVar10)]" identifier [ (cast_expression "(int)(pcVar30 + iVar10)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar30 + iVar10)" ( (binary_expression "pcVar30 + iVar10" identifier + identifier) ))) ])) ;) (if_statement "if ((byte)cVar16 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }" if (parenthesized_expression "((byte)cVar16 - 0x41 < 0x1a)" ( (binary_expression "(byte)cVar16 - 0x41 < 0x1a" (binary_expression "(byte)cVar16 - 0x41" (cast_expression "(byte)cVar16" ( (type_descriptor "byte" type_identifier) ) identifier) - number_literal) < number_literal) )) (compound_statement "{\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }" { (expression_statement "cVar16 = (code)((char)cVar16 + 0x20);" (assignment_expression "cVar16 = (code)((char)cVar16 + 0x20)" identifier = (call_expression "(code)((char)cVar16 + 0x20)" (parenthesized_expression "(code)" ( identifier )) (argument_list "((char)cVar16 + 0x20)" ( (binary_expression "(char)cVar16 + 0x20" (cast_expression "(char)cVar16" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "pcVar20 = (code *)(puVar9 + iVar10);" (assignment_expression "pcVar20 = (code *)(puVar9 + iVar10)" identifier = (cast_expression "(code *)(puVar9 + iVar10)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + iVar10)" ( (binary_expression "puVar9 + iVar10" identifier + identifier) )))) ;) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar20 = cVar16;" (assignment_expression "*pcVar20 = cVar16" (pointer_expression "*pcVar20" * identifier) = identifier) ;) (expression_statement "pcVar20 = pcVar24;" (assignment_expression "pcVar20 = pcVar24" identifier = identifier) ;) }) while (parenthesized_expression "(iVar10 < (int)pcVar24)" ( (binary_expression "iVar10 < (int)pcVar24" identifier < (cast_expression "(int)pcVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) }))) (expression_statement "pcVar19 = (char *)0x0;" (assignment_expression "pcVar19 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar5 = (char *)(*local_ac)(pcVar18,0,puVar9);" (assignment_expression "pcVar5 = (char *)(*local_ac)(pcVar18,0,puVar9)" identifier = (cast_expression "(char *)(*local_ac)(pcVar18,0,puVar9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*local_ac)(pcVar18,0,puVar9)" (parenthesized_expression "(*local_ac)" ( (pointer_expression "*local_ac" * identifier) )) (argument_list "(pcVar18,0,puVar9)" ( identifier , number_literal , identifier ))))) ;) (expression_statement "local_150 = pcVar30;" (assignment_expression "local_150 = pcVar30" identifier = identifier) ;) (expression_statement "local_14c = pcVar8;" (assignment_expression "local_14c = pcVar8" identifier = identifier) ;) (if_statement "if ((0x1645af < (int)(pcVar8 + 1)) || (pcVar24 = pcVar8 + 1, pcVar5 != (char *)0x0)) break;" if (parenthesized_expression "((0x1645af < (int)(pcVar8 + 1)) || (pcVar24 = pcVar8 + 1, pcVar5 != (char *)0x0))" ( (binary_expression "(0x1645af < (int)(pcVar8 + 1)) || (pcVar24 = pcVar8 + 1, pcVar5 != (char *)0x0)" (parenthesized_expression "(0x1645af < (int)(pcVar8 + 1))" ( (binary_expression "0x1645af < (int)(pcVar8 + 1)" number_literal < (cast_expression "(int)(pcVar8 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar8 + 1)" ( (binary_expression "pcVar8 + 1" identifier + number_literal) )))) )) || (parenthesized_expression "(pcVar24 = pcVar8 + 1, pcVar5 != (char *)0x0)" ( (comma_expression "pcVar24 = pcVar8 + 1, pcVar5 != (char *)0x0" (assignment_expression "pcVar24 = pcVar8 + 1" identifier = (binary_expression "pcVar8 + 1" identifier + number_literal)) , (binary_expression "pcVar5 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) (if_statement "if (puVar9 == auStack_12c) {\n    if (pcVar5 == (char *)0x65) {\nLAB_00053398:\n      pcVar5 = (char *)0x0;\n    }\n  }\n  else {\nLAB_000533c0:\n    (**(code **)(puVar31 + 0x109484))(puVar9);\n    if (pcVar5 == (char *)0x65) {\n      pcVar5 = (char *)0x0;\n    }\n  }" if (parenthesized_expression "(puVar9 == auStack_12c)" ( (binary_expression "puVar9 == auStack_12c" identifier == identifier) )) (compound_statement "{\n    if (pcVar5 == (char *)0x65) {\nLAB_00053398:\n      pcVar5 = (char *)0x0;\n    }\n  }" { (if_statement "if (pcVar5 == (char *)0x65) {\nLAB_00053398:\n      pcVar5 = (char *)0x0;\n    }" if (parenthesized_expression "(pcVar5 == (char *)0x65)" ( (binary_expression "pcVar5 == (char *)0x65" identifier == (cast_expression "(char *)0x65" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00053398:\n      pcVar5 = (char *)0x0;\n    }" { (labeled_statement "LAB_00053398:\n      pcVar5 = (char *)0x0;" statement_identifier : (expression_statement "pcVar5 = (char *)0x0;" (assignment_expression "pcVar5 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) })) }) (else_clause "else {\nLAB_000533c0:\n    (**(code **)(puVar31 + 0x109484))(puVar9);\n    if (pcVar5 == (char *)0x65) {\n      pcVar5 = (char *)0x0;\n    }\n  }" else (compound_statement "{\nLAB_000533c0:\n    (**(code **)(puVar31 + 0x109484))(puVar9);\n    if (pcVar5 == (char *)0x65) {\n      pcVar5 = (char *)0x0;\n    }\n  }" { (labeled_statement "LAB_000533c0:\n    (**(code **)(puVar31 + 0x109484))(puVar9);" statement_identifier : (expression_statement "(**(code **)(puVar31 + 0x109484))(puVar9);" (call_expression "(**(code **)(puVar31 + 0x109484))(puVar9)" (parenthesized_expression "(**(code **)(puVar31 + 0x109484))" ( (pointer_expression "**(code **)(puVar31 + 0x109484)" * (pointer_expression "*(code **)(puVar31 + 0x109484)" * (cast_expression "(code **)(puVar31 + 0x109484)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar31 + 0x109484)" ( (binary_expression "puVar31 + 0x109484" identifier + number_literal) ))))) )) (argument_list "(puVar9)" ( identifier ))) ;)) (if_statement "if (pcVar5 == (char *)0x65) {\n      pcVar5 = (char *)0x0;\n    }" if (parenthesized_expression "(pcVar5 == (char *)0x65)" ( (binary_expression "pcVar5 == (char *)0x65" identifier == (cast_expression "(char *)0x65" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar5 = (char *)0x0;\n    }" { (expression_statement "pcVar5 = (char *)0x0;" (assignment_expression "pcVar5 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) (if_statement "if (local_ec == *piVar7) {\n    return pcVar5;\n  }" if (parenthesized_expression "(local_ec == *piVar7)" ( (binary_expression "local_ec == *piVar7" identifier == (pointer_expression "*piVar7" * identifier)) )) (compound_statement "{\n    return pcVar5;\n  }" { (return_statement "return pcVar5;" return identifier ;) })) (expression_statement "pcVar32 = *(code **)(puVar31 + 0x1098ac);" (assignment_expression "pcVar32 = *(code **)(puVar31 + 0x1098ac)" identifier = (pointer_expression "*(code **)(puVar31 + 0x1098ac)" * (cast_expression "(code **)(puVar31 + 0x1098ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar31 + 0x1098ac)" ( (binary_expression "puVar31 + 0x1098ac" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = local_ec;" (assignment_expression "iVar6 = local_ec" identifier = identifier) ;) (expression_statement "(*pcVar32)();" (call_expression "(*pcVar32)()" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "local_19c = *(uint *)(iVar6 + 0x84);" (assignment_expression "local_19c = *(uint *)(iVar6 + 0x84)" identifier = (pointer_expression "*(uint *)(iVar6 + 0x84)" * (cast_expression "(uint *)(iVar6 + 0x84)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x84)" ( (binary_expression "iVar6 + 0x84" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(pcVar32 + 0x1092d0);" (assignment_expression "iVar10 = *(int *)(pcVar32 + 0x1092d0)" identifier = (pointer_expression "*(int *)(pcVar32 + 0x1092d0)" * (cast_expression "(int *)(pcVar32 + 0x1092d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0x1092d0)" ( (binary_expression "pcVar32 + 0x1092d0" identifier + number_literal) ))))) ;) (expression_statement "pcVar24 = *(code **)(iVar6 + 0x80);" (assignment_expression "pcVar24 = *(code **)(iVar6 + 0x80)" identifier = (pointer_expression "*(code **)(iVar6 + 0x80)" * (cast_expression "(code **)(iVar6 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x80)" ( (binary_expression "iVar6 + 0x80" identifier + number_literal) ))))) ;) (expression_statement "iVar25 = *(int *)(pcVar32 + 0x1092a4);" (assignment_expression "iVar25 = *(int *)(pcVar32 + 0x1092a4)" identifier = (pointer_expression "*(int *)(pcVar32 + 0x1092a4)" * (cast_expression "(int *)(pcVar32 + 0x1092a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0x1092a4)" ( (binary_expression "pcVar32 + 0x1092a4" identifier + number_literal) ))))) ;) (expression_statement "pcVar8 = pcVar24 + (local_19c - 6);" (assignment_expression "pcVar8 = pcVar24 + (local_19c - 6)" identifier = (binary_expression "pcVar24 + (local_19c - 6)" identifier + (parenthesized_expression "(local_19c - 6)" ( (binary_expression "local_19c - 6" identifier - number_literal) )))) ;) (expression_statement "pcVar30 = pcVar20 + (int)local_150;" (assignment_expression "pcVar30 = pcVar20 + (int)local_150" identifier = (binary_expression "pcVar20 + (int)local_150" identifier + (cast_expression "(int)local_150" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar22 = pcVar20;" (assignment_expression "pcVar22 = pcVar20" identifier = identifier) ;) (labeled_statement "LAB_00053480:\n  if (pcVar30 <= pcVar22) {\n    return (char *)0x0;\n  }" statement_identifier : (if_statement "if (pcVar30 <= pcVar22) {\n    return (char *)0x0;\n  }" if (parenthesized_expression "(pcVar30 <= pcVar22)" ( (binary_expression "pcVar30 <= pcVar22" identifier <= identifier) )) (compound_statement "{\n    return (char *)0x0;\n  }" { (return_statement "return (char *)0x0;" return (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) }))) (do_statement "do {\n    cVar16 = *pcVar22;\n    uVar26 = (uint)(byte)cVar16;\n    pcVar28 = pcVar22 + 1;\n    pcVar23 = pcVar24;\n    if ((char)cVar16 < '\0') {\n      if (0xbf < uVar26) {\n        uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n        if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)) {\n          if (uVar26 < 0x80) {\n            uVar26 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);\n          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if (iVar11 != 0) break;\n    }\n    else {\n      local_194 = (int)pcVar22 - (int)pcVar20;\n      if (*(char *)(iVar6 + uVar26) != '\0') goto LAB_000535b0;\n    }\n    pcVar22 = pcVar28;\n    if (pcVar30 <= pcVar28) goto LAB_00053644;\n  } while( true );" do (compound_statement "{\n    cVar16 = *pcVar22;\n    uVar26 = (uint)(byte)cVar16;\n    pcVar28 = pcVar22 + 1;\n    pcVar23 = pcVar24;\n    if ((char)cVar16 < '\0') {\n      if (0xbf < uVar26) {\n        uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n        if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)) {\n          if (uVar26 < 0x80) {\n            uVar26 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);\n          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if (iVar11 != 0) break;\n    }\n    else {\n      local_194 = (int)pcVar22 - (int)pcVar20;\n      if (*(char *)(iVar6 + uVar26) != '\0') goto LAB_000535b0;\n    }\n    pcVar22 = pcVar28;\n    if (pcVar30 <= pcVar28) goto LAB_00053644;\n  }" { (expression_statement "cVar16 = *pcVar22;" (assignment_expression "cVar16 = *pcVar22" identifier = (pointer_expression "*pcVar22" * identifier)) ;) (expression_statement "uVar26 = (uint)(byte)cVar16;" (assignment_expression "uVar26 = (uint)(byte)cVar16" identifier = (cast_expression "(uint)(byte)cVar16" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)cVar16" ( (type_descriptor "byte" type_identifier) ) identifier))) ;) (expression_statement "pcVar28 = pcVar22 + 1;" (assignment_expression "pcVar28 = pcVar22 + 1" identifier = (binary_expression "pcVar22 + 1" identifier + number_literal)) ;) (expression_statement "pcVar23 = pcVar24;" (assignment_expression "pcVar23 = pcVar24" identifier = identifier) ;) (if_statement "if ((char)cVar16 < '\0') {\n      if (0xbf < uVar26) {\n        uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n        if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)) {\n          if (uVar26 < 0x80) {\n            uVar26 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);\n          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if (iVar11 != 0) break;\n    }\n    else {\n      local_194 = (int)pcVar22 - (int)pcVar20;\n      if (*(char *)(iVar6 + uVar26) != '\0') goto LAB_000535b0;\n    }" if (parenthesized_expression "((char)cVar16 < '\0')" ( (binary_expression "(char)cVar16 < '\0'" (cast_expression "(char)cVar16" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (0xbf < uVar26) {\n        uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n        if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)) {\n          if (uVar26 < 0x80) {\n            uVar26 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);\n          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if (iVar11 != 0) break;\n    }" { (if_statement "if (0xbf < uVar26) {\n        uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n        if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)) {\n          if (uVar26 < 0x80) {\n            uVar26 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);\n          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }\n        }\n      }" if (parenthesized_expression "(0xbf < uVar26)" ( (binary_expression "0xbf < uVar26" number_literal < identifier) )) (compound_statement "{\n        uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n        if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)) {\n          if (uVar26 < 0x80) {\n            uVar26 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);\n          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }\n        }\n      }" { (expression_statement "uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);" (assignment_expression "uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0)" identifier = (binary_expression "(uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 + iVar25 + -0x73b4 + -0xc0)" ( (binary_expression "uVar26 + iVar25 + -0x73b4 + -0xc0" (binary_expression "uVar26 + iVar25 + -0x73b4" (binary_expression "uVar26 + iVar25" identifier + identifier) + number_literal) + number_literal) ))))) ;) (if_statement "if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)) {\n          if (uVar26 < 0x80) {\n            uVar26 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);\n          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }\n        }" if (parenthesized_expression "((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80))" ( (binary_expression "(pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)" (parenthesized_expression "(pcVar30 == pcVar28)" ( (binary_expression "pcVar30 == pcVar28" identifier == identifier) )) || (parenthesized_expression "(uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)" ( (comma_expression "uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80" (assignment_expression "uVar12 = (uint)(byte)pcVar22[1]" identifier = (cast_expression "(uint)(byte)pcVar22[1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pcVar22[1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar22[1]" identifier [ number_literal ])))) , (binary_expression "(uVar12 & 0xc0) != 0x80" (parenthesized_expression "(uVar12 & 0xc0)" ( (binary_expression "uVar12 & 0xc0" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n          if (uVar26 < 0x80) {\n            uVar26 = 0xfffd;\n          }\n        }" { (if_statement "if (uVar26 < 0x80) {\n            uVar26 = 0xfffd;\n          }" if (parenthesized_expression "(uVar26 < 0x80)" ( (binary_expression "uVar26 < 0x80" identifier < number_literal) )) (compound_statement "{\n            uVar26 = 0xfffd;\n          }" { (expression_statement "uVar26 = 0xfffd;" (assignment_expression "uVar26 = 0xfffd" identifier = number_literal) ;) })) }) (else_clause "else {\n          do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);\n          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }\n        }" else (compound_statement "{\n          do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);\n          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }\n        }" { (do_statement "do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);" do (compound_statement "{\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          }" { (expression_statement "pcVar28 = pcVar28 + 1;" (assignment_expression "pcVar28 = pcVar28 + 1" identifier = (binary_expression "pcVar28 + 1" identifier + number_literal)) ;) (expression_statement "uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;" (assignment_expression "uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40" identifier = (binary_expression "(uVar12 & 0x3f) + uVar26 * 0x40" (parenthesized_expression "(uVar12 & 0x3f)" ( (binary_expression "uVar12 & 0x3f" identifier & number_literal) )) + (binary_expression "uVar26 * 0x40" identifier * number_literal))) ;) (if_statement "if (pcVar30 == pcVar28) break;" if (parenthesized_expression "(pcVar30 == pcVar28)" ( (binary_expression "pcVar30 == pcVar28" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar12 = (uint)(byte)*pcVar28;" (assignment_expression "uVar12 = (uint)(byte)*pcVar28" identifier = (binary_expression "(uint)(byte)*pcVar28" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * identifier)) ;) }) while (parenthesized_expression "((uVar12 & 0xffffffc0) == 0x80)" ( (binary_expression "(uVar12 & 0xffffffc0) == 0x80" (parenthesized_expression "(uVar12 & 0xffffffc0)" ( (binary_expression "uVar12 & 0xffffffc0" identifier & number_literal) )) == number_literal) )) ;) (if_statement "if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }" if (parenthesized_expression "(((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe))" ( (binary_expression "((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)" (parenthesized_expression "((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800))" ( (binary_expression "(uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)" (parenthesized_expression "(uVar26 < 0x80)" ( (binary_expression "uVar26 < 0x80" identifier < number_literal) )) || (parenthesized_expression "((uVar26 & 0xfffff800) == 0xd800)" ( (binary_expression "(uVar26 & 0xfffff800) == 0xd800" (parenthesized_expression "(uVar26 & 0xfffff800)" ( (binary_expression "uVar26 & 0xfffff800" identifier & number_literal) )) == number_literal) ))) )) || (parenthesized_expression "((uVar26 & 0xfffffffe) == 0xfffe)" ( (binary_expression "(uVar26 & 0xfffffffe) == 0xfffe" (parenthesized_expression "(uVar26 & 0xfffffffe)" ( (binary_expression "uVar26 & 0xfffffffe" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n            uVar26 = 0xfffd;\n          }" { (expression_statement "uVar26 = 0xfffd;" (assignment_expression "uVar26 = 0xfffd" identifier = number_literal) ;) })) }))) })) (expression_statement "iVar11 = FUN_00042fcc(iVar6,uVar26);" (assignment_expression "iVar11 = FUN_00042fcc(iVar6,uVar26)" identifier = (call_expression "FUN_00042fcc(iVar6,uVar26)" identifier (argument_list "(iVar6,uVar26)" ( identifier , identifier )))) ;) (if_statement "if (iVar11 != 0) break;" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) }) (else_clause "else {\n      local_194 = (int)pcVar22 - (int)pcVar20;\n      if (*(char *)(iVar6 + uVar26) != '\0') goto LAB_000535b0;\n    }" else (compound_statement "{\n      local_194 = (int)pcVar22 - (int)pcVar20;\n      if (*(char *)(iVar6 + uVar26) != '\0') goto LAB_000535b0;\n    }" { (expression_statement "local_194 = (int)pcVar22 - (int)pcVar20;" (assignment_expression "local_194 = (int)pcVar22 - (int)pcVar20" identifier = (binary_expression "(int)pcVar22 - (int)pcVar20" (cast_expression "(int)pcVar22" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (*(char *)(iVar6 + uVar26) != '\0') goto LAB_000535b0;" if (parenthesized_expression "(*(char *)(iVar6 + uVar26) != '\0')" ( (binary_expression "*(char *)(iVar6 + uVar26) != '\0'" (pointer_expression "*(char *)(iVar6 + uVar26)" * (cast_expression "(char *)(iVar6 + uVar26)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + uVar26)" ( (binary_expression "iVar6 + uVar26" identifier + identifier) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000535b0;" goto statement_identifier ;)) }))) (expression_statement "pcVar22 = pcVar28;" (assignment_expression "pcVar22 = pcVar28" identifier = identifier) ;) (if_statement "if (pcVar30 <= pcVar28) goto LAB_00053644;" if (parenthesized_expression "(pcVar30 <= pcVar28)" ( (binary_expression "pcVar30 <= pcVar28" identifier <= identifier) )) (goto_statement "goto LAB_00053644;" goto statement_identifier ;)) }) while (parenthesized_expression "( true )" ( true )) ;) (expression_statement "local_194 = (int)pcVar22 - (int)pcVar20;" (assignment_expression "local_194 = (int)pcVar22 - (int)pcVar20" identifier = (binary_expression "(int)pcVar22 - (int)pcVar20" (cast_expression "(int)pcVar22" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (do_statement "do {\n    while( true ) {\n      uVar26 = (*(code *)(iVar10 + 0x2d68))(uVar26,*(undefined4 *)(iVar6 + 0x88));\n      pcVar29 = pcVar28;\n      if (uVar26 != 0) {\n        if (uVar26 < 0x80) {\n          *pcVar23 = SUB41(uVar26,0);\n          pcVar23 = pcVar23 + 1;\n        }\n        else {\n          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);\n          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);\n          if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }\n        }\n      }\n      while( true ) {\n        pcVar22 = pcVar29;\n        if (pcVar30 <= pcVar29) goto LAB_00053608;\n        if (pcVar8 < pcVar23) {\n          uVar26 = local_19c * 2;\n          pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26);\n          if (pcVar24 == (code *)0x0) {\n            return &DAT_00000007;\n          }\n          pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));\n          (**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);\n          (**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));\n          pcVar8 = pcVar24 + (uVar26 - 6);\n          *(code **)(iVar6 + 0x80) = pcVar24;\n          *(uint *)(iVar6 + 0x84) = uVar26;\n          local_19c = uVar26;\n        }\n        cVar16 = *pcVar29;\n        uVar26 = (uint)(byte)cVar16;\n        if ((char)cVar16 < '\0') break;\n        if (*(char *)(iVar6 + uVar26) == '\0') goto LAB_00053608;\n        pcVar28 = pcVar29 + 1;\nLAB_000535b0:\n        if (uVar26 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)uVar26 + 0x20);\n        }\n        *pcVar23 = cVar16;\n        pcVar23 = pcVar23 + 1;\n        pcVar29 = pcVar28;\n      }\n      pcVar28 = pcVar29 + 1;\n      if (uVar26 < 0xc0) break;\n      uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n      if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80)) {\n        if (uVar26 < 0x80) goto LAB_00053748;\n      }\n      else {\n        do {\n          pcVar28 = pcVar28 + 1;\n          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n          if (pcVar30 == pcVar28) break;\n          uVar12 = (uint)(byte)*pcVar28;\n        } while ((uVar12 & 0xffffffc0) == 0x80);\n        if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);\n          uVar26 = 0xfffd;\n          goto joined_r0x00053724;\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if ((iVar11 == 0) &&\n         ((pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))\n         )) goto LAB_00053608;\n    }\n    iVar11 = FUN_00042fcc(iVar6,uVar26);\njoined_r0x00053724:\n    pcVar22 = pcVar28;\n  } while (iVar11 != 0);" do (compound_statement "{\n    while( true ) {\n      uVar26 = (*(code *)(iVar10 + 0x2d68))(uVar26,*(undefined4 *)(iVar6 + 0x88));\n      pcVar29 = pcVar28;\n      if (uVar26 != 0) {\n        if (uVar26 < 0x80) {\n          *pcVar23 = SUB41(uVar26,0);\n          pcVar23 = pcVar23 + 1;\n        }\n        else {\n          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);\n          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);\n          if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }\n        }\n      }\n      while( true ) {\n        pcVar22 = pcVar29;\n        if (pcVar30 <= pcVar29) goto LAB_00053608;\n        if (pcVar8 < pcVar23) {\n          uVar26 = local_19c * 2;\n          pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26);\n          if (pcVar24 == (code *)0x0) {\n            return &DAT_00000007;\n          }\n          pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));\n          (**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);\n          (**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));\n          pcVar8 = pcVar24 + (uVar26 - 6);\n          *(code **)(iVar6 + 0x80) = pcVar24;\n          *(uint *)(iVar6 + 0x84) = uVar26;\n          local_19c = uVar26;\n        }\n        cVar16 = *pcVar29;\n        uVar26 = (uint)(byte)cVar16;\n        if ((char)cVar16 < '\0') break;\n        if (*(char *)(iVar6 + uVar26) == '\0') goto LAB_00053608;\n        pcVar28 = pcVar29 + 1;\nLAB_000535b0:\n        if (uVar26 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)uVar26 + 0x20);\n        }\n        *pcVar23 = cVar16;\n        pcVar23 = pcVar23 + 1;\n        pcVar29 = pcVar28;\n      }\n      pcVar28 = pcVar29 + 1;\n      if (uVar26 < 0xc0) break;\n      uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n      if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80)) {\n        if (uVar26 < 0x80) goto LAB_00053748;\n      }\n      else {\n        do {\n          pcVar28 = pcVar28 + 1;\n          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n          if (pcVar30 == pcVar28) break;\n          uVar12 = (uint)(byte)*pcVar28;\n        } while ((uVar12 & 0xffffffc0) == 0x80);\n        if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);\n          uVar26 = 0xfffd;\n          goto joined_r0x00053724;\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if ((iVar11 == 0) &&\n         ((pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))\n         )) goto LAB_00053608;\n    }\n    iVar11 = FUN_00042fcc(iVar6,uVar26);\njoined_r0x00053724:\n    pcVar22 = pcVar28;\n  }" { (while_statement "while( true ) {\n      uVar26 = (*(code *)(iVar10 + 0x2d68))(uVar26,*(undefined4 *)(iVar6 + 0x88));\n      pcVar29 = pcVar28;\n      if (uVar26 != 0) {\n        if (uVar26 < 0x80) {\n          *pcVar23 = SUB41(uVar26,0);\n          pcVar23 = pcVar23 + 1;\n        }\n        else {\n          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);\n          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);\n          if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }\n        }\n      }\n      while( true ) {\n        pcVar22 = pcVar29;\n        if (pcVar30 <= pcVar29) goto LAB_00053608;\n        if (pcVar8 < pcVar23) {\n          uVar26 = local_19c * 2;\n          pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26);\n          if (pcVar24 == (code *)0x0) {\n            return &DAT_00000007;\n          }\n          pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));\n          (**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);\n          (**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));\n          pcVar8 = pcVar24 + (uVar26 - 6);\n          *(code **)(iVar6 + 0x80) = pcVar24;\n          *(uint *)(iVar6 + 0x84) = uVar26;\n          local_19c = uVar26;\n        }\n        cVar16 = *pcVar29;\n        uVar26 = (uint)(byte)cVar16;\n        if ((char)cVar16 < '\0') break;\n        if (*(char *)(iVar6 + uVar26) == '\0') goto LAB_00053608;\n        pcVar28 = pcVar29 + 1;\nLAB_000535b0:\n        if (uVar26 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)uVar26 + 0x20);\n        }\n        *pcVar23 = cVar16;\n        pcVar23 = pcVar23 + 1;\n        pcVar29 = pcVar28;\n      }\n      pcVar28 = pcVar29 + 1;\n      if (uVar26 < 0xc0) break;\n      uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n      if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80)) {\n        if (uVar26 < 0x80) goto LAB_00053748;\n      }\n      else {\n        do {\n          pcVar28 = pcVar28 + 1;\n          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n          if (pcVar30 == pcVar28) break;\n          uVar12 = (uint)(byte)*pcVar28;\n        } while ((uVar12 & 0xffffffc0) == 0x80);\n        if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);\n          uVar26 = 0xfffd;\n          goto joined_r0x00053724;\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if ((iVar11 == 0) &&\n         ((pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))\n         )) goto LAB_00053608;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      uVar26 = (*(code *)(iVar10 + 0x2d68))(uVar26,*(undefined4 *)(iVar6 + 0x88));\n      pcVar29 = pcVar28;\n      if (uVar26 != 0) {\n        if (uVar26 < 0x80) {\n          *pcVar23 = SUB41(uVar26,0);\n          pcVar23 = pcVar23 + 1;\n        }\n        else {\n          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);\n          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);\n          if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }\n        }\n      }\n      while( true ) {\n        pcVar22 = pcVar29;\n        if (pcVar30 <= pcVar29) goto LAB_00053608;\n        if (pcVar8 < pcVar23) {\n          uVar26 = local_19c * 2;\n          pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26);\n          if (pcVar24 == (code *)0x0) {\n            return &DAT_00000007;\n          }\n          pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));\n          (**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);\n          (**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));\n          pcVar8 = pcVar24 + (uVar26 - 6);\n          *(code **)(iVar6 + 0x80) = pcVar24;\n          *(uint *)(iVar6 + 0x84) = uVar26;\n          local_19c = uVar26;\n        }\n        cVar16 = *pcVar29;\n        uVar26 = (uint)(byte)cVar16;\n        if ((char)cVar16 < '\0') break;\n        if (*(char *)(iVar6 + uVar26) == '\0') goto LAB_00053608;\n        pcVar28 = pcVar29 + 1;\nLAB_000535b0:\n        if (uVar26 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)uVar26 + 0x20);\n        }\n        *pcVar23 = cVar16;\n        pcVar23 = pcVar23 + 1;\n        pcVar29 = pcVar28;\n      }\n      pcVar28 = pcVar29 + 1;\n      if (uVar26 < 0xc0) break;\n      uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n      if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80)) {\n        if (uVar26 < 0x80) goto LAB_00053748;\n      }\n      else {\n        do {\n          pcVar28 = pcVar28 + 1;\n          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n          if (pcVar30 == pcVar28) break;\n          uVar12 = (uint)(byte)*pcVar28;\n        } while ((uVar12 & 0xffffffc0) == 0x80);\n        if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);\n          uVar26 = 0xfffd;\n          goto joined_r0x00053724;\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if ((iVar11 == 0) &&\n         ((pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))\n         )) goto LAB_00053608;\n    }" { (expression_statement "uVar26 = (*(code *)(iVar10 + 0x2d68))(uVar26,*(undefined4 *)(iVar6 + 0x88));" (assignment_expression "uVar26 = (*(code *)(iVar10 + 0x2d68))(uVar26,*(undefined4 *)(iVar6 + 0x88))" identifier = (call_expression "(*(code *)(iVar10 + 0x2d68))(uVar26,*(undefined4 *)(iVar6 + 0x88))" (parenthesized_expression "(*(code *)(iVar10 + 0x2d68))" ( (pointer_expression "*(code *)(iVar10 + 0x2d68)" * (cast_expression "(code *)(iVar10 + 0x2d68)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x2d68)" ( (binary_expression "iVar10 + 0x2d68" identifier + number_literal) )))) )) (argument_list "(uVar26,*(undefined4 *)(iVar6 + 0x88))" ( identifier , (pointer_expression "*(undefined4 *)(iVar6 + 0x88)" * (cast_expression "(undefined4 *)(iVar6 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x88)" ( (binary_expression "iVar6 + 0x88" identifier + number_literal) )))) )))) ;) (expression_statement "pcVar29 = pcVar28;" (assignment_expression "pcVar29 = pcVar28" identifier = identifier) ;) (if_statement "if (uVar26 != 0) {\n        if (uVar26 < 0x80) {\n          *pcVar23 = SUB41(uVar26,0);\n          pcVar23 = pcVar23 + 1;\n        }\n        else {\n          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);\n          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);\n          if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(uVar26 != 0)" ( (binary_expression "uVar26 != 0" identifier != number_literal) )) (compound_statement "{\n        if (uVar26 < 0x80) {\n          *pcVar23 = SUB41(uVar26,0);\n          pcVar23 = pcVar23 + 1;\n        }\n        else {\n          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);\n          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);\n          if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }\n        }\n      }" { (if_statement "if (uVar26 < 0x80) {\n          *pcVar23 = SUB41(uVar26,0);\n          pcVar23 = pcVar23 + 1;\n        }\n        else {\n          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);\n          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);\n          if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }\n        }" if (parenthesized_expression "(uVar26 < 0x80)" ( (binary_expression "uVar26 < 0x80" identifier < number_literal) )) (compound_statement "{\n          *pcVar23 = SUB41(uVar26,0);\n          pcVar23 = pcVar23 + 1;\n        }" { (expression_statement "*pcVar23 = SUB41(uVar26,0);" (assignment_expression "*pcVar23 = SUB41(uVar26,0)" (pointer_expression "*pcVar23" * identifier) = (call_expression "SUB41(uVar26,0)" identifier (argument_list "(uVar26,0)" ( identifier , number_literal )))) ;) (expression_statement "pcVar23 = pcVar23 + 1;" (assignment_expression "pcVar23 = pcVar23 + 1" identifier = (binary_expression "pcVar23 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);\n          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);\n          if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }\n        }" else (compound_statement "{\n          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);\n          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);\n          if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }\n        }" { (expression_statement "cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);" (assignment_expression "cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80)" identifier = (call_expression "(code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80)" (parenthesized_expression "(code)" ( identifier )) (argument_list "(((byte)SUB41(uVar26,0) & 0x3f) + 0x80)" ( (binary_expression "((byte)SUB41(uVar26,0) & 0x3f) + 0x80" (parenthesized_expression "((byte)SUB41(uVar26,0) & 0x3f)" ( (binary_expression "(byte)SUB41(uVar26,0) & 0x3f" (cast_expression "(byte)SUB41(uVar26,0)" ( (type_descriptor "byte" type_identifier) ) (call_expression "SUB41(uVar26,0)" identifier (argument_list "(uVar26,0)" ( identifier , number_literal )))) & number_literal) )) + number_literal) )))) ;) (expression_statement "bVar3 = (byte)((uVar26 << 0x12) >> 0x18);" (assignment_expression "bVar3 = (byte)((uVar26 << 0x12) >> 0x18)" identifier = (call_expression "(byte)((uVar26 << 0x12) >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uVar26 << 0x12) >> 0x18)" ( (binary_expression "(uVar26 << 0x12) >> 0x18" (parenthesized_expression "(uVar26 << 0x12)" ( (binary_expression "uVar26 << 0x12" identifier << number_literal) )) >> number_literal) )))) ;) (if_statement "if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }" if (parenthesized_expression "(uVar26 < 0x800)" ( (binary_expression "uVar26 < 0x800" identifier < number_literal) )) (compound_statement "{\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }" { (expression_statement "pcVar23[1] = cVar16;" (assignment_expression "pcVar23[1] = cVar16" (subscript_expression "pcVar23[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*pcVar23 = (code)(bVar3 - 0x40);" (assignment_expression "*pcVar23 = (code)(bVar3 - 0x40)" (pointer_expression "*pcVar23" * identifier) = (call_expression "(code)(bVar3 - 0x40)" (parenthesized_expression "(code)" ( identifier )) (argument_list "(bVar3 - 0x40)" ( (binary_expression "bVar3 - 0x40" identifier - number_literal) )))) ;) (expression_statement "pcVar23 = pcVar23 + 2;" (assignment_expression "pcVar23 = pcVar23 + 2" identifier = (binary_expression "pcVar23 + 2" identifier + number_literal)) ;) }) (else_clause "else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }" else (compound_statement "{\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }" { (expression_statement "cVar17 = (code)((bVar3 & 0x3f) + 0x80);" (assignment_expression "cVar17 = (code)((bVar3 & 0x3f) + 0x80)" identifier = (call_expression "(code)((bVar3 & 0x3f) + 0x80)" (parenthesized_expression "(code)" ( identifier )) (argument_list "((bVar3 & 0x3f) + 0x80)" ( (binary_expression "(bVar3 & 0x3f) + 0x80" (parenthesized_expression "(bVar3 & 0x3f)" ( (binary_expression "bVar3 & 0x3f" identifier & number_literal) )) + number_literal) )))) ;) (expression_statement "bVar3 = (byte)((uVar26 << 0xc) >> 0x18);" (assignment_expression "bVar3 = (byte)((uVar26 << 0xc) >> 0x18)" identifier = (call_expression "(byte)((uVar26 << 0xc) >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uVar26 << 0xc) >> 0x18)" ( (binary_expression "(uVar26 << 0xc) >> 0x18" (parenthesized_expression "(uVar26 << 0xc)" ( (binary_expression "uVar26 << 0xc" identifier << number_literal) )) >> number_literal) )))) ;) (if_statement "if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }" if (parenthesized_expression "(uVar26 < 0x10000)" ( (binary_expression "uVar26 < 0x10000" identifier < number_literal) )) (compound_statement "{\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }" { (expression_statement "pcVar23[1] = cVar17;" (assignment_expression "pcVar23[1] = cVar17" (subscript_expression "pcVar23[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pcVar23[2] = cVar16;" (assignment_expression "pcVar23[2] = cVar16" (subscript_expression "pcVar23[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*pcVar23 = (code)(bVar3 - 0x20);" (assignment_expression "*pcVar23 = (code)(bVar3 - 0x20)" (pointer_expression "*pcVar23" * identifier) = (call_expression "(code)(bVar3 - 0x20)" (parenthesized_expression "(code)" ( identifier )) (argument_list "(bVar3 - 0x20)" ( (binary_expression "bVar3 - 0x20" identifier - number_literal) )))) ;) (expression_statement "pcVar23 = pcVar23 + 3;" (assignment_expression "pcVar23 = pcVar23 + 3" identifier = (binary_expression "pcVar23 + 3" identifier + number_literal)) ;) }) (else_clause "else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }" else (compound_statement "{\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }" { (expression_statement "pcVar23[2] = cVar17;" (assignment_expression "pcVar23[2] = cVar17" (subscript_expression "pcVar23[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pcVar23[3] = cVar16;" (assignment_expression "pcVar23[3] = cVar16" (subscript_expression "pcVar23[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);" (assignment_expression "*pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10)" (pointer_expression "*pcVar23" * identifier) = (call_expression "(code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10)" (parenthesized_expression "(code)" ( identifier )) (argument_list "((byte)((uVar26 << 0xb) >> 0x1d) - 0x10)" ( (binary_expression "(byte)((uVar26 << 0xb) >> 0x1d) - 0x10" (call_expression "(byte)((uVar26 << 0xb) >> 0x1d)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uVar26 << 0xb) >> 0x1d)" ( (binary_expression "(uVar26 << 0xb) >> 0x1d" (parenthesized_expression "(uVar26 << 0xb)" ( (binary_expression "uVar26 << 0xb" identifier << number_literal) )) >> number_literal) ))) - number_literal) )))) ;) (expression_statement "pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);" (assignment_expression "pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80)" (subscript_expression "pcVar23[1]" identifier [ number_literal ]) = (call_expression "(code)((bVar3 & 0x3f) + 0x80)" (parenthesized_expression "(code)" ( identifier )) (argument_list "((bVar3 & 0x3f) + 0x80)" ( (binary_expression "(bVar3 & 0x3f) + 0x80" (parenthesized_expression "(bVar3 & 0x3f)" ( (binary_expression "bVar3 & 0x3f" identifier & number_literal) )) + number_literal) )))) ;) (expression_statement "pcVar23 = pcVar23 + 4;" (assignment_expression "pcVar23 = pcVar23 + 4" identifier = (binary_expression "pcVar23 + 4" identifier + number_literal)) ;) }))) }))) }))) })) (while_statement "while( true ) {\n        pcVar22 = pcVar29;\n        if (pcVar30 <= pcVar29) goto LAB_00053608;\n        if (pcVar8 < pcVar23) {\n          uVar26 = local_19c * 2;\n          pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26);\n          if (pcVar24 == (code *)0x0) {\n            return &DAT_00000007;\n          }\n          pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));\n          (**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);\n          (**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));\n          pcVar8 = pcVar24 + (uVar26 - 6);\n          *(code **)(iVar6 + 0x80) = pcVar24;\n          *(uint *)(iVar6 + 0x84) = uVar26;\n          local_19c = uVar26;\n        }\n        cVar16 = *pcVar29;\n        uVar26 = (uint)(byte)cVar16;\n        if ((char)cVar16 < '\0') break;\n        if (*(char *)(iVar6 + uVar26) == '\0') goto LAB_00053608;\n        pcVar28 = pcVar29 + 1;\nLAB_000535b0:\n        if (uVar26 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)uVar26 + 0x20);\n        }\n        *pcVar23 = cVar16;\n        pcVar23 = pcVar23 + 1;\n        pcVar29 = pcVar28;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        pcVar22 = pcVar29;\n        if (pcVar30 <= pcVar29) goto LAB_00053608;\n        if (pcVar8 < pcVar23) {\n          uVar26 = local_19c * 2;\n          pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26);\n          if (pcVar24 == (code *)0x0) {\n            return &DAT_00000007;\n          }\n          pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));\n          (**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);\n          (**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));\n          pcVar8 = pcVar24 + (uVar26 - 6);\n          *(code **)(iVar6 + 0x80) = pcVar24;\n          *(uint *)(iVar6 + 0x84) = uVar26;\n          local_19c = uVar26;\n        }\n        cVar16 = *pcVar29;\n        uVar26 = (uint)(byte)cVar16;\n        if ((char)cVar16 < '\0') break;\n        if (*(char *)(iVar6 + uVar26) == '\0') goto LAB_00053608;\n        pcVar28 = pcVar29 + 1;\nLAB_000535b0:\n        if (uVar26 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)uVar26 + 0x20);\n        }\n        *pcVar23 = cVar16;\n        pcVar23 = pcVar23 + 1;\n        pcVar29 = pcVar28;\n      }" { (expression_statement "pcVar22 = pcVar29;" (assignment_expression "pcVar22 = pcVar29" identifier = identifier) ;) (if_statement "if (pcVar30 <= pcVar29) goto LAB_00053608;" if (parenthesized_expression "(pcVar30 <= pcVar29)" ( (binary_expression "pcVar30 <= pcVar29" identifier <= identifier) )) (goto_statement "goto LAB_00053608;" goto statement_identifier ;)) (if_statement "if (pcVar8 < pcVar23) {\n          uVar26 = local_19c * 2;\n          pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26);\n          if (pcVar24 == (code *)0x0) {\n            return &DAT_00000007;\n          }\n          pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));\n          (**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);\n          (**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));\n          pcVar8 = pcVar24 + (uVar26 - 6);\n          *(code **)(iVar6 + 0x80) = pcVar24;\n          *(uint *)(iVar6 + 0x84) = uVar26;\n          local_19c = uVar26;\n        }" if (parenthesized_expression "(pcVar8 < pcVar23)" ( (binary_expression "pcVar8 < pcVar23" identifier < identifier) )) (compound_statement "{\n          uVar26 = local_19c * 2;\n          pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26);\n          if (pcVar24 == (code *)0x0) {\n            return &DAT_00000007;\n          }\n          pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));\n          (**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);\n          (**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));\n          pcVar8 = pcVar24 + (uVar26 - 6);\n          *(code **)(iVar6 + 0x80) = pcVar24;\n          *(uint *)(iVar6 + 0x84) = uVar26;\n          local_19c = uVar26;\n        }" { (expression_statement "uVar26 = local_19c * 2;" (assignment_expression "uVar26 = local_19c * 2" identifier = (binary_expression "local_19c * 2" identifier * number_literal)) ;) (expression_statement "pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26);" (assignment_expression "pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26)" identifier = (cast_expression "(code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26)" identifier (argument_list "(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26)" ( (binary_expression "local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1" (binary_expression "local_19c >> 0x1f" identifier >> number_literal) | (binary_expression "((int)local_19c >> 0x1f) << 1" (parenthesized_expression "((int)local_19c >> 0x1f)" ( (binary_expression "(int)local_19c >> 0x1f" (cast_expression "(int)local_19c" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) << number_literal)) , identifier ))))) ;) (if_statement "if (pcVar24 == (code *)0x0) {\n            return &DAT_00000007;\n          }" if (parenthesized_expression "(pcVar24 == (code *)0x0)" ( (binary_expression "pcVar24 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            return &DAT_00000007;\n          }" { (return_statement "return &DAT_00000007;" return (pointer_expression "&DAT_00000007" & identifier) ;) })) (expression_statement "pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));" (assignment_expression "pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80))" identifier = (binary_expression "pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80))" identifier + (parenthesized_expression "((int)pcVar23 - *(int *)(iVar6 + 0x80))" ( (binary_expression "(int)pcVar23 - *(int *)(iVar6 + 0x80)" (cast_expression "(int)pcVar23" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar6 + 0x80)" * (cast_expression "(int *)(iVar6 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x80)" ( (binary_expression "iVar6 + 0x80" identifier + number_literal) ))))) )))) ;) (expression_statement "(**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);" (call_expression "(**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c)" (parenthesized_expression "(**(code **)(pcVar32 + 0x109640))" ( (pointer_expression "**(code **)(pcVar32 + 0x109640)" * (pointer_expression "*(code **)(pcVar32 + 0x109640)" * (cast_expression "(code **)(pcVar32 + 0x109640)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x109640)" ( (binary_expression "pcVar32 + 0x109640" identifier + number_literal) ))))) )) (argument_list "(pcVar24,*(int *)(iVar6 + 0x80),local_19c)" ( identifier , (pointer_expression "*(int *)(iVar6 + 0x80)" * (cast_expression "(int *)(iVar6 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x80)" ( (binary_expression "iVar6 + 0x80" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "(**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));" (call_expression "(**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80))" (parenthesized_expression "(**(code **)(pcVar32 + 0x1091f8))" ( (pointer_expression "**(code **)(pcVar32 + 0x1091f8)" * (pointer_expression "*(code **)(pcVar32 + 0x1091f8)" * (cast_expression "(code **)(pcVar32 + 0x1091f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x1091f8)" ( (binary_expression "pcVar32 + 0x1091f8" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar6 + 0x80))" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x80)" * (cast_expression "(undefined4 *)(iVar6 + 0x80)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x80)" ( (binary_expression "iVar6 + 0x80" identifier + number_literal) )))) ))) ;) (expression_statement "pcVar8 = pcVar24 + (uVar26 - 6);" (assignment_expression "pcVar8 = pcVar24 + (uVar26 - 6)" identifier = (binary_expression "pcVar24 + (uVar26 - 6)" identifier + (parenthesized_expression "(uVar26 - 6)" ( (binary_expression "uVar26 - 6" identifier - number_literal) )))) ;) (expression_statement "*(code **)(iVar6 + 0x80) = pcVar24;" (assignment_expression "*(code **)(iVar6 + 0x80) = pcVar24" (pointer_expression "*(code **)(iVar6 + 0x80)" * (cast_expression "(code **)(iVar6 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x80)" ( (binary_expression "iVar6 + 0x80" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar6 + 0x84) = uVar26;" (assignment_expression "*(uint *)(iVar6 + 0x84) = uVar26" (pointer_expression "*(uint *)(iVar6 + 0x84)" * (cast_expression "(uint *)(iVar6 + 0x84)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x84)" ( (binary_expression "iVar6 + 0x84" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_19c = uVar26;" (assignment_expression "local_19c = uVar26" identifier = identifier) ;) })) (expression_statement "cVar16 = *pcVar29;" (assignment_expression "cVar16 = *pcVar29" identifier = (pointer_expression "*pcVar29" * identifier)) ;) (expression_statement "uVar26 = (uint)(byte)cVar16;" (assignment_expression "uVar26 = (uint)(byte)cVar16" identifier = (cast_expression "(uint)(byte)cVar16" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)cVar16" ( (type_descriptor "byte" type_identifier) ) identifier))) ;) (if_statement "if ((char)cVar16 < '\0') break;" if (parenthesized_expression "((char)cVar16 < '\0')" ( (binary_expression "(char)cVar16 < '\0'" (cast_expression "(char)cVar16" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (if_statement "if (*(char *)(iVar6 + uVar26) == '\0') goto LAB_00053608;" if (parenthesized_expression "(*(char *)(iVar6 + uVar26) == '\0')" ( (binary_expression "*(char *)(iVar6 + uVar26) == '\0'" (pointer_expression "*(char *)(iVar6 + uVar26)" * (cast_expression "(char *)(iVar6 + uVar26)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + uVar26)" ( (binary_expression "iVar6 + uVar26" identifier + identifier) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00053608;" goto statement_identifier ;)) (expression_statement "pcVar28 = pcVar29 + 1;" (assignment_expression "pcVar28 = pcVar29 + 1" identifier = (binary_expression "pcVar29 + 1" identifier + number_literal)) ;) (labeled_statement "LAB_000535b0:\n        if (uVar26 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)uVar26 + 0x20);\n        }" statement_identifier : (if_statement "if (uVar26 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)uVar26 + 0x20);\n        }" if (parenthesized_expression "(uVar26 - 0x41 < 0x1a)" ( (binary_expression "uVar26 - 0x41 < 0x1a" (binary_expression "uVar26 - 0x41" identifier - number_literal) < number_literal) )) (compound_statement "{\n          cVar16 = (code)((char)uVar26 + 0x20);\n        }" { (expression_statement "cVar16 = (code)((char)uVar26 + 0x20);" (assignment_expression "cVar16 = (code)((char)uVar26 + 0x20)" identifier = (call_expression "(code)((char)uVar26 + 0x20)" (parenthesized_expression "(code)" ( identifier )) (argument_list "((char)uVar26 + 0x20)" ( (binary_expression "(char)uVar26 + 0x20" (cast_expression "(char)uVar26" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal) )))) ;) }))) (expression_statement "*pcVar23 = cVar16;" (assignment_expression "*pcVar23 = cVar16" (pointer_expression "*pcVar23" * identifier) = identifier) ;) (expression_statement "pcVar23 = pcVar23 + 1;" (assignment_expression "pcVar23 = pcVar23 + 1" identifier = (binary_expression "pcVar23 + 1" identifier + number_literal)) ;) (expression_statement "pcVar29 = pcVar28;" (assignment_expression "pcVar29 = pcVar28" identifier = identifier) ;) })) (expression_statement "pcVar28 = pcVar29 + 1;" (assignment_expression "pcVar28 = pcVar29 + 1" identifier = (binary_expression "pcVar29 + 1" identifier + number_literal)) ;) (if_statement "if (uVar26 < 0xc0) break;" if (parenthesized_expression "(uVar26 < 0xc0)" ( (binary_expression "uVar26 < 0xc0" identifier < number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);" (assignment_expression "uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0)" identifier = (binary_expression "(uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 + iVar25 + -0x73b4 + -0xc0)" ( (binary_expression "uVar26 + iVar25 + -0x73b4 + -0xc0" (binary_expression "uVar26 + iVar25 + -0x73b4" (binary_expression "uVar26 + iVar25" identifier + identifier) + number_literal) + number_literal) ))))) ;) (if_statement "if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80)) {\n        if (uVar26 < 0x80) goto LAB_00053748;\n      }\n      else {\n        do {\n          pcVar28 = pcVar28 + 1;\n          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n          if (pcVar30 == pcVar28) break;\n          uVar12 = (uint)(byte)*pcVar28;\n        } while ((uVar12 & 0xffffffc0) == 0x80);\n        if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);\n          uVar26 = 0xfffd;\n          goto joined_r0x00053724;\n        }\n      }" if (parenthesized_expression "((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80))" ( (binary_expression "(pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80)" (parenthesized_expression "(pcVar30 == pcVar28)" ( (binary_expression "pcVar30 == pcVar28" identifier == identifier) )) || (parenthesized_expression "(uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80)" ( (comma_expression "uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80" (assignment_expression "uVar12 = (uint)(byte)pcVar29[1]" identifier = (cast_expression "(uint)(byte)pcVar29[1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pcVar29[1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar29[1]" identifier [ number_literal ])))) , (binary_expression "(uVar12 & 0xc0) != 0x80" (parenthesized_expression "(uVar12 & 0xc0)" ( (binary_expression "uVar12 & 0xc0" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n        if (uVar26 < 0x80) goto LAB_00053748;\n      }" { (if_statement "if (uVar26 < 0x80) goto LAB_00053748;" if (parenthesized_expression "(uVar26 < 0x80)" ( (binary_expression "uVar26 < 0x80" identifier < number_literal) )) (goto_statement "goto LAB_00053748;" goto statement_identifier ;)) }) (else_clause "else {\n        do {\n          pcVar28 = pcVar28 + 1;\n          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n          if (pcVar30 == pcVar28) break;\n          uVar12 = (uint)(byte)*pcVar28;\n        } while ((uVar12 & 0xffffffc0) == 0x80);\n        if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);\n          uVar26 = 0xfffd;\n          goto joined_r0x00053724;\n        }\n      }" else (compound_statement "{\n        do {\n          pcVar28 = pcVar28 + 1;\n          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n          if (pcVar30 == pcVar28) break;\n          uVar12 = (uint)(byte)*pcVar28;\n        } while ((uVar12 & 0xffffffc0) == 0x80);\n        if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);\n          uVar26 = 0xfffd;\n          goto joined_r0x00053724;\n        }\n      }" { (do_statement "do {\n          pcVar28 = pcVar28 + 1;\n          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n          if (pcVar30 == pcVar28) break;\n          uVar12 = (uint)(byte)*pcVar28;\n        } while ((uVar12 & 0xffffffc0) == 0x80);" do (compound_statement "{\n          pcVar28 = pcVar28 + 1;\n          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n          if (pcVar30 == pcVar28) break;\n          uVar12 = (uint)(byte)*pcVar28;\n        }" { (expression_statement "pcVar28 = pcVar28 + 1;" (assignment_expression "pcVar28 = pcVar28 + 1" identifier = (binary_expression "pcVar28 + 1" identifier + number_literal)) ;) (expression_statement "uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;" (assignment_expression "uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40" identifier = (binary_expression "(uVar12 & 0x3f) + uVar26 * 0x40" (parenthesized_expression "(uVar12 & 0x3f)" ( (binary_expression "uVar12 & 0x3f" identifier & number_literal) )) + (binary_expression "uVar26 * 0x40" identifier * number_literal))) ;) (if_statement "if (pcVar30 == pcVar28) break;" if (parenthesized_expression "(pcVar30 == pcVar28)" ( (binary_expression "pcVar30 == pcVar28" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar12 = (uint)(byte)*pcVar28;" (assignment_expression "uVar12 = (uint)(byte)*pcVar28" identifier = (binary_expression "(uint)(byte)*pcVar28" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * identifier)) ;) }) while (parenthesized_expression "((uVar12 & 0xffffffc0) == 0x80)" ( (binary_expression "(uVar12 & 0xffffffc0) == 0x80" (parenthesized_expression "(uVar12 & 0xffffffc0)" ( (binary_expression "uVar12 & 0xffffffc0" identifier & number_literal) )) == number_literal) )) ;) (if_statement "if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);\n          uVar26 = 0xfffd;\n          goto joined_r0x00053724;\n        }" if (parenthesized_expression "(((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe))" ( (binary_expression "((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe)" (parenthesized_expression "((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800))" ( (binary_expression "(uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)" (parenthesized_expression "(uVar26 < 0x80)" ( (binary_expression "uVar26 < 0x80" identifier < number_literal) )) || (parenthesized_expression "((uVar26 & 0xfffff800) == 0xd800)" ( (binary_expression "(uVar26 & 0xfffff800) == 0xd800" (parenthesized_expression "(uVar26 & 0xfffff800)" ( (binary_expression "uVar26 & 0xfffff800" identifier & number_literal) )) == number_literal) ))) )) || (parenthesized_expression "((uVar26 & 0xfffffffe) == 0xfffe)" ( (binary_expression "(uVar26 & 0xfffffffe) == 0xfffe" (parenthesized_expression "(uVar26 & 0xfffffffe)" ( (binary_expression "uVar26 & 0xfffffffe" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\nLAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);\n          uVar26 = 0xfffd;\n          goto joined_r0x00053724;\n        }" { (labeled_statement "LAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);" statement_identifier : (expression_statement "iVar11 = FUN_00042fcc(iVar6,0xfffd);" (assignment_expression "iVar11 = FUN_00042fcc(iVar6,0xfffd)" identifier = (call_expression "FUN_00042fcc(iVar6,0xfffd)" identifier (argument_list "(iVar6,0xfffd)" ( identifier , number_literal )))) ;)) (expression_statement "uVar26 = 0xfffd;" (assignment_expression "uVar26 = 0xfffd" identifier = number_literal) ;) (goto_statement "goto joined_r0x00053724;" goto statement_identifier ;) })) }))) (expression_statement "iVar11 = FUN_00042fcc(iVar6,uVar26);" (assignment_expression "iVar11 = FUN_00042fcc(iVar6,uVar26)" identifier = (call_expression "FUN_00042fcc(iVar6,uVar26)" identifier (argument_list "(iVar6,uVar26)" ( identifier , identifier )))) ;) (if_statement "if ((iVar11 == 0) &&\n         ((pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))\n         )) goto LAB_00053608;" if (parenthesized_expression "((iVar11 == 0) &&\n         ((pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))\n         ))" ( (binary_expression "(iVar11 == 0) &&\n         ((pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))\n         )" (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) && (parenthesized_expression "((pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))\n         )" ( (parenthesized_expression "(pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))" ( (comma_expression "pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0)" (assignment_expression "pcVar22 = pcVar28" identifier = identifier) , (binary_expression "0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0)" (binary_expression "0x31 < uVar26 - 0x300" number_literal < (binary_expression "uVar26 - 0x300" identifier - number_literal)) || (parenthesized_expression "(iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0)" ( (comma_expression "iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0" (assignment_expression "iVar11 = FUN_0003e8a0(uVar26)" identifier = (call_expression "FUN_0003e8a0(uVar26)" identifier (argument_list "(uVar26)" ( identifier )))) , (binary_expression "iVar11 == 0" identifier == number_literal)) )))) )) ))) )) (goto_statement "goto LAB_00053608;" goto statement_identifier ;)) })) (expression_statement "iVar11 = FUN_00042fcc(iVar6,uVar26);" (assignment_expression "iVar11 = FUN_00042fcc(iVar6,uVar26)" identifier = (call_expression "FUN_00042fcc(iVar6,uVar26)" identifier (argument_list "(iVar6,uVar26)" ( identifier , identifier )))) ;) (labeled_statement "joined_r0x00053724:\n    pcVar22 = pcVar28;" statement_identifier : (expression_statement "pcVar22 = pcVar28;" (assignment_expression "pcVar22 = pcVar28" identifier = identifier) ;)) }) while (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) ;) (labeled_statement "LAB_00053608:\n  pcVar18 = (char *)(*local_14c)(pcVar19,0,pcVar24,(int)pcVar23 - (int)pcVar24,local_194,\n                                 (int)pcVar29 - (int)pcVar20);" statement_identifier : (expression_statement "pcVar18 = (char *)(*local_14c)(pcVar19,0,pcVar24,(int)pcVar23 - (int)pcVar24,local_194,\n                                 (int)pcVar29 - (int)pcVar20);" (assignment_expression "pcVar18 = (char *)(*local_14c)(pcVar19,0,pcVar24,(int)pcVar23 - (int)pcVar24,local_194,\n                                 (int)pcVar29 - (int)pcVar20)" identifier = (cast_expression "(char *)(*local_14c)(pcVar19,0,pcVar24,(int)pcVar23 - (int)pcVar24,local_194,\n                                 (int)pcVar29 - (int)pcVar20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*local_14c)(pcVar19,0,pcVar24,(int)pcVar23 - (int)pcVar24,local_194,\n                                 (int)pcVar29 - (int)pcVar20)" (parenthesized_expression "(*local_14c)" ( (pointer_expression "*local_14c" * identifier) )) (argument_list "(pcVar19,0,pcVar24,(int)pcVar23 - (int)pcVar24,local_194,\n                                 (int)pcVar29 - (int)pcVar20)" ( identifier , number_literal , identifier , (binary_expression "(int)pcVar23 - (int)pcVar24" (cast_expression "(int)pcVar23" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar24" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier , (binary_expression "(int)pcVar29 - (int)pcVar20" (cast_expression "(int)pcVar29" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar20" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;)) (if_statement "if (pcVar18 != (char *)0x0) {\n    if (pcVar18 == (char *)0x65) {\nLAB_00053644:\n      pcVar18 = (char *)0x0;\n    }\n    return pcVar18;\n  }" if (parenthesized_expression "(pcVar18 != (char *)0x0)" ( (binary_expression "pcVar18 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (pcVar18 == (char *)0x65) {\nLAB_00053644:\n      pcVar18 = (char *)0x0;\n    }\n    return pcVar18;\n  }" { (if_statement "if (pcVar18 == (char *)0x65) {\nLAB_00053644:\n      pcVar18 = (char *)0x0;\n    }" if (parenthesized_expression "(pcVar18 == (char *)0x65)" ( (binary_expression "pcVar18 == (char *)0x65" identifier == (cast_expression "(char *)0x65" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00053644:\n      pcVar18 = (char *)0x0;\n    }" { (labeled_statement "LAB_00053644:\n      pcVar18 = (char *)0x0;" statement_identifier : (expression_statement "pcVar18 = (char *)0x0;" (assignment_expression "pcVar18 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) })) (return_statement "return pcVar18;" return identifier ;) })) (goto_statement "goto LAB_00053480;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (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 TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE 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 TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (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 (pointer_expression * IDENT) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) )) || (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) ))) )) || (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) == (char_literal ' escape_sequence ')) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) }))) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]))) )))) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) })) (goto_statement goto statement_identifier ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]))) )))) == (char_literal ' escape_sequence '))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT))) )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (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 = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )) << LIT))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT)) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) }))) (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 (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (break_statement break ;)) }) while (parenthesized_expression ( BOOL )) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) }))) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT + IDENT) + LIT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) + (binary_expression IDENT * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) * IDENT)) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) ))) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }))) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( BOOL )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , LIT )))) & LIT) )) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT << LIT) )) >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT << LIT) )) >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT << LIT) )) >> LIT) ))) - LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) }))) }))) })) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )) << LIT)) , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return (pointer_expression & IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (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 (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (char_literal ' escape_sequence ')) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }))) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT + IDENT) + LIT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) + (binary_expression IDENT * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) * IDENT)) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) ))) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression LIT < (binary_expression IDENT - LIT)) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT == LIT)) )))) )) ))) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) , IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) })) (return_statement return IDENT ;) })) (goto_statement goto statement_identifier ;) })))
(function_definition "char * FUN_00052f80(undefined4 *param_1,char *param_2,undefined4 *param_3,code *param_4)\n\n{\n  bool bVar1;\n  char cVar2;\n  byte bVar3;\n  undefined *puVar4;\n  char *pcVar5;\n  int iVar6;\n  int *piVar7;\n  code *pcVar8;\n  undefined1 *puVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  char *pcVar15;\n  code cVar16;\n  code cVar17;\n  char *pcVar18;\n  char *pcVar19;\n  code *pcVar20;\n  undefined4 uVar21;\n  code *pcVar22;\n  code *pcVar23;\n  code *pcVar24;\n  int iVar25;\n  uint uVar26;\n  char *pcVar27;\n  code *pcVar28;\n  code *pcVar29;\n  code *pcVar30;\n  undefined *puVar31;\n  code *pcVar32;\n  uint local_19c;\n  int local_194;\n  code *local_150;\n  code *local_14c;\n  undefined1 auStack_12c [64];\n  int local_ec;\n  char *local_e8;\n  char *local_e4;\n  undefined *local_e0;\n  undefined4 *local_dc;\n  char *local_d8;\n  code *local_d4;\n  undefined4 *local_d0;\n  code *local_ac;\n  char local_a4 [4];\n  undefined4 local_a0 [31];\n  int local_24;\n  \n  puVar4 = PTR___stack_chk_guard_0015ca30;\n  local_24 = *(int *)PTR___stack_chk_guard_0015ca30;\n  pcVar22 = param_4;\n  pcVar5 = (char *)(*(code *)PTR_strlen_0015c9c8)(param_2);\n  pcVar27 = pcVar5 + 1;\n  pcVar18 = pcVar27;\n  pcVar5 = (char *)sqlite3_malloc64(pcVar27 < pcVar5);\n  *(undefined4 *)param_4 = 0;\n  *param_3 = 0;\n  puVar31 = PTR_sqlite3_free_0015c5ec;\n  if (pcVar5 == (char *)0x0) {\n    *param_1 = 7;\n    (*(code *)puVar31)(0);\n    pcVar19 = (char *)0x0;\n    goto LAB_000530c4;\n  }\n  pcVar18 = param_2;\n  (*(code *)PTR_memcpy_0015ca34)(pcVar5,param_2,pcVar27);\n  cVar2 = *pcVar5;\n  if ((((cVar2 == '\"') || (cVar2 == '\'')) || (cVar2 == '[')) || (cVar2 == '`')) {\n    iVar6 = (*(code *)(PTR_LAB_0015c66c + 0x4688))(pcVar5);\n    pcVar19 = param_2 + iVar6;\n    *(undefined4 *)param_4 = 1;\n    if (pcVar19 == (char *)0x0) goto LAB_0005311c;\n  }\n  else {\n    pcVar19 = param_2;\n    while( true ) {\n      cVar2 = *pcVar19;\n      puVar13 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xf68);\n      pcVar15 = local_a4;\n      do {\n        puVar14 = puVar13 + 4;\n        *(undefined4 *)pcVar15 = *puVar13;\n        pcVar22 = (code *)puVar13[1];\n        uVar21 = puVar13[2];\n        pcVar18 = (char *)puVar13[3];\n        *(code **)(pcVar15 + 4) = pcVar22;\n        *(undefined4 *)(pcVar15 + 8) = uVar21;\n        *(char **)(pcVar15 + 0xc) = pcVar18;\n        puVar13 = puVar14;\n        pcVar15 = pcVar15 + 0x10;\n      } while (puVar14 != (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8));\n      if ((-1 < cVar2) && (local_a4[cVar2] == '\0')) break;\n      pcVar19 = pcVar19 + 1;\n    }\n    bVar1 = param_2 == pcVar19;\n    param_2 = pcVar19 + -(int)param_2;\n    if (bVar1) {\nLAB_0005311c:\n      (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n      pcVar19 = (char *)0x0;\n      goto LAB_000530c4;\n    }\n    param_2 = pcVar5 + (int)param_2;\n    *param_2 = '\0';\n  }\n  *param_3 = pcVar5;\nLAB_000530c4:\n  if (local_24 == *(int *)puVar4) {\n    return pcVar19;\n  }\n  iVar6 = local_24;\n  puVar31 = PTR___stack_chk_fail_0015ca14;\n  (*(code *)PTR___stack_chk_fail_0015ca14)();\n  piVar7 = *(int **)(puVar31 + 0x1098c8);\n  local_e0 = puVar4;\n  local_ec = *piVar7;\n  iVar25 = 0x40;\n  pcVar19 = pcVar18;\n  pcVar20 = pcVar22;\n  puVar9 = auStack_12c;\n  pcVar24 = (code *)0x0;\n  local_e8 = pcVar5;\n  local_e4 = param_2;\n  local_dc = param_3;\n  local_d8 = pcVar27;\n  local_d4 = param_4;\n  local_d0 = param_1;\nLAB_000531e8:\n  do {\n    pcVar30 = pcVar24;\n    pcVar24 = pcVar30 + 1;\n    pcVar8 = pcVar24;\n    if ((-1 < (char)pcVar22[(int)pcVar30]) &&\n       (*(char *)(iVar6 + (char)pcVar22[(int)pcVar30]) == '\0')) {\n      if ((int)pcVar24 < 0x1645b0) goto LAB_000531e8;\n      pcVar8 = pcVar30 + 2;\n      pcVar30 = pcVar24;\n      if (pcVar24 == (code *)&_gp_1) {\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        goto LAB_00053398;\n      }\n    }\n    if ((int)pcVar8 < 0x1645b0) {\n      do {\n        if ((-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')\n           ) goto LAB_00053254;\n        pcVar8 = pcVar8 + 1;\n      } while (pcVar8 != (code *)&_gp_1);\n      pcVar24 = (code *)(&_gp_1 + -(int)pcVar30);\nLAB_00053254:\n      if (iVar25 < (int)pcVar24) {\n        pcVar19 = (char *)((int)pcVar24 << 1);\n        uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;\nLAB_00053270:\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        pcVar20 = pcVar24;\n        puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);\n        if (puVar9 == (undefined1 *)0x0) {\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }\n        iVar25 = (int)pcVar24 << 1;\n      }\n      pcVar20 = pcVar24;\n      if (0 < (int)pcVar24) goto LAB_000532c0;\n    }\n    else {\n      pcVar19 = &SUB_00000002;\n      if (iVar25 < 1) {\n        uVar26 = 0;\n        pcVar24 = (code *)0x1;\n        goto LAB_00053270;\n      }\n      pcVar24 = (code *)0x1;\nLAB_000532c0:\n      iVar10 = 0;\n      do {\n        cVar16 = pcVar22[(int)(pcVar30 + iVar10)];\n        if ((byte)cVar16 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }\n        pcVar20 = (code *)(puVar9 + iVar10);\n        iVar10 = iVar10 + 1;\n        *pcVar20 = cVar16;\n        pcVar20 = pcVar24;\n      } while (iVar10 < (int)pcVar24);\n    }\n    pcVar19 = (char *)0x0;\n    pcVar5 = (char *)(*local_ac)(pcVar18,0,puVar9);\n    local_150 = pcVar30;\n    local_14c = pcVar8;\n    if ((0x1645af < (int)(pcVar8 + 1)) || (pcVar24 = pcVar8 + 1, pcVar5 != (char *)0x0)) break;\n  } while( true );\n  if (puVar9 == auStack_12c) {\n    if (pcVar5 == (char *)0x65) {\nLAB_00053398:\n      pcVar5 = (char *)0x0;\n    }\n  }\n  else {\nLAB_000533c0:\n    (**(code **)(puVar31 + 0x109484))(puVar9);\n    if (pcVar5 == (char *)0x65) {\n      pcVar5 = (char *)0x0;\n    }\n  }\n  if (local_ec == *piVar7) {\n    return pcVar5;\n  }\n  pcVar32 = *(code **)(puVar31 + 0x1098ac);\n  iVar6 = local_ec;\n  (*pcVar32)();\n  local_19c = *(uint *)(iVar6 + 0x84);\n  iVar10 = *(int *)(pcVar32 + 0x1092d0);\n  pcVar24 = *(code **)(iVar6 + 0x80);\n  iVar25 = *(int *)(pcVar32 + 0x1092a4);\n  pcVar8 = pcVar24 + (local_19c - 6);\n  pcVar30 = pcVar20 + (int)local_150;\n  pcVar22 = pcVar20;\nLAB_00053480:\n  if (pcVar30 <= pcVar22) {\n    return (char *)0x0;\n  }\n  do {\n    cVar16 = *pcVar22;\n    uVar26 = (uint)(byte)cVar16;\n    pcVar28 = pcVar22 + 1;\n    pcVar23 = pcVar24;\n    if ((char)cVar16 < '\0') {\n      if (0xbf < uVar26) {\n        uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n        if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)) {\n          if (uVar26 < 0x80) {\n            uVar26 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);\n          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if (iVar11 != 0) break;\n    }\n    else {\n      local_194 = (int)pcVar22 - (int)pcVar20;\n      if (*(char *)(iVar6 + uVar26) != '\0') goto LAB_000535b0;\n    }\n    pcVar22 = pcVar28;\n    if (pcVar30 <= pcVar28) goto LAB_00053644;\n  } while( true );\n  local_194 = (int)pcVar22 - (int)pcVar20;\n  do {\n    while( true ) {\n      uVar26 = (*(code *)(iVar10 + 0x2d68))(uVar26,*(undefined4 *)(iVar6 + 0x88));\n      pcVar29 = pcVar28;\n      if (uVar26 != 0) {\n        if (uVar26 < 0x80) {\n          *pcVar23 = SUB41(uVar26,0);\n          pcVar23 = pcVar23 + 1;\n        }\n        else {\n          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);\n          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);\n          if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }\n        }\n      }\n      while( true ) {\n        pcVar22 = pcVar29;\n        if (pcVar30 <= pcVar29) goto LAB_00053608;\n        if (pcVar8 < pcVar23) {\n          uVar26 = local_19c * 2;\n          pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26);\n          if (pcVar24 == (code *)0x0) {\n            return &DAT_00000007;\n          }\n          pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));\n          (**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);\n          (**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));\n          pcVar8 = pcVar24 + (uVar26 - 6);\n          *(code **)(iVar6 + 0x80) = pcVar24;\n          *(uint *)(iVar6 + 0x84) = uVar26;\n          local_19c = uVar26;\n        }\n        cVar16 = *pcVar29;\n        uVar26 = (uint)(byte)cVar16;\n        if ((char)cVar16 < '\0') break;\n        if (*(char *)(iVar6 + uVar26) == '\0') goto LAB_00053608;\n        pcVar28 = pcVar29 + 1;\nLAB_000535b0:\n        if (uVar26 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)uVar26 + 0x20);\n        }\n        *pcVar23 = cVar16;\n        pcVar23 = pcVar23 + 1;\n        pcVar29 = pcVar28;\n      }\n      pcVar28 = pcVar29 + 1;\n      if (uVar26 < 0xc0) break;\n      uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n      if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80)) {\n        if (uVar26 < 0x80) goto LAB_00053748;\n      }\n      else {\n        do {\n          pcVar28 = pcVar28 + 1;\n          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n          if (pcVar30 == pcVar28) break;\n          uVar12 = (uint)(byte)*pcVar28;\n        } while ((uVar12 & 0xffffffc0) == 0x80);\n        if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);\n          uVar26 = 0xfffd;\n          goto joined_r0x00053724;\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if ((iVar11 == 0) &&\n         ((pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))\n         )) goto LAB_00053608;\n    }\n    iVar11 = FUN_00042fcc(iVar6,uVar26);\njoined_r0x00053724:\n    pcVar22 = pcVar28;\n  } while (iVar11 != 0);\nLAB_00053608:\n  pcVar18 = (char *)(*local_14c)(pcVar19,0,pcVar24,(int)pcVar23 - (int)pcVar24,local_194,\n                                 (int)pcVar29 - (int)pcVar20);\n  if (pcVar18 != (char *)0x0) {\n    if (pcVar18 == (char *)0x65) {\nLAB_00053644:\n      pcVar18 = (char *)0x0;\n    }\n    return pcVar18;\n  }\n  goto LAB_00053480;\n}" (primitive_type "char") (pointer_declarator "* FUN_00052f80(undefined4 *param_1,char *param_2,undefined4 *param_3,code *param_4)" (* "*") (function_declarator "FUN_00052f80(undefined4 *param_1,char *param_2,undefined4 *param_3,code *param_4)" (identifier "FUN_00052f80") (parameter_list "(undefined4 *param_1,char *param_2,undefined4 *param_3,code *param_4)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined4 *param_3" (type_identifier "undefined4") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "code *param_4" (type_identifier "code") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")")))) (compound_statement "{\n  bool bVar1;\n  char cVar2;\n  byte bVar3;\n  undefined *puVar4;\n  char *pcVar5;\n  int iVar6;\n  int *piVar7;\n  code *pcVar8;\n  undefined1 *puVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  char *pcVar15;\n  code cVar16;\n  code cVar17;\n  char *pcVar18;\n  char *pcVar19;\n  code *pcVar20;\n  undefined4 uVar21;\n  code *pcVar22;\n  code *pcVar23;\n  code *pcVar24;\n  int iVar25;\n  uint uVar26;\n  char *pcVar27;\n  code *pcVar28;\n  code *pcVar29;\n  code *pcVar30;\n  undefined *puVar31;\n  code *pcVar32;\n  uint local_19c;\n  int local_194;\n  code *local_150;\n  code *local_14c;\n  undefined1 auStack_12c [64];\n  int local_ec;\n  char *local_e8;\n  char *local_e4;\n  undefined *local_e0;\n  undefined4 *local_dc;\n  char *local_d8;\n  code *local_d4;\n  undefined4 *local_d0;\n  code *local_ac;\n  char local_a4 [4];\n  undefined4 local_a0 [31];\n  int local_24;\n  \n  puVar4 = PTR___stack_chk_guard_0015ca30;\n  local_24 = *(int *)PTR___stack_chk_guard_0015ca30;\n  pcVar22 = param_4;\n  pcVar5 = (char *)(*(code *)PTR_strlen_0015c9c8)(param_2);\n  pcVar27 = pcVar5 + 1;\n  pcVar18 = pcVar27;\n  pcVar5 = (char *)sqlite3_malloc64(pcVar27 < pcVar5);\n  *(undefined4 *)param_4 = 0;\n  *param_3 = 0;\n  puVar31 = PTR_sqlite3_free_0015c5ec;\n  if (pcVar5 == (char *)0x0) {\n    *param_1 = 7;\n    (*(code *)puVar31)(0);\n    pcVar19 = (char *)0x0;\n    goto LAB_000530c4;\n  }\n  pcVar18 = param_2;\n  (*(code *)PTR_memcpy_0015ca34)(pcVar5,param_2,pcVar27);\n  cVar2 = *pcVar5;\n  if ((((cVar2 == '\"') || (cVar2 == '\'')) || (cVar2 == '[')) || (cVar2 == '`')) {\n    iVar6 = (*(code *)(PTR_LAB_0015c66c + 0x4688))(pcVar5);\n    pcVar19 = param_2 + iVar6;\n    *(undefined4 *)param_4 = 1;\n    if (pcVar19 == (char *)0x0) goto LAB_0005311c;\n  }\n  else {\n    pcVar19 = param_2;\n    while( true ) {\n      cVar2 = *pcVar19;\n      puVar13 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xf68);\n      pcVar15 = local_a4;\n      do {\n        puVar14 = puVar13 + 4;\n        *(undefined4 *)pcVar15 = *puVar13;\n        pcVar22 = (code *)puVar13[1];\n        uVar21 = puVar13[2];\n        pcVar18 = (char *)puVar13[3];\n        *(code **)(pcVar15 + 4) = pcVar22;\n        *(undefined4 *)(pcVar15 + 8) = uVar21;\n        *(char **)(pcVar15 + 0xc) = pcVar18;\n        puVar13 = puVar14;\n        pcVar15 = pcVar15 + 0x10;\n      } while (puVar14 != (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8));\n      if ((-1 < cVar2) && (local_a4[cVar2] == '\0')) break;\n      pcVar19 = pcVar19 + 1;\n    }\n    bVar1 = param_2 == pcVar19;\n    param_2 = pcVar19 + -(int)param_2;\n    if (bVar1) {\nLAB_0005311c:\n      (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n      pcVar19 = (char *)0x0;\n      goto LAB_000530c4;\n    }\n    param_2 = pcVar5 + (int)param_2;\n    *param_2 = '\0';\n  }\n  *param_3 = pcVar5;\nLAB_000530c4:\n  if (local_24 == *(int *)puVar4) {\n    return pcVar19;\n  }\n  iVar6 = local_24;\n  puVar31 = PTR___stack_chk_fail_0015ca14;\n  (*(code *)PTR___stack_chk_fail_0015ca14)();\n  piVar7 = *(int **)(puVar31 + 0x1098c8);\n  local_e0 = puVar4;\n  local_ec = *piVar7;\n  iVar25 = 0x40;\n  pcVar19 = pcVar18;\n  pcVar20 = pcVar22;\n  puVar9 = auStack_12c;\n  pcVar24 = (code *)0x0;\n  local_e8 = pcVar5;\n  local_e4 = param_2;\n  local_dc = param_3;\n  local_d8 = pcVar27;\n  local_d4 = param_4;\n  local_d0 = param_1;\nLAB_000531e8:\n  do {\n    pcVar30 = pcVar24;\n    pcVar24 = pcVar30 + 1;\n    pcVar8 = pcVar24;\n    if ((-1 < (char)pcVar22[(int)pcVar30]) &&\n       (*(char *)(iVar6 + (char)pcVar22[(int)pcVar30]) == '\0')) {\n      if ((int)pcVar24 < 0x1645b0) goto LAB_000531e8;\n      pcVar8 = pcVar30 + 2;\n      pcVar30 = pcVar24;\n      if (pcVar24 == (code *)&_gp_1) {\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        goto LAB_00053398;\n      }\n    }\n    if ((int)pcVar8 < 0x1645b0) {\n      do {\n        if ((-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')\n           ) goto LAB_00053254;\n        pcVar8 = pcVar8 + 1;\n      } while (pcVar8 != (code *)&_gp_1);\n      pcVar24 = (code *)(&_gp_1 + -(int)pcVar30);\nLAB_00053254:\n      if (iVar25 < (int)pcVar24) {\n        pcVar19 = (char *)((int)pcVar24 << 1);\n        uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;\nLAB_00053270:\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        pcVar20 = pcVar24;\n        puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);\n        if (puVar9 == (undefined1 *)0x0) {\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }\n        iVar25 = (int)pcVar24 << 1;\n      }\n      pcVar20 = pcVar24;\n      if (0 < (int)pcVar24) goto LAB_000532c0;\n    }\n    else {\n      pcVar19 = &SUB_00000002;\n      if (iVar25 < 1) {\n        uVar26 = 0;\n        pcVar24 = (code *)0x1;\n        goto LAB_00053270;\n      }\n      pcVar24 = (code *)0x1;\nLAB_000532c0:\n      iVar10 = 0;\n      do {\n        cVar16 = pcVar22[(int)(pcVar30 + iVar10)];\n        if ((byte)cVar16 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }\n        pcVar20 = (code *)(puVar9 + iVar10);\n        iVar10 = iVar10 + 1;\n        *pcVar20 = cVar16;\n        pcVar20 = pcVar24;\n      } while (iVar10 < (int)pcVar24);\n    }\n    pcVar19 = (char *)0x0;\n    pcVar5 = (char *)(*local_ac)(pcVar18,0,puVar9);\n    local_150 = pcVar30;\n    local_14c = pcVar8;\n    if ((0x1645af < (int)(pcVar8 + 1)) || (pcVar24 = pcVar8 + 1, pcVar5 != (char *)0x0)) break;\n  } while( true );\n  if (puVar9 == auStack_12c) {\n    if (pcVar5 == (char *)0x65) {\nLAB_00053398:\n      pcVar5 = (char *)0x0;\n    }\n  }\n  else {\nLAB_000533c0:\n    (**(code **)(puVar31 + 0x109484))(puVar9);\n    if (pcVar5 == (char *)0x65) {\n      pcVar5 = (char *)0x0;\n    }\n  }\n  if (local_ec == *piVar7) {\n    return pcVar5;\n  }\n  pcVar32 = *(code **)(puVar31 + 0x1098ac);\n  iVar6 = local_ec;\n  (*pcVar32)();\n  local_19c = *(uint *)(iVar6 + 0x84);\n  iVar10 = *(int *)(pcVar32 + 0x1092d0);\n  pcVar24 = *(code **)(iVar6 + 0x80);\n  iVar25 = *(int *)(pcVar32 + 0x1092a4);\n  pcVar8 = pcVar24 + (local_19c - 6);\n  pcVar30 = pcVar20 + (int)local_150;\n  pcVar22 = pcVar20;\nLAB_00053480:\n  if (pcVar30 <= pcVar22) {\n    return (char *)0x0;\n  }\n  do {\n    cVar16 = *pcVar22;\n    uVar26 = (uint)(byte)cVar16;\n    pcVar28 = pcVar22 + 1;\n    pcVar23 = pcVar24;\n    if ((char)cVar16 < '\0') {\n      if (0xbf < uVar26) {\n        uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n        if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)) {\n          if (uVar26 < 0x80) {\n            uVar26 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);\n          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if (iVar11 != 0) break;\n    }\n    else {\n      local_194 = (int)pcVar22 - (int)pcVar20;\n      if (*(char *)(iVar6 + uVar26) != '\0') goto LAB_000535b0;\n    }\n    pcVar22 = pcVar28;\n    if (pcVar30 <= pcVar28) goto LAB_00053644;\n  } while( true );\n  local_194 = (int)pcVar22 - (int)pcVar20;\n  do {\n    while( true ) {\n      uVar26 = (*(code *)(iVar10 + 0x2d68))(uVar26,*(undefined4 *)(iVar6 + 0x88));\n      pcVar29 = pcVar28;\n      if (uVar26 != 0) {\n        if (uVar26 < 0x80) {\n          *pcVar23 = SUB41(uVar26,0);\n          pcVar23 = pcVar23 + 1;\n        }\n        else {\n          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);\n          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);\n          if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }\n        }\n      }\n      while( true ) {\n        pcVar22 = pcVar29;\n        if (pcVar30 <= pcVar29) goto LAB_00053608;\n        if (pcVar8 < pcVar23) {\n          uVar26 = local_19c * 2;\n          pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26);\n          if (pcVar24 == (code *)0x0) {\n            return &DAT_00000007;\n          }\n          pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));\n          (**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);\n          (**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));\n          pcVar8 = pcVar24 + (uVar26 - 6);\n          *(code **)(iVar6 + 0x80) = pcVar24;\n          *(uint *)(iVar6 + 0x84) = uVar26;\n          local_19c = uVar26;\n        }\n        cVar16 = *pcVar29;\n        uVar26 = (uint)(byte)cVar16;\n        if ((char)cVar16 < '\0') break;\n        if (*(char *)(iVar6 + uVar26) == '\0') goto LAB_00053608;\n        pcVar28 = pcVar29 + 1;\nLAB_000535b0:\n        if (uVar26 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)uVar26 + 0x20);\n        }\n        *pcVar23 = cVar16;\n        pcVar23 = pcVar23 + 1;\n        pcVar29 = pcVar28;\n      }\n      pcVar28 = pcVar29 + 1;\n      if (uVar26 < 0xc0) break;\n      uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n      if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80)) {\n        if (uVar26 < 0x80) goto LAB_00053748;\n      }\n      else {\n        do {\n          pcVar28 = pcVar28 + 1;\n          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n          if (pcVar30 == pcVar28) break;\n          uVar12 = (uint)(byte)*pcVar28;\n        } while ((uVar12 & 0xffffffc0) == 0x80);\n        if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);\n          uVar26 = 0xfffd;\n          goto joined_r0x00053724;\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if ((iVar11 == 0) &&\n         ((pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))\n         )) goto LAB_00053608;\n    }\n    iVar11 = FUN_00042fcc(iVar6,uVar26);\njoined_r0x00053724:\n    pcVar22 = pcVar28;\n  } while (iVar11 != 0);\nLAB_00053608:\n  pcVar18 = (char *)(*local_14c)(pcVar19,0,pcVar24,(int)pcVar23 - (int)pcVar24,local_194,\n                                 (int)pcVar29 - (int)pcVar20);\n  if (pcVar18 != (char *)0x0) {\n    if (pcVar18 == (char *)0x65) {\nLAB_00053644:\n      pcVar18 = (char *)0x0;\n    }\n    return pcVar18;\n  }\n  goto LAB_00053480;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "byte bVar3;" (type_identifier "byte") (identifier "bVar3") (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "char *pcVar5;" (primitive_type "char") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "code *pcVar8;" (type_identifier "code") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "undefined1 *puVar9;" (type_identifier "undefined1") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "undefined4 *puVar13;" (type_identifier "undefined4") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "undefined4 *puVar14;" (type_identifier "undefined4") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "char *pcVar15;" (primitive_type "char") (pointer_declarator "*pcVar15" (* "*") (identifier "pcVar15")) (; ";")) (declaration "code cVar16;" (type_identifier "code") (identifier "cVar16") (; ";")) (declaration "code cVar17;" (type_identifier "code") (identifier "cVar17") (; ";")) (declaration "char *pcVar18;" (primitive_type "char") (pointer_declarator "*pcVar18" (* "*") (identifier "pcVar18")) (; ";")) (declaration "char *pcVar19;" (primitive_type "char") (pointer_declarator "*pcVar19" (* "*") (identifier "pcVar19")) (; ";")) (declaration "code *pcVar20;" (type_identifier "code") (pointer_declarator "*pcVar20" (* "*") (identifier "pcVar20")) (; ";")) (declaration "undefined4 uVar21;" (type_identifier "undefined4") (identifier "uVar21") (; ";")) (declaration "code *pcVar22;" (type_identifier "code") (pointer_declarator "*pcVar22" (* "*") (identifier "pcVar22")) (; ";")) (declaration "code *pcVar23;" (type_identifier "code") (pointer_declarator "*pcVar23" (* "*") (identifier "pcVar23")) (; ";")) (declaration "code *pcVar24;" (type_identifier "code") (pointer_declarator "*pcVar24" (* "*") (identifier "pcVar24")) (; ";")) (declaration "int iVar25;" (primitive_type "int") (identifier "iVar25") (; ";")) (declaration "uint uVar26;" (type_identifier "uint") (identifier "uVar26") (; ";")) (declaration "char *pcVar27;" (primitive_type "char") (pointer_declarator "*pcVar27" (* "*") (identifier "pcVar27")) (; ";")) (declaration "code *pcVar28;" (type_identifier "code") (pointer_declarator "*pcVar28" (* "*") (identifier "pcVar28")) (; ";")) (declaration "code *pcVar29;" (type_identifier "code") (pointer_declarator "*pcVar29" (* "*") (identifier "pcVar29")) (; ";")) (declaration "code *pcVar30;" (type_identifier "code") (pointer_declarator "*pcVar30" (* "*") (identifier "pcVar30")) (; ";")) (declaration "undefined *puVar31;" (type_identifier "undefined") (pointer_declarator "*puVar31" (* "*") (identifier "puVar31")) (; ";")) (declaration "code *pcVar32;" (type_identifier "code") (pointer_declarator "*pcVar32" (* "*") (identifier "pcVar32")) (; ";")) (declaration "uint local_19c;" (type_identifier "uint") (identifier "local_19c") (; ";")) (declaration "int local_194;" (primitive_type "int") (identifier "local_194") (; ";")) (declaration "code *local_150;" (type_identifier "code") (pointer_declarator "*local_150" (* "*") (identifier "local_150")) (; ";")) (declaration "code *local_14c;" (type_identifier "code") (pointer_declarator "*local_14c" (* "*") (identifier "local_14c")) (; ";")) (declaration "undefined1 auStack_12c [64];" (type_identifier "undefined1") (array_declarator "auStack_12c [64]" (identifier "auStack_12c") ([ "[") (number_literal "64") (] "]")) (; ";")) (declaration "int local_ec;" (primitive_type "int") (identifier "local_ec") (; ";")) (declaration "char *local_e8;" (primitive_type "char") (pointer_declarator "*local_e8" (* "*") (identifier "local_e8")) (; ";")) (declaration "char *local_e4;" (primitive_type "char") (pointer_declarator "*local_e4" (* "*") (identifier "local_e4")) (; ";")) (declaration "undefined *local_e0;" (type_identifier "undefined") (pointer_declarator "*local_e0" (* "*") (identifier "local_e0")) (; ";")) (declaration "undefined4 *local_dc;" (type_identifier "undefined4") (pointer_declarator "*local_dc" (* "*") (identifier "local_dc")) (; ";")) (declaration "char *local_d8;" (primitive_type "char") (pointer_declarator "*local_d8" (* "*") (identifier "local_d8")) (; ";")) (declaration "code *local_d4;" (type_identifier "code") (pointer_declarator "*local_d4" (* "*") (identifier "local_d4")) (; ";")) (declaration "undefined4 *local_d0;" (type_identifier "undefined4") (pointer_declarator "*local_d0" (* "*") (identifier "local_d0")) (; ";")) (declaration "code *local_ac;" (type_identifier "code") (pointer_declarator "*local_ac" (* "*") (identifier "local_ac")) (; ";")) (declaration "char local_a4 [4];" (primitive_type "char") (array_declarator "local_a4 [4]" (identifier "local_a4") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined4 local_a0 [31];" (type_identifier "undefined4") (array_declarator "local_a0 [31]" (identifier "local_a0") ([ "[") (number_literal "31") (] "]")) (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (expression_statement "puVar4 = PTR___stack_chk_guard_0015ca30;" (assignment_expression "puVar4 = PTR___stack_chk_guard_0015ca30" (identifier "puVar4") (= "=") (identifier "PTR___stack_chk_guard_0015ca30")) (; ";")) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_0015ca30;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_0015ca30" (identifier "local_24") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_0015ca30" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0015ca30" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0015ca30")))) (; ";")) (expression_statement "pcVar22 = param_4;" (assignment_expression "pcVar22 = param_4" (identifier "pcVar22") (= "=") (identifier "param_4")) (; ";")) (expression_statement "pcVar5 = (char *)(*(code *)PTR_strlen_0015c9c8)(param_2);" (assignment_expression "pcVar5 = (char *)(*(code *)PTR_strlen_0015c9c8)(param_2)" (identifier "pcVar5") (= "=") (cast_expression "(char *)(*(code *)PTR_strlen_0015c9c8)(param_2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_strlen_0015c9c8)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_0015c9c8)" (( "(") (pointer_expression "*(code *)PTR_strlen_0015c9c8" (* "*") (cast_expression "(code *)PTR_strlen_0015c9c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0015c9c8"))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))))) (; ";")) (expression_statement "pcVar27 = pcVar5 + 1;" (assignment_expression "pcVar27 = pcVar5 + 1" (identifier "pcVar27") (= "=") (binary_expression "pcVar5 + 1" (identifier "pcVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar18 = pcVar27;" (assignment_expression "pcVar18 = pcVar27" (identifier "pcVar18") (= "=") (identifier "pcVar27")) (; ";")) (expression_statement "pcVar5 = (char *)sqlite3_malloc64(pcVar27 < pcVar5);" (assignment_expression "pcVar5 = (char *)sqlite3_malloc64(pcVar27 < pcVar5)" (identifier "pcVar5") (= "=") (cast_expression "(char *)sqlite3_malloc64(pcVar27 < pcVar5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "sqlite3_malloc64(pcVar27 < pcVar5)" (identifier "sqlite3_malloc64") (argument_list "(pcVar27 < pcVar5)" (( "(") (binary_expression "pcVar27 < pcVar5" (identifier "pcVar27") (< "<") (identifier "pcVar5")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)param_4 = 0;" (assignment_expression "*(undefined4 *)param_4 = 0" (pointer_expression "*(undefined4 *)param_4" (* "*") (cast_expression "(undefined4 *)param_4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_4"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar31 = PTR_sqlite3_free_0015c5ec;" (assignment_expression "puVar31 = PTR_sqlite3_free_0015c5ec" (identifier "puVar31") (= "=") (identifier "PTR_sqlite3_free_0015c5ec")) (; ";")) (if_statement "if (pcVar5 == (char *)0x0) {\n    *param_1 = 7;\n    (*(code *)puVar31)(0);\n    pcVar19 = (char *)0x0;\n    goto LAB_000530c4;\n  }" (if "if") (parenthesized_expression "(pcVar5 == (char *)0x0)" (( "(") (binary_expression "pcVar5 == (char *)0x0" (identifier "pcVar5") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    *param_1 = 7;\n    (*(code *)puVar31)(0);\n    pcVar19 = (char *)0x0;\n    goto LAB_000530c4;\n  }" ({ "{") (expression_statement "*param_1 = 7;" (assignment_expression "*param_1 = 7" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (number_literal "7")) (; ";")) (expression_statement "(*(code *)puVar31)(0);" (call_expression "(*(code *)puVar31)(0)" (parenthesized_expression "(*(code *)puVar31)" (( "(") (pointer_expression "*(code *)puVar31" (* "*") (cast_expression "(code *)puVar31" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar31"))) () ")")) (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (expression_statement "pcVar19 = (char *)0x0;" (assignment_expression "pcVar19 = (char *)0x0" (identifier "pcVar19") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_000530c4;" (goto "goto") (statement_identifier "LAB_000530c4") (; ";")) (} "}"))) (expression_statement "pcVar18 = param_2;" (assignment_expression "pcVar18 = param_2" (identifier "pcVar18") (= "=") (identifier "param_2")) (; ";")) (expression_statement "(*(code *)PTR_memcpy_0015ca34)(pcVar5,param_2,pcVar27);" (call_expression "(*(code *)PTR_memcpy_0015ca34)(pcVar5,param_2,pcVar27)" (parenthesized_expression "(*(code *)PTR_memcpy_0015ca34)" (( "(") (pointer_expression "*(code *)PTR_memcpy_0015ca34" (* "*") (cast_expression "(code *)PTR_memcpy_0015ca34" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memcpy_0015ca34"))) () ")")) (argument_list "(pcVar5,param_2,pcVar27)" (( "(") (identifier "pcVar5") (, ",") (identifier "param_2") (, ",") (identifier "pcVar27") () ")"))) (; ";")) (expression_statement "cVar2 = *pcVar5;" (assignment_expression "cVar2 = *pcVar5" (identifier "cVar2") (= "=") (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5"))) (; ";")) (if_statement "if ((((cVar2 == '\"') || (cVar2 == '\'')) || (cVar2 == '[')) || (cVar2 == '`')) {\n    iVar6 = (*(code *)(PTR_LAB_0015c66c + 0x4688))(pcVar5);\n    pcVar19 = param_2 + iVar6;\n    *(undefined4 *)param_4 = 1;\n    if (pcVar19 == (char *)0x0) goto LAB_0005311c;\n  }\n  else {\n    pcVar19 = param_2;\n    while( true ) {\n      cVar2 = *pcVar19;\n      puVar13 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xf68);\n      pcVar15 = local_a4;\n      do {\n        puVar14 = puVar13 + 4;\n        *(undefined4 *)pcVar15 = *puVar13;\n        pcVar22 = (code *)puVar13[1];\n        uVar21 = puVar13[2];\n        pcVar18 = (char *)puVar13[3];\n        *(code **)(pcVar15 + 4) = pcVar22;\n        *(undefined4 *)(pcVar15 + 8) = uVar21;\n        *(char **)(pcVar15 + 0xc) = pcVar18;\n        puVar13 = puVar14;\n        pcVar15 = pcVar15 + 0x10;\n      } while (puVar14 != (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8));\n      if ((-1 < cVar2) && (local_a4[cVar2] == '\0')) break;\n      pcVar19 = pcVar19 + 1;\n    }\n    bVar1 = param_2 == pcVar19;\n    param_2 = pcVar19 + -(int)param_2;\n    if (bVar1) {\nLAB_0005311c:\n      (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n      pcVar19 = (char *)0x0;\n      goto LAB_000530c4;\n    }\n    param_2 = pcVar5 + (int)param_2;\n    *param_2 = '\0';\n  }" (if "if") (parenthesized_expression "((((cVar2 == '\"') || (cVar2 == '\'')) || (cVar2 == '[')) || (cVar2 == '`'))" (( "(") (binary_expression "(((cVar2 == '\"') || (cVar2 == '\'')) || (cVar2 == '[')) || (cVar2 == '`')" (parenthesized_expression "(((cVar2 == '\"') || (cVar2 == '\'')) || (cVar2 == '['))" (( "(") (binary_expression "((cVar2 == '\"') || (cVar2 == '\'')) || (cVar2 == '[')" (parenthesized_expression "((cVar2 == '\"') || (cVar2 == '\''))" (( "(") (binary_expression "(cVar2 == '\"') || (cVar2 == '\'')" (parenthesized_expression "(cVar2 == '\"')" (( "(") (binary_expression "cVar2 == '\"'" (identifier "cVar2") (== "==") (char_literal "'\"'" (' "'") (escape_sequence "\"") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(cVar2 == '\'')" (( "(") (binary_expression "cVar2 == '\''" (identifier "cVar2") (== "==") (char_literal "'\''" (' "'") (escape_sequence "\'") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(cVar2 == '[')" (( "(") (binary_expression "cVar2 == '['" (identifier "cVar2") (== "==") (char_literal "'['" (' "'") (character "[") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(cVar2 == '`')" (( "(") (binary_expression "cVar2 == '`'" (identifier "cVar2") (== "==") (char_literal "'`'" (' "'") (character "`") (' "'"))) () ")"))) () ")")) (compound_statement "{\n    iVar6 = (*(code *)(PTR_LAB_0015c66c + 0x4688))(pcVar5);\n    pcVar19 = param_2 + iVar6;\n    *(undefined4 *)param_4 = 1;\n    if (pcVar19 == (char *)0x0) goto LAB_0005311c;\n  }" ({ "{") (expression_statement "iVar6 = (*(code *)(PTR_LAB_0015c66c + 0x4688))(pcVar5);" (assignment_expression "iVar6 = (*(code *)(PTR_LAB_0015c66c + 0x4688))(pcVar5)" (identifier "iVar6") (= "=") (call_expression "(*(code *)(PTR_LAB_0015c66c + 0x4688))(pcVar5)" (parenthesized_expression "(*(code *)(PTR_LAB_0015c66c + 0x4688))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0015c66c + 0x4688)" (* "*") (cast_expression "(code *)(PTR_LAB_0015c66c + 0x4688)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015c66c + 0x4688)" (( "(") (binary_expression "PTR_LAB_0015c66c + 0x4688" (identifier "PTR_LAB_0015c66c") (+ "+") (number_literal "0x4688")) () ")")))) () ")")) (argument_list "(pcVar5)" (( "(") (identifier "pcVar5") () ")")))) (; ";")) (expression_statement "pcVar19 = param_2 + iVar6;" (assignment_expression "pcVar19 = param_2 + iVar6" (identifier "pcVar19") (= "=") (binary_expression "param_2 + iVar6" (identifier "param_2") (+ "+") (identifier "iVar6"))) (; ";")) (expression_statement "*(undefined4 *)param_4 = 1;" (assignment_expression "*(undefined4 *)param_4 = 1" (pointer_expression "*(undefined4 *)param_4" (* "*") (cast_expression "(undefined4 *)param_4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_4"))) (= "=") (number_literal "1")) (; ";")) (if_statement "if (pcVar19 == (char *)0x0) goto LAB_0005311c;" (if "if") (parenthesized_expression "(pcVar19 == (char *)0x0)" (( "(") (binary_expression "pcVar19 == (char *)0x0" (identifier "pcVar19") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0005311c;" (goto "goto") (statement_identifier "LAB_0005311c") (; ";"))) (} "}")) (else_clause "else {\n    pcVar19 = param_2;\n    while( true ) {\n      cVar2 = *pcVar19;\n      puVar13 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xf68);\n      pcVar15 = local_a4;\n      do {\n        puVar14 = puVar13 + 4;\n        *(undefined4 *)pcVar15 = *puVar13;\n        pcVar22 = (code *)puVar13[1];\n        uVar21 = puVar13[2];\n        pcVar18 = (char *)puVar13[3];\n        *(code **)(pcVar15 + 4) = pcVar22;\n        *(undefined4 *)(pcVar15 + 8) = uVar21;\n        *(char **)(pcVar15 + 0xc) = pcVar18;\n        puVar13 = puVar14;\n        pcVar15 = pcVar15 + 0x10;\n      } while (puVar14 != (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8));\n      if ((-1 < cVar2) && (local_a4[cVar2] == '\0')) break;\n      pcVar19 = pcVar19 + 1;\n    }\n    bVar1 = param_2 == pcVar19;\n    param_2 = pcVar19 + -(int)param_2;\n    if (bVar1) {\nLAB_0005311c:\n      (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n      pcVar19 = (char *)0x0;\n      goto LAB_000530c4;\n    }\n    param_2 = pcVar5 + (int)param_2;\n    *param_2 = '\0';\n  }" (else "else") (compound_statement "{\n    pcVar19 = param_2;\n    while( true ) {\n      cVar2 = *pcVar19;\n      puVar13 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xf68);\n      pcVar15 = local_a4;\n      do {\n        puVar14 = puVar13 + 4;\n        *(undefined4 *)pcVar15 = *puVar13;\n        pcVar22 = (code *)puVar13[1];\n        uVar21 = puVar13[2];\n        pcVar18 = (char *)puVar13[3];\n        *(code **)(pcVar15 + 4) = pcVar22;\n        *(undefined4 *)(pcVar15 + 8) = uVar21;\n        *(char **)(pcVar15 + 0xc) = pcVar18;\n        puVar13 = puVar14;\n        pcVar15 = pcVar15 + 0x10;\n      } while (puVar14 != (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8));\n      if ((-1 < cVar2) && (local_a4[cVar2] == '\0')) break;\n      pcVar19 = pcVar19 + 1;\n    }\n    bVar1 = param_2 == pcVar19;\n    param_2 = pcVar19 + -(int)param_2;\n    if (bVar1) {\nLAB_0005311c:\n      (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n      pcVar19 = (char *)0x0;\n      goto LAB_000530c4;\n    }\n    param_2 = pcVar5 + (int)param_2;\n    *param_2 = '\0';\n  }" ({ "{") (expression_statement "pcVar19 = param_2;" (assignment_expression "pcVar19 = param_2" (identifier "pcVar19") (= "=") (identifier "param_2")) (; ";")) (while_statement "while( true ) {\n      cVar2 = *pcVar19;\n      puVar13 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xf68);\n      pcVar15 = local_a4;\n      do {\n        puVar14 = puVar13 + 4;\n        *(undefined4 *)pcVar15 = *puVar13;\n        pcVar22 = (code *)puVar13[1];\n        uVar21 = puVar13[2];\n        pcVar18 = (char *)puVar13[3];\n        *(code **)(pcVar15 + 4) = pcVar22;\n        *(undefined4 *)(pcVar15 + 8) = uVar21;\n        *(char **)(pcVar15 + 0xc) = pcVar18;\n        puVar13 = puVar14;\n        pcVar15 = pcVar15 + 0x10;\n      } while (puVar14 != (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8));\n      if ((-1 < cVar2) && (local_a4[cVar2] == '\0')) break;\n      pcVar19 = pcVar19 + 1;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      cVar2 = *pcVar19;\n      puVar13 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xf68);\n      pcVar15 = local_a4;\n      do {\n        puVar14 = puVar13 + 4;\n        *(undefined4 *)pcVar15 = *puVar13;\n        pcVar22 = (code *)puVar13[1];\n        uVar21 = puVar13[2];\n        pcVar18 = (char *)puVar13[3];\n        *(code **)(pcVar15 + 4) = pcVar22;\n        *(undefined4 *)(pcVar15 + 8) = uVar21;\n        *(char **)(pcVar15 + 0xc) = pcVar18;\n        puVar13 = puVar14;\n        pcVar15 = pcVar15 + 0x10;\n      } while (puVar14 != (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8));\n      if ((-1 < cVar2) && (local_a4[cVar2] == '\0')) break;\n      pcVar19 = pcVar19 + 1;\n    }" ({ "{") (expression_statement "cVar2 = *pcVar19;" (assignment_expression "cVar2 = *pcVar19" (identifier "cVar2") (= "=") (pointer_expression "*pcVar19" (* "*") (identifier "pcVar19"))) (; ";")) (expression_statement "puVar13 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xf68);" (assignment_expression "puVar13 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xf68)" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xf68)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_LE_FTS4_0015c5f4 + 0xf68)" (( "(") (binary_expression "PTR_s_LE_FTS4_0015c5f4 + 0xf68" (identifier "PTR_s_LE_FTS4_0015c5f4") (+ "+") (number_literal "0xf68")) () ")")))) (; ";")) (expression_statement "pcVar15 = local_a4;" (assignment_expression "pcVar15 = local_a4" (identifier "pcVar15") (= "=") (identifier "local_a4")) (; ";")) (do_statement "do {\n        puVar14 = puVar13 + 4;\n        *(undefined4 *)pcVar15 = *puVar13;\n        pcVar22 = (code *)puVar13[1];\n        uVar21 = puVar13[2];\n        pcVar18 = (char *)puVar13[3];\n        *(code **)(pcVar15 + 4) = pcVar22;\n        *(undefined4 *)(pcVar15 + 8) = uVar21;\n        *(char **)(pcVar15 + 0xc) = pcVar18;\n        puVar13 = puVar14;\n        pcVar15 = pcVar15 + 0x10;\n      } while (puVar14 != (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8));" (do "do") (compound_statement "{\n        puVar14 = puVar13 + 4;\n        *(undefined4 *)pcVar15 = *puVar13;\n        pcVar22 = (code *)puVar13[1];\n        uVar21 = puVar13[2];\n        pcVar18 = (char *)puVar13[3];\n        *(code **)(pcVar15 + 4) = pcVar22;\n        *(undefined4 *)(pcVar15 + 8) = uVar21;\n        *(char **)(pcVar15 + 0xc) = pcVar18;\n        puVar13 = puVar14;\n        pcVar15 = pcVar15 + 0x10;\n      }" ({ "{") (expression_statement "puVar14 = puVar13 + 4;" (assignment_expression "puVar14 = puVar13 + 4" (identifier "puVar14") (= "=") (binary_expression "puVar13 + 4" (identifier "puVar13") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "*(undefined4 *)pcVar15 = *puVar13;" (assignment_expression "*(undefined4 *)pcVar15 = *puVar13" (pointer_expression "*(undefined4 *)pcVar15" (* "*") (cast_expression "(undefined4 *)pcVar15" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar15"))) (= "=") (pointer_expression "*puVar13" (* "*") (identifier "puVar13"))) (; ";")) (expression_statement "pcVar22 = (code *)puVar13[1];" (assignment_expression "pcVar22 = (code *)puVar13[1]" (identifier "pcVar22") (= "=") (cast_expression "(code *)puVar13[1]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[1]" (identifier "puVar13") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "uVar21 = puVar13[2];" (assignment_expression "uVar21 = puVar13[2]" (identifier "uVar21") (= "=") (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pcVar18 = (char *)puVar13[3];" (assignment_expression "pcVar18 = (char *)puVar13[3]" (identifier "pcVar18") (= "=") (cast_expression "(char *)puVar13[3]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[3]" (identifier "puVar13") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "*(code **)(pcVar15 + 4) = pcVar22;" (assignment_expression "*(code **)(pcVar15 + 4) = pcVar22" (pointer_expression "*(code **)(pcVar15 + 4)" (* "*") (cast_expression "(code **)(pcVar15 + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 4)" (( "(") (binary_expression "pcVar15 + 4" (identifier "pcVar15") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "pcVar22")) (; ";")) (expression_statement "*(undefined4 *)(pcVar15 + 8) = uVar21;" (assignment_expression "*(undefined4 *)(pcVar15 + 8) = uVar21" (pointer_expression "*(undefined4 *)(pcVar15 + 8)" (* "*") (cast_expression "(undefined4 *)(pcVar15 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar15 + 8)" (( "(") (binary_expression "pcVar15 + 8" (identifier "pcVar15") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar21")) (; ";")) (expression_statement "*(char **)(pcVar15 + 0xc) = pcVar18;" (assignment_expression "*(char **)(pcVar15 + 0xc) = pcVar18" (pointer_expression "*(char **)(pcVar15 + 0xc)" (* "*") (cast_expression "(char **)(pcVar15 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0xc)" (( "(") (binary_expression "pcVar15 + 0xc" (identifier "pcVar15") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "pcVar18")) (; ";")) (expression_statement "puVar13 = puVar14;" (assignment_expression "puVar13 = puVar14" (identifier "puVar13") (= "=") (identifier "puVar14")) (; ";")) (expression_statement "pcVar15 = pcVar15 + 0x10;" (assignment_expression "pcVar15 = pcVar15 + 0x10" (identifier "pcVar15") (= "=") (binary_expression "pcVar15 + 0x10" (identifier "pcVar15") (+ "+") (number_literal "0x10"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar14 != (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8))" (( "(") (binary_expression "puVar14 != (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8)" (identifier "puVar14") (!= "!=") (cast_expression "(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_LE_FTS4_0015c5f4 + 0xfe8)" (( "(") (binary_expression "PTR_s_LE_FTS4_0015c5f4 + 0xfe8" (identifier "PTR_s_LE_FTS4_0015c5f4") (+ "+") (number_literal "0xfe8")) () ")")))) () ")")) (; ";")) (if_statement "if ((-1 < cVar2) && (local_a4[cVar2] == '\0')) break;" (if "if") (parenthesized_expression "((-1 < cVar2) && (local_a4[cVar2] == '\0'))" (( "(") (binary_expression "(-1 < cVar2) && (local_a4[cVar2] == '\0')" (parenthesized_expression "(-1 < cVar2)" (( "(") (binary_expression "-1 < cVar2" (number_literal "-1") (< "<") (identifier "cVar2")) () ")")) (&& "&&") (parenthesized_expression "(local_a4[cVar2] == '\0')" (( "(") (binary_expression "local_a4[cVar2] == '\0'" (subscript_expression "local_a4[cVar2]" (identifier "local_a4") ([ "[") (identifier "cVar2") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pcVar19 = pcVar19 + 1;" (assignment_expression "pcVar19 = pcVar19 + 1" (identifier "pcVar19") (= "=") (binary_expression "pcVar19 + 1" (identifier "pcVar19") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "bVar1 = param_2 == pcVar19;" (assignment_expression "bVar1 = param_2 == pcVar19" (identifier "bVar1") (= "=") (binary_expression "param_2 == pcVar19" (identifier "param_2") (== "==") (identifier "pcVar19"))) (; ";")) (expression_statement "param_2 = pcVar19 + -(int)param_2;" (assignment_expression "param_2 = pcVar19 + -(int)param_2" (identifier "param_2") (= "=") (binary_expression "pcVar19 + -(int)param_2" (identifier "pcVar19") (+ "+") (unary_expression "-(int)param_2" (- "-") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))))) (; ";")) (if_statement "if (bVar1) {\nLAB_0005311c:\n      (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n      pcVar19 = (char *)0x0;\n      goto LAB_000530c4;\n    }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\nLAB_0005311c:\n      (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n      pcVar19 = (char *)0x0;\n      goto LAB_000530c4;\n    }" ({ "{") (labeled_statement "LAB_0005311c:\n      (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);" (statement_identifier "LAB_0005311c") (: ":") (expression_statement "(*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);" (call_expression "(*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5)" (parenthesized_expression "(*(code *)PTR_sqlite3_free_0015c5ec)" (( "(") (pointer_expression "*(code *)PTR_sqlite3_free_0015c5ec" (* "*") (cast_expression "(code *)PTR_sqlite3_free_0015c5ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqlite3_free_0015c5ec"))) () ")")) (argument_list "(pcVar5)" (( "(") (identifier "pcVar5") () ")"))) (; ";"))) (expression_statement "pcVar19 = (char *)0x0;" (assignment_expression "pcVar19 = (char *)0x0" (identifier "pcVar19") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_000530c4;" (goto "goto") (statement_identifier "LAB_000530c4") (; ";")) (} "}"))) (expression_statement "param_2 = pcVar5 + (int)param_2;" (assignment_expression "param_2 = pcVar5 + (int)param_2" (identifier "param_2") (= "=") (binary_expression "pcVar5 + (int)param_2" (identifier "pcVar5") (+ "+") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")))) (; ";")) (expression_statement "*param_2 = '\0';" (assignment_expression "*param_2 = '\0'" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}")))) (expression_statement "*param_3 = pcVar5;" (assignment_expression "*param_3 = pcVar5" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "pcVar5")) (; ";")) (labeled_statement "LAB_000530c4:\n  if (local_24 == *(int *)puVar4) {\n    return pcVar19;\n  }" (statement_identifier "LAB_000530c4") (: ":") (if_statement "if (local_24 == *(int *)puVar4) {\n    return pcVar19;\n  }" (if "if") (parenthesized_expression "(local_24 == *(int *)puVar4)" (( "(") (binary_expression "local_24 == *(int *)puVar4" (identifier "local_24") (== "==") (pointer_expression "*(int *)puVar4" (* "*") (cast_expression "(int *)puVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4")))) () ")")) (compound_statement "{\n    return pcVar19;\n  }" ({ "{") (return_statement "return pcVar19;" (return "return") (identifier "pcVar19") (; ";")) (} "}")))) (expression_statement "iVar6 = local_24;" (assignment_expression "iVar6 = local_24" (identifier "iVar6") (= "=") (identifier "local_24")) (; ";")) (expression_statement "puVar31 = PTR___stack_chk_fail_0015ca14;" (assignment_expression "puVar31 = PTR___stack_chk_fail_0015ca14" (identifier "puVar31") (= "=") (identifier "PTR___stack_chk_fail_0015ca14")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_0015ca14)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015ca14)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015ca14)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0015ca14" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0015ca14" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0015ca14"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar7 = *(int **)(puVar31 + 0x1098c8);" (assignment_expression "piVar7 = *(int **)(puVar31 + 0x1098c8)" (identifier "piVar7") (= "=") (pointer_expression "*(int **)(puVar31 + 0x1098c8)" (* "*") (cast_expression "(int **)(puVar31 + 0x1098c8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar31 + 0x1098c8)" (( "(") (binary_expression "puVar31 + 0x1098c8" (identifier "puVar31") (+ "+") (number_literal "0x1098c8")) () ")"))))) (; ";")) (expression_statement "local_e0 = puVar4;" (assignment_expression "local_e0 = puVar4" (identifier "local_e0") (= "=") (identifier "puVar4")) (; ";")) (expression_statement "local_ec = *piVar7;" (assignment_expression "local_ec = *piVar7" (identifier "local_ec") (= "=") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) (; ";")) (expression_statement "iVar25 = 0x40;" (assignment_expression "iVar25 = 0x40" (identifier "iVar25") (= "=") (number_literal "0x40")) (; ";")) (expression_statement "pcVar19 = pcVar18;" (assignment_expression "pcVar19 = pcVar18" (identifier "pcVar19") (= "=") (identifier "pcVar18")) (; ";")) (expression_statement "pcVar20 = pcVar22;" (assignment_expression "pcVar20 = pcVar22" (identifier "pcVar20") (= "=") (identifier "pcVar22")) (; ";")) (expression_statement "puVar9 = auStack_12c;" (assignment_expression "puVar9 = auStack_12c" (identifier "puVar9") (= "=") (identifier "auStack_12c")) (; ";")) (expression_statement "pcVar24 = (code *)0x0;" (assignment_expression "pcVar24 = (code *)0x0" (identifier "pcVar24") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_e8 = pcVar5;" (assignment_expression "local_e8 = pcVar5" (identifier "local_e8") (= "=") (identifier "pcVar5")) (; ";")) (expression_statement "local_e4 = param_2;" (assignment_expression "local_e4 = param_2" (identifier "local_e4") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_dc = param_3;" (assignment_expression "local_dc = param_3" (identifier "local_dc") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_d8 = pcVar27;" (assignment_expression "local_d8 = pcVar27" (identifier "local_d8") (= "=") (identifier "pcVar27")) (; ";")) (expression_statement "local_d4 = param_4;" (assignment_expression "local_d4 = param_4" (identifier "local_d4") (= "=") (identifier "param_4")) (; ";")) (expression_statement "local_d0 = param_1;" (assignment_expression "local_d0 = param_1" (identifier "local_d0") (= "=") (identifier "param_1")) (; ";")) (labeled_statement "LAB_000531e8:\n  do {\n    pcVar30 = pcVar24;\n    pcVar24 = pcVar30 + 1;\n    pcVar8 = pcVar24;\n    if ((-1 < (char)pcVar22[(int)pcVar30]) &&\n       (*(char *)(iVar6 + (char)pcVar22[(int)pcVar30]) == '\0')) {\n      if ((int)pcVar24 < 0x1645b0) goto LAB_000531e8;\n      pcVar8 = pcVar30 + 2;\n      pcVar30 = pcVar24;\n      if (pcVar24 == (code *)&_gp_1) {\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        goto LAB_00053398;\n      }\n    }\n    if ((int)pcVar8 < 0x1645b0) {\n      do {\n        if ((-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')\n           ) goto LAB_00053254;\n        pcVar8 = pcVar8 + 1;\n      } while (pcVar8 != (code *)&_gp_1);\n      pcVar24 = (code *)(&_gp_1 + -(int)pcVar30);\nLAB_00053254:\n      if (iVar25 < (int)pcVar24) {\n        pcVar19 = (char *)((int)pcVar24 << 1);\n        uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;\nLAB_00053270:\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        pcVar20 = pcVar24;\n        puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);\n        if (puVar9 == (undefined1 *)0x0) {\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }\n        iVar25 = (int)pcVar24 << 1;\n      }\n      pcVar20 = pcVar24;\n      if (0 < (int)pcVar24) goto LAB_000532c0;\n    }\n    else {\n      pcVar19 = &SUB_00000002;\n      if (iVar25 < 1) {\n        uVar26 = 0;\n        pcVar24 = (code *)0x1;\n        goto LAB_00053270;\n      }\n      pcVar24 = (code *)0x1;\nLAB_000532c0:\n      iVar10 = 0;\n      do {\n        cVar16 = pcVar22[(int)(pcVar30 + iVar10)];\n        if ((byte)cVar16 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }\n        pcVar20 = (code *)(puVar9 + iVar10);\n        iVar10 = iVar10 + 1;\n        *pcVar20 = cVar16;\n        pcVar20 = pcVar24;\n      } while (iVar10 < (int)pcVar24);\n    }\n    pcVar19 = (char *)0x0;\n    pcVar5 = (char *)(*local_ac)(pcVar18,0,puVar9);\n    local_150 = pcVar30;\n    local_14c = pcVar8;\n    if ((0x1645af < (int)(pcVar8 + 1)) || (pcVar24 = pcVar8 + 1, pcVar5 != (char *)0x0)) break;\n  } while( true );" (statement_identifier "LAB_000531e8") (: ":") (do_statement "do {\n    pcVar30 = pcVar24;\n    pcVar24 = pcVar30 + 1;\n    pcVar8 = pcVar24;\n    if ((-1 < (char)pcVar22[(int)pcVar30]) &&\n       (*(char *)(iVar6 + (char)pcVar22[(int)pcVar30]) == '\0')) {\n      if ((int)pcVar24 < 0x1645b0) goto LAB_000531e8;\n      pcVar8 = pcVar30 + 2;\n      pcVar30 = pcVar24;\n      if (pcVar24 == (code *)&_gp_1) {\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        goto LAB_00053398;\n      }\n    }\n    if ((int)pcVar8 < 0x1645b0) {\n      do {\n        if ((-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')\n           ) goto LAB_00053254;\n        pcVar8 = pcVar8 + 1;\n      } while (pcVar8 != (code *)&_gp_1);\n      pcVar24 = (code *)(&_gp_1 + -(int)pcVar30);\nLAB_00053254:\n      if (iVar25 < (int)pcVar24) {\n        pcVar19 = (char *)((int)pcVar24 << 1);\n        uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;\nLAB_00053270:\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        pcVar20 = pcVar24;\n        puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);\n        if (puVar9 == (undefined1 *)0x0) {\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }\n        iVar25 = (int)pcVar24 << 1;\n      }\n      pcVar20 = pcVar24;\n      if (0 < (int)pcVar24) goto LAB_000532c0;\n    }\n    else {\n      pcVar19 = &SUB_00000002;\n      if (iVar25 < 1) {\n        uVar26 = 0;\n        pcVar24 = (code *)0x1;\n        goto LAB_00053270;\n      }\n      pcVar24 = (code *)0x1;\nLAB_000532c0:\n      iVar10 = 0;\n      do {\n        cVar16 = pcVar22[(int)(pcVar30 + iVar10)];\n        if ((byte)cVar16 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }\n        pcVar20 = (code *)(puVar9 + iVar10);\n        iVar10 = iVar10 + 1;\n        *pcVar20 = cVar16;\n        pcVar20 = pcVar24;\n      } while (iVar10 < (int)pcVar24);\n    }\n    pcVar19 = (char *)0x0;\n    pcVar5 = (char *)(*local_ac)(pcVar18,0,puVar9);\n    local_150 = pcVar30;\n    local_14c = pcVar8;\n    if ((0x1645af < (int)(pcVar8 + 1)) || (pcVar24 = pcVar8 + 1, pcVar5 != (char *)0x0)) break;\n  } while( true );" (do "do") (compound_statement "{\n    pcVar30 = pcVar24;\n    pcVar24 = pcVar30 + 1;\n    pcVar8 = pcVar24;\n    if ((-1 < (char)pcVar22[(int)pcVar30]) &&\n       (*(char *)(iVar6 + (char)pcVar22[(int)pcVar30]) == '\0')) {\n      if ((int)pcVar24 < 0x1645b0) goto LAB_000531e8;\n      pcVar8 = pcVar30 + 2;\n      pcVar30 = pcVar24;\n      if (pcVar24 == (code *)&_gp_1) {\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        goto LAB_00053398;\n      }\n    }\n    if ((int)pcVar8 < 0x1645b0) {\n      do {\n        if ((-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')\n           ) goto LAB_00053254;\n        pcVar8 = pcVar8 + 1;\n      } while (pcVar8 != (code *)&_gp_1);\n      pcVar24 = (code *)(&_gp_1 + -(int)pcVar30);\nLAB_00053254:\n      if (iVar25 < (int)pcVar24) {\n        pcVar19 = (char *)((int)pcVar24 << 1);\n        uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;\nLAB_00053270:\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        pcVar20 = pcVar24;\n        puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);\n        if (puVar9 == (undefined1 *)0x0) {\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }\n        iVar25 = (int)pcVar24 << 1;\n      }\n      pcVar20 = pcVar24;\n      if (0 < (int)pcVar24) goto LAB_000532c0;\n    }\n    else {\n      pcVar19 = &SUB_00000002;\n      if (iVar25 < 1) {\n        uVar26 = 0;\n        pcVar24 = (code *)0x1;\n        goto LAB_00053270;\n      }\n      pcVar24 = (code *)0x1;\nLAB_000532c0:\n      iVar10 = 0;\n      do {\n        cVar16 = pcVar22[(int)(pcVar30 + iVar10)];\n        if ((byte)cVar16 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }\n        pcVar20 = (code *)(puVar9 + iVar10);\n        iVar10 = iVar10 + 1;\n        *pcVar20 = cVar16;\n        pcVar20 = pcVar24;\n      } while (iVar10 < (int)pcVar24);\n    }\n    pcVar19 = (char *)0x0;\n    pcVar5 = (char *)(*local_ac)(pcVar18,0,puVar9);\n    local_150 = pcVar30;\n    local_14c = pcVar8;\n    if ((0x1645af < (int)(pcVar8 + 1)) || (pcVar24 = pcVar8 + 1, pcVar5 != (char *)0x0)) break;\n  }" ({ "{") (expression_statement "pcVar30 = pcVar24;" (assignment_expression "pcVar30 = pcVar24" (identifier "pcVar30") (= "=") (identifier "pcVar24")) (; ";")) (expression_statement "pcVar24 = pcVar30 + 1;" (assignment_expression "pcVar24 = pcVar30 + 1" (identifier "pcVar24") (= "=") (binary_expression "pcVar30 + 1" (identifier "pcVar30") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar8 = pcVar24;" (assignment_expression "pcVar8 = pcVar24" (identifier "pcVar8") (= "=") (identifier "pcVar24")) (; ";")) (if_statement "if ((-1 < (char)pcVar22[(int)pcVar30]) &&\n       (*(char *)(iVar6 + (char)pcVar22[(int)pcVar30]) == '\0')) {\n      if ((int)pcVar24 < 0x1645b0) goto LAB_000531e8;\n      pcVar8 = pcVar30 + 2;\n      pcVar30 = pcVar24;\n      if (pcVar24 == (code *)&_gp_1) {\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        goto LAB_00053398;\n      }\n    }" (if "if") (parenthesized_expression "((-1 < (char)pcVar22[(int)pcVar30]) &&\n       (*(char *)(iVar6 + (char)pcVar22[(int)pcVar30]) == '\0'))" (( "(") (binary_expression "(-1 < (char)pcVar22[(int)pcVar30]) &&\n       (*(char *)(iVar6 + (char)pcVar22[(int)pcVar30]) == '\0')" (parenthesized_expression "(-1 < (char)pcVar22[(int)pcVar30])" (( "(") (binary_expression "-1 < (char)pcVar22[(int)pcVar30]" (number_literal "-1") (< "<") (cast_expression "(char)pcVar22[(int)pcVar30]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "pcVar22[(int)pcVar30]" (identifier "pcVar22") ([ "[") (cast_expression "(int)pcVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar30")) (] "]")))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar6 + (char)pcVar22[(int)pcVar30]) == '\0')" (( "(") (binary_expression "*(char *)(iVar6 + (char)pcVar22[(int)pcVar30]) == '\0'" (pointer_expression "*(char *)(iVar6 + (char)pcVar22[(int)pcVar30])" (* "*") (cast_expression "(char *)(iVar6 + (char)pcVar22[(int)pcVar30])" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + (char)pcVar22[(int)pcVar30])" (( "(") (binary_expression "iVar6 + (char)pcVar22[(int)pcVar30]" (identifier "iVar6") (+ "+") (cast_expression "(char)pcVar22[(int)pcVar30]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "pcVar22[(int)pcVar30]" (identifier "pcVar22") ([ "[") (cast_expression "(int)pcVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar30")) (] "]")))) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n      if ((int)pcVar24 < 0x1645b0) goto LAB_000531e8;\n      pcVar8 = pcVar30 + 2;\n      pcVar30 = pcVar24;\n      if (pcVar24 == (code *)&_gp_1) {\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        goto LAB_00053398;\n      }\n    }" ({ "{") (if_statement "if ((int)pcVar24 < 0x1645b0) goto LAB_000531e8;" (if "if") (parenthesized_expression "((int)pcVar24 < 0x1645b0)" (( "(") (binary_expression "(int)pcVar24 < 0x1645b0" (cast_expression "(int)pcVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar24")) (< "<") (number_literal "0x1645b0")) () ")")) (goto_statement "goto LAB_000531e8;" (goto "goto") (statement_identifier "LAB_000531e8") (; ";"))) (expression_statement "pcVar8 = pcVar30 + 2;" (assignment_expression "pcVar8 = pcVar30 + 2" (identifier "pcVar8") (= "=") (binary_expression "pcVar30 + 2" (identifier "pcVar30") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "pcVar30 = pcVar24;" (assignment_expression "pcVar30 = pcVar24" (identifier "pcVar30") (= "=") (identifier "pcVar24")) (; ";")) (if_statement "if (pcVar24 == (code *)&_gp_1) {\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        goto LAB_00053398;\n      }" (if "if") (parenthesized_expression "(pcVar24 == (code *)&_gp_1)" (( "(") (binary_expression "pcVar24 == (code *)&_gp_1" (identifier "pcVar24") (== "==") (cast_expression "(code *)&_gp_1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")))) () ")")) (compound_statement "{\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        goto LAB_00053398;\n      }" ({ "{") (if_statement "if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }" (if "if") (parenthesized_expression "(puVar9 != auStack_12c)" (( "(") (binary_expression "puVar9 != auStack_12c" (identifier "puVar9") (!= "!=") (identifier "auStack_12c")) () ")")) (compound_statement "{\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }" ({ "{") (expression_statement "(**(code **)(puVar31 + 0x109484))(puVar9);" (call_expression "(**(code **)(puVar31 + 0x109484))(puVar9)" (parenthesized_expression "(**(code **)(puVar31 + 0x109484))" (( "(") (pointer_expression "**(code **)(puVar31 + 0x109484)" (* "*") (pointer_expression "*(code **)(puVar31 + 0x109484)" (* "*") (cast_expression "(code **)(puVar31 + 0x109484)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar31 + 0x109484)" (( "(") (binary_expression "puVar31 + 0x109484" (identifier "puVar31") (+ "+") (number_literal "0x109484")) () ")"))))) () ")")) (argument_list "(puVar9)" (( "(") (identifier "puVar9") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_00053398;" (goto "goto") (statement_identifier "LAB_00053398") (; ";")) (} "}"))) (} "}"))) (if_statement "if ((int)pcVar8 < 0x1645b0) {\n      do {\n        if ((-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')\n           ) goto LAB_00053254;\n        pcVar8 = pcVar8 + 1;\n      } while (pcVar8 != (code *)&_gp_1);\n      pcVar24 = (code *)(&_gp_1 + -(int)pcVar30);\nLAB_00053254:\n      if (iVar25 < (int)pcVar24) {\n        pcVar19 = (char *)((int)pcVar24 << 1);\n        uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;\nLAB_00053270:\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        pcVar20 = pcVar24;\n        puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);\n        if (puVar9 == (undefined1 *)0x0) {\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }\n        iVar25 = (int)pcVar24 << 1;\n      }\n      pcVar20 = pcVar24;\n      if (0 < (int)pcVar24) goto LAB_000532c0;\n    }\n    else {\n      pcVar19 = &SUB_00000002;\n      if (iVar25 < 1) {\n        uVar26 = 0;\n        pcVar24 = (code *)0x1;\n        goto LAB_00053270;\n      }\n      pcVar24 = (code *)0x1;\nLAB_000532c0:\n      iVar10 = 0;\n      do {\n        cVar16 = pcVar22[(int)(pcVar30 + iVar10)];\n        if ((byte)cVar16 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }\n        pcVar20 = (code *)(puVar9 + iVar10);\n        iVar10 = iVar10 + 1;\n        *pcVar20 = cVar16;\n        pcVar20 = pcVar24;\n      } while (iVar10 < (int)pcVar24);\n    }" (if "if") (parenthesized_expression "((int)pcVar8 < 0x1645b0)" (( "(") (binary_expression "(int)pcVar8 < 0x1645b0" (cast_expression "(int)pcVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar8")) (< "<") (number_literal "0x1645b0")) () ")")) (compound_statement "{\n      do {\n        if ((-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')\n           ) goto LAB_00053254;\n        pcVar8 = pcVar8 + 1;\n      } while (pcVar8 != (code *)&_gp_1);\n      pcVar24 = (code *)(&_gp_1 + -(int)pcVar30);\nLAB_00053254:\n      if (iVar25 < (int)pcVar24) {\n        pcVar19 = (char *)((int)pcVar24 << 1);\n        uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;\nLAB_00053270:\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        pcVar20 = pcVar24;\n        puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);\n        if (puVar9 == (undefined1 *)0x0) {\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }\n        iVar25 = (int)pcVar24 << 1;\n      }\n      pcVar20 = pcVar24;\n      if (0 < (int)pcVar24) goto LAB_000532c0;\n    }" ({ "{") (do_statement "do {\n        if ((-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')\n           ) goto LAB_00053254;\n        pcVar8 = pcVar8 + 1;\n      } while (pcVar8 != (code *)&_gp_1);" (do "do") (compound_statement "{\n        if ((-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')\n           ) goto LAB_00053254;\n        pcVar8 = pcVar8 + 1;\n      }" ({ "{") (if_statement "if ((-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')\n           ) goto LAB_00053254;" (if "if") (parenthesized_expression "((-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')\n           )" (( "(") (binary_expression "(-1 < (char)pcVar22[(int)pcVar8]) &&\n           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')" (parenthesized_expression "(-1 < (char)pcVar22[(int)pcVar8])" (( "(") (binary_expression "-1 < (char)pcVar22[(int)pcVar8]" (number_literal "-1") (< "<") (cast_expression "(char)pcVar22[(int)pcVar8]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "pcVar22[(int)pcVar8]" (identifier "pcVar22") ([ "[") (cast_expression "(int)pcVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar8")) (] "]")))) () ")")) (&& "&&") (parenthesized_expression "(pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')" (( "(") (comma_expression "pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0'" (assignment_expression "pcVar24 = pcVar8 + -(int)pcVar30" (identifier "pcVar24") (= "=") (binary_expression "pcVar8 + -(int)pcVar30" (identifier "pcVar8") (+ "+") (unary_expression "-(int)pcVar30" (- "-") (cast_expression "(int)pcVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar30"))))) (, ",") (binary_expression "*(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0'" (pointer_expression "*(char *)(iVar6 + (char)pcVar22[(int)pcVar8])" (* "*") (cast_expression "(char *)(iVar6 + (char)pcVar22[(int)pcVar8])" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + (char)pcVar22[(int)pcVar8])" (( "(") (binary_expression "iVar6 + (char)pcVar22[(int)pcVar8]" (identifier "iVar6") (+ "+") (cast_expression "(char)pcVar22[(int)pcVar8]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "pcVar22[(int)pcVar8]" (identifier "pcVar22") ([ "[") (cast_expression "(int)pcVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar8")) (] "]")))) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (goto_statement "goto LAB_00053254;" (goto "goto") (statement_identifier "LAB_00053254") (; ";"))) (expression_statement "pcVar8 = pcVar8 + 1;" (assignment_expression "pcVar8 = pcVar8 + 1" (identifier "pcVar8") (= "=") (binary_expression "pcVar8 + 1" (identifier "pcVar8") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pcVar8 != (code *)&_gp_1)" (( "(") (binary_expression "pcVar8 != (code *)&_gp_1" (identifier "pcVar8") (!= "!=") (cast_expression "(code *)&_gp_1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")))) () ")")) (; ";")) (expression_statement "pcVar24 = (code *)(&_gp_1 + -(int)pcVar30);" (assignment_expression "pcVar24 = (code *)(&_gp_1 + -(int)pcVar30)" (identifier "pcVar24") (= "=") (cast_expression "(code *)(&_gp_1 + -(int)pcVar30)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&_gp_1 + -(int)pcVar30)" (( "(") (binary_expression "&_gp_1 + -(int)pcVar30" (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (+ "+") (unary_expression "-(int)pcVar30" (- "-") (cast_expression "(int)pcVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar30")))) () ")")))) (; ";")) (labeled_statement "LAB_00053254:\n      if (iVar25 < (int)pcVar24) {\n        pcVar19 = (char *)((int)pcVar24 << 1);\n        uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;\nLAB_00053270:\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        pcVar20 = pcVar24;\n        puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);\n        if (puVar9 == (undefined1 *)0x0) {\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }\n        iVar25 = (int)pcVar24 << 1;\n      }" (statement_identifier "LAB_00053254") (: ":") (if_statement "if (iVar25 < (int)pcVar24) {\n        pcVar19 = (char *)((int)pcVar24 << 1);\n        uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;\nLAB_00053270:\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        pcVar20 = pcVar24;\n        puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);\n        if (puVar9 == (undefined1 *)0x0) {\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }\n        iVar25 = (int)pcVar24 << 1;\n      }" (if "if") (parenthesized_expression "(iVar25 < (int)pcVar24)" (( "(") (binary_expression "iVar25 < (int)pcVar24" (identifier "iVar25") (< "<") (cast_expression "(int)pcVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar24"))) () ")")) (compound_statement "{\n        pcVar19 = (char *)((int)pcVar24 << 1);\n        uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;\nLAB_00053270:\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }\n        pcVar20 = pcVar24;\n        puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);\n        if (puVar9 == (undefined1 *)0x0) {\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }\n        iVar25 = (int)pcVar24 << 1;\n      }" ({ "{") (expression_statement "pcVar19 = (char *)((int)pcVar24 << 1);" (assignment_expression "pcVar19 = (char *)((int)pcVar24 << 1)" (identifier "pcVar19") (= "=") (cast_expression "(char *)((int)pcVar24 << 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pcVar24 << 1)" (( "(") (binary_expression "(int)pcVar24 << 1" (cast_expression "(int)pcVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar24")) (<< "<<") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;" (assignment_expression "uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1" (identifier "uVar26") (= "=") (binary_expression "(uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1" (binary_expression "(uint)pcVar24 >> 0x1f" (cast_expression "(uint)pcVar24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pcVar24")) (>> ">>") (number_literal "0x1f")) (| "|") (binary_expression "((int)pcVar24 >> 0x1f) << 1" (parenthesized_expression "((int)pcVar24 >> 0x1f)" (( "(") (binary_expression "(int)pcVar24 >> 0x1f" (cast_expression "(int)pcVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar24")) (>> ">>") (number_literal "0x1f")) () ")")) (<< "<<") (number_literal "1")))) (; ";")) (labeled_statement "LAB_00053270:\n        if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }" (statement_identifier "LAB_00053270") (: ":") (if_statement "if (puVar9 != auStack_12c) {\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }" (if "if") (parenthesized_expression "(puVar9 != auStack_12c)" (( "(") (binary_expression "puVar9 != auStack_12c" (identifier "puVar9") (!= "!=") (identifier "auStack_12c")) () ")")) (compound_statement "{\n          (**(code **)(puVar31 + 0x109484))(puVar9);\n        }" ({ "{") (expression_statement "(**(code **)(puVar31 + 0x109484))(puVar9);" (call_expression "(**(code **)(puVar31 + 0x109484))(puVar9)" (parenthesized_expression "(**(code **)(puVar31 + 0x109484))" (( "(") (pointer_expression "**(code **)(puVar31 + 0x109484)" (* "*") (pointer_expression "*(code **)(puVar31 + 0x109484)" (* "*") (cast_expression "(code **)(puVar31 + 0x109484)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar31 + 0x109484)" (( "(") (binary_expression "puVar31 + 0x109484" (identifier "puVar31") (+ "+") (number_literal "0x109484")) () ")"))))) () ")")) (argument_list "(puVar9)" (( "(") (identifier "puVar9") () ")"))) (; ";")) (} "}")))) (expression_statement "pcVar20 = pcVar24;" (assignment_expression "pcVar20 = pcVar24" (identifier "pcVar20") (= "=") (identifier "pcVar24")) (; ";")) (expression_statement "puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);" (assignment_expression "puVar9 = (undefined1 *)sqlite3_malloc64(uVar26)" (identifier "puVar9") (= "=") (cast_expression "(undefined1 *)sqlite3_malloc64(uVar26)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "sqlite3_malloc64(uVar26)" (identifier "sqlite3_malloc64") (argument_list "(uVar26)" (( "(") (identifier "uVar26") () ")"))))) (; ";")) (if_statement "if (puVar9 == (undefined1 *)0x0) {\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }" (if "if") (parenthesized_expression "(puVar9 == (undefined1 *)0x0)" (( "(") (binary_expression "puVar9 == (undefined1 *)0x0" (identifier "puVar9") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          pcVar5 = &DAT_00000007;\n          goto LAB_000533c0;\n        }" ({ "{") (expression_statement "pcVar5 = &DAT_00000007;" (assignment_expression "pcVar5 = &DAT_00000007" (identifier "pcVar5") (= "=") (pointer_expression "&DAT_00000007" (& "&") (identifier "DAT_00000007"))) (; ";")) (goto_statement "goto LAB_000533c0;" (goto "goto") (statement_identifier "LAB_000533c0") (; ";")) (} "}"))) (expression_statement "iVar25 = (int)pcVar24 << 1;" (assignment_expression "iVar25 = (int)pcVar24 << 1" (identifier "iVar25") (= "=") (binary_expression "(int)pcVar24 << 1" (cast_expression "(int)pcVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar24")) (<< "<<") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "pcVar20 = pcVar24;" (assignment_expression "pcVar20 = pcVar24" (identifier "pcVar20") (= "=") (identifier "pcVar24")) (; ";")) (if_statement "if (0 < (int)pcVar24) goto LAB_000532c0;" (if "if") (parenthesized_expression "(0 < (int)pcVar24)" (( "(") (binary_expression "0 < (int)pcVar24" (number_literal "0") (< "<") (cast_expression "(int)pcVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar24"))) () ")")) (goto_statement "goto LAB_000532c0;" (goto "goto") (statement_identifier "LAB_000532c0") (; ";"))) (} "}")) (else_clause "else {\n      pcVar19 = &SUB_00000002;\n      if (iVar25 < 1) {\n        uVar26 = 0;\n        pcVar24 = (code *)0x1;\n        goto LAB_00053270;\n      }\n      pcVar24 = (code *)0x1;\nLAB_000532c0:\n      iVar10 = 0;\n      do {\n        cVar16 = pcVar22[(int)(pcVar30 + iVar10)];\n        if ((byte)cVar16 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }\n        pcVar20 = (code *)(puVar9 + iVar10);\n        iVar10 = iVar10 + 1;\n        *pcVar20 = cVar16;\n        pcVar20 = pcVar24;\n      } while (iVar10 < (int)pcVar24);\n    }" (else "else") (compound_statement "{\n      pcVar19 = &SUB_00000002;\n      if (iVar25 < 1) {\n        uVar26 = 0;\n        pcVar24 = (code *)0x1;\n        goto LAB_00053270;\n      }\n      pcVar24 = (code *)0x1;\nLAB_000532c0:\n      iVar10 = 0;\n      do {\n        cVar16 = pcVar22[(int)(pcVar30 + iVar10)];\n        if ((byte)cVar16 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }\n        pcVar20 = (code *)(puVar9 + iVar10);\n        iVar10 = iVar10 + 1;\n        *pcVar20 = cVar16;\n        pcVar20 = pcVar24;\n      } while (iVar10 < (int)pcVar24);\n    }" ({ "{") (expression_statement "pcVar19 = &SUB_00000002;" (assignment_expression "pcVar19 = &SUB_00000002" (identifier "pcVar19") (= "=") (pointer_expression "&SUB_00000002" (& "&") (identifier "SUB_00000002"))) (; ";")) (if_statement "if (iVar25 < 1) {\n        uVar26 = 0;\n        pcVar24 = (code *)0x1;\n        goto LAB_00053270;\n      }" (if "if") (parenthesized_expression "(iVar25 < 1)" (( "(") (binary_expression "iVar25 < 1" (identifier "iVar25") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n        uVar26 = 0;\n        pcVar24 = (code *)0x1;\n        goto LAB_00053270;\n      }" ({ "{") (expression_statement "uVar26 = 0;" (assignment_expression "uVar26 = 0" (identifier "uVar26") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar24 = (code *)0x1;" (assignment_expression "pcVar24 = (code *)0x1" (identifier "pcVar24") (= "=") (cast_expression "(code *)0x1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (goto_statement "goto LAB_00053270;" (goto "goto") (statement_identifier "LAB_00053270") (; ";")) (} "}"))) (expression_statement "pcVar24 = (code *)0x1;" (assignment_expression "pcVar24 = (code *)0x1" (identifier "pcVar24") (= "=") (cast_expression "(code *)0x1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (labeled_statement "LAB_000532c0:\n      iVar10 = 0;" (statement_identifier "LAB_000532c0") (: ":") (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";"))) (do_statement "do {\n        cVar16 = pcVar22[(int)(pcVar30 + iVar10)];\n        if ((byte)cVar16 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }\n        pcVar20 = (code *)(puVar9 + iVar10);\n        iVar10 = iVar10 + 1;\n        *pcVar20 = cVar16;\n        pcVar20 = pcVar24;\n      } while (iVar10 < (int)pcVar24);" (do "do") (compound_statement "{\n        cVar16 = pcVar22[(int)(pcVar30 + iVar10)];\n        if ((byte)cVar16 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }\n        pcVar20 = (code *)(puVar9 + iVar10);\n        iVar10 = iVar10 + 1;\n        *pcVar20 = cVar16;\n        pcVar20 = pcVar24;\n      }" ({ "{") (expression_statement "cVar16 = pcVar22[(int)(pcVar30 + iVar10)];" (assignment_expression "cVar16 = pcVar22[(int)(pcVar30 + iVar10)]" (identifier "cVar16") (= "=") (subscript_expression "pcVar22[(int)(pcVar30 + iVar10)]" (identifier "pcVar22") ([ "[") (cast_expression "(int)(pcVar30 + iVar10)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar30 + iVar10)" (( "(") (binary_expression "pcVar30 + iVar10" (identifier "pcVar30") (+ "+") (identifier "iVar10")) () ")"))) (] "]"))) (; ";")) (if_statement "if ((byte)cVar16 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }" (if "if") (parenthesized_expression "((byte)cVar16 - 0x41 < 0x1a)" (( "(") (binary_expression "(byte)cVar16 - 0x41 < 0x1a" (binary_expression "(byte)cVar16 - 0x41" (cast_expression "(byte)cVar16" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "cVar16")) (- "-") (number_literal "0x41")) (< "<") (number_literal "0x1a")) () ")")) (compound_statement "{\n          cVar16 = (code)((char)cVar16 + 0x20);\n        }" ({ "{") (expression_statement "cVar16 = (code)((char)cVar16 + 0x20);" (assignment_expression "cVar16 = (code)((char)cVar16 + 0x20)" (identifier "cVar16") (= "=") (call_expression "(code)((char)cVar16 + 0x20)" (parenthesized_expression "(code)" (( "(") (identifier "code") () ")")) (argument_list "((char)cVar16 + 0x20)" (( "(") (binary_expression "(char)cVar16 + 0x20" (cast_expression "(char)cVar16" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "cVar16")) (+ "+") (number_literal "0x20")) () ")")))) (; ";")) (} "}"))) (expression_statement "pcVar20 = (code *)(puVar9 + iVar10);" (assignment_expression "pcVar20 = (code *)(puVar9 + iVar10)" (identifier "pcVar20") (= "=") (cast_expression "(code *)(puVar9 + iVar10)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + iVar10)" (( "(") (binary_expression "puVar9 + iVar10" (identifier "puVar9") (+ "+") (identifier "iVar10")) () ")")))) (; ";")) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" (identifier "iVar10") (= "=") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pcVar20 = cVar16;" (assignment_expression "*pcVar20 = cVar16" (pointer_expression "*pcVar20" (* "*") (identifier "pcVar20")) (= "=") (identifier "cVar16")) (; ";")) (expression_statement "pcVar20 = pcVar24;" (assignment_expression "pcVar20 = pcVar24" (identifier "pcVar20") (= "=") (identifier "pcVar24")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar10 < (int)pcVar24)" (( "(") (binary_expression "iVar10 < (int)pcVar24" (identifier "iVar10") (< "<") (cast_expression "(int)pcVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar24"))) () ")")) (; ";")) (} "}")))) (expression_statement "pcVar19 = (char *)0x0;" (assignment_expression "pcVar19 = (char *)0x0" (identifier "pcVar19") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pcVar5 = (char *)(*local_ac)(pcVar18,0,puVar9);" (assignment_expression "pcVar5 = (char *)(*local_ac)(pcVar18,0,puVar9)" (identifier "pcVar5") (= "=") (cast_expression "(char *)(*local_ac)(pcVar18,0,puVar9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*local_ac)(pcVar18,0,puVar9)" (parenthesized_expression "(*local_ac)" (( "(") (pointer_expression "*local_ac" (* "*") (identifier "local_ac")) () ")")) (argument_list "(pcVar18,0,puVar9)" (( "(") (identifier "pcVar18") (, ",") (number_literal "0") (, ",") (identifier "puVar9") () ")"))))) (; ";")) (expression_statement "local_150 = pcVar30;" (assignment_expression "local_150 = pcVar30" (identifier "local_150") (= "=") (identifier "pcVar30")) (; ";")) (expression_statement "local_14c = pcVar8;" (assignment_expression "local_14c = pcVar8" (identifier "local_14c") (= "=") (identifier "pcVar8")) (; ";")) (if_statement "if ((0x1645af < (int)(pcVar8 + 1)) || (pcVar24 = pcVar8 + 1, pcVar5 != (char *)0x0)) break;" (if "if") (parenthesized_expression "((0x1645af < (int)(pcVar8 + 1)) || (pcVar24 = pcVar8 + 1, pcVar5 != (char *)0x0))" (( "(") (binary_expression "(0x1645af < (int)(pcVar8 + 1)) || (pcVar24 = pcVar8 + 1, pcVar5 != (char *)0x0)" (parenthesized_expression "(0x1645af < (int)(pcVar8 + 1))" (( "(") (binary_expression "0x1645af < (int)(pcVar8 + 1)" (number_literal "0x1645af") (< "<") (cast_expression "(int)(pcVar8 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar8 + 1)" (( "(") (binary_expression "pcVar8 + 1" (identifier "pcVar8") (+ "+") (number_literal "1")) () ")")))) () ")")) (|| "||") (parenthesized_expression "(pcVar24 = pcVar8 + 1, pcVar5 != (char *)0x0)" (( "(") (comma_expression "pcVar24 = pcVar8 + 1, pcVar5 != (char *)0x0" (assignment_expression "pcVar24 = pcVar8 + 1" (identifier "pcVar24") (= "=") (binary_expression "pcVar8 + 1" (identifier "pcVar8") (+ "+") (number_literal "1"))) (, ",") (binary_expression "pcVar5 != (char *)0x0" (identifier "pcVar5") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (if_statement "if (puVar9 == auStack_12c) {\n    if (pcVar5 == (char *)0x65) {\nLAB_00053398:\n      pcVar5 = (char *)0x0;\n    }\n  }\n  else {\nLAB_000533c0:\n    (**(code **)(puVar31 + 0x109484))(puVar9);\n    if (pcVar5 == (char *)0x65) {\n      pcVar5 = (char *)0x0;\n    }\n  }" (if "if") (parenthesized_expression "(puVar9 == auStack_12c)" (( "(") (binary_expression "puVar9 == auStack_12c" (identifier "puVar9") (== "==") (identifier "auStack_12c")) () ")")) (compound_statement "{\n    if (pcVar5 == (char *)0x65) {\nLAB_00053398:\n      pcVar5 = (char *)0x0;\n    }\n  }" ({ "{") (if_statement "if (pcVar5 == (char *)0x65) {\nLAB_00053398:\n      pcVar5 = (char *)0x0;\n    }" (if "if") (parenthesized_expression "(pcVar5 == (char *)0x65)" (( "(") (binary_expression "pcVar5 == (char *)0x65" (identifier "pcVar5") (== "==") (cast_expression "(char *)0x65" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x65"))) () ")")) (compound_statement "{\nLAB_00053398:\n      pcVar5 = (char *)0x0;\n    }" ({ "{") (labeled_statement "LAB_00053398:\n      pcVar5 = (char *)0x0;" (statement_identifier "LAB_00053398") (: ":") (expression_statement "pcVar5 = (char *)0x0;" (assignment_expression "pcVar5 = (char *)0x0" (identifier "pcVar5") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (} "}"))) (} "}")) (else_clause "else {\nLAB_000533c0:\n    (**(code **)(puVar31 + 0x109484))(puVar9);\n    if (pcVar5 == (char *)0x65) {\n      pcVar5 = (char *)0x0;\n    }\n  }" (else "else") (compound_statement "{\nLAB_000533c0:\n    (**(code **)(puVar31 + 0x109484))(puVar9);\n    if (pcVar5 == (char *)0x65) {\n      pcVar5 = (char *)0x0;\n    }\n  }" ({ "{") (labeled_statement "LAB_000533c0:\n    (**(code **)(puVar31 + 0x109484))(puVar9);" (statement_identifier "LAB_000533c0") (: ":") (expression_statement "(**(code **)(puVar31 + 0x109484))(puVar9);" (call_expression "(**(code **)(puVar31 + 0x109484))(puVar9)" (parenthesized_expression "(**(code **)(puVar31 + 0x109484))" (( "(") (pointer_expression "**(code **)(puVar31 + 0x109484)" (* "*") (pointer_expression "*(code **)(puVar31 + 0x109484)" (* "*") (cast_expression "(code **)(puVar31 + 0x109484)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar31 + 0x109484)" (( "(") (binary_expression "puVar31 + 0x109484" (identifier "puVar31") (+ "+") (number_literal "0x109484")) () ")"))))) () ")")) (argument_list "(puVar9)" (( "(") (identifier "puVar9") () ")"))) (; ";"))) (if_statement "if (pcVar5 == (char *)0x65) {\n      pcVar5 = (char *)0x0;\n    }" (if "if") (parenthesized_expression "(pcVar5 == (char *)0x65)" (( "(") (binary_expression "pcVar5 == (char *)0x65" (identifier "pcVar5") (== "==") (cast_expression "(char *)0x65" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x65"))) () ")")) (compound_statement "{\n      pcVar5 = (char *)0x0;\n    }" ({ "{") (expression_statement "pcVar5 = (char *)0x0;" (assignment_expression "pcVar5 = (char *)0x0" (identifier "pcVar5") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}")))) (if_statement "if (local_ec == *piVar7) {\n    return pcVar5;\n  }" (if "if") (parenthesized_expression "(local_ec == *piVar7)" (( "(") (binary_expression "local_ec == *piVar7" (identifier "local_ec") (== "==") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) () ")")) (compound_statement "{\n    return pcVar5;\n  }" ({ "{") (return_statement "return pcVar5;" (return "return") (identifier "pcVar5") (; ";")) (} "}"))) (expression_statement "pcVar32 = *(code **)(puVar31 + 0x1098ac);" (assignment_expression "pcVar32 = *(code **)(puVar31 + 0x1098ac)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(puVar31 + 0x1098ac)" (* "*") (cast_expression "(code **)(puVar31 + 0x1098ac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar31 + 0x1098ac)" (( "(") (binary_expression "puVar31 + 0x1098ac" (identifier "puVar31") (+ "+") (number_literal "0x1098ac")) () ")"))))) (; ";")) (expression_statement "iVar6 = local_ec;" (assignment_expression "iVar6 = local_ec" (identifier "iVar6") (= "=") (identifier "local_ec")) (; ";")) (expression_statement "(*pcVar32)();" (call_expression "(*pcVar32)()" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_19c = *(uint *)(iVar6 + 0x84);" (assignment_expression "local_19c = *(uint *)(iVar6 + 0x84)" (identifier "local_19c") (= "=") (pointer_expression "*(uint *)(iVar6 + 0x84)" (* "*") (cast_expression "(uint *)(iVar6 + 0x84)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x84)" (( "(") (binary_expression "iVar6 + 0x84" (identifier "iVar6") (+ "+") (number_literal "0x84")) () ")"))))) (; ";")) (expression_statement "iVar10 = *(int *)(pcVar32 + 0x1092d0);" (assignment_expression "iVar10 = *(int *)(pcVar32 + 0x1092d0)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(pcVar32 + 0x1092d0)" (* "*") (cast_expression "(int *)(pcVar32 + 0x1092d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar32 + 0x1092d0)" (( "(") (binary_expression "pcVar32 + 0x1092d0" (identifier "pcVar32") (+ "+") (number_literal "0x1092d0")) () ")"))))) (; ";")) (expression_statement "pcVar24 = *(code **)(iVar6 + 0x80);" (assignment_expression "pcVar24 = *(code **)(iVar6 + 0x80)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(iVar6 + 0x80)" (* "*") (cast_expression "(code **)(iVar6 + 0x80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar6 + 0x80)" (( "(") (binary_expression "iVar6 + 0x80" (identifier "iVar6") (+ "+") (number_literal "0x80")) () ")"))))) (; ";")) (expression_statement "iVar25 = *(int *)(pcVar32 + 0x1092a4);" (assignment_expression "iVar25 = *(int *)(pcVar32 + 0x1092a4)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(pcVar32 + 0x1092a4)" (* "*") (cast_expression "(int *)(pcVar32 + 0x1092a4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar32 + 0x1092a4)" (( "(") (binary_expression "pcVar32 + 0x1092a4" (identifier "pcVar32") (+ "+") (number_literal "0x1092a4")) () ")"))))) (; ";")) (expression_statement "pcVar8 = pcVar24 + (local_19c - 6);" (assignment_expression "pcVar8 = pcVar24 + (local_19c - 6)" (identifier "pcVar8") (= "=") (binary_expression "pcVar24 + (local_19c - 6)" (identifier "pcVar24") (+ "+") (parenthesized_expression "(local_19c - 6)" (( "(") (binary_expression "local_19c - 6" (identifier "local_19c") (- "-") (number_literal "6")) () ")")))) (; ";")) (expression_statement "pcVar30 = pcVar20 + (int)local_150;" (assignment_expression "pcVar30 = pcVar20 + (int)local_150" (identifier "pcVar30") (= "=") (binary_expression "pcVar20 + (int)local_150" (identifier "pcVar20") (+ "+") (cast_expression "(int)local_150" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_150")))) (; ";")) (expression_statement "pcVar22 = pcVar20;" (assignment_expression "pcVar22 = pcVar20" (identifier "pcVar22") (= "=") (identifier "pcVar20")) (; ";")) (labeled_statement "LAB_00053480:\n  if (pcVar30 <= pcVar22) {\n    return (char *)0x0;\n  }" (statement_identifier "LAB_00053480") (: ":") (if_statement "if (pcVar30 <= pcVar22) {\n    return (char *)0x0;\n  }" (if "if") (parenthesized_expression "(pcVar30 <= pcVar22)" (( "(") (binary_expression "pcVar30 <= pcVar22" (identifier "pcVar30") (<= "<=") (identifier "pcVar22")) () ")")) (compound_statement "{\n    return (char *)0x0;\n  }" ({ "{") (return_statement "return (char *)0x0;" (return "return") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}")))) (do_statement "do {\n    cVar16 = *pcVar22;\n    uVar26 = (uint)(byte)cVar16;\n    pcVar28 = pcVar22 + 1;\n    pcVar23 = pcVar24;\n    if ((char)cVar16 < '\0') {\n      if (0xbf < uVar26) {\n        uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n        if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)) {\n          if (uVar26 < 0x80) {\n            uVar26 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);\n          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if (iVar11 != 0) break;\n    }\n    else {\n      local_194 = (int)pcVar22 - (int)pcVar20;\n      if (*(char *)(iVar6 + uVar26) != '\0') goto LAB_000535b0;\n    }\n    pcVar22 = pcVar28;\n    if (pcVar30 <= pcVar28) goto LAB_00053644;\n  } while( true );" (do "do") (compound_statement "{\n    cVar16 = *pcVar22;\n    uVar26 = (uint)(byte)cVar16;\n    pcVar28 = pcVar22 + 1;\n    pcVar23 = pcVar24;\n    if ((char)cVar16 < '\0') {\n      if (0xbf < uVar26) {\n        uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n        if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)) {\n          if (uVar26 < 0x80) {\n            uVar26 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);\n          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if (iVar11 != 0) break;\n    }\n    else {\n      local_194 = (int)pcVar22 - (int)pcVar20;\n      if (*(char *)(iVar6 + uVar26) != '\0') goto LAB_000535b0;\n    }\n    pcVar22 = pcVar28;\n    if (pcVar30 <= pcVar28) goto LAB_00053644;\n  }" ({ "{") (expression_statement "cVar16 = *pcVar22;" (assignment_expression "cVar16 = *pcVar22" (identifier "cVar16") (= "=") (pointer_expression "*pcVar22" (* "*") (identifier "pcVar22"))) (; ";")) (expression_statement "uVar26 = (uint)(byte)cVar16;" (assignment_expression "uVar26 = (uint)(byte)cVar16" (identifier "uVar26") (= "=") (cast_expression "(uint)(byte)cVar16" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)cVar16" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "cVar16")))) (; ";")) (expression_statement "pcVar28 = pcVar22 + 1;" (assignment_expression "pcVar28 = pcVar22 + 1" (identifier "pcVar28") (= "=") (binary_expression "pcVar22 + 1" (identifier "pcVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar23 = pcVar24;" (assignment_expression "pcVar23 = pcVar24" (identifier "pcVar23") (= "=") (identifier "pcVar24")) (; ";")) (if_statement "if ((char)cVar16 < '\0') {\n      if (0xbf < uVar26) {\n        uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n        if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)) {\n          if (uVar26 < 0x80) {\n            uVar26 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);\n          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if (iVar11 != 0) break;\n    }\n    else {\n      local_194 = (int)pcVar22 - (int)pcVar20;\n      if (*(char *)(iVar6 + uVar26) != '\0') goto LAB_000535b0;\n    }" (if "if") (parenthesized_expression "((char)cVar16 < '\0')" (( "(") (binary_expression "(char)cVar16 < '\0'" (cast_expression "(char)cVar16" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "cVar16")) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      if (0xbf < uVar26) {\n        uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n        if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)) {\n          if (uVar26 < 0x80) {\n            uVar26 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);\n          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if (iVar11 != 0) break;\n    }" ({ "{") (if_statement "if (0xbf < uVar26) {\n        uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n        if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)) {\n          if (uVar26 < 0x80) {\n            uVar26 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);\n          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(0xbf < uVar26)" (( "(") (binary_expression "0xbf < uVar26" (number_literal "0xbf") (< "<") (identifier "uVar26")) () ")")) (compound_statement "{\n        uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n        if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)) {\n          if (uVar26 < 0x80) {\n            uVar26 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);\n          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }\n        }\n      }" ({ "{") (expression_statement "uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);" (assignment_expression "uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0)" (identifier "uVar26") (= "=") (binary_expression "(uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar26 + iVar25 + -0x73b4 + -0xc0)" (( "(") (binary_expression "uVar26 + iVar25 + -0x73b4 + -0xc0" (binary_expression "uVar26 + iVar25 + -0x73b4" (binary_expression "uVar26 + iVar25" (identifier "uVar26") (+ "+") (identifier "iVar25")) (+ "+") (number_literal "-0x73b4")) (+ "+") (number_literal "-0xc0")) () ")"))))) (; ";")) (if_statement "if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)) {\n          if (uVar26 < 0x80) {\n            uVar26 = 0xfffd;\n          }\n        }\n        else {\n          do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);\n          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }\n        }" (if "if") (parenthesized_expression "((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80))" (( "(") (binary_expression "(pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)" (parenthesized_expression "(pcVar30 == pcVar28)" (( "(") (binary_expression "pcVar30 == pcVar28" (identifier "pcVar30") (== "==") (identifier "pcVar28")) () ")")) (|| "||") (parenthesized_expression "(uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)" (( "(") (comma_expression "uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80" (assignment_expression "uVar12 = (uint)(byte)pcVar22[1]" (identifier "uVar12") (= "=") (cast_expression "(uint)(byte)pcVar22[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)pcVar22[1]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "pcVar22[1]" (identifier "pcVar22") ([ "[") (number_literal "1") (] "]"))))) (, ",") (binary_expression "(uVar12 & 0xc0) != 0x80" (parenthesized_expression "(uVar12 & 0xc0)" (( "(") (binary_expression "uVar12 & 0xc0" (identifier "uVar12") (& "&") (number_literal "0xc0")) () ")")) (!= "!=") (number_literal "0x80"))) () ")"))) () ")")) (compound_statement "{\n          if (uVar26 < 0x80) {\n            uVar26 = 0xfffd;\n          }\n        }" ({ "{") (if_statement "if (uVar26 < 0x80) {\n            uVar26 = 0xfffd;\n          }" (if "if") (parenthesized_expression "(uVar26 < 0x80)" (( "(") (binary_expression "uVar26 < 0x80" (identifier "uVar26") (< "<") (number_literal "0x80")) () ")")) (compound_statement "{\n            uVar26 = 0xfffd;\n          }" ({ "{") (expression_statement "uVar26 = 0xfffd;" (assignment_expression "uVar26 = 0xfffd" (identifier "uVar26") (= "=") (number_literal "0xfffd")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);\n          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }\n        }" (else "else") (compound_statement "{\n          do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);\n          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }\n        }" ({ "{") (do_statement "do {\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          } while ((uVar12 & 0xffffffc0) == 0x80);" (do "do") (compound_statement "{\n            pcVar28 = pcVar28 + 1;\n            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n            if (pcVar30 == pcVar28) break;\n            uVar12 = (uint)(byte)*pcVar28;\n          }" ({ "{") (expression_statement "pcVar28 = pcVar28 + 1;" (assignment_expression "pcVar28 = pcVar28 + 1" (identifier "pcVar28") (= "=") (binary_expression "pcVar28 + 1" (identifier "pcVar28") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;" (assignment_expression "uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40" (identifier "uVar26") (= "=") (binary_expression "(uVar12 & 0x3f) + uVar26 * 0x40" (parenthesized_expression "(uVar12 & 0x3f)" (( "(") (binary_expression "uVar12 & 0x3f" (identifier "uVar12") (& "&") (number_literal "0x3f")) () ")")) (+ "+") (binary_expression "uVar26 * 0x40" (identifier "uVar26") (* "*") (number_literal "0x40")))) (; ";")) (if_statement "if (pcVar30 == pcVar28) break;" (if "if") (parenthesized_expression "(pcVar30 == pcVar28)" (( "(") (binary_expression "pcVar30 == pcVar28" (identifier "pcVar30") (== "==") (identifier "pcVar28")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar12 = (uint)(byte)*pcVar28;" (assignment_expression "uVar12 = (uint)(byte)*pcVar28" (identifier "uVar12") (= "=") (binary_expression "(uint)(byte)*pcVar28" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (* "*") (identifier "pcVar28"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((uVar12 & 0xffffffc0) == 0x80)" (( "(") (binary_expression "(uVar12 & 0xffffffc0) == 0x80" (parenthesized_expression "(uVar12 & 0xffffffc0)" (( "(") (binary_expression "uVar12 & 0xffffffc0" (identifier "uVar12") (& "&") (number_literal "0xffffffc0")) () ")")) (== "==") (number_literal "0x80")) () ")")) (; ";")) (if_statement "if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)) {\n            uVar26 = 0xfffd;\n          }" (if "if") (parenthesized_expression "(((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe))" (( "(") (binary_expression "((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n             ((uVar26 & 0xfffffffe) == 0xfffe)" (parenthesized_expression "((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800))" (( "(") (binary_expression "(uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)" (parenthesized_expression "(uVar26 < 0x80)" (( "(") (binary_expression "uVar26 < 0x80" (identifier "uVar26") (< "<") (number_literal "0x80")) () ")")) (|| "||") (parenthesized_expression "((uVar26 & 0xfffff800) == 0xd800)" (( "(") (binary_expression "(uVar26 & 0xfffff800) == 0xd800" (parenthesized_expression "(uVar26 & 0xfffff800)" (( "(") (binary_expression "uVar26 & 0xfffff800" (identifier "uVar26") (& "&") (number_literal "0xfffff800")) () ")")) (== "==") (number_literal "0xd800")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((uVar26 & 0xfffffffe) == 0xfffe)" (( "(") (binary_expression "(uVar26 & 0xfffffffe) == 0xfffe" (parenthesized_expression "(uVar26 & 0xfffffffe)" (( "(") (binary_expression "uVar26 & 0xfffffffe" (identifier "uVar26") (& "&") (number_literal "0xfffffffe")) () ")")) (== "==") (number_literal "0xfffe")) () ")"))) () ")")) (compound_statement "{\n            uVar26 = 0xfffd;\n          }" ({ "{") (expression_statement "uVar26 = 0xfffd;" (assignment_expression "uVar26 = 0xfffd" (identifier "uVar26") (= "=") (number_literal "0xfffd")) (; ";")) (} "}"))) (} "}")))) (} "}"))) (expression_statement "iVar11 = FUN_00042fcc(iVar6,uVar26);" (assignment_expression "iVar11 = FUN_00042fcc(iVar6,uVar26)" (identifier "iVar11") (= "=") (call_expression "FUN_00042fcc(iVar6,uVar26)" (identifier "FUN_00042fcc") (argument_list "(iVar6,uVar26)" (( "(") (identifier "iVar6") (, ",") (identifier "uVar26") () ")")))) (; ";")) (if_statement "if (iVar11 != 0) break;" (if "if") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (else_clause "else {\n      local_194 = (int)pcVar22 - (int)pcVar20;\n      if (*(char *)(iVar6 + uVar26) != '\0') goto LAB_000535b0;\n    }" (else "else") (compound_statement "{\n      local_194 = (int)pcVar22 - (int)pcVar20;\n      if (*(char *)(iVar6 + uVar26) != '\0') goto LAB_000535b0;\n    }" ({ "{") (expression_statement "local_194 = (int)pcVar22 - (int)pcVar20;" (assignment_expression "local_194 = (int)pcVar22 - (int)pcVar20" (identifier "local_194") (= "=") (binary_expression "(int)pcVar22 - (int)pcVar20" (cast_expression "(int)pcVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar22")) (- "-") (cast_expression "(int)pcVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar20")))) (; ";")) (if_statement "if (*(char *)(iVar6 + uVar26) != '\0') goto LAB_000535b0;" (if "if") (parenthesized_expression "(*(char *)(iVar6 + uVar26) != '\0')" (( "(") (binary_expression "*(char *)(iVar6 + uVar26) != '\0'" (pointer_expression "*(char *)(iVar6 + uVar26)" (* "*") (cast_expression "(char *)(iVar6 + uVar26)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + uVar26)" (( "(") (binary_expression "iVar6 + uVar26" (identifier "iVar6") (+ "+") (identifier "uVar26")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000535b0;" (goto "goto") (statement_identifier "LAB_000535b0") (; ";"))) (} "}")))) (expression_statement "pcVar22 = pcVar28;" (assignment_expression "pcVar22 = pcVar28" (identifier "pcVar22") (= "=") (identifier "pcVar28")) (; ";")) (if_statement "if (pcVar30 <= pcVar28) goto LAB_00053644;" (if "if") (parenthesized_expression "(pcVar30 <= pcVar28)" (( "(") (binary_expression "pcVar30 <= pcVar28" (identifier "pcVar30") (<= "<=") (identifier "pcVar28")) () ")")) (goto_statement "goto LAB_00053644;" (goto "goto") (statement_identifier "LAB_00053644") (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (expression_statement "local_194 = (int)pcVar22 - (int)pcVar20;" (assignment_expression "local_194 = (int)pcVar22 - (int)pcVar20" (identifier "local_194") (= "=") (binary_expression "(int)pcVar22 - (int)pcVar20" (cast_expression "(int)pcVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar22")) (- "-") (cast_expression "(int)pcVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar20")))) (; ";")) (do_statement "do {\n    while( true ) {\n      uVar26 = (*(code *)(iVar10 + 0x2d68))(uVar26,*(undefined4 *)(iVar6 + 0x88));\n      pcVar29 = pcVar28;\n      if (uVar26 != 0) {\n        if (uVar26 < 0x80) {\n          *pcVar23 = SUB41(uVar26,0);\n          pcVar23 = pcVar23 + 1;\n        }\n        else {\n          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);\n          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);\n          if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }\n        }\n      }\n      while( true ) {\n        pcVar22 = pcVar29;\n        if (pcVar30 <= pcVar29) goto LAB_00053608;\n        if (pcVar8 < pcVar23) {\n          uVar26 = local_19c * 2;\n          pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26);\n          if (pcVar24 == (code *)0x0) {\n            return &DAT_00000007;\n          }\n          pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));\n          (**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);\n          (**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));\n          pcVar8 = pcVar24 + (uVar26 - 6);\n          *(code **)(iVar6 + 0x80) = pcVar24;\n          *(uint *)(iVar6 + 0x84) = uVar26;\n          local_19c = uVar26;\n        }\n        cVar16 = *pcVar29;\n        uVar26 = (uint)(byte)cVar16;\n        if ((char)cVar16 < '\0') break;\n        if (*(char *)(iVar6 + uVar26) == '\0') goto LAB_00053608;\n        pcVar28 = pcVar29 + 1;\nLAB_000535b0:\n        if (uVar26 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)uVar26 + 0x20);\n        }\n        *pcVar23 = cVar16;\n        pcVar23 = pcVar23 + 1;\n        pcVar29 = pcVar28;\n      }\n      pcVar28 = pcVar29 + 1;\n      if (uVar26 < 0xc0) break;\n      uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n      if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80)) {\n        if (uVar26 < 0x80) goto LAB_00053748;\n      }\n      else {\n        do {\n          pcVar28 = pcVar28 + 1;\n          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n          if (pcVar30 == pcVar28) break;\n          uVar12 = (uint)(byte)*pcVar28;\n        } while ((uVar12 & 0xffffffc0) == 0x80);\n        if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);\n          uVar26 = 0xfffd;\n          goto joined_r0x00053724;\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if ((iVar11 == 0) &&\n         ((pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))\n         )) goto LAB_00053608;\n    }\n    iVar11 = FUN_00042fcc(iVar6,uVar26);\njoined_r0x00053724:\n    pcVar22 = pcVar28;\n  } while (iVar11 != 0);" (do "do") (compound_statement "{\n    while( true ) {\n      uVar26 = (*(code *)(iVar10 + 0x2d68))(uVar26,*(undefined4 *)(iVar6 + 0x88));\n      pcVar29 = pcVar28;\n      if (uVar26 != 0) {\n        if (uVar26 < 0x80) {\n          *pcVar23 = SUB41(uVar26,0);\n          pcVar23 = pcVar23 + 1;\n        }\n        else {\n          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);\n          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);\n          if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }\n        }\n      }\n      while( true ) {\n        pcVar22 = pcVar29;\n        if (pcVar30 <= pcVar29) goto LAB_00053608;\n        if (pcVar8 < pcVar23) {\n          uVar26 = local_19c * 2;\n          pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26);\n          if (pcVar24 == (code *)0x0) {\n            return &DAT_00000007;\n          }\n          pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));\n          (**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);\n          (**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));\n          pcVar8 = pcVar24 + (uVar26 - 6);\n          *(code **)(iVar6 + 0x80) = pcVar24;\n          *(uint *)(iVar6 + 0x84) = uVar26;\n          local_19c = uVar26;\n        }\n        cVar16 = *pcVar29;\n        uVar26 = (uint)(byte)cVar16;\n        if ((char)cVar16 < '\0') break;\n        if (*(char *)(iVar6 + uVar26) == '\0') goto LAB_00053608;\n        pcVar28 = pcVar29 + 1;\nLAB_000535b0:\n        if (uVar26 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)uVar26 + 0x20);\n        }\n        *pcVar23 = cVar16;\n        pcVar23 = pcVar23 + 1;\n        pcVar29 = pcVar28;\n      }\n      pcVar28 = pcVar29 + 1;\n      if (uVar26 < 0xc0) break;\n      uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n      if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80)) {\n        if (uVar26 < 0x80) goto LAB_00053748;\n      }\n      else {\n        do {\n          pcVar28 = pcVar28 + 1;\n          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n          if (pcVar30 == pcVar28) break;\n          uVar12 = (uint)(byte)*pcVar28;\n        } while ((uVar12 & 0xffffffc0) == 0x80);\n        if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);\n          uVar26 = 0xfffd;\n          goto joined_r0x00053724;\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if ((iVar11 == 0) &&\n         ((pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))\n         )) goto LAB_00053608;\n    }\n    iVar11 = FUN_00042fcc(iVar6,uVar26);\njoined_r0x00053724:\n    pcVar22 = pcVar28;\n  }" ({ "{") (while_statement "while( true ) {\n      uVar26 = (*(code *)(iVar10 + 0x2d68))(uVar26,*(undefined4 *)(iVar6 + 0x88));\n      pcVar29 = pcVar28;\n      if (uVar26 != 0) {\n        if (uVar26 < 0x80) {\n          *pcVar23 = SUB41(uVar26,0);\n          pcVar23 = pcVar23 + 1;\n        }\n        else {\n          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);\n          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);\n          if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }\n        }\n      }\n      while( true ) {\n        pcVar22 = pcVar29;\n        if (pcVar30 <= pcVar29) goto LAB_00053608;\n        if (pcVar8 < pcVar23) {\n          uVar26 = local_19c * 2;\n          pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26);\n          if (pcVar24 == (code *)0x0) {\n            return &DAT_00000007;\n          }\n          pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));\n          (**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);\n          (**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));\n          pcVar8 = pcVar24 + (uVar26 - 6);\n          *(code **)(iVar6 + 0x80) = pcVar24;\n          *(uint *)(iVar6 + 0x84) = uVar26;\n          local_19c = uVar26;\n        }\n        cVar16 = *pcVar29;\n        uVar26 = (uint)(byte)cVar16;\n        if ((char)cVar16 < '\0') break;\n        if (*(char *)(iVar6 + uVar26) == '\0') goto LAB_00053608;\n        pcVar28 = pcVar29 + 1;\nLAB_000535b0:\n        if (uVar26 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)uVar26 + 0x20);\n        }\n        *pcVar23 = cVar16;\n        pcVar23 = pcVar23 + 1;\n        pcVar29 = pcVar28;\n      }\n      pcVar28 = pcVar29 + 1;\n      if (uVar26 < 0xc0) break;\n      uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n      if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80)) {\n        if (uVar26 < 0x80) goto LAB_00053748;\n      }\n      else {\n        do {\n          pcVar28 = pcVar28 + 1;\n          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n          if (pcVar30 == pcVar28) break;\n          uVar12 = (uint)(byte)*pcVar28;\n        } while ((uVar12 & 0xffffffc0) == 0x80);\n        if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);\n          uVar26 = 0xfffd;\n          goto joined_r0x00053724;\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if ((iVar11 == 0) &&\n         ((pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))\n         )) goto LAB_00053608;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      uVar26 = (*(code *)(iVar10 + 0x2d68))(uVar26,*(undefined4 *)(iVar6 + 0x88));\n      pcVar29 = pcVar28;\n      if (uVar26 != 0) {\n        if (uVar26 < 0x80) {\n          *pcVar23 = SUB41(uVar26,0);\n          pcVar23 = pcVar23 + 1;\n        }\n        else {\n          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);\n          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);\n          if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }\n        }\n      }\n      while( true ) {\n        pcVar22 = pcVar29;\n        if (pcVar30 <= pcVar29) goto LAB_00053608;\n        if (pcVar8 < pcVar23) {\n          uVar26 = local_19c * 2;\n          pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26);\n          if (pcVar24 == (code *)0x0) {\n            return &DAT_00000007;\n          }\n          pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));\n          (**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);\n          (**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));\n          pcVar8 = pcVar24 + (uVar26 - 6);\n          *(code **)(iVar6 + 0x80) = pcVar24;\n          *(uint *)(iVar6 + 0x84) = uVar26;\n          local_19c = uVar26;\n        }\n        cVar16 = *pcVar29;\n        uVar26 = (uint)(byte)cVar16;\n        if ((char)cVar16 < '\0') break;\n        if (*(char *)(iVar6 + uVar26) == '\0') goto LAB_00053608;\n        pcVar28 = pcVar29 + 1;\nLAB_000535b0:\n        if (uVar26 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)uVar26 + 0x20);\n        }\n        *pcVar23 = cVar16;\n        pcVar23 = pcVar23 + 1;\n        pcVar29 = pcVar28;\n      }\n      pcVar28 = pcVar29 + 1;\n      if (uVar26 < 0xc0) break;\n      uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);\n      if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80)) {\n        if (uVar26 < 0x80) goto LAB_00053748;\n      }\n      else {\n        do {\n          pcVar28 = pcVar28 + 1;\n          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n          if (pcVar30 == pcVar28) break;\n          uVar12 = (uint)(byte)*pcVar28;\n        } while ((uVar12 & 0xffffffc0) == 0x80);\n        if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);\n          uVar26 = 0xfffd;\n          goto joined_r0x00053724;\n        }\n      }\n      iVar11 = FUN_00042fcc(iVar6,uVar26);\n      if ((iVar11 == 0) &&\n         ((pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))\n         )) goto LAB_00053608;\n    }" ({ "{") (expression_statement "uVar26 = (*(code *)(iVar10 + 0x2d68))(uVar26,*(undefined4 *)(iVar6 + 0x88));" (assignment_expression "uVar26 = (*(code *)(iVar10 + 0x2d68))(uVar26,*(undefined4 *)(iVar6 + 0x88))" (identifier "uVar26") (= "=") (call_expression "(*(code *)(iVar10 + 0x2d68))(uVar26,*(undefined4 *)(iVar6 + 0x88))" (parenthesized_expression "(*(code *)(iVar10 + 0x2d68))" (( "(") (pointer_expression "*(code *)(iVar10 + 0x2d68)" (* "*") (cast_expression "(code *)(iVar10 + 0x2d68)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x2d68)" (( "(") (binary_expression "iVar10 + 0x2d68" (identifier "iVar10") (+ "+") (number_literal "0x2d68")) () ")")))) () ")")) (argument_list "(uVar26,*(undefined4 *)(iVar6 + 0x88))" (( "(") (identifier "uVar26") (, ",") (pointer_expression "*(undefined4 *)(iVar6 + 0x88)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x88)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x88)" (( "(") (binary_expression "iVar6 + 0x88" (identifier "iVar6") (+ "+") (number_literal "0x88")) () ")")))) () ")")))) (; ";")) (expression_statement "pcVar29 = pcVar28;" (assignment_expression "pcVar29 = pcVar28" (identifier "pcVar29") (= "=") (identifier "pcVar28")) (; ";")) (if_statement "if (uVar26 != 0) {\n        if (uVar26 < 0x80) {\n          *pcVar23 = SUB41(uVar26,0);\n          pcVar23 = pcVar23 + 1;\n        }\n        else {\n          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);\n          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);\n          if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "(uVar26 != 0)" (( "(") (binary_expression "uVar26 != 0" (identifier "uVar26") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (uVar26 < 0x80) {\n          *pcVar23 = SUB41(uVar26,0);\n          pcVar23 = pcVar23 + 1;\n        }\n        else {\n          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);\n          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);\n          if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }\n        }\n      }" ({ "{") (if_statement "if (uVar26 < 0x80) {\n          *pcVar23 = SUB41(uVar26,0);\n          pcVar23 = pcVar23 + 1;\n        }\n        else {\n          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);\n          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);\n          if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(uVar26 < 0x80)" (( "(") (binary_expression "uVar26 < 0x80" (identifier "uVar26") (< "<") (number_literal "0x80")) () ")")) (compound_statement "{\n          *pcVar23 = SUB41(uVar26,0);\n          pcVar23 = pcVar23 + 1;\n        }" ({ "{") (expression_statement "*pcVar23 = SUB41(uVar26,0);" (assignment_expression "*pcVar23 = SUB41(uVar26,0)" (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) (= "=") (call_expression "SUB41(uVar26,0)" (identifier "SUB41") (argument_list "(uVar26,0)" (( "(") (identifier "uVar26") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "pcVar23 = pcVar23 + 1;" (assignment_expression "pcVar23 = pcVar23 + 1" (identifier "pcVar23") (= "=") (binary_expression "pcVar23 + 1" (identifier "pcVar23") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);\n          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);\n          if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }\n        }" (else "else") (compound_statement "{\n          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);\n          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);\n          if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }\n        }" ({ "{") (expression_statement "cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);" (assignment_expression "cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80)" (identifier "cVar16") (= "=") (call_expression "(code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80)" (parenthesized_expression "(code)" (( "(") (identifier "code") () ")")) (argument_list "(((byte)SUB41(uVar26,0) & 0x3f) + 0x80)" (( "(") (binary_expression "((byte)SUB41(uVar26,0) & 0x3f) + 0x80" (parenthesized_expression "((byte)SUB41(uVar26,0) & 0x3f)" (( "(") (binary_expression "(byte)SUB41(uVar26,0) & 0x3f" (cast_expression "(byte)SUB41(uVar26,0)" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (call_expression "SUB41(uVar26,0)" (identifier "SUB41") (argument_list "(uVar26,0)" (( "(") (identifier "uVar26") (, ",") (number_literal "0") () ")")))) (& "&") (number_literal "0x3f")) () ")")) (+ "+") (number_literal "0x80")) () ")")))) (; ";")) (expression_statement "bVar3 = (byte)((uVar26 << 0x12) >> 0x18);" (assignment_expression "bVar3 = (byte)((uVar26 << 0x12) >> 0x18)" (identifier "bVar3") (= "=") (call_expression "(byte)((uVar26 << 0x12) >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uVar26 << 0x12) >> 0x18)" (( "(") (binary_expression "(uVar26 << 0x12) >> 0x18" (parenthesized_expression "(uVar26 << 0x12)" (( "(") (binary_expression "uVar26 << 0x12" (identifier "uVar26") (<< "<<") (number_literal "0x12")) () ")")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (if_statement "if (uVar26 < 0x800) {\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }\n          else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }" (if "if") (parenthesized_expression "(uVar26 < 0x800)" (( "(") (binary_expression "uVar26 < 0x800" (identifier "uVar26") (< "<") (number_literal "0x800")) () ")")) (compound_statement "{\n            pcVar23[1] = cVar16;\n            *pcVar23 = (code)(bVar3 - 0x40);\n            pcVar23 = pcVar23 + 2;\n          }" ({ "{") (expression_statement "pcVar23[1] = cVar16;" (assignment_expression "pcVar23[1] = cVar16" (subscript_expression "pcVar23[1]" (identifier "pcVar23") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "cVar16")) (; ";")) (expression_statement "*pcVar23 = (code)(bVar3 - 0x40);" (assignment_expression "*pcVar23 = (code)(bVar3 - 0x40)" (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) (= "=") (call_expression "(code)(bVar3 - 0x40)" (parenthesized_expression "(code)" (( "(") (identifier "code") () ")")) (argument_list "(bVar3 - 0x40)" (( "(") (binary_expression "bVar3 - 0x40" (identifier "bVar3") (- "-") (number_literal "0x40")) () ")")))) (; ";")) (expression_statement "pcVar23 = pcVar23 + 2;" (assignment_expression "pcVar23 = pcVar23 + 2" (identifier "pcVar23") (= "=") (binary_expression "pcVar23 + 2" (identifier "pcVar23") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (else_clause "else {\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }" (else "else") (compound_statement "{\n            cVar17 = (code)((bVar3 & 0x3f) + 0x80);\n            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);\n            if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }\n          }" ({ "{") (expression_statement "cVar17 = (code)((bVar3 & 0x3f) + 0x80);" (assignment_expression "cVar17 = (code)((bVar3 & 0x3f) + 0x80)" (identifier "cVar17") (= "=") (call_expression "(code)((bVar3 & 0x3f) + 0x80)" (parenthesized_expression "(code)" (( "(") (identifier "code") () ")")) (argument_list "((bVar3 & 0x3f) + 0x80)" (( "(") (binary_expression "(bVar3 & 0x3f) + 0x80" (parenthesized_expression "(bVar3 & 0x3f)" (( "(") (binary_expression "bVar3 & 0x3f" (identifier "bVar3") (& "&") (number_literal "0x3f")) () ")")) (+ "+") (number_literal "0x80")) () ")")))) (; ";")) (expression_statement "bVar3 = (byte)((uVar26 << 0xc) >> 0x18);" (assignment_expression "bVar3 = (byte)((uVar26 << 0xc) >> 0x18)" (identifier "bVar3") (= "=") (call_expression "(byte)((uVar26 << 0xc) >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uVar26 << 0xc) >> 0x18)" (( "(") (binary_expression "(uVar26 << 0xc) >> 0x18" (parenthesized_expression "(uVar26 << 0xc)" (( "(") (binary_expression "uVar26 << 0xc" (identifier "uVar26") (<< "<<") (number_literal "0xc")) () ")")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (if_statement "if (uVar26 < 0x10000) {\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }\n            else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }" (if "if") (parenthesized_expression "(uVar26 < 0x10000)" (( "(") (binary_expression "uVar26 < 0x10000" (identifier "uVar26") (< "<") (number_literal "0x10000")) () ")")) (compound_statement "{\n              pcVar23[1] = cVar17;\n              pcVar23[2] = cVar16;\n              *pcVar23 = (code)(bVar3 - 0x20);\n              pcVar23 = pcVar23 + 3;\n            }" ({ "{") (expression_statement "pcVar23[1] = cVar17;" (assignment_expression "pcVar23[1] = cVar17" (subscript_expression "pcVar23[1]" (identifier "pcVar23") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "cVar17")) (; ";")) (expression_statement "pcVar23[2] = cVar16;" (assignment_expression "pcVar23[2] = cVar16" (subscript_expression "pcVar23[2]" (identifier "pcVar23") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "cVar16")) (; ";")) (expression_statement "*pcVar23 = (code)(bVar3 - 0x20);" (assignment_expression "*pcVar23 = (code)(bVar3 - 0x20)" (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) (= "=") (call_expression "(code)(bVar3 - 0x20)" (parenthesized_expression "(code)" (( "(") (identifier "code") () ")")) (argument_list "(bVar3 - 0x20)" (( "(") (binary_expression "bVar3 - 0x20" (identifier "bVar3") (- "-") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "pcVar23 = pcVar23 + 3;" (assignment_expression "pcVar23 = pcVar23 + 3" (identifier "pcVar23") (= "=") (binary_expression "pcVar23 + 3" (identifier "pcVar23") (+ "+") (number_literal "3"))) (; ";")) (} "}")) (else_clause "else {\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }" (else "else") (compound_statement "{\n              pcVar23[2] = cVar17;\n              pcVar23[3] = cVar16;\n              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);\n              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);\n              pcVar23 = pcVar23 + 4;\n            }" ({ "{") (expression_statement "pcVar23[2] = cVar17;" (assignment_expression "pcVar23[2] = cVar17" (subscript_expression "pcVar23[2]" (identifier "pcVar23") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "cVar17")) (; ";")) (expression_statement "pcVar23[3] = cVar16;" (assignment_expression "pcVar23[3] = cVar16" (subscript_expression "pcVar23[3]" (identifier "pcVar23") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "cVar16")) (; ";")) (expression_statement "*pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);" (assignment_expression "*pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10)" (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) (= "=") (call_expression "(code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10)" (parenthesized_expression "(code)" (( "(") (identifier "code") () ")")) (argument_list "((byte)((uVar26 << 0xb) >> 0x1d) - 0x10)" (( "(") (binary_expression "(byte)((uVar26 << 0xb) >> 0x1d) - 0x10" (call_expression "(byte)((uVar26 << 0xb) >> 0x1d)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uVar26 << 0xb) >> 0x1d)" (( "(") (binary_expression "(uVar26 << 0xb) >> 0x1d" (parenthesized_expression "(uVar26 << 0xb)" (( "(") (binary_expression "uVar26 << 0xb" (identifier "uVar26") (<< "<<") (number_literal "0xb")) () ")")) (>> ">>") (number_literal "0x1d")) () ")"))) (- "-") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);" (assignment_expression "pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80)" (subscript_expression "pcVar23[1]" (identifier "pcVar23") ([ "[") (number_literal "1") (] "]")) (= "=") (call_expression "(code)((bVar3 & 0x3f) + 0x80)" (parenthesized_expression "(code)" (( "(") (identifier "code") () ")")) (argument_list "((bVar3 & 0x3f) + 0x80)" (( "(") (binary_expression "(bVar3 & 0x3f) + 0x80" (parenthesized_expression "(bVar3 & 0x3f)" (( "(") (binary_expression "bVar3 & 0x3f" (identifier "bVar3") (& "&") (number_literal "0x3f")) () ")")) (+ "+") (number_literal "0x80")) () ")")))) (; ";")) (expression_statement "pcVar23 = pcVar23 + 4;" (assignment_expression "pcVar23 = pcVar23 + 4" (identifier "pcVar23") (= "=") (binary_expression "pcVar23 + 4" (identifier "pcVar23") (+ "+") (number_literal "4"))) (; ";")) (} "}")))) (} "}")))) (} "}")))) (} "}"))) (while_statement "while( true ) {\n        pcVar22 = pcVar29;\n        if (pcVar30 <= pcVar29) goto LAB_00053608;\n        if (pcVar8 < pcVar23) {\n          uVar26 = local_19c * 2;\n          pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26);\n          if (pcVar24 == (code *)0x0) {\n            return &DAT_00000007;\n          }\n          pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));\n          (**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);\n          (**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));\n          pcVar8 = pcVar24 + (uVar26 - 6);\n          *(code **)(iVar6 + 0x80) = pcVar24;\n          *(uint *)(iVar6 + 0x84) = uVar26;\n          local_19c = uVar26;\n        }\n        cVar16 = *pcVar29;\n        uVar26 = (uint)(byte)cVar16;\n        if ((char)cVar16 < '\0') break;\n        if (*(char *)(iVar6 + uVar26) == '\0') goto LAB_00053608;\n        pcVar28 = pcVar29 + 1;\nLAB_000535b0:\n        if (uVar26 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)uVar26 + 0x20);\n        }\n        *pcVar23 = cVar16;\n        pcVar23 = pcVar23 + 1;\n        pcVar29 = pcVar28;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        pcVar22 = pcVar29;\n        if (pcVar30 <= pcVar29) goto LAB_00053608;\n        if (pcVar8 < pcVar23) {\n          uVar26 = local_19c * 2;\n          pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26);\n          if (pcVar24 == (code *)0x0) {\n            return &DAT_00000007;\n          }\n          pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));\n          (**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);\n          (**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));\n          pcVar8 = pcVar24 + (uVar26 - 6);\n          *(code **)(iVar6 + 0x80) = pcVar24;\n          *(uint *)(iVar6 + 0x84) = uVar26;\n          local_19c = uVar26;\n        }\n        cVar16 = *pcVar29;\n        uVar26 = (uint)(byte)cVar16;\n        if ((char)cVar16 < '\0') break;\n        if (*(char *)(iVar6 + uVar26) == '\0') goto LAB_00053608;\n        pcVar28 = pcVar29 + 1;\nLAB_000535b0:\n        if (uVar26 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)uVar26 + 0x20);\n        }\n        *pcVar23 = cVar16;\n        pcVar23 = pcVar23 + 1;\n        pcVar29 = pcVar28;\n      }" ({ "{") (expression_statement "pcVar22 = pcVar29;" (assignment_expression "pcVar22 = pcVar29" (identifier "pcVar22") (= "=") (identifier "pcVar29")) (; ";")) (if_statement "if (pcVar30 <= pcVar29) goto LAB_00053608;" (if "if") (parenthesized_expression "(pcVar30 <= pcVar29)" (( "(") (binary_expression "pcVar30 <= pcVar29" (identifier "pcVar30") (<= "<=") (identifier "pcVar29")) () ")")) (goto_statement "goto LAB_00053608;" (goto "goto") (statement_identifier "LAB_00053608") (; ";"))) (if_statement "if (pcVar8 < pcVar23) {\n          uVar26 = local_19c * 2;\n          pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26);\n          if (pcVar24 == (code *)0x0) {\n            return &DAT_00000007;\n          }\n          pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));\n          (**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);\n          (**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));\n          pcVar8 = pcVar24 + (uVar26 - 6);\n          *(code **)(iVar6 + 0x80) = pcVar24;\n          *(uint *)(iVar6 + 0x84) = uVar26;\n          local_19c = uVar26;\n        }" (if "if") (parenthesized_expression "(pcVar8 < pcVar23)" (( "(") (binary_expression "pcVar8 < pcVar23" (identifier "pcVar8") (< "<") (identifier "pcVar23")) () ")")) (compound_statement "{\n          uVar26 = local_19c * 2;\n          pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26);\n          if (pcVar24 == (code *)0x0) {\n            return &DAT_00000007;\n          }\n          pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));\n          (**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);\n          (**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));\n          pcVar8 = pcVar24 + (uVar26 - 6);\n          *(code **)(iVar6 + 0x80) = pcVar24;\n          *(uint *)(iVar6 + 0x84) = uVar26;\n          local_19c = uVar26;\n        }" ({ "{") (expression_statement "uVar26 = local_19c * 2;" (assignment_expression "uVar26 = local_19c * 2" (identifier "uVar26") (= "=") (binary_expression "local_19c * 2" (identifier "local_19c") (* "*") (number_literal "2"))) (; ";")) (expression_statement "pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26);" (assignment_expression "pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26)" (identifier "pcVar24") (= "=") (cast_expression "(code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26)" (identifier "sqlite3_malloc64") (argument_list "(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,\n                                             uVar26)" (( "(") (binary_expression "local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1" (binary_expression "local_19c >> 0x1f" (identifier "local_19c") (>> ">>") (number_literal "0x1f")) (| "|") (binary_expression "((int)local_19c >> 0x1f) << 1" (parenthesized_expression "((int)local_19c >> 0x1f)" (( "(") (binary_expression "(int)local_19c >> 0x1f" (cast_expression "(int)local_19c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_19c")) (>> ">>") (number_literal "0x1f")) () ")")) (<< "<<") (number_literal "1"))) (, ",") (identifier "uVar26") () ")"))))) (; ";")) (if_statement "if (pcVar24 == (code *)0x0) {\n            return &DAT_00000007;\n          }" (if "if") (parenthesized_expression "(pcVar24 == (code *)0x0)" (( "(") (binary_expression "pcVar24 == (code *)0x0" (identifier "pcVar24") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            return &DAT_00000007;\n          }" ({ "{") (return_statement "return &DAT_00000007;" (return "return") (pointer_expression "&DAT_00000007" (& "&") (identifier "DAT_00000007")) (; ";")) (} "}"))) (expression_statement "pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));" (assignment_expression "pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80))" (identifier "pcVar23") (= "=") (binary_expression "pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80))" (identifier "pcVar24") (+ "+") (parenthesized_expression "((int)pcVar23 - *(int *)(iVar6 + 0x80))" (( "(") (binary_expression "(int)pcVar23 - *(int *)(iVar6 + 0x80)" (cast_expression "(int)pcVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar23")) (- "-") (pointer_expression "*(int *)(iVar6 + 0x80)" (* "*") (cast_expression "(int *)(iVar6 + 0x80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x80)" (( "(") (binary_expression "iVar6 + 0x80" (identifier "iVar6") (+ "+") (number_literal "0x80")) () ")"))))) () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);" (call_expression "(**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c)" (parenthesized_expression "(**(code **)(pcVar32 + 0x109640))" (( "(") (pointer_expression "**(code **)(pcVar32 + 0x109640)" (* "*") (pointer_expression "*(code **)(pcVar32 + 0x109640)" (* "*") (cast_expression "(code **)(pcVar32 + 0x109640)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x109640)" (( "(") (binary_expression "pcVar32 + 0x109640" (identifier "pcVar32") (+ "+") (number_literal "0x109640")) () ")"))))) () ")")) (argument_list "(pcVar24,*(int *)(iVar6 + 0x80),local_19c)" (( "(") (identifier "pcVar24") (, ",") (pointer_expression "*(int *)(iVar6 + 0x80)" (* "*") (cast_expression "(int *)(iVar6 + 0x80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x80)" (( "(") (binary_expression "iVar6 + 0x80" (identifier "iVar6") (+ "+") (number_literal "0x80")) () ")")))) (, ",") (identifier "local_19c") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));" (call_expression "(**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80))" (parenthesized_expression "(**(code **)(pcVar32 + 0x1091f8))" (( "(") (pointer_expression "**(code **)(pcVar32 + 0x1091f8)" (* "*") (pointer_expression "*(code **)(pcVar32 + 0x1091f8)" (* "*") (cast_expression "(code **)(pcVar32 + 0x1091f8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x1091f8)" (( "(") (binary_expression "pcVar32 + 0x1091f8" (identifier "pcVar32") (+ "+") (number_literal "0x1091f8")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar6 + 0x80))" (( "(") (pointer_expression "*(undefined4 *)(iVar6 + 0x80)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x80)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x80)" (( "(") (binary_expression "iVar6 + 0x80" (identifier "iVar6") (+ "+") (number_literal "0x80")) () ")")))) () ")"))) (; ";")) (expression_statement "pcVar8 = pcVar24 + (uVar26 - 6);" (assignment_expression "pcVar8 = pcVar24 + (uVar26 - 6)" (identifier "pcVar8") (= "=") (binary_expression "pcVar24 + (uVar26 - 6)" (identifier "pcVar24") (+ "+") (parenthesized_expression "(uVar26 - 6)" (( "(") (binary_expression "uVar26 - 6" (identifier "uVar26") (- "-") (number_literal "6")) () ")")))) (; ";")) (expression_statement "*(code **)(iVar6 + 0x80) = pcVar24;" (assignment_expression "*(code **)(iVar6 + 0x80) = pcVar24" (pointer_expression "*(code **)(iVar6 + 0x80)" (* "*") (cast_expression "(code **)(iVar6 + 0x80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar6 + 0x80)" (( "(") (binary_expression "iVar6 + 0x80" (identifier "iVar6") (+ "+") (number_literal "0x80")) () ")")))) (= "=") (identifier "pcVar24")) (; ";")) (expression_statement "*(uint *)(iVar6 + 0x84) = uVar26;" (assignment_expression "*(uint *)(iVar6 + 0x84) = uVar26" (pointer_expression "*(uint *)(iVar6 + 0x84)" (* "*") (cast_expression "(uint *)(iVar6 + 0x84)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x84)" (( "(") (binary_expression "iVar6 + 0x84" (identifier "iVar6") (+ "+") (number_literal "0x84")) () ")")))) (= "=") (identifier "uVar26")) (; ";")) (expression_statement "local_19c = uVar26;" (assignment_expression "local_19c = uVar26" (identifier "local_19c") (= "=") (identifier "uVar26")) (; ";")) (} "}"))) (expression_statement "cVar16 = *pcVar29;" (assignment_expression "cVar16 = *pcVar29" (identifier "cVar16") (= "=") (pointer_expression "*pcVar29" (* "*") (identifier "pcVar29"))) (; ";")) (expression_statement "uVar26 = (uint)(byte)cVar16;" (assignment_expression "uVar26 = (uint)(byte)cVar16" (identifier "uVar26") (= "=") (cast_expression "(uint)(byte)cVar16" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)cVar16" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "cVar16")))) (; ";")) (if_statement "if ((char)cVar16 < '\0') break;" (if "if") (parenthesized_expression "((char)cVar16 < '\0')" (( "(") (binary_expression "(char)cVar16 < '\0'" (cast_expression "(char)cVar16" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "cVar16")) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (*(char *)(iVar6 + uVar26) == '\0') goto LAB_00053608;" (if "if") (parenthesized_expression "(*(char *)(iVar6 + uVar26) == '\0')" (( "(") (binary_expression "*(char *)(iVar6 + uVar26) == '\0'" (pointer_expression "*(char *)(iVar6 + uVar26)" (* "*") (cast_expression "(char *)(iVar6 + uVar26)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + uVar26)" (( "(") (binary_expression "iVar6 + uVar26" (identifier "iVar6") (+ "+") (identifier "uVar26")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00053608;" (goto "goto") (statement_identifier "LAB_00053608") (; ";"))) (expression_statement "pcVar28 = pcVar29 + 1;" (assignment_expression "pcVar28 = pcVar29 + 1" (identifier "pcVar28") (= "=") (binary_expression "pcVar29 + 1" (identifier "pcVar29") (+ "+") (number_literal "1"))) (; ";")) (labeled_statement "LAB_000535b0:\n        if (uVar26 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)uVar26 + 0x20);\n        }" (statement_identifier "LAB_000535b0") (: ":") (if_statement "if (uVar26 - 0x41 < 0x1a) {\n          cVar16 = (code)((char)uVar26 + 0x20);\n        }" (if "if") (parenthesized_expression "(uVar26 - 0x41 < 0x1a)" (( "(") (binary_expression "uVar26 - 0x41 < 0x1a" (binary_expression "uVar26 - 0x41" (identifier "uVar26") (- "-") (number_literal "0x41")) (< "<") (number_literal "0x1a")) () ")")) (compound_statement "{\n          cVar16 = (code)((char)uVar26 + 0x20);\n        }" ({ "{") (expression_statement "cVar16 = (code)((char)uVar26 + 0x20);" (assignment_expression "cVar16 = (code)((char)uVar26 + 0x20)" (identifier "cVar16") (= "=") (call_expression "(code)((char)uVar26 + 0x20)" (parenthesized_expression "(code)" (( "(") (identifier "code") () ")")) (argument_list "((char)uVar26 + 0x20)" (( "(") (binary_expression "(char)uVar26 + 0x20" (cast_expression "(char)uVar26" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar26")) (+ "+") (number_literal "0x20")) () ")")))) (; ";")) (} "}")))) (expression_statement "*pcVar23 = cVar16;" (assignment_expression "*pcVar23 = cVar16" (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) (= "=") (identifier "cVar16")) (; ";")) (expression_statement "pcVar23 = pcVar23 + 1;" (assignment_expression "pcVar23 = pcVar23 + 1" (identifier "pcVar23") (= "=") (binary_expression "pcVar23 + 1" (identifier "pcVar23") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar29 = pcVar28;" (assignment_expression "pcVar29 = pcVar28" (identifier "pcVar29") (= "=") (identifier "pcVar28")) (; ";")) (} "}"))) (expression_statement "pcVar28 = pcVar29 + 1;" (assignment_expression "pcVar28 = pcVar29 + 1" (identifier "pcVar28") (= "=") (binary_expression "pcVar29 + 1" (identifier "pcVar29") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar26 < 0xc0) break;" (if "if") (parenthesized_expression "(uVar26 < 0xc0)" (( "(") (binary_expression "uVar26 < 0xc0" (identifier "uVar26") (< "<") (number_literal "0xc0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);" (assignment_expression "uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0)" (identifier "uVar26") (= "=") (binary_expression "(uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar26 + iVar25 + -0x73b4 + -0xc0)" (( "(") (binary_expression "uVar26 + iVar25 + -0x73b4 + -0xc0" (binary_expression "uVar26 + iVar25 + -0x73b4" (binary_expression "uVar26 + iVar25" (identifier "uVar26") (+ "+") (identifier "iVar25")) (+ "+") (number_literal "-0x73b4")) (+ "+") (number_literal "-0xc0")) () ")"))))) (; ";")) (if_statement "if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80)) {\n        if (uVar26 < 0x80) goto LAB_00053748;\n      }\n      else {\n        do {\n          pcVar28 = pcVar28 + 1;\n          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n          if (pcVar30 == pcVar28) break;\n          uVar12 = (uint)(byte)*pcVar28;\n        } while ((uVar12 & 0xffffffc0) == 0x80);\n        if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);\n          uVar26 = 0xfffd;\n          goto joined_r0x00053724;\n        }\n      }" (if "if") (parenthesized_expression "((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80))" (( "(") (binary_expression "(pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80)" (parenthesized_expression "(pcVar30 == pcVar28)" (( "(") (binary_expression "pcVar30 == pcVar28" (identifier "pcVar30") (== "==") (identifier "pcVar28")) () ")")) (|| "||") (parenthesized_expression "(uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80)" (( "(") (comma_expression "uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80" (assignment_expression "uVar12 = (uint)(byte)pcVar29[1]" (identifier "uVar12") (= "=") (cast_expression "(uint)(byte)pcVar29[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)pcVar29[1]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "pcVar29[1]" (identifier "pcVar29") ([ "[") (number_literal "1") (] "]"))))) (, ",") (binary_expression "(uVar12 & 0xc0) != 0x80" (parenthesized_expression "(uVar12 & 0xc0)" (( "(") (binary_expression "uVar12 & 0xc0" (identifier "uVar12") (& "&") (number_literal "0xc0")) () ")")) (!= "!=") (number_literal "0x80"))) () ")"))) () ")")) (compound_statement "{\n        if (uVar26 < 0x80) goto LAB_00053748;\n      }" ({ "{") (if_statement "if (uVar26 < 0x80) goto LAB_00053748;" (if "if") (parenthesized_expression "(uVar26 < 0x80)" (( "(") (binary_expression "uVar26 < 0x80" (identifier "uVar26") (< "<") (number_literal "0x80")) () ")")) (goto_statement "goto LAB_00053748;" (goto "goto") (statement_identifier "LAB_00053748") (; ";"))) (} "}")) (else_clause "else {\n        do {\n          pcVar28 = pcVar28 + 1;\n          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n          if (pcVar30 == pcVar28) break;\n          uVar12 = (uint)(byte)*pcVar28;\n        } while ((uVar12 & 0xffffffc0) == 0x80);\n        if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);\n          uVar26 = 0xfffd;\n          goto joined_r0x00053724;\n        }\n      }" (else "else") (compound_statement "{\n        do {\n          pcVar28 = pcVar28 + 1;\n          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n          if (pcVar30 == pcVar28) break;\n          uVar12 = (uint)(byte)*pcVar28;\n        } while ((uVar12 & 0xffffffc0) == 0x80);\n        if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);\n          uVar26 = 0xfffd;\n          goto joined_r0x00053724;\n        }\n      }" ({ "{") (do_statement "do {\n          pcVar28 = pcVar28 + 1;\n          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n          if (pcVar30 == pcVar28) break;\n          uVar12 = (uint)(byte)*pcVar28;\n        } while ((uVar12 & 0xffffffc0) == 0x80);" (do "do") (compound_statement "{\n          pcVar28 = pcVar28 + 1;\n          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;\n          if (pcVar30 == pcVar28) break;\n          uVar12 = (uint)(byte)*pcVar28;\n        }" ({ "{") (expression_statement "pcVar28 = pcVar28 + 1;" (assignment_expression "pcVar28 = pcVar28 + 1" (identifier "pcVar28") (= "=") (binary_expression "pcVar28 + 1" (identifier "pcVar28") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;" (assignment_expression "uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40" (identifier "uVar26") (= "=") (binary_expression "(uVar12 & 0x3f) + uVar26 * 0x40" (parenthesized_expression "(uVar12 & 0x3f)" (( "(") (binary_expression "uVar12 & 0x3f" (identifier "uVar12") (& "&") (number_literal "0x3f")) () ")")) (+ "+") (binary_expression "uVar26 * 0x40" (identifier "uVar26") (* "*") (number_literal "0x40")))) (; ";")) (if_statement "if (pcVar30 == pcVar28) break;" (if "if") (parenthesized_expression "(pcVar30 == pcVar28)" (( "(") (binary_expression "pcVar30 == pcVar28" (identifier "pcVar30") (== "==") (identifier "pcVar28")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar12 = (uint)(byte)*pcVar28;" (assignment_expression "uVar12 = (uint)(byte)*pcVar28" (identifier "uVar12") (= "=") (binary_expression "(uint)(byte)*pcVar28" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (* "*") (identifier "pcVar28"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((uVar12 & 0xffffffc0) == 0x80)" (( "(") (binary_expression "(uVar12 & 0xffffffc0) == 0x80" (parenthesized_expression "(uVar12 & 0xffffffc0)" (( "(") (binary_expression "uVar12 & 0xffffffc0" (identifier "uVar12") (& "&") (number_literal "0xffffffc0")) () ")")) (== "==") (number_literal "0x80")) () ")")) (; ";")) (if_statement "if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe)) {\nLAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);\n          uVar26 = 0xfffd;\n          goto joined_r0x00053724;\n        }" (if "if") (parenthesized_expression "(((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe))" (( "(") (binary_expression "((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||\n           ((uVar26 & 0xfffffffe) == 0xfffe)" (parenthesized_expression "((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800))" (( "(") (binary_expression "(uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)" (parenthesized_expression "(uVar26 < 0x80)" (( "(") (binary_expression "uVar26 < 0x80" (identifier "uVar26") (< "<") (number_literal "0x80")) () ")")) (|| "||") (parenthesized_expression "((uVar26 & 0xfffff800) == 0xd800)" (( "(") (binary_expression "(uVar26 & 0xfffff800) == 0xd800" (parenthesized_expression "(uVar26 & 0xfffff800)" (( "(") (binary_expression "uVar26 & 0xfffff800" (identifier "uVar26") (& "&") (number_literal "0xfffff800")) () ")")) (== "==") (number_literal "0xd800")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((uVar26 & 0xfffffffe) == 0xfffe)" (( "(") (binary_expression "(uVar26 & 0xfffffffe) == 0xfffe" (parenthesized_expression "(uVar26 & 0xfffffffe)" (( "(") (binary_expression "uVar26 & 0xfffffffe" (identifier "uVar26") (& "&") (number_literal "0xfffffffe")) () ")")) (== "==") (number_literal "0xfffe")) () ")"))) () ")")) (compound_statement "{\nLAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);\n          uVar26 = 0xfffd;\n          goto joined_r0x00053724;\n        }" ({ "{") (labeled_statement "LAB_00053748:\n          iVar11 = FUN_00042fcc(iVar6,0xfffd);" (statement_identifier "LAB_00053748") (: ":") (expression_statement "iVar11 = FUN_00042fcc(iVar6,0xfffd);" (assignment_expression "iVar11 = FUN_00042fcc(iVar6,0xfffd)" (identifier "iVar11") (= "=") (call_expression "FUN_00042fcc(iVar6,0xfffd)" (identifier "FUN_00042fcc") (argument_list "(iVar6,0xfffd)" (( "(") (identifier "iVar6") (, ",") (number_literal "0xfffd") () ")")))) (; ";"))) (expression_statement "uVar26 = 0xfffd;" (assignment_expression "uVar26 = 0xfffd" (identifier "uVar26") (= "=") (number_literal "0xfffd")) (; ";")) (goto_statement "goto joined_r0x00053724;" (goto "goto") (statement_identifier "joined_r0x00053724") (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar11 = FUN_00042fcc(iVar6,uVar26);" (assignment_expression "iVar11 = FUN_00042fcc(iVar6,uVar26)" (identifier "iVar11") (= "=") (call_expression "FUN_00042fcc(iVar6,uVar26)" (identifier "FUN_00042fcc") (argument_list "(iVar6,uVar26)" (( "(") (identifier "iVar6") (, ",") (identifier "uVar26") () ")")))) (; ";")) (if_statement "if ((iVar11 == 0) &&\n         ((pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))\n         )) goto LAB_00053608;" (if "if") (parenthesized_expression "((iVar11 == 0) &&\n         ((pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))\n         ))" (( "(") (binary_expression "(iVar11 == 0) &&\n         ((pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))\n         )" (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))\n         )" (( "(") (parenthesized_expression "(pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))" (( "(") (comma_expression "pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0)" (assignment_expression "pcVar22 = pcVar28" (identifier "pcVar22") (= "=") (identifier "pcVar28")) (, ",") (binary_expression "0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0)" (binary_expression "0x31 < uVar26 - 0x300" (number_literal "0x31") (< "<") (binary_expression "uVar26 - 0x300" (identifier "uVar26") (- "-") (number_literal "0x300"))) (|| "||") (parenthesized_expression "(iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0)" (( "(") (comma_expression "iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0" (assignment_expression "iVar11 = FUN_0003e8a0(uVar26)" (identifier "iVar11") (= "=") (call_expression "FUN_0003e8a0(uVar26)" (identifier "FUN_0003e8a0") (argument_list "(uVar26)" (( "(") (identifier "uVar26") () ")")))) (, ",") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0"))) () ")")))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_00053608;" (goto "goto") (statement_identifier "LAB_00053608") (; ";"))) (} "}"))) (expression_statement "iVar11 = FUN_00042fcc(iVar6,uVar26);" (assignment_expression "iVar11 = FUN_00042fcc(iVar6,uVar26)" (identifier "iVar11") (= "=") (call_expression "FUN_00042fcc(iVar6,uVar26)" (identifier "FUN_00042fcc") (argument_list "(iVar6,uVar26)" (( "(") (identifier "iVar6") (, ",") (identifier "uVar26") () ")")))) (; ";")) (labeled_statement "joined_r0x00053724:\n    pcVar22 = pcVar28;" (statement_identifier "joined_r0x00053724") (: ":") (expression_statement "pcVar22 = pcVar28;" (assignment_expression "pcVar22 = pcVar28" (identifier "pcVar22") (= "=") (identifier "pcVar28")) (; ";"))) (} "}")) (while "while") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (; ";")) (labeled_statement "LAB_00053608:\n  pcVar18 = (char *)(*local_14c)(pcVar19,0,pcVar24,(int)pcVar23 - (int)pcVar24,local_194,\n                                 (int)pcVar29 - (int)pcVar20);" (statement_identifier "LAB_00053608") (: ":") (expression_statement "pcVar18 = (char *)(*local_14c)(pcVar19,0,pcVar24,(int)pcVar23 - (int)pcVar24,local_194,\n                                 (int)pcVar29 - (int)pcVar20);" (assignment_expression "pcVar18 = (char *)(*local_14c)(pcVar19,0,pcVar24,(int)pcVar23 - (int)pcVar24,local_194,\n                                 (int)pcVar29 - (int)pcVar20)" (identifier "pcVar18") (= "=") (cast_expression "(char *)(*local_14c)(pcVar19,0,pcVar24,(int)pcVar23 - (int)pcVar24,local_194,\n                                 (int)pcVar29 - (int)pcVar20)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*local_14c)(pcVar19,0,pcVar24,(int)pcVar23 - (int)pcVar24,local_194,\n                                 (int)pcVar29 - (int)pcVar20)" (parenthesized_expression "(*local_14c)" (( "(") (pointer_expression "*local_14c" (* "*") (identifier "local_14c")) () ")")) (argument_list "(pcVar19,0,pcVar24,(int)pcVar23 - (int)pcVar24,local_194,\n                                 (int)pcVar29 - (int)pcVar20)" (( "(") (identifier "pcVar19") (, ",") (number_literal "0") (, ",") (identifier "pcVar24") (, ",") (binary_expression "(int)pcVar23 - (int)pcVar24" (cast_expression "(int)pcVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar23")) (- "-") (cast_expression "(int)pcVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar24"))) (, ",") (identifier "local_194") (, ",") (binary_expression "(int)pcVar29 - (int)pcVar20" (cast_expression "(int)pcVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar29")) (- "-") (cast_expression "(int)pcVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar20"))) () ")"))))) (; ";"))) (if_statement "if (pcVar18 != (char *)0x0) {\n    if (pcVar18 == (char *)0x65) {\nLAB_00053644:\n      pcVar18 = (char *)0x0;\n    }\n    return pcVar18;\n  }" (if "if") (parenthesized_expression "(pcVar18 != (char *)0x0)" (( "(") (binary_expression "pcVar18 != (char *)0x0" (identifier "pcVar18") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    if (pcVar18 == (char *)0x65) {\nLAB_00053644:\n      pcVar18 = (char *)0x0;\n    }\n    return pcVar18;\n  }" ({ "{") (if_statement "if (pcVar18 == (char *)0x65) {\nLAB_00053644:\n      pcVar18 = (char *)0x0;\n    }" (if "if") (parenthesized_expression "(pcVar18 == (char *)0x65)" (( "(") (binary_expression "pcVar18 == (char *)0x65" (identifier "pcVar18") (== "==") (cast_expression "(char *)0x65" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x65"))) () ")")) (compound_statement "{\nLAB_00053644:\n      pcVar18 = (char *)0x0;\n    }" ({ "{") (labeled_statement "LAB_00053644:\n      pcVar18 = (char *)0x0;" (statement_identifier "LAB_00053644") (: ":") (expression_statement "pcVar18 = (char *)0x0;" (assignment_expression "pcVar18 = (char *)0x0" (identifier "pcVar18") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (} "}"))) (return_statement "return pcVar18;" (return "return") (identifier "pcVar18") (; ";")) (} "}"))) (goto_statement "goto LAB_00053480;" (goto "goto") (statement_identifier "LAB_00053480") (; ";")) (} "}")))

char * function_1(int *pRc,char *var_7,char **pzOut,int *pbQuoted)

{
  char var_6;
  type_1 *puVar2;
  int var_13;
  int var_1;
  char *var_4;
  char *var_8;
  type_2 *var_16;
  int var_27;
  type_3 var_29;
  type_4 var_25;
  type_5 *var_9;
  type_5 *var_11;
  type_6 *var_10;
  type_3 bVar13;
  char *pcVar14;
  type_5 uVar15;
  type_3 bVar16;
  type_3 *var_19;
  type_3 *var_28;
  int var_12;
  type_4 var_23;
  type_3 *var_17;
  type_3 *var_24;
  type_3 *var_30;
  type_3 *var_31;
  type_3 *var_21;
  type_7 *var_14;
  type_3 *var_22;
  int in_stack_fffffe50;
  int in_stack_fffffe54;
  int var_18;
  int iStack_194;
  int var_20;
  type_7 *pcStack_14c;
  type_8 *var_5;
  type_5 in_stack_ffffff54;
  type_6 aBareword [128];
  
  puVar2 = PTR___stack_chk_guard_0015ca30;
  var_5 = &_gp;
  var_13 = *(int *)PTR___stack_chk_guard_0015ca30;
  var_19 = (type_3 *)pbQuoted;
  var_1 = (*(type_7 *)PTR_strlen_0015c9c8)(var_7);
  pcVar14 = (char *)(var_1 + 1);
  var_4 = (char *)var_2(var_3(var_5,in_stack_ffffff54));
  *pbQuoted = 0;
  *pzOut = (char *)0x0;
  if (var_4 == (char *)0x0) {
    var_14 = *(type_7 **)(var_5 + -0x7fc4);
    *pRc = 7;
    (*var_14)(0);
    var_8 = (char *)0x0;
    iStack_194 = in_stack_fffffe50;
    goto LAB_000530c4;
  }
  pcVar14 = var_7;
  (**(type_7 **)(var_5 + -0x7b7c))(var_4,var_7,(char *)(var_1 + 1));
  var_6 = *var_4;
  if ((((var_6 == '\"') || (var_6 == '\'')) || (var_6 == '[')) ||
     (var_1 = *(int *)(var_5 + -0x7fbc), var_6 == '`')) {
    var_1 = (*(type_7 *)(*(int *)(var_5 + -0x7f44) + 0x4688))(var_4);
    var_8 = var_7 + var_1;
    *pbQuoted = 1;
    if (var_8 == (char *)0x0) goto LAB_0005311c;
  }
  else {
    var_12 = *(int *)(var_5 + -0x7fbc);
    var_8 = var_7;
    while( true ) {
      var_6 = *var_8;
      var_9 = (type_5 *)(var_1 + 0xf68);
      var_10 = aBareword;
      do {
        var_11 = var_9 + 4;
        *(type_5 *)var_10 = *var_9;
        var_19 = (type_3 *)var_9[1];
        uVar15 = var_9[2];
        pcVar14 = (char *)var_9[3];
        *(type_3 **)(var_10 + 4) = var_19;
        *(type_5 *)(var_10 + 8) = uVar15;
        *(char **)(var_10 + 0xc) = pcVar14;
        var_9 = var_11;
        var_10 = var_10 + 0x10;
      } while (var_11 != (type_5 *)(var_12 + 0xfe8));
      if ((-1 < var_6) && (aBareword[var_6] == '\0')) break;
      var_8 = var_8 + 1;
    }
    if (var_7 == var_8) {
LAB_0005311c:
      (**(type_7 **)(var_5 + -0x7fc4))(var_4);
      var_8 = (char *)0x0;
      iStack_194 = in_stack_fffffe50;
      goto LAB_000530c4;
    }
    var_4[(int)var_8 - (int)var_7] = '\0';
  }
  *pzOut = var_4;
  iStack_194 = in_stack_fffffe50;
LAB_000530c4:
  if (var_13 == *(int *)puVar2) {
    return var_8;
  }
  var_14 = *(type_7 **)(var_5 + -0x7b9c);
  (*var_14)();
  var_16 = (type_2 *)**(int **)(var_14 + 0x1098c8);
  if (0 < (int)var_5) {
    pcVar14 = (char *)var_15();
    return pcVar14;
  }
  if (var_16 == (type_2 *)**(int **)(var_14 + 0x1098c8)) {
    return (char *)0x0;
  }
  var_14 = *(type_7 **)(var_14 + 0x1098ac);
  (*var_14)();
  var_18 = var_16->nFold;
  var_1 = *(int *)(var_14 + 0x1092d0);
  var_17 = (type_3 *)var_16->aFold;
  var_13 = *(int *)(var_14 + 0x1092a4);
  var_31 = var_17 + var_18 + -6;
  var_21 = var_19 + var_20;
  var_22 = var_19;
LAB_00053480:
  var_12 = iStack_194;
  if (var_21 <= var_22) {
    return (char *)0x0;
  }
  do {
    var_29 = *var_22;
    var_23 = (type_4)var_29;
    var_24 = var_22 + 1;
    var_28 = var_17;
    if ((char)var_29 < '\0') {
      if (0xbf < var_23) {
        var_23 = (type_4)*(type_3 *)(var_23 + var_13 + -0x73b4 + -0xc0);
        if ((var_21 == var_24) || (var_25 = (type_4)var_22[1], (var_25 & 0xc0) != 0x80)) {
          if (var_23 < 0x80) {
            var_23 = 0xfffd;
          }
        }
        else {
          do {
            var_24 = var_24 + 1;
            var_23 = (var_25 & 0x3f) + var_23 * 0x40;
            if (var_21 == var_24) break;
            var_25 = (type_4)*var_24;
          } while ((var_25 & 0xffffffc0) == 0x80);
          if (((var_23 < 0x80) || ((var_23 & 0xfffff800) == 0xd800)) ||
             ((var_23 & 0xfffffffe) == 0xfffe)) {
            var_23 = 0xfffd;
          }
        }
      }
      var_27 = var_26(var_16,var_23);
      if (var_27 != 0) break;
    }
    else {
      iStack_194 = (int)var_22 - (int)var_19;
      if (var_16->aTokenChar[var_23] != '\0') goto LAB_000535b0;
    }
    var_22 = var_24;
    if (var_21 <= var_24) goto LAB_00053644;
  } while( true );
  iStack_194 = (int)var_22 - (int)var_19;
  do {
    while( true ) {
      var_23 = (*(type_7 *)(var_1 + 0x2d68))(var_23,var_16->eRemoveDiacritic);
      var_30 = var_24;
      if (var_23 != 0) {
        if (var_23 < 0x80) {
          *var_28 = (type_3)var_23;
          var_28 = var_28 + 1;
        }
        else {
          bVar16 = ((type_3)var_23 & 0x3f) + 0x80;
          var_29 = (type_3)((var_23 << 0x12) >> 0x18);
          if (var_23 < 0x800) {
            var_28[1] = bVar16;
            *var_28 = var_29 - 0x40;
            var_28 = var_28 + 2;
          }
          else {
            bVar13 = (var_29 & 0x3f) + 0x80;
            var_29 = (type_3)((var_23 << 0xc) >> 0x18);
            if (var_23 < 0x10000) {
              var_28[1] = bVar13;
              var_28[2] = bVar16;
              *var_28 = var_29 - 0x20;
              var_28 = var_28 + 3;
            }
            else {
              var_28[2] = bVar13;
              var_28[3] = bVar16;
              *var_28 = (type_3)((var_23 << 0xb) >> 0x1d) - 0x10;
              var_28[1] = (var_29 & 0x3f) + 0x80;
              var_28 = var_28 + 4;
            }
          }
        }
      }
      while( true ) {
        var_22 = var_30;
        if (var_21 <= var_30) goto LAB_00053608;
        if (var_31 < var_28) {
          var_27 = var_18 * 2;
          var_17 = (type_3 *)var_2(var_3(var_12,in_stack_fffffe54));
          if (var_17 == (type_3 *)0x0) {
            return &DAT_00000007;
          }
          var_28 = var_17 + ((int)var_28 - (int)var_16->aFold);
          (**(type_7 **)(var_14 + 0x109640))(var_17,var_16->aFold,var_18);
          (**(type_7 **)(var_14 + 0x1091f8))(var_16->aFold);
          var_31 = var_17 + var_27 + -6;
          var_16->aFold = (char *)var_17;
          var_16->nFold = var_27;
          var_18 = var_27;
        }
        var_29 = *var_30;
        var_23 = (type_4)var_29;
        if ((char)var_29 < '\0') break;
        if (var_16->aTokenChar[var_23] == '\0') goto LAB_00053608;
        var_24 = var_30 + 1;
LAB_000535b0:
        if (var_23 - 0x41 < 0x1a) {
          var_29 = (char)var_23 + 0x20;
        }
        *var_28 = var_29;
        var_28 = var_28 + 1;
        var_30 = var_24;
      }
      var_24 = var_30 + 1;
      if (var_23 < 0xc0) break;
      var_23 = (type_4)*(type_3 *)(var_23 + var_13 + -0x73b4 + -0xc0);
      if ((var_21 == var_24) || (var_25 = (type_4)var_30[1], (var_25 & 0xc0) != 0x80)) {
        if (var_23 < 0x80) goto LAB_00053748;
      }
      else {
        do {
          var_24 = var_24 + 1;
          var_23 = (var_25 & 0x3f) + var_23 * 0x40;
          if (var_21 == var_24) break;
          var_25 = (type_4)*var_24;
        } while ((var_25 & 0xffffffc0) == 0x80);
        if (((var_23 < 0x80) || ((var_23 & 0xfffff800) == 0xd800)) ||
           ((var_23 & 0xfffffffe) == 0xfffe)) {
LAB_00053748:
          var_27 = var_26(var_16,0xfffd);
          var_23 = 0xfffd;
          goto joined_r0x00053764;
        }
      }
      var_27 = var_26(var_16,var_23);
      if ((var_27 == 0) &&
         ((var_22 = var_24, 0x31 < var_23 - 0x300 ||
          (var_27 = var_32(var_23), var_27 == 0)))) goto LAB_00053608;
    }
    var_27 = var_26(var_16,var_23);
joined_r0x00053764:
    var_22 = var_24;
  } while (var_27 != 0);
LAB_00053608:
  in_stack_fffffe54 = (int)var_30 - (int)var_19;
  var_4 = (char *)(*pcStack_14c)(pcVar14,0,var_17,(int)var_28 - (int)var_17);
  if (var_4 != (char *)0x0) {
    if (var_4 == (char *)0x65) {
LAB_00053644:
      var_4 = (char *)0x0;
    }
    return var_4;
  }
  goto LAB_00053480;
}


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

char * MASKED(undefined4 *param_1,char *param_2,undefined4 *param_3,code *param_4)

{
  bool bVar1;
  char cVar2;
  byte bVar3;
  undefined *puVar4;
  char *pcVar5;
  int iVar6;
  int *piVar7;
  code *pcVar8;
  undefined1 *puVar9;
  int iVar10;
  int iVar11;
  uint uVar12;
  undefined4 *puVar13;
  undefined4 *puVar14;
  char *pcVar15;
  code cVar16;
  code cVar17;
  char *pcVar18;
  char *pcVar19;
  code *pcVar20;
  undefined4 uVar21;
  code *pcVar22;
  code *pcVar23;
  code *pcVar24;
  int iVar25;
  uint uVar26;
  char *pcVar27;
  code *pcVar28;
  code *pcVar29;
  code *pcVar30;
  undefined *puVar31;
  code *pcVar32;
  uint local_19c;
  int local_194;
  code *local_150;
  code *local_14c;
  undefined1 auStack_12c [64];
  int local_ec;
  char *local_e8;
  char *local_e4;
  undefined *local_e0;
  undefined4 *local_dc;
  char *local_d8;
  code *local_d4;
  undefined4 *local_d0;
  code *local_ac;
  char local_a4 [4];
  undefined4 local_a0 [31];
  int local_24;
  
  puVar4 = PTR___stack_chk_guard_0015ca30;
  local_24 = *(int *)PTR___stack_chk_guard_0015ca30;
  pcVar22 = param_4;
  pcVar5 = (char *)(*(code *)PTR_strlen_0015c9c8)(param_2);
  pcVar27 = pcVar5 + 1;
  pcVar18 = pcVar27;
  pcVar5 = (char *)sqlite3_malloc64(pcVar27 < pcVar5);
  *(undefined4 *)param_4 = 0;
  *param_3 = 0;
  puVar31 = PTR_sqlite3_free_0015c5ec;
  if (pcVar5 == (char *)0x0) {
    *param_1 = 7;
    (*(code *)puVar31)(0);
    pcVar19 = (char *)0x0;
    goto LAB_000530c4;
  }
  pcVar18 = param_2;
  (*(code *)PTR_memcpy_0015ca34)(pcVar5,param_2,pcVar27);
  cVar2 = *pcVar5;
  if ((((cVar2 == '\"') || (cVar2 == '\'')) || (cVar2 == '[')) || (cVar2 == '`')) {
    iVar6 = (*(code *)(PTR_LAB_0015c66c + 0x4688))(pcVar5);
    pcVar19 = param_2 + iVar6;
    *(undefined4 *)param_4 = 1;
    if (pcVar19 == (char *)0x0) goto LAB_0005311c;
  }
  else {
    pcVar19 = param_2;
    while( true ) {
      cVar2 = *pcVar19;
      puVar13 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xf68);
      pcVar15 = local_a4;
      do {
        puVar14 = puVar13 + 4;
        *(undefined4 *)pcVar15 = *puVar13;
        pcVar22 = (code *)puVar13[1];
        uVar21 = puVar13[2];
        pcVar18 = (char *)puVar13[3];
        *(code **)(pcVar15 + 4) = pcVar22;
        *(undefined4 *)(pcVar15 + 8) = uVar21;
        *(char **)(pcVar15 + 0xc) = pcVar18;
        puVar13 = puVar14;
        pcVar15 = pcVar15 + 0x10;
      } while (puVar14 != (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + 0xfe8));
      if ((-1 < cVar2) && (local_a4[cVar2] == '\0')) break;
      pcVar19 = pcVar19 + 1;
    }
    bVar1 = param_2 == pcVar19;
    param_2 = pcVar19 + -(int)param_2;
    if (bVar1) {
LAB_0005311c:
      (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);
      pcVar19 = (char *)0x0;
      goto LAB_000530c4;
    }
    param_2 = pcVar5 + (int)param_2;
    *param_2 = '\0';
  }
  *param_3 = pcVar5;
LAB_000530c4:
  if (local_24 == *(int *)puVar4) {
    return pcVar19;
  }
  iVar6 = local_24;
  puVar31 = PTR___stack_chk_fail_0015ca14;
  (*(code *)PTR___stack_chk_fail_0015ca14)();
  piVar7 = *(int **)(puVar31 + 0x1098c8);
  local_e0 = puVar4;
  local_ec = *piVar7;
  iVar25 = 0x40;
  pcVar19 = pcVar18;
  pcVar20 = pcVar22;
  puVar9 = auStack_12c;
  pcVar24 = (code *)0x0;
  local_e8 = pcVar5;
  local_e4 = param_2;
  local_dc = param_3;
  local_d8 = pcVar27;
  local_d4 = param_4;
  local_d0 = param_1;
LAB_000531e8:
  do {
    pcVar30 = pcVar24;
    pcVar24 = pcVar30 + 1;
    pcVar8 = pcVar24;
    if ((-1 < (char)pcVar22[(int)pcVar30]) &&
       (*(char *)(iVar6 + (char)pcVar22[(int)pcVar30]) == '\0')) {
      if ((int)pcVar24 < 0x1645b0) goto LAB_000531e8;
      pcVar8 = pcVar30 + 2;
      pcVar30 = pcVar24;
      if (pcVar24 == (code *)&_gp_1) {
        if (puVar9 != auStack_12c) {
          (**(code **)(puVar31 + 0x109484))(puVar9);
        }
        goto LAB_00053398;
      }
    }
    if ((int)pcVar8 < 0x1645b0) {
      do {
        if ((-1 < (char)pcVar22[(int)pcVar8]) &&
           (pcVar24 = pcVar8 + -(int)pcVar30, *(char *)(iVar6 + (char)pcVar22[(int)pcVar8]) == '\0')
           ) goto LAB_00053254;
        pcVar8 = pcVar8 + 1;
      } while (pcVar8 != (code *)&_gp_1);
      pcVar24 = (code *)(&_gp_1 + -(int)pcVar30);
LAB_00053254:
      if (iVar25 < (int)pcVar24) {
        pcVar19 = (char *)((int)pcVar24 << 1);
        uVar26 = (uint)pcVar24 >> 0x1f | ((int)pcVar24 >> 0x1f) << 1;
LAB_00053270:
        if (puVar9 != auStack_12c) {
          (**(code **)(puVar31 + 0x109484))(puVar9);
        }
        pcVar20 = pcVar24;
        puVar9 = (undefined1 *)sqlite3_malloc64(uVar26);
        if (puVar9 == (undefined1 *)0x0) {
          pcVar5 = &DAT_00000007;
          goto LAB_000533c0;
        }
        iVar25 = (int)pcVar24 << 1;
      }
      pcVar20 = pcVar24;
      if (0 < (int)pcVar24) goto LAB_000532c0;
    }
    else {
      pcVar19 = &SUB_00000002;
      if (iVar25 < 1) {
        uVar26 = 0;
        pcVar24 = (code *)0x1;
        goto LAB_00053270;
      }
      pcVar24 = (code *)0x1;
LAB_000532c0:
      iVar10 = 0;
      do {
        cVar16 = pcVar22[(int)(pcVar30 + iVar10)];
        if ((byte)cVar16 - 0x41 < 0x1a) {
          cVar16 = (code)((char)cVar16 + 0x20);
        }
        pcVar20 = (code *)(puVar9 + iVar10);
        iVar10 = iVar10 + 1;
        *pcVar20 = cVar16;
        pcVar20 = pcVar24;
      } while (iVar10 < (int)pcVar24);
    }
    pcVar19 = (char *)0x0;
    pcVar5 = (char *)(*local_ac)(pcVar18,0,puVar9);
    local_150 = pcVar30;
    local_14c = pcVar8;
    if ((0x1645af < (int)(pcVar8 + 1)) || (pcVar24 = pcVar8 + 1, pcVar5 != (char *)0x0)) break;
  } while( true );
  if (puVar9 == auStack_12c) {
    if (pcVar5 == (char *)0x65) {
LAB_00053398:
      pcVar5 = (char *)0x0;
    }
  }
  else {
LAB_000533c0:
    (**(code **)(puVar31 + 0x109484))(puVar9);
    if (pcVar5 == (char *)0x65) {
      pcVar5 = (char *)0x0;
    }
  }
  if (local_ec == *piVar7) {
    return pcVar5;
  }
  pcVar32 = *(code **)(puVar31 + 0x1098ac);
  iVar6 = local_ec;
  (*pcVar32)();
  local_19c = *(uint *)(iVar6 + 0x84);
  iVar10 = *(int *)(pcVar32 + 0x1092d0);
  pcVar24 = *(code **)(iVar6 + 0x80);
  iVar25 = *(int *)(pcVar32 + 0x1092a4);
  pcVar8 = pcVar24 + (local_19c - 6);
  pcVar30 = pcVar20 + (int)local_150;
  pcVar22 = pcVar20;
LAB_00053480:
  if (pcVar30 <= pcVar22) {
    return (char *)0x0;
  }
  do {
    cVar16 = *pcVar22;
    uVar26 = (uint)(byte)cVar16;
    pcVar28 = pcVar22 + 1;
    pcVar23 = pcVar24;
    if ((char)cVar16 < '\0') {
      if (0xbf < uVar26) {
        uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);
        if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar22[1], (uVar12 & 0xc0) != 0x80)) {
          if (uVar26 < 0x80) {
            uVar26 = 0xfffd;
          }
        }
        else {
          do {
            pcVar28 = pcVar28 + 1;
            uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;
            if (pcVar30 == pcVar28) break;
            uVar12 = (uint)(byte)*pcVar28;
          } while ((uVar12 & 0xffffffc0) == 0x80);
          if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||
             ((uVar26 & 0xfffffffe) == 0xfffe)) {
            uVar26 = 0xfffd;
          }
        }
      }
      iVar11 = FUN_00042fcc(iVar6,uVar26);
      if (iVar11 != 0) break;
    }
    else {
      local_194 = (int)pcVar22 - (int)pcVar20;
      if (*(char *)(iVar6 + uVar26) != '\0') goto LAB_000535b0;
    }
    pcVar22 = pcVar28;
    if (pcVar30 <= pcVar28) goto LAB_00053644;
  } while( true );
  local_194 = (int)pcVar22 - (int)pcVar20;
  do {
    while( true ) {
      uVar26 = (*(code *)(iVar10 + 0x2d68))(uVar26,*(undefined4 *)(iVar6 + 0x88));
      pcVar29 = pcVar28;
      if (uVar26 != 0) {
        if (uVar26 < 0x80) {
          *pcVar23 = SUB41(uVar26,0);
          pcVar23 = pcVar23 + 1;
        }
        else {
          cVar16 = (code)(((byte)SUB41(uVar26,0) & 0x3f) + 0x80);
          bVar3 = (byte)((uVar26 << 0x12) >> 0x18);
          if (uVar26 < 0x800) {
            pcVar23[1] = cVar16;
            *pcVar23 = (code)(bVar3 - 0x40);
            pcVar23 = pcVar23 + 2;
          }
          else {
            cVar17 = (code)((bVar3 & 0x3f) + 0x80);
            bVar3 = (byte)((uVar26 << 0xc) >> 0x18);
            if (uVar26 < 0x10000) {
              pcVar23[1] = cVar17;
              pcVar23[2] = cVar16;
              *pcVar23 = (code)(bVar3 - 0x20);
              pcVar23 = pcVar23 + 3;
            }
            else {
              pcVar23[2] = cVar17;
              pcVar23[3] = cVar16;
              *pcVar23 = (code)((byte)((uVar26 << 0xb) >> 0x1d) - 0x10);
              pcVar23[1] = (code)((bVar3 & 0x3f) + 0x80);
              pcVar23 = pcVar23 + 4;
            }
          }
        }
      }
      while( true ) {
        pcVar22 = pcVar29;
        if (pcVar30 <= pcVar29) goto LAB_00053608;
        if (pcVar8 < pcVar23) {
          uVar26 = local_19c * 2;
          pcVar24 = (code *)sqlite3_malloc64(local_19c >> 0x1f | ((int)local_19c >> 0x1f) << 1,
                                             uVar26);
          if (pcVar24 == (code *)0x0) {
            return &DAT_00000007;
          }
          pcVar23 = pcVar24 + ((int)pcVar23 - *(int *)(iVar6 + 0x80));
          (**(code **)(pcVar32 + 0x109640))(pcVar24,*(int *)(iVar6 + 0x80),local_19c);
          (**(code **)(pcVar32 + 0x1091f8))(*(undefined4 *)(iVar6 + 0x80));
          pcVar8 = pcVar24 + (uVar26 - 6);
          *(code **)(iVar6 + 0x80) = pcVar24;
          *(uint *)(iVar6 + 0x84) = uVar26;
          local_19c = uVar26;
        }
        cVar16 = *pcVar29;
        uVar26 = (uint)(byte)cVar16;
        if ((char)cVar16 < '\0') break;
        if (*(char *)(iVar6 + uVar26) == '\0') goto LAB_00053608;
        pcVar28 = pcVar29 + 1;
LAB_000535b0:
        if (uVar26 - 0x41 < 0x1a) {
          cVar16 = (code)((char)uVar26 + 0x20);
        }
        *pcVar23 = cVar16;
        pcVar23 = pcVar23 + 1;
        pcVar29 = pcVar28;
      }
      pcVar28 = pcVar29 + 1;
      if (uVar26 < 0xc0) break;
      uVar26 = (uint)*(byte *)(uVar26 + iVar25 + -0x73b4 + -0xc0);
      if ((pcVar30 == pcVar28) || (uVar12 = (uint)(byte)pcVar29[1], (uVar12 & 0xc0) != 0x80)) {
        if (uVar26 < 0x80) goto LAB_00053748;
      }
      else {
        do {
          pcVar28 = pcVar28 + 1;
          uVar26 = (uVar12 & 0x3f) + uVar26 * 0x40;
          if (pcVar30 == pcVar28) break;
          uVar12 = (uint)(byte)*pcVar28;
        } while ((uVar12 & 0xffffffc0) == 0x80);
        if (((uVar26 < 0x80) || ((uVar26 & 0xfffff800) == 0xd800)) ||
           ((uVar26 & 0xfffffffe) == 0xfffe)) {
LAB_00053748:
          iVar11 = FUN_00042fcc(iVar6,0xfffd);
          uVar26 = 0xfffd;
          goto joined_r0x00053724;
        }
      }
      iVar11 = FUN_00042fcc(iVar6,uVar26);
      if ((iVar11 == 0) &&
         ((pcVar22 = pcVar28, 0x31 < uVar26 - 0x300 || (iVar11 = FUN_0003e8a0(uVar26), iVar11 == 0))
         )) goto LAB_00053608;
    }
    iVar11 = FUN_00042fcc(iVar6,uVar26);
joined_r0x00053724:
    pcVar22 = pcVar28;
  } while (iVar11 != 0);
LAB_00053608:
  pcVar18 = (char *)(*local_14c)(pcVar19,0,pcVar24,(int)pcVar23 - (int)pcVar24,local_194,
                                 (int)pcVar29 - (int)pcVar20);
  if (pcVar18 != (char *)0x0) {
    if (pcVar18 == (char *)0x65) {
LAB_00053644:
      pcVar18 = (char *)0x0;
    }
    return pcVar18;
  }
  goto LAB_00053480;
}

