
int valueFromExpr(sqlite3 *db,Expr *pExpr,u8 enc,u8 affinity,sqlite3_value **ppVal,
                 ValueNewStat4Ctx *pCtx)

{
  char cVar1;
  u8 affinity_00;
  Expr *pEVar2;
  Mem *pMem;
  char *pcVar3;
  undefined3 in_register_00000018;
  undefined3 in_register_0000001c;
  int iVar4;
  byte bVar6;
  int iVar5;
  undefined *puVar7;
  sqlite3_value *pVal;
  int iStack_2c;
  
  iStack_2c = *(int *)PTR___stack_chk_guard_0018fecc;
  pVal = (sqlite3_value *)0x0;
  for (; (bVar6 = pExpr->op, bVar6 == 0xa2 || (bVar6 == 0xa9)); pExpr = pExpr->pLeft) {
  }
  if (bVar6 == 0xa4) {
    bVar6 = pExpr->op2;
  }
  if (bVar6 == 0x24) {
    affinity_00 = (*(code *)(PTR_LAB_0018fbbc + 0x7c60))((pExpr->u).zToken,0);
    iVar4 = valueFromExpr(db,pExpr->pLeft,enc,affinity_00,ppVal,pCtx);
    if (*ppVal != (Mem *)0x0) {
      sqlite3VdbeMemCast(*ppVal,affinity_00,'\x01');
      applyAffinity(*ppVal,affinity,'\x01');
    }
    goto LAB_000a1814;
  }
  if (bVar6 == 0xa1) {
    pEVar2 = pExpr->pLeft;
    bVar6 = pEVar2->op;
    if ((bVar6 & 0xfd) == 0x8d) {
      puVar7 = PTR_LAB_0018f958 + 0xd80;
      goto LAB_000a1594;
    }
LAB_000a1688:
    iVar4 = valueFromExpr(db,pExpr->pLeft,enc,affinity,&pVal,pCtx);
    if (iVar4 == 0) {
      iVar4 = 0;
      if (pVal != (sqlite3_value *)0x0) {
        (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();
        if ((pVal->flags & 8) == 0) {
          iVar5 = *(int *)((int)&pVal->u + 4);
          if (((pVal->u).nZero == -0x80000000) && (iVar5 == 0)) {
            pVal->u = *(MemValue *)(PTR_DAT_0018fbb0 + -0x3fb8);
            pVal->flags = pVal->flags & 0x3e00 | 8;
          }
          else {
            iVar5 = -iVar5;
            (pVal->u).zPType = (char *)(-(uint)(iVar5 != 0) - (pVal->u).nZero);
            *(int *)((int)&pVal->u + 4) = iVar5;
          }
        }
        else {
          (pVal->u).nZero = (pVal->u).nZero ^ 0x80000000;
        }
        applyAffinity(pVal,affinity,enc);
      }
    }
    else {
      iVar4 = 0;
    }
    goto LAB_000a180c;
  }
  if (bVar6 == 0x6a) {
    puVar7 = PTR_LAB_0018f958 + 0x2d20;
LAB_000a1740:
    pVal = (sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);
    if (pVal == (sqlite3_value *)0x0) {
LAB_000a1a8c:
      (*(code *)(PTR_LAB_0018fb58 + 0x1354))(db);
      (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(db,0);
      (*(code *)(PTR_LAB_0018fc04 + -0x5984))(pVal);
      iVar4 = 7;
      goto LAB_000a1814;
    }
    if ((pExpr->flags & 0x400) == 0) {
      pcVar3 = sqlite3MPrintf(db,PTR_LAB_0018f958 + 0x172c,puVar7,(pExpr->u).zToken);
      if (pcVar3 == (char *)0x0) goto LAB_000a1a8c;
      sqlite3ValueSetStr(pVal,-1,pcVar3,'\x01',(_func_void_void_ptr *)(PTR_LAB_0018fb58 + 0x1030));
    }
    else {
      (*(code *)(PTR_LAB_0018fc04 + -0x6694))(pVal);
    }
    if (((bVar6 & 0xfd) == 0x8d) && (CONCAT31(in_register_0000001c,affinity) == 0x41)) {
      applyAffinity(pVal,'C','\x01');
    }
    else {
      applyAffinity(pVal,affinity,'\x01');
    }
    if ((pVal->flags & 0xc) != 0) {
      pVal->flags = pVal->flags & 0xfffd;
    }
    if (CONCAT31(in_register_00000018,enc) == 1) {
      iVar4 = 0;
    }
    else {
      iVar4 = sqlite3VdbeChangeEncoding(pVal,CONCAT31(in_register_00000018,enc));
    }
  }
  else {
    puVar7 = PTR_LAB_0018f958 + 0x2d20;
    pEVar2 = pExpr;
LAB_000a1594:
    pExpr = pEVar2;
    if ((bVar6 & 0xfd) == 0x8d) goto LAB_000a1740;
    if (bVar6 == 0xa1) goto LAB_000a1688;
    if (bVar6 == 0x6e) {
      pVal = (sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);
      if (pVal != (sqlite3_value *)0x0) {
        (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(pVal);
        iVar4 = 0;
        goto LAB_000a180c;
      }
      goto LAB_000a1a8c;
    }
    if (bVar6 == 0x8e) {
      pMem = (Mem *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);
      pVal = pMem;
      if (pMem == (Mem *)0x0) goto LAB_000a1a8c;
      iVar5 = (pEVar2->u).iValue + 2;
      iVar4 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(iVar5);
      pcVar3 = (char *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(db,iVar5,iVar4 + -1);
      sqlite3VdbeMemSetStr
                (pMem,pcVar3,(iVar4 + -1) / 2,'\0',
                 (_func_void_void_ptr *)(PTR_LAB_0018fb58 + 0x1030));
      iVar4 = 0;
    }
    else {
      iVar4 = 0;
      if (bVar6 == 0x9b) {
        pVal = (sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);
        if (pVal == (sqlite3_value *)0x0) {
          iVar4 = 0;
        }
        else {
          pVal->flags = 4;
          cVar1 = *(char *)((pEVar2->u).iValue + 4);
          (pVal->u).nZero = 0;
          *(uint *)((int)&pVal->u + 4) = (uint)(cVar1 == '\0');
          iVar4 = 0;
        }
      }
    }
  }
LAB_000a180c:
  *ppVal = pVal;
LAB_000a1814:
  if (iStack_2c != *(int *)PTR___stack_chk_guard_0018fecc) {
    iVar4 = (*(code *)PTR___stack_chk_fail_0018fea0)();
    return iVar4;
  }
  return iVar4;
}



uint FUN_000a14dc(undefined4 param_1,uint *param_2,uint *param_3,uint *param_4,uint **param_5,
                 undefined4 param_6)

{
  uint *puVar1;
  int iVar2;
  undefined4 *puVar3;
  uint *puVar4;
  uint *puVar5;
  uint *puVar6;
  uint uVar7;
  byte bVar8;
  uint *puVar9;
  uint uVar10;
  char cVar12;
  uint uVar11;
  uint *puVar13;
  undefined *puVar14;
  int iVar15;
  code *pcVar16;
  uint *puStack_78;
  uint *puStack_74;
  uint uStack_70;
  uint *puStack_6c;
  undefined4 uStack_68;
  uint **ppuStack_64;
  uint *puStack_60;
  uint *puStack_5c;
  undefined4 uStack_58;
  code *pcStack_54;
  uint **local_40;
  undefined4 local_3c;
  uint *local_30;
  undefined4 *local_2c;
  
  local_2c = *(undefined4 **)PTR___stack_chk_guard_0018fecc;
  local_30 = (uint *)0x0;
  for (puVar9 = param_2; (bVar8 = *(byte *)puVar9, bVar8 == 0xa2 || (bVar8 == 0xa9));
      puVar9 = (uint *)puVar9[3]) {
  }
  if (bVar8 == 0xa4) {
    bVar8 = *(byte *)(puVar9 + 10);
  }
  cVar12 = (char)param_4;
  puVar5 = param_3;
  if (bVar8 == 0x24) {
    uVar10 = (*(code *)(PTR_LAB_0018fbbc + 0x7c60))(puVar9[2],0);
    param_2 = (uint *)puVar9[3];
    local_3c = param_6;
    local_40 = param_5;
    puVar6 = (uint *)(uVar10 & 0xff);
    uVar7 = FUN_000a14dc(param_1);
    if (*param_5 != (uint *)0x0) {
      FUN_0008f194(*param_5,(uint *)(uVar10 & 0xff),1);
      puVar5 = (uint *)0x1;
      param_2 = (uint *)(int)cVar12;
      FUN_0008efcc(*param_5);
    }
  }
  else {
    puVar6 = param_4;
    if (bVar8 == 0xa1) {
      puVar4 = (uint *)puVar9[3];
      bVar8 = *(byte *)puVar4;
      if ((bVar8 & 0xfd) == 0x8d) {
        puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80);
        iVar15 = -1;
        goto LAB_000a1594;
      }
LAB_000a1688:
      param_2 = (uint *)puVar9[3];
      local_3c = param_6;
      local_40 = &local_30;
      iVar15 = FUN_000a14dc(param_1);
      if (iVar15 == 0) {
        uVar7 = 0;
        if (local_30 != (uint *)0x0) {
          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();
          if ((local_30[2] & 0x80000) == 0) {
            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {
              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);
              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;
            }
            else {
              uVar10 = -local_30[1];
              *local_30 = -(uint)(uVar10 != 0) - *local_30;
              local_30[1] = uVar10;
            }
          }
          else {
            *local_30 = *local_30 ^ 0x80000000;
          }
          param_2 = (uint *)(int)cVar12;
          puVar5 = param_3;
          FUN_0008efcc(local_30);
        }
      }
      else {
        uVar7 = 0;
      }
      goto LAB_000a180c;
    }
    if (bVar8 == 0x6a) {
      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);
      iVar15 = 1;
LAB_000a1740:
      local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);
      if (local_30 == (uint *)0x0) {
LAB_000a1a8c:
        (*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);
        param_2 = (uint *)0x0;
        (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1);
        (*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30);
        uVar7 = 7;
        goto LAB_000a1814;
      }
      if ((puVar9[1] & 0x400) == 0) {
        puVar6 = (uint *)puVar9[2];
        iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c);
        puVar5 = puVar13;
        if (iVar15 == 0) goto LAB_000a1a8c;
        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);
        puVar6 = (uint *)0x1;
        FUN_00081e3c(local_30,0xffffffff,iVar15);
      }
      else {
        puVar6 = (uint *)(puVar9[2] * iVar15);
        (*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);
      }
      if (((bVar8 & 0xfd) == 0x8d) && (puVar5 = (uint *)0x1, param_4 == (uint *)0x41)) {
        FUN_0008efcc(local_30,0x43);
      }
      else {
        puVar5 = (uint *)0x1;
        FUN_0008efcc(local_30,(int)cVar12);
      }
      if ((*(ushort *)(local_30 + 2) & 0xc) != 0) {
        *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;
      }
      param_2 = param_3;
      if (param_3 == (uint *)0x1) {
        uVar7 = 0;
      }
      else {
        uVar7 = FUN_00084bc0();
      }
    }
    else {
      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);
      iVar15 = 1;
      puVar4 = puVar9;
LAB_000a1594:
      puVar9 = puVar4;
      if ((bVar8 & 0xfd) == 0x8d) goto LAB_000a1740;
      if (bVar8 == 0xa1) goto LAB_000a1688;
      if (bVar8 == 0x6e) {
        local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);
        if (local_30 != (uint *)0x0) {
          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);
          uVar7 = 0;
          goto LAB_000a180c;
        }
        goto LAB_000a1a8c;
      }
      if (bVar8 == 0x8e) {
        puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);
        puVar5 = param_3;
        param_3 = puVar13;
        local_30 = puVar13;
        if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;
        uVar7 = puVar4[2];
        iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);
        puVar9 = (uint *)(iVar15 + -1);
        param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);
        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);
        puVar6 = (uint *)0x0;
        puVar5 = (uint *)((int)puVar9 / 2);
        FUN_00081ac0(puVar13);
        uVar7 = 0;
      }
      else {
        uVar7 = 0;
        if (bVar8 == 0x9b) {
          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);
          if (local_30 == (uint *)0x0) {
            uVar7 = 0;
          }
          else {
            *(undefined2 *)(local_30 + 2) = 4;
            cVar12 = *(char *)(puVar4[2] + 4);
            *local_30 = 0;
            local_30[1] = (uint)(cVar12 == '\0');
            uVar7 = 0;
          }
        }
      }
    }
LAB_000a180c:
    *param_5 = local_30;
  }
LAB_000a1814:
  if (local_2c == *(undefined4 **)PTR___stack_chk_guard_0018fecc) {
    return uVar7;
  }
  pcVar16 = FUN_000a1aec;
  puVar3 = local_2c;
  puVar14 = PTR___stack_chk_fail_0018fea0;
  (*(code *)PTR___stack_chk_fail_0018fea0)();
  uStack_58 = param_6;
  ppuStack_64 = param_5;
  puStack_74 = (uint *)**(undefined4 **)(puVar14 + 0xee3e0);
  puVar4 = param_2;
  puVar13 = puVar5;
  uStack_70 = uVar7;
  puStack_6c = puVar9;
  uStack_68 = param_1;
  puStack_60 = param_3;
  puStack_5c = param_4;
  pcStack_54 = pcVar16;
  if (param_2 == (uint *)0x0) {
    uVar7 = 2;
    if (puVar5 == (uint *)0x0) {
      uVar7 = 0;
    }
    goto LAB_000a1b98;
  }
  if (puVar5 == (uint *)0x0) {
    uVar7 = 2;
    goto LAB_000a1b98;
  }
  if ((puVar3 == (undefined4 *)0x0) || (*(byte *)param_2 != 0x90)) {
LAB_000a1b58:
    uVar10 = param_2[1];
  }
  else {
    puStack_78 = (uint *)0x0;
    puVar13 = (uint *)0x1;
    puVar4 = puVar5;
    FUN_000a14dc(*puVar3,puVar5,1,0x41,&puStack_78,0);
    if (puStack_78 == (uint *)0x0) goto LAB_000a1b58;
    puVar4 = (uint *)param_2[8];
    (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x6628))(puVar3[2],puVar4);
    puVar13 = (uint *)0x41;
    iVar15 = FUN_0008f0b8(puVar3[0x36],puVar4,0x41);
    if (iVar15 == 0) {
      iVar15 = *(int *)(puVar14 + 0xee118);
      (*(code *)(iVar15 + -0x5984))(puStack_78);
      (*(code *)(iVar15 + -0x5984))(0);
      uVar10 = param_2[1];
    }
    else {
      if (*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==
          '\x03') {
        sqlite3_value_text(iVar15);
      }
      puVar13 = (uint *)0x0;
      puVar4 = puStack_78;
      uVar7 = FUN_0008ea3c(iVar15,puStack_78,0);
      iVar2 = *(int *)(puVar14 + 0xee118);
      (*(code *)(iVar2 + -0x5984))(puStack_78);
      (*(code *)(iVar2 + -0x5984))(iVar15);
      if (uVar7 == 0) goto LAB_000a1b98;
      uVar10 = param_2[1];
    }
  }
  uVar11 = uVar10 | puVar5[1];
  if ((uVar11 & 0x400) != 0) {
    uVar7 = 2;
    if (((uVar10 & puVar5[1] & 0x400) != 0) && (uVar7 = 2, param_2[2] == puVar5[2])) {
      uVar7 = 0;
    }
    goto LAB_000a1b98;
  }
  bVar8 = *(byte *)param_2;
  if (*(byte *)puVar5 == bVar8) {
    if (bVar8 != 0x47) {
      if (((bVar8 != 0x9e) && (bVar8 != 0xa0)) && (param_2[2] != 0)) {
        if (bVar8 == 0x9d) {
          puVar4 = (uint *)puVar5[2];
          iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();
          if (iVar15 != 0) {
            uVar7 = 2;
            goto LAB_000a1b98;
          }
          if ((int)(uVar10 << 7) < 0) {
            puVar13 = (uint *)puVar5[0xc];
            puVar4 = (uint *)param_2[0xc];
            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);
            if (iVar15 != 0) {
              uVar7 = 2;
              goto LAB_000a1b98;
            }
          }
        }
        else {
          if (bVar8 == 0x6e) {
            uVar7 = 0;
            goto LAB_000a1b98;
          }
          if (bVar8 == 0x66) {
            puVar4 = (uint *)puVar5[2];
            iVar15 = (**(code **)(puVar14 + 0xedf44))();
            if (iVar15 != 0) {
              uVar7 = 2;
              goto LAB_000a1b98;
            }
          }
          else {
            puVar4 = (uint *)puVar5[2];
            if ((puVar4 != (uint *)0x0) &&
               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {
              uVar7 = 2;
              goto LAB_000a1b98;
            }
          }
        }
      }
      if (((param_2[1] ^ puVar5[1]) & 0x10) == 0) {
        if ((uVar11 & 0x4000) == 0) {
          if ((uVar11 & 0x800) == 0) {
            if ((uVar11 & 8) == 0) {
              puVar13 = (uint *)puVar5[3];
              puVar4 = (uint *)param_2[3];
              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);
              if (iVar15 != 0) {
                uVar7 = 2;
                goto LAB_000a1b98;
              }
            }
            puVar4 = (uint *)param_2[4];
            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);
            puVar13 = puVar6;
            if (iVar15 == 0) {
              puVar4 = (uint *)puVar5[5];
              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);
              if (iVar15 == 0) {
                uVar7 = 0;
                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&
                   ((uVar11 & 0x2000) == 0)) {
                  if (param_2[8] == puVar5[8]) {
                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {
                      if ((uint *)param_2[7] == puVar6) {
                        if (-1 < (int)puVar5[7]) {
                          uVar7 = 2;
                        }
                      }
                      else {
                        uVar7 = 2;
                      }
                    }
                  }
                  else {
                    uVar7 = 2;
                  }
                }
              }
              else {
                uVar7 = 2;
              }
            }
            else {
              uVar7 = 2;
            }
          }
          else {
            uVar7 = 2;
          }
        }
        else {
          uVar7 = 0;
        }
      }
      else {
        uVar7 = 2;
      }
      goto LAB_000a1b98;
    }
  }
  else if (bVar8 == 0x66) {
    puVar4 = (uint *)param_2[3];
    puVar13 = puVar5;
    iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5,puVar6);
    if (iVar15 < 2) {
      uVar7 = 1;
      goto LAB_000a1b98;
    }
  }
  if (*(byte *)puVar5 == 0x66) {
    puVar13 = (uint *)puVar5[3];
    iVar15 = FUN_000a1aec(puVar3,param_2,puVar13,puVar6);
    uVar7 = 2;
    puVar4 = param_2;
    if (iVar15 < 2) {
      uVar7 = 1;
    }
  }
  else {
    uVar7 = 2;
    puVar4 = param_2;
  }
LAB_000a1b98:
  if (puStack_74 == (uint *)**(undefined4 **)(puVar14 + 0xee3e0)) {
    return uVar7;
  }
  pcVar16 = *(code **)(puVar14 + 0xee3b4);
  puVar9 = puStack_74;
  (*pcVar16)();
  pcVar16 = pcVar16 + 0xf5910;
  if (puVar9 == (uint *)0x0) {
    uVar7 = (uint)(puVar4 != (uint *)0x0);
  }
  else if (puVar4 == (uint *)0x0) {
    uVar7 = 1;
  }
  else if (*puVar9 == *puVar4) {
    if ((int)*puVar9 < 1) {
      uVar7 = 0;
    }
    else {
      uVar7 = puVar9[1];
      uVar10 = puVar4[1];
      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {
        puVar5 = puVar9 + 6;
        puVar4 = puVar4 + 6;
        iVar15 = 0;
        do {
          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);
          iVar15 = iVar15 + 1;
          if (iVar2 != 0) {
            return 1;
          }
          if ((int)*puVar9 <= iVar15) {
            return 0;
          }
          uVar7 = *puVar5;
          uVar10 = *puVar4;
          puVar6 = puVar5 + 3;
          puVar5 = puVar5 + 5;
          puVar1 = puVar4 + 3;
          puVar4 = puVar4 + 5;
        } while (*(byte *)puVar6 == *(byte *)puVar1);
        uVar7 = 1;
      }
      else {
        uVar7 = 1;
      }
    }
  }
  else {
    uVar7 = 1;
  }
  return uVar7;
}


lui gp,0xf
addiu gp,gp,0x6444
addu gp,gp,t9
addiu sp,sp,-0x50
sw ra,0x4c(sp)
sw s8,0x48(sp)
sw s7,0x44(sp)
sw s6,0x40(sp)
sw s5,0x3c(sp)
sw s4,0x38(sp)
sw s3,0x34(sp)
sw s2,0x30(sp)
sw s1,0x2c(sp)
sw s0,0x28(sp)
sw gp,0x18(sp)
or s2,a0,zero
or s1,a1,zero
or s4,a2,zero
or s5,a3,zero
lw s3,0x60(sp)
lw s6,0x64(sp)
lw v0,-0x7a54(gp)
lw v0,0x0(v0)
sw v0,0x24(sp)
sw zero,0x20(sp)
li v0,0xa2
b 0x000a1550
_li v1,0xa9
lw s1,0xc(s1)
lbu s0,0x0(s1)
beq s0,v0,0x000a154c
_nop
beq s0,v1,0x000a154c
_nop
li v0,0xa4
beq s0,v0,0x000a15cc
_nop
li v0,0x24
beq s0,v0,0x000a15d4
_li v0,0xa1
beq s0,v0,0x000a1670
_li v0,0x6a
beq s0,v0,0x000a1738
_lw s7,-0x7fc8(gp)
addiu s7,s7,0x2d20
li s8,0x1
andi v0,s0,0xfd
li v1,0x8d
beq v0,v1,0x000a1740
_li v0,0xa1
beq s0,v0,0x000a1688
_li v0,0x6e
beq s0,v0,0x000a1950
_li v0,0x8e
beq s0,v0,0x000a1990
_li v0,0x9b
beq s0,v0,0x000a1a38
_or s0,zero,zero
b 0x000a180c
_lw v0,0x20(sp)
b 0x000a1570
_lbu s0,0x28(s1)
or a1,zero,zero
lw a0,0x8(s1)
lw t9,-0x7d64(gp)
addiu t9,t9,0x7c60
jalr t9
_nop
lw gp,0x18(sp)
andi s7,v0,0xff
lw a1,0xc(s1)
sw s6,0x14(sp)
sw s3,0x10(sp)
or a3,s7,zero
or a2,s4,zero
or a0,s2,zero
lw t9,-0x7d60(gp)
addiu t9,t9,0x14dc
bal 0x000a14dc
_nop
lw gp,0x18(sp)
lw a0,0x0(s3)
beq a0,zero,0x000a1810
_or s0,v0,zero
li a2,0x1
or a1,s7,zero
lw t9,-0x7d2c(gp)
addiu t9,t9,-0xe6c
bal 0x0008f194
_nop
lw gp,0x18(sp)
li a2,0x1
seb a1,s5
lw a0,0x0(s3)
lw t9,-0x7d2c(gp)
addiu t9,t9,-0x1034
bal 0x0008efcc
_nop
lw gp,0x18(sp)
b 0x000a1814
_or v0,s0,zero
lw v0,0xc(s1)
lbu s0,0x0(v0)
andi a0,s0,0xfd
li v1,0x8d
beq a0,v1,0x000a1728
_lw s7,-0x7fc8(gp)
lw a1,0xc(s1)
sw s6,0x14(sp)
addiu v0,sp,0x20
sw v0,0x10(sp)
or a3,s5,zero
or a2,s4,zero
or a0,s2,zero
lw t9,-0x7d60(gp)
addiu t9,t9,0x14dc
bal 0x000a14dc
_nop
lw gp,0x18(sp)
bne v0,zero,0x000a1a7c
_or s0,v0,zero
lw a0,0x20(sp)
beq a0,zero,0x000a1808
_lw t9,-0x7d50(gp)
addiu t9,t9,0x6988
jalr t9
_nop
lw gp,0x18(sp)
lw v0,0x20(sp)
lhu v1,0x8(v0)
andi v1,v1,0x8
beq v1,zero,0x000a18fc
_lui a1,0x8000
lw v1,0x0(v0)
lui a0,0x8000
xor v1,v1,a0
sw v1,0x0(v0)
or a2,s4,zero
seb a1,s5
lw a0,0x20(sp)
lw t9,-0x7d2c(gp)
addiu t9,t9,-0x1034
bal 0x0008efcc
_nop
lw gp,0x18(sp)
b 0x000a180c
_lw v0,0x20(sp)
or s1,v0,zero
addiu s7,s7,0xd80
b 0x000a1594
_li s8,-0x1
addiu s7,s7,0x2d20
li s8,0x1
or a0,s2,zero
lw t9,-0x7d64(gp)
addiu t9,t9,0x65c8
jalr t9
_nop
lw gp,0x18(sp)
beq v0,zero,0x000a1a8c
_sw v0,0x20(sp)
lw v1,0x4(s1)
andi v1,v1,0x400
beq v1,zero,0x000a1854
_or a2,s7,zero
lw a2,0x8(s1)
sra v1,a2,0x1f
sra a0,s8,0x1f
mult a0,a2
madd v1,s8
mflo v1
multu a2,s8
mflo a3
mfhi a2
addu a2,v1,a2
or a0,v0,zero
lw t9,-0x7d1c(gp)
addiu t9,t9,-0x6694
jalr t9
_nop
lw gp,0x18(sp)
andi s0,s0,0xfd
li v0,0x8d
beq s0,v0,0x000a18b4
_li v0,0x41
li a2,0x1
seb a1,s5
lw a0,0x20(sp)
lw t9,-0x7d2c(gp)
addiu t9,t9,-0x1034
bal 0x0008efcc
_nop
lw gp,0x18(sp)
lw a0,0x20(sp)
lhu v0,0x8(a0)
andi v1,v0,0xc
beq v1,zero,0x000a17f8
_andi v0,v0,0xfffd
sh v0,0x8(a0)
li v0,0x1
bne s4,v0,0x000a18e0
_or a1,s4,zero
or s0,zero,zero
lw v0,0x20(sp)
sw v0,0x0(s3)
or v0,s0,zero
lw a0,0x24(sp)
lw v1,-0x7a54(gp)
lw v1,0x0(v1)
bne a0,v1,0x000a1ae0
_lw ra,0x4c(sp)
lw s8,0x48(sp)
lw s7,0x44(sp)
lw s6,0x40(sp)
lw s5,0x3c(sp)
lw s4,0x38(sp)
lw s3,0x34(sp)
lw s2,0x30(sp)
lw s1,0x2c(sp)
lw s0,0x28(sp)
jr ra
_addiu sp,sp,0x50
lw a3,0x8(s1)
lw a1,-0x7fc8(gp)
addiu a1,a1,0x172c
or a0,s2,zero
lw t9,-0x7d60(gp)
addiu t9,t9,0x1468
bal 0x000a1468
_nop
lw gp,0x18(sp)
beq v0,zero,0x000a1a8c
_lw v1,-0x7dc8(gp)
addiu v1,v1,0x1030
sw v1,0x10(sp)
li a3,0x1
or a2,v0,zero
li a1,-0x1
lw a0,0x20(sp)
lw t9,-0x7cfc(gp)
addiu t9,t9,0x1e3c
bal 0x00081e3c
_nop
lw gp,0x18(sp)
b 0x000a17b4
_andi s0,s0,0xfd
bne s5,v0,0x000a17c4
_li a2,0x1
li a1,0x43
lw a0,0x20(sp)
lw t9,-0x7d2c(gp)
addiu t9,t9,-0x1034
bal 0x0008efcc
_nop
lw gp,0x18(sp)
b 0x000a17e4
_lw a0,0x20(sp)
lw t9,-0x7cfc(gp)
addiu t9,t9,0x4bc0
bal 0x00084bc0
_nop
lw gp,0x18(sp)
b 0x000a1808
_or s0,v0,zero
lw v1,0x0(v0)
beq v1,a1,0x000a1924
_lw a0,0x4(v0)
subu a0,zero,a0
sltu a1,zero,a0
subu v1,zero,v1
subu v1,v1,a1
sw v1,0x0(v0)
b 0x000a1700
_sw a0,0x4(v0)
bne a0,zero,0x000a190c
_subu a0,zero,a0
lw v1,-0x7d70(gp)
ldc1 f0,-0x3fb8(v1)
sdc1 f0,0x0(v0)
lw v1,0x20(sp)
lhu v0,0x8(v1)
andi v0,v0,0x3e00
ori v0,v0,0x8
b 0x000a1700
_sh v0,0x8(v1)
or a0,s2,zero
lw t9,-0x7d64(gp)
addiu t9,t9,0x65c8
jalr t9
_nop
lw gp,0x18(sp)
beq v0,zero,0x000a1a8c
_sw v0,0x20(sp)
or a0,v0,zero
lw t9,-0x7d50(gp)
addiu t9,t9,0x6988
jalr t9
_nop
lw gp,0x18(sp)
b 0x000a1808
_or s0,zero,zero
or a0,s2,zero
lw t9,-0x7d64(gp)
addiu t9,t9,0x65c8
jalr t9
_nop
lw gp,0x18(sp)
or s4,v0,zero
beq v0,zero,0x000a1a8c
_sw v0,0x20(sp)
lw s0,0x8(s1)
addiu s0,s0,0x2
or a0,s0,zero
lw t9,-0x7d50(gp)
addiu t9,t9,-0x4bc8
jalr t9
_nop
lw gp,0x18(sp)
addiu s1,v0,-0x1
or a2,s1,zero
or a1,s0,zero
or a0,s2,zero
lw t9,-0x7dc8(gp)
addiu t9,t9,0x2284
jalr t9
_nop
lw gp,0x18(sp)
srl a2,s1,0x1f
addu a2,a2,s1
lw v1,-0x7dc8(gp)
addiu v1,v1,0x1030
sw v1,0x10(sp)
or a3,zero,zero
sra a2,a2,0x1
or a1,v0,zero
or a0,s4,zero
lw t9,-0x7cfc(gp)
addiu t9,t9,0x1ac0
bal 0x00081ac0
_nop
lw gp,0x18(sp)
b 0x000a1808
_or s0,zero,zero
or a0,s2,zero
lw t9,-0x7d64(gp)
addiu t9,t9,0x65c8
jalr t9
_nop
lw gp,0x18(sp)
beq v0,zero,0x000a1a84
_sw v0,0x20(sp)
li v1,0x4
sh v1,0x8(v0)
lw v1,0x8(s1)
lb v1,0x4(v1)
sltiu v1,v1,0x1
sw zero,0x0(v0)
sw v1,0x4(v0)
b 0x000a1808
_or s0,zero,zero
b 0x000a1808
_or s0,zero,zero
b 0x000a1808
_or s0,zero,zero
or a0,s2,zero
lw t9,-0x7dc8(gp)
addiu t9,t9,0x1354
jalr t9
_nop
lw gp,0x18(sp)
or a1,zero,zero
or a0,s2,zero
lw t9,-0x7d50(gp)
addiu t9,t9,0x7878
jalr t9
_nop
lw gp,0x18(sp)
lw a0,0x20(sp)
lw t9,-0x7d1c(gp)
addiu t9,t9,-0x5984
jalr t9
_nop
lw gp,0x18(sp)
b 0x000a1810
_li s0,0x7
lw t9,-0x7a80(gp)
jalr t9
_nop
(translation_unit "uint FUN_000a14dc(undefined4 param_1,uint *param_2,uint *param_3,uint *param_4,uint **param_5,\n                 undefined4 param_6)\n\n{\n  uint *puVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  uint *puVar4;\n  uint *puVar5;\n  uint *puVar6;\n  uint uVar7;\n  byte bVar8;\n  uint *puVar9;\n  uint uVar10;\n  char cVar12;\n  uint uVar11;\n  uint *puVar13;\n  undefined *puVar14;\n  int iVar15;\n  code *pcVar16;\n  uint *puStack_78;\n  uint *puStack_74;\n  uint uStack_70;\n  uint *puStack_6c;\n  undefined4 uStack_68;\n  uint **ppuStack_64;\n  uint *puStack_60;\n  uint *puStack_5c;\n  undefined4 uStack_58;\n  code *pcStack_54;\n  uint **local_40;\n  undefined4 local_3c;\n  uint *local_30;\n  undefined4 *local_2c;\n  \n  local_2c = *(undefined4 **)PTR___stack_chk_guard_0018fecc;\n  local_30 = (uint *)0x0;\n  for (puVar9 = param_2; (bVar8 = *(byte *)puVar9, bVar8 == 0xa2 || (bVar8 == 0xa9));\n      puVar9 = (uint *)puVar9[3]) {\n  }\n  if (bVar8 == 0xa4) {\n    bVar8 = *(byte *)(puVar9 + 10);\n  }\n  cVar12 = (char)param_4;\n  puVar5 = param_3;\n  if (bVar8 == 0x24) {\n    uVar10 = (*(code *)(PTR_LAB_0018fbbc + 0x7c60))(puVar9[2],0);\n    param_2 = (uint *)puVar9[3];\n    local_3c = param_6;\n    local_40 = param_5;\n    puVar6 = (uint *)(uVar10 & 0xff);\n    uVar7 = FUN_000a14dc(param_1);\n    if (*param_5 != (uint *)0x0) {\n      FUN_0008f194(*param_5,(uint *)(uVar10 & 0xff),1);\n      puVar5 = (uint *)0x1;\n      param_2 = (uint *)(int)cVar12;\n      FUN_0008efcc(*param_5);\n    }\n  }\n  else {\n    puVar6 = param_4;\n    if (bVar8 == 0xa1) {\n      puVar4 = (uint *)puVar9[3];\n      bVar8 = *(byte *)puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) {\n        puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80);\n        iVar15 = -1;\n        goto LAB_000a1594;\n      }\nLAB_000a1688:\n      param_2 = (uint *)puVar9[3];\n      local_3c = param_6;\n      local_40 = &local_30;\n      iVar15 = FUN_000a14dc(param_1);\n      if (iVar15 == 0) {\n        uVar7 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n          if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (uint *)(int)cVar12;\n          puVar5 = param_3;\n          FUN_0008efcc(local_30);\n        }\n      }\n      else {\n        uVar7 = 0;\n      }\n      goto LAB_000a180c;\n    }\n    if (bVar8 == 0x6a) {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\nLAB_000a1740:\n      local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n      if (local_30 == (uint *)0x0) {\nLAB_000a1a8c:\n        (*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);\n        param_2 = (uint *)0x0;\n        (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1);\n        (*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30);\n        uVar7 = 7;\n        goto LAB_000a1814;\n      }\n      if ((puVar9[1] & 0x400) == 0) {\n        puVar6 = (uint *)puVar9[2];\n        iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c);\n        puVar5 = puVar13;\n        if (iVar15 == 0) goto LAB_000a1a8c;\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x1;\n        FUN_00081e3c(local_30,0xffffffff,iVar15);\n      }\n      else {\n        puVar6 = (uint *)(puVar9[2] * iVar15);\n        (*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);\n      }\n      if (((bVar8 & 0xfd) == 0x8d) && (puVar5 = (uint *)0x1, param_4 == (uint *)0x41)) {\n        FUN_0008efcc(local_30,0x43);\n      }\n      else {\n        puVar5 = (uint *)0x1;\n        FUN_0008efcc(local_30,(int)cVar12);\n      }\n      if ((*(ushort *)(local_30 + 2) & 0xc) != 0) {\n        *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n      }\n      param_2 = param_3;\n      if (param_3 == (uint *)0x1) {\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = FUN_00084bc0();\n      }\n    }\n    else {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\n      puVar4 = puVar9;\nLAB_000a1594:\n      puVar9 = puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) goto LAB_000a1740;\n      if (bVar8 == 0xa1) goto LAB_000a1688;\n      if (bVar8 == 0x6e) {\n        local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }\n        goto LAB_000a1a8c;\n      }\n      if (bVar8 == 0x8e) {\n        puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        puVar5 = param_3;\n        param_3 = puVar13;\n        local_30 = puVar13;\n        if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;\n        uVar7 = puVar4[2];\n        iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);\n        puVar9 = (uint *)(iVar15 + -1);\n        param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x0;\n        puVar5 = (uint *)((int)puVar9 / 2);\n        FUN_00081ac0(puVar13);\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = 0;\n        if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }\n      }\n    }\nLAB_000a180c:\n    *param_5 = local_30;\n  }\nLAB_000a1814:\n  if (local_2c == *(undefined4 **)PTR___stack_chk_guard_0018fecc) {\n    return uVar7;\n  }\n  pcVar16 = FUN_000a1aec;\n  puVar3 = local_2c;\n  puVar14 = PTR___stack_chk_fail_0018fea0;\n  (*(code *)PTR___stack_chk_fail_0018fea0)();\n  uStack_58 = param_6;\n  ppuStack_64 = param_5;\n  puStack_74 = (uint *)**(undefined4 **)(puVar14 + 0xee3e0);\n  puVar4 = param_2;\n  puVar13 = puVar5;\n  uStack_70 = uVar7;\n  puStack_6c = puVar9;\n  uStack_68 = param_1;\n  puStack_60 = param_3;\n  puStack_5c = param_4;\n  pcStack_54 = pcVar16;\n  if (param_2 == (uint *)0x0) {\n    uVar7 = 2;\n    if (puVar5 == (uint *)0x0) {\n      uVar7 = 0;\n    }\n    goto LAB_000a1b98;\n  }\n  if (puVar5 == (uint *)0x0) {\n    uVar7 = 2;\n    goto LAB_000a1b98;\n  }\n  if ((puVar3 == (undefined4 *)0x0) || (*(byte *)param_2 != 0x90)) {\nLAB_000a1b58:\n    uVar10 = param_2[1];\n  }\n  else {\n    puStack_78 = (uint *)0x0;\n    puVar13 = (uint *)0x1;\n    puVar4 = puVar5;\n    FUN_000a14dc(*puVar3,puVar5,1,0x41,&puStack_78,0);\n    if (puStack_78 == (uint *)0x0) goto LAB_000a1b58;\n    puVar4 = (uint *)param_2[8];\n    (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x6628))(puVar3[2],puVar4);\n    puVar13 = (uint *)0x41;\n    iVar15 = FUN_0008f0b8(puVar3[0x36],puVar4,0x41);\n    if (iVar15 == 0) {\n      iVar15 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar15 + -0x5984))(puStack_78);\n      (*(code *)(iVar15 + -0x5984))(0);\n      uVar10 = param_2[1];\n    }\n    else {\n      if (*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==\n          '\x03') {\n        sqlite3_value_text(iVar15);\n      }\n      puVar13 = (uint *)0x0;\n      puVar4 = puStack_78;\n      uVar7 = FUN_0008ea3c(iVar15,puStack_78,0);\n      iVar2 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar2 + -0x5984))(puStack_78);\n      (*(code *)(iVar2 + -0x5984))(iVar15);\n      if (uVar7 == 0) goto LAB_000a1b98;\n      uVar10 = param_2[1];\n    }\n  }\n  uVar11 = uVar10 | puVar5[1];\n  if ((uVar11 & 0x400) != 0) {\n    uVar7 = 2;\n    if (((uVar10 & puVar5[1] & 0x400) != 0) && (uVar7 = 2, param_2[2] == puVar5[2])) {\n      uVar7 = 0;\n    }\n    goto LAB_000a1b98;\n  }\n  bVar8 = *(byte *)param_2;\n  if (*(byte *)puVar5 == bVar8) {\n    if (bVar8 != 0x47) {\n      if (((bVar8 != 0x9e) && (bVar8 != 0xa0)) && (param_2[2] != 0)) {\n        if (bVar8 == 0x9d) {\n          puVar4 = (uint *)puVar5[2];\n          iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();\n          if (iVar15 != 0) {\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }\n          if ((int)(uVar10 << 7) < 0) {\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n        else {\n          if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }\n          if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n      }\n      if (((param_2[1] ^ puVar5[1]) & 0x10) == 0) {\n        if ((uVar11 & 0x4000) == 0) {\n          if ((uVar11 & 0x800) == 0) {\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }\n          else {\n            uVar7 = 2;\n          }\n        }\n        else {\n          uVar7 = 0;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      goto LAB_000a1b98;\n    }\n  }\n  else if (bVar8 == 0x66) {\n    puVar4 = (uint *)param_2[3];\n    puVar13 = puVar5;\n    iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5,puVar6);\n    if (iVar15 < 2) {\n      uVar7 = 1;\n      goto LAB_000a1b98;\n    }\n  }\n  if (*(byte *)puVar5 == 0x66) {\n    puVar13 = (uint *)puVar5[3];\n    iVar15 = FUN_000a1aec(puVar3,param_2,puVar13,puVar6);\n    uVar7 = 2;\n    puVar4 = param_2;\n    if (iVar15 < 2) {\n      uVar7 = 1;\n    }\n  }\n  else {\n    uVar7 = 2;\n    puVar4 = param_2;\n  }\nLAB_000a1b98:\n  if (puStack_74 == (uint *)**(undefined4 **)(puVar14 + 0xee3e0)) {\n    return uVar7;\n  }\n  pcVar16 = *(code **)(puVar14 + 0xee3b4);\n  puVar9 = puStack_74;\n  (*pcVar16)();\n  pcVar16 = pcVar16 + 0xf5910;\n  if (puVar9 == (uint *)0x0) {\n    uVar7 = (uint)(puVar4 != (uint *)0x0);\n  }\n  else if (puVar4 == (uint *)0x0) {\n    uVar7 = 1;\n  }\n  else if (*puVar9 == *puVar4) {\n    if ((int)*puVar9 < 1) {\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = puVar9[1];\n      uVar10 = puVar4[1];\n      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }\n    }\n  }\n  else {\n    uVar7 = 1;\n  }\n  return uVar7;\n}\n\n" (function_definition "uint FUN_000a14dc(undefined4 param_1,uint *param_2,uint *param_3,uint *param_4,uint **param_5,\n                 undefined4 param_6)\n\n{\n  uint *puVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  uint *puVar4;\n  uint *puVar5;\n  uint *puVar6;\n  uint uVar7;\n  byte bVar8;\n  uint *puVar9;\n  uint uVar10;\n  char cVar12;\n  uint uVar11;\n  uint *puVar13;\n  undefined *puVar14;\n  int iVar15;\n  code *pcVar16;\n  uint *puStack_78;\n  uint *puStack_74;\n  uint uStack_70;\n  uint *puStack_6c;\n  undefined4 uStack_68;\n  uint **ppuStack_64;\n  uint *puStack_60;\n  uint *puStack_5c;\n  undefined4 uStack_58;\n  code *pcStack_54;\n  uint **local_40;\n  undefined4 local_3c;\n  uint *local_30;\n  undefined4 *local_2c;\n  \n  local_2c = *(undefined4 **)PTR___stack_chk_guard_0018fecc;\n  local_30 = (uint *)0x0;\n  for (puVar9 = param_2; (bVar8 = *(byte *)puVar9, bVar8 == 0xa2 || (bVar8 == 0xa9));\n      puVar9 = (uint *)puVar9[3]) {\n  }\n  if (bVar8 == 0xa4) {\n    bVar8 = *(byte *)(puVar9 + 10);\n  }\n  cVar12 = (char)param_4;\n  puVar5 = param_3;\n  if (bVar8 == 0x24) {\n    uVar10 = (*(code *)(PTR_LAB_0018fbbc + 0x7c60))(puVar9[2],0);\n    param_2 = (uint *)puVar9[3];\n    local_3c = param_6;\n    local_40 = param_5;\n    puVar6 = (uint *)(uVar10 & 0xff);\n    uVar7 = FUN_000a14dc(param_1);\n    if (*param_5 != (uint *)0x0) {\n      FUN_0008f194(*param_5,(uint *)(uVar10 & 0xff),1);\n      puVar5 = (uint *)0x1;\n      param_2 = (uint *)(int)cVar12;\n      FUN_0008efcc(*param_5);\n    }\n  }\n  else {\n    puVar6 = param_4;\n    if (bVar8 == 0xa1) {\n      puVar4 = (uint *)puVar9[3];\n      bVar8 = *(byte *)puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) {\n        puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80);\n        iVar15 = -1;\n        goto LAB_000a1594;\n      }\nLAB_000a1688:\n      param_2 = (uint *)puVar9[3];\n      local_3c = param_6;\n      local_40 = &local_30;\n      iVar15 = FUN_000a14dc(param_1);\n      if (iVar15 == 0) {\n        uVar7 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n          if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (uint *)(int)cVar12;\n          puVar5 = param_3;\n          FUN_0008efcc(local_30);\n        }\n      }\n      else {\n        uVar7 = 0;\n      }\n      goto LAB_000a180c;\n    }\n    if (bVar8 == 0x6a) {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\nLAB_000a1740:\n      local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n      if (local_30 == (uint *)0x0) {\nLAB_000a1a8c:\n        (*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);\n        param_2 = (uint *)0x0;\n        (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1);\n        (*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30);\n        uVar7 = 7;\n        goto LAB_000a1814;\n      }\n      if ((puVar9[1] & 0x400) == 0) {\n        puVar6 = (uint *)puVar9[2];\n        iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c);\n        puVar5 = puVar13;\n        if (iVar15 == 0) goto LAB_000a1a8c;\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x1;\n        FUN_00081e3c(local_30,0xffffffff,iVar15);\n      }\n      else {\n        puVar6 = (uint *)(puVar9[2] * iVar15);\n        (*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);\n      }\n      if (((bVar8 & 0xfd) == 0x8d) && (puVar5 = (uint *)0x1, param_4 == (uint *)0x41)) {\n        FUN_0008efcc(local_30,0x43);\n      }\n      else {\n        puVar5 = (uint *)0x1;\n        FUN_0008efcc(local_30,(int)cVar12);\n      }\n      if ((*(ushort *)(local_30 + 2) & 0xc) != 0) {\n        *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n      }\n      param_2 = param_3;\n      if (param_3 == (uint *)0x1) {\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = FUN_00084bc0();\n      }\n    }\n    else {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\n      puVar4 = puVar9;\nLAB_000a1594:\n      puVar9 = puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) goto LAB_000a1740;\n      if (bVar8 == 0xa1) goto LAB_000a1688;\n      if (bVar8 == 0x6e) {\n        local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }\n        goto LAB_000a1a8c;\n      }\n      if (bVar8 == 0x8e) {\n        puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        puVar5 = param_3;\n        param_3 = puVar13;\n        local_30 = puVar13;\n        if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;\n        uVar7 = puVar4[2];\n        iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);\n        puVar9 = (uint *)(iVar15 + -1);\n        param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x0;\n        puVar5 = (uint *)((int)puVar9 / 2);\n        FUN_00081ac0(puVar13);\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = 0;\n        if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }\n      }\n    }\nLAB_000a180c:\n    *param_5 = local_30;\n  }\nLAB_000a1814:\n  if (local_2c == *(undefined4 **)PTR___stack_chk_guard_0018fecc) {\n    return uVar7;\n  }\n  pcVar16 = FUN_000a1aec;\n  puVar3 = local_2c;\n  puVar14 = PTR___stack_chk_fail_0018fea0;\n  (*(code *)PTR___stack_chk_fail_0018fea0)();\n  uStack_58 = param_6;\n  ppuStack_64 = param_5;\n  puStack_74 = (uint *)**(undefined4 **)(puVar14 + 0xee3e0);\n  puVar4 = param_2;\n  puVar13 = puVar5;\n  uStack_70 = uVar7;\n  puStack_6c = puVar9;\n  uStack_68 = param_1;\n  puStack_60 = param_3;\n  puStack_5c = param_4;\n  pcStack_54 = pcVar16;\n  if (param_2 == (uint *)0x0) {\n    uVar7 = 2;\n    if (puVar5 == (uint *)0x0) {\n      uVar7 = 0;\n    }\n    goto LAB_000a1b98;\n  }\n  if (puVar5 == (uint *)0x0) {\n    uVar7 = 2;\n    goto LAB_000a1b98;\n  }\n  if ((puVar3 == (undefined4 *)0x0) || (*(byte *)param_2 != 0x90)) {\nLAB_000a1b58:\n    uVar10 = param_2[1];\n  }\n  else {\n    puStack_78 = (uint *)0x0;\n    puVar13 = (uint *)0x1;\n    puVar4 = puVar5;\n    FUN_000a14dc(*puVar3,puVar5,1,0x41,&puStack_78,0);\n    if (puStack_78 == (uint *)0x0) goto LAB_000a1b58;\n    puVar4 = (uint *)param_2[8];\n    (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x6628))(puVar3[2],puVar4);\n    puVar13 = (uint *)0x41;\n    iVar15 = FUN_0008f0b8(puVar3[0x36],puVar4,0x41);\n    if (iVar15 == 0) {\n      iVar15 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar15 + -0x5984))(puStack_78);\n      (*(code *)(iVar15 + -0x5984))(0);\n      uVar10 = param_2[1];\n    }\n    else {\n      if (*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==\n          '\x03') {\n        sqlite3_value_text(iVar15);\n      }\n      puVar13 = (uint *)0x0;\n      puVar4 = puStack_78;\n      uVar7 = FUN_0008ea3c(iVar15,puStack_78,0);\n      iVar2 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar2 + -0x5984))(puStack_78);\n      (*(code *)(iVar2 + -0x5984))(iVar15);\n      if (uVar7 == 0) goto LAB_000a1b98;\n      uVar10 = param_2[1];\n    }\n  }\n  uVar11 = uVar10 | puVar5[1];\n  if ((uVar11 & 0x400) != 0) {\n    uVar7 = 2;\n    if (((uVar10 & puVar5[1] & 0x400) != 0) && (uVar7 = 2, param_2[2] == puVar5[2])) {\n      uVar7 = 0;\n    }\n    goto LAB_000a1b98;\n  }\n  bVar8 = *(byte *)param_2;\n  if (*(byte *)puVar5 == bVar8) {\n    if (bVar8 != 0x47) {\n      if (((bVar8 != 0x9e) && (bVar8 != 0xa0)) && (param_2[2] != 0)) {\n        if (bVar8 == 0x9d) {\n          puVar4 = (uint *)puVar5[2];\n          iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();\n          if (iVar15 != 0) {\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }\n          if ((int)(uVar10 << 7) < 0) {\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n        else {\n          if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }\n          if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n      }\n      if (((param_2[1] ^ puVar5[1]) & 0x10) == 0) {\n        if ((uVar11 & 0x4000) == 0) {\n          if ((uVar11 & 0x800) == 0) {\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }\n          else {\n            uVar7 = 2;\n          }\n        }\n        else {\n          uVar7 = 0;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      goto LAB_000a1b98;\n    }\n  }\n  else if (bVar8 == 0x66) {\n    puVar4 = (uint *)param_2[3];\n    puVar13 = puVar5;\n    iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5,puVar6);\n    if (iVar15 < 2) {\n      uVar7 = 1;\n      goto LAB_000a1b98;\n    }\n  }\n  if (*(byte *)puVar5 == 0x66) {\n    puVar13 = (uint *)puVar5[3];\n    iVar15 = FUN_000a1aec(puVar3,param_2,puVar13,puVar6);\n    uVar7 = 2;\n    puVar4 = param_2;\n    if (iVar15 < 2) {\n      uVar7 = 1;\n    }\n  }\n  else {\n    uVar7 = 2;\n    puVar4 = param_2;\n  }\nLAB_000a1b98:\n  if (puStack_74 == (uint *)**(undefined4 **)(puVar14 + 0xee3e0)) {\n    return uVar7;\n  }\n  pcVar16 = *(code **)(puVar14 + 0xee3b4);\n  puVar9 = puStack_74;\n  (*pcVar16)();\n  pcVar16 = pcVar16 + 0xf5910;\n  if (puVar9 == (uint *)0x0) {\n    uVar7 = (uint)(puVar4 != (uint *)0x0);\n  }\n  else if (puVar4 == (uint *)0x0) {\n    uVar7 = 1;\n  }\n  else if (*puVar9 == *puVar4) {\n    if ((int)*puVar9 < 1) {\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = puVar9[1];\n      uVar10 = puVar4[1];\n      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }\n    }\n  }\n  else {\n    uVar7 = 1;\n  }\n  return uVar7;\n}" type_identifier (function_declarator "FUN_000a14dc(undefined4 param_1,uint *param_2,uint *param_3,uint *param_4,uint **param_5,\n                 undefined4 param_6)" identifier (parameter_list "(undefined4 param_1,uint *param_2,uint *param_3,uint *param_4,uint **param_5,\n                 undefined4 param_6)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "uint **param_5" type_identifier (pointer_declarator "**param_5" * (pointer_declarator "*param_5" * identifier))) , (parameter_declaration "undefined4 param_6" type_identifier identifier) ))) (compound_statement "{\n  uint *puVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  uint *puVar4;\n  uint *puVar5;\n  uint *puVar6;\n  uint uVar7;\n  byte bVar8;\n  uint *puVar9;\n  uint uVar10;\n  char cVar12;\n  uint uVar11;\n  uint *puVar13;\n  undefined *puVar14;\n  int iVar15;\n  code *pcVar16;\n  uint *puStack_78;\n  uint *puStack_74;\n  uint uStack_70;\n  uint *puStack_6c;\n  undefined4 uStack_68;\n  uint **ppuStack_64;\n  uint *puStack_60;\n  uint *puStack_5c;\n  undefined4 uStack_58;\n  code *pcStack_54;\n  uint **local_40;\n  undefined4 local_3c;\n  uint *local_30;\n  undefined4 *local_2c;\n  \n  local_2c = *(undefined4 **)PTR___stack_chk_guard_0018fecc;\n  local_30 = (uint *)0x0;\n  for (puVar9 = param_2; (bVar8 = *(byte *)puVar9, bVar8 == 0xa2 || (bVar8 == 0xa9));\n      puVar9 = (uint *)puVar9[3]) {\n  }\n  if (bVar8 == 0xa4) {\n    bVar8 = *(byte *)(puVar9 + 10);\n  }\n  cVar12 = (char)param_4;\n  puVar5 = param_3;\n  if (bVar8 == 0x24) {\n    uVar10 = (*(code *)(PTR_LAB_0018fbbc + 0x7c60))(puVar9[2],0);\n    param_2 = (uint *)puVar9[3];\n    local_3c = param_6;\n    local_40 = param_5;\n    puVar6 = (uint *)(uVar10 & 0xff);\n    uVar7 = FUN_000a14dc(param_1);\n    if (*param_5 != (uint *)0x0) {\n      FUN_0008f194(*param_5,(uint *)(uVar10 & 0xff),1);\n      puVar5 = (uint *)0x1;\n      param_2 = (uint *)(int)cVar12;\n      FUN_0008efcc(*param_5);\n    }\n  }\n  else {\n    puVar6 = param_4;\n    if (bVar8 == 0xa1) {\n      puVar4 = (uint *)puVar9[3];\n      bVar8 = *(byte *)puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) {\n        puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80);\n        iVar15 = -1;\n        goto LAB_000a1594;\n      }\nLAB_000a1688:\n      param_2 = (uint *)puVar9[3];\n      local_3c = param_6;\n      local_40 = &local_30;\n      iVar15 = FUN_000a14dc(param_1);\n      if (iVar15 == 0) {\n        uVar7 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n          if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (uint *)(int)cVar12;\n          puVar5 = param_3;\n          FUN_0008efcc(local_30);\n        }\n      }\n      else {\n        uVar7 = 0;\n      }\n      goto LAB_000a180c;\n    }\n    if (bVar8 == 0x6a) {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\nLAB_000a1740:\n      local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n      if (local_30 == (uint *)0x0) {\nLAB_000a1a8c:\n        (*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);\n        param_2 = (uint *)0x0;\n        (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1);\n        (*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30);\n        uVar7 = 7;\n        goto LAB_000a1814;\n      }\n      if ((puVar9[1] & 0x400) == 0) {\n        puVar6 = (uint *)puVar9[2];\n        iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c);\n        puVar5 = puVar13;\n        if (iVar15 == 0) goto LAB_000a1a8c;\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x1;\n        FUN_00081e3c(local_30,0xffffffff,iVar15);\n      }\n      else {\n        puVar6 = (uint *)(puVar9[2] * iVar15);\n        (*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);\n      }\n      if (((bVar8 & 0xfd) == 0x8d) && (puVar5 = (uint *)0x1, param_4 == (uint *)0x41)) {\n        FUN_0008efcc(local_30,0x43);\n      }\n      else {\n        puVar5 = (uint *)0x1;\n        FUN_0008efcc(local_30,(int)cVar12);\n      }\n      if ((*(ushort *)(local_30 + 2) & 0xc) != 0) {\n        *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n      }\n      param_2 = param_3;\n      if (param_3 == (uint *)0x1) {\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = FUN_00084bc0();\n      }\n    }\n    else {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\n      puVar4 = puVar9;\nLAB_000a1594:\n      puVar9 = puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) goto LAB_000a1740;\n      if (bVar8 == 0xa1) goto LAB_000a1688;\n      if (bVar8 == 0x6e) {\n        local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }\n        goto LAB_000a1a8c;\n      }\n      if (bVar8 == 0x8e) {\n        puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        puVar5 = param_3;\n        param_3 = puVar13;\n        local_30 = puVar13;\n        if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;\n        uVar7 = puVar4[2];\n        iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);\n        puVar9 = (uint *)(iVar15 + -1);\n        param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x0;\n        puVar5 = (uint *)((int)puVar9 / 2);\n        FUN_00081ac0(puVar13);\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = 0;\n        if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }\n      }\n    }\nLAB_000a180c:\n    *param_5 = local_30;\n  }\nLAB_000a1814:\n  if (local_2c == *(undefined4 **)PTR___stack_chk_guard_0018fecc) {\n    return uVar7;\n  }\n  pcVar16 = FUN_000a1aec;\n  puVar3 = local_2c;\n  puVar14 = PTR___stack_chk_fail_0018fea0;\n  (*(code *)PTR___stack_chk_fail_0018fea0)();\n  uStack_58 = param_6;\n  ppuStack_64 = param_5;\n  puStack_74 = (uint *)**(undefined4 **)(puVar14 + 0xee3e0);\n  puVar4 = param_2;\n  puVar13 = puVar5;\n  uStack_70 = uVar7;\n  puStack_6c = puVar9;\n  uStack_68 = param_1;\n  puStack_60 = param_3;\n  puStack_5c = param_4;\n  pcStack_54 = pcVar16;\n  if (param_2 == (uint *)0x0) {\n    uVar7 = 2;\n    if (puVar5 == (uint *)0x0) {\n      uVar7 = 0;\n    }\n    goto LAB_000a1b98;\n  }\n  if (puVar5 == (uint *)0x0) {\n    uVar7 = 2;\n    goto LAB_000a1b98;\n  }\n  if ((puVar3 == (undefined4 *)0x0) || (*(byte *)param_2 != 0x90)) {\nLAB_000a1b58:\n    uVar10 = param_2[1];\n  }\n  else {\n    puStack_78 = (uint *)0x0;\n    puVar13 = (uint *)0x1;\n    puVar4 = puVar5;\n    FUN_000a14dc(*puVar3,puVar5,1,0x41,&puStack_78,0);\n    if (puStack_78 == (uint *)0x0) goto LAB_000a1b58;\n    puVar4 = (uint *)param_2[8];\n    (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x6628))(puVar3[2],puVar4);\n    puVar13 = (uint *)0x41;\n    iVar15 = FUN_0008f0b8(puVar3[0x36],puVar4,0x41);\n    if (iVar15 == 0) {\n      iVar15 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar15 + -0x5984))(puStack_78);\n      (*(code *)(iVar15 + -0x5984))(0);\n      uVar10 = param_2[1];\n    }\n    else {\n      if (*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==\n          '\x03') {\n        sqlite3_value_text(iVar15);\n      }\n      puVar13 = (uint *)0x0;\n      puVar4 = puStack_78;\n      uVar7 = FUN_0008ea3c(iVar15,puStack_78,0);\n      iVar2 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar2 + -0x5984))(puStack_78);\n      (*(code *)(iVar2 + -0x5984))(iVar15);\n      if (uVar7 == 0) goto LAB_000a1b98;\n      uVar10 = param_2[1];\n    }\n  }\n  uVar11 = uVar10 | puVar5[1];\n  if ((uVar11 & 0x400) != 0) {\n    uVar7 = 2;\n    if (((uVar10 & puVar5[1] & 0x400) != 0) && (uVar7 = 2, param_2[2] == puVar5[2])) {\n      uVar7 = 0;\n    }\n    goto LAB_000a1b98;\n  }\n  bVar8 = *(byte *)param_2;\n  if (*(byte *)puVar5 == bVar8) {\n    if (bVar8 != 0x47) {\n      if (((bVar8 != 0x9e) && (bVar8 != 0xa0)) && (param_2[2] != 0)) {\n        if (bVar8 == 0x9d) {\n          puVar4 = (uint *)puVar5[2];\n          iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();\n          if (iVar15 != 0) {\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }\n          if ((int)(uVar10 << 7) < 0) {\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n        else {\n          if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }\n          if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n      }\n      if (((param_2[1] ^ puVar5[1]) & 0x10) == 0) {\n        if ((uVar11 & 0x4000) == 0) {\n          if ((uVar11 & 0x800) == 0) {\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }\n          else {\n            uVar7 = 2;\n          }\n        }\n        else {\n          uVar7 = 0;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      goto LAB_000a1b98;\n    }\n  }\n  else if (bVar8 == 0x66) {\n    puVar4 = (uint *)param_2[3];\n    puVar13 = puVar5;\n    iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5,puVar6);\n    if (iVar15 < 2) {\n      uVar7 = 1;\n      goto LAB_000a1b98;\n    }\n  }\n  if (*(byte *)puVar5 == 0x66) {\n    puVar13 = (uint *)puVar5[3];\n    iVar15 = FUN_000a1aec(puVar3,param_2,puVar13,puVar6);\n    uVar7 = 2;\n    puVar4 = param_2;\n    if (iVar15 < 2) {\n      uVar7 = 1;\n    }\n  }\n  else {\n    uVar7 = 2;\n    puVar4 = param_2;\n  }\nLAB_000a1b98:\n  if (puStack_74 == (uint *)**(undefined4 **)(puVar14 + 0xee3e0)) {\n    return uVar7;\n  }\n  pcVar16 = *(code **)(puVar14 + 0xee3b4);\n  puVar9 = puStack_74;\n  (*pcVar16)();\n  pcVar16 = pcVar16 + 0xf5910;\n  if (puVar9 == (uint *)0x0) {\n    uVar7 = (uint)(puVar4 != (uint *)0x0);\n  }\n  else if (puVar4 == (uint *)0x0) {\n    uVar7 = 1;\n  }\n  else if (*puVar9 == *puVar4) {\n    if ((int)*puVar9 < 1) {\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = puVar9[1];\n      uVar10 = puVar4[1];\n      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }\n    }\n  }\n  else {\n    uVar7 = 1;\n  }\n  return uVar7;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uint *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "byte bVar8;" type_identifier identifier ;) (declaration "uint *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "char cVar12;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "code *pcVar16;" type_identifier (pointer_declarator "*pcVar16" * identifier) ;) (declaration "uint *puStack_78;" type_identifier (pointer_declarator "*puStack_78" * identifier) ;) (declaration "uint *puStack_74;" type_identifier (pointer_declarator "*puStack_74" * identifier) ;) (declaration "uint uStack_70;" type_identifier identifier ;) (declaration "uint *puStack_6c;" type_identifier (pointer_declarator "*puStack_6c" * identifier) ;) (declaration "undefined4 uStack_68;" type_identifier identifier ;) (declaration "uint **ppuStack_64;" type_identifier (pointer_declarator "**ppuStack_64" * (pointer_declarator "*ppuStack_64" * identifier)) ;) (declaration "uint *puStack_60;" type_identifier (pointer_declarator "*puStack_60" * identifier) ;) (declaration "uint *puStack_5c;" type_identifier (pointer_declarator "*puStack_5c" * identifier) ;) (declaration "undefined4 uStack_58;" type_identifier identifier ;) (declaration "code *pcStack_54;" type_identifier (pointer_declarator "*pcStack_54" * identifier) ;) (declaration "uint **local_40;" type_identifier (pointer_declarator "**local_40" * (pointer_declarator "*local_40" * identifier)) ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "uint *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "undefined4 *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "local_2c = *(undefined4 **)PTR___stack_chk_guard_0018fecc;" (assignment_expression "local_2c = *(undefined4 **)PTR___stack_chk_guard_0018fecc" identifier = (pointer_expression "*(undefined4 **)PTR___stack_chk_guard_0018fecc" * (cast_expression "(undefined4 **)PTR___stack_chk_guard_0018fecc" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (for_statement "for (puVar9 = param_2; (bVar8 = *(byte *)puVar9, bVar8 == 0xa2 || (bVar8 == 0xa9));\n      puVar9 = (uint *)puVar9[3]) {\n  }" for ( (assignment_expression "puVar9 = param_2" identifier = identifier) ; (parenthesized_expression "(bVar8 = *(byte *)puVar9, bVar8 == 0xa2 || (bVar8 == 0xa9))" ( (comma_expression "bVar8 = *(byte *)puVar9, bVar8 == 0xa2 || (bVar8 == 0xa9)" (assignment_expression "bVar8 = *(byte *)puVar9" identifier = (pointer_expression "*(byte *)puVar9" * (cast_expression "(byte *)puVar9" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) , (binary_expression "bVar8 == 0xa2 || (bVar8 == 0xa9)" (binary_expression "bVar8 == 0xa2" identifier == number_literal) || (parenthesized_expression "(bVar8 == 0xa9)" ( (binary_expression "bVar8 == 0xa9" identifier == number_literal) )))) )) ; (assignment_expression "puVar9 = (uint *)puVar9[3]" identifier = (cast_expression "(uint *)puVar9[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[3]" identifier [ number_literal ]))) ) (compound_statement "{\n  }" { })) (if_statement "if (bVar8 == 0xa4) {\n    bVar8 = *(byte *)(puVar9 + 10);\n  }" if (parenthesized_expression "(bVar8 == 0xa4)" ( (binary_expression "bVar8 == 0xa4" identifier == number_literal) )) (compound_statement "{\n    bVar8 = *(byte *)(puVar9 + 10);\n  }" { (expression_statement "bVar8 = *(byte *)(puVar9 + 10);" (assignment_expression "bVar8 = *(byte *)(puVar9 + 10)" identifier = (pointer_expression "*(byte *)(puVar9 + 10)" * (cast_expression "(byte *)(puVar9 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 10)" ( (binary_expression "puVar9 + 10" identifier + number_literal) ))))) ;) })) (expression_statement "cVar12 = (char)param_4;" (assignment_expression "cVar12 = (char)param_4" identifier = (cast_expression "(char)param_4" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "puVar5 = param_3;" (assignment_expression "puVar5 = param_3" identifier = identifier) ;) (if_statement "if (bVar8 == 0x24) {\n    uVar10 = (*(code *)(PTR_LAB_0018fbbc + 0x7c60))(puVar9[2],0);\n    param_2 = (uint *)puVar9[3];\n    local_3c = param_6;\n    local_40 = param_5;\n    puVar6 = (uint *)(uVar10 & 0xff);\n    uVar7 = FUN_000a14dc(param_1);\n    if (*param_5 != (uint *)0x0) {\n      FUN_0008f194(*param_5,(uint *)(uVar10 & 0xff),1);\n      puVar5 = (uint *)0x1;\n      param_2 = (uint *)(int)cVar12;\n      FUN_0008efcc(*param_5);\n    }\n  }\n  else {\n    puVar6 = param_4;\n    if (bVar8 == 0xa1) {\n      puVar4 = (uint *)puVar9[3];\n      bVar8 = *(byte *)puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) {\n        puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80);\n        iVar15 = -1;\n        goto LAB_000a1594;\n      }\nLAB_000a1688:\n      param_2 = (uint *)puVar9[3];\n      local_3c = param_6;\n      local_40 = &local_30;\n      iVar15 = FUN_000a14dc(param_1);\n      if (iVar15 == 0) {\n        uVar7 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n          if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (uint *)(int)cVar12;\n          puVar5 = param_3;\n          FUN_0008efcc(local_30);\n        }\n      }\n      else {\n        uVar7 = 0;\n      }\n      goto LAB_000a180c;\n    }\n    if (bVar8 == 0x6a) {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\nLAB_000a1740:\n      local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n      if (local_30 == (uint *)0x0) {\nLAB_000a1a8c:\n        (*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);\n        param_2 = (uint *)0x0;\n        (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1);\n        (*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30);\n        uVar7 = 7;\n        goto LAB_000a1814;\n      }\n      if ((puVar9[1] & 0x400) == 0) {\n        puVar6 = (uint *)puVar9[2];\n        iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c);\n        puVar5 = puVar13;\n        if (iVar15 == 0) goto LAB_000a1a8c;\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x1;\n        FUN_00081e3c(local_30,0xffffffff,iVar15);\n      }\n      else {\n        puVar6 = (uint *)(puVar9[2] * iVar15);\n        (*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);\n      }\n      if (((bVar8 & 0xfd) == 0x8d) && (puVar5 = (uint *)0x1, param_4 == (uint *)0x41)) {\n        FUN_0008efcc(local_30,0x43);\n      }\n      else {\n        puVar5 = (uint *)0x1;\n        FUN_0008efcc(local_30,(int)cVar12);\n      }\n      if ((*(ushort *)(local_30 + 2) & 0xc) != 0) {\n        *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n      }\n      param_2 = param_3;\n      if (param_3 == (uint *)0x1) {\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = FUN_00084bc0();\n      }\n    }\n    else {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\n      puVar4 = puVar9;\nLAB_000a1594:\n      puVar9 = puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) goto LAB_000a1740;\n      if (bVar8 == 0xa1) goto LAB_000a1688;\n      if (bVar8 == 0x6e) {\n        local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }\n        goto LAB_000a1a8c;\n      }\n      if (bVar8 == 0x8e) {\n        puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        puVar5 = param_3;\n        param_3 = puVar13;\n        local_30 = puVar13;\n        if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;\n        uVar7 = puVar4[2];\n        iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);\n        puVar9 = (uint *)(iVar15 + -1);\n        param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x0;\n        puVar5 = (uint *)((int)puVar9 / 2);\n        FUN_00081ac0(puVar13);\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = 0;\n        if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }\n      }\n    }\nLAB_000a180c:\n    *param_5 = local_30;\n  }" if (parenthesized_expression "(bVar8 == 0x24)" ( (binary_expression "bVar8 == 0x24" identifier == number_literal) )) (compound_statement "{\n    uVar10 = (*(code *)(PTR_LAB_0018fbbc + 0x7c60))(puVar9[2],0);\n    param_2 = (uint *)puVar9[3];\n    local_3c = param_6;\n    local_40 = param_5;\n    puVar6 = (uint *)(uVar10 & 0xff);\n    uVar7 = FUN_000a14dc(param_1);\n    if (*param_5 != (uint *)0x0) {\n      FUN_0008f194(*param_5,(uint *)(uVar10 & 0xff),1);\n      puVar5 = (uint *)0x1;\n      param_2 = (uint *)(int)cVar12;\n      FUN_0008efcc(*param_5);\n    }\n  }" { (expression_statement "uVar10 = (*(code *)(PTR_LAB_0018fbbc + 0x7c60))(puVar9[2],0);" (assignment_expression "uVar10 = (*(code *)(PTR_LAB_0018fbbc + 0x7c60))(puVar9[2],0)" identifier = (call_expression "(*(code *)(PTR_LAB_0018fbbc + 0x7c60))(puVar9[2],0)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbbc + 0x7c60))" ( (pointer_expression "*(code *)(PTR_LAB_0018fbbc + 0x7c60)" * (cast_expression "(code *)(PTR_LAB_0018fbbc + 0x7c60)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbbc + 0x7c60)" ( (binary_expression "PTR_LAB_0018fbbc + 0x7c60" identifier + number_literal) )))) )) (argument_list "(puVar9[2],0)" ( (subscript_expression "puVar9[2]" identifier [ number_literal ]) , number_literal )))) ;) (expression_statement "param_2 = (uint *)puVar9[3];" (assignment_expression "param_2 = (uint *)puVar9[3]" identifier = (cast_expression "(uint *)puVar9[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[3]" identifier [ number_literal ]))) ;) (expression_statement "local_3c = param_6;" (assignment_expression "local_3c = param_6" identifier = identifier) ;) (expression_statement "local_40 = param_5;" (assignment_expression "local_40 = param_5" identifier = identifier) ;) (expression_statement "puVar6 = (uint *)(uVar10 & 0xff);" (assignment_expression "puVar6 = (uint *)(uVar10 & 0xff)" identifier = (cast_expression "(uint *)(uVar10 & 0xff)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar10 & 0xff)" ( (binary_expression "uVar10 & 0xff" identifier & number_literal) )))) ;) (expression_statement "uVar7 = FUN_000a14dc(param_1);" (assignment_expression "uVar7 = FUN_000a14dc(param_1)" identifier = (call_expression "FUN_000a14dc(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (*param_5 != (uint *)0x0) {\n      FUN_0008f194(*param_5,(uint *)(uVar10 & 0xff),1);\n      puVar5 = (uint *)0x1;\n      param_2 = (uint *)(int)cVar12;\n      FUN_0008efcc(*param_5);\n    }" if (parenthesized_expression "(*param_5 != (uint *)0x0)" ( (binary_expression "*param_5 != (uint *)0x0" (pointer_expression "*param_5" * identifier) != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_0008f194(*param_5,(uint *)(uVar10 & 0xff),1);\n      puVar5 = (uint *)0x1;\n      param_2 = (uint *)(int)cVar12;\n      FUN_0008efcc(*param_5);\n    }" { (expression_statement "FUN_0008f194(*param_5,(uint *)(uVar10 & 0xff),1);" (call_expression "FUN_0008f194(*param_5,(uint *)(uVar10 & 0xff),1)" identifier (argument_list "(*param_5,(uint *)(uVar10 & 0xff),1)" ( (pointer_expression "*param_5" * identifier) , (cast_expression "(uint *)(uVar10 & 0xff)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar10 & 0xff)" ( (binary_expression "uVar10 & 0xff" identifier & number_literal) ))) , number_literal ))) ;) (expression_statement "puVar5 = (uint *)0x1;" (assignment_expression "puVar5 = (uint *)0x1" identifier = (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_2 = (uint *)(int)cVar12;" (assignment_expression "param_2 = (uint *)(int)cVar12" identifier = (cast_expression "(uint *)(int)cVar12" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)cVar12" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "FUN_0008efcc(*param_5);" (call_expression "FUN_0008efcc(*param_5)" identifier (argument_list "(*param_5)" ( (pointer_expression "*param_5" * identifier) ))) ;) })) }) (else_clause "else {\n    puVar6 = param_4;\n    if (bVar8 == 0xa1) {\n      puVar4 = (uint *)puVar9[3];\n      bVar8 = *(byte *)puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) {\n        puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80);\n        iVar15 = -1;\n        goto LAB_000a1594;\n      }\nLAB_000a1688:\n      param_2 = (uint *)puVar9[3];\n      local_3c = param_6;\n      local_40 = &local_30;\n      iVar15 = FUN_000a14dc(param_1);\n      if (iVar15 == 0) {\n        uVar7 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n          if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (uint *)(int)cVar12;\n          puVar5 = param_3;\n          FUN_0008efcc(local_30);\n        }\n      }\n      else {\n        uVar7 = 0;\n      }\n      goto LAB_000a180c;\n    }\n    if (bVar8 == 0x6a) {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\nLAB_000a1740:\n      local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n      if (local_30 == (uint *)0x0) {\nLAB_000a1a8c:\n        (*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);\n        param_2 = (uint *)0x0;\n        (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1);\n        (*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30);\n        uVar7 = 7;\n        goto LAB_000a1814;\n      }\n      if ((puVar9[1] & 0x400) == 0) {\n        puVar6 = (uint *)puVar9[2];\n        iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c);\n        puVar5 = puVar13;\n        if (iVar15 == 0) goto LAB_000a1a8c;\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x1;\n        FUN_00081e3c(local_30,0xffffffff,iVar15);\n      }\n      else {\n        puVar6 = (uint *)(puVar9[2] * iVar15);\n        (*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);\n      }\n      if (((bVar8 & 0xfd) == 0x8d) && (puVar5 = (uint *)0x1, param_4 == (uint *)0x41)) {\n        FUN_0008efcc(local_30,0x43);\n      }\n      else {\n        puVar5 = (uint *)0x1;\n        FUN_0008efcc(local_30,(int)cVar12);\n      }\n      if ((*(ushort *)(local_30 + 2) & 0xc) != 0) {\n        *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n      }\n      param_2 = param_3;\n      if (param_3 == (uint *)0x1) {\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = FUN_00084bc0();\n      }\n    }\n    else {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\n      puVar4 = puVar9;\nLAB_000a1594:\n      puVar9 = puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) goto LAB_000a1740;\n      if (bVar8 == 0xa1) goto LAB_000a1688;\n      if (bVar8 == 0x6e) {\n        local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }\n        goto LAB_000a1a8c;\n      }\n      if (bVar8 == 0x8e) {\n        puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        puVar5 = param_3;\n        param_3 = puVar13;\n        local_30 = puVar13;\n        if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;\n        uVar7 = puVar4[2];\n        iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);\n        puVar9 = (uint *)(iVar15 + -1);\n        param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x0;\n        puVar5 = (uint *)((int)puVar9 / 2);\n        FUN_00081ac0(puVar13);\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = 0;\n        if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }\n      }\n    }\nLAB_000a180c:\n    *param_5 = local_30;\n  }" else (compound_statement "{\n    puVar6 = param_4;\n    if (bVar8 == 0xa1) {\n      puVar4 = (uint *)puVar9[3];\n      bVar8 = *(byte *)puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) {\n        puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80);\n        iVar15 = -1;\n        goto LAB_000a1594;\n      }\nLAB_000a1688:\n      param_2 = (uint *)puVar9[3];\n      local_3c = param_6;\n      local_40 = &local_30;\n      iVar15 = FUN_000a14dc(param_1);\n      if (iVar15 == 0) {\n        uVar7 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n          if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (uint *)(int)cVar12;\n          puVar5 = param_3;\n          FUN_0008efcc(local_30);\n        }\n      }\n      else {\n        uVar7 = 0;\n      }\n      goto LAB_000a180c;\n    }\n    if (bVar8 == 0x6a) {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\nLAB_000a1740:\n      local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n      if (local_30 == (uint *)0x0) {\nLAB_000a1a8c:\n        (*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);\n        param_2 = (uint *)0x0;\n        (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1);\n        (*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30);\n        uVar7 = 7;\n        goto LAB_000a1814;\n      }\n      if ((puVar9[1] & 0x400) == 0) {\n        puVar6 = (uint *)puVar9[2];\n        iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c);\n        puVar5 = puVar13;\n        if (iVar15 == 0) goto LAB_000a1a8c;\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x1;\n        FUN_00081e3c(local_30,0xffffffff,iVar15);\n      }\n      else {\n        puVar6 = (uint *)(puVar9[2] * iVar15);\n        (*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);\n      }\n      if (((bVar8 & 0xfd) == 0x8d) && (puVar5 = (uint *)0x1, param_4 == (uint *)0x41)) {\n        FUN_0008efcc(local_30,0x43);\n      }\n      else {\n        puVar5 = (uint *)0x1;\n        FUN_0008efcc(local_30,(int)cVar12);\n      }\n      if ((*(ushort *)(local_30 + 2) & 0xc) != 0) {\n        *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n      }\n      param_2 = param_3;\n      if (param_3 == (uint *)0x1) {\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = FUN_00084bc0();\n      }\n    }\n    else {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\n      puVar4 = puVar9;\nLAB_000a1594:\n      puVar9 = puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) goto LAB_000a1740;\n      if (bVar8 == 0xa1) goto LAB_000a1688;\n      if (bVar8 == 0x6e) {\n        local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }\n        goto LAB_000a1a8c;\n      }\n      if (bVar8 == 0x8e) {\n        puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        puVar5 = param_3;\n        param_3 = puVar13;\n        local_30 = puVar13;\n        if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;\n        uVar7 = puVar4[2];\n        iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);\n        puVar9 = (uint *)(iVar15 + -1);\n        param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x0;\n        puVar5 = (uint *)((int)puVar9 / 2);\n        FUN_00081ac0(puVar13);\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = 0;\n        if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }\n      }\n    }\nLAB_000a180c:\n    *param_5 = local_30;\n  }" { (expression_statement "puVar6 = param_4;" (assignment_expression "puVar6 = param_4" identifier = identifier) ;) (if_statement "if (bVar8 == 0xa1) {\n      puVar4 = (uint *)puVar9[3];\n      bVar8 = *(byte *)puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) {\n        puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80);\n        iVar15 = -1;\n        goto LAB_000a1594;\n      }\nLAB_000a1688:\n      param_2 = (uint *)puVar9[3];\n      local_3c = param_6;\n      local_40 = &local_30;\n      iVar15 = FUN_000a14dc(param_1);\n      if (iVar15 == 0) {\n        uVar7 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n          if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (uint *)(int)cVar12;\n          puVar5 = param_3;\n          FUN_0008efcc(local_30);\n        }\n      }\n      else {\n        uVar7 = 0;\n      }\n      goto LAB_000a180c;\n    }" if (parenthesized_expression "(bVar8 == 0xa1)" ( (binary_expression "bVar8 == 0xa1" identifier == number_literal) )) (compound_statement "{\n      puVar4 = (uint *)puVar9[3];\n      bVar8 = *(byte *)puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) {\n        puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80);\n        iVar15 = -1;\n        goto LAB_000a1594;\n      }\nLAB_000a1688:\n      param_2 = (uint *)puVar9[3];\n      local_3c = param_6;\n      local_40 = &local_30;\n      iVar15 = FUN_000a14dc(param_1);\n      if (iVar15 == 0) {\n        uVar7 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n          if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (uint *)(int)cVar12;\n          puVar5 = param_3;\n          FUN_0008efcc(local_30);\n        }\n      }\n      else {\n        uVar7 = 0;\n      }\n      goto LAB_000a180c;\n    }" { (expression_statement "puVar4 = (uint *)puVar9[3];" (assignment_expression "puVar4 = (uint *)puVar9[3]" identifier = (cast_expression "(uint *)puVar9[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[3]" identifier [ number_literal ]))) ;) (expression_statement "bVar8 = *(byte *)puVar4;" (assignment_expression "bVar8 = *(byte *)puVar4" identifier = (pointer_expression "*(byte *)puVar4" * (cast_expression "(byte *)puVar4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if ((bVar8 & 0xfd) == 0x8d) {\n        puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80);\n        iVar15 = -1;\n        goto LAB_000a1594;\n      }" if (parenthesized_expression "((bVar8 & 0xfd) == 0x8d)" ( (binary_expression "(bVar8 & 0xfd) == 0x8d" (parenthesized_expression "(bVar8 & 0xfd)" ( (binary_expression "bVar8 & 0xfd" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80);\n        iVar15 = -1;\n        goto LAB_000a1594;\n      }" { (expression_statement "puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80);" (assignment_expression "puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80)" identifier = (cast_expression "(uint *)(PTR_LAB_0018f958 + 0xd80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018f958 + 0xd80)" ( (binary_expression "PTR_LAB_0018f958 + 0xd80" identifier + number_literal) )))) ;) (expression_statement "iVar15 = -1;" (assignment_expression "iVar15 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_000a1594;" goto statement_identifier ;) })) (labeled_statement "LAB_000a1688:\n      param_2 = (uint *)puVar9[3];" statement_identifier : (expression_statement "param_2 = (uint *)puVar9[3];" (assignment_expression "param_2 = (uint *)puVar9[3]" identifier = (cast_expression "(uint *)puVar9[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[3]" identifier [ number_literal ]))) ;)) (expression_statement "local_3c = param_6;" (assignment_expression "local_3c = param_6" identifier = identifier) ;) (expression_statement "local_40 = &local_30;" (assignment_expression "local_40 = &local_30" identifier = (pointer_expression "&local_30" & identifier)) ;) (expression_statement "iVar15 = FUN_000a14dc(param_1);" (assignment_expression "iVar15 = FUN_000a14dc(param_1)" identifier = (call_expression "FUN_000a14dc(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar15 == 0) {\n        uVar7 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n          if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (uint *)(int)cVar12;\n          puVar5 = param_3;\n          FUN_0008efcc(local_30);\n        }\n      }\n      else {\n        uVar7 = 0;\n      }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar7 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n          if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (uint *)(int)cVar12;\n          puVar5 = param_3;\n          FUN_0008efcc(local_30);\n        }\n      }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (if_statement "if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n          if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (uint *)(int)cVar12;\n          puVar5 = param_3;\n          FUN_0008efcc(local_30);\n        }" if (parenthesized_expression "(local_30 != (uint *)0x0)" ( (binary_expression "local_30 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n          if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (uint *)(int)cVar12;\n          puVar5 = param_3;\n          FUN_0008efcc(local_30);\n        }" { (expression_statement "(*(code *)(PTR_LAB_0018fbd0 + 0x6988))();" (call_expression "(*(code *)(PTR_LAB_0018fbd0 + 0x6988))()" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbd0 + 0x6988))" ( (pointer_expression "*(code *)(PTR_LAB_0018fbd0 + 0x6988)" * (cast_expression "(code *)(PTR_LAB_0018fbd0 + 0x6988)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbd0 + 0x6988)" ( (binary_expression "PTR_LAB_0018fbd0 + 0x6988" identifier + number_literal) )))) )) (argument_list "()" ( ))) ;) (if_statement "if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }" if (parenthesized_expression "((local_30[2] & 0x80000) == 0)" ( (binary_expression "(local_30[2] & 0x80000) == 0" (parenthesized_expression "(local_30[2] & 0x80000)" ( (binary_expression "local_30[2] & 0x80000" (subscript_expression "local_30[2]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }" { (if_statement "if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }" if (parenthesized_expression "((*local_30 == 0x80000000) && (local_30[1] == 0))" ( (binary_expression "(*local_30 == 0x80000000) && (local_30[1] == 0)" (parenthesized_expression "(*local_30 == 0x80000000)" ( (binary_expression "*local_30 == 0x80000000" (pointer_expression "*local_30" * identifier) == number_literal) )) && (parenthesized_expression "(local_30[1] == 0)" ( (binary_expression "local_30[1] == 0" (subscript_expression "local_30[1]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }" { (expression_statement "*(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);" (assignment_expression "*(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8)" (pointer_expression "*(undefined8 *)local_30" * (cast_expression "(undefined8 *)local_30" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8)" * (cast_expression "(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0018fbb0 + -0x3fb8)" ( (binary_expression "PTR_DAT_0018fbb0 + -0x3fb8" identifier + number_literal) ))))) ;) (expression_statement "*(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;" (assignment_expression "*(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8" (pointer_expression "*(ushort *)(local_30 + 2)" * (cast_expression "(ushort *)(local_30 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 2)" ( (binary_expression "local_30 + 2" identifier + number_literal) )))) = (binary_expression "*(ushort *)(local_30 + 2) & 0x3e00 | 8" (binary_expression "*(ushort *)(local_30 + 2) & 0x3e00" (pointer_expression "*(ushort *)(local_30 + 2)" * (cast_expression "(ushort *)(local_30 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 2)" ( (binary_expression "local_30 + 2" identifier + number_literal) )))) & number_literal) | number_literal)) ;) }) (else_clause "else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }" else (compound_statement "{\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }" { (expression_statement "uVar10 = -local_30[1];" (assignment_expression "uVar10 = -local_30[1]" identifier = (unary_expression "-local_30[1]" - (subscript_expression "local_30[1]" identifier [ number_literal ]))) ;) (expression_statement "*local_30 = -(uint)(uVar10 != 0) - *local_30;" (assignment_expression "*local_30 = -(uint)(uVar10 != 0) - *local_30" (pointer_expression "*local_30" * identifier) = (binary_expression "-(uint)(uVar10 != 0) - *local_30" (unary_expression "-(uint)(uVar10 != 0)" - (call_expression "(uint)(uVar10 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )))) - (pointer_expression "*local_30" * identifier))) ;) (expression_statement "local_30[1] = uVar10;" (assignment_expression "local_30[1] = uVar10" (subscript_expression "local_30[1]" identifier [ number_literal ]) = identifier) ;) }))) }) (else_clause "else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }" else (compound_statement "{\n            *local_30 = *local_30 ^ 0x80000000;\n          }" { (expression_statement "*local_30 = *local_30 ^ 0x80000000;" (assignment_expression "*local_30 = *local_30 ^ 0x80000000" (pointer_expression "*local_30" * identifier) = (binary_expression "*local_30 ^ 0x80000000" (pointer_expression "*local_30" * identifier) ^ number_literal)) ;) }))) (expression_statement "param_2 = (uint *)(int)cVar12;" (assignment_expression "param_2 = (uint *)(int)cVar12" identifier = (cast_expression "(uint *)(int)cVar12" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)cVar12" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar5 = param_3;" (assignment_expression "puVar5 = param_3" identifier = identifier) ;) (expression_statement "FUN_0008efcc(local_30);" (call_expression "FUN_0008efcc(local_30)" identifier (argument_list "(local_30)" ( identifier ))) ;) })) }) (else_clause "else {\n        uVar7 = 0;\n      }" else (compound_statement "{\n        uVar7 = 0;\n      }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) }))) (goto_statement "goto LAB_000a180c;" goto statement_identifier ;) })) (if_statement "if (bVar8 == 0x6a) {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\nLAB_000a1740:\n      local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n      if (local_30 == (uint *)0x0) {\nLAB_000a1a8c:\n        (*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);\n        param_2 = (uint *)0x0;\n        (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1);\n        (*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30);\n        uVar7 = 7;\n        goto LAB_000a1814;\n      }\n      if ((puVar9[1] & 0x400) == 0) {\n        puVar6 = (uint *)puVar9[2];\n        iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c);\n        puVar5 = puVar13;\n        if (iVar15 == 0) goto LAB_000a1a8c;\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x1;\n        FUN_00081e3c(local_30,0xffffffff,iVar15);\n      }\n      else {\n        puVar6 = (uint *)(puVar9[2] * iVar15);\n        (*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);\n      }\n      if (((bVar8 & 0xfd) == 0x8d) && (puVar5 = (uint *)0x1, param_4 == (uint *)0x41)) {\n        FUN_0008efcc(local_30,0x43);\n      }\n      else {\n        puVar5 = (uint *)0x1;\n        FUN_0008efcc(local_30,(int)cVar12);\n      }\n      if ((*(ushort *)(local_30 + 2) & 0xc) != 0) {\n        *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n      }\n      param_2 = param_3;\n      if (param_3 == (uint *)0x1) {\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = FUN_00084bc0();\n      }\n    }\n    else {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\n      puVar4 = puVar9;\nLAB_000a1594:\n      puVar9 = puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) goto LAB_000a1740;\n      if (bVar8 == 0xa1) goto LAB_000a1688;\n      if (bVar8 == 0x6e) {\n        local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }\n        goto LAB_000a1a8c;\n      }\n      if (bVar8 == 0x8e) {\n        puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        puVar5 = param_3;\n        param_3 = puVar13;\n        local_30 = puVar13;\n        if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;\n        uVar7 = puVar4[2];\n        iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);\n        puVar9 = (uint *)(iVar15 + -1);\n        param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x0;\n        puVar5 = (uint *)((int)puVar9 / 2);\n        FUN_00081ac0(puVar13);\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = 0;\n        if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }\n      }\n    }" if (parenthesized_expression "(bVar8 == 0x6a)" ( (binary_expression "bVar8 == 0x6a" identifier == number_literal) )) (compound_statement "{\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\nLAB_000a1740:\n      local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n      if (local_30 == (uint *)0x0) {\nLAB_000a1a8c:\n        (*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);\n        param_2 = (uint *)0x0;\n        (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1);\n        (*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30);\n        uVar7 = 7;\n        goto LAB_000a1814;\n      }\n      if ((puVar9[1] & 0x400) == 0) {\n        puVar6 = (uint *)puVar9[2];\n        iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c);\n        puVar5 = puVar13;\n        if (iVar15 == 0) goto LAB_000a1a8c;\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x1;\n        FUN_00081e3c(local_30,0xffffffff,iVar15);\n      }\n      else {\n        puVar6 = (uint *)(puVar9[2] * iVar15);\n        (*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);\n      }\n      if (((bVar8 & 0xfd) == 0x8d) && (puVar5 = (uint *)0x1, param_4 == (uint *)0x41)) {\n        FUN_0008efcc(local_30,0x43);\n      }\n      else {\n        puVar5 = (uint *)0x1;\n        FUN_0008efcc(local_30,(int)cVar12);\n      }\n      if ((*(ushort *)(local_30 + 2) & 0xc) != 0) {\n        *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n      }\n      param_2 = param_3;\n      if (param_3 == (uint *)0x1) {\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = FUN_00084bc0();\n      }\n    }" { (expression_statement "puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);" (assignment_expression "puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20)" identifier = (cast_expression "(uint *)(PTR_LAB_0018f958 + 0x2d20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018f958 + 0x2d20)" ( (binary_expression "PTR_LAB_0018f958 + 0x2d20" identifier + number_literal) )))) ;) (expression_statement "iVar15 = 1;" (assignment_expression "iVar15 = 1" identifier = number_literal) ;) (labeled_statement "LAB_000a1740:\n      local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);" statement_identifier : (expression_statement "local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);" (assignment_expression "local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1)" identifier = (cast_expression "(uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbbc + 0x65c8))" ( (pointer_expression "*(code *)(PTR_LAB_0018fbbc + 0x65c8)" * (cast_expression "(code *)(PTR_LAB_0018fbbc + 0x65c8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbbc + 0x65c8)" ( (binary_expression "PTR_LAB_0018fbbc + 0x65c8" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))))) ;)) (if_statement "if (local_30 == (uint *)0x0) {\nLAB_000a1a8c:\n        (*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);\n        param_2 = (uint *)0x0;\n        (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1);\n        (*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30);\n        uVar7 = 7;\n        goto LAB_000a1814;\n      }" if (parenthesized_expression "(local_30 == (uint *)0x0)" ( (binary_expression "local_30 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000a1a8c:\n        (*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);\n        param_2 = (uint *)0x0;\n        (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1);\n        (*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30);\n        uVar7 = 7;\n        goto LAB_000a1814;\n      }" { (labeled_statement "LAB_000a1a8c:\n        (*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);" statement_identifier : (expression_statement "(*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);" (call_expression "(*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fb58 + 0x1354))" ( (pointer_expression "*(code *)(PTR_LAB_0018fb58 + 0x1354)" * (cast_expression "(code *)(PTR_LAB_0018fb58 + 0x1354)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fb58 + 0x1354)" ( (binary_expression "PTR_LAB_0018fb58 + 0x1354" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))) ;)) (expression_statement "param_2 = (uint *)0x0;" (assignment_expression "param_2 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1);" (call_expression "(*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbd0 + 0x7878))" ( (pointer_expression "*(code *)(PTR_LAB_0018fbd0 + 0x7878)" * (cast_expression "(code *)(PTR_LAB_0018fbd0 + 0x7878)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbd0 + 0x7878)" ( (binary_expression "PTR_LAB_0018fbd0 + 0x7878" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "(*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30);" (call_expression "(*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fc04 + -0x5984))" ( (pointer_expression "*(code *)(PTR_LAB_0018fc04 + -0x5984)" * (cast_expression "(code *)(PTR_LAB_0018fc04 + -0x5984)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fc04 + -0x5984)" ( (binary_expression "PTR_LAB_0018fc04 + -0x5984" identifier + number_literal) )))) )) (argument_list "(local_30)" ( identifier ))) ;) (expression_statement "uVar7 = 7;" (assignment_expression "uVar7 = 7" identifier = number_literal) ;) (goto_statement "goto LAB_000a1814;" goto statement_identifier ;) })) (if_statement "if ((puVar9[1] & 0x400) == 0) {\n        puVar6 = (uint *)puVar9[2];\n        iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c);\n        puVar5 = puVar13;\n        if (iVar15 == 0) goto LAB_000a1a8c;\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x1;\n        FUN_00081e3c(local_30,0xffffffff,iVar15);\n      }\n      else {\n        puVar6 = (uint *)(puVar9[2] * iVar15);\n        (*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);\n      }" if (parenthesized_expression "((puVar9[1] & 0x400) == 0)" ( (binary_expression "(puVar9[1] & 0x400) == 0" (parenthesized_expression "(puVar9[1] & 0x400)" ( (binary_expression "puVar9[1] & 0x400" (subscript_expression "puVar9[1]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n        puVar6 = (uint *)puVar9[2];\n        iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c);\n        puVar5 = puVar13;\n        if (iVar15 == 0) goto LAB_000a1a8c;\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x1;\n        FUN_00081e3c(local_30,0xffffffff,iVar15);\n      }" { (expression_statement "puVar6 = (uint *)puVar9[2];" (assignment_expression "puVar6 = (uint *)puVar9[2]" identifier = (cast_expression "(uint *)puVar9[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[2]" identifier [ number_literal ]))) ;) (expression_statement "iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c);" (assignment_expression "iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c)" identifier = (call_expression "FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c)" identifier (argument_list "(param_1,PTR_LAB_0018f958 + 0x172c)" ( identifier , (binary_expression "PTR_LAB_0018f958 + 0x172c" identifier + number_literal) )))) ;) (expression_statement "puVar5 = puVar13;" (assignment_expression "puVar5 = puVar13" identifier = identifier) ;) (if_statement "if (iVar15 == 0) goto LAB_000a1a8c;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000a1a8c;" goto statement_identifier ;)) (expression_statement "local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);" (assignment_expression "local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030)" identifier = (cast_expression "(uint **)(PTR_LAB_0018fb58 + 0x1030)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_LAB_0018fb58 + 0x1030)" ( (binary_expression "PTR_LAB_0018fb58 + 0x1030" identifier + number_literal) )))) ;) (expression_statement "puVar6 = (uint *)0x1;" (assignment_expression "puVar6 = (uint *)0x1" identifier = (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_00081e3c(local_30,0xffffffff,iVar15);" (call_expression "FUN_00081e3c(local_30,0xffffffff,iVar15)" identifier (argument_list "(local_30,0xffffffff,iVar15)" ( identifier , number_literal , identifier ))) ;) }) (else_clause "else {\n        puVar6 = (uint *)(puVar9[2] * iVar15);\n        (*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);\n      }" else (compound_statement "{\n        puVar6 = (uint *)(puVar9[2] * iVar15);\n        (*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);\n      }" { (expression_statement "puVar6 = (uint *)(puVar9[2] * iVar15);" (assignment_expression "puVar6 = (uint *)(puVar9[2] * iVar15)" identifier = (cast_expression "(uint *)(puVar9[2] * iVar15)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9[2] * iVar15)" ( (binary_expression "puVar9[2] * iVar15" (subscript_expression "puVar9[2]" identifier [ number_literal ]) * identifier) )))) ;) (expression_statement "(*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);" (call_expression "(*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fc04 + -0x6694))" ( (pointer_expression "*(code *)(PTR_LAB_0018fc04 + -0x6694)" * (cast_expression "(code *)(PTR_LAB_0018fc04 + -0x6694)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fc04 + -0x6694)" ( (binary_expression "PTR_LAB_0018fc04 + -0x6694" identifier + number_literal) )))) )) (argument_list "(local_30)" ( identifier ))) ;) }))) (if_statement "if (((bVar8 & 0xfd) == 0x8d) && (puVar5 = (uint *)0x1, param_4 == (uint *)0x41)) {\n        FUN_0008efcc(local_30,0x43);\n      }\n      else {\n        puVar5 = (uint *)0x1;\n        FUN_0008efcc(local_30,(int)cVar12);\n      }" if (parenthesized_expression "(((bVar8 & 0xfd) == 0x8d) && (puVar5 = (uint *)0x1, param_4 == (uint *)0x41))" ( (binary_expression "((bVar8 & 0xfd) == 0x8d) && (puVar5 = (uint *)0x1, param_4 == (uint *)0x41)" (parenthesized_expression "((bVar8 & 0xfd) == 0x8d)" ( (binary_expression "(bVar8 & 0xfd) == 0x8d" (parenthesized_expression "(bVar8 & 0xfd)" ( (binary_expression "bVar8 & 0xfd" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(puVar5 = (uint *)0x1, param_4 == (uint *)0x41)" ( (comma_expression "puVar5 = (uint *)0x1, param_4 == (uint *)0x41" (assignment_expression "puVar5 = (uint *)0x1" identifier = (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) , (binary_expression "param_4 == (uint *)0x41" identifier == (cast_expression "(uint *)0x41" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n        FUN_0008efcc(local_30,0x43);\n      }" { (expression_statement "FUN_0008efcc(local_30,0x43);" (call_expression "FUN_0008efcc(local_30,0x43)" identifier (argument_list "(local_30,0x43)" ( identifier , number_literal ))) ;) }) (else_clause "else {\n        puVar5 = (uint *)0x1;\n        FUN_0008efcc(local_30,(int)cVar12);\n      }" else (compound_statement "{\n        puVar5 = (uint *)0x1;\n        FUN_0008efcc(local_30,(int)cVar12);\n      }" { (expression_statement "puVar5 = (uint *)0x1;" (assignment_expression "puVar5 = (uint *)0x1" identifier = (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0008efcc(local_30,(int)cVar12);" (call_expression "FUN_0008efcc(local_30,(int)cVar12)" identifier (argument_list "(local_30,(int)cVar12)" ( identifier , (cast_expression "(int)cVar12" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) }))) (if_statement "if ((*(ushort *)(local_30 + 2) & 0xc) != 0) {\n        *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n      }" if (parenthesized_expression "((*(ushort *)(local_30 + 2) & 0xc) != 0)" ( (binary_expression "(*(ushort *)(local_30 + 2) & 0xc) != 0" (parenthesized_expression "(*(ushort *)(local_30 + 2) & 0xc)" ( (binary_expression "*(ushort *)(local_30 + 2) & 0xc" (pointer_expression "*(ushort *)(local_30 + 2)" * (cast_expression "(ushort *)(local_30 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 2)" ( (binary_expression "local_30 + 2" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n      }" { (expression_statement "*(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;" (assignment_expression "*(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd" (pointer_expression "*(ushort *)(local_30 + 2)" * (cast_expression "(ushort *)(local_30 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 2)" ( (binary_expression "local_30 + 2" identifier + number_literal) )))) = (binary_expression "*(ushort *)(local_30 + 2) & 0xfffd" (pointer_expression "*(ushort *)(local_30 + 2)" * (cast_expression "(ushort *)(local_30 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 2)" ( (binary_expression "local_30 + 2" identifier + number_literal) )))) & number_literal)) ;) })) (expression_statement "param_2 = param_3;" (assignment_expression "param_2 = param_3" identifier = identifier) ;) (if_statement "if (param_3 == (uint *)0x1) {\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = FUN_00084bc0();\n      }" if (parenthesized_expression "(param_3 == (uint *)0x1)" ( (binary_expression "param_3 == (uint *)0x1" identifier == (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar7 = 0;\n      }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        uVar7 = FUN_00084bc0();\n      }" else (compound_statement "{\n        uVar7 = FUN_00084bc0();\n      }" { (expression_statement "uVar7 = FUN_00084bc0();" (assignment_expression "uVar7 = FUN_00084bc0()" identifier = (call_expression "FUN_00084bc0()" identifier (argument_list "()" ( )))) ;) }))) }) (else_clause "else {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\n      puVar4 = puVar9;\nLAB_000a1594:\n      puVar9 = puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) goto LAB_000a1740;\n      if (bVar8 == 0xa1) goto LAB_000a1688;\n      if (bVar8 == 0x6e) {\n        local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }\n        goto LAB_000a1a8c;\n      }\n      if (bVar8 == 0x8e) {\n        puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        puVar5 = param_3;\n        param_3 = puVar13;\n        local_30 = puVar13;\n        if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;\n        uVar7 = puVar4[2];\n        iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);\n        puVar9 = (uint *)(iVar15 + -1);\n        param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x0;\n        puVar5 = (uint *)((int)puVar9 / 2);\n        FUN_00081ac0(puVar13);\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = 0;\n        if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }\n      }\n    }" else (compound_statement "{\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\n      puVar4 = puVar9;\nLAB_000a1594:\n      puVar9 = puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) goto LAB_000a1740;\n      if (bVar8 == 0xa1) goto LAB_000a1688;\n      if (bVar8 == 0x6e) {\n        local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }\n        goto LAB_000a1a8c;\n      }\n      if (bVar8 == 0x8e) {\n        puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        puVar5 = param_3;\n        param_3 = puVar13;\n        local_30 = puVar13;\n        if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;\n        uVar7 = puVar4[2];\n        iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);\n        puVar9 = (uint *)(iVar15 + -1);\n        param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x0;\n        puVar5 = (uint *)((int)puVar9 / 2);\n        FUN_00081ac0(puVar13);\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = 0;\n        if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }\n      }\n    }" { (expression_statement "puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);" (assignment_expression "puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20)" identifier = (cast_expression "(uint *)(PTR_LAB_0018f958 + 0x2d20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018f958 + 0x2d20)" ( (binary_expression "PTR_LAB_0018f958 + 0x2d20" identifier + number_literal) )))) ;) (expression_statement "iVar15 = 1;" (assignment_expression "iVar15 = 1" identifier = number_literal) ;) (expression_statement "puVar4 = puVar9;" (assignment_expression "puVar4 = puVar9" identifier = identifier) ;) (labeled_statement "LAB_000a1594:\n      puVar9 = puVar4;" statement_identifier : (expression_statement "puVar9 = puVar4;" (assignment_expression "puVar9 = puVar4" identifier = identifier) ;)) (if_statement "if ((bVar8 & 0xfd) == 0x8d) goto LAB_000a1740;" if (parenthesized_expression "((bVar8 & 0xfd) == 0x8d)" ( (binary_expression "(bVar8 & 0xfd) == 0x8d" (parenthesized_expression "(bVar8 & 0xfd)" ( (binary_expression "bVar8 & 0xfd" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000a1740;" goto statement_identifier ;)) (if_statement "if (bVar8 == 0xa1) goto LAB_000a1688;" if (parenthesized_expression "(bVar8 == 0xa1)" ( (binary_expression "bVar8 == 0xa1" identifier == number_literal) )) (goto_statement "goto LAB_000a1688;" goto statement_identifier ;)) (if_statement "if (bVar8 == 0x6e) {\n        local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }\n        goto LAB_000a1a8c;\n      }" if (parenthesized_expression "(bVar8 == 0x6e)" ( (binary_expression "bVar8 == 0x6e" identifier == number_literal) )) (compound_statement "{\n        local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }\n        goto LAB_000a1a8c;\n      }" { (expression_statement "local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);" (assignment_expression "local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1)" identifier = (cast_expression "(uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbbc + 0x65c8))" ( (pointer_expression "*(code *)(PTR_LAB_0018fbbc + 0x65c8)" * (cast_expression "(code *)(PTR_LAB_0018fbbc + 0x65c8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbbc + 0x65c8)" ( (binary_expression "PTR_LAB_0018fbbc + 0x65c8" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))))) ;) (if_statement "if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }" if (parenthesized_expression "(local_30 != (uint *)0x0)" ( (binary_expression "local_30 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }" { (expression_statement "(*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);" (call_expression "(*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbd0 + 0x6988))" ( (pointer_expression "*(code *)(PTR_LAB_0018fbd0 + 0x6988)" * (cast_expression "(code *)(PTR_LAB_0018fbd0 + 0x6988)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbd0 + 0x6988)" ( (binary_expression "PTR_LAB_0018fbd0 + 0x6988" identifier + number_literal) )))) )) (argument_list "(local_30)" ( identifier ))) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000a180c;" goto statement_identifier ;) })) (goto_statement "goto LAB_000a1a8c;" goto statement_identifier ;) })) (if_statement "if (bVar8 == 0x8e) {\n        puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        puVar5 = param_3;\n        param_3 = puVar13;\n        local_30 = puVar13;\n        if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;\n        uVar7 = puVar4[2];\n        iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);\n        puVar9 = (uint *)(iVar15 + -1);\n        param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x0;\n        puVar5 = (uint *)((int)puVar9 / 2);\n        FUN_00081ac0(puVar13);\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = 0;\n        if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }\n      }" if (parenthesized_expression "(bVar8 == 0x8e)" ( (binary_expression "bVar8 == 0x8e" identifier == number_literal) )) (compound_statement "{\n        puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        puVar5 = param_3;\n        param_3 = puVar13;\n        local_30 = puVar13;\n        if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;\n        uVar7 = puVar4[2];\n        iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);\n        puVar9 = (uint *)(iVar15 + -1);\n        param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x0;\n        puVar5 = (uint *)((int)puVar9 / 2);\n        FUN_00081ac0(puVar13);\n        uVar7 = 0;\n      }" { (expression_statement "puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);" (assignment_expression "puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1)" identifier = (cast_expression "(uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbbc + 0x65c8))" ( (pointer_expression "*(code *)(PTR_LAB_0018fbbc + 0x65c8)" * (cast_expression "(code *)(PTR_LAB_0018fbbc + 0x65c8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbbc + 0x65c8)" ( (binary_expression "PTR_LAB_0018fbbc + 0x65c8" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))))) ;) (expression_statement "puVar5 = param_3;" (assignment_expression "puVar5 = param_3" identifier = identifier) ;) (expression_statement "param_3 = puVar13;" (assignment_expression "param_3 = puVar13" identifier = identifier) ;) (expression_statement "local_30 = puVar13;" (assignment_expression "local_30 = puVar13" identifier = identifier) ;) (if_statement "if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;" if (parenthesized_expression "(puVar13 == (uint *)0x0)" ( (binary_expression "puVar13 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000a1a8c;" goto statement_identifier ;)) (expression_statement "uVar7 = puVar4[2];" (assignment_expression "uVar7 = puVar4[2]" identifier = (subscript_expression "puVar4[2]" identifier [ number_literal ])) ;) (expression_statement "iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);" (assignment_expression "iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2)" identifier = (call_expression "(*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))" ( (pointer_expression "*(code *)(PTR_LAB_0018fbd0 + -0x4bc8)" * (cast_expression "(code *)(PTR_LAB_0018fbd0 + -0x4bc8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbd0 + -0x4bc8)" ( (binary_expression "PTR_LAB_0018fbd0 + -0x4bc8" identifier + number_literal) )))) )) (argument_list "(uVar7 + 2)" ( (binary_expression "uVar7 + 2" identifier + number_literal) )))) ;) (expression_statement "puVar9 = (uint *)(iVar15 + -1);" (assignment_expression "puVar9 = (uint *)(iVar15 + -1)" identifier = (cast_expression "(uint *)(iVar15 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + -1)" ( (binary_expression "iVar15 + -1" identifier + number_literal) )))) ;) (expression_statement "param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);" (assignment_expression "param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9)" identifier = (cast_expression "(uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fb58 + 0x2284))" ( (pointer_expression "*(code *)(PTR_LAB_0018fb58 + 0x2284)" * (cast_expression "(code *)(PTR_LAB_0018fb58 + 0x2284)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fb58 + 0x2284)" ( (binary_expression "PTR_LAB_0018fb58 + 0x2284" identifier + number_literal) )))) )) (argument_list "(param_1,uVar7 + 2,puVar9)" ( identifier , (binary_expression "uVar7 + 2" identifier + number_literal) , identifier ))))) ;) (expression_statement "local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);" (assignment_expression "local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030)" identifier = (cast_expression "(uint **)(PTR_LAB_0018fb58 + 0x1030)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_LAB_0018fb58 + 0x1030)" ( (binary_expression "PTR_LAB_0018fb58 + 0x1030" identifier + number_literal) )))) ;) (expression_statement "puVar6 = (uint *)0x0;" (assignment_expression "puVar6 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar5 = (uint *)((int)puVar9 / 2);" (assignment_expression "puVar5 = (uint *)((int)puVar9 / 2)" identifier = (cast_expression "(uint *)((int)puVar9 / 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 / 2)" ( (binary_expression "(int)puVar9 / 2" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) / number_literal) )))) ;) (expression_statement "FUN_00081ac0(puVar13);" (call_expression "FUN_00081ac0(puVar13)" identifier (argument_list "(puVar13)" ( identifier ))) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        uVar7 = 0;\n        if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }\n      }" else (compound_statement "{\n        uVar7 = 0;\n        if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }\n      }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (if_statement "if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }" if (parenthesized_expression "(bVar8 == 0x9b)" ( (binary_expression "bVar8 == 0x9b" identifier == number_literal) )) (compound_statement "{\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }" { (expression_statement "local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);" (assignment_expression "local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1)" identifier = (cast_expression "(uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbbc + 0x65c8))" ( (pointer_expression "*(code *)(PTR_LAB_0018fbbc + 0x65c8)" * (cast_expression "(code *)(PTR_LAB_0018fbbc + 0x65c8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbbc + 0x65c8)" ( (binary_expression "PTR_LAB_0018fbbc + 0x65c8" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))))) ;) (if_statement "if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }" if (parenthesized_expression "(local_30 == (uint *)0x0)" ( (binary_expression "local_30 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar7 = 0;\n          }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }" else (compound_statement "{\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }" { (expression_statement "*(undefined2 *)(local_30 + 2) = 4;" (assignment_expression "*(undefined2 *)(local_30 + 2) = 4" (pointer_expression "*(undefined2 *)(local_30 + 2)" * (cast_expression "(undefined2 *)(local_30 + 2)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 2)" ( (binary_expression "local_30 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar12 = *(char *)(puVar4[2] + 4);" (assignment_expression "cVar12 = *(char *)(puVar4[2] + 4)" identifier = (pointer_expression "*(char *)(puVar4[2] + 4)" * (cast_expression "(char *)(puVar4[2] + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4[2] + 4)" ( (binary_expression "puVar4[2] + 4" (subscript_expression "puVar4[2]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "*local_30 = 0;" (assignment_expression "*local_30 = 0" (pointer_expression "*local_30" * identifier) = number_literal) ;) (expression_statement "local_30[1] = (uint)(cVar12 == '\0');" (assignment_expression "local_30[1] = (uint)(cVar12 == '\0')" (subscript_expression "local_30[1]" identifier [ number_literal ]) = (call_expression "(uint)(cVar12 == '\0')" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(cVar12 == '\0')" ( (binary_expression "cVar12 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )))) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) }))) })) }))) }))) (labeled_statement "LAB_000a180c:\n    *param_5 = local_30;" statement_identifier : (expression_statement "*param_5 = local_30;" (assignment_expression "*param_5 = local_30" (pointer_expression "*param_5" * identifier) = identifier) ;)) }))) (labeled_statement "LAB_000a1814:\n  if (local_2c == *(undefined4 **)PTR___stack_chk_guard_0018fecc) {\n    return uVar7;\n  }" statement_identifier : (if_statement "if (local_2c == *(undefined4 **)PTR___stack_chk_guard_0018fecc) {\n    return uVar7;\n  }" if (parenthesized_expression "(local_2c == *(undefined4 **)PTR___stack_chk_guard_0018fecc)" ( (binary_expression "local_2c == *(undefined4 **)PTR___stack_chk_guard_0018fecc" identifier == (pointer_expression "*(undefined4 **)PTR___stack_chk_guard_0018fecc" * (cast_expression "(undefined4 **)PTR___stack_chk_guard_0018fecc" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return uVar7;\n  }" { (return_statement "return uVar7;" return identifier ;) }))) (expression_statement "pcVar16 = FUN_000a1aec;" (assignment_expression "pcVar16 = FUN_000a1aec" identifier = identifier) ;) (expression_statement "puVar3 = local_2c;" (assignment_expression "puVar3 = local_2c" identifier = identifier) ;) (expression_statement "puVar14 = PTR___stack_chk_fail_0018fea0;" (assignment_expression "puVar14 = PTR___stack_chk_fail_0018fea0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0018fea0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0018fea0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0018fea0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0018fea0" * (cast_expression "(code *)PTR___stack_chk_fail_0018fea0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uStack_58 = param_6;" (assignment_expression "uStack_58 = param_6" identifier = identifier) ;) (expression_statement "ppuStack_64 = param_5;" (assignment_expression "ppuStack_64 = param_5" identifier = identifier) ;) (expression_statement "puStack_74 = (uint *)**(undefined4 **)(puVar14 + 0xee3e0);" (assignment_expression "puStack_74 = (uint *)**(undefined4 **)(puVar14 + 0xee3e0)" identifier = (cast_expression "(uint *)**(undefined4 **)(puVar14 + 0xee3e0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(puVar14 + 0xee3e0)" * (pointer_expression "*(undefined4 **)(puVar14 + 0xee3e0)" * (cast_expression "(undefined4 **)(puVar14 + 0xee3e0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0xee3e0)" ( (binary_expression "puVar14 + 0xee3e0" identifier + number_literal) ))))))) ;) (expression_statement "puVar4 = param_2;" (assignment_expression "puVar4 = param_2" identifier = identifier) ;) (expression_statement "puVar13 = puVar5;" (assignment_expression "puVar13 = puVar5" identifier = identifier) ;) (expression_statement "uStack_70 = uVar7;" (assignment_expression "uStack_70 = uVar7" identifier = identifier) ;) (expression_statement "puStack_6c = puVar9;" (assignment_expression "puStack_6c = puVar9" identifier = identifier) ;) (expression_statement "uStack_68 = param_1;" (assignment_expression "uStack_68 = param_1" identifier = identifier) ;) (expression_statement "puStack_60 = param_3;" (assignment_expression "puStack_60 = param_3" identifier = identifier) ;) (expression_statement "puStack_5c = param_4;" (assignment_expression "puStack_5c = param_4" identifier = identifier) ;) (expression_statement "pcStack_54 = pcVar16;" (assignment_expression "pcStack_54 = pcVar16" identifier = identifier) ;) (if_statement "if (param_2 == (uint *)0x0) {\n    uVar7 = 2;\n    if (puVar5 == (uint *)0x0) {\n      uVar7 = 0;\n    }\n    goto LAB_000a1b98;\n  }" if (parenthesized_expression "(param_2 == (uint *)0x0)" ( (binary_expression "param_2 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar7 = 2;\n    if (puVar5 == (uint *)0x0) {\n      uVar7 = 0;\n    }\n    goto LAB_000a1b98;\n  }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (if_statement "if (puVar5 == (uint *)0x0) {\n      uVar7 = 0;\n    }" if (parenthesized_expression "(puVar5 == (uint *)0x0)" ( (binary_expression "puVar5 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar7 = 0;\n    }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) })) (goto_statement "goto LAB_000a1b98;" goto statement_identifier ;) })) (if_statement "if (puVar5 == (uint *)0x0) {\n    uVar7 = 2;\n    goto LAB_000a1b98;\n  }" if (parenthesized_expression "(puVar5 == (uint *)0x0)" ( (binary_expression "puVar5 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar7 = 2;\n    goto LAB_000a1b98;\n  }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_000a1b98;" goto statement_identifier ;) })) (if_statement "if ((puVar3 == (undefined4 *)0x0) || (*(byte *)param_2 != 0x90)) {\nLAB_000a1b58:\n    uVar10 = param_2[1];\n  }\n  else {\n    puStack_78 = (uint *)0x0;\n    puVar13 = (uint *)0x1;\n    puVar4 = puVar5;\n    FUN_000a14dc(*puVar3,puVar5,1,0x41,&puStack_78,0);\n    if (puStack_78 == (uint *)0x0) goto LAB_000a1b58;\n    puVar4 = (uint *)param_2[8];\n    (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x6628))(puVar3[2],puVar4);\n    puVar13 = (uint *)0x41;\n    iVar15 = FUN_0008f0b8(puVar3[0x36],puVar4,0x41);\n    if (iVar15 == 0) {\n      iVar15 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar15 + -0x5984))(puStack_78);\n      (*(code *)(iVar15 + -0x5984))(0);\n      uVar10 = param_2[1];\n    }\n    else {\n      if (*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==\n          '\x03') {\n        sqlite3_value_text(iVar15);\n      }\n      puVar13 = (uint *)0x0;\n      puVar4 = puStack_78;\n      uVar7 = FUN_0008ea3c(iVar15,puStack_78,0);\n      iVar2 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar2 + -0x5984))(puStack_78);\n      (*(code *)(iVar2 + -0x5984))(iVar15);\n      if (uVar7 == 0) goto LAB_000a1b98;\n      uVar10 = param_2[1];\n    }\n  }" if (parenthesized_expression "((puVar3 == (undefined4 *)0x0) || (*(byte *)param_2 != 0x90))" ( (binary_expression "(puVar3 == (undefined4 *)0x0) || (*(byte *)param_2 != 0x90)" (parenthesized_expression "(puVar3 == (undefined4 *)0x0)" ( (binary_expression "puVar3 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*(byte *)param_2 != 0x90)" ( (binary_expression "*(byte *)param_2 != 0x90" (pointer_expression "*(byte *)param_2" * (cast_expression "(byte *)param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) ))) )) (compound_statement "{\nLAB_000a1b58:\n    uVar10 = param_2[1];\n  }" { (labeled_statement "LAB_000a1b58:\n    uVar10 = param_2[1];" statement_identifier : (expression_statement "uVar10 = param_2[1];" (assignment_expression "uVar10 = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;)) }) (else_clause "else {\n    puStack_78 = (uint *)0x0;\n    puVar13 = (uint *)0x1;\n    puVar4 = puVar5;\n    FUN_000a14dc(*puVar3,puVar5,1,0x41,&puStack_78,0);\n    if (puStack_78 == (uint *)0x0) goto LAB_000a1b58;\n    puVar4 = (uint *)param_2[8];\n    (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x6628))(puVar3[2],puVar4);\n    puVar13 = (uint *)0x41;\n    iVar15 = FUN_0008f0b8(puVar3[0x36],puVar4,0x41);\n    if (iVar15 == 0) {\n      iVar15 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar15 + -0x5984))(puStack_78);\n      (*(code *)(iVar15 + -0x5984))(0);\n      uVar10 = param_2[1];\n    }\n    else {\n      if (*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==\n          '\x03') {\n        sqlite3_value_text(iVar15);\n      }\n      puVar13 = (uint *)0x0;\n      puVar4 = puStack_78;\n      uVar7 = FUN_0008ea3c(iVar15,puStack_78,0);\n      iVar2 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar2 + -0x5984))(puStack_78);\n      (*(code *)(iVar2 + -0x5984))(iVar15);\n      if (uVar7 == 0) goto LAB_000a1b98;\n      uVar10 = param_2[1];\n    }\n  }" else (compound_statement "{\n    puStack_78 = (uint *)0x0;\n    puVar13 = (uint *)0x1;\n    puVar4 = puVar5;\n    FUN_000a14dc(*puVar3,puVar5,1,0x41,&puStack_78,0);\n    if (puStack_78 == (uint *)0x0) goto LAB_000a1b58;\n    puVar4 = (uint *)param_2[8];\n    (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x6628))(puVar3[2],puVar4);\n    puVar13 = (uint *)0x41;\n    iVar15 = FUN_0008f0b8(puVar3[0x36],puVar4,0x41);\n    if (iVar15 == 0) {\n      iVar15 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar15 + -0x5984))(puStack_78);\n      (*(code *)(iVar15 + -0x5984))(0);\n      uVar10 = param_2[1];\n    }\n    else {\n      if (*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==\n          '\x03') {\n        sqlite3_value_text(iVar15);\n      }\n      puVar13 = (uint *)0x0;\n      puVar4 = puStack_78;\n      uVar7 = FUN_0008ea3c(iVar15,puStack_78,0);\n      iVar2 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar2 + -0x5984))(puStack_78);\n      (*(code *)(iVar2 + -0x5984))(iVar15);\n      if (uVar7 == 0) goto LAB_000a1b98;\n      uVar10 = param_2[1];\n    }\n  }" { (expression_statement "puStack_78 = (uint *)0x0;" (assignment_expression "puStack_78 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar13 = (uint *)0x1;" (assignment_expression "puVar13 = (uint *)0x1" identifier = (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar4 = puVar5;" (assignment_expression "puVar4 = puVar5" identifier = identifier) ;) (expression_statement "FUN_000a14dc(*puVar3,puVar5,1,0x41,&puStack_78,0);" (call_expression "FUN_000a14dc(*puVar3,puVar5,1,0x41,&puStack_78,0)" identifier (argument_list "(*puVar3,puVar5,1,0x41,&puStack_78,0)" ( (pointer_expression "*puVar3" * identifier) , identifier , number_literal , number_literal , (pointer_expression "&puStack_78" & identifier) , number_literal ))) ;) (if_statement "if (puStack_78 == (uint *)0x0) goto LAB_000a1b58;" if (parenthesized_expression "(puStack_78 == (uint *)0x0)" ( (binary_expression "puStack_78 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000a1b58;" goto statement_identifier ;)) (expression_statement "puVar4 = (uint *)param_2[8];" (assignment_expression "puVar4 = (uint *)param_2[8]" identifier = (cast_expression "(uint *)param_2[8]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[8]" identifier [ number_literal ]))) ;) (expression_statement "(*(code *)(*(int *)(puVar14 + 0xee06c) + 0x6628))(puVar3[2],puVar4);" (call_expression "(*(code *)(*(int *)(puVar14 + 0xee06c) + 0x6628))(puVar3[2],puVar4)" (parenthesized_expression "(*(code *)(*(int *)(puVar14 + 0xee06c) + 0x6628))" ( (pointer_expression "*(code *)(*(int *)(puVar14 + 0xee06c) + 0x6628)" * (cast_expression "(code *)(*(int *)(puVar14 + 0xee06c) + 0x6628)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar14 + 0xee06c) + 0x6628)" ( (binary_expression "*(int *)(puVar14 + 0xee06c) + 0x6628" (pointer_expression "*(int *)(puVar14 + 0xee06c)" * (cast_expression "(int *)(puVar14 + 0xee06c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0xee06c)" ( (binary_expression "puVar14 + 0xee06c" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(puVar3[2],puVar4)" ( (subscript_expression "puVar3[2]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "puVar13 = (uint *)0x41;" (assignment_expression "puVar13 = (uint *)0x41" identifier = (cast_expression "(uint *)0x41" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar15 = FUN_0008f0b8(puVar3[0x36],puVar4,0x41);" (assignment_expression "iVar15 = FUN_0008f0b8(puVar3[0x36],puVar4,0x41)" identifier = (call_expression "FUN_0008f0b8(puVar3[0x36],puVar4,0x41)" identifier (argument_list "(puVar3[0x36],puVar4,0x41)" ( (subscript_expression "puVar3[0x36]" identifier [ number_literal ]) , identifier , number_literal )))) ;) (if_statement "if (iVar15 == 0) {\n      iVar15 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar15 + -0x5984))(puStack_78);\n      (*(code *)(iVar15 + -0x5984))(0);\n      uVar10 = param_2[1];\n    }\n    else {\n      if (*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==\n          '\x03') {\n        sqlite3_value_text(iVar15);\n      }\n      puVar13 = (uint *)0x0;\n      puVar4 = puStack_78;\n      uVar7 = FUN_0008ea3c(iVar15,puStack_78,0);\n      iVar2 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar2 + -0x5984))(puStack_78);\n      (*(code *)(iVar2 + -0x5984))(iVar15);\n      if (uVar7 == 0) goto LAB_000a1b98;\n      uVar10 = param_2[1];\n    }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar15 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar15 + -0x5984))(puStack_78);\n      (*(code *)(iVar15 + -0x5984))(0);\n      uVar10 = param_2[1];\n    }" { (expression_statement "iVar15 = *(int *)(puVar14 + 0xee118);" (assignment_expression "iVar15 = *(int *)(puVar14 + 0xee118)" identifier = (pointer_expression "*(int *)(puVar14 + 0xee118)" * (cast_expression "(int *)(puVar14 + 0xee118)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0xee118)" ( (binary_expression "puVar14 + 0xee118" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)(iVar15 + -0x5984))(puStack_78);" (call_expression "(*(code *)(iVar15 + -0x5984))(puStack_78)" (parenthesized_expression "(*(code *)(iVar15 + -0x5984))" ( (pointer_expression "*(code *)(iVar15 + -0x5984)" * (cast_expression "(code *)(iVar15 + -0x5984)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + -0x5984)" ( (binary_expression "iVar15 + -0x5984" identifier + number_literal) )))) )) (argument_list "(puStack_78)" ( identifier ))) ;) (expression_statement "(*(code *)(iVar15 + -0x5984))(0);" (call_expression "(*(code *)(iVar15 + -0x5984))(0)" (parenthesized_expression "(*(code *)(iVar15 + -0x5984))" ( (pointer_expression "*(code *)(iVar15 + -0x5984)" * (cast_expression "(code *)(iVar15 + -0x5984)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + -0x5984)" ( (binary_expression "iVar15 + -0x5984" identifier + number_literal) )))) )) (argument_list "(0)" ( number_literal ))) ;) (expression_statement "uVar10 = param_2[1];" (assignment_expression "uVar10 = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      if (*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==\n          '\x03') {\n        sqlite3_value_text(iVar15);\n      }\n      puVar13 = (uint *)0x0;\n      puVar4 = puStack_78;\n      uVar7 = FUN_0008ea3c(iVar15,puStack_78,0);\n      iVar2 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar2 + -0x5984))(puStack_78);\n      (*(code *)(iVar2 + -0x5984))(iVar15);\n      if (uVar7 == 0) goto LAB_000a1b98;\n      uVar10 = param_2[1];\n    }" else (compound_statement "{\n      if (*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==\n          '\x03') {\n        sqlite3_value_text(iVar15);\n      }\n      puVar13 = (uint *)0x0;\n      puVar4 = puStack_78;\n      uVar7 = FUN_0008ea3c(iVar15,puStack_78,0);\n      iVar2 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar2 + -0x5984))(puStack_78);\n      (*(code *)(iVar2 + -0x5984))(iVar15);\n      if (uVar7 == 0) goto LAB_000a1b98;\n      uVar10 = param_2[1];\n    }" { (if_statement "if (*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==\n          '\x03') {\n        sqlite3_value_text(iVar15);\n      }" if (parenthesized_expression "(*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==\n          '\x03')" ( (binary_expression "*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==\n          '\x03'" (pointer_expression "*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0)" * (cast_expression "(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0)" ( (binary_expression "(*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0" (binary_expression "(*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70)" (parenthesized_expression "(*(ushort *)(iVar15 + 8) & 0x1f)" ( (binary_expression "*(ushort *)(iVar15 + 8) & 0x1f" (pointer_expression "*(ushort *)(iVar15 + 8)" * (cast_expression "(ushort *)(iVar15 + 8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 8)" ( (binary_expression "iVar15 + 8" identifier + number_literal) )))) & number_literal) )) + (pointer_expression "*(int *)(puVar14 + 0xede70)" * (cast_expression "(int *)(puVar14 + 0xede70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0xede70)" ( (binary_expression "puVar14 + 0xede70" identifier + number_literal) ))))) + number_literal) )))) == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n        sqlite3_value_text(iVar15);\n      }" { (expression_statement "sqlite3_value_text(iVar15);" (call_expression "sqlite3_value_text(iVar15)" identifier (argument_list "(iVar15)" ( identifier ))) ;) })) (expression_statement "puVar13 = (uint *)0x0;" (assignment_expression "puVar13 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar4 = puStack_78;" (assignment_expression "puVar4 = puStack_78" identifier = identifier) ;) (expression_statement "uVar7 = FUN_0008ea3c(iVar15,puStack_78,0);" (assignment_expression "uVar7 = FUN_0008ea3c(iVar15,puStack_78,0)" identifier = (call_expression "FUN_0008ea3c(iVar15,puStack_78,0)" identifier (argument_list "(iVar15,puStack_78,0)" ( identifier , identifier , number_literal )))) ;) (expression_statement "iVar2 = *(int *)(puVar14 + 0xee118);" (assignment_expression "iVar2 = *(int *)(puVar14 + 0xee118)" identifier = (pointer_expression "*(int *)(puVar14 + 0xee118)" * (cast_expression "(int *)(puVar14 + 0xee118)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0xee118)" ( (binary_expression "puVar14 + 0xee118" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)(iVar2 + -0x5984))(puStack_78);" (call_expression "(*(code *)(iVar2 + -0x5984))(puStack_78)" (parenthesized_expression "(*(code *)(iVar2 + -0x5984))" ( (pointer_expression "*(code *)(iVar2 + -0x5984)" * (cast_expression "(code *)(iVar2 + -0x5984)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + -0x5984)" ( (binary_expression "iVar2 + -0x5984" identifier + number_literal) )))) )) (argument_list "(puStack_78)" ( identifier ))) ;) (expression_statement "(*(code *)(iVar2 + -0x5984))(iVar15);" (call_expression "(*(code *)(iVar2 + -0x5984))(iVar15)" (parenthesized_expression "(*(code *)(iVar2 + -0x5984))" ( (pointer_expression "*(code *)(iVar2 + -0x5984)" * (cast_expression "(code *)(iVar2 + -0x5984)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + -0x5984)" ( (binary_expression "iVar2 + -0x5984" identifier + number_literal) )))) )) (argument_list "(iVar15)" ( identifier ))) ;) (if_statement "if (uVar7 == 0) goto LAB_000a1b98;" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000a1b98;" goto statement_identifier ;)) (expression_statement "uVar10 = param_2[1];" (assignment_expression "uVar10 = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) }))) }))) (expression_statement "uVar11 = uVar10 | puVar5[1];" (assignment_expression "uVar11 = uVar10 | puVar5[1]" identifier = (binary_expression "uVar10 | puVar5[1]" identifier | (subscript_expression "puVar5[1]" identifier [ number_literal ]))) ;) (if_statement "if ((uVar11 & 0x400) != 0) {\n    uVar7 = 2;\n    if (((uVar10 & puVar5[1] & 0x400) != 0) && (uVar7 = 2, param_2[2] == puVar5[2])) {\n      uVar7 = 0;\n    }\n    goto LAB_000a1b98;\n  }" if (parenthesized_expression "((uVar11 & 0x400) != 0)" ( (binary_expression "(uVar11 & 0x400) != 0" (parenthesized_expression "(uVar11 & 0x400)" ( (binary_expression "uVar11 & 0x400" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar7 = 2;\n    if (((uVar10 & puVar5[1] & 0x400) != 0) && (uVar7 = 2, param_2[2] == puVar5[2])) {\n      uVar7 = 0;\n    }\n    goto LAB_000a1b98;\n  }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (if_statement "if (((uVar10 & puVar5[1] & 0x400) != 0) && (uVar7 = 2, param_2[2] == puVar5[2])) {\n      uVar7 = 0;\n    }" if (parenthesized_expression "(((uVar10 & puVar5[1] & 0x400) != 0) && (uVar7 = 2, param_2[2] == puVar5[2]))" ( (binary_expression "((uVar10 & puVar5[1] & 0x400) != 0) && (uVar7 = 2, param_2[2] == puVar5[2])" (parenthesized_expression "((uVar10 & puVar5[1] & 0x400) != 0)" ( (binary_expression "(uVar10 & puVar5[1] & 0x400) != 0" (parenthesized_expression "(uVar10 & puVar5[1] & 0x400)" ( (binary_expression "uVar10 & puVar5[1] & 0x400" (binary_expression "uVar10 & puVar5[1]" identifier & (subscript_expression "puVar5[1]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) && (parenthesized_expression "(uVar7 = 2, param_2[2] == puVar5[2])" ( (comma_expression "uVar7 = 2, param_2[2] == puVar5[2]" (assignment_expression "uVar7 = 2" identifier = number_literal) , (binary_expression "param_2[2] == puVar5[2]" (subscript_expression "param_2[2]" identifier [ number_literal ]) == (subscript_expression "puVar5[2]" identifier [ number_literal ]))) ))) )) (compound_statement "{\n      uVar7 = 0;\n    }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) })) (goto_statement "goto LAB_000a1b98;" goto statement_identifier ;) })) (expression_statement "bVar8 = *(byte *)param_2;" (assignment_expression "bVar8 = *(byte *)param_2" identifier = (pointer_expression "*(byte *)param_2" * (cast_expression "(byte *)param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*(byte *)puVar5 == bVar8) {\n    if (bVar8 != 0x47) {\n      if (((bVar8 != 0x9e) && (bVar8 != 0xa0)) && (param_2[2] != 0)) {\n        if (bVar8 == 0x9d) {\n          puVar4 = (uint *)puVar5[2];\n          iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();\n          if (iVar15 != 0) {\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }\n          if ((int)(uVar10 << 7) < 0) {\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n        else {\n          if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }\n          if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n      }\n      if (((param_2[1] ^ puVar5[1]) & 0x10) == 0) {\n        if ((uVar11 & 0x4000) == 0) {\n          if ((uVar11 & 0x800) == 0) {\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }\n          else {\n            uVar7 = 2;\n          }\n        }\n        else {\n          uVar7 = 0;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      goto LAB_000a1b98;\n    }\n  }\n  else if (bVar8 == 0x66) {\n    puVar4 = (uint *)param_2[3];\n    puVar13 = puVar5;\n    iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5,puVar6);\n    if (iVar15 < 2) {\n      uVar7 = 1;\n      goto LAB_000a1b98;\n    }\n  }" if (parenthesized_expression "(*(byte *)puVar5 == bVar8)" ( (binary_expression "*(byte *)puVar5 == bVar8" (pointer_expression "*(byte *)puVar5" * (cast_expression "(byte *)puVar5" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == identifier) )) (compound_statement "{\n    if (bVar8 != 0x47) {\n      if (((bVar8 != 0x9e) && (bVar8 != 0xa0)) && (param_2[2] != 0)) {\n        if (bVar8 == 0x9d) {\n          puVar4 = (uint *)puVar5[2];\n          iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();\n          if (iVar15 != 0) {\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }\n          if ((int)(uVar10 << 7) < 0) {\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n        else {\n          if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }\n          if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n      }\n      if (((param_2[1] ^ puVar5[1]) & 0x10) == 0) {\n        if ((uVar11 & 0x4000) == 0) {\n          if ((uVar11 & 0x800) == 0) {\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }\n          else {\n            uVar7 = 2;\n          }\n        }\n        else {\n          uVar7 = 0;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      goto LAB_000a1b98;\n    }\n  }" { (if_statement "if (bVar8 != 0x47) {\n      if (((bVar8 != 0x9e) && (bVar8 != 0xa0)) && (param_2[2] != 0)) {\n        if (bVar8 == 0x9d) {\n          puVar4 = (uint *)puVar5[2];\n          iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();\n          if (iVar15 != 0) {\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }\n          if ((int)(uVar10 << 7) < 0) {\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n        else {\n          if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }\n          if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n      }\n      if (((param_2[1] ^ puVar5[1]) & 0x10) == 0) {\n        if ((uVar11 & 0x4000) == 0) {\n          if ((uVar11 & 0x800) == 0) {\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }\n          else {\n            uVar7 = 2;\n          }\n        }\n        else {\n          uVar7 = 0;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      goto LAB_000a1b98;\n    }" if (parenthesized_expression "(bVar8 != 0x47)" ( (binary_expression "bVar8 != 0x47" identifier != number_literal) )) (compound_statement "{\n      if (((bVar8 != 0x9e) && (bVar8 != 0xa0)) && (param_2[2] != 0)) {\n        if (bVar8 == 0x9d) {\n          puVar4 = (uint *)puVar5[2];\n          iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();\n          if (iVar15 != 0) {\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }\n          if ((int)(uVar10 << 7) < 0) {\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n        else {\n          if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }\n          if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n      }\n      if (((param_2[1] ^ puVar5[1]) & 0x10) == 0) {\n        if ((uVar11 & 0x4000) == 0) {\n          if ((uVar11 & 0x800) == 0) {\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }\n          else {\n            uVar7 = 2;\n          }\n        }\n        else {\n          uVar7 = 0;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      goto LAB_000a1b98;\n    }" { (if_statement "if (((bVar8 != 0x9e) && (bVar8 != 0xa0)) && (param_2[2] != 0)) {\n        if (bVar8 == 0x9d) {\n          puVar4 = (uint *)puVar5[2];\n          iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();\n          if (iVar15 != 0) {\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }\n          if ((int)(uVar10 << 7) < 0) {\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n        else {\n          if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }\n          if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(((bVar8 != 0x9e) && (bVar8 != 0xa0)) && (param_2[2] != 0))" ( (binary_expression "((bVar8 != 0x9e) && (bVar8 != 0xa0)) && (param_2[2] != 0)" (parenthesized_expression "((bVar8 != 0x9e) && (bVar8 != 0xa0))" ( (binary_expression "(bVar8 != 0x9e) && (bVar8 != 0xa0)" (parenthesized_expression "(bVar8 != 0x9e)" ( (binary_expression "bVar8 != 0x9e" identifier != number_literal) )) && (parenthesized_expression "(bVar8 != 0xa0)" ( (binary_expression "bVar8 != 0xa0" identifier != number_literal) ))) )) && (parenthesized_expression "(param_2[2] != 0)" ( (binary_expression "param_2[2] != 0" (subscript_expression "param_2[2]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n        if (bVar8 == 0x9d) {\n          puVar4 = (uint *)puVar5[2];\n          iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();\n          if (iVar15 != 0) {\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }\n          if ((int)(uVar10 << 7) < 0) {\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n        else {\n          if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }\n          if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n      }" { (if_statement "if (bVar8 == 0x9d) {\n          puVar4 = (uint *)puVar5[2];\n          iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();\n          if (iVar15 != 0) {\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }\n          if ((int)(uVar10 << 7) < 0) {\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n        else {\n          if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }\n          if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }" if (parenthesized_expression "(bVar8 == 0x9d)" ( (binary_expression "bVar8 == 0x9d" identifier == number_literal) )) (compound_statement "{\n          puVar4 = (uint *)puVar5[2];\n          iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();\n          if (iVar15 != 0) {\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }\n          if ((int)(uVar10 << 7) < 0) {\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }" { (expression_statement "puVar4 = (uint *)puVar5[2];" (assignment_expression "puVar4 = (uint *)puVar5[2]" identifier = (cast_expression "(uint *)puVar5[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[2]" identifier [ number_literal ]))) ;) (expression_statement "iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();" (assignment_expression "iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))()" identifier = (call_expression "(*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))()" (parenthesized_expression "(*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))" ( (pointer_expression "*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4)" * (cast_expression "(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar14 + 0xee06c) + 0x17e4)" ( (binary_expression "*(int *)(puVar14 + 0xee06c) + 0x17e4" (pointer_expression "*(int *)(puVar14 + 0xee06c)" * (cast_expression "(int *)(puVar14 + 0xee06c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0xee06c)" ( (binary_expression "puVar14 + 0xee06c" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar15 != 0) {\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_000a1b98;" goto statement_identifier ;) })) (if_statement "if ((int)(uVar10 << 7) < 0) {\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }" if (parenthesized_expression "((int)(uVar10 << 7) < 0)" ( (binary_expression "(int)(uVar10 << 7) < 0" (cast_expression "(int)(uVar10 << 7)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar10 << 7)" ( (binary_expression "uVar10 << 7" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }" { (expression_statement "puVar13 = (uint *)puVar5[0xc];" (assignment_expression "puVar13 = (uint *)puVar5[0xc]" identifier = (cast_expression "(uint *)puVar5[0xc]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[0xc]" identifier [ number_literal ]))) ;) (expression_statement "puVar4 = (uint *)param_2[0xc];" (assignment_expression "puVar4 = (uint *)param_2[0xc]" identifier = (cast_expression "(uint *)param_2[0xc]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[0xc]" identifier [ number_literal ]))) ;) (expression_statement "iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);" (assignment_expression "iVar15 = FUN_000a2138(puVar3,puVar4,puVar13)" identifier = (call_expression "FUN_000a2138(puVar3,puVar4,puVar13)" identifier (argument_list "(puVar3,puVar4,puVar13)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (compound_statement "{\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_000a1b98;" goto statement_identifier ;) })) })) }) (else_clause "else {\n          if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }\n          if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }" else (compound_statement "{\n          if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }\n          if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }" { (if_statement "if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }" if (parenthesized_expression "(bVar8 == 0x6e)" ( (binary_expression "bVar8 == 0x6e" identifier == number_literal) )) (compound_statement "{\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000a1b98;" goto statement_identifier ;) })) (if_statement "if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }" if (parenthesized_expression "(bVar8 == 0x66)" ( (binary_expression "bVar8 == 0x66" identifier == number_literal) )) (compound_statement "{\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }" { (expression_statement "puVar4 = (uint *)puVar5[2];" (assignment_expression "puVar4 = (uint *)puVar5[2]" identifier = (cast_expression "(uint *)puVar5[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[2]" identifier [ number_literal ]))) ;) (expression_statement "iVar15 = (**(code **)(puVar14 + 0xedf44))();" (assignment_expression "iVar15 = (**(code **)(puVar14 + 0xedf44))()" identifier = (call_expression "(**(code **)(puVar14 + 0xedf44))()" (parenthesized_expression "(**(code **)(puVar14 + 0xedf44))" ( (pointer_expression "**(code **)(puVar14 + 0xedf44)" * (pointer_expression "*(code **)(puVar14 + 0xedf44)" * (cast_expression "(code **)(puVar14 + 0xedf44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0xedf44)" ( (binary_expression "puVar14 + 0xedf44" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (compound_statement "{\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_000a1b98;" goto statement_identifier ;) })) }) (else_clause "else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }" else (compound_statement "{\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }" { (expression_statement "puVar4 = (uint *)puVar5[2];" (assignment_expression "puVar4 = (uint *)puVar5[2]" identifier = (cast_expression "(uint *)puVar5[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[2]" identifier [ number_literal ]))) ;) (if_statement "if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }" if (parenthesized_expression "((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0))" ( (binary_expression "(puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)" (parenthesized_expression "(puVar4 != (uint *)0x0)" ( (binary_expression "puVar4 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)" ( (comma_expression "iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0" (assignment_expression "iVar15 = (**(code **)(puVar14 + 0xee420))()" identifier = (call_expression "(**(code **)(puVar14 + 0xee420))()" (parenthesized_expression "(**(code **)(puVar14 + 0xee420))" ( (pointer_expression "**(code **)(puVar14 + 0xee420)" * (pointer_expression "*(code **)(puVar14 + 0xee420)" * (cast_expression "(code **)(puVar14 + 0xee420)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0xee420)" ( (binary_expression "puVar14 + 0xee420" identifier + number_literal) ))))) )) (argument_list "()" ( )))) , (binary_expression "iVar15 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_000a1b98;" goto statement_identifier ;) })) }))) }))) })) (if_statement "if (((param_2[1] ^ puVar5[1]) & 0x10) == 0) {\n        if ((uVar11 & 0x4000) == 0) {\n          if ((uVar11 & 0x800) == 0) {\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }\n          else {\n            uVar7 = 2;\n          }\n        }\n        else {\n          uVar7 = 0;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }" if (parenthesized_expression "(((param_2[1] ^ puVar5[1]) & 0x10) == 0)" ( (binary_expression "((param_2[1] ^ puVar5[1]) & 0x10) == 0" (parenthesized_expression "((param_2[1] ^ puVar5[1]) & 0x10)" ( (binary_expression "(param_2[1] ^ puVar5[1]) & 0x10" (parenthesized_expression "(param_2[1] ^ puVar5[1])" ( (binary_expression "param_2[1] ^ puVar5[1]" (subscript_expression "param_2[1]" identifier [ number_literal ]) ^ (subscript_expression "puVar5[1]" identifier [ number_literal ])) )) & number_literal) )) == number_literal) )) (compound_statement "{\n        if ((uVar11 & 0x4000) == 0) {\n          if ((uVar11 & 0x800) == 0) {\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }\n          else {\n            uVar7 = 2;\n          }\n        }\n        else {\n          uVar7 = 0;\n        }\n      }" { (if_statement "if ((uVar11 & 0x4000) == 0) {\n          if ((uVar11 & 0x800) == 0) {\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }\n          else {\n            uVar7 = 2;\n          }\n        }\n        else {\n          uVar7 = 0;\n        }" if (parenthesized_expression "((uVar11 & 0x4000) == 0)" ( (binary_expression "(uVar11 & 0x4000) == 0" (parenthesized_expression "(uVar11 & 0x4000)" ( (binary_expression "uVar11 & 0x4000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          if ((uVar11 & 0x800) == 0) {\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }\n          else {\n            uVar7 = 2;\n          }\n        }" { (if_statement "if ((uVar11 & 0x800) == 0) {\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }\n          else {\n            uVar7 = 2;\n          }" if (parenthesized_expression "((uVar11 & 0x800) == 0)" ( (binary_expression "(uVar11 & 0x800) == 0" (parenthesized_expression "(uVar11 & 0x800)" ( (binary_expression "uVar11 & 0x800" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }" { (if_statement "if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }" if (parenthesized_expression "((uVar11 & 8) == 0)" ( (binary_expression "(uVar11 & 8) == 0" (parenthesized_expression "(uVar11 & 8)" ( (binary_expression "uVar11 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }" { (expression_statement "puVar13 = (uint *)puVar5[3];" (assignment_expression "puVar13 = (uint *)puVar5[3]" identifier = (cast_expression "(uint *)puVar5[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[3]" identifier [ number_literal ]))) ;) (expression_statement "puVar4 = (uint *)param_2[3];" (assignment_expression "puVar4 = (uint *)param_2[3]" identifier = (cast_expression "(uint *)param_2[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[3]" identifier [ number_literal ]))) ;) (expression_statement "iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);" (assignment_expression "iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6)" identifier = (call_expression "FUN_000a1aec(puVar3,puVar4,puVar13,puVar6)" identifier (argument_list "(puVar3,puVar4,puVar13,puVar6)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (compound_statement "{\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_000a1b98;" goto statement_identifier ;) })) })) (expression_statement "puVar4 = (uint *)param_2[4];" (assignment_expression "puVar4 = (uint *)param_2[4]" identifier = (cast_expression "(uint *)param_2[4]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[4]" identifier [ number_literal ]))) ;) (expression_statement "iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);" (assignment_expression "iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6)" identifier = (call_expression "FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6)" identifier (argument_list "(puVar3,puVar4,puVar5[4],puVar6)" ( identifier , identifier , (subscript_expression "puVar5[4]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "puVar13 = puVar6;" (assignment_expression "puVar13 = puVar6" identifier = identifier) ;) (if_statement "if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }" { (expression_statement "puVar4 = (uint *)puVar5[5];" (assignment_expression "puVar4 = (uint *)puVar5[5]" identifier = (cast_expression "(uint *)puVar5[5]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[5]" identifier [ number_literal ]))) ;) (expression_statement "iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);" (assignment_expression "iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6)" identifier = (call_expression "FUN_000a2010(param_2[5],puVar4,puVar6)" identifier (argument_list "(param_2[5],puVar4,puVar6)" ( (subscript_expression "param_2[5]" identifier [ number_literal ]) , identifier , identifier )))) ;) (if_statement "if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (if_statement "if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }" if (parenthesized_expression "(((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0))" ( (binary_expression "((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)" (parenthesized_expression "((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b))" ( (binary_expression "(*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)" (parenthesized_expression "(*(byte *)param_2 != 0x6a)" ( (binary_expression "*(byte *)param_2 != 0x6a" (pointer_expression "*(byte *)param_2" * (cast_expression "(byte *)param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) && (parenthesized_expression "(*(byte *)param_2 != 0x9b)" ( (binary_expression "*(byte *)param_2 != 0x9b" (pointer_expression "*(byte *)param_2" * (cast_expression "(byte *)param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) ))) )) && (parenthesized_expression "((uVar11 & 0x2000) == 0)" ( (binary_expression "(uVar11 & 0x2000) == 0" (parenthesized_expression "(uVar11 & 0x2000)" ( (binary_expression "uVar11 & 0x2000" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }" { (if_statement "if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }" if (parenthesized_expression "(param_2[8] == puVar5[8])" ( (binary_expression "param_2[8] == puVar5[8]" (subscript_expression "param_2[8]" identifier [ number_literal ]) == (subscript_expression "puVar5[8]" identifier [ number_literal ])) )) (compound_statement "{\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }" { (if_statement "if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }" if (parenthesized_expression "((uint *)param_2[7] != (uint *)puVar5[7])" ( (binary_expression "(uint *)param_2[7] != (uint *)puVar5[7]" (cast_expression "(uint *)param_2[7]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[7]" identifier [ number_literal ])) != (cast_expression "(uint *)puVar5[7]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[7]" identifier [ number_literal ]))) )) (compound_statement "{\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }" { (if_statement "if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }" if (parenthesized_expression "((uint *)param_2[7] == puVar6)" ( (binary_expression "(uint *)param_2[7] == puVar6" (cast_expression "(uint *)param_2[7]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[7]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }" { (if_statement "if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }" if (parenthesized_expression "(-1 < (int)puVar5[7])" ( (binary_expression "-1 < (int)puVar5[7]" number_literal < (cast_expression "(int)puVar5[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar5[7]" identifier [ number_literal ]))) )) (compound_statement "{\n                          uVar7 = 2;\n                        }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) })) }) (else_clause "else {\n                        uVar7 = 2;\n                      }" else (compound_statement "{\n                        uVar7 = 2;\n                      }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) }))) })) }) (else_clause "else {\n                    uVar7 = 2;\n                  }" else (compound_statement "{\n                    uVar7 = 2;\n                  }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) }))) })) }) (else_clause "else {\n                uVar7 = 2;\n              }" else (compound_statement "{\n                uVar7 = 2;\n              }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) }))) }) (else_clause "else {\n              uVar7 = 2;\n            }" else (compound_statement "{\n              uVar7 = 2;\n            }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) }))) }) (else_clause "else {\n            uVar7 = 2;\n          }" else (compound_statement "{\n            uVar7 = 2;\n          }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) }))) }) (else_clause "else {\n          uVar7 = 0;\n        }" else (compound_statement "{\n          uVar7 = 0;\n        }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n        uVar7 = 2;\n      }" else (compound_statement "{\n        uVar7 = 2;\n      }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) }))) (goto_statement "goto LAB_000a1b98;" goto statement_identifier ;) })) }) (else_clause "else if (bVar8 == 0x66) {\n    puVar4 = (uint *)param_2[3];\n    puVar13 = puVar5;\n    iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5,puVar6);\n    if (iVar15 < 2) {\n      uVar7 = 1;\n      goto LAB_000a1b98;\n    }\n  }" else (if_statement "if (bVar8 == 0x66) {\n    puVar4 = (uint *)param_2[3];\n    puVar13 = puVar5;\n    iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5,puVar6);\n    if (iVar15 < 2) {\n      uVar7 = 1;\n      goto LAB_000a1b98;\n    }\n  }" if (parenthesized_expression "(bVar8 == 0x66)" ( (binary_expression "bVar8 == 0x66" identifier == number_literal) )) (compound_statement "{\n    puVar4 = (uint *)param_2[3];\n    puVar13 = puVar5;\n    iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5,puVar6);\n    if (iVar15 < 2) {\n      uVar7 = 1;\n      goto LAB_000a1b98;\n    }\n  }" { (expression_statement "puVar4 = (uint *)param_2[3];" (assignment_expression "puVar4 = (uint *)param_2[3]" identifier = (cast_expression "(uint *)param_2[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[3]" identifier [ number_literal ]))) ;) (expression_statement "puVar13 = puVar5;" (assignment_expression "puVar13 = puVar5" identifier = identifier) ;) (expression_statement "iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5,puVar6);" (assignment_expression "iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5,puVar6)" identifier = (call_expression "FUN_000a1aec(puVar3,puVar4,puVar5,puVar6)" identifier (argument_list "(puVar3,puVar4,puVar5,puVar6)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar15 < 2) {\n      uVar7 = 1;\n      goto LAB_000a1b98;\n    }" if (parenthesized_expression "(iVar15 < 2)" ( (binary_expression "iVar15 < 2" identifier < number_literal) )) (compound_statement "{\n      uVar7 = 1;\n      goto LAB_000a1b98;\n    }" { (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_000a1b98;" goto statement_identifier ;) })) })))) (if_statement "if (*(byte *)puVar5 == 0x66) {\n    puVar13 = (uint *)puVar5[3];\n    iVar15 = FUN_000a1aec(puVar3,param_2,puVar13,puVar6);\n    uVar7 = 2;\n    puVar4 = param_2;\n    if (iVar15 < 2) {\n      uVar7 = 1;\n    }\n  }\n  else {\n    uVar7 = 2;\n    puVar4 = param_2;\n  }" if (parenthesized_expression "(*(byte *)puVar5 == 0x66)" ( (binary_expression "*(byte *)puVar5 == 0x66" (pointer_expression "*(byte *)puVar5" * (cast_expression "(byte *)puVar5" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n    puVar13 = (uint *)puVar5[3];\n    iVar15 = FUN_000a1aec(puVar3,param_2,puVar13,puVar6);\n    uVar7 = 2;\n    puVar4 = param_2;\n    if (iVar15 < 2) {\n      uVar7 = 1;\n    }\n  }" { (expression_statement "puVar13 = (uint *)puVar5[3];" (assignment_expression "puVar13 = (uint *)puVar5[3]" identifier = (cast_expression "(uint *)puVar5[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[3]" identifier [ number_literal ]))) ;) (expression_statement "iVar15 = FUN_000a1aec(puVar3,param_2,puVar13,puVar6);" (assignment_expression "iVar15 = FUN_000a1aec(puVar3,param_2,puVar13,puVar6)" identifier = (call_expression "FUN_000a1aec(puVar3,param_2,puVar13,puVar6)" identifier (argument_list "(puVar3,param_2,puVar13,puVar6)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (expression_statement "puVar4 = param_2;" (assignment_expression "puVar4 = param_2" identifier = identifier) ;) (if_statement "if (iVar15 < 2) {\n      uVar7 = 1;\n    }" if (parenthesized_expression "(iVar15 < 2)" ( (binary_expression "iVar15 < 2" identifier < number_literal) )) (compound_statement "{\n      uVar7 = 1;\n    }" { (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) })) }) (else_clause "else {\n    uVar7 = 2;\n    puVar4 = param_2;\n  }" else (compound_statement "{\n    uVar7 = 2;\n    puVar4 = param_2;\n  }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (expression_statement "puVar4 = param_2;" (assignment_expression "puVar4 = param_2" identifier = identifier) ;) }))) (labeled_statement "LAB_000a1b98:\n  if (puStack_74 == (uint *)**(undefined4 **)(puVar14 + 0xee3e0)) {\n    return uVar7;\n  }" statement_identifier : (if_statement "if (puStack_74 == (uint *)**(undefined4 **)(puVar14 + 0xee3e0)) {\n    return uVar7;\n  }" if (parenthesized_expression "(puStack_74 == (uint *)**(undefined4 **)(puVar14 + 0xee3e0))" ( (binary_expression "puStack_74 == (uint *)**(undefined4 **)(puVar14 + 0xee3e0)" identifier == (cast_expression "(uint *)**(undefined4 **)(puVar14 + 0xee3e0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(puVar14 + 0xee3e0)" * (pointer_expression "*(undefined4 **)(puVar14 + 0xee3e0)" * (cast_expression "(undefined4 **)(puVar14 + 0xee3e0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0xee3e0)" ( (binary_expression "puVar14 + 0xee3e0" identifier + number_literal) ))))))) )) (compound_statement "{\n    return uVar7;\n  }" { (return_statement "return uVar7;" return identifier ;) }))) (expression_statement "pcVar16 = *(code **)(puVar14 + 0xee3b4);" (assignment_expression "pcVar16 = *(code **)(puVar14 + 0xee3b4)" identifier = (pointer_expression "*(code **)(puVar14 + 0xee3b4)" * (cast_expression "(code **)(puVar14 + 0xee3b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0xee3b4)" ( (binary_expression "puVar14 + 0xee3b4" identifier + number_literal) ))))) ;) (expression_statement "puVar9 = puStack_74;" (assignment_expression "puVar9 = puStack_74" identifier = identifier) ;) (expression_statement "(*pcVar16)();" (call_expression "(*pcVar16)()" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar16 = pcVar16 + 0xf5910;" (assignment_expression "pcVar16 = pcVar16 + 0xf5910" identifier = (binary_expression "pcVar16 + 0xf5910" identifier + number_literal)) ;) (if_statement "if (puVar9 == (uint *)0x0) {\n    uVar7 = (uint)(puVar4 != (uint *)0x0);\n  }\n  else if (puVar4 == (uint *)0x0) {\n    uVar7 = 1;\n  }\n  else if (*puVar9 == *puVar4) {\n    if ((int)*puVar9 < 1) {\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = puVar9[1];\n      uVar10 = puVar4[1];\n      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }\n    }\n  }\n  else {\n    uVar7 = 1;\n  }" if (parenthesized_expression "(puVar9 == (uint *)0x0)" ( (binary_expression "puVar9 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar7 = (uint)(puVar4 != (uint *)0x0);\n  }" { (expression_statement "uVar7 = (uint)(puVar4 != (uint *)0x0);" (assignment_expression "uVar7 = (uint)(puVar4 != (uint *)0x0)" identifier = (call_expression "(uint)(puVar4 != (uint *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar4 != (uint *)0x0)" ( (binary_expression "puVar4 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )))) ;) }) (else_clause "else if (puVar4 == (uint *)0x0) {\n    uVar7 = 1;\n  }\n  else if (*puVar9 == *puVar4) {\n    if ((int)*puVar9 < 1) {\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = puVar9[1];\n      uVar10 = puVar4[1];\n      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }\n    }\n  }\n  else {\n    uVar7 = 1;\n  }" else (if_statement "if (puVar4 == (uint *)0x0) {\n    uVar7 = 1;\n  }\n  else if (*puVar9 == *puVar4) {\n    if ((int)*puVar9 < 1) {\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = puVar9[1];\n      uVar10 = puVar4[1];\n      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }\n    }\n  }\n  else {\n    uVar7 = 1;\n  }" if (parenthesized_expression "(puVar4 == (uint *)0x0)" ( (binary_expression "puVar4 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar7 = 1;\n  }" { (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) }) (else_clause "else if (*puVar9 == *puVar4) {\n    if ((int)*puVar9 < 1) {\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = puVar9[1];\n      uVar10 = puVar4[1];\n      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }\n    }\n  }\n  else {\n    uVar7 = 1;\n  }" else (if_statement "if (*puVar9 == *puVar4) {\n    if ((int)*puVar9 < 1) {\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = puVar9[1];\n      uVar10 = puVar4[1];\n      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }\n    }\n  }\n  else {\n    uVar7 = 1;\n  }" if (parenthesized_expression "(*puVar9 == *puVar4)" ( (binary_expression "*puVar9 == *puVar4" (pointer_expression "*puVar9" * identifier) == (pointer_expression "*puVar4" * identifier)) )) (compound_statement "{\n    if ((int)*puVar9 < 1) {\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = puVar9[1];\n      uVar10 = puVar4[1];\n      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }\n    }\n  }" { (if_statement "if ((int)*puVar9 < 1) {\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = puVar9[1];\n      uVar10 = puVar4[1];\n      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }\n    }" if (parenthesized_expression "((int)*puVar9 < 1)" ( (binary_expression "(int)*puVar9 < 1" (cast_expression "(int)*puVar9" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*puVar9" * identifier)) < number_literal) )) (compound_statement "{\n      uVar7 = 0;\n    }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      uVar7 = puVar9[1];\n      uVar10 = puVar4[1];\n      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }\n    }" else (compound_statement "{\n      uVar7 = puVar9[1];\n      uVar10 = puVar4[1];\n      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }\n    }" { (expression_statement "uVar7 = puVar9[1];" (assignment_expression "uVar7 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = puVar4[1];" (assignment_expression "uVar10 = puVar4[1]" identifier = (subscript_expression "puVar4[1]" identifier [ number_literal ])) ;) (if_statement "if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }" if (parenthesized_expression "(*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4))" ( (binary_expression "*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)" (pointer_expression "*(byte *)(puVar9 + 4)" * (cast_expression "(byte *)(puVar9 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 4)" ( (binary_expression "puVar9 + 4" identifier + number_literal) )))) == (pointer_expression "*(byte *)(puVar4 + 4)" * (cast_expression "(byte *)(puVar4 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 4)" ( (binary_expression "puVar4 + 4" identifier + number_literal) ))))) )) (compound_statement "{\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }" { (expression_statement "puVar5 = puVar9 + 6;" (assignment_expression "puVar5 = puVar9 + 6" identifier = (binary_expression "puVar9 + 6" identifier + number_literal)) ;) (expression_statement "puVar4 = puVar4 + 6;" (assignment_expression "puVar4 = puVar4 + 6" identifier = (binary_expression "puVar4 + 6" identifier + number_literal)) ;) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (do_statement "do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);" do (compound_statement "{\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        }" { (expression_statement "iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);" (assignment_expression "iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16)" identifier = (call_expression "FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16)" identifier (argument_list "(0,uVar7,uVar10,puVar13,pcVar16)" ( number_literal , identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) (if_statement "if (iVar2 != 0) {\n            return 1;\n          }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n            return 1;\n          }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }" if (parenthesized_expression "((int)*puVar9 <= iVar15)" ( (binary_expression "(int)*puVar9 <= iVar15" (cast_expression "(int)*puVar9" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*puVar9" * identifier)) <= identifier) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar7 = *puVar5;" (assignment_expression "uVar7 = *puVar5" identifier = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "uVar10 = *puVar4;" (assignment_expression "uVar10 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "puVar6 = puVar5 + 3;" (assignment_expression "puVar6 = puVar5 + 3" identifier = (binary_expression "puVar5 + 3" identifier + number_literal)) ;) (expression_statement "puVar5 = puVar5 + 5;" (assignment_expression "puVar5 = puVar5 + 5" identifier = (binary_expression "puVar5 + 5" identifier + number_literal)) ;) (expression_statement "puVar1 = puVar4 + 3;" (assignment_expression "puVar1 = puVar4 + 3" identifier = (binary_expression "puVar4 + 3" identifier + number_literal)) ;) (expression_statement "puVar4 = puVar4 + 5;" (assignment_expression "puVar4 = puVar4 + 5" identifier = (binary_expression "puVar4 + 5" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(byte *)puVar6 == *(byte *)puVar1)" ( (binary_expression "*(byte *)puVar6 == *(byte *)puVar1" (pointer_expression "*(byte *)puVar6" * (cast_expression "(byte *)puVar6" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*(byte *)puVar1" * (cast_expression "(byte *)puVar1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) ;) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        uVar7 = 1;\n      }" else (compound_statement "{\n        uVar7 = 1;\n      }" { (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) }))) }))) }) (else_clause "else {\n    uVar7 = 1;\n  }" else (compound_statement "{\n    uVar7 = 1;\n  }" { (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) }))))))) (return_statement "return uVar7;" return identifier ;) })))
(translation_unit "int valueFromExpr(sqlite3 *db,Expr *pExpr,u8 enc,u8 affinity,sqlite3_value **ppVal,\n                 ValueNewStat4Ctx *pCtx)\n\n{\n  char cVar1;\n  u8 affinity_00;\n  Expr *pEVar2;\n  Mem *pMem;\n  char *pcVar3;\n  undefined3 in_register_00000018;\n  undefined3 in_register_0000001c;\n  int iVar4;\n  byte bVar6;\n  int iVar5;\n  undefined *puVar7;\n  sqlite3_value *pVal;\n  int iStack_2c;\n  \n  iStack_2c = *(int *)PTR___stack_chk_guard_0018fecc;\n  pVal = (sqlite3_value *)0x0;\n  for (; (bVar6 = pExpr->op, bVar6 == 0xa2 || (bVar6 == 0xa9)); pExpr = pExpr->pLeft) {\n  }\n  if (bVar6 == 0xa4) {\n    bVar6 = pExpr->op2;\n  }\n  if (bVar6 == 0x24) {\n    affinity_00 = (*(code *)(PTR_LAB_0018fbbc + 0x7c60))((pExpr->u).zToken,0);\n    iVar4 = valueFromExpr(db,pExpr->pLeft,enc,affinity_00,ppVal,pCtx);\n    if (*ppVal != (Mem *)0x0) {\n      sqlite3VdbeMemCast(*ppVal,affinity_00,'\x01');\n      applyAffinity(*ppVal,affinity,'\x01');\n    }\n    goto LAB_000a1814;\n  }\n  if (bVar6 == 0xa1) {\n    pEVar2 = pExpr->pLeft;\n    bVar6 = pEVar2->op;\n    if ((bVar6 & 0xfd) == 0x8d) {\n      puVar7 = PTR_LAB_0018f958 + 0xd80;\n      goto LAB_000a1594;\n    }\nLAB_000a1688:\n    iVar4 = valueFromExpr(db,pExpr->pLeft,enc,affinity,&pVal,pCtx);\n    if (iVar4 == 0) {\n      iVar4 = 0;\n      if (pVal != (sqlite3_value *)0x0) {\n        (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n        if ((pVal->flags & 8) == 0) {\n          iVar5 = *(int *)((int)&pVal->u + 4);\n          if (((pVal->u).nZero == -0x80000000) && (iVar5 == 0)) {\n            pVal->u = *(MemValue *)(PTR_DAT_0018fbb0 + -0x3fb8);\n            pVal->flags = pVal->flags & 0x3e00 | 8;\n          }\n          else {\n            iVar5 = -iVar5;\n            (pVal->u).zPType = (char *)(-(uint)(iVar5 != 0) - (pVal->u).nZero);\n            *(int *)((int)&pVal->u + 4) = iVar5;\n          }\n        }\n        else {\n          (pVal->u).nZero = (pVal->u).nZero ^ 0x80000000;\n        }\n        applyAffinity(pVal,affinity,enc);\n      }\n    }\n    else {\n      iVar4 = 0;\n    }\n    goto LAB_000a180c;\n  }\n  if (bVar6 == 0x6a) {\n    puVar7 = PTR_LAB_0018f958 + 0x2d20;\nLAB_000a1740:\n    pVal = (sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);\n    if (pVal == (sqlite3_value *)0x0) {\nLAB_000a1a8c:\n      (*(code *)(PTR_LAB_0018fb58 + 0x1354))(db);\n      (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(db,0);\n      (*(code *)(PTR_LAB_0018fc04 + -0x5984))(pVal);\n      iVar4 = 7;\n      goto LAB_000a1814;\n    }\n    if ((pExpr->flags & 0x400) == 0) {\n      pcVar3 = sqlite3MPrintf(db,PTR_LAB_0018f958 + 0x172c,puVar7,(pExpr->u).zToken);\n      if (pcVar3 == (char *)0x0) goto LAB_000a1a8c;\n      sqlite3ValueSetStr(pVal,-1,pcVar3,'\x01',(_func_void_void_ptr *)(PTR_LAB_0018fb58 + 0x1030));\n    }\n    else {\n      (*(code *)(PTR_LAB_0018fc04 + -0x6694))(pVal);\n    }\n    if (((bVar6 & 0xfd) == 0x8d) && (CONCAT31(in_register_0000001c,affinity) == 0x41)) {\n      applyAffinity(pVal,'C','\x01');\n    }\n    else {\n      applyAffinity(pVal,affinity,'\x01');\n    }\n    if ((pVal->flags & 0xc) != 0) {\n      pVal->flags = pVal->flags & 0xfffd;\n    }\n    if (CONCAT31(in_register_00000018,enc) == 1) {\n      iVar4 = 0;\n    }\n    else {\n      iVar4 = sqlite3VdbeChangeEncoding(pVal,CONCAT31(in_register_00000018,enc));\n    }\n  }\n  else {\n    puVar7 = PTR_LAB_0018f958 + 0x2d20;\n    pEVar2 = pExpr;\nLAB_000a1594:\n    pExpr = pEVar2;\n    if ((bVar6 & 0xfd) == 0x8d) goto LAB_000a1740;\n    if (bVar6 == 0xa1) goto LAB_000a1688;\n    if (bVar6 == 0x6e) {\n      pVal = (sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);\n      if (pVal != (sqlite3_value *)0x0) {\n        (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(pVal);\n        iVar4 = 0;\n        goto LAB_000a180c;\n      }\n      goto LAB_000a1a8c;\n    }\n    if (bVar6 == 0x8e) {\n      pMem = (Mem *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);\n      pVal = pMem;\n      if (pMem == (Mem *)0x0) goto LAB_000a1a8c;\n      iVar5 = (pEVar2->u).iValue + 2;\n      iVar4 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(iVar5);\n      pcVar3 = (char *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(db,iVar5,iVar4 + -1);\n      sqlite3VdbeMemSetStr\n                (pMem,pcVar3,(iVar4 + -1) / 2,'\0',\n                 (_func_void_void_ptr *)(PTR_LAB_0018fb58 + 0x1030));\n      iVar4 = 0;\n    }\n    else {\n      iVar4 = 0;\n      if (bVar6 == 0x9b) {\n        pVal = (sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);\n        if (pVal == (sqlite3_value *)0x0) {\n          iVar4 = 0;\n        }\n        else {\n          pVal->flags = 4;\n          cVar1 = *(char *)((pEVar2->u).iValue + 4);\n          (pVal->u).nZero = 0;\n          *(uint *)((int)&pVal->u + 4) = (uint)(cVar1 == '\0');\n          iVar4 = 0;\n        }\n      }\n    }\n  }\nLAB_000a180c:\n  *ppVal = pVal;\nLAB_000a1814:\n  if (iStack_2c != *(int *)PTR___stack_chk_guard_0018fecc) {\n    iVar4 = (*(code *)PTR___stack_chk_fail_0018fea0)();\n    return iVar4;\n  }\n  return iVar4;\n}\n\n" (function_definition "int valueFromExpr(sqlite3 *db,Expr *pExpr,u8 enc,u8 affinity,sqlite3_value **ppVal,\n                 ValueNewStat4Ctx *pCtx)\n\n{\n  char cVar1;\n  u8 affinity_00;\n  Expr *pEVar2;\n  Mem *pMem;\n  char *pcVar3;\n  undefined3 in_register_00000018;\n  undefined3 in_register_0000001c;\n  int iVar4;\n  byte bVar6;\n  int iVar5;\n  undefined *puVar7;\n  sqlite3_value *pVal;\n  int iStack_2c;\n  \n  iStack_2c = *(int *)PTR___stack_chk_guard_0018fecc;\n  pVal = (sqlite3_value *)0x0;\n  for (; (bVar6 = pExpr->op, bVar6 == 0xa2 || (bVar6 == 0xa9)); pExpr = pExpr->pLeft) {\n  }\n  if (bVar6 == 0xa4) {\n    bVar6 = pExpr->op2;\n  }\n  if (bVar6 == 0x24) {\n    affinity_00 = (*(code *)(PTR_LAB_0018fbbc + 0x7c60))((pExpr->u).zToken,0);\n    iVar4 = valueFromExpr(db,pExpr->pLeft,enc,affinity_00,ppVal,pCtx);\n    if (*ppVal != (Mem *)0x0) {\n      sqlite3VdbeMemCast(*ppVal,affinity_00,'\x01');\n      applyAffinity(*ppVal,affinity,'\x01');\n    }\n    goto LAB_000a1814;\n  }\n  if (bVar6 == 0xa1) {\n    pEVar2 = pExpr->pLeft;\n    bVar6 = pEVar2->op;\n    if ((bVar6 & 0xfd) == 0x8d) {\n      puVar7 = PTR_LAB_0018f958 + 0xd80;\n      goto LAB_000a1594;\n    }\nLAB_000a1688:\n    iVar4 = valueFromExpr(db,pExpr->pLeft,enc,affinity,&pVal,pCtx);\n    if (iVar4 == 0) {\n      iVar4 = 0;\n      if (pVal != (sqlite3_value *)0x0) {\n        (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n        if ((pVal->flags & 8) == 0) {\n          iVar5 = *(int *)((int)&pVal->u + 4);\n          if (((pVal->u).nZero == -0x80000000) && (iVar5 == 0)) {\n            pVal->u = *(MemValue *)(PTR_DAT_0018fbb0 + -0x3fb8);\n            pVal->flags = pVal->flags & 0x3e00 | 8;\n          }\n          else {\n            iVar5 = -iVar5;\n            (pVal->u).zPType = (char *)(-(uint)(iVar5 != 0) - (pVal->u).nZero);\n            *(int *)((int)&pVal->u + 4) = iVar5;\n          }\n        }\n        else {\n          (pVal->u).nZero = (pVal->u).nZero ^ 0x80000000;\n        }\n        applyAffinity(pVal,affinity,enc);\n      }\n    }\n    else {\n      iVar4 = 0;\n    }\n    goto LAB_000a180c;\n  }\n  if (bVar6 == 0x6a) {\n    puVar7 = PTR_LAB_0018f958 + 0x2d20;\nLAB_000a1740:\n    pVal = (sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);\n    if (pVal == (sqlite3_value *)0x0) {\nLAB_000a1a8c:\n      (*(code *)(PTR_LAB_0018fb58 + 0x1354))(db);\n      (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(db,0);\n      (*(code *)(PTR_LAB_0018fc04 + -0x5984))(pVal);\n      iVar4 = 7;\n      goto LAB_000a1814;\n    }\n    if ((pExpr->flags & 0x400) == 0) {\n      pcVar3 = sqlite3MPrintf(db,PTR_LAB_0018f958 + 0x172c,puVar7,(pExpr->u).zToken);\n      if (pcVar3 == (char *)0x0) goto LAB_000a1a8c;\n      sqlite3ValueSetStr(pVal,-1,pcVar3,'\x01',(_func_void_void_ptr *)(PTR_LAB_0018fb58 + 0x1030));\n    }\n    else {\n      (*(code *)(PTR_LAB_0018fc04 + -0x6694))(pVal);\n    }\n    if (((bVar6 & 0xfd) == 0x8d) && (CONCAT31(in_register_0000001c,affinity) == 0x41)) {\n      applyAffinity(pVal,'C','\x01');\n    }\n    else {\n      applyAffinity(pVal,affinity,'\x01');\n    }\n    if ((pVal->flags & 0xc) != 0) {\n      pVal->flags = pVal->flags & 0xfffd;\n    }\n    if (CONCAT31(in_register_00000018,enc) == 1) {\n      iVar4 = 0;\n    }\n    else {\n      iVar4 = sqlite3VdbeChangeEncoding(pVal,CONCAT31(in_register_00000018,enc));\n    }\n  }\n  else {\n    puVar7 = PTR_LAB_0018f958 + 0x2d20;\n    pEVar2 = pExpr;\nLAB_000a1594:\n    pExpr = pEVar2;\n    if ((bVar6 & 0xfd) == 0x8d) goto LAB_000a1740;\n    if (bVar6 == 0xa1) goto LAB_000a1688;\n    if (bVar6 == 0x6e) {\n      pVal = (sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);\n      if (pVal != (sqlite3_value *)0x0) {\n        (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(pVal);\n        iVar4 = 0;\n        goto LAB_000a180c;\n      }\n      goto LAB_000a1a8c;\n    }\n    if (bVar6 == 0x8e) {\n      pMem = (Mem *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);\n      pVal = pMem;\n      if (pMem == (Mem *)0x0) goto LAB_000a1a8c;\n      iVar5 = (pEVar2->u).iValue + 2;\n      iVar4 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(iVar5);\n      pcVar3 = (char *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(db,iVar5,iVar4 + -1);\n      sqlite3VdbeMemSetStr\n                (pMem,pcVar3,(iVar4 + -1) / 2,'\0',\n                 (_func_void_void_ptr *)(PTR_LAB_0018fb58 + 0x1030));\n      iVar4 = 0;\n    }\n    else {\n      iVar4 = 0;\n      if (bVar6 == 0x9b) {\n        pVal = (sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);\n        if (pVal == (sqlite3_value *)0x0) {\n          iVar4 = 0;\n        }\n        else {\n          pVal->flags = 4;\n          cVar1 = *(char *)((pEVar2->u).iValue + 4);\n          (pVal->u).nZero = 0;\n          *(uint *)((int)&pVal->u + 4) = (uint)(cVar1 == '\0');\n          iVar4 = 0;\n        }\n      }\n    }\n  }\nLAB_000a180c:\n  *ppVal = pVal;\nLAB_000a1814:\n  if (iStack_2c != *(int *)PTR___stack_chk_guard_0018fecc) {\n    iVar4 = (*(code *)PTR___stack_chk_fail_0018fea0)();\n    return iVar4;\n  }\n  return iVar4;\n}" primitive_type (function_declarator "valueFromExpr(sqlite3 *db,Expr *pExpr,u8 enc,u8 affinity,sqlite3_value **ppVal,\n                 ValueNewStat4Ctx *pCtx)" identifier (parameter_list "(sqlite3 *db,Expr *pExpr,u8 enc,u8 affinity,sqlite3_value **ppVal,\n                 ValueNewStat4Ctx *pCtx)" ( (parameter_declaration "sqlite3 *db" type_identifier (pointer_declarator "*db" * identifier)) , (parameter_declaration "Expr *pExpr" type_identifier (pointer_declarator "*pExpr" * identifier)) , (parameter_declaration "u8 enc" type_identifier identifier) , (parameter_declaration "u8 affinity" type_identifier identifier) , (parameter_declaration "sqlite3_value **ppVal" type_identifier (pointer_declarator "**ppVal" * (pointer_declarator "*ppVal" * identifier))) , (parameter_declaration "ValueNewStat4Ctx *pCtx" type_identifier (pointer_declarator "*pCtx" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  u8 affinity_00;\n  Expr *pEVar2;\n  Mem *pMem;\n  char *pcVar3;\n  undefined3 in_register_00000018;\n  undefined3 in_register_0000001c;\n  int iVar4;\n  byte bVar6;\n  int iVar5;\n  undefined *puVar7;\n  sqlite3_value *pVal;\n  int iStack_2c;\n  \n  iStack_2c = *(int *)PTR___stack_chk_guard_0018fecc;\n  pVal = (sqlite3_value *)0x0;\n  for (; (bVar6 = pExpr->op, bVar6 == 0xa2 || (bVar6 == 0xa9)); pExpr = pExpr->pLeft) {\n  }\n  if (bVar6 == 0xa4) {\n    bVar6 = pExpr->op2;\n  }\n  if (bVar6 == 0x24) {\n    affinity_00 = (*(code *)(PTR_LAB_0018fbbc + 0x7c60))((pExpr->u).zToken,0);\n    iVar4 = valueFromExpr(db,pExpr->pLeft,enc,affinity_00,ppVal,pCtx);\n    if (*ppVal != (Mem *)0x0) {\n      sqlite3VdbeMemCast(*ppVal,affinity_00,'\x01');\n      applyAffinity(*ppVal,affinity,'\x01');\n    }\n    goto LAB_000a1814;\n  }\n  if (bVar6 == 0xa1) {\n    pEVar2 = pExpr->pLeft;\n    bVar6 = pEVar2->op;\n    if ((bVar6 & 0xfd) == 0x8d) {\n      puVar7 = PTR_LAB_0018f958 + 0xd80;\n      goto LAB_000a1594;\n    }\nLAB_000a1688:\n    iVar4 = valueFromExpr(db,pExpr->pLeft,enc,affinity,&pVal,pCtx);\n    if (iVar4 == 0) {\n      iVar4 = 0;\n      if (pVal != (sqlite3_value *)0x0) {\n        (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n        if ((pVal->flags & 8) == 0) {\n          iVar5 = *(int *)((int)&pVal->u + 4);\n          if (((pVal->u).nZero == -0x80000000) && (iVar5 == 0)) {\n            pVal->u = *(MemValue *)(PTR_DAT_0018fbb0 + -0x3fb8);\n            pVal->flags = pVal->flags & 0x3e00 | 8;\n          }\n          else {\n            iVar5 = -iVar5;\n            (pVal->u).zPType = (char *)(-(uint)(iVar5 != 0) - (pVal->u).nZero);\n            *(int *)((int)&pVal->u + 4) = iVar5;\n          }\n        }\n        else {\n          (pVal->u).nZero = (pVal->u).nZero ^ 0x80000000;\n        }\n        applyAffinity(pVal,affinity,enc);\n      }\n    }\n    else {\n      iVar4 = 0;\n    }\n    goto LAB_000a180c;\n  }\n  if (bVar6 == 0x6a) {\n    puVar7 = PTR_LAB_0018f958 + 0x2d20;\nLAB_000a1740:\n    pVal = (sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);\n    if (pVal == (sqlite3_value *)0x0) {\nLAB_000a1a8c:\n      (*(code *)(PTR_LAB_0018fb58 + 0x1354))(db);\n      (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(db,0);\n      (*(code *)(PTR_LAB_0018fc04 + -0x5984))(pVal);\n      iVar4 = 7;\n      goto LAB_000a1814;\n    }\n    if ((pExpr->flags & 0x400) == 0) {\n      pcVar3 = sqlite3MPrintf(db,PTR_LAB_0018f958 + 0x172c,puVar7,(pExpr->u).zToken);\n      if (pcVar3 == (char *)0x0) goto LAB_000a1a8c;\n      sqlite3ValueSetStr(pVal,-1,pcVar3,'\x01',(_func_void_void_ptr *)(PTR_LAB_0018fb58 + 0x1030));\n    }\n    else {\n      (*(code *)(PTR_LAB_0018fc04 + -0x6694))(pVal);\n    }\n    if (((bVar6 & 0xfd) == 0x8d) && (CONCAT31(in_register_0000001c,affinity) == 0x41)) {\n      applyAffinity(pVal,'C','\x01');\n    }\n    else {\n      applyAffinity(pVal,affinity,'\x01');\n    }\n    if ((pVal->flags & 0xc) != 0) {\n      pVal->flags = pVal->flags & 0xfffd;\n    }\n    if (CONCAT31(in_register_00000018,enc) == 1) {\n      iVar4 = 0;\n    }\n    else {\n      iVar4 = sqlite3VdbeChangeEncoding(pVal,CONCAT31(in_register_00000018,enc));\n    }\n  }\n  else {\n    puVar7 = PTR_LAB_0018f958 + 0x2d20;\n    pEVar2 = pExpr;\nLAB_000a1594:\n    pExpr = pEVar2;\n    if ((bVar6 & 0xfd) == 0x8d) goto LAB_000a1740;\n    if (bVar6 == 0xa1) goto LAB_000a1688;\n    if (bVar6 == 0x6e) {\n      pVal = (sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);\n      if (pVal != (sqlite3_value *)0x0) {\n        (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(pVal);\n        iVar4 = 0;\n        goto LAB_000a180c;\n      }\n      goto LAB_000a1a8c;\n    }\n    if (bVar6 == 0x8e) {\n      pMem = (Mem *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);\n      pVal = pMem;\n      if (pMem == (Mem *)0x0) goto LAB_000a1a8c;\n      iVar5 = (pEVar2->u).iValue + 2;\n      iVar4 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(iVar5);\n      pcVar3 = (char *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(db,iVar5,iVar4 + -1);\n      sqlite3VdbeMemSetStr\n                (pMem,pcVar3,(iVar4 + -1) / 2,'\0',\n                 (_func_void_void_ptr *)(PTR_LAB_0018fb58 + 0x1030));\n      iVar4 = 0;\n    }\n    else {\n      iVar4 = 0;\n      if (bVar6 == 0x9b) {\n        pVal = (sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);\n        if (pVal == (sqlite3_value *)0x0) {\n          iVar4 = 0;\n        }\n        else {\n          pVal->flags = 4;\n          cVar1 = *(char *)((pEVar2->u).iValue + 4);\n          (pVal->u).nZero = 0;\n          *(uint *)((int)&pVal->u + 4) = (uint)(cVar1 == '\0');\n          iVar4 = 0;\n        }\n      }\n    }\n  }\nLAB_000a180c:\n  *ppVal = pVal;\nLAB_000a1814:\n  if (iStack_2c != *(int *)PTR___stack_chk_guard_0018fecc) {\n    iVar4 = (*(code *)PTR___stack_chk_fail_0018fea0)();\n    return iVar4;\n  }\n  return iVar4;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "u8 affinity_00;" type_identifier identifier ;) (declaration "Expr *pEVar2;" type_identifier (pointer_declarator "*pEVar2" * identifier) ;) (declaration "Mem *pMem;" type_identifier (pointer_declarator "*pMem" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "undefined3 in_register_00000018;" type_identifier identifier ;) (declaration "undefined3 in_register_0000001c;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "byte bVar6;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "sqlite3_value *pVal;" type_identifier (pointer_declarator "*pVal" * identifier) ;) (declaration "int iStack_2c;" primitive_type identifier ;) (expression_statement "iStack_2c = *(int *)PTR___stack_chk_guard_0018fecc;" (assignment_expression "iStack_2c = *(int *)PTR___stack_chk_guard_0018fecc" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0018fecc" * (cast_expression "(int *)PTR___stack_chk_guard_0018fecc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pVal = (sqlite3_value *)0x0;" (assignment_expression "pVal = (sqlite3_value *)0x0" identifier = (cast_expression "(sqlite3_value *)0x0" ( (type_descriptor "sqlite3_value *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (for_statement "for (; (bVar6 = pExpr->op, bVar6 == 0xa2 || (bVar6 == 0xa9)); pExpr = pExpr->pLeft) {\n  }" for ( ; (parenthesized_expression "(bVar6 = pExpr->op, bVar6 == 0xa2 || (bVar6 == 0xa9))" ( (comma_expression "bVar6 = pExpr->op, bVar6 == 0xa2 || (bVar6 == 0xa9)" (assignment_expression "bVar6 = pExpr->op" identifier = (field_expression "pExpr->op" identifier -> field_identifier)) , (binary_expression "bVar6 == 0xa2 || (bVar6 == 0xa9)" (binary_expression "bVar6 == 0xa2" identifier == number_literal) || (parenthesized_expression "(bVar6 == 0xa9)" ( (binary_expression "bVar6 == 0xa9" identifier == number_literal) )))) )) ; (assignment_expression "pExpr = pExpr->pLeft" identifier = (field_expression "pExpr->pLeft" identifier -> field_identifier)) ) (compound_statement "{\n  }" { })) (if_statement "if (bVar6 == 0xa4) {\n    bVar6 = pExpr->op2;\n  }" if (parenthesized_expression "(bVar6 == 0xa4)" ( (binary_expression "bVar6 == 0xa4" identifier == number_literal) )) (compound_statement "{\n    bVar6 = pExpr->op2;\n  }" { (expression_statement "bVar6 = pExpr->op2;" (assignment_expression "bVar6 = pExpr->op2" identifier = (field_expression "pExpr->op2" identifier -> field_identifier)) ;) })) (if_statement "if (bVar6 == 0x24) {\n    affinity_00 = (*(code *)(PTR_LAB_0018fbbc + 0x7c60))((pExpr->u).zToken,0);\n    iVar4 = valueFromExpr(db,pExpr->pLeft,enc,affinity_00,ppVal,pCtx);\n    if (*ppVal != (Mem *)0x0) {\n      sqlite3VdbeMemCast(*ppVal,affinity_00,'\x01');\n      applyAffinity(*ppVal,affinity,'\x01');\n    }\n    goto LAB_000a1814;\n  }" if (parenthesized_expression "(bVar6 == 0x24)" ( (binary_expression "bVar6 == 0x24" identifier == number_literal) )) (compound_statement "{\n    affinity_00 = (*(code *)(PTR_LAB_0018fbbc + 0x7c60))((pExpr->u).zToken,0);\n    iVar4 = valueFromExpr(db,pExpr->pLeft,enc,affinity_00,ppVal,pCtx);\n    if (*ppVal != (Mem *)0x0) {\n      sqlite3VdbeMemCast(*ppVal,affinity_00,'\x01');\n      applyAffinity(*ppVal,affinity,'\x01');\n    }\n    goto LAB_000a1814;\n  }" { (expression_statement "affinity_00 = (*(code *)(PTR_LAB_0018fbbc + 0x7c60))((pExpr->u).zToken,0);" (assignment_expression "affinity_00 = (*(code *)(PTR_LAB_0018fbbc + 0x7c60))((pExpr->u).zToken,0)" identifier = (call_expression "(*(code *)(PTR_LAB_0018fbbc + 0x7c60))((pExpr->u).zToken,0)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbbc + 0x7c60))" ( (pointer_expression "*(code *)(PTR_LAB_0018fbbc + 0x7c60)" * (cast_expression "(code *)(PTR_LAB_0018fbbc + 0x7c60)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbbc + 0x7c60)" ( (binary_expression "PTR_LAB_0018fbbc + 0x7c60" identifier + number_literal) )))) )) (argument_list "((pExpr->u).zToken,0)" ( (field_expression "(pExpr->u).zToken" (parenthesized_expression "(pExpr->u)" ( (field_expression "pExpr->u" identifier -> field_identifier) )) . field_identifier) , number_literal )))) ;) (expression_statement "iVar4 = valueFromExpr(db,pExpr->pLeft,enc,affinity_00,ppVal,pCtx);" (assignment_expression "iVar4 = valueFromExpr(db,pExpr->pLeft,enc,affinity_00,ppVal,pCtx)" identifier = (call_expression "valueFromExpr(db,pExpr->pLeft,enc,affinity_00,ppVal,pCtx)" identifier (argument_list "(db,pExpr->pLeft,enc,affinity_00,ppVal,pCtx)" ( identifier , (field_expression "pExpr->pLeft" identifier -> field_identifier) , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (*ppVal != (Mem *)0x0) {\n      sqlite3VdbeMemCast(*ppVal,affinity_00,'\x01');\n      applyAffinity(*ppVal,affinity,'\x01');\n    }" if (parenthesized_expression "(*ppVal != (Mem *)0x0)" ( (binary_expression "*ppVal != (Mem *)0x0" (pointer_expression "*ppVal" * identifier) != (cast_expression "(Mem *)0x0" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      sqlite3VdbeMemCast(*ppVal,affinity_00,'\x01');\n      applyAffinity(*ppVal,affinity,'\x01');\n    }" { (expression_statement "sqlite3VdbeMemCast(*ppVal,affinity_00,'\x01');" (call_expression "sqlite3VdbeMemCast(*ppVal,affinity_00,'\x01')" identifier (argument_list "(*ppVal,affinity_00,'\x01')" ( (pointer_expression "*ppVal" * identifier) , identifier , (char_literal "'\x01'" ' escape_sequence ') ))) ;) (expression_statement "applyAffinity(*ppVal,affinity,'\x01');" (call_expression "applyAffinity(*ppVal,affinity,'\x01')" identifier (argument_list "(*ppVal,affinity,'\x01')" ( (pointer_expression "*ppVal" * identifier) , identifier , (char_literal "'\x01'" ' escape_sequence ') ))) ;) })) (goto_statement "goto LAB_000a1814;" goto statement_identifier ;) })) (if_statement "if (bVar6 == 0xa1) {\n    pEVar2 = pExpr->pLeft;\n    bVar6 = pEVar2->op;\n    if ((bVar6 & 0xfd) == 0x8d) {\n      puVar7 = PTR_LAB_0018f958 + 0xd80;\n      goto LAB_000a1594;\n    }\nLAB_000a1688:\n    iVar4 = valueFromExpr(db,pExpr->pLeft,enc,affinity,&pVal,pCtx);\n    if (iVar4 == 0) {\n      iVar4 = 0;\n      if (pVal != (sqlite3_value *)0x0) {\n        (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n        if ((pVal->flags & 8) == 0) {\n          iVar5 = *(int *)((int)&pVal->u + 4);\n          if (((pVal->u).nZero == -0x80000000) && (iVar5 == 0)) {\n            pVal->u = *(MemValue *)(PTR_DAT_0018fbb0 + -0x3fb8);\n            pVal->flags = pVal->flags & 0x3e00 | 8;\n          }\n          else {\n            iVar5 = -iVar5;\n            (pVal->u).zPType = (char *)(-(uint)(iVar5 != 0) - (pVal->u).nZero);\n            *(int *)((int)&pVal->u + 4) = iVar5;\n          }\n        }\n        else {\n          (pVal->u).nZero = (pVal->u).nZero ^ 0x80000000;\n        }\n        applyAffinity(pVal,affinity,enc);\n      }\n    }\n    else {\n      iVar4 = 0;\n    }\n    goto LAB_000a180c;\n  }" if (parenthesized_expression "(bVar6 == 0xa1)" ( (binary_expression "bVar6 == 0xa1" identifier == number_literal) )) (compound_statement "{\n    pEVar2 = pExpr->pLeft;\n    bVar6 = pEVar2->op;\n    if ((bVar6 & 0xfd) == 0x8d) {\n      puVar7 = PTR_LAB_0018f958 + 0xd80;\n      goto LAB_000a1594;\n    }\nLAB_000a1688:\n    iVar4 = valueFromExpr(db,pExpr->pLeft,enc,affinity,&pVal,pCtx);\n    if (iVar4 == 0) {\n      iVar4 = 0;\n      if (pVal != (sqlite3_value *)0x0) {\n        (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n        if ((pVal->flags & 8) == 0) {\n          iVar5 = *(int *)((int)&pVal->u + 4);\n          if (((pVal->u).nZero == -0x80000000) && (iVar5 == 0)) {\n            pVal->u = *(MemValue *)(PTR_DAT_0018fbb0 + -0x3fb8);\n            pVal->flags = pVal->flags & 0x3e00 | 8;\n          }\n          else {\n            iVar5 = -iVar5;\n            (pVal->u).zPType = (char *)(-(uint)(iVar5 != 0) - (pVal->u).nZero);\n            *(int *)((int)&pVal->u + 4) = iVar5;\n          }\n        }\n        else {\n          (pVal->u).nZero = (pVal->u).nZero ^ 0x80000000;\n        }\n        applyAffinity(pVal,affinity,enc);\n      }\n    }\n    else {\n      iVar4 = 0;\n    }\n    goto LAB_000a180c;\n  }" { (expression_statement "pEVar2 = pExpr->pLeft;" (assignment_expression "pEVar2 = pExpr->pLeft" identifier = (field_expression "pExpr->pLeft" identifier -> field_identifier)) ;) (expression_statement "bVar6 = pEVar2->op;" (assignment_expression "bVar6 = pEVar2->op" identifier = (field_expression "pEVar2->op" identifier -> field_identifier)) ;) (if_statement "if ((bVar6 & 0xfd) == 0x8d) {\n      puVar7 = PTR_LAB_0018f958 + 0xd80;\n      goto LAB_000a1594;\n    }" if (parenthesized_expression "((bVar6 & 0xfd) == 0x8d)" ( (binary_expression "(bVar6 & 0xfd) == 0x8d" (parenthesized_expression "(bVar6 & 0xfd)" ( (binary_expression "bVar6 & 0xfd" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      puVar7 = PTR_LAB_0018f958 + 0xd80;\n      goto LAB_000a1594;\n    }" { (expression_statement "puVar7 = PTR_LAB_0018f958 + 0xd80;" (assignment_expression "puVar7 = PTR_LAB_0018f958 + 0xd80" identifier = (binary_expression "PTR_LAB_0018f958 + 0xd80" identifier + number_literal)) ;) (goto_statement "goto LAB_000a1594;" goto statement_identifier ;) })) (labeled_statement "LAB_000a1688:\n    iVar4 = valueFromExpr(db,pExpr->pLeft,enc,affinity,&pVal,pCtx);" statement_identifier : (expression_statement "iVar4 = valueFromExpr(db,pExpr->pLeft,enc,affinity,&pVal,pCtx);" (assignment_expression "iVar4 = valueFromExpr(db,pExpr->pLeft,enc,affinity,&pVal,pCtx)" identifier = (call_expression "valueFromExpr(db,pExpr->pLeft,enc,affinity,&pVal,pCtx)" identifier (argument_list "(db,pExpr->pLeft,enc,affinity,&pVal,pCtx)" ( identifier , (field_expression "pExpr->pLeft" identifier -> field_identifier) , identifier , identifier , (pointer_expression "&pVal" & identifier) , identifier )))) ;)) (if_statement "if (iVar4 == 0) {\n      iVar4 = 0;\n      if (pVal != (sqlite3_value *)0x0) {\n        (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n        if ((pVal->flags & 8) == 0) {\n          iVar5 = *(int *)((int)&pVal->u + 4);\n          if (((pVal->u).nZero == -0x80000000) && (iVar5 == 0)) {\n            pVal->u = *(MemValue *)(PTR_DAT_0018fbb0 + -0x3fb8);\n            pVal->flags = pVal->flags & 0x3e00 | 8;\n          }\n          else {\n            iVar5 = -iVar5;\n            (pVal->u).zPType = (char *)(-(uint)(iVar5 != 0) - (pVal->u).nZero);\n            *(int *)((int)&pVal->u + 4) = iVar5;\n          }\n        }\n        else {\n          (pVal->u).nZero = (pVal->u).nZero ^ 0x80000000;\n        }\n        applyAffinity(pVal,affinity,enc);\n      }\n    }\n    else {\n      iVar4 = 0;\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar4 = 0;\n      if (pVal != (sqlite3_value *)0x0) {\n        (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n        if ((pVal->flags & 8) == 0) {\n          iVar5 = *(int *)((int)&pVal->u + 4);\n          if (((pVal->u).nZero == -0x80000000) && (iVar5 == 0)) {\n            pVal->u = *(MemValue *)(PTR_DAT_0018fbb0 + -0x3fb8);\n            pVal->flags = pVal->flags & 0x3e00 | 8;\n          }\n          else {\n            iVar5 = -iVar5;\n            (pVal->u).zPType = (char *)(-(uint)(iVar5 != 0) - (pVal->u).nZero);\n            *(int *)((int)&pVal->u + 4) = iVar5;\n          }\n        }\n        else {\n          (pVal->u).nZero = (pVal->u).nZero ^ 0x80000000;\n        }\n        applyAffinity(pVal,affinity,enc);\n      }\n    }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (if_statement "if (pVal != (sqlite3_value *)0x0) {\n        (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n        if ((pVal->flags & 8) == 0) {\n          iVar5 = *(int *)((int)&pVal->u + 4);\n          if (((pVal->u).nZero == -0x80000000) && (iVar5 == 0)) {\n            pVal->u = *(MemValue *)(PTR_DAT_0018fbb0 + -0x3fb8);\n            pVal->flags = pVal->flags & 0x3e00 | 8;\n          }\n          else {\n            iVar5 = -iVar5;\n            (pVal->u).zPType = (char *)(-(uint)(iVar5 != 0) - (pVal->u).nZero);\n            *(int *)((int)&pVal->u + 4) = iVar5;\n          }\n        }\n        else {\n          (pVal->u).nZero = (pVal->u).nZero ^ 0x80000000;\n        }\n        applyAffinity(pVal,affinity,enc);\n      }" if (parenthesized_expression "(pVal != (sqlite3_value *)0x0)" ( (binary_expression "pVal != (sqlite3_value *)0x0" identifier != (cast_expression "(sqlite3_value *)0x0" ( (type_descriptor "sqlite3_value *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n        if ((pVal->flags & 8) == 0) {\n          iVar5 = *(int *)((int)&pVal->u + 4);\n          if (((pVal->u).nZero == -0x80000000) && (iVar5 == 0)) {\n            pVal->u = *(MemValue *)(PTR_DAT_0018fbb0 + -0x3fb8);\n            pVal->flags = pVal->flags & 0x3e00 | 8;\n          }\n          else {\n            iVar5 = -iVar5;\n            (pVal->u).zPType = (char *)(-(uint)(iVar5 != 0) - (pVal->u).nZero);\n            *(int *)((int)&pVal->u + 4) = iVar5;\n          }\n        }\n        else {\n          (pVal->u).nZero = (pVal->u).nZero ^ 0x80000000;\n        }\n        applyAffinity(pVal,affinity,enc);\n      }" { (expression_statement "(*(code *)(PTR_LAB_0018fbd0 + 0x6988))();" (call_expression "(*(code *)(PTR_LAB_0018fbd0 + 0x6988))()" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbd0 + 0x6988))" ( (pointer_expression "*(code *)(PTR_LAB_0018fbd0 + 0x6988)" * (cast_expression "(code *)(PTR_LAB_0018fbd0 + 0x6988)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbd0 + 0x6988)" ( (binary_expression "PTR_LAB_0018fbd0 + 0x6988" identifier + number_literal) )))) )) (argument_list "()" ( ))) ;) (if_statement "if ((pVal->flags & 8) == 0) {\n          iVar5 = *(int *)((int)&pVal->u + 4);\n          if (((pVal->u).nZero == -0x80000000) && (iVar5 == 0)) {\n            pVal->u = *(MemValue *)(PTR_DAT_0018fbb0 + -0x3fb8);\n            pVal->flags = pVal->flags & 0x3e00 | 8;\n          }\n          else {\n            iVar5 = -iVar5;\n            (pVal->u).zPType = (char *)(-(uint)(iVar5 != 0) - (pVal->u).nZero);\n            *(int *)((int)&pVal->u + 4) = iVar5;\n          }\n        }\n        else {\n          (pVal->u).nZero = (pVal->u).nZero ^ 0x80000000;\n        }" if (parenthesized_expression "((pVal->flags & 8) == 0)" ( (binary_expression "(pVal->flags & 8) == 0" (parenthesized_expression "(pVal->flags & 8)" ( (binary_expression "pVal->flags & 8" (field_expression "pVal->flags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n          iVar5 = *(int *)((int)&pVal->u + 4);\n          if (((pVal->u).nZero == -0x80000000) && (iVar5 == 0)) {\n            pVal->u = *(MemValue *)(PTR_DAT_0018fbb0 + -0x3fb8);\n            pVal->flags = pVal->flags & 0x3e00 | 8;\n          }\n          else {\n            iVar5 = -iVar5;\n            (pVal->u).zPType = (char *)(-(uint)(iVar5 != 0) - (pVal->u).nZero);\n            *(int *)((int)&pVal->u + 4) = iVar5;\n          }\n        }" { (expression_statement "iVar5 = *(int *)((int)&pVal->u + 4);" (assignment_expression "iVar5 = *(int *)((int)&pVal->u + 4)" identifier = (pointer_expression "*(int *)((int)&pVal->u + 4)" * (cast_expression "(int *)((int)&pVal->u + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pVal->u + 4)" ( (binary_expression "(int)&pVal->u + 4" (cast_expression "(int)&pVal->u" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pVal->u" & (field_expression "pVal->u" identifier -> field_identifier))) + number_literal) ))))) ;) (if_statement "if (((pVal->u).nZero == -0x80000000) && (iVar5 == 0)) {\n            pVal->u = *(MemValue *)(PTR_DAT_0018fbb0 + -0x3fb8);\n            pVal->flags = pVal->flags & 0x3e00 | 8;\n          }\n          else {\n            iVar5 = -iVar5;\n            (pVal->u).zPType = (char *)(-(uint)(iVar5 != 0) - (pVal->u).nZero);\n            *(int *)((int)&pVal->u + 4) = iVar5;\n          }" if (parenthesized_expression "(((pVal->u).nZero == -0x80000000) && (iVar5 == 0))" ( (binary_expression "((pVal->u).nZero == -0x80000000) && (iVar5 == 0)" (parenthesized_expression "((pVal->u).nZero == -0x80000000)" ( (binary_expression "(pVal->u).nZero == -0x80000000" (field_expression "(pVal->u).nZero" (parenthesized_expression "(pVal->u)" ( (field_expression "pVal->u" identifier -> field_identifier) )) . field_identifier) == number_literal) )) && (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) ))) )) (compound_statement "{\n            pVal->u = *(MemValue *)(PTR_DAT_0018fbb0 + -0x3fb8);\n            pVal->flags = pVal->flags & 0x3e00 | 8;\n          }" { (expression_statement "pVal->u = *(MemValue *)(PTR_DAT_0018fbb0 + -0x3fb8);" (assignment_expression "pVal->u = *(MemValue *)(PTR_DAT_0018fbb0 + -0x3fb8)" (field_expression "pVal->u" identifier -> field_identifier) = (pointer_expression "*(MemValue *)(PTR_DAT_0018fbb0 + -0x3fb8)" * (cast_expression "(MemValue *)(PTR_DAT_0018fbb0 + -0x3fb8)" ( (type_descriptor "MemValue *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0018fbb0 + -0x3fb8)" ( (binary_expression "PTR_DAT_0018fbb0 + -0x3fb8" identifier + number_literal) ))))) ;) (expression_statement "pVal->flags = pVal->flags & 0x3e00 | 8;" (assignment_expression "pVal->flags = pVal->flags & 0x3e00 | 8" (field_expression "pVal->flags" identifier -> field_identifier) = (binary_expression "pVal->flags & 0x3e00 | 8" (binary_expression "pVal->flags & 0x3e00" (field_expression "pVal->flags" identifier -> field_identifier) & number_literal) | number_literal)) ;) }) (else_clause "else {\n            iVar5 = -iVar5;\n            (pVal->u).zPType = (char *)(-(uint)(iVar5 != 0) - (pVal->u).nZero);\n            *(int *)((int)&pVal->u + 4) = iVar5;\n          }" else (compound_statement "{\n            iVar5 = -iVar5;\n            (pVal->u).zPType = (char *)(-(uint)(iVar5 != 0) - (pVal->u).nZero);\n            *(int *)((int)&pVal->u + 4) = iVar5;\n          }" { (expression_statement "iVar5 = -iVar5;" (assignment_expression "iVar5 = -iVar5" identifier = (unary_expression "-iVar5" - identifier)) ;) (expression_statement "(pVal->u).zPType = (char *)(-(uint)(iVar5 != 0) - (pVal->u).nZero);" (assignment_expression "(pVal->u).zPType = (char *)(-(uint)(iVar5 != 0) - (pVal->u).nZero)" (field_expression "(pVal->u).zPType" (parenthesized_expression "(pVal->u)" ( (field_expression "pVal->u" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(char *)(-(uint)(iVar5 != 0) - (pVal->u).nZero)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(-(uint)(iVar5 != 0) - (pVal->u).nZero)" ( (binary_expression "-(uint)(iVar5 != 0) - (pVal->u).nZero" (unary_expression "-(uint)(iVar5 != 0)" - (call_expression "(uint)(iVar5 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )))) - (field_expression "(pVal->u).nZero" (parenthesized_expression "(pVal->u)" ( (field_expression "pVal->u" identifier -> field_identifier) )) . field_identifier)) )))) ;) (expression_statement "*(int *)((int)&pVal->u + 4) = iVar5;" (assignment_expression "*(int *)((int)&pVal->u + 4) = iVar5" (pointer_expression "*(int *)((int)&pVal->u + 4)" * (cast_expression "(int *)((int)&pVal->u + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pVal->u + 4)" ( (binary_expression "(int)&pVal->u + 4" (cast_expression "(int)&pVal->u" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pVal->u" & (field_expression "pVal->u" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) }))) }) (else_clause "else {\n          (pVal->u).nZero = (pVal->u).nZero ^ 0x80000000;\n        }" else (compound_statement "{\n          (pVal->u).nZero = (pVal->u).nZero ^ 0x80000000;\n        }" { (expression_statement "(pVal->u).nZero = (pVal->u).nZero ^ 0x80000000;" (assignment_expression "(pVal->u).nZero = (pVal->u).nZero ^ 0x80000000" (field_expression "(pVal->u).nZero" (parenthesized_expression "(pVal->u)" ( (field_expression "pVal->u" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(pVal->u).nZero ^ 0x80000000" (field_expression "(pVal->u).nZero" (parenthesized_expression "(pVal->u)" ( (field_expression "pVal->u" identifier -> field_identifier) )) . field_identifier) ^ number_literal)) ;) }))) (expression_statement "applyAffinity(pVal,affinity,enc);" (call_expression "applyAffinity(pVal,affinity,enc)" identifier (argument_list "(pVal,affinity,enc)" ( identifier , identifier , identifier ))) ;) })) }) (else_clause "else {\n      iVar4 = 0;\n    }" else (compound_statement "{\n      iVar4 = 0;\n    }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) }))) (goto_statement "goto LAB_000a180c;" goto statement_identifier ;) })) (if_statement "if (bVar6 == 0x6a) {\n    puVar7 = PTR_LAB_0018f958 + 0x2d20;\nLAB_000a1740:\n    pVal = (sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);\n    if (pVal == (sqlite3_value *)0x0) {\nLAB_000a1a8c:\n      (*(code *)(PTR_LAB_0018fb58 + 0x1354))(db);\n      (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(db,0);\n      (*(code *)(PTR_LAB_0018fc04 + -0x5984))(pVal);\n      iVar4 = 7;\n      goto LAB_000a1814;\n    }\n    if ((pExpr->flags & 0x400) == 0) {\n      pcVar3 = sqlite3MPrintf(db,PTR_LAB_0018f958 + 0x172c,puVar7,(pExpr->u).zToken);\n      if (pcVar3 == (char *)0x0) goto LAB_000a1a8c;\n      sqlite3ValueSetStr(pVal,-1,pcVar3,'\x01',(_func_void_void_ptr *)(PTR_LAB_0018fb58 + 0x1030));\n    }\n    else {\n      (*(code *)(PTR_LAB_0018fc04 + -0x6694))(pVal);\n    }\n    if (((bVar6 & 0xfd) == 0x8d) && (CONCAT31(in_register_0000001c,affinity) == 0x41)) {\n      applyAffinity(pVal,'C','\x01');\n    }\n    else {\n      applyAffinity(pVal,affinity,'\x01');\n    }\n    if ((pVal->flags & 0xc) != 0) {\n      pVal->flags = pVal->flags & 0xfffd;\n    }\n    if (CONCAT31(in_register_00000018,enc) == 1) {\n      iVar4 = 0;\n    }\n    else {\n      iVar4 = sqlite3VdbeChangeEncoding(pVal,CONCAT31(in_register_00000018,enc));\n    }\n  }\n  else {\n    puVar7 = PTR_LAB_0018f958 + 0x2d20;\n    pEVar2 = pExpr;\nLAB_000a1594:\n    pExpr = pEVar2;\n    if ((bVar6 & 0xfd) == 0x8d) goto LAB_000a1740;\n    if (bVar6 == 0xa1) goto LAB_000a1688;\n    if (bVar6 == 0x6e) {\n      pVal = (sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);\n      if (pVal != (sqlite3_value *)0x0) {\n        (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(pVal);\n        iVar4 = 0;\n        goto LAB_000a180c;\n      }\n      goto LAB_000a1a8c;\n    }\n    if (bVar6 == 0x8e) {\n      pMem = (Mem *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);\n      pVal = pMem;\n      if (pMem == (Mem *)0x0) goto LAB_000a1a8c;\n      iVar5 = (pEVar2->u).iValue + 2;\n      iVar4 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(iVar5);\n      pcVar3 = (char *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(db,iVar5,iVar4 + -1);\n      sqlite3VdbeMemSetStr\n                (pMem,pcVar3,(iVar4 + -1) / 2,'\0',\n                 (_func_void_void_ptr *)(PTR_LAB_0018fb58 + 0x1030));\n      iVar4 = 0;\n    }\n    else {\n      iVar4 = 0;\n      if (bVar6 == 0x9b) {\n        pVal = (sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);\n        if (pVal == (sqlite3_value *)0x0) {\n          iVar4 = 0;\n        }\n        else {\n          pVal->flags = 4;\n          cVar1 = *(char *)((pEVar2->u).iValue + 4);\n          (pVal->u).nZero = 0;\n          *(uint *)((int)&pVal->u + 4) = (uint)(cVar1 == '\0');\n          iVar4 = 0;\n        }\n      }\n    }\n  }" if (parenthesized_expression "(bVar6 == 0x6a)" ( (binary_expression "bVar6 == 0x6a" identifier == number_literal) )) (compound_statement "{\n    puVar7 = PTR_LAB_0018f958 + 0x2d20;\nLAB_000a1740:\n    pVal = (sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);\n    if (pVal == (sqlite3_value *)0x0) {\nLAB_000a1a8c:\n      (*(code *)(PTR_LAB_0018fb58 + 0x1354))(db);\n      (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(db,0);\n      (*(code *)(PTR_LAB_0018fc04 + -0x5984))(pVal);\n      iVar4 = 7;\n      goto LAB_000a1814;\n    }\n    if ((pExpr->flags & 0x400) == 0) {\n      pcVar3 = sqlite3MPrintf(db,PTR_LAB_0018f958 + 0x172c,puVar7,(pExpr->u).zToken);\n      if (pcVar3 == (char *)0x0) goto LAB_000a1a8c;\n      sqlite3ValueSetStr(pVal,-1,pcVar3,'\x01',(_func_void_void_ptr *)(PTR_LAB_0018fb58 + 0x1030));\n    }\n    else {\n      (*(code *)(PTR_LAB_0018fc04 + -0x6694))(pVal);\n    }\n    if (((bVar6 & 0xfd) == 0x8d) && (CONCAT31(in_register_0000001c,affinity) == 0x41)) {\n      applyAffinity(pVal,'C','\x01');\n    }\n    else {\n      applyAffinity(pVal,affinity,'\x01');\n    }\n    if ((pVal->flags & 0xc) != 0) {\n      pVal->flags = pVal->flags & 0xfffd;\n    }\n    if (CONCAT31(in_register_00000018,enc) == 1) {\n      iVar4 = 0;\n    }\n    else {\n      iVar4 = sqlite3VdbeChangeEncoding(pVal,CONCAT31(in_register_00000018,enc));\n    }\n  }" { (expression_statement "puVar7 = PTR_LAB_0018f958 + 0x2d20;" (assignment_expression "puVar7 = PTR_LAB_0018f958 + 0x2d20" identifier = (binary_expression "PTR_LAB_0018f958 + 0x2d20" identifier + number_literal)) ;) (labeled_statement "LAB_000a1740:\n    pVal = (sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);" statement_identifier : (expression_statement "pVal = (sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);" (assignment_expression "pVal = (sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db)" identifier = (cast_expression "(sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db)" ( (type_descriptor "sqlite3_value *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbbc + 0x65c8))" ( (pointer_expression "*(code *)(PTR_LAB_0018fbbc + 0x65c8)" * (cast_expression "(code *)(PTR_LAB_0018fbbc + 0x65c8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbbc + 0x65c8)" ( (binary_expression "PTR_LAB_0018fbbc + 0x65c8" identifier + number_literal) )))) )) (argument_list "(db)" ( identifier ))))) ;)) (if_statement "if (pVal == (sqlite3_value *)0x0) {\nLAB_000a1a8c:\n      (*(code *)(PTR_LAB_0018fb58 + 0x1354))(db);\n      (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(db,0);\n      (*(code *)(PTR_LAB_0018fc04 + -0x5984))(pVal);\n      iVar4 = 7;\n      goto LAB_000a1814;\n    }" if (parenthesized_expression "(pVal == (sqlite3_value *)0x0)" ( (binary_expression "pVal == (sqlite3_value *)0x0" identifier == (cast_expression "(sqlite3_value *)0x0" ( (type_descriptor "sqlite3_value *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000a1a8c:\n      (*(code *)(PTR_LAB_0018fb58 + 0x1354))(db);\n      (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(db,0);\n      (*(code *)(PTR_LAB_0018fc04 + -0x5984))(pVal);\n      iVar4 = 7;\n      goto LAB_000a1814;\n    }" { (labeled_statement "LAB_000a1a8c:\n      (*(code *)(PTR_LAB_0018fb58 + 0x1354))(db);" statement_identifier : (expression_statement "(*(code *)(PTR_LAB_0018fb58 + 0x1354))(db);" (call_expression "(*(code *)(PTR_LAB_0018fb58 + 0x1354))(db)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fb58 + 0x1354))" ( (pointer_expression "*(code *)(PTR_LAB_0018fb58 + 0x1354)" * (cast_expression "(code *)(PTR_LAB_0018fb58 + 0x1354)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fb58 + 0x1354)" ( (binary_expression "PTR_LAB_0018fb58 + 0x1354" identifier + number_literal) )))) )) (argument_list "(db)" ( identifier ))) ;)) (expression_statement "(*(code *)(PTR_LAB_0018fbd0 + 0x7878))(db,0);" (call_expression "(*(code *)(PTR_LAB_0018fbd0 + 0x7878))(db,0)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbd0 + 0x7878))" ( (pointer_expression "*(code *)(PTR_LAB_0018fbd0 + 0x7878)" * (cast_expression "(code *)(PTR_LAB_0018fbd0 + 0x7878)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbd0 + 0x7878)" ( (binary_expression "PTR_LAB_0018fbd0 + 0x7878" identifier + number_literal) )))) )) (argument_list "(db,0)" ( identifier , number_literal ))) ;) (expression_statement "(*(code *)(PTR_LAB_0018fc04 + -0x5984))(pVal);" (call_expression "(*(code *)(PTR_LAB_0018fc04 + -0x5984))(pVal)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fc04 + -0x5984))" ( (pointer_expression "*(code *)(PTR_LAB_0018fc04 + -0x5984)" * (cast_expression "(code *)(PTR_LAB_0018fc04 + -0x5984)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fc04 + -0x5984)" ( (binary_expression "PTR_LAB_0018fc04 + -0x5984" identifier + number_literal) )))) )) (argument_list "(pVal)" ( identifier ))) ;) (expression_statement "iVar4 = 7;" (assignment_expression "iVar4 = 7" identifier = number_literal) ;) (goto_statement "goto LAB_000a1814;" goto statement_identifier ;) })) (if_statement "if ((pExpr->flags & 0x400) == 0) {\n      pcVar3 = sqlite3MPrintf(db,PTR_LAB_0018f958 + 0x172c,puVar7,(pExpr->u).zToken);\n      if (pcVar3 == (char *)0x0) goto LAB_000a1a8c;\n      sqlite3ValueSetStr(pVal,-1,pcVar3,'\x01',(_func_void_void_ptr *)(PTR_LAB_0018fb58 + 0x1030));\n    }\n    else {\n      (*(code *)(PTR_LAB_0018fc04 + -0x6694))(pVal);\n    }" if (parenthesized_expression "((pExpr->flags & 0x400) == 0)" ( (binary_expression "(pExpr->flags & 0x400) == 0" (parenthesized_expression "(pExpr->flags & 0x400)" ( (binary_expression "pExpr->flags & 0x400" (field_expression "pExpr->flags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      pcVar3 = sqlite3MPrintf(db,PTR_LAB_0018f958 + 0x172c,puVar7,(pExpr->u).zToken);\n      if (pcVar3 == (char *)0x0) goto LAB_000a1a8c;\n      sqlite3ValueSetStr(pVal,-1,pcVar3,'\x01',(_func_void_void_ptr *)(PTR_LAB_0018fb58 + 0x1030));\n    }" { (expression_statement "pcVar3 = sqlite3MPrintf(db,PTR_LAB_0018f958 + 0x172c,puVar7,(pExpr->u).zToken);" (assignment_expression "pcVar3 = sqlite3MPrintf(db,PTR_LAB_0018f958 + 0x172c,puVar7,(pExpr->u).zToken)" identifier = (call_expression "sqlite3MPrintf(db,PTR_LAB_0018f958 + 0x172c,puVar7,(pExpr->u).zToken)" identifier (argument_list "(db,PTR_LAB_0018f958 + 0x172c,puVar7,(pExpr->u).zToken)" ( identifier , (binary_expression "PTR_LAB_0018f958 + 0x172c" identifier + number_literal) , identifier , (field_expression "(pExpr->u).zToken" (parenthesized_expression "(pExpr->u)" ( (field_expression "pExpr->u" identifier -> field_identifier) )) . field_identifier) )))) ;) (if_statement "if (pcVar3 == (char *)0x0) goto LAB_000a1a8c;" if (parenthesized_expression "(pcVar3 == (char *)0x0)" ( (binary_expression "pcVar3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000a1a8c;" goto statement_identifier ;)) (expression_statement "sqlite3ValueSetStr(pVal,-1,pcVar3,'\x01',(_func_void_void_ptr *)(PTR_LAB_0018fb58 + 0x1030));" (call_expression "sqlite3ValueSetStr(pVal,-1,pcVar3,'\x01',(_func_void_void_ptr *)(PTR_LAB_0018fb58 + 0x1030))" identifier (argument_list "(pVal,-1,pcVar3,'\x01',(_func_void_void_ptr *)(PTR_LAB_0018fb58 + 0x1030))" ( identifier , number_literal , identifier , (char_literal "'\x01'" ' escape_sequence ') , (cast_expression "(_func_void_void_ptr *)(PTR_LAB_0018fb58 + 0x1030)" ( (type_descriptor "_func_void_void_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fb58 + 0x1030)" ( (binary_expression "PTR_LAB_0018fb58 + 0x1030" identifier + number_literal) ))) ))) ;) }) (else_clause "else {\n      (*(code *)(PTR_LAB_0018fc04 + -0x6694))(pVal);\n    }" else (compound_statement "{\n      (*(code *)(PTR_LAB_0018fc04 + -0x6694))(pVal);\n    }" { (expression_statement "(*(code *)(PTR_LAB_0018fc04 + -0x6694))(pVal);" (call_expression "(*(code *)(PTR_LAB_0018fc04 + -0x6694))(pVal)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fc04 + -0x6694))" ( (pointer_expression "*(code *)(PTR_LAB_0018fc04 + -0x6694)" * (cast_expression "(code *)(PTR_LAB_0018fc04 + -0x6694)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fc04 + -0x6694)" ( (binary_expression "PTR_LAB_0018fc04 + -0x6694" identifier + number_literal) )))) )) (argument_list "(pVal)" ( identifier ))) ;) }))) (if_statement "if (((bVar6 & 0xfd) == 0x8d) && (CONCAT31(in_register_0000001c,affinity) == 0x41)) {\n      applyAffinity(pVal,'C','\x01');\n    }\n    else {\n      applyAffinity(pVal,affinity,'\x01');\n    }" if (parenthesized_expression "(((bVar6 & 0xfd) == 0x8d) && (CONCAT31(in_register_0000001c,affinity) == 0x41))" ( (binary_expression "((bVar6 & 0xfd) == 0x8d) && (CONCAT31(in_register_0000001c,affinity) == 0x41)" (parenthesized_expression "((bVar6 & 0xfd) == 0x8d)" ( (binary_expression "(bVar6 & 0xfd) == 0x8d" (parenthesized_expression "(bVar6 & 0xfd)" ( (binary_expression "bVar6 & 0xfd" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(CONCAT31(in_register_0000001c,affinity) == 0x41)" ( (binary_expression "CONCAT31(in_register_0000001c,affinity) == 0x41" (call_expression "CONCAT31(in_register_0000001c,affinity)" identifier (argument_list "(in_register_0000001c,affinity)" ( identifier , identifier ))) == number_literal) ))) )) (compound_statement "{\n      applyAffinity(pVal,'C','\x01');\n    }" { (expression_statement "applyAffinity(pVal,'C','\x01');" (call_expression "applyAffinity(pVal,'C','\x01')" identifier (argument_list "(pVal,'C','\x01')" ( identifier , (char_literal "'C'" ' character ') , (char_literal "'\x01'" ' escape_sequence ') ))) ;) }) (else_clause "else {\n      applyAffinity(pVal,affinity,'\x01');\n    }" else (compound_statement "{\n      applyAffinity(pVal,affinity,'\x01');\n    }" { (expression_statement "applyAffinity(pVal,affinity,'\x01');" (call_expression "applyAffinity(pVal,affinity,'\x01')" identifier (argument_list "(pVal,affinity,'\x01')" ( identifier , identifier , (char_literal "'\x01'" ' escape_sequence ') ))) ;) }))) (if_statement "if ((pVal->flags & 0xc) != 0) {\n      pVal->flags = pVal->flags & 0xfffd;\n    }" if (parenthesized_expression "((pVal->flags & 0xc) != 0)" ( (binary_expression "(pVal->flags & 0xc) != 0" (parenthesized_expression "(pVal->flags & 0xc)" ( (binary_expression "pVal->flags & 0xc" (field_expression "pVal->flags" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      pVal->flags = pVal->flags & 0xfffd;\n    }" { (expression_statement "pVal->flags = pVal->flags & 0xfffd;" (assignment_expression "pVal->flags = pVal->flags & 0xfffd" (field_expression "pVal->flags" identifier -> field_identifier) = (binary_expression "pVal->flags & 0xfffd" (field_expression "pVal->flags" identifier -> field_identifier) & number_literal)) ;) })) (if_statement "if (CONCAT31(in_register_00000018,enc) == 1) {\n      iVar4 = 0;\n    }\n    else {\n      iVar4 = sqlite3VdbeChangeEncoding(pVal,CONCAT31(in_register_00000018,enc));\n    }" if (parenthesized_expression "(CONCAT31(in_register_00000018,enc) == 1)" ( (binary_expression "CONCAT31(in_register_00000018,enc) == 1" (call_expression "CONCAT31(in_register_00000018,enc)" identifier (argument_list "(in_register_00000018,enc)" ( identifier , identifier ))) == number_literal) )) (compound_statement "{\n      iVar4 = 0;\n    }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      iVar4 = sqlite3VdbeChangeEncoding(pVal,CONCAT31(in_register_00000018,enc));\n    }" else (compound_statement "{\n      iVar4 = sqlite3VdbeChangeEncoding(pVal,CONCAT31(in_register_00000018,enc));\n    }" { (expression_statement "iVar4 = sqlite3VdbeChangeEncoding(pVal,CONCAT31(in_register_00000018,enc));" (assignment_expression "iVar4 = sqlite3VdbeChangeEncoding(pVal,CONCAT31(in_register_00000018,enc))" identifier = (call_expression "sqlite3VdbeChangeEncoding(pVal,CONCAT31(in_register_00000018,enc))" identifier (argument_list "(pVal,CONCAT31(in_register_00000018,enc))" ( identifier , (call_expression "CONCAT31(in_register_00000018,enc)" identifier (argument_list "(in_register_00000018,enc)" ( identifier , identifier ))) )))) ;) }))) }) (else_clause "else {\n    puVar7 = PTR_LAB_0018f958 + 0x2d20;\n    pEVar2 = pExpr;\nLAB_000a1594:\n    pExpr = pEVar2;\n    if ((bVar6 & 0xfd) == 0x8d) goto LAB_000a1740;\n    if (bVar6 == 0xa1) goto LAB_000a1688;\n    if (bVar6 == 0x6e) {\n      pVal = (sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);\n      if (pVal != (sqlite3_value *)0x0) {\n        (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(pVal);\n        iVar4 = 0;\n        goto LAB_000a180c;\n      }\n      goto LAB_000a1a8c;\n    }\n    if (bVar6 == 0x8e) {\n      pMem = (Mem *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);\n      pVal = pMem;\n      if (pMem == (Mem *)0x0) goto LAB_000a1a8c;\n      iVar5 = (pEVar2->u).iValue + 2;\n      iVar4 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(iVar5);\n      pcVar3 = (char *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(db,iVar5,iVar4 + -1);\n      sqlite3VdbeMemSetStr\n                (pMem,pcVar3,(iVar4 + -1) / 2,'\0',\n                 (_func_void_void_ptr *)(PTR_LAB_0018fb58 + 0x1030));\n      iVar4 = 0;\n    }\n    else {\n      iVar4 = 0;\n      if (bVar6 == 0x9b) {\n        pVal = (sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);\n        if (pVal == (sqlite3_value *)0x0) {\n          iVar4 = 0;\n        }\n        else {\n          pVal->flags = 4;\n          cVar1 = *(char *)((pEVar2->u).iValue + 4);\n          (pVal->u).nZero = 0;\n          *(uint *)((int)&pVal->u + 4) = (uint)(cVar1 == '\0');\n          iVar4 = 0;\n        }\n      }\n    }\n  }" else (compound_statement "{\n    puVar7 = PTR_LAB_0018f958 + 0x2d20;\n    pEVar2 = pExpr;\nLAB_000a1594:\n    pExpr = pEVar2;\n    if ((bVar6 & 0xfd) == 0x8d) goto LAB_000a1740;\n    if (bVar6 == 0xa1) goto LAB_000a1688;\n    if (bVar6 == 0x6e) {\n      pVal = (sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);\n      if (pVal != (sqlite3_value *)0x0) {\n        (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(pVal);\n        iVar4 = 0;\n        goto LAB_000a180c;\n      }\n      goto LAB_000a1a8c;\n    }\n    if (bVar6 == 0x8e) {\n      pMem = (Mem *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);\n      pVal = pMem;\n      if (pMem == (Mem *)0x0) goto LAB_000a1a8c;\n      iVar5 = (pEVar2->u).iValue + 2;\n      iVar4 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(iVar5);\n      pcVar3 = (char *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(db,iVar5,iVar4 + -1);\n      sqlite3VdbeMemSetStr\n                (pMem,pcVar3,(iVar4 + -1) / 2,'\0',\n                 (_func_void_void_ptr *)(PTR_LAB_0018fb58 + 0x1030));\n      iVar4 = 0;\n    }\n    else {\n      iVar4 = 0;\n      if (bVar6 == 0x9b) {\n        pVal = (sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);\n        if (pVal == (sqlite3_value *)0x0) {\n          iVar4 = 0;\n        }\n        else {\n          pVal->flags = 4;\n          cVar1 = *(char *)((pEVar2->u).iValue + 4);\n          (pVal->u).nZero = 0;\n          *(uint *)((int)&pVal->u + 4) = (uint)(cVar1 == '\0');\n          iVar4 = 0;\n        }\n      }\n    }\n  }" { (expression_statement "puVar7 = PTR_LAB_0018f958 + 0x2d20;" (assignment_expression "puVar7 = PTR_LAB_0018f958 + 0x2d20" identifier = (binary_expression "PTR_LAB_0018f958 + 0x2d20" identifier + number_literal)) ;) (expression_statement "pEVar2 = pExpr;" (assignment_expression "pEVar2 = pExpr" identifier = identifier) ;) (labeled_statement "LAB_000a1594:\n    pExpr = pEVar2;" statement_identifier : (expression_statement "pExpr = pEVar2;" (assignment_expression "pExpr = pEVar2" identifier = identifier) ;)) (if_statement "if ((bVar6 & 0xfd) == 0x8d) goto LAB_000a1740;" if (parenthesized_expression "((bVar6 & 0xfd) == 0x8d)" ( (binary_expression "(bVar6 & 0xfd) == 0x8d" (parenthesized_expression "(bVar6 & 0xfd)" ( (binary_expression "bVar6 & 0xfd" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000a1740;" goto statement_identifier ;)) (if_statement "if (bVar6 == 0xa1) goto LAB_000a1688;" if (parenthesized_expression "(bVar6 == 0xa1)" ( (binary_expression "bVar6 == 0xa1" identifier == number_literal) )) (goto_statement "goto LAB_000a1688;" goto statement_identifier ;)) (if_statement "if (bVar6 == 0x6e) {\n      pVal = (sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);\n      if (pVal != (sqlite3_value *)0x0) {\n        (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(pVal);\n        iVar4 = 0;\n        goto LAB_000a180c;\n      }\n      goto LAB_000a1a8c;\n    }" if (parenthesized_expression "(bVar6 == 0x6e)" ( (binary_expression "bVar6 == 0x6e" identifier == number_literal) )) (compound_statement "{\n      pVal = (sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);\n      if (pVal != (sqlite3_value *)0x0) {\n        (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(pVal);\n        iVar4 = 0;\n        goto LAB_000a180c;\n      }\n      goto LAB_000a1a8c;\n    }" { (expression_statement "pVal = (sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);" (assignment_expression "pVal = (sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db)" identifier = (cast_expression "(sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db)" ( (type_descriptor "sqlite3_value *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbbc + 0x65c8))" ( (pointer_expression "*(code *)(PTR_LAB_0018fbbc + 0x65c8)" * (cast_expression "(code *)(PTR_LAB_0018fbbc + 0x65c8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbbc + 0x65c8)" ( (binary_expression "PTR_LAB_0018fbbc + 0x65c8" identifier + number_literal) )))) )) (argument_list "(db)" ( identifier ))))) ;) (if_statement "if (pVal != (sqlite3_value *)0x0) {\n        (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(pVal);\n        iVar4 = 0;\n        goto LAB_000a180c;\n      }" if (parenthesized_expression "(pVal != (sqlite3_value *)0x0)" ( (binary_expression "pVal != (sqlite3_value *)0x0" identifier != (cast_expression "(sqlite3_value *)0x0" ( (type_descriptor "sqlite3_value *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(pVal);\n        iVar4 = 0;\n        goto LAB_000a180c;\n      }" { (expression_statement "(*(code *)(PTR_LAB_0018fbd0 + 0x6988))(pVal);" (call_expression "(*(code *)(PTR_LAB_0018fbd0 + 0x6988))(pVal)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbd0 + 0x6988))" ( (pointer_expression "*(code *)(PTR_LAB_0018fbd0 + 0x6988)" * (cast_expression "(code *)(PTR_LAB_0018fbd0 + 0x6988)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbd0 + 0x6988)" ( (binary_expression "PTR_LAB_0018fbd0 + 0x6988" identifier + number_literal) )))) )) (argument_list "(pVal)" ( identifier ))) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000a180c;" goto statement_identifier ;) })) (goto_statement "goto LAB_000a1a8c;" goto statement_identifier ;) })) (if_statement "if (bVar6 == 0x8e) {\n      pMem = (Mem *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);\n      pVal = pMem;\n      if (pMem == (Mem *)0x0) goto LAB_000a1a8c;\n      iVar5 = (pEVar2->u).iValue + 2;\n      iVar4 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(iVar5);\n      pcVar3 = (char *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(db,iVar5,iVar4 + -1);\n      sqlite3VdbeMemSetStr\n                (pMem,pcVar3,(iVar4 + -1) / 2,'\0',\n                 (_func_void_void_ptr *)(PTR_LAB_0018fb58 + 0x1030));\n      iVar4 = 0;\n    }\n    else {\n      iVar4 = 0;\n      if (bVar6 == 0x9b) {\n        pVal = (sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);\n        if (pVal == (sqlite3_value *)0x0) {\n          iVar4 = 0;\n        }\n        else {\n          pVal->flags = 4;\n          cVar1 = *(char *)((pEVar2->u).iValue + 4);\n          (pVal->u).nZero = 0;\n          *(uint *)((int)&pVal->u + 4) = (uint)(cVar1 == '\0');\n          iVar4 = 0;\n        }\n      }\n    }" if (parenthesized_expression "(bVar6 == 0x8e)" ( (binary_expression "bVar6 == 0x8e" identifier == number_literal) )) (compound_statement "{\n      pMem = (Mem *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);\n      pVal = pMem;\n      if (pMem == (Mem *)0x0) goto LAB_000a1a8c;\n      iVar5 = (pEVar2->u).iValue + 2;\n      iVar4 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(iVar5);\n      pcVar3 = (char *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(db,iVar5,iVar4 + -1);\n      sqlite3VdbeMemSetStr\n                (pMem,pcVar3,(iVar4 + -1) / 2,'\0',\n                 (_func_void_void_ptr *)(PTR_LAB_0018fb58 + 0x1030));\n      iVar4 = 0;\n    }" { (expression_statement "pMem = (Mem *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);" (assignment_expression "pMem = (Mem *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db)" identifier = (cast_expression "(Mem *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db)" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbbc + 0x65c8))" ( (pointer_expression "*(code *)(PTR_LAB_0018fbbc + 0x65c8)" * (cast_expression "(code *)(PTR_LAB_0018fbbc + 0x65c8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbbc + 0x65c8)" ( (binary_expression "PTR_LAB_0018fbbc + 0x65c8" identifier + number_literal) )))) )) (argument_list "(db)" ( identifier ))))) ;) (expression_statement "pVal = pMem;" (assignment_expression "pVal = pMem" identifier = identifier) ;) (if_statement "if (pMem == (Mem *)0x0) goto LAB_000a1a8c;" if (parenthesized_expression "(pMem == (Mem *)0x0)" ( (binary_expression "pMem == (Mem *)0x0" identifier == (cast_expression "(Mem *)0x0" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000a1a8c;" goto statement_identifier ;)) (expression_statement "iVar5 = (pEVar2->u).iValue + 2;" (assignment_expression "iVar5 = (pEVar2->u).iValue + 2" identifier = (binary_expression "(pEVar2->u).iValue + 2" (field_expression "(pEVar2->u).iValue" (parenthesized_expression "(pEVar2->u)" ( (field_expression "pEVar2->u" identifier -> field_identifier) )) . field_identifier) + number_literal)) ;) (expression_statement "iVar4 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(iVar5);" (assignment_expression "iVar4 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(iVar5)" identifier = (call_expression "(*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(iVar5)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))" ( (pointer_expression "*(code *)(PTR_LAB_0018fbd0 + -0x4bc8)" * (cast_expression "(code *)(PTR_LAB_0018fbd0 + -0x4bc8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbd0 + -0x4bc8)" ( (binary_expression "PTR_LAB_0018fbd0 + -0x4bc8" identifier + number_literal) )))) )) (argument_list "(iVar5)" ( identifier )))) ;) (expression_statement "pcVar3 = (char *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(db,iVar5,iVar4 + -1);" (assignment_expression "pcVar3 = (char *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(db,iVar5,iVar4 + -1)" identifier = (cast_expression "(char *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(db,iVar5,iVar4 + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0018fb58 + 0x2284))(db,iVar5,iVar4 + -1)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fb58 + 0x2284))" ( (pointer_expression "*(code *)(PTR_LAB_0018fb58 + 0x2284)" * (cast_expression "(code *)(PTR_LAB_0018fb58 + 0x2284)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fb58 + 0x2284)" ( (binary_expression "PTR_LAB_0018fb58 + 0x2284" identifier + number_literal) )))) )) (argument_list "(db,iVar5,iVar4 + -1)" ( identifier , identifier , (binary_expression "iVar4 + -1" identifier + number_literal) ))))) ;) (expression_statement "sqlite3VdbeMemSetStr\n                (pMem,pcVar3,(iVar4 + -1) / 2,'\0',\n                 (_func_void_void_ptr *)(PTR_LAB_0018fb58 + 0x1030));" (call_expression "sqlite3VdbeMemSetStr\n                (pMem,pcVar3,(iVar4 + -1) / 2,'\0',\n                 (_func_void_void_ptr *)(PTR_LAB_0018fb58 + 0x1030))" identifier (argument_list "(pMem,pcVar3,(iVar4 + -1) / 2,'\0',\n                 (_func_void_void_ptr *)(PTR_LAB_0018fb58 + 0x1030))" ( identifier , identifier , (binary_expression "(iVar4 + -1) / 2" (parenthesized_expression "(iVar4 + -1)" ( (binary_expression "iVar4 + -1" identifier + number_literal) )) / number_literal) , (char_literal "'\0'" ' escape_sequence ') , (cast_expression "(_func_void_void_ptr *)(PTR_LAB_0018fb58 + 0x1030)" ( (type_descriptor "_func_void_void_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fb58 + 0x1030)" ( (binary_expression "PTR_LAB_0018fb58 + 0x1030" identifier + number_literal) ))) ))) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      iVar4 = 0;\n      if (bVar6 == 0x9b) {\n        pVal = (sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);\n        if (pVal == (sqlite3_value *)0x0) {\n          iVar4 = 0;\n        }\n        else {\n          pVal->flags = 4;\n          cVar1 = *(char *)((pEVar2->u).iValue + 4);\n          (pVal->u).nZero = 0;\n          *(uint *)((int)&pVal->u + 4) = (uint)(cVar1 == '\0');\n          iVar4 = 0;\n        }\n      }\n    }" else (compound_statement "{\n      iVar4 = 0;\n      if (bVar6 == 0x9b) {\n        pVal = (sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);\n        if (pVal == (sqlite3_value *)0x0) {\n          iVar4 = 0;\n        }\n        else {\n          pVal->flags = 4;\n          cVar1 = *(char *)((pEVar2->u).iValue + 4);\n          (pVal->u).nZero = 0;\n          *(uint *)((int)&pVal->u + 4) = (uint)(cVar1 == '\0');\n          iVar4 = 0;\n        }\n      }\n    }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (if_statement "if (bVar6 == 0x9b) {\n        pVal = (sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);\n        if (pVal == (sqlite3_value *)0x0) {\n          iVar4 = 0;\n        }\n        else {\n          pVal->flags = 4;\n          cVar1 = *(char *)((pEVar2->u).iValue + 4);\n          (pVal->u).nZero = 0;\n          *(uint *)((int)&pVal->u + 4) = (uint)(cVar1 == '\0');\n          iVar4 = 0;\n        }\n      }" if (parenthesized_expression "(bVar6 == 0x9b)" ( (binary_expression "bVar6 == 0x9b" identifier == number_literal) )) (compound_statement "{\n        pVal = (sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);\n        if (pVal == (sqlite3_value *)0x0) {\n          iVar4 = 0;\n        }\n        else {\n          pVal->flags = 4;\n          cVar1 = *(char *)((pEVar2->u).iValue + 4);\n          (pVal->u).nZero = 0;\n          *(uint *)((int)&pVal->u + 4) = (uint)(cVar1 == '\0');\n          iVar4 = 0;\n        }\n      }" { (expression_statement "pVal = (sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db);" (assignment_expression "pVal = (sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db)" identifier = (cast_expression "(sqlite3_value *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db)" ( (type_descriptor "sqlite3_value *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(db)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbbc + 0x65c8))" ( (pointer_expression "*(code *)(PTR_LAB_0018fbbc + 0x65c8)" * (cast_expression "(code *)(PTR_LAB_0018fbbc + 0x65c8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbbc + 0x65c8)" ( (binary_expression "PTR_LAB_0018fbbc + 0x65c8" identifier + number_literal) )))) )) (argument_list "(db)" ( identifier ))))) ;) (if_statement "if (pVal == (sqlite3_value *)0x0) {\n          iVar4 = 0;\n        }\n        else {\n          pVal->flags = 4;\n          cVar1 = *(char *)((pEVar2->u).iValue + 4);\n          (pVal->u).nZero = 0;\n          *(uint *)((int)&pVal->u + 4) = (uint)(cVar1 == '\0');\n          iVar4 = 0;\n        }" if (parenthesized_expression "(pVal == (sqlite3_value *)0x0)" ( (binary_expression "pVal == (sqlite3_value *)0x0" identifier == (cast_expression "(sqlite3_value *)0x0" ( (type_descriptor "sqlite3_value *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar4 = 0;\n        }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          pVal->flags = 4;\n          cVar1 = *(char *)((pEVar2->u).iValue + 4);\n          (pVal->u).nZero = 0;\n          *(uint *)((int)&pVal->u + 4) = (uint)(cVar1 == '\0');\n          iVar4 = 0;\n        }" else (compound_statement "{\n          pVal->flags = 4;\n          cVar1 = *(char *)((pEVar2->u).iValue + 4);\n          (pVal->u).nZero = 0;\n          *(uint *)((int)&pVal->u + 4) = (uint)(cVar1 == '\0');\n          iVar4 = 0;\n        }" { (expression_statement "pVal->flags = 4;" (assignment_expression "pVal->flags = 4" (field_expression "pVal->flags" identifier -> field_identifier) = number_literal) ;) (expression_statement "cVar1 = *(char *)((pEVar2->u).iValue + 4);" (assignment_expression "cVar1 = *(char *)((pEVar2->u).iValue + 4)" identifier = (pointer_expression "*(char *)((pEVar2->u).iValue + 4)" * (cast_expression "(char *)((pEVar2->u).iValue + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((pEVar2->u).iValue + 4)" ( (binary_expression "(pEVar2->u).iValue + 4" (field_expression "(pEVar2->u).iValue" (parenthesized_expression "(pEVar2->u)" ( (field_expression "pEVar2->u" identifier -> field_identifier) )) . field_identifier) + number_literal) ))))) ;) (expression_statement "(pVal->u).nZero = 0;" (assignment_expression "(pVal->u).nZero = 0" (field_expression "(pVal->u).nZero" (parenthesized_expression "(pVal->u)" ( (field_expression "pVal->u" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "*(uint *)((int)&pVal->u + 4) = (uint)(cVar1 == '\0');" (assignment_expression "*(uint *)((int)&pVal->u + 4) = (uint)(cVar1 == '\0')" (pointer_expression "*(uint *)((int)&pVal->u + 4)" * (cast_expression "(uint *)((int)&pVal->u + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pVal->u + 4)" ( (binary_expression "(int)&pVal->u + 4" (cast_expression "(int)&pVal->u" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pVal->u" & (field_expression "pVal->u" identifier -> field_identifier))) + number_literal) )))) = (call_expression "(uint)(cVar1 == '\0')" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )))) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) }))) })) }))) }))) (labeled_statement "LAB_000a180c:\n  *ppVal = pVal;" statement_identifier : (expression_statement "*ppVal = pVal;" (assignment_expression "*ppVal = pVal" (pointer_expression "*ppVal" * identifier) = identifier) ;)) (labeled_statement "LAB_000a1814:\n  if (iStack_2c != *(int *)PTR___stack_chk_guard_0018fecc) {\n    iVar4 = (*(code *)PTR___stack_chk_fail_0018fea0)();\n    return iVar4;\n  }" statement_identifier : (if_statement "if (iStack_2c != *(int *)PTR___stack_chk_guard_0018fecc) {\n    iVar4 = (*(code *)PTR___stack_chk_fail_0018fea0)();\n    return iVar4;\n  }" if (parenthesized_expression "(iStack_2c != *(int *)PTR___stack_chk_guard_0018fecc)" ( (binary_expression "iStack_2c != *(int *)PTR___stack_chk_guard_0018fecc" identifier != (pointer_expression "*(int *)PTR___stack_chk_guard_0018fecc" * (cast_expression "(int *)PTR___stack_chk_guard_0018fecc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    iVar4 = (*(code *)PTR___stack_chk_fail_0018fea0)();\n    return iVar4;\n  }" { (expression_statement "iVar4 = (*(code *)PTR___stack_chk_fail_0018fea0)();" (assignment_expression "iVar4 = (*(code *)PTR___stack_chk_fail_0018fea0)()" identifier = (call_expression "(*(code *)PTR___stack_chk_fail_0018fea0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0018fea0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0018fea0" * (cast_expression "(code *)PTR___stack_chk_fail_0018fea0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (return_statement "return iVar4;" return identifier ;) }))) (return_statement "return iVar4;" return identifier ;) })))
(translation_unit "uint FUN_000a14dc(undefined4 param_1,uint *param_2,uint *param_3,uint *param_4,uint **param_5,\n                 undefined4 param_6)\n\n{\n  uint *puVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  uint *puVar4;\n  uint *puVar5;\n  uint *puVar6;\n  uint uVar7;\n  byte bVar8;\n  uint *puVar9;\n  uint uVar10;\n  char cVar12;\n  uint uVar11;\n  uint *puVar13;\n  undefined *puVar14;\n  int iVar15;\n  code *pcVar16;\n  uint *puStack_78;\n  uint *puStack_74;\n  uint uStack_70;\n  uint *puStack_6c;\n  undefined4 uStack_68;\n  uint **ppuStack_64;\n  uint *puStack_60;\n  uint *puStack_5c;\n  undefined4 uStack_58;\n  code *pcStack_54;\n  uint **local_40;\n  undefined4 local_3c;\n  uint *local_30;\n  undefined4 *local_2c;\n  \n  local_2c = *(undefined4 **)PTR___stack_chk_guard_0018fecc;\n  local_30 = (uint *)0x0;\n  for (puVar9 = param_2; (bVar8 = *(byte *)puVar9, bVar8 == 0xa2 || (bVar8 == 0xa9));\n      puVar9 = (uint *)puVar9[3]) {\n  }\n  if (bVar8 == 0xa4) {\n    bVar8 = *(byte *)(puVar9 + 10);\n  }\n  cVar12 = (char)param_4;\n  puVar5 = param_3;\n  if (bVar8 == 0x24) {\n    uVar10 = (*(code *)(PTR_LAB_0018fbbc + 0x7c60))(puVar9[2],0);\n    param_2 = (uint *)puVar9[3];\n    local_3c = param_6;\n    local_40 = param_5;\n    puVar6 = (uint *)(uVar10 & 0xff);\n    uVar7 = FUN_000a14dc(param_1);\n    if (*param_5 != (uint *)0x0) {\n      FUN_0008f194(*param_5,(uint *)(uVar10 & 0xff),1);\n      puVar5 = (uint *)0x1;\n      param_2 = (uint *)(int)cVar12;\n      FUN_0008efcc(*param_5);\n    }\n  }\n  else {\n    puVar6 = param_4;\n    if (bVar8 == 0xa1) {\n      puVar4 = (uint *)puVar9[3];\n      bVar8 = *(byte *)puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) {\n        puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80);\n        iVar15 = -1;\n        goto LAB_000a1594;\n      }\nLAB_000a1688:\n      param_2 = (uint *)puVar9[3];\n      local_3c = param_6;\n      local_40 = &local_30;\n      iVar15 = FUN_000a14dc(param_1);\n      if (iVar15 == 0) {\n        uVar7 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n          if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (uint *)(int)cVar12;\n          puVar5 = param_3;\n          FUN_0008efcc(local_30);\n        }\n      }\n      else {\n        uVar7 = 0;\n      }\n      goto LAB_000a180c;\n    }\n    if (bVar8 == 0x6a) {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\nLAB_000a1740:\n      local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n      if (local_30 == (uint *)0x0) {\nLAB_000a1a8c:\n        (*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);\n        param_2 = (uint *)0x0;\n        (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1);\n        (*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30);\n        uVar7 = 7;\n        goto LAB_000a1814;\n      }\n      if ((puVar9[1] & 0x400) == 0) {\n        puVar6 = (uint *)puVar9[2];\n        iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c);\n        puVar5 = puVar13;\n        if (iVar15 == 0) goto LAB_000a1a8c;\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x1;\n        FUN_00081e3c(local_30,0xffffffff,iVar15);\n      }\n      else {\n        puVar6 = (uint *)(puVar9[2] * iVar15);\n        (*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);\n      }\n      if (((bVar8 & 0xfd) == 0x8d) && (puVar5 = (uint *)0x1, param_4 == (uint *)0x41)) {\n        FUN_0008efcc(local_30,0x43);\n      }\n      else {\n        puVar5 = (uint *)0x1;\n        FUN_0008efcc(local_30,(int)cVar12);\n      }\n      if ((*(ushort *)(local_30 + 2) & 0xc) != 0) {\n        *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n      }\n      param_2 = param_3;\n      if (param_3 == (uint *)0x1) {\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = FUN_00084bc0();\n      }\n    }\n    else {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\n      puVar4 = puVar9;\nLAB_000a1594:\n      puVar9 = puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) goto LAB_000a1740;\n      if (bVar8 == 0xa1) goto LAB_000a1688;\n      if (bVar8 == 0x6e) {\n        local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }\n        goto LAB_000a1a8c;\n      }\n      if (bVar8 == 0x8e) {\n        puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        puVar5 = param_3;\n        param_3 = puVar13;\n        local_30 = puVar13;\n        if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;\n        uVar7 = puVar4[2];\n        iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);\n        puVar9 = (uint *)(iVar15 + -1);\n        param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x0;\n        puVar5 = (uint *)((int)puVar9 / 2);\n        FUN_00081ac0(puVar13);\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = 0;\n        if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }\n      }\n    }\nLAB_000a180c:\n    *param_5 = local_30;\n  }\nLAB_000a1814:\n  if (local_2c == *(undefined4 **)PTR___stack_chk_guard_0018fecc) {\n    return uVar7;\n  }\n  pcVar16 = FUN_000a1aec;\n  puVar3 = local_2c;\n  puVar14 = PTR___stack_chk_fail_0018fea0;\n  (*(code *)PTR___stack_chk_fail_0018fea0)();\n  uStack_58 = param_6;\n  ppuStack_64 = param_5;\n  puStack_74 = (uint *)**(undefined4 **)(puVar14 + 0xee3e0);\n  puVar4 = param_2;\n  puVar13 = puVar5;\n  uStack_70 = uVar7;\n  puStack_6c = puVar9;\n  uStack_68 = param_1;\n  puStack_60 = param_3;\n  puStack_5c = param_4;\n  pcStack_54 = pcVar16;\n  if (param_2 == (uint *)0x0) {\n    uVar7 = 2;\n    if (puVar5 == (uint *)0x0) {\n      uVar7 = 0;\n    }\n    goto LAB_000a1b98;\n  }\n  if (puVar5 == (uint *)0x0) {\n    uVar7 = 2;\n    goto LAB_000a1b98;\n  }\n  if ((puVar3 == (undefined4 *)0x0) || (*(byte *)param_2 != 0x90)) {\nLAB_000a1b58:\n    uVar10 = param_2[1];\n  }\n  else {\n    puStack_78 = (uint *)0x0;\n    puVar13 = (uint *)0x1;\n    puVar4 = puVar5;\n    FUN_000a14dc(*puVar3,puVar5,1,0x41,&puStack_78,0);\n    if (puStack_78 == (uint *)0x0) goto LAB_000a1b58;\n    puVar4 = (uint *)param_2[8];\n    (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x6628))(puVar3[2],puVar4);\n    puVar13 = (uint *)0x41;\n    iVar15 = FUN_0008f0b8(puVar3[0x36],puVar4,0x41);\n    if (iVar15 == 0) {\n      iVar15 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar15 + -0x5984))(puStack_78);\n      (*(code *)(iVar15 + -0x5984))(0);\n      uVar10 = param_2[1];\n    }\n    else {\n      if (*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==\n          '\x03') {\n        sqlite3_value_text(iVar15);\n      }\n      puVar13 = (uint *)0x0;\n      puVar4 = puStack_78;\n      uVar7 = FUN_0008ea3c(iVar15,puStack_78,0);\n      iVar2 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar2 + -0x5984))(puStack_78);\n      (*(code *)(iVar2 + -0x5984))(iVar15);\n      if (uVar7 == 0) goto LAB_000a1b98;\n      uVar10 = param_2[1];\n    }\n  }\n  uVar11 = uVar10 | puVar5[1];\n  if ((uVar11 & 0x400) != 0) {\n    uVar7 = 2;\n    if (((uVar10 & puVar5[1] & 0x400) != 0) && (uVar7 = 2, param_2[2] == puVar5[2])) {\n      uVar7 = 0;\n    }\n    goto LAB_000a1b98;\n  }\n  bVar8 = *(byte *)param_2;\n  if (*(byte *)puVar5 == bVar8) {\n    if (bVar8 != 0x47) {\n      if (((bVar8 != 0x9e) && (bVar8 != 0xa0)) && (param_2[2] != 0)) {\n        if (bVar8 == 0x9d) {\n          puVar4 = (uint *)puVar5[2];\n          iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();\n          if (iVar15 != 0) {\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }\n          if ((int)(uVar10 << 7) < 0) {\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n        else {\n          if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }\n          if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n      }\n      if (((param_2[1] ^ puVar5[1]) & 0x10) == 0) {\n        if ((uVar11 & 0x4000) == 0) {\n          if ((uVar11 & 0x800) == 0) {\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }\n          else {\n            uVar7 = 2;\n          }\n        }\n        else {\n          uVar7 = 0;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      goto LAB_000a1b98;\n    }\n  }\n  else if (bVar8 == 0x66) {\n    puVar4 = (uint *)param_2[3];\n    puVar13 = puVar5;\n    iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5,puVar6);\n    if (iVar15 < 2) {\n      uVar7 = 1;\n      goto LAB_000a1b98;\n    }\n  }\n  if (*(byte *)puVar5 == 0x66) {\n    puVar13 = (uint *)puVar5[3];\n    iVar15 = FUN_000a1aec(puVar3,param_2,puVar13,puVar6);\n    uVar7 = 2;\n    puVar4 = param_2;\n    if (iVar15 < 2) {\n      uVar7 = 1;\n    }\n  }\n  else {\n    uVar7 = 2;\n    puVar4 = param_2;\n  }\nLAB_000a1b98:\n  if (puStack_74 == (uint *)**(undefined4 **)(puVar14 + 0xee3e0)) {\n    return uVar7;\n  }\n  pcVar16 = *(code **)(puVar14 + 0xee3b4);\n  puVar9 = puStack_74;\n  (*pcVar16)();\n  pcVar16 = pcVar16 + 0xf5910;\n  if (puVar9 == (uint *)0x0) {\n    uVar7 = (uint)(puVar4 != (uint *)0x0);\n  }\n  else if (puVar4 == (uint *)0x0) {\n    uVar7 = 1;\n  }\n  else if (*puVar9 == *puVar4) {\n    if ((int)*puVar9 < 1) {\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = puVar9[1];\n      uVar10 = puVar4[1];\n      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }\n    }\n  }\n  else {\n    uVar7 = 1;\n  }\n  return uVar7;\n}\n\n" (function_definition "uint FUN_000a14dc(undefined4 param_1,uint *param_2,uint *param_3,uint *param_4,uint **param_5,\n                 undefined4 param_6)\n\n{\n  uint *puVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  uint *puVar4;\n  uint *puVar5;\n  uint *puVar6;\n  uint uVar7;\n  byte bVar8;\n  uint *puVar9;\n  uint uVar10;\n  char cVar12;\n  uint uVar11;\n  uint *puVar13;\n  undefined *puVar14;\n  int iVar15;\n  code *pcVar16;\n  uint *puStack_78;\n  uint *puStack_74;\n  uint uStack_70;\n  uint *puStack_6c;\n  undefined4 uStack_68;\n  uint **ppuStack_64;\n  uint *puStack_60;\n  uint *puStack_5c;\n  undefined4 uStack_58;\n  code *pcStack_54;\n  uint **local_40;\n  undefined4 local_3c;\n  uint *local_30;\n  undefined4 *local_2c;\n  \n  local_2c = *(undefined4 **)PTR___stack_chk_guard_0018fecc;\n  local_30 = (uint *)0x0;\n  for (puVar9 = param_2; (bVar8 = *(byte *)puVar9, bVar8 == 0xa2 || (bVar8 == 0xa9));\n      puVar9 = (uint *)puVar9[3]) {\n  }\n  if (bVar8 == 0xa4) {\n    bVar8 = *(byte *)(puVar9 + 10);\n  }\n  cVar12 = (char)param_4;\n  puVar5 = param_3;\n  if (bVar8 == 0x24) {\n    uVar10 = (*(code *)(PTR_LAB_0018fbbc + 0x7c60))(puVar9[2],0);\n    param_2 = (uint *)puVar9[3];\n    local_3c = param_6;\n    local_40 = param_5;\n    puVar6 = (uint *)(uVar10 & 0xff);\n    uVar7 = FUN_000a14dc(param_1);\n    if (*param_5 != (uint *)0x0) {\n      FUN_0008f194(*param_5,(uint *)(uVar10 & 0xff),1);\n      puVar5 = (uint *)0x1;\n      param_2 = (uint *)(int)cVar12;\n      FUN_0008efcc(*param_5);\n    }\n  }\n  else {\n    puVar6 = param_4;\n    if (bVar8 == 0xa1) {\n      puVar4 = (uint *)puVar9[3];\n      bVar8 = *(byte *)puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) {\n        puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80);\n        iVar15 = -1;\n        goto LAB_000a1594;\n      }\nLAB_000a1688:\n      param_2 = (uint *)puVar9[3];\n      local_3c = param_6;\n      local_40 = &local_30;\n      iVar15 = FUN_000a14dc(param_1);\n      if (iVar15 == 0) {\n        uVar7 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n          if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (uint *)(int)cVar12;\n          puVar5 = param_3;\n          FUN_0008efcc(local_30);\n        }\n      }\n      else {\n        uVar7 = 0;\n      }\n      goto LAB_000a180c;\n    }\n    if (bVar8 == 0x6a) {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\nLAB_000a1740:\n      local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n      if (local_30 == (uint *)0x0) {\nLAB_000a1a8c:\n        (*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);\n        param_2 = (uint *)0x0;\n        (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1);\n        (*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30);\n        uVar7 = 7;\n        goto LAB_000a1814;\n      }\n      if ((puVar9[1] & 0x400) == 0) {\n        puVar6 = (uint *)puVar9[2];\n        iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c);\n        puVar5 = puVar13;\n        if (iVar15 == 0) goto LAB_000a1a8c;\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x1;\n        FUN_00081e3c(local_30,0xffffffff,iVar15);\n      }\n      else {\n        puVar6 = (uint *)(puVar9[2] * iVar15);\n        (*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);\n      }\n      if (((bVar8 & 0xfd) == 0x8d) && (puVar5 = (uint *)0x1, param_4 == (uint *)0x41)) {\n        FUN_0008efcc(local_30,0x43);\n      }\n      else {\n        puVar5 = (uint *)0x1;\n        FUN_0008efcc(local_30,(int)cVar12);\n      }\n      if ((*(ushort *)(local_30 + 2) & 0xc) != 0) {\n        *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n      }\n      param_2 = param_3;\n      if (param_3 == (uint *)0x1) {\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = FUN_00084bc0();\n      }\n    }\n    else {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\n      puVar4 = puVar9;\nLAB_000a1594:\n      puVar9 = puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) goto LAB_000a1740;\n      if (bVar8 == 0xa1) goto LAB_000a1688;\n      if (bVar8 == 0x6e) {\n        local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }\n        goto LAB_000a1a8c;\n      }\n      if (bVar8 == 0x8e) {\n        puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        puVar5 = param_3;\n        param_3 = puVar13;\n        local_30 = puVar13;\n        if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;\n        uVar7 = puVar4[2];\n        iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);\n        puVar9 = (uint *)(iVar15 + -1);\n        param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x0;\n        puVar5 = (uint *)((int)puVar9 / 2);\n        FUN_00081ac0(puVar13);\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = 0;\n        if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }\n      }\n    }\nLAB_000a180c:\n    *param_5 = local_30;\n  }\nLAB_000a1814:\n  if (local_2c == *(undefined4 **)PTR___stack_chk_guard_0018fecc) {\n    return uVar7;\n  }\n  pcVar16 = FUN_000a1aec;\n  puVar3 = local_2c;\n  puVar14 = PTR___stack_chk_fail_0018fea0;\n  (*(code *)PTR___stack_chk_fail_0018fea0)();\n  uStack_58 = param_6;\n  ppuStack_64 = param_5;\n  puStack_74 = (uint *)**(undefined4 **)(puVar14 + 0xee3e0);\n  puVar4 = param_2;\n  puVar13 = puVar5;\n  uStack_70 = uVar7;\n  puStack_6c = puVar9;\n  uStack_68 = param_1;\n  puStack_60 = param_3;\n  puStack_5c = param_4;\n  pcStack_54 = pcVar16;\n  if (param_2 == (uint *)0x0) {\n    uVar7 = 2;\n    if (puVar5 == (uint *)0x0) {\n      uVar7 = 0;\n    }\n    goto LAB_000a1b98;\n  }\n  if (puVar5 == (uint *)0x0) {\n    uVar7 = 2;\n    goto LAB_000a1b98;\n  }\n  if ((puVar3 == (undefined4 *)0x0) || (*(byte *)param_2 != 0x90)) {\nLAB_000a1b58:\n    uVar10 = param_2[1];\n  }\n  else {\n    puStack_78 = (uint *)0x0;\n    puVar13 = (uint *)0x1;\n    puVar4 = puVar5;\n    FUN_000a14dc(*puVar3,puVar5,1,0x41,&puStack_78,0);\n    if (puStack_78 == (uint *)0x0) goto LAB_000a1b58;\n    puVar4 = (uint *)param_2[8];\n    (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x6628))(puVar3[2],puVar4);\n    puVar13 = (uint *)0x41;\n    iVar15 = FUN_0008f0b8(puVar3[0x36],puVar4,0x41);\n    if (iVar15 == 0) {\n      iVar15 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar15 + -0x5984))(puStack_78);\n      (*(code *)(iVar15 + -0x5984))(0);\n      uVar10 = param_2[1];\n    }\n    else {\n      if (*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==\n          '\x03') {\n        sqlite3_value_text(iVar15);\n      }\n      puVar13 = (uint *)0x0;\n      puVar4 = puStack_78;\n      uVar7 = FUN_0008ea3c(iVar15,puStack_78,0);\n      iVar2 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar2 + -0x5984))(puStack_78);\n      (*(code *)(iVar2 + -0x5984))(iVar15);\n      if (uVar7 == 0) goto LAB_000a1b98;\n      uVar10 = param_2[1];\n    }\n  }\n  uVar11 = uVar10 | puVar5[1];\n  if ((uVar11 & 0x400) != 0) {\n    uVar7 = 2;\n    if (((uVar10 & puVar5[1] & 0x400) != 0) && (uVar7 = 2, param_2[2] == puVar5[2])) {\n      uVar7 = 0;\n    }\n    goto LAB_000a1b98;\n  }\n  bVar8 = *(byte *)param_2;\n  if (*(byte *)puVar5 == bVar8) {\n    if (bVar8 != 0x47) {\n      if (((bVar8 != 0x9e) && (bVar8 != 0xa0)) && (param_2[2] != 0)) {\n        if (bVar8 == 0x9d) {\n          puVar4 = (uint *)puVar5[2];\n          iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();\n          if (iVar15 != 0) {\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }\n          if ((int)(uVar10 << 7) < 0) {\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n        else {\n          if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }\n          if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n      }\n      if (((param_2[1] ^ puVar5[1]) & 0x10) == 0) {\n        if ((uVar11 & 0x4000) == 0) {\n          if ((uVar11 & 0x800) == 0) {\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }\n          else {\n            uVar7 = 2;\n          }\n        }\n        else {\n          uVar7 = 0;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      goto LAB_000a1b98;\n    }\n  }\n  else if (bVar8 == 0x66) {\n    puVar4 = (uint *)param_2[3];\n    puVar13 = puVar5;\n    iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5,puVar6);\n    if (iVar15 < 2) {\n      uVar7 = 1;\n      goto LAB_000a1b98;\n    }\n  }\n  if (*(byte *)puVar5 == 0x66) {\n    puVar13 = (uint *)puVar5[3];\n    iVar15 = FUN_000a1aec(puVar3,param_2,puVar13,puVar6);\n    uVar7 = 2;\n    puVar4 = param_2;\n    if (iVar15 < 2) {\n      uVar7 = 1;\n    }\n  }\n  else {\n    uVar7 = 2;\n    puVar4 = param_2;\n  }\nLAB_000a1b98:\n  if (puStack_74 == (uint *)**(undefined4 **)(puVar14 + 0xee3e0)) {\n    return uVar7;\n  }\n  pcVar16 = *(code **)(puVar14 + 0xee3b4);\n  puVar9 = puStack_74;\n  (*pcVar16)();\n  pcVar16 = pcVar16 + 0xf5910;\n  if (puVar9 == (uint *)0x0) {\n    uVar7 = (uint)(puVar4 != (uint *)0x0);\n  }\n  else if (puVar4 == (uint *)0x0) {\n    uVar7 = 1;\n  }\n  else if (*puVar9 == *puVar4) {\n    if ((int)*puVar9 < 1) {\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = puVar9[1];\n      uVar10 = puVar4[1];\n      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }\n    }\n  }\n  else {\n    uVar7 = 1;\n  }\n  return uVar7;\n}" type_identifier (function_declarator "FUN_000a14dc(undefined4 param_1,uint *param_2,uint *param_3,uint *param_4,uint **param_5,\n                 undefined4 param_6)" identifier (parameter_list "(undefined4 param_1,uint *param_2,uint *param_3,uint *param_4,uint **param_5,\n                 undefined4 param_6)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "uint **param_5" type_identifier (pointer_declarator "**param_5" * (pointer_declarator "*param_5" * identifier))) , (parameter_declaration "undefined4 param_6" type_identifier identifier) ))) (compound_statement "{\n  uint *puVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  uint *puVar4;\n  uint *puVar5;\n  uint *puVar6;\n  uint uVar7;\n  byte bVar8;\n  uint *puVar9;\n  uint uVar10;\n  char cVar12;\n  uint uVar11;\n  uint *puVar13;\n  undefined *puVar14;\n  int iVar15;\n  code *pcVar16;\n  uint *puStack_78;\n  uint *puStack_74;\n  uint uStack_70;\n  uint *puStack_6c;\n  undefined4 uStack_68;\n  uint **ppuStack_64;\n  uint *puStack_60;\n  uint *puStack_5c;\n  undefined4 uStack_58;\n  code *pcStack_54;\n  uint **local_40;\n  undefined4 local_3c;\n  uint *local_30;\n  undefined4 *local_2c;\n  \n  local_2c = *(undefined4 **)PTR___stack_chk_guard_0018fecc;\n  local_30 = (uint *)0x0;\n  for (puVar9 = param_2; (bVar8 = *(byte *)puVar9, bVar8 == 0xa2 || (bVar8 == 0xa9));\n      puVar9 = (uint *)puVar9[3]) {\n  }\n  if (bVar8 == 0xa4) {\n    bVar8 = *(byte *)(puVar9 + 10);\n  }\n  cVar12 = (char)param_4;\n  puVar5 = param_3;\n  if (bVar8 == 0x24) {\n    uVar10 = (*(code *)(PTR_LAB_0018fbbc + 0x7c60))(puVar9[2],0);\n    param_2 = (uint *)puVar9[3];\n    local_3c = param_6;\n    local_40 = param_5;\n    puVar6 = (uint *)(uVar10 & 0xff);\n    uVar7 = FUN_000a14dc(param_1);\n    if (*param_5 != (uint *)0x0) {\n      FUN_0008f194(*param_5,(uint *)(uVar10 & 0xff),1);\n      puVar5 = (uint *)0x1;\n      param_2 = (uint *)(int)cVar12;\n      FUN_0008efcc(*param_5);\n    }\n  }\n  else {\n    puVar6 = param_4;\n    if (bVar8 == 0xa1) {\n      puVar4 = (uint *)puVar9[3];\n      bVar8 = *(byte *)puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) {\n        puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80);\n        iVar15 = -1;\n        goto LAB_000a1594;\n      }\nLAB_000a1688:\n      param_2 = (uint *)puVar9[3];\n      local_3c = param_6;\n      local_40 = &local_30;\n      iVar15 = FUN_000a14dc(param_1);\n      if (iVar15 == 0) {\n        uVar7 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n          if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (uint *)(int)cVar12;\n          puVar5 = param_3;\n          FUN_0008efcc(local_30);\n        }\n      }\n      else {\n        uVar7 = 0;\n      }\n      goto LAB_000a180c;\n    }\n    if (bVar8 == 0x6a) {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\nLAB_000a1740:\n      local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n      if (local_30 == (uint *)0x0) {\nLAB_000a1a8c:\n        (*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);\n        param_2 = (uint *)0x0;\n        (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1);\n        (*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30);\n        uVar7 = 7;\n        goto LAB_000a1814;\n      }\n      if ((puVar9[1] & 0x400) == 0) {\n        puVar6 = (uint *)puVar9[2];\n        iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c);\n        puVar5 = puVar13;\n        if (iVar15 == 0) goto LAB_000a1a8c;\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x1;\n        FUN_00081e3c(local_30,0xffffffff,iVar15);\n      }\n      else {\n        puVar6 = (uint *)(puVar9[2] * iVar15);\n        (*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);\n      }\n      if (((bVar8 & 0xfd) == 0x8d) && (puVar5 = (uint *)0x1, param_4 == (uint *)0x41)) {\n        FUN_0008efcc(local_30,0x43);\n      }\n      else {\n        puVar5 = (uint *)0x1;\n        FUN_0008efcc(local_30,(int)cVar12);\n      }\n      if ((*(ushort *)(local_30 + 2) & 0xc) != 0) {\n        *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n      }\n      param_2 = param_3;\n      if (param_3 == (uint *)0x1) {\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = FUN_00084bc0();\n      }\n    }\n    else {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\n      puVar4 = puVar9;\nLAB_000a1594:\n      puVar9 = puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) goto LAB_000a1740;\n      if (bVar8 == 0xa1) goto LAB_000a1688;\n      if (bVar8 == 0x6e) {\n        local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }\n        goto LAB_000a1a8c;\n      }\n      if (bVar8 == 0x8e) {\n        puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        puVar5 = param_3;\n        param_3 = puVar13;\n        local_30 = puVar13;\n        if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;\n        uVar7 = puVar4[2];\n        iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);\n        puVar9 = (uint *)(iVar15 + -1);\n        param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x0;\n        puVar5 = (uint *)((int)puVar9 / 2);\n        FUN_00081ac0(puVar13);\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = 0;\n        if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }\n      }\n    }\nLAB_000a180c:\n    *param_5 = local_30;\n  }\nLAB_000a1814:\n  if (local_2c == *(undefined4 **)PTR___stack_chk_guard_0018fecc) {\n    return uVar7;\n  }\n  pcVar16 = FUN_000a1aec;\n  puVar3 = local_2c;\n  puVar14 = PTR___stack_chk_fail_0018fea0;\n  (*(code *)PTR___stack_chk_fail_0018fea0)();\n  uStack_58 = param_6;\n  ppuStack_64 = param_5;\n  puStack_74 = (uint *)**(undefined4 **)(puVar14 + 0xee3e0);\n  puVar4 = param_2;\n  puVar13 = puVar5;\n  uStack_70 = uVar7;\n  puStack_6c = puVar9;\n  uStack_68 = param_1;\n  puStack_60 = param_3;\n  puStack_5c = param_4;\n  pcStack_54 = pcVar16;\n  if (param_2 == (uint *)0x0) {\n    uVar7 = 2;\n    if (puVar5 == (uint *)0x0) {\n      uVar7 = 0;\n    }\n    goto LAB_000a1b98;\n  }\n  if (puVar5 == (uint *)0x0) {\n    uVar7 = 2;\n    goto LAB_000a1b98;\n  }\n  if ((puVar3 == (undefined4 *)0x0) || (*(byte *)param_2 != 0x90)) {\nLAB_000a1b58:\n    uVar10 = param_2[1];\n  }\n  else {\n    puStack_78 = (uint *)0x0;\n    puVar13 = (uint *)0x1;\n    puVar4 = puVar5;\n    FUN_000a14dc(*puVar3,puVar5,1,0x41,&puStack_78,0);\n    if (puStack_78 == (uint *)0x0) goto LAB_000a1b58;\n    puVar4 = (uint *)param_2[8];\n    (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x6628))(puVar3[2],puVar4);\n    puVar13 = (uint *)0x41;\n    iVar15 = FUN_0008f0b8(puVar3[0x36],puVar4,0x41);\n    if (iVar15 == 0) {\n      iVar15 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar15 + -0x5984))(puStack_78);\n      (*(code *)(iVar15 + -0x5984))(0);\n      uVar10 = param_2[1];\n    }\n    else {\n      if (*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==\n          '\x03') {\n        sqlite3_value_text(iVar15);\n      }\n      puVar13 = (uint *)0x0;\n      puVar4 = puStack_78;\n      uVar7 = FUN_0008ea3c(iVar15,puStack_78,0);\n      iVar2 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar2 + -0x5984))(puStack_78);\n      (*(code *)(iVar2 + -0x5984))(iVar15);\n      if (uVar7 == 0) goto LAB_000a1b98;\n      uVar10 = param_2[1];\n    }\n  }\n  uVar11 = uVar10 | puVar5[1];\n  if ((uVar11 & 0x400) != 0) {\n    uVar7 = 2;\n    if (((uVar10 & puVar5[1] & 0x400) != 0) && (uVar7 = 2, param_2[2] == puVar5[2])) {\n      uVar7 = 0;\n    }\n    goto LAB_000a1b98;\n  }\n  bVar8 = *(byte *)param_2;\n  if (*(byte *)puVar5 == bVar8) {\n    if (bVar8 != 0x47) {\n      if (((bVar8 != 0x9e) && (bVar8 != 0xa0)) && (param_2[2] != 0)) {\n        if (bVar8 == 0x9d) {\n          puVar4 = (uint *)puVar5[2];\n          iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();\n          if (iVar15 != 0) {\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }\n          if ((int)(uVar10 << 7) < 0) {\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n        else {\n          if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }\n          if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n      }\n      if (((param_2[1] ^ puVar5[1]) & 0x10) == 0) {\n        if ((uVar11 & 0x4000) == 0) {\n          if ((uVar11 & 0x800) == 0) {\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }\n          else {\n            uVar7 = 2;\n          }\n        }\n        else {\n          uVar7 = 0;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      goto LAB_000a1b98;\n    }\n  }\n  else if (bVar8 == 0x66) {\n    puVar4 = (uint *)param_2[3];\n    puVar13 = puVar5;\n    iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5,puVar6);\n    if (iVar15 < 2) {\n      uVar7 = 1;\n      goto LAB_000a1b98;\n    }\n  }\n  if (*(byte *)puVar5 == 0x66) {\n    puVar13 = (uint *)puVar5[3];\n    iVar15 = FUN_000a1aec(puVar3,param_2,puVar13,puVar6);\n    uVar7 = 2;\n    puVar4 = param_2;\n    if (iVar15 < 2) {\n      uVar7 = 1;\n    }\n  }\n  else {\n    uVar7 = 2;\n    puVar4 = param_2;\n  }\nLAB_000a1b98:\n  if (puStack_74 == (uint *)**(undefined4 **)(puVar14 + 0xee3e0)) {\n    return uVar7;\n  }\n  pcVar16 = *(code **)(puVar14 + 0xee3b4);\n  puVar9 = puStack_74;\n  (*pcVar16)();\n  pcVar16 = pcVar16 + 0xf5910;\n  if (puVar9 == (uint *)0x0) {\n    uVar7 = (uint)(puVar4 != (uint *)0x0);\n  }\n  else if (puVar4 == (uint *)0x0) {\n    uVar7 = 1;\n  }\n  else if (*puVar9 == *puVar4) {\n    if ((int)*puVar9 < 1) {\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = puVar9[1];\n      uVar10 = puVar4[1];\n      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }\n    }\n  }\n  else {\n    uVar7 = 1;\n  }\n  return uVar7;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uint *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "byte bVar8;" type_identifier identifier ;) (declaration "uint *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "char cVar12;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "code *pcVar16;" type_identifier (pointer_declarator "*pcVar16" * identifier) ;) (declaration "uint *puStack_78;" type_identifier (pointer_declarator "*puStack_78" * identifier) ;) (declaration "uint *puStack_74;" type_identifier (pointer_declarator "*puStack_74" * identifier) ;) (declaration "uint uStack_70;" type_identifier identifier ;) (declaration "uint *puStack_6c;" type_identifier (pointer_declarator "*puStack_6c" * identifier) ;) (declaration "undefined4 uStack_68;" type_identifier identifier ;) (declaration "uint **ppuStack_64;" type_identifier (pointer_declarator "**ppuStack_64" * (pointer_declarator "*ppuStack_64" * identifier)) ;) (declaration "uint *puStack_60;" type_identifier (pointer_declarator "*puStack_60" * identifier) ;) (declaration "uint *puStack_5c;" type_identifier (pointer_declarator "*puStack_5c" * identifier) ;) (declaration "undefined4 uStack_58;" type_identifier identifier ;) (declaration "code *pcStack_54;" type_identifier (pointer_declarator "*pcStack_54" * identifier) ;) (declaration "uint **local_40;" type_identifier (pointer_declarator "**local_40" * (pointer_declarator "*local_40" * identifier)) ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "uint *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "undefined4 *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "local_2c = *(undefined4 **)PTR___stack_chk_guard_0018fecc;" (assignment_expression "local_2c = *(undefined4 **)PTR___stack_chk_guard_0018fecc" identifier = (pointer_expression "*(undefined4 **)PTR___stack_chk_guard_0018fecc" * (cast_expression "(undefined4 **)PTR___stack_chk_guard_0018fecc" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (for_statement "for (puVar9 = param_2; (bVar8 = *(byte *)puVar9, bVar8 == 0xa2 || (bVar8 == 0xa9));\n      puVar9 = (uint *)puVar9[3]) {\n  }" for ( (assignment_expression "puVar9 = param_2" identifier = identifier) ; (parenthesized_expression "(bVar8 = *(byte *)puVar9, bVar8 == 0xa2 || (bVar8 == 0xa9))" ( (comma_expression "bVar8 = *(byte *)puVar9, bVar8 == 0xa2 || (bVar8 == 0xa9)" (assignment_expression "bVar8 = *(byte *)puVar9" identifier = (pointer_expression "*(byte *)puVar9" * (cast_expression "(byte *)puVar9" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) , (binary_expression "bVar8 == 0xa2 || (bVar8 == 0xa9)" (binary_expression "bVar8 == 0xa2" identifier == number_literal) || (parenthesized_expression "(bVar8 == 0xa9)" ( (binary_expression "bVar8 == 0xa9" identifier == number_literal) )))) )) ; (assignment_expression "puVar9 = (uint *)puVar9[3]" identifier = (cast_expression "(uint *)puVar9[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[3]" identifier [ number_literal ]))) ) (compound_statement "{\n  }" { })) (if_statement "if (bVar8 == 0xa4) {\n    bVar8 = *(byte *)(puVar9 + 10);\n  }" if (parenthesized_expression "(bVar8 == 0xa4)" ( (binary_expression "bVar8 == 0xa4" identifier == number_literal) )) (compound_statement "{\n    bVar8 = *(byte *)(puVar9 + 10);\n  }" { (expression_statement "bVar8 = *(byte *)(puVar9 + 10);" (assignment_expression "bVar8 = *(byte *)(puVar9 + 10)" identifier = (pointer_expression "*(byte *)(puVar9 + 10)" * (cast_expression "(byte *)(puVar9 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 10)" ( (binary_expression "puVar9 + 10" identifier + number_literal) ))))) ;) })) (expression_statement "cVar12 = (char)param_4;" (assignment_expression "cVar12 = (char)param_4" identifier = (cast_expression "(char)param_4" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "puVar5 = param_3;" (assignment_expression "puVar5 = param_3" identifier = identifier) ;) (if_statement "if (bVar8 == 0x24) {\n    uVar10 = (*(code *)(PTR_LAB_0018fbbc + 0x7c60))(puVar9[2],0);\n    param_2 = (uint *)puVar9[3];\n    local_3c = param_6;\n    local_40 = param_5;\n    puVar6 = (uint *)(uVar10 & 0xff);\n    uVar7 = FUN_000a14dc(param_1);\n    if (*param_5 != (uint *)0x0) {\n      FUN_0008f194(*param_5,(uint *)(uVar10 & 0xff),1);\n      puVar5 = (uint *)0x1;\n      param_2 = (uint *)(int)cVar12;\n      FUN_0008efcc(*param_5);\n    }\n  }\n  else {\n    puVar6 = param_4;\n    if (bVar8 == 0xa1) {\n      puVar4 = (uint *)puVar9[3];\n      bVar8 = *(byte *)puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) {\n        puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80);\n        iVar15 = -1;\n        goto LAB_000a1594;\n      }\nLAB_000a1688:\n      param_2 = (uint *)puVar9[3];\n      local_3c = param_6;\n      local_40 = &local_30;\n      iVar15 = FUN_000a14dc(param_1);\n      if (iVar15 == 0) {\n        uVar7 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n          if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (uint *)(int)cVar12;\n          puVar5 = param_3;\n          FUN_0008efcc(local_30);\n        }\n      }\n      else {\n        uVar7 = 0;\n      }\n      goto LAB_000a180c;\n    }\n    if (bVar8 == 0x6a) {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\nLAB_000a1740:\n      local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n      if (local_30 == (uint *)0x0) {\nLAB_000a1a8c:\n        (*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);\n        param_2 = (uint *)0x0;\n        (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1);\n        (*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30);\n        uVar7 = 7;\n        goto LAB_000a1814;\n      }\n      if ((puVar9[1] & 0x400) == 0) {\n        puVar6 = (uint *)puVar9[2];\n        iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c);\n        puVar5 = puVar13;\n        if (iVar15 == 0) goto LAB_000a1a8c;\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x1;\n        FUN_00081e3c(local_30,0xffffffff,iVar15);\n      }\n      else {\n        puVar6 = (uint *)(puVar9[2] * iVar15);\n        (*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);\n      }\n      if (((bVar8 & 0xfd) == 0x8d) && (puVar5 = (uint *)0x1, param_4 == (uint *)0x41)) {\n        FUN_0008efcc(local_30,0x43);\n      }\n      else {\n        puVar5 = (uint *)0x1;\n        FUN_0008efcc(local_30,(int)cVar12);\n      }\n      if ((*(ushort *)(local_30 + 2) & 0xc) != 0) {\n        *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n      }\n      param_2 = param_3;\n      if (param_3 == (uint *)0x1) {\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = FUN_00084bc0();\n      }\n    }\n    else {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\n      puVar4 = puVar9;\nLAB_000a1594:\n      puVar9 = puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) goto LAB_000a1740;\n      if (bVar8 == 0xa1) goto LAB_000a1688;\n      if (bVar8 == 0x6e) {\n        local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }\n        goto LAB_000a1a8c;\n      }\n      if (bVar8 == 0x8e) {\n        puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        puVar5 = param_3;\n        param_3 = puVar13;\n        local_30 = puVar13;\n        if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;\n        uVar7 = puVar4[2];\n        iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);\n        puVar9 = (uint *)(iVar15 + -1);\n        param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x0;\n        puVar5 = (uint *)((int)puVar9 / 2);\n        FUN_00081ac0(puVar13);\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = 0;\n        if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }\n      }\n    }\nLAB_000a180c:\n    *param_5 = local_30;\n  }" if (parenthesized_expression "(bVar8 == 0x24)" ( (binary_expression "bVar8 == 0x24" identifier == number_literal) )) (compound_statement "{\n    uVar10 = (*(code *)(PTR_LAB_0018fbbc + 0x7c60))(puVar9[2],0);\n    param_2 = (uint *)puVar9[3];\n    local_3c = param_6;\n    local_40 = param_5;\n    puVar6 = (uint *)(uVar10 & 0xff);\n    uVar7 = FUN_000a14dc(param_1);\n    if (*param_5 != (uint *)0x0) {\n      FUN_0008f194(*param_5,(uint *)(uVar10 & 0xff),1);\n      puVar5 = (uint *)0x1;\n      param_2 = (uint *)(int)cVar12;\n      FUN_0008efcc(*param_5);\n    }\n  }" { (expression_statement "uVar10 = (*(code *)(PTR_LAB_0018fbbc + 0x7c60))(puVar9[2],0);" (assignment_expression "uVar10 = (*(code *)(PTR_LAB_0018fbbc + 0x7c60))(puVar9[2],0)" identifier = (call_expression "(*(code *)(PTR_LAB_0018fbbc + 0x7c60))(puVar9[2],0)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbbc + 0x7c60))" ( (pointer_expression "*(code *)(PTR_LAB_0018fbbc + 0x7c60)" * (cast_expression "(code *)(PTR_LAB_0018fbbc + 0x7c60)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbbc + 0x7c60)" ( (binary_expression "PTR_LAB_0018fbbc + 0x7c60" identifier + number_literal) )))) )) (argument_list "(puVar9[2],0)" ( (subscript_expression "puVar9[2]" identifier [ number_literal ]) , number_literal )))) ;) (expression_statement "param_2 = (uint *)puVar9[3];" (assignment_expression "param_2 = (uint *)puVar9[3]" identifier = (cast_expression "(uint *)puVar9[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[3]" identifier [ number_literal ]))) ;) (expression_statement "local_3c = param_6;" (assignment_expression "local_3c = param_6" identifier = identifier) ;) (expression_statement "local_40 = param_5;" (assignment_expression "local_40 = param_5" identifier = identifier) ;) (expression_statement "puVar6 = (uint *)(uVar10 & 0xff);" (assignment_expression "puVar6 = (uint *)(uVar10 & 0xff)" identifier = (cast_expression "(uint *)(uVar10 & 0xff)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar10 & 0xff)" ( (binary_expression "uVar10 & 0xff" identifier & number_literal) )))) ;) (expression_statement "uVar7 = FUN_000a14dc(param_1);" (assignment_expression "uVar7 = FUN_000a14dc(param_1)" identifier = (call_expression "FUN_000a14dc(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (*param_5 != (uint *)0x0) {\n      FUN_0008f194(*param_5,(uint *)(uVar10 & 0xff),1);\n      puVar5 = (uint *)0x1;\n      param_2 = (uint *)(int)cVar12;\n      FUN_0008efcc(*param_5);\n    }" if (parenthesized_expression "(*param_5 != (uint *)0x0)" ( (binary_expression "*param_5 != (uint *)0x0" (pointer_expression "*param_5" * identifier) != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_0008f194(*param_5,(uint *)(uVar10 & 0xff),1);\n      puVar5 = (uint *)0x1;\n      param_2 = (uint *)(int)cVar12;\n      FUN_0008efcc(*param_5);\n    }" { (expression_statement "FUN_0008f194(*param_5,(uint *)(uVar10 & 0xff),1);" (call_expression "FUN_0008f194(*param_5,(uint *)(uVar10 & 0xff),1)" identifier (argument_list "(*param_5,(uint *)(uVar10 & 0xff),1)" ( (pointer_expression "*param_5" * identifier) , (cast_expression "(uint *)(uVar10 & 0xff)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar10 & 0xff)" ( (binary_expression "uVar10 & 0xff" identifier & number_literal) ))) , number_literal ))) ;) (expression_statement "puVar5 = (uint *)0x1;" (assignment_expression "puVar5 = (uint *)0x1" identifier = (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_2 = (uint *)(int)cVar12;" (assignment_expression "param_2 = (uint *)(int)cVar12" identifier = (cast_expression "(uint *)(int)cVar12" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)cVar12" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "FUN_0008efcc(*param_5);" (call_expression "FUN_0008efcc(*param_5)" identifier (argument_list "(*param_5)" ( (pointer_expression "*param_5" * identifier) ))) ;) })) }) (else_clause "else {\n    puVar6 = param_4;\n    if (bVar8 == 0xa1) {\n      puVar4 = (uint *)puVar9[3];\n      bVar8 = *(byte *)puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) {\n        puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80);\n        iVar15 = -1;\n        goto LAB_000a1594;\n      }\nLAB_000a1688:\n      param_2 = (uint *)puVar9[3];\n      local_3c = param_6;\n      local_40 = &local_30;\n      iVar15 = FUN_000a14dc(param_1);\n      if (iVar15 == 0) {\n        uVar7 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n          if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (uint *)(int)cVar12;\n          puVar5 = param_3;\n          FUN_0008efcc(local_30);\n        }\n      }\n      else {\n        uVar7 = 0;\n      }\n      goto LAB_000a180c;\n    }\n    if (bVar8 == 0x6a) {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\nLAB_000a1740:\n      local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n      if (local_30 == (uint *)0x0) {\nLAB_000a1a8c:\n        (*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);\n        param_2 = (uint *)0x0;\n        (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1);\n        (*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30);\n        uVar7 = 7;\n        goto LAB_000a1814;\n      }\n      if ((puVar9[1] & 0x400) == 0) {\n        puVar6 = (uint *)puVar9[2];\n        iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c);\n        puVar5 = puVar13;\n        if (iVar15 == 0) goto LAB_000a1a8c;\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x1;\n        FUN_00081e3c(local_30,0xffffffff,iVar15);\n      }\n      else {\n        puVar6 = (uint *)(puVar9[2] * iVar15);\n        (*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);\n      }\n      if (((bVar8 & 0xfd) == 0x8d) && (puVar5 = (uint *)0x1, param_4 == (uint *)0x41)) {\n        FUN_0008efcc(local_30,0x43);\n      }\n      else {\n        puVar5 = (uint *)0x1;\n        FUN_0008efcc(local_30,(int)cVar12);\n      }\n      if ((*(ushort *)(local_30 + 2) & 0xc) != 0) {\n        *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n      }\n      param_2 = param_3;\n      if (param_3 == (uint *)0x1) {\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = FUN_00084bc0();\n      }\n    }\n    else {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\n      puVar4 = puVar9;\nLAB_000a1594:\n      puVar9 = puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) goto LAB_000a1740;\n      if (bVar8 == 0xa1) goto LAB_000a1688;\n      if (bVar8 == 0x6e) {\n        local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }\n        goto LAB_000a1a8c;\n      }\n      if (bVar8 == 0x8e) {\n        puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        puVar5 = param_3;\n        param_3 = puVar13;\n        local_30 = puVar13;\n        if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;\n        uVar7 = puVar4[2];\n        iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);\n        puVar9 = (uint *)(iVar15 + -1);\n        param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x0;\n        puVar5 = (uint *)((int)puVar9 / 2);\n        FUN_00081ac0(puVar13);\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = 0;\n        if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }\n      }\n    }\nLAB_000a180c:\n    *param_5 = local_30;\n  }" else (compound_statement "{\n    puVar6 = param_4;\n    if (bVar8 == 0xa1) {\n      puVar4 = (uint *)puVar9[3];\n      bVar8 = *(byte *)puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) {\n        puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80);\n        iVar15 = -1;\n        goto LAB_000a1594;\n      }\nLAB_000a1688:\n      param_2 = (uint *)puVar9[3];\n      local_3c = param_6;\n      local_40 = &local_30;\n      iVar15 = FUN_000a14dc(param_1);\n      if (iVar15 == 0) {\n        uVar7 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n          if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (uint *)(int)cVar12;\n          puVar5 = param_3;\n          FUN_0008efcc(local_30);\n        }\n      }\n      else {\n        uVar7 = 0;\n      }\n      goto LAB_000a180c;\n    }\n    if (bVar8 == 0x6a) {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\nLAB_000a1740:\n      local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n      if (local_30 == (uint *)0x0) {\nLAB_000a1a8c:\n        (*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);\n        param_2 = (uint *)0x0;\n        (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1);\n        (*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30);\n        uVar7 = 7;\n        goto LAB_000a1814;\n      }\n      if ((puVar9[1] & 0x400) == 0) {\n        puVar6 = (uint *)puVar9[2];\n        iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c);\n        puVar5 = puVar13;\n        if (iVar15 == 0) goto LAB_000a1a8c;\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x1;\n        FUN_00081e3c(local_30,0xffffffff,iVar15);\n      }\n      else {\n        puVar6 = (uint *)(puVar9[2] * iVar15);\n        (*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);\n      }\n      if (((bVar8 & 0xfd) == 0x8d) && (puVar5 = (uint *)0x1, param_4 == (uint *)0x41)) {\n        FUN_0008efcc(local_30,0x43);\n      }\n      else {\n        puVar5 = (uint *)0x1;\n        FUN_0008efcc(local_30,(int)cVar12);\n      }\n      if ((*(ushort *)(local_30 + 2) & 0xc) != 0) {\n        *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n      }\n      param_2 = param_3;\n      if (param_3 == (uint *)0x1) {\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = FUN_00084bc0();\n      }\n    }\n    else {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\n      puVar4 = puVar9;\nLAB_000a1594:\n      puVar9 = puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) goto LAB_000a1740;\n      if (bVar8 == 0xa1) goto LAB_000a1688;\n      if (bVar8 == 0x6e) {\n        local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }\n        goto LAB_000a1a8c;\n      }\n      if (bVar8 == 0x8e) {\n        puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        puVar5 = param_3;\n        param_3 = puVar13;\n        local_30 = puVar13;\n        if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;\n        uVar7 = puVar4[2];\n        iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);\n        puVar9 = (uint *)(iVar15 + -1);\n        param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x0;\n        puVar5 = (uint *)((int)puVar9 / 2);\n        FUN_00081ac0(puVar13);\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = 0;\n        if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }\n      }\n    }\nLAB_000a180c:\n    *param_5 = local_30;\n  }" { (expression_statement "puVar6 = param_4;" (assignment_expression "puVar6 = param_4" identifier = identifier) ;) (if_statement "if (bVar8 == 0xa1) {\n      puVar4 = (uint *)puVar9[3];\n      bVar8 = *(byte *)puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) {\n        puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80);\n        iVar15 = -1;\n        goto LAB_000a1594;\n      }\nLAB_000a1688:\n      param_2 = (uint *)puVar9[3];\n      local_3c = param_6;\n      local_40 = &local_30;\n      iVar15 = FUN_000a14dc(param_1);\n      if (iVar15 == 0) {\n        uVar7 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n          if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (uint *)(int)cVar12;\n          puVar5 = param_3;\n          FUN_0008efcc(local_30);\n        }\n      }\n      else {\n        uVar7 = 0;\n      }\n      goto LAB_000a180c;\n    }" if (parenthesized_expression "(bVar8 == 0xa1)" ( (binary_expression "bVar8 == 0xa1" identifier == number_literal) )) (compound_statement "{\n      puVar4 = (uint *)puVar9[3];\n      bVar8 = *(byte *)puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) {\n        puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80);\n        iVar15 = -1;\n        goto LAB_000a1594;\n      }\nLAB_000a1688:\n      param_2 = (uint *)puVar9[3];\n      local_3c = param_6;\n      local_40 = &local_30;\n      iVar15 = FUN_000a14dc(param_1);\n      if (iVar15 == 0) {\n        uVar7 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n          if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (uint *)(int)cVar12;\n          puVar5 = param_3;\n          FUN_0008efcc(local_30);\n        }\n      }\n      else {\n        uVar7 = 0;\n      }\n      goto LAB_000a180c;\n    }" { (expression_statement "puVar4 = (uint *)puVar9[3];" (assignment_expression "puVar4 = (uint *)puVar9[3]" identifier = (cast_expression "(uint *)puVar9[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[3]" identifier [ number_literal ]))) ;) (expression_statement "bVar8 = *(byte *)puVar4;" (assignment_expression "bVar8 = *(byte *)puVar4" identifier = (pointer_expression "*(byte *)puVar4" * (cast_expression "(byte *)puVar4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if ((bVar8 & 0xfd) == 0x8d) {\n        puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80);\n        iVar15 = -1;\n        goto LAB_000a1594;\n      }" if (parenthesized_expression "((bVar8 & 0xfd) == 0x8d)" ( (binary_expression "(bVar8 & 0xfd) == 0x8d" (parenthesized_expression "(bVar8 & 0xfd)" ( (binary_expression "bVar8 & 0xfd" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80);\n        iVar15 = -1;\n        goto LAB_000a1594;\n      }" { (expression_statement "puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80);" (assignment_expression "puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80)" identifier = (cast_expression "(uint *)(PTR_LAB_0018f958 + 0xd80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018f958 + 0xd80)" ( (binary_expression "PTR_LAB_0018f958 + 0xd80" identifier + number_literal) )))) ;) (expression_statement "iVar15 = -1;" (assignment_expression "iVar15 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_000a1594;" goto statement_identifier ;) })) (labeled_statement "LAB_000a1688:\n      param_2 = (uint *)puVar9[3];" statement_identifier : (expression_statement "param_2 = (uint *)puVar9[3];" (assignment_expression "param_2 = (uint *)puVar9[3]" identifier = (cast_expression "(uint *)puVar9[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[3]" identifier [ number_literal ]))) ;)) (expression_statement "local_3c = param_6;" (assignment_expression "local_3c = param_6" identifier = identifier) ;) (expression_statement "local_40 = &local_30;" (assignment_expression "local_40 = &local_30" identifier = (pointer_expression "&local_30" & identifier)) ;) (expression_statement "iVar15 = FUN_000a14dc(param_1);" (assignment_expression "iVar15 = FUN_000a14dc(param_1)" identifier = (call_expression "FUN_000a14dc(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar15 == 0) {\n        uVar7 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n          if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (uint *)(int)cVar12;\n          puVar5 = param_3;\n          FUN_0008efcc(local_30);\n        }\n      }\n      else {\n        uVar7 = 0;\n      }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar7 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n          if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (uint *)(int)cVar12;\n          puVar5 = param_3;\n          FUN_0008efcc(local_30);\n        }\n      }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (if_statement "if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n          if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (uint *)(int)cVar12;\n          puVar5 = param_3;\n          FUN_0008efcc(local_30);\n        }" if (parenthesized_expression "(local_30 != (uint *)0x0)" ( (binary_expression "local_30 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n          if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (uint *)(int)cVar12;\n          puVar5 = param_3;\n          FUN_0008efcc(local_30);\n        }" { (expression_statement "(*(code *)(PTR_LAB_0018fbd0 + 0x6988))();" (call_expression "(*(code *)(PTR_LAB_0018fbd0 + 0x6988))()" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbd0 + 0x6988))" ( (pointer_expression "*(code *)(PTR_LAB_0018fbd0 + 0x6988)" * (cast_expression "(code *)(PTR_LAB_0018fbd0 + 0x6988)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbd0 + 0x6988)" ( (binary_expression "PTR_LAB_0018fbd0 + 0x6988" identifier + number_literal) )))) )) (argument_list "()" ( ))) ;) (if_statement "if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }" if (parenthesized_expression "((local_30[2] & 0x80000) == 0)" ( (binary_expression "(local_30[2] & 0x80000) == 0" (parenthesized_expression "(local_30[2] & 0x80000)" ( (binary_expression "local_30[2] & 0x80000" (subscript_expression "local_30[2]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }" { (if_statement "if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }" if (parenthesized_expression "((*local_30 == 0x80000000) && (local_30[1] == 0))" ( (binary_expression "(*local_30 == 0x80000000) && (local_30[1] == 0)" (parenthesized_expression "(*local_30 == 0x80000000)" ( (binary_expression "*local_30 == 0x80000000" (pointer_expression "*local_30" * identifier) == number_literal) )) && (parenthesized_expression "(local_30[1] == 0)" ( (binary_expression "local_30[1] == 0" (subscript_expression "local_30[1]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }" { (expression_statement "*(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);" (assignment_expression "*(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8)" (pointer_expression "*(undefined8 *)local_30" * (cast_expression "(undefined8 *)local_30" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8)" * (cast_expression "(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0018fbb0 + -0x3fb8)" ( (binary_expression "PTR_DAT_0018fbb0 + -0x3fb8" identifier + number_literal) ))))) ;) (expression_statement "*(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;" (assignment_expression "*(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8" (pointer_expression "*(ushort *)(local_30 + 2)" * (cast_expression "(ushort *)(local_30 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 2)" ( (binary_expression "local_30 + 2" identifier + number_literal) )))) = (binary_expression "*(ushort *)(local_30 + 2) & 0x3e00 | 8" (binary_expression "*(ushort *)(local_30 + 2) & 0x3e00" (pointer_expression "*(ushort *)(local_30 + 2)" * (cast_expression "(ushort *)(local_30 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 2)" ( (binary_expression "local_30 + 2" identifier + number_literal) )))) & number_literal) | number_literal)) ;) }) (else_clause "else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }" else (compound_statement "{\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }" { (expression_statement "uVar10 = -local_30[1];" (assignment_expression "uVar10 = -local_30[1]" identifier = (unary_expression "-local_30[1]" - (subscript_expression "local_30[1]" identifier [ number_literal ]))) ;) (expression_statement "*local_30 = -(uint)(uVar10 != 0) - *local_30;" (assignment_expression "*local_30 = -(uint)(uVar10 != 0) - *local_30" (pointer_expression "*local_30" * identifier) = (binary_expression "-(uint)(uVar10 != 0) - *local_30" (unary_expression "-(uint)(uVar10 != 0)" - (call_expression "(uint)(uVar10 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )))) - (pointer_expression "*local_30" * identifier))) ;) (expression_statement "local_30[1] = uVar10;" (assignment_expression "local_30[1] = uVar10" (subscript_expression "local_30[1]" identifier [ number_literal ]) = identifier) ;) }))) }) (else_clause "else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }" else (compound_statement "{\n            *local_30 = *local_30 ^ 0x80000000;\n          }" { (expression_statement "*local_30 = *local_30 ^ 0x80000000;" (assignment_expression "*local_30 = *local_30 ^ 0x80000000" (pointer_expression "*local_30" * identifier) = (binary_expression "*local_30 ^ 0x80000000" (pointer_expression "*local_30" * identifier) ^ number_literal)) ;) }))) (expression_statement "param_2 = (uint *)(int)cVar12;" (assignment_expression "param_2 = (uint *)(int)cVar12" identifier = (cast_expression "(uint *)(int)cVar12" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)cVar12" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar5 = param_3;" (assignment_expression "puVar5 = param_3" identifier = identifier) ;) (expression_statement "FUN_0008efcc(local_30);" (call_expression "FUN_0008efcc(local_30)" identifier (argument_list "(local_30)" ( identifier ))) ;) })) }) (else_clause "else {\n        uVar7 = 0;\n      }" else (compound_statement "{\n        uVar7 = 0;\n      }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) }))) (goto_statement "goto LAB_000a180c;" goto statement_identifier ;) })) (if_statement "if (bVar8 == 0x6a) {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\nLAB_000a1740:\n      local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n      if (local_30 == (uint *)0x0) {\nLAB_000a1a8c:\n        (*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);\n        param_2 = (uint *)0x0;\n        (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1);\n        (*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30);\n        uVar7 = 7;\n        goto LAB_000a1814;\n      }\n      if ((puVar9[1] & 0x400) == 0) {\n        puVar6 = (uint *)puVar9[2];\n        iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c);\n        puVar5 = puVar13;\n        if (iVar15 == 0) goto LAB_000a1a8c;\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x1;\n        FUN_00081e3c(local_30,0xffffffff,iVar15);\n      }\n      else {\n        puVar6 = (uint *)(puVar9[2] * iVar15);\n        (*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);\n      }\n      if (((bVar8 & 0xfd) == 0x8d) && (puVar5 = (uint *)0x1, param_4 == (uint *)0x41)) {\n        FUN_0008efcc(local_30,0x43);\n      }\n      else {\n        puVar5 = (uint *)0x1;\n        FUN_0008efcc(local_30,(int)cVar12);\n      }\n      if ((*(ushort *)(local_30 + 2) & 0xc) != 0) {\n        *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n      }\n      param_2 = param_3;\n      if (param_3 == (uint *)0x1) {\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = FUN_00084bc0();\n      }\n    }\n    else {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\n      puVar4 = puVar9;\nLAB_000a1594:\n      puVar9 = puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) goto LAB_000a1740;\n      if (bVar8 == 0xa1) goto LAB_000a1688;\n      if (bVar8 == 0x6e) {\n        local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }\n        goto LAB_000a1a8c;\n      }\n      if (bVar8 == 0x8e) {\n        puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        puVar5 = param_3;\n        param_3 = puVar13;\n        local_30 = puVar13;\n        if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;\n        uVar7 = puVar4[2];\n        iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);\n        puVar9 = (uint *)(iVar15 + -1);\n        param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x0;\n        puVar5 = (uint *)((int)puVar9 / 2);\n        FUN_00081ac0(puVar13);\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = 0;\n        if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }\n      }\n    }" if (parenthesized_expression "(bVar8 == 0x6a)" ( (binary_expression "bVar8 == 0x6a" identifier == number_literal) )) (compound_statement "{\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\nLAB_000a1740:\n      local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n      if (local_30 == (uint *)0x0) {\nLAB_000a1a8c:\n        (*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);\n        param_2 = (uint *)0x0;\n        (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1);\n        (*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30);\n        uVar7 = 7;\n        goto LAB_000a1814;\n      }\n      if ((puVar9[1] & 0x400) == 0) {\n        puVar6 = (uint *)puVar9[2];\n        iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c);\n        puVar5 = puVar13;\n        if (iVar15 == 0) goto LAB_000a1a8c;\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x1;\n        FUN_00081e3c(local_30,0xffffffff,iVar15);\n      }\n      else {\n        puVar6 = (uint *)(puVar9[2] * iVar15);\n        (*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);\n      }\n      if (((bVar8 & 0xfd) == 0x8d) && (puVar5 = (uint *)0x1, param_4 == (uint *)0x41)) {\n        FUN_0008efcc(local_30,0x43);\n      }\n      else {\n        puVar5 = (uint *)0x1;\n        FUN_0008efcc(local_30,(int)cVar12);\n      }\n      if ((*(ushort *)(local_30 + 2) & 0xc) != 0) {\n        *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n      }\n      param_2 = param_3;\n      if (param_3 == (uint *)0x1) {\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = FUN_00084bc0();\n      }\n    }" { (expression_statement "puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);" (assignment_expression "puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20)" identifier = (cast_expression "(uint *)(PTR_LAB_0018f958 + 0x2d20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018f958 + 0x2d20)" ( (binary_expression "PTR_LAB_0018f958 + 0x2d20" identifier + number_literal) )))) ;) (expression_statement "iVar15 = 1;" (assignment_expression "iVar15 = 1" identifier = number_literal) ;) (labeled_statement "LAB_000a1740:\n      local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);" statement_identifier : (expression_statement "local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);" (assignment_expression "local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1)" identifier = (cast_expression "(uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbbc + 0x65c8))" ( (pointer_expression "*(code *)(PTR_LAB_0018fbbc + 0x65c8)" * (cast_expression "(code *)(PTR_LAB_0018fbbc + 0x65c8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbbc + 0x65c8)" ( (binary_expression "PTR_LAB_0018fbbc + 0x65c8" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))))) ;)) (if_statement "if (local_30 == (uint *)0x0) {\nLAB_000a1a8c:\n        (*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);\n        param_2 = (uint *)0x0;\n        (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1);\n        (*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30);\n        uVar7 = 7;\n        goto LAB_000a1814;\n      }" if (parenthesized_expression "(local_30 == (uint *)0x0)" ( (binary_expression "local_30 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000a1a8c:\n        (*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);\n        param_2 = (uint *)0x0;\n        (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1);\n        (*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30);\n        uVar7 = 7;\n        goto LAB_000a1814;\n      }" { (labeled_statement "LAB_000a1a8c:\n        (*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);" statement_identifier : (expression_statement "(*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);" (call_expression "(*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fb58 + 0x1354))" ( (pointer_expression "*(code *)(PTR_LAB_0018fb58 + 0x1354)" * (cast_expression "(code *)(PTR_LAB_0018fb58 + 0x1354)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fb58 + 0x1354)" ( (binary_expression "PTR_LAB_0018fb58 + 0x1354" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))) ;)) (expression_statement "param_2 = (uint *)0x0;" (assignment_expression "param_2 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1);" (call_expression "(*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbd0 + 0x7878))" ( (pointer_expression "*(code *)(PTR_LAB_0018fbd0 + 0x7878)" * (cast_expression "(code *)(PTR_LAB_0018fbd0 + 0x7878)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbd0 + 0x7878)" ( (binary_expression "PTR_LAB_0018fbd0 + 0x7878" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "(*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30);" (call_expression "(*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fc04 + -0x5984))" ( (pointer_expression "*(code *)(PTR_LAB_0018fc04 + -0x5984)" * (cast_expression "(code *)(PTR_LAB_0018fc04 + -0x5984)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fc04 + -0x5984)" ( (binary_expression "PTR_LAB_0018fc04 + -0x5984" identifier + number_literal) )))) )) (argument_list "(local_30)" ( identifier ))) ;) (expression_statement "uVar7 = 7;" (assignment_expression "uVar7 = 7" identifier = number_literal) ;) (goto_statement "goto LAB_000a1814;" goto statement_identifier ;) })) (if_statement "if ((puVar9[1] & 0x400) == 0) {\n        puVar6 = (uint *)puVar9[2];\n        iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c);\n        puVar5 = puVar13;\n        if (iVar15 == 0) goto LAB_000a1a8c;\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x1;\n        FUN_00081e3c(local_30,0xffffffff,iVar15);\n      }\n      else {\n        puVar6 = (uint *)(puVar9[2] * iVar15);\n        (*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);\n      }" if (parenthesized_expression "((puVar9[1] & 0x400) == 0)" ( (binary_expression "(puVar9[1] & 0x400) == 0" (parenthesized_expression "(puVar9[1] & 0x400)" ( (binary_expression "puVar9[1] & 0x400" (subscript_expression "puVar9[1]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n        puVar6 = (uint *)puVar9[2];\n        iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c);\n        puVar5 = puVar13;\n        if (iVar15 == 0) goto LAB_000a1a8c;\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x1;\n        FUN_00081e3c(local_30,0xffffffff,iVar15);\n      }" { (expression_statement "puVar6 = (uint *)puVar9[2];" (assignment_expression "puVar6 = (uint *)puVar9[2]" identifier = (cast_expression "(uint *)puVar9[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[2]" identifier [ number_literal ]))) ;) (expression_statement "iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c);" (assignment_expression "iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c)" identifier = (call_expression "FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c)" identifier (argument_list "(param_1,PTR_LAB_0018f958 + 0x172c)" ( identifier , (binary_expression "PTR_LAB_0018f958 + 0x172c" identifier + number_literal) )))) ;) (expression_statement "puVar5 = puVar13;" (assignment_expression "puVar5 = puVar13" identifier = identifier) ;) (if_statement "if (iVar15 == 0) goto LAB_000a1a8c;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000a1a8c;" goto statement_identifier ;)) (expression_statement "local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);" (assignment_expression "local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030)" identifier = (cast_expression "(uint **)(PTR_LAB_0018fb58 + 0x1030)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_LAB_0018fb58 + 0x1030)" ( (binary_expression "PTR_LAB_0018fb58 + 0x1030" identifier + number_literal) )))) ;) (expression_statement "puVar6 = (uint *)0x1;" (assignment_expression "puVar6 = (uint *)0x1" identifier = (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_00081e3c(local_30,0xffffffff,iVar15);" (call_expression "FUN_00081e3c(local_30,0xffffffff,iVar15)" identifier (argument_list "(local_30,0xffffffff,iVar15)" ( identifier , number_literal , identifier ))) ;) }) (else_clause "else {\n        puVar6 = (uint *)(puVar9[2] * iVar15);\n        (*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);\n      }" else (compound_statement "{\n        puVar6 = (uint *)(puVar9[2] * iVar15);\n        (*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);\n      }" { (expression_statement "puVar6 = (uint *)(puVar9[2] * iVar15);" (assignment_expression "puVar6 = (uint *)(puVar9[2] * iVar15)" identifier = (cast_expression "(uint *)(puVar9[2] * iVar15)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9[2] * iVar15)" ( (binary_expression "puVar9[2] * iVar15" (subscript_expression "puVar9[2]" identifier [ number_literal ]) * identifier) )))) ;) (expression_statement "(*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);" (call_expression "(*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fc04 + -0x6694))" ( (pointer_expression "*(code *)(PTR_LAB_0018fc04 + -0x6694)" * (cast_expression "(code *)(PTR_LAB_0018fc04 + -0x6694)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fc04 + -0x6694)" ( (binary_expression "PTR_LAB_0018fc04 + -0x6694" identifier + number_literal) )))) )) (argument_list "(local_30)" ( identifier ))) ;) }))) (if_statement "if (((bVar8 & 0xfd) == 0x8d) && (puVar5 = (uint *)0x1, param_4 == (uint *)0x41)) {\n        FUN_0008efcc(local_30,0x43);\n      }\n      else {\n        puVar5 = (uint *)0x1;\n        FUN_0008efcc(local_30,(int)cVar12);\n      }" if (parenthesized_expression "(((bVar8 & 0xfd) == 0x8d) && (puVar5 = (uint *)0x1, param_4 == (uint *)0x41))" ( (binary_expression "((bVar8 & 0xfd) == 0x8d) && (puVar5 = (uint *)0x1, param_4 == (uint *)0x41)" (parenthesized_expression "((bVar8 & 0xfd) == 0x8d)" ( (binary_expression "(bVar8 & 0xfd) == 0x8d" (parenthesized_expression "(bVar8 & 0xfd)" ( (binary_expression "bVar8 & 0xfd" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(puVar5 = (uint *)0x1, param_4 == (uint *)0x41)" ( (comma_expression "puVar5 = (uint *)0x1, param_4 == (uint *)0x41" (assignment_expression "puVar5 = (uint *)0x1" identifier = (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) , (binary_expression "param_4 == (uint *)0x41" identifier == (cast_expression "(uint *)0x41" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n        FUN_0008efcc(local_30,0x43);\n      }" { (expression_statement "FUN_0008efcc(local_30,0x43);" (call_expression "FUN_0008efcc(local_30,0x43)" identifier (argument_list "(local_30,0x43)" ( identifier , number_literal ))) ;) }) (else_clause "else {\n        puVar5 = (uint *)0x1;\n        FUN_0008efcc(local_30,(int)cVar12);\n      }" else (compound_statement "{\n        puVar5 = (uint *)0x1;\n        FUN_0008efcc(local_30,(int)cVar12);\n      }" { (expression_statement "puVar5 = (uint *)0x1;" (assignment_expression "puVar5 = (uint *)0x1" identifier = (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0008efcc(local_30,(int)cVar12);" (call_expression "FUN_0008efcc(local_30,(int)cVar12)" identifier (argument_list "(local_30,(int)cVar12)" ( identifier , (cast_expression "(int)cVar12" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) }))) (if_statement "if ((*(ushort *)(local_30 + 2) & 0xc) != 0) {\n        *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n      }" if (parenthesized_expression "((*(ushort *)(local_30 + 2) & 0xc) != 0)" ( (binary_expression "(*(ushort *)(local_30 + 2) & 0xc) != 0" (parenthesized_expression "(*(ushort *)(local_30 + 2) & 0xc)" ( (binary_expression "*(ushort *)(local_30 + 2) & 0xc" (pointer_expression "*(ushort *)(local_30 + 2)" * (cast_expression "(ushort *)(local_30 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 2)" ( (binary_expression "local_30 + 2" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n      }" { (expression_statement "*(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;" (assignment_expression "*(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd" (pointer_expression "*(ushort *)(local_30 + 2)" * (cast_expression "(ushort *)(local_30 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 2)" ( (binary_expression "local_30 + 2" identifier + number_literal) )))) = (binary_expression "*(ushort *)(local_30 + 2) & 0xfffd" (pointer_expression "*(ushort *)(local_30 + 2)" * (cast_expression "(ushort *)(local_30 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 2)" ( (binary_expression "local_30 + 2" identifier + number_literal) )))) & number_literal)) ;) })) (expression_statement "param_2 = param_3;" (assignment_expression "param_2 = param_3" identifier = identifier) ;) (if_statement "if (param_3 == (uint *)0x1) {\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = FUN_00084bc0();\n      }" if (parenthesized_expression "(param_3 == (uint *)0x1)" ( (binary_expression "param_3 == (uint *)0x1" identifier == (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar7 = 0;\n      }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        uVar7 = FUN_00084bc0();\n      }" else (compound_statement "{\n        uVar7 = FUN_00084bc0();\n      }" { (expression_statement "uVar7 = FUN_00084bc0();" (assignment_expression "uVar7 = FUN_00084bc0()" identifier = (call_expression "FUN_00084bc0()" identifier (argument_list "()" ( )))) ;) }))) }) (else_clause "else {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\n      puVar4 = puVar9;\nLAB_000a1594:\n      puVar9 = puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) goto LAB_000a1740;\n      if (bVar8 == 0xa1) goto LAB_000a1688;\n      if (bVar8 == 0x6e) {\n        local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }\n        goto LAB_000a1a8c;\n      }\n      if (bVar8 == 0x8e) {\n        puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        puVar5 = param_3;\n        param_3 = puVar13;\n        local_30 = puVar13;\n        if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;\n        uVar7 = puVar4[2];\n        iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);\n        puVar9 = (uint *)(iVar15 + -1);\n        param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x0;\n        puVar5 = (uint *)((int)puVar9 / 2);\n        FUN_00081ac0(puVar13);\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = 0;\n        if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }\n      }\n    }" else (compound_statement "{\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\n      puVar4 = puVar9;\nLAB_000a1594:\n      puVar9 = puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) goto LAB_000a1740;\n      if (bVar8 == 0xa1) goto LAB_000a1688;\n      if (bVar8 == 0x6e) {\n        local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }\n        goto LAB_000a1a8c;\n      }\n      if (bVar8 == 0x8e) {\n        puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        puVar5 = param_3;\n        param_3 = puVar13;\n        local_30 = puVar13;\n        if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;\n        uVar7 = puVar4[2];\n        iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);\n        puVar9 = (uint *)(iVar15 + -1);\n        param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x0;\n        puVar5 = (uint *)((int)puVar9 / 2);\n        FUN_00081ac0(puVar13);\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = 0;\n        if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }\n      }\n    }" { (expression_statement "puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);" (assignment_expression "puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20)" identifier = (cast_expression "(uint *)(PTR_LAB_0018f958 + 0x2d20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018f958 + 0x2d20)" ( (binary_expression "PTR_LAB_0018f958 + 0x2d20" identifier + number_literal) )))) ;) (expression_statement "iVar15 = 1;" (assignment_expression "iVar15 = 1" identifier = number_literal) ;) (expression_statement "puVar4 = puVar9;" (assignment_expression "puVar4 = puVar9" identifier = identifier) ;) (labeled_statement "LAB_000a1594:\n      puVar9 = puVar4;" statement_identifier : (expression_statement "puVar9 = puVar4;" (assignment_expression "puVar9 = puVar4" identifier = identifier) ;)) (if_statement "if ((bVar8 & 0xfd) == 0x8d) goto LAB_000a1740;" if (parenthesized_expression "((bVar8 & 0xfd) == 0x8d)" ( (binary_expression "(bVar8 & 0xfd) == 0x8d" (parenthesized_expression "(bVar8 & 0xfd)" ( (binary_expression "bVar8 & 0xfd" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000a1740;" goto statement_identifier ;)) (if_statement "if (bVar8 == 0xa1) goto LAB_000a1688;" if (parenthesized_expression "(bVar8 == 0xa1)" ( (binary_expression "bVar8 == 0xa1" identifier == number_literal) )) (goto_statement "goto LAB_000a1688;" goto statement_identifier ;)) (if_statement "if (bVar8 == 0x6e) {\n        local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }\n        goto LAB_000a1a8c;\n      }" if (parenthesized_expression "(bVar8 == 0x6e)" ( (binary_expression "bVar8 == 0x6e" identifier == number_literal) )) (compound_statement "{\n        local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }\n        goto LAB_000a1a8c;\n      }" { (expression_statement "local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);" (assignment_expression "local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1)" identifier = (cast_expression "(uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbbc + 0x65c8))" ( (pointer_expression "*(code *)(PTR_LAB_0018fbbc + 0x65c8)" * (cast_expression "(code *)(PTR_LAB_0018fbbc + 0x65c8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbbc + 0x65c8)" ( (binary_expression "PTR_LAB_0018fbbc + 0x65c8" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))))) ;) (if_statement "if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }" if (parenthesized_expression "(local_30 != (uint *)0x0)" ( (binary_expression "local_30 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }" { (expression_statement "(*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);" (call_expression "(*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbd0 + 0x6988))" ( (pointer_expression "*(code *)(PTR_LAB_0018fbd0 + 0x6988)" * (cast_expression "(code *)(PTR_LAB_0018fbd0 + 0x6988)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbd0 + 0x6988)" ( (binary_expression "PTR_LAB_0018fbd0 + 0x6988" identifier + number_literal) )))) )) (argument_list "(local_30)" ( identifier ))) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000a180c;" goto statement_identifier ;) })) (goto_statement "goto LAB_000a1a8c;" goto statement_identifier ;) })) (if_statement "if (bVar8 == 0x8e) {\n        puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        puVar5 = param_3;\n        param_3 = puVar13;\n        local_30 = puVar13;\n        if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;\n        uVar7 = puVar4[2];\n        iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);\n        puVar9 = (uint *)(iVar15 + -1);\n        param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x0;\n        puVar5 = (uint *)((int)puVar9 / 2);\n        FUN_00081ac0(puVar13);\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = 0;\n        if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }\n      }" if (parenthesized_expression "(bVar8 == 0x8e)" ( (binary_expression "bVar8 == 0x8e" identifier == number_literal) )) (compound_statement "{\n        puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        puVar5 = param_3;\n        param_3 = puVar13;\n        local_30 = puVar13;\n        if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;\n        uVar7 = puVar4[2];\n        iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);\n        puVar9 = (uint *)(iVar15 + -1);\n        param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x0;\n        puVar5 = (uint *)((int)puVar9 / 2);\n        FUN_00081ac0(puVar13);\n        uVar7 = 0;\n      }" { (expression_statement "puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);" (assignment_expression "puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1)" identifier = (cast_expression "(uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbbc + 0x65c8))" ( (pointer_expression "*(code *)(PTR_LAB_0018fbbc + 0x65c8)" * (cast_expression "(code *)(PTR_LAB_0018fbbc + 0x65c8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbbc + 0x65c8)" ( (binary_expression "PTR_LAB_0018fbbc + 0x65c8" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))))) ;) (expression_statement "puVar5 = param_3;" (assignment_expression "puVar5 = param_3" identifier = identifier) ;) (expression_statement "param_3 = puVar13;" (assignment_expression "param_3 = puVar13" identifier = identifier) ;) (expression_statement "local_30 = puVar13;" (assignment_expression "local_30 = puVar13" identifier = identifier) ;) (if_statement "if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;" if (parenthesized_expression "(puVar13 == (uint *)0x0)" ( (binary_expression "puVar13 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000a1a8c;" goto statement_identifier ;)) (expression_statement "uVar7 = puVar4[2];" (assignment_expression "uVar7 = puVar4[2]" identifier = (subscript_expression "puVar4[2]" identifier [ number_literal ])) ;) (expression_statement "iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);" (assignment_expression "iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2)" identifier = (call_expression "(*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))" ( (pointer_expression "*(code *)(PTR_LAB_0018fbd0 + -0x4bc8)" * (cast_expression "(code *)(PTR_LAB_0018fbd0 + -0x4bc8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbd0 + -0x4bc8)" ( (binary_expression "PTR_LAB_0018fbd0 + -0x4bc8" identifier + number_literal) )))) )) (argument_list "(uVar7 + 2)" ( (binary_expression "uVar7 + 2" identifier + number_literal) )))) ;) (expression_statement "puVar9 = (uint *)(iVar15 + -1);" (assignment_expression "puVar9 = (uint *)(iVar15 + -1)" identifier = (cast_expression "(uint *)(iVar15 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + -1)" ( (binary_expression "iVar15 + -1" identifier + number_literal) )))) ;) (expression_statement "param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);" (assignment_expression "param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9)" identifier = (cast_expression "(uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fb58 + 0x2284))" ( (pointer_expression "*(code *)(PTR_LAB_0018fb58 + 0x2284)" * (cast_expression "(code *)(PTR_LAB_0018fb58 + 0x2284)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fb58 + 0x2284)" ( (binary_expression "PTR_LAB_0018fb58 + 0x2284" identifier + number_literal) )))) )) (argument_list "(param_1,uVar7 + 2,puVar9)" ( identifier , (binary_expression "uVar7 + 2" identifier + number_literal) , identifier ))))) ;) (expression_statement "local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);" (assignment_expression "local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030)" identifier = (cast_expression "(uint **)(PTR_LAB_0018fb58 + 0x1030)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_LAB_0018fb58 + 0x1030)" ( (binary_expression "PTR_LAB_0018fb58 + 0x1030" identifier + number_literal) )))) ;) (expression_statement "puVar6 = (uint *)0x0;" (assignment_expression "puVar6 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar5 = (uint *)((int)puVar9 / 2);" (assignment_expression "puVar5 = (uint *)((int)puVar9 / 2)" identifier = (cast_expression "(uint *)((int)puVar9 / 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 / 2)" ( (binary_expression "(int)puVar9 / 2" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) / number_literal) )))) ;) (expression_statement "FUN_00081ac0(puVar13);" (call_expression "FUN_00081ac0(puVar13)" identifier (argument_list "(puVar13)" ( identifier ))) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        uVar7 = 0;\n        if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }\n      }" else (compound_statement "{\n        uVar7 = 0;\n        if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }\n      }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (if_statement "if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }" if (parenthesized_expression "(bVar8 == 0x9b)" ( (binary_expression "bVar8 == 0x9b" identifier == number_literal) )) (compound_statement "{\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }" { (expression_statement "local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);" (assignment_expression "local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1)" identifier = (cast_expression "(uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbbc + 0x65c8))" ( (pointer_expression "*(code *)(PTR_LAB_0018fbbc + 0x65c8)" * (cast_expression "(code *)(PTR_LAB_0018fbbc + 0x65c8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbbc + 0x65c8)" ( (binary_expression "PTR_LAB_0018fbbc + 0x65c8" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))))) ;) (if_statement "if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }" if (parenthesized_expression "(local_30 == (uint *)0x0)" ( (binary_expression "local_30 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar7 = 0;\n          }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }" else (compound_statement "{\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }" { (expression_statement "*(undefined2 *)(local_30 + 2) = 4;" (assignment_expression "*(undefined2 *)(local_30 + 2) = 4" (pointer_expression "*(undefined2 *)(local_30 + 2)" * (cast_expression "(undefined2 *)(local_30 + 2)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 2)" ( (binary_expression "local_30 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar12 = *(char *)(puVar4[2] + 4);" (assignment_expression "cVar12 = *(char *)(puVar4[2] + 4)" identifier = (pointer_expression "*(char *)(puVar4[2] + 4)" * (cast_expression "(char *)(puVar4[2] + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4[2] + 4)" ( (binary_expression "puVar4[2] + 4" (subscript_expression "puVar4[2]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "*local_30 = 0;" (assignment_expression "*local_30 = 0" (pointer_expression "*local_30" * identifier) = number_literal) ;) (expression_statement "local_30[1] = (uint)(cVar12 == '\0');" (assignment_expression "local_30[1] = (uint)(cVar12 == '\0')" (subscript_expression "local_30[1]" identifier [ number_literal ]) = (call_expression "(uint)(cVar12 == '\0')" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(cVar12 == '\0')" ( (binary_expression "cVar12 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )))) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) }))) })) }))) }))) (labeled_statement "LAB_000a180c:\n    *param_5 = local_30;" statement_identifier : (expression_statement "*param_5 = local_30;" (assignment_expression "*param_5 = local_30" (pointer_expression "*param_5" * identifier) = identifier) ;)) }))) (labeled_statement "LAB_000a1814:\n  if (local_2c == *(undefined4 **)PTR___stack_chk_guard_0018fecc) {\n    return uVar7;\n  }" statement_identifier : (if_statement "if (local_2c == *(undefined4 **)PTR___stack_chk_guard_0018fecc) {\n    return uVar7;\n  }" if (parenthesized_expression "(local_2c == *(undefined4 **)PTR___stack_chk_guard_0018fecc)" ( (binary_expression "local_2c == *(undefined4 **)PTR___stack_chk_guard_0018fecc" identifier == (pointer_expression "*(undefined4 **)PTR___stack_chk_guard_0018fecc" * (cast_expression "(undefined4 **)PTR___stack_chk_guard_0018fecc" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return uVar7;\n  }" { (return_statement "return uVar7;" return identifier ;) }))) (expression_statement "pcVar16 = FUN_000a1aec;" (assignment_expression "pcVar16 = FUN_000a1aec" identifier = identifier) ;) (expression_statement "puVar3 = local_2c;" (assignment_expression "puVar3 = local_2c" identifier = identifier) ;) (expression_statement "puVar14 = PTR___stack_chk_fail_0018fea0;" (assignment_expression "puVar14 = PTR___stack_chk_fail_0018fea0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0018fea0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0018fea0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0018fea0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0018fea0" * (cast_expression "(code *)PTR___stack_chk_fail_0018fea0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uStack_58 = param_6;" (assignment_expression "uStack_58 = param_6" identifier = identifier) ;) (expression_statement "ppuStack_64 = param_5;" (assignment_expression "ppuStack_64 = param_5" identifier = identifier) ;) (expression_statement "puStack_74 = (uint *)**(undefined4 **)(puVar14 + 0xee3e0);" (assignment_expression "puStack_74 = (uint *)**(undefined4 **)(puVar14 + 0xee3e0)" identifier = (cast_expression "(uint *)**(undefined4 **)(puVar14 + 0xee3e0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(puVar14 + 0xee3e0)" * (pointer_expression "*(undefined4 **)(puVar14 + 0xee3e0)" * (cast_expression "(undefined4 **)(puVar14 + 0xee3e0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0xee3e0)" ( (binary_expression "puVar14 + 0xee3e0" identifier + number_literal) ))))))) ;) (expression_statement "puVar4 = param_2;" (assignment_expression "puVar4 = param_2" identifier = identifier) ;) (expression_statement "puVar13 = puVar5;" (assignment_expression "puVar13 = puVar5" identifier = identifier) ;) (expression_statement "uStack_70 = uVar7;" (assignment_expression "uStack_70 = uVar7" identifier = identifier) ;) (expression_statement "puStack_6c = puVar9;" (assignment_expression "puStack_6c = puVar9" identifier = identifier) ;) (expression_statement "uStack_68 = param_1;" (assignment_expression "uStack_68 = param_1" identifier = identifier) ;) (expression_statement "puStack_60 = param_3;" (assignment_expression "puStack_60 = param_3" identifier = identifier) ;) (expression_statement "puStack_5c = param_4;" (assignment_expression "puStack_5c = param_4" identifier = identifier) ;) (expression_statement "pcStack_54 = pcVar16;" (assignment_expression "pcStack_54 = pcVar16" identifier = identifier) ;) (if_statement "if (param_2 == (uint *)0x0) {\n    uVar7 = 2;\n    if (puVar5 == (uint *)0x0) {\n      uVar7 = 0;\n    }\n    goto LAB_000a1b98;\n  }" if (parenthesized_expression "(param_2 == (uint *)0x0)" ( (binary_expression "param_2 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar7 = 2;\n    if (puVar5 == (uint *)0x0) {\n      uVar7 = 0;\n    }\n    goto LAB_000a1b98;\n  }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (if_statement "if (puVar5 == (uint *)0x0) {\n      uVar7 = 0;\n    }" if (parenthesized_expression "(puVar5 == (uint *)0x0)" ( (binary_expression "puVar5 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar7 = 0;\n    }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) })) (goto_statement "goto LAB_000a1b98;" goto statement_identifier ;) })) (if_statement "if (puVar5 == (uint *)0x0) {\n    uVar7 = 2;\n    goto LAB_000a1b98;\n  }" if (parenthesized_expression "(puVar5 == (uint *)0x0)" ( (binary_expression "puVar5 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar7 = 2;\n    goto LAB_000a1b98;\n  }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_000a1b98;" goto statement_identifier ;) })) (if_statement "if ((puVar3 == (undefined4 *)0x0) || (*(byte *)param_2 != 0x90)) {\nLAB_000a1b58:\n    uVar10 = param_2[1];\n  }\n  else {\n    puStack_78 = (uint *)0x0;\n    puVar13 = (uint *)0x1;\n    puVar4 = puVar5;\n    FUN_000a14dc(*puVar3,puVar5,1,0x41,&puStack_78,0);\n    if (puStack_78 == (uint *)0x0) goto LAB_000a1b58;\n    puVar4 = (uint *)param_2[8];\n    (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x6628))(puVar3[2],puVar4);\n    puVar13 = (uint *)0x41;\n    iVar15 = FUN_0008f0b8(puVar3[0x36],puVar4,0x41);\n    if (iVar15 == 0) {\n      iVar15 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar15 + -0x5984))(puStack_78);\n      (*(code *)(iVar15 + -0x5984))(0);\n      uVar10 = param_2[1];\n    }\n    else {\n      if (*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==\n          '\x03') {\n        sqlite3_value_text(iVar15);\n      }\n      puVar13 = (uint *)0x0;\n      puVar4 = puStack_78;\n      uVar7 = FUN_0008ea3c(iVar15,puStack_78,0);\n      iVar2 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar2 + -0x5984))(puStack_78);\n      (*(code *)(iVar2 + -0x5984))(iVar15);\n      if (uVar7 == 0) goto LAB_000a1b98;\n      uVar10 = param_2[1];\n    }\n  }" if (parenthesized_expression "((puVar3 == (undefined4 *)0x0) || (*(byte *)param_2 != 0x90))" ( (binary_expression "(puVar3 == (undefined4 *)0x0) || (*(byte *)param_2 != 0x90)" (parenthesized_expression "(puVar3 == (undefined4 *)0x0)" ( (binary_expression "puVar3 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*(byte *)param_2 != 0x90)" ( (binary_expression "*(byte *)param_2 != 0x90" (pointer_expression "*(byte *)param_2" * (cast_expression "(byte *)param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) ))) )) (compound_statement "{\nLAB_000a1b58:\n    uVar10 = param_2[1];\n  }" { (labeled_statement "LAB_000a1b58:\n    uVar10 = param_2[1];" statement_identifier : (expression_statement "uVar10 = param_2[1];" (assignment_expression "uVar10 = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;)) }) (else_clause "else {\n    puStack_78 = (uint *)0x0;\n    puVar13 = (uint *)0x1;\n    puVar4 = puVar5;\n    FUN_000a14dc(*puVar3,puVar5,1,0x41,&puStack_78,0);\n    if (puStack_78 == (uint *)0x0) goto LAB_000a1b58;\n    puVar4 = (uint *)param_2[8];\n    (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x6628))(puVar3[2],puVar4);\n    puVar13 = (uint *)0x41;\n    iVar15 = FUN_0008f0b8(puVar3[0x36],puVar4,0x41);\n    if (iVar15 == 0) {\n      iVar15 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar15 + -0x5984))(puStack_78);\n      (*(code *)(iVar15 + -0x5984))(0);\n      uVar10 = param_2[1];\n    }\n    else {\n      if (*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==\n          '\x03') {\n        sqlite3_value_text(iVar15);\n      }\n      puVar13 = (uint *)0x0;\n      puVar4 = puStack_78;\n      uVar7 = FUN_0008ea3c(iVar15,puStack_78,0);\n      iVar2 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar2 + -0x5984))(puStack_78);\n      (*(code *)(iVar2 + -0x5984))(iVar15);\n      if (uVar7 == 0) goto LAB_000a1b98;\n      uVar10 = param_2[1];\n    }\n  }" else (compound_statement "{\n    puStack_78 = (uint *)0x0;\n    puVar13 = (uint *)0x1;\n    puVar4 = puVar5;\n    FUN_000a14dc(*puVar3,puVar5,1,0x41,&puStack_78,0);\n    if (puStack_78 == (uint *)0x0) goto LAB_000a1b58;\n    puVar4 = (uint *)param_2[8];\n    (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x6628))(puVar3[2],puVar4);\n    puVar13 = (uint *)0x41;\n    iVar15 = FUN_0008f0b8(puVar3[0x36],puVar4,0x41);\n    if (iVar15 == 0) {\n      iVar15 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar15 + -0x5984))(puStack_78);\n      (*(code *)(iVar15 + -0x5984))(0);\n      uVar10 = param_2[1];\n    }\n    else {\n      if (*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==\n          '\x03') {\n        sqlite3_value_text(iVar15);\n      }\n      puVar13 = (uint *)0x0;\n      puVar4 = puStack_78;\n      uVar7 = FUN_0008ea3c(iVar15,puStack_78,0);\n      iVar2 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar2 + -0x5984))(puStack_78);\n      (*(code *)(iVar2 + -0x5984))(iVar15);\n      if (uVar7 == 0) goto LAB_000a1b98;\n      uVar10 = param_2[1];\n    }\n  }" { (expression_statement "puStack_78 = (uint *)0x0;" (assignment_expression "puStack_78 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar13 = (uint *)0x1;" (assignment_expression "puVar13 = (uint *)0x1" identifier = (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar4 = puVar5;" (assignment_expression "puVar4 = puVar5" identifier = identifier) ;) (expression_statement "FUN_000a14dc(*puVar3,puVar5,1,0x41,&puStack_78,0);" (call_expression "FUN_000a14dc(*puVar3,puVar5,1,0x41,&puStack_78,0)" identifier (argument_list "(*puVar3,puVar5,1,0x41,&puStack_78,0)" ( (pointer_expression "*puVar3" * identifier) , identifier , number_literal , number_literal , (pointer_expression "&puStack_78" & identifier) , number_literal ))) ;) (if_statement "if (puStack_78 == (uint *)0x0) goto LAB_000a1b58;" if (parenthesized_expression "(puStack_78 == (uint *)0x0)" ( (binary_expression "puStack_78 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000a1b58;" goto statement_identifier ;)) (expression_statement "puVar4 = (uint *)param_2[8];" (assignment_expression "puVar4 = (uint *)param_2[8]" identifier = (cast_expression "(uint *)param_2[8]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[8]" identifier [ number_literal ]))) ;) (expression_statement "(*(code *)(*(int *)(puVar14 + 0xee06c) + 0x6628))(puVar3[2],puVar4);" (call_expression "(*(code *)(*(int *)(puVar14 + 0xee06c) + 0x6628))(puVar3[2],puVar4)" (parenthesized_expression "(*(code *)(*(int *)(puVar14 + 0xee06c) + 0x6628))" ( (pointer_expression "*(code *)(*(int *)(puVar14 + 0xee06c) + 0x6628)" * (cast_expression "(code *)(*(int *)(puVar14 + 0xee06c) + 0x6628)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar14 + 0xee06c) + 0x6628)" ( (binary_expression "*(int *)(puVar14 + 0xee06c) + 0x6628" (pointer_expression "*(int *)(puVar14 + 0xee06c)" * (cast_expression "(int *)(puVar14 + 0xee06c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0xee06c)" ( (binary_expression "puVar14 + 0xee06c" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(puVar3[2],puVar4)" ( (subscript_expression "puVar3[2]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "puVar13 = (uint *)0x41;" (assignment_expression "puVar13 = (uint *)0x41" identifier = (cast_expression "(uint *)0x41" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar15 = FUN_0008f0b8(puVar3[0x36],puVar4,0x41);" (assignment_expression "iVar15 = FUN_0008f0b8(puVar3[0x36],puVar4,0x41)" identifier = (call_expression "FUN_0008f0b8(puVar3[0x36],puVar4,0x41)" identifier (argument_list "(puVar3[0x36],puVar4,0x41)" ( (subscript_expression "puVar3[0x36]" identifier [ number_literal ]) , identifier , number_literal )))) ;) (if_statement "if (iVar15 == 0) {\n      iVar15 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar15 + -0x5984))(puStack_78);\n      (*(code *)(iVar15 + -0x5984))(0);\n      uVar10 = param_2[1];\n    }\n    else {\n      if (*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==\n          '\x03') {\n        sqlite3_value_text(iVar15);\n      }\n      puVar13 = (uint *)0x0;\n      puVar4 = puStack_78;\n      uVar7 = FUN_0008ea3c(iVar15,puStack_78,0);\n      iVar2 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar2 + -0x5984))(puStack_78);\n      (*(code *)(iVar2 + -0x5984))(iVar15);\n      if (uVar7 == 0) goto LAB_000a1b98;\n      uVar10 = param_2[1];\n    }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar15 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar15 + -0x5984))(puStack_78);\n      (*(code *)(iVar15 + -0x5984))(0);\n      uVar10 = param_2[1];\n    }" { (expression_statement "iVar15 = *(int *)(puVar14 + 0xee118);" (assignment_expression "iVar15 = *(int *)(puVar14 + 0xee118)" identifier = (pointer_expression "*(int *)(puVar14 + 0xee118)" * (cast_expression "(int *)(puVar14 + 0xee118)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0xee118)" ( (binary_expression "puVar14 + 0xee118" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)(iVar15 + -0x5984))(puStack_78);" (call_expression "(*(code *)(iVar15 + -0x5984))(puStack_78)" (parenthesized_expression "(*(code *)(iVar15 + -0x5984))" ( (pointer_expression "*(code *)(iVar15 + -0x5984)" * (cast_expression "(code *)(iVar15 + -0x5984)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + -0x5984)" ( (binary_expression "iVar15 + -0x5984" identifier + number_literal) )))) )) (argument_list "(puStack_78)" ( identifier ))) ;) (expression_statement "(*(code *)(iVar15 + -0x5984))(0);" (call_expression "(*(code *)(iVar15 + -0x5984))(0)" (parenthesized_expression "(*(code *)(iVar15 + -0x5984))" ( (pointer_expression "*(code *)(iVar15 + -0x5984)" * (cast_expression "(code *)(iVar15 + -0x5984)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + -0x5984)" ( (binary_expression "iVar15 + -0x5984" identifier + number_literal) )))) )) (argument_list "(0)" ( number_literal ))) ;) (expression_statement "uVar10 = param_2[1];" (assignment_expression "uVar10 = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      if (*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==\n          '\x03') {\n        sqlite3_value_text(iVar15);\n      }\n      puVar13 = (uint *)0x0;\n      puVar4 = puStack_78;\n      uVar7 = FUN_0008ea3c(iVar15,puStack_78,0);\n      iVar2 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar2 + -0x5984))(puStack_78);\n      (*(code *)(iVar2 + -0x5984))(iVar15);\n      if (uVar7 == 0) goto LAB_000a1b98;\n      uVar10 = param_2[1];\n    }" else (compound_statement "{\n      if (*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==\n          '\x03') {\n        sqlite3_value_text(iVar15);\n      }\n      puVar13 = (uint *)0x0;\n      puVar4 = puStack_78;\n      uVar7 = FUN_0008ea3c(iVar15,puStack_78,0);\n      iVar2 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar2 + -0x5984))(puStack_78);\n      (*(code *)(iVar2 + -0x5984))(iVar15);\n      if (uVar7 == 0) goto LAB_000a1b98;\n      uVar10 = param_2[1];\n    }" { (if_statement "if (*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==\n          '\x03') {\n        sqlite3_value_text(iVar15);\n      }" if (parenthesized_expression "(*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==\n          '\x03')" ( (binary_expression "*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==\n          '\x03'" (pointer_expression "*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0)" * (cast_expression "(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0)" ( (binary_expression "(*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0" (binary_expression "(*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70)" (parenthesized_expression "(*(ushort *)(iVar15 + 8) & 0x1f)" ( (binary_expression "*(ushort *)(iVar15 + 8) & 0x1f" (pointer_expression "*(ushort *)(iVar15 + 8)" * (cast_expression "(ushort *)(iVar15 + 8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 8)" ( (binary_expression "iVar15 + 8" identifier + number_literal) )))) & number_literal) )) + (pointer_expression "*(int *)(puVar14 + 0xede70)" * (cast_expression "(int *)(puVar14 + 0xede70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0xede70)" ( (binary_expression "puVar14 + 0xede70" identifier + number_literal) ))))) + number_literal) )))) == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n        sqlite3_value_text(iVar15);\n      }" { (expression_statement "sqlite3_value_text(iVar15);" (call_expression "sqlite3_value_text(iVar15)" identifier (argument_list "(iVar15)" ( identifier ))) ;) })) (expression_statement "puVar13 = (uint *)0x0;" (assignment_expression "puVar13 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar4 = puStack_78;" (assignment_expression "puVar4 = puStack_78" identifier = identifier) ;) (expression_statement "uVar7 = FUN_0008ea3c(iVar15,puStack_78,0);" (assignment_expression "uVar7 = FUN_0008ea3c(iVar15,puStack_78,0)" identifier = (call_expression "FUN_0008ea3c(iVar15,puStack_78,0)" identifier (argument_list "(iVar15,puStack_78,0)" ( identifier , identifier , number_literal )))) ;) (expression_statement "iVar2 = *(int *)(puVar14 + 0xee118);" (assignment_expression "iVar2 = *(int *)(puVar14 + 0xee118)" identifier = (pointer_expression "*(int *)(puVar14 + 0xee118)" * (cast_expression "(int *)(puVar14 + 0xee118)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0xee118)" ( (binary_expression "puVar14 + 0xee118" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)(iVar2 + -0x5984))(puStack_78);" (call_expression "(*(code *)(iVar2 + -0x5984))(puStack_78)" (parenthesized_expression "(*(code *)(iVar2 + -0x5984))" ( (pointer_expression "*(code *)(iVar2 + -0x5984)" * (cast_expression "(code *)(iVar2 + -0x5984)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + -0x5984)" ( (binary_expression "iVar2 + -0x5984" identifier + number_literal) )))) )) (argument_list "(puStack_78)" ( identifier ))) ;) (expression_statement "(*(code *)(iVar2 + -0x5984))(iVar15);" (call_expression "(*(code *)(iVar2 + -0x5984))(iVar15)" (parenthesized_expression "(*(code *)(iVar2 + -0x5984))" ( (pointer_expression "*(code *)(iVar2 + -0x5984)" * (cast_expression "(code *)(iVar2 + -0x5984)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + -0x5984)" ( (binary_expression "iVar2 + -0x5984" identifier + number_literal) )))) )) (argument_list "(iVar15)" ( identifier ))) ;) (if_statement "if (uVar7 == 0) goto LAB_000a1b98;" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000a1b98;" goto statement_identifier ;)) (expression_statement "uVar10 = param_2[1];" (assignment_expression "uVar10 = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) }))) }))) (expression_statement "uVar11 = uVar10 | puVar5[1];" (assignment_expression "uVar11 = uVar10 | puVar5[1]" identifier = (binary_expression "uVar10 | puVar5[1]" identifier | (subscript_expression "puVar5[1]" identifier [ number_literal ]))) ;) (if_statement "if ((uVar11 & 0x400) != 0) {\n    uVar7 = 2;\n    if (((uVar10 & puVar5[1] & 0x400) != 0) && (uVar7 = 2, param_2[2] == puVar5[2])) {\n      uVar7 = 0;\n    }\n    goto LAB_000a1b98;\n  }" if (parenthesized_expression "((uVar11 & 0x400) != 0)" ( (binary_expression "(uVar11 & 0x400) != 0" (parenthesized_expression "(uVar11 & 0x400)" ( (binary_expression "uVar11 & 0x400" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar7 = 2;\n    if (((uVar10 & puVar5[1] & 0x400) != 0) && (uVar7 = 2, param_2[2] == puVar5[2])) {\n      uVar7 = 0;\n    }\n    goto LAB_000a1b98;\n  }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (if_statement "if (((uVar10 & puVar5[1] & 0x400) != 0) && (uVar7 = 2, param_2[2] == puVar5[2])) {\n      uVar7 = 0;\n    }" if (parenthesized_expression "(((uVar10 & puVar5[1] & 0x400) != 0) && (uVar7 = 2, param_2[2] == puVar5[2]))" ( (binary_expression "((uVar10 & puVar5[1] & 0x400) != 0) && (uVar7 = 2, param_2[2] == puVar5[2])" (parenthesized_expression "((uVar10 & puVar5[1] & 0x400) != 0)" ( (binary_expression "(uVar10 & puVar5[1] & 0x400) != 0" (parenthesized_expression "(uVar10 & puVar5[1] & 0x400)" ( (binary_expression "uVar10 & puVar5[1] & 0x400" (binary_expression "uVar10 & puVar5[1]" identifier & (subscript_expression "puVar5[1]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) && (parenthesized_expression "(uVar7 = 2, param_2[2] == puVar5[2])" ( (comma_expression "uVar7 = 2, param_2[2] == puVar5[2]" (assignment_expression "uVar7 = 2" identifier = number_literal) , (binary_expression "param_2[2] == puVar5[2]" (subscript_expression "param_2[2]" identifier [ number_literal ]) == (subscript_expression "puVar5[2]" identifier [ number_literal ]))) ))) )) (compound_statement "{\n      uVar7 = 0;\n    }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) })) (goto_statement "goto LAB_000a1b98;" goto statement_identifier ;) })) (expression_statement "bVar8 = *(byte *)param_2;" (assignment_expression "bVar8 = *(byte *)param_2" identifier = (pointer_expression "*(byte *)param_2" * (cast_expression "(byte *)param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*(byte *)puVar5 == bVar8) {\n    if (bVar8 != 0x47) {\n      if (((bVar8 != 0x9e) && (bVar8 != 0xa0)) && (param_2[2] != 0)) {\n        if (bVar8 == 0x9d) {\n          puVar4 = (uint *)puVar5[2];\n          iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();\n          if (iVar15 != 0) {\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }\n          if ((int)(uVar10 << 7) < 0) {\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n        else {\n          if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }\n          if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n      }\n      if (((param_2[1] ^ puVar5[1]) & 0x10) == 0) {\n        if ((uVar11 & 0x4000) == 0) {\n          if ((uVar11 & 0x800) == 0) {\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }\n          else {\n            uVar7 = 2;\n          }\n        }\n        else {\n          uVar7 = 0;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      goto LAB_000a1b98;\n    }\n  }\n  else if (bVar8 == 0x66) {\n    puVar4 = (uint *)param_2[3];\n    puVar13 = puVar5;\n    iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5,puVar6);\n    if (iVar15 < 2) {\n      uVar7 = 1;\n      goto LAB_000a1b98;\n    }\n  }" if (parenthesized_expression "(*(byte *)puVar5 == bVar8)" ( (binary_expression "*(byte *)puVar5 == bVar8" (pointer_expression "*(byte *)puVar5" * (cast_expression "(byte *)puVar5" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == identifier) )) (compound_statement "{\n    if (bVar8 != 0x47) {\n      if (((bVar8 != 0x9e) && (bVar8 != 0xa0)) && (param_2[2] != 0)) {\n        if (bVar8 == 0x9d) {\n          puVar4 = (uint *)puVar5[2];\n          iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();\n          if (iVar15 != 0) {\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }\n          if ((int)(uVar10 << 7) < 0) {\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n        else {\n          if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }\n          if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n      }\n      if (((param_2[1] ^ puVar5[1]) & 0x10) == 0) {\n        if ((uVar11 & 0x4000) == 0) {\n          if ((uVar11 & 0x800) == 0) {\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }\n          else {\n            uVar7 = 2;\n          }\n        }\n        else {\n          uVar7 = 0;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      goto LAB_000a1b98;\n    }\n  }" { (if_statement "if (bVar8 != 0x47) {\n      if (((bVar8 != 0x9e) && (bVar8 != 0xa0)) && (param_2[2] != 0)) {\n        if (bVar8 == 0x9d) {\n          puVar4 = (uint *)puVar5[2];\n          iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();\n          if (iVar15 != 0) {\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }\n          if ((int)(uVar10 << 7) < 0) {\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n        else {\n          if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }\n          if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n      }\n      if (((param_2[1] ^ puVar5[1]) & 0x10) == 0) {\n        if ((uVar11 & 0x4000) == 0) {\n          if ((uVar11 & 0x800) == 0) {\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }\n          else {\n            uVar7 = 2;\n          }\n        }\n        else {\n          uVar7 = 0;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      goto LAB_000a1b98;\n    }" if (parenthesized_expression "(bVar8 != 0x47)" ( (binary_expression "bVar8 != 0x47" identifier != number_literal) )) (compound_statement "{\n      if (((bVar8 != 0x9e) && (bVar8 != 0xa0)) && (param_2[2] != 0)) {\n        if (bVar8 == 0x9d) {\n          puVar4 = (uint *)puVar5[2];\n          iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();\n          if (iVar15 != 0) {\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }\n          if ((int)(uVar10 << 7) < 0) {\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n        else {\n          if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }\n          if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n      }\n      if (((param_2[1] ^ puVar5[1]) & 0x10) == 0) {\n        if ((uVar11 & 0x4000) == 0) {\n          if ((uVar11 & 0x800) == 0) {\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }\n          else {\n            uVar7 = 2;\n          }\n        }\n        else {\n          uVar7 = 0;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      goto LAB_000a1b98;\n    }" { (if_statement "if (((bVar8 != 0x9e) && (bVar8 != 0xa0)) && (param_2[2] != 0)) {\n        if (bVar8 == 0x9d) {\n          puVar4 = (uint *)puVar5[2];\n          iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();\n          if (iVar15 != 0) {\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }\n          if ((int)(uVar10 << 7) < 0) {\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n        else {\n          if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }\n          if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(((bVar8 != 0x9e) && (bVar8 != 0xa0)) && (param_2[2] != 0))" ( (binary_expression "((bVar8 != 0x9e) && (bVar8 != 0xa0)) && (param_2[2] != 0)" (parenthesized_expression "((bVar8 != 0x9e) && (bVar8 != 0xa0))" ( (binary_expression "(bVar8 != 0x9e) && (bVar8 != 0xa0)" (parenthesized_expression "(bVar8 != 0x9e)" ( (binary_expression "bVar8 != 0x9e" identifier != number_literal) )) && (parenthesized_expression "(bVar8 != 0xa0)" ( (binary_expression "bVar8 != 0xa0" identifier != number_literal) ))) )) && (parenthesized_expression "(param_2[2] != 0)" ( (binary_expression "param_2[2] != 0" (subscript_expression "param_2[2]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n        if (bVar8 == 0x9d) {\n          puVar4 = (uint *)puVar5[2];\n          iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();\n          if (iVar15 != 0) {\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }\n          if ((int)(uVar10 << 7) < 0) {\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n        else {\n          if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }\n          if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n      }" { (if_statement "if (bVar8 == 0x9d) {\n          puVar4 = (uint *)puVar5[2];\n          iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();\n          if (iVar15 != 0) {\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }\n          if ((int)(uVar10 << 7) < 0) {\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n        else {\n          if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }\n          if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }" if (parenthesized_expression "(bVar8 == 0x9d)" ( (binary_expression "bVar8 == 0x9d" identifier == number_literal) )) (compound_statement "{\n          puVar4 = (uint *)puVar5[2];\n          iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();\n          if (iVar15 != 0) {\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }\n          if ((int)(uVar10 << 7) < 0) {\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }" { (expression_statement "puVar4 = (uint *)puVar5[2];" (assignment_expression "puVar4 = (uint *)puVar5[2]" identifier = (cast_expression "(uint *)puVar5[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[2]" identifier [ number_literal ]))) ;) (expression_statement "iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();" (assignment_expression "iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))()" identifier = (call_expression "(*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))()" (parenthesized_expression "(*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))" ( (pointer_expression "*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4)" * (cast_expression "(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar14 + 0xee06c) + 0x17e4)" ( (binary_expression "*(int *)(puVar14 + 0xee06c) + 0x17e4" (pointer_expression "*(int *)(puVar14 + 0xee06c)" * (cast_expression "(int *)(puVar14 + 0xee06c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0xee06c)" ( (binary_expression "puVar14 + 0xee06c" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar15 != 0) {\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_000a1b98;" goto statement_identifier ;) })) (if_statement "if ((int)(uVar10 << 7) < 0) {\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }" if (parenthesized_expression "((int)(uVar10 << 7) < 0)" ( (binary_expression "(int)(uVar10 << 7) < 0" (cast_expression "(int)(uVar10 << 7)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar10 << 7)" ( (binary_expression "uVar10 << 7" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }" { (expression_statement "puVar13 = (uint *)puVar5[0xc];" (assignment_expression "puVar13 = (uint *)puVar5[0xc]" identifier = (cast_expression "(uint *)puVar5[0xc]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[0xc]" identifier [ number_literal ]))) ;) (expression_statement "puVar4 = (uint *)param_2[0xc];" (assignment_expression "puVar4 = (uint *)param_2[0xc]" identifier = (cast_expression "(uint *)param_2[0xc]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[0xc]" identifier [ number_literal ]))) ;) (expression_statement "iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);" (assignment_expression "iVar15 = FUN_000a2138(puVar3,puVar4,puVar13)" identifier = (call_expression "FUN_000a2138(puVar3,puVar4,puVar13)" identifier (argument_list "(puVar3,puVar4,puVar13)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (compound_statement "{\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_000a1b98;" goto statement_identifier ;) })) })) }) (else_clause "else {\n          if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }\n          if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }" else (compound_statement "{\n          if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }\n          if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }" { (if_statement "if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }" if (parenthesized_expression "(bVar8 == 0x6e)" ( (binary_expression "bVar8 == 0x6e" identifier == number_literal) )) (compound_statement "{\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000a1b98;" goto statement_identifier ;) })) (if_statement "if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }" if (parenthesized_expression "(bVar8 == 0x66)" ( (binary_expression "bVar8 == 0x66" identifier == number_literal) )) (compound_statement "{\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }" { (expression_statement "puVar4 = (uint *)puVar5[2];" (assignment_expression "puVar4 = (uint *)puVar5[2]" identifier = (cast_expression "(uint *)puVar5[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[2]" identifier [ number_literal ]))) ;) (expression_statement "iVar15 = (**(code **)(puVar14 + 0xedf44))();" (assignment_expression "iVar15 = (**(code **)(puVar14 + 0xedf44))()" identifier = (call_expression "(**(code **)(puVar14 + 0xedf44))()" (parenthesized_expression "(**(code **)(puVar14 + 0xedf44))" ( (pointer_expression "**(code **)(puVar14 + 0xedf44)" * (pointer_expression "*(code **)(puVar14 + 0xedf44)" * (cast_expression "(code **)(puVar14 + 0xedf44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0xedf44)" ( (binary_expression "puVar14 + 0xedf44" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (compound_statement "{\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_000a1b98;" goto statement_identifier ;) })) }) (else_clause "else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }" else (compound_statement "{\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }" { (expression_statement "puVar4 = (uint *)puVar5[2];" (assignment_expression "puVar4 = (uint *)puVar5[2]" identifier = (cast_expression "(uint *)puVar5[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[2]" identifier [ number_literal ]))) ;) (if_statement "if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }" if (parenthesized_expression "((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0))" ( (binary_expression "(puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)" (parenthesized_expression "(puVar4 != (uint *)0x0)" ( (binary_expression "puVar4 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)" ( (comma_expression "iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0" (assignment_expression "iVar15 = (**(code **)(puVar14 + 0xee420))()" identifier = (call_expression "(**(code **)(puVar14 + 0xee420))()" (parenthesized_expression "(**(code **)(puVar14 + 0xee420))" ( (pointer_expression "**(code **)(puVar14 + 0xee420)" * (pointer_expression "*(code **)(puVar14 + 0xee420)" * (cast_expression "(code **)(puVar14 + 0xee420)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0xee420)" ( (binary_expression "puVar14 + 0xee420" identifier + number_literal) ))))) )) (argument_list "()" ( )))) , (binary_expression "iVar15 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_000a1b98;" goto statement_identifier ;) })) }))) }))) })) (if_statement "if (((param_2[1] ^ puVar5[1]) & 0x10) == 0) {\n        if ((uVar11 & 0x4000) == 0) {\n          if ((uVar11 & 0x800) == 0) {\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }\n          else {\n            uVar7 = 2;\n          }\n        }\n        else {\n          uVar7 = 0;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }" if (parenthesized_expression "(((param_2[1] ^ puVar5[1]) & 0x10) == 0)" ( (binary_expression "((param_2[1] ^ puVar5[1]) & 0x10) == 0" (parenthesized_expression "((param_2[1] ^ puVar5[1]) & 0x10)" ( (binary_expression "(param_2[1] ^ puVar5[1]) & 0x10" (parenthesized_expression "(param_2[1] ^ puVar5[1])" ( (binary_expression "param_2[1] ^ puVar5[1]" (subscript_expression "param_2[1]" identifier [ number_literal ]) ^ (subscript_expression "puVar5[1]" identifier [ number_literal ])) )) & number_literal) )) == number_literal) )) (compound_statement "{\n        if ((uVar11 & 0x4000) == 0) {\n          if ((uVar11 & 0x800) == 0) {\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }\n          else {\n            uVar7 = 2;\n          }\n        }\n        else {\n          uVar7 = 0;\n        }\n      }" { (if_statement "if ((uVar11 & 0x4000) == 0) {\n          if ((uVar11 & 0x800) == 0) {\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }\n          else {\n            uVar7 = 2;\n          }\n        }\n        else {\n          uVar7 = 0;\n        }" if (parenthesized_expression "((uVar11 & 0x4000) == 0)" ( (binary_expression "(uVar11 & 0x4000) == 0" (parenthesized_expression "(uVar11 & 0x4000)" ( (binary_expression "uVar11 & 0x4000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          if ((uVar11 & 0x800) == 0) {\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }\n          else {\n            uVar7 = 2;\n          }\n        }" { (if_statement "if ((uVar11 & 0x800) == 0) {\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }\n          else {\n            uVar7 = 2;\n          }" if (parenthesized_expression "((uVar11 & 0x800) == 0)" ( (binary_expression "(uVar11 & 0x800) == 0" (parenthesized_expression "(uVar11 & 0x800)" ( (binary_expression "uVar11 & 0x800" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }" { (if_statement "if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }" if (parenthesized_expression "((uVar11 & 8) == 0)" ( (binary_expression "(uVar11 & 8) == 0" (parenthesized_expression "(uVar11 & 8)" ( (binary_expression "uVar11 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }" { (expression_statement "puVar13 = (uint *)puVar5[3];" (assignment_expression "puVar13 = (uint *)puVar5[3]" identifier = (cast_expression "(uint *)puVar5[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[3]" identifier [ number_literal ]))) ;) (expression_statement "puVar4 = (uint *)param_2[3];" (assignment_expression "puVar4 = (uint *)param_2[3]" identifier = (cast_expression "(uint *)param_2[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[3]" identifier [ number_literal ]))) ;) (expression_statement "iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);" (assignment_expression "iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6)" identifier = (call_expression "FUN_000a1aec(puVar3,puVar4,puVar13,puVar6)" identifier (argument_list "(puVar3,puVar4,puVar13,puVar6)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (compound_statement "{\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_000a1b98;" goto statement_identifier ;) })) })) (expression_statement "puVar4 = (uint *)param_2[4];" (assignment_expression "puVar4 = (uint *)param_2[4]" identifier = (cast_expression "(uint *)param_2[4]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[4]" identifier [ number_literal ]))) ;) (expression_statement "iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);" (assignment_expression "iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6)" identifier = (call_expression "FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6)" identifier (argument_list "(puVar3,puVar4,puVar5[4],puVar6)" ( identifier , identifier , (subscript_expression "puVar5[4]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "puVar13 = puVar6;" (assignment_expression "puVar13 = puVar6" identifier = identifier) ;) (if_statement "if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }" { (expression_statement "puVar4 = (uint *)puVar5[5];" (assignment_expression "puVar4 = (uint *)puVar5[5]" identifier = (cast_expression "(uint *)puVar5[5]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[5]" identifier [ number_literal ]))) ;) (expression_statement "iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);" (assignment_expression "iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6)" identifier = (call_expression "FUN_000a2010(param_2[5],puVar4,puVar6)" identifier (argument_list "(param_2[5],puVar4,puVar6)" ( (subscript_expression "param_2[5]" identifier [ number_literal ]) , identifier , identifier )))) ;) (if_statement "if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (if_statement "if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }" if (parenthesized_expression "(((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0))" ( (binary_expression "((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)" (parenthesized_expression "((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b))" ( (binary_expression "(*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)" (parenthesized_expression "(*(byte *)param_2 != 0x6a)" ( (binary_expression "*(byte *)param_2 != 0x6a" (pointer_expression "*(byte *)param_2" * (cast_expression "(byte *)param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) && (parenthesized_expression "(*(byte *)param_2 != 0x9b)" ( (binary_expression "*(byte *)param_2 != 0x9b" (pointer_expression "*(byte *)param_2" * (cast_expression "(byte *)param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) ))) )) && (parenthesized_expression "((uVar11 & 0x2000) == 0)" ( (binary_expression "(uVar11 & 0x2000) == 0" (parenthesized_expression "(uVar11 & 0x2000)" ( (binary_expression "uVar11 & 0x2000" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }" { (if_statement "if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }" if (parenthesized_expression "(param_2[8] == puVar5[8])" ( (binary_expression "param_2[8] == puVar5[8]" (subscript_expression "param_2[8]" identifier [ number_literal ]) == (subscript_expression "puVar5[8]" identifier [ number_literal ])) )) (compound_statement "{\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }" { (if_statement "if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }" if (parenthesized_expression "((uint *)param_2[7] != (uint *)puVar5[7])" ( (binary_expression "(uint *)param_2[7] != (uint *)puVar5[7]" (cast_expression "(uint *)param_2[7]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[7]" identifier [ number_literal ])) != (cast_expression "(uint *)puVar5[7]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[7]" identifier [ number_literal ]))) )) (compound_statement "{\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }" { (if_statement "if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }" if (parenthesized_expression "((uint *)param_2[7] == puVar6)" ( (binary_expression "(uint *)param_2[7] == puVar6" (cast_expression "(uint *)param_2[7]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[7]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }" { (if_statement "if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }" if (parenthesized_expression "(-1 < (int)puVar5[7])" ( (binary_expression "-1 < (int)puVar5[7]" number_literal < (cast_expression "(int)puVar5[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar5[7]" identifier [ number_literal ]))) )) (compound_statement "{\n                          uVar7 = 2;\n                        }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) })) }) (else_clause "else {\n                        uVar7 = 2;\n                      }" else (compound_statement "{\n                        uVar7 = 2;\n                      }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) }))) })) }) (else_clause "else {\n                    uVar7 = 2;\n                  }" else (compound_statement "{\n                    uVar7 = 2;\n                  }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) }))) })) }) (else_clause "else {\n                uVar7 = 2;\n              }" else (compound_statement "{\n                uVar7 = 2;\n              }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) }))) }) (else_clause "else {\n              uVar7 = 2;\n            }" else (compound_statement "{\n              uVar7 = 2;\n            }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) }))) }) (else_clause "else {\n            uVar7 = 2;\n          }" else (compound_statement "{\n            uVar7 = 2;\n          }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) }))) }) (else_clause "else {\n          uVar7 = 0;\n        }" else (compound_statement "{\n          uVar7 = 0;\n        }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n        uVar7 = 2;\n      }" else (compound_statement "{\n        uVar7 = 2;\n      }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) }))) (goto_statement "goto LAB_000a1b98;" goto statement_identifier ;) })) }) (else_clause "else if (bVar8 == 0x66) {\n    puVar4 = (uint *)param_2[3];\n    puVar13 = puVar5;\n    iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5,puVar6);\n    if (iVar15 < 2) {\n      uVar7 = 1;\n      goto LAB_000a1b98;\n    }\n  }" else (if_statement "if (bVar8 == 0x66) {\n    puVar4 = (uint *)param_2[3];\n    puVar13 = puVar5;\n    iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5,puVar6);\n    if (iVar15 < 2) {\n      uVar7 = 1;\n      goto LAB_000a1b98;\n    }\n  }" if (parenthesized_expression "(bVar8 == 0x66)" ( (binary_expression "bVar8 == 0x66" identifier == number_literal) )) (compound_statement "{\n    puVar4 = (uint *)param_2[3];\n    puVar13 = puVar5;\n    iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5,puVar6);\n    if (iVar15 < 2) {\n      uVar7 = 1;\n      goto LAB_000a1b98;\n    }\n  }" { (expression_statement "puVar4 = (uint *)param_2[3];" (assignment_expression "puVar4 = (uint *)param_2[3]" identifier = (cast_expression "(uint *)param_2[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[3]" identifier [ number_literal ]))) ;) (expression_statement "puVar13 = puVar5;" (assignment_expression "puVar13 = puVar5" identifier = identifier) ;) (expression_statement "iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5,puVar6);" (assignment_expression "iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5,puVar6)" identifier = (call_expression "FUN_000a1aec(puVar3,puVar4,puVar5,puVar6)" identifier (argument_list "(puVar3,puVar4,puVar5,puVar6)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar15 < 2) {\n      uVar7 = 1;\n      goto LAB_000a1b98;\n    }" if (parenthesized_expression "(iVar15 < 2)" ( (binary_expression "iVar15 < 2" identifier < number_literal) )) (compound_statement "{\n      uVar7 = 1;\n      goto LAB_000a1b98;\n    }" { (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_000a1b98;" goto statement_identifier ;) })) })))) (if_statement "if (*(byte *)puVar5 == 0x66) {\n    puVar13 = (uint *)puVar5[3];\n    iVar15 = FUN_000a1aec(puVar3,param_2,puVar13,puVar6);\n    uVar7 = 2;\n    puVar4 = param_2;\n    if (iVar15 < 2) {\n      uVar7 = 1;\n    }\n  }\n  else {\n    uVar7 = 2;\n    puVar4 = param_2;\n  }" if (parenthesized_expression "(*(byte *)puVar5 == 0x66)" ( (binary_expression "*(byte *)puVar5 == 0x66" (pointer_expression "*(byte *)puVar5" * (cast_expression "(byte *)puVar5" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n    puVar13 = (uint *)puVar5[3];\n    iVar15 = FUN_000a1aec(puVar3,param_2,puVar13,puVar6);\n    uVar7 = 2;\n    puVar4 = param_2;\n    if (iVar15 < 2) {\n      uVar7 = 1;\n    }\n  }" { (expression_statement "puVar13 = (uint *)puVar5[3];" (assignment_expression "puVar13 = (uint *)puVar5[3]" identifier = (cast_expression "(uint *)puVar5[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[3]" identifier [ number_literal ]))) ;) (expression_statement "iVar15 = FUN_000a1aec(puVar3,param_2,puVar13,puVar6);" (assignment_expression "iVar15 = FUN_000a1aec(puVar3,param_2,puVar13,puVar6)" identifier = (call_expression "FUN_000a1aec(puVar3,param_2,puVar13,puVar6)" identifier (argument_list "(puVar3,param_2,puVar13,puVar6)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (expression_statement "puVar4 = param_2;" (assignment_expression "puVar4 = param_2" identifier = identifier) ;) (if_statement "if (iVar15 < 2) {\n      uVar7 = 1;\n    }" if (parenthesized_expression "(iVar15 < 2)" ( (binary_expression "iVar15 < 2" identifier < number_literal) )) (compound_statement "{\n      uVar7 = 1;\n    }" { (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) })) }) (else_clause "else {\n    uVar7 = 2;\n    puVar4 = param_2;\n  }" else (compound_statement "{\n    uVar7 = 2;\n    puVar4 = param_2;\n  }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (expression_statement "puVar4 = param_2;" (assignment_expression "puVar4 = param_2" identifier = identifier) ;) }))) (labeled_statement "LAB_000a1b98:\n  if (puStack_74 == (uint *)**(undefined4 **)(puVar14 + 0xee3e0)) {\n    return uVar7;\n  }" statement_identifier : (if_statement "if (puStack_74 == (uint *)**(undefined4 **)(puVar14 + 0xee3e0)) {\n    return uVar7;\n  }" if (parenthesized_expression "(puStack_74 == (uint *)**(undefined4 **)(puVar14 + 0xee3e0))" ( (binary_expression "puStack_74 == (uint *)**(undefined4 **)(puVar14 + 0xee3e0)" identifier == (cast_expression "(uint *)**(undefined4 **)(puVar14 + 0xee3e0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(puVar14 + 0xee3e0)" * (pointer_expression "*(undefined4 **)(puVar14 + 0xee3e0)" * (cast_expression "(undefined4 **)(puVar14 + 0xee3e0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0xee3e0)" ( (binary_expression "puVar14 + 0xee3e0" identifier + number_literal) ))))))) )) (compound_statement "{\n    return uVar7;\n  }" { (return_statement "return uVar7;" return identifier ;) }))) (expression_statement "pcVar16 = *(code **)(puVar14 + 0xee3b4);" (assignment_expression "pcVar16 = *(code **)(puVar14 + 0xee3b4)" identifier = (pointer_expression "*(code **)(puVar14 + 0xee3b4)" * (cast_expression "(code **)(puVar14 + 0xee3b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0xee3b4)" ( (binary_expression "puVar14 + 0xee3b4" identifier + number_literal) ))))) ;) (expression_statement "puVar9 = puStack_74;" (assignment_expression "puVar9 = puStack_74" identifier = identifier) ;) (expression_statement "(*pcVar16)();" (call_expression "(*pcVar16)()" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar16 = pcVar16 + 0xf5910;" (assignment_expression "pcVar16 = pcVar16 + 0xf5910" identifier = (binary_expression "pcVar16 + 0xf5910" identifier + number_literal)) ;) (if_statement "if (puVar9 == (uint *)0x0) {\n    uVar7 = (uint)(puVar4 != (uint *)0x0);\n  }\n  else if (puVar4 == (uint *)0x0) {\n    uVar7 = 1;\n  }\n  else if (*puVar9 == *puVar4) {\n    if ((int)*puVar9 < 1) {\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = puVar9[1];\n      uVar10 = puVar4[1];\n      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }\n    }\n  }\n  else {\n    uVar7 = 1;\n  }" if (parenthesized_expression "(puVar9 == (uint *)0x0)" ( (binary_expression "puVar9 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar7 = (uint)(puVar4 != (uint *)0x0);\n  }" { (expression_statement "uVar7 = (uint)(puVar4 != (uint *)0x0);" (assignment_expression "uVar7 = (uint)(puVar4 != (uint *)0x0)" identifier = (call_expression "(uint)(puVar4 != (uint *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar4 != (uint *)0x0)" ( (binary_expression "puVar4 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )))) ;) }) (else_clause "else if (puVar4 == (uint *)0x0) {\n    uVar7 = 1;\n  }\n  else if (*puVar9 == *puVar4) {\n    if ((int)*puVar9 < 1) {\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = puVar9[1];\n      uVar10 = puVar4[1];\n      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }\n    }\n  }\n  else {\n    uVar7 = 1;\n  }" else (if_statement "if (puVar4 == (uint *)0x0) {\n    uVar7 = 1;\n  }\n  else if (*puVar9 == *puVar4) {\n    if ((int)*puVar9 < 1) {\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = puVar9[1];\n      uVar10 = puVar4[1];\n      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }\n    }\n  }\n  else {\n    uVar7 = 1;\n  }" if (parenthesized_expression "(puVar4 == (uint *)0x0)" ( (binary_expression "puVar4 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar7 = 1;\n  }" { (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) }) (else_clause "else if (*puVar9 == *puVar4) {\n    if ((int)*puVar9 < 1) {\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = puVar9[1];\n      uVar10 = puVar4[1];\n      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }\n    }\n  }\n  else {\n    uVar7 = 1;\n  }" else (if_statement "if (*puVar9 == *puVar4) {\n    if ((int)*puVar9 < 1) {\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = puVar9[1];\n      uVar10 = puVar4[1];\n      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }\n    }\n  }\n  else {\n    uVar7 = 1;\n  }" if (parenthesized_expression "(*puVar9 == *puVar4)" ( (binary_expression "*puVar9 == *puVar4" (pointer_expression "*puVar9" * identifier) == (pointer_expression "*puVar4" * identifier)) )) (compound_statement "{\n    if ((int)*puVar9 < 1) {\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = puVar9[1];\n      uVar10 = puVar4[1];\n      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }\n    }\n  }" { (if_statement "if ((int)*puVar9 < 1) {\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = puVar9[1];\n      uVar10 = puVar4[1];\n      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }\n    }" if (parenthesized_expression "((int)*puVar9 < 1)" ( (binary_expression "(int)*puVar9 < 1" (cast_expression "(int)*puVar9" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*puVar9" * identifier)) < number_literal) )) (compound_statement "{\n      uVar7 = 0;\n    }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      uVar7 = puVar9[1];\n      uVar10 = puVar4[1];\n      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }\n    }" else (compound_statement "{\n      uVar7 = puVar9[1];\n      uVar10 = puVar4[1];\n      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }\n    }" { (expression_statement "uVar7 = puVar9[1];" (assignment_expression "uVar7 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = puVar4[1];" (assignment_expression "uVar10 = puVar4[1]" identifier = (subscript_expression "puVar4[1]" identifier [ number_literal ])) ;) (if_statement "if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }" if (parenthesized_expression "(*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4))" ( (binary_expression "*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)" (pointer_expression "*(byte *)(puVar9 + 4)" * (cast_expression "(byte *)(puVar9 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 4)" ( (binary_expression "puVar9 + 4" identifier + number_literal) )))) == (pointer_expression "*(byte *)(puVar4 + 4)" * (cast_expression "(byte *)(puVar4 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 4)" ( (binary_expression "puVar4 + 4" identifier + number_literal) ))))) )) (compound_statement "{\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }" { (expression_statement "puVar5 = puVar9 + 6;" (assignment_expression "puVar5 = puVar9 + 6" identifier = (binary_expression "puVar9 + 6" identifier + number_literal)) ;) (expression_statement "puVar4 = puVar4 + 6;" (assignment_expression "puVar4 = puVar4 + 6" identifier = (binary_expression "puVar4 + 6" identifier + number_literal)) ;) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (do_statement "do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);" do (compound_statement "{\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        }" { (expression_statement "iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);" (assignment_expression "iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16)" identifier = (call_expression "FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16)" identifier (argument_list "(0,uVar7,uVar10,puVar13,pcVar16)" ( number_literal , identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) (if_statement "if (iVar2 != 0) {\n            return 1;\n          }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n            return 1;\n          }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }" if (parenthesized_expression "((int)*puVar9 <= iVar15)" ( (binary_expression "(int)*puVar9 <= iVar15" (cast_expression "(int)*puVar9" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*puVar9" * identifier)) <= identifier) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar7 = *puVar5;" (assignment_expression "uVar7 = *puVar5" identifier = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "uVar10 = *puVar4;" (assignment_expression "uVar10 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "puVar6 = puVar5 + 3;" (assignment_expression "puVar6 = puVar5 + 3" identifier = (binary_expression "puVar5 + 3" identifier + number_literal)) ;) (expression_statement "puVar5 = puVar5 + 5;" (assignment_expression "puVar5 = puVar5 + 5" identifier = (binary_expression "puVar5 + 5" identifier + number_literal)) ;) (expression_statement "puVar1 = puVar4 + 3;" (assignment_expression "puVar1 = puVar4 + 3" identifier = (binary_expression "puVar4 + 3" identifier + number_literal)) ;) (expression_statement "puVar4 = puVar4 + 5;" (assignment_expression "puVar4 = puVar4 + 5" identifier = (binary_expression "puVar4 + 5" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(byte *)puVar6 == *(byte *)puVar1)" ( (binary_expression "*(byte *)puVar6 == *(byte *)puVar1" (pointer_expression "*(byte *)puVar6" * (cast_expression "(byte *)puVar6" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*(byte *)puVar1" * (cast_expression "(byte *)puVar1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) ;) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        uVar7 = 1;\n      }" else (compound_statement "{\n        uVar7 = 1;\n      }" { (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) }))) }))) }) (else_clause "else {\n    uVar7 = 1;\n  }" else (compound_statement "{\n    uVar7 = 1;\n  }" { (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) }))))))) (return_statement "return uVar7;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * IDENT))) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (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 * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (for_statement for ( (assignment_expression IDENT = IDENT) ; (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) , (binary_expression (binary_expression IDENT == LIT) || (parenthesized_expression ( (binary_expression IDENT == LIT) )))) )) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ) (compound_statement { })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (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 ( (subscript_expression IDENT [ LIT ]) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT & LIT) ))) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) )))) - (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) ^ LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_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 * (cast_expression ( (type_descriptor TYPE (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 { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) * IDENT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (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 = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) })) }))) }))) (labeled_statement statement_identifier : (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 * (abstract_pointer_declarator *))) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (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) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) != LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , LIT , LIT , (pointer_expression & IDENT) , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( LIT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( 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 = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT & (subscript_expression IDENT [ LIT ])) & LIT) )) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression (subscript_expression IDENT [ LIT ]) == (subscript_expression IDENT [ LIT ]))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT << LIT) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }))) }))) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) ^ (subscript_expression IDENT [ LIT ])) )) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (subscript_expression IDENT [ LIT ]) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) != LIT) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (subscript_expression IDENT [ LIT ])) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (goto_statement goto statement_identifier ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) })))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) )) (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 = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) <= IDENT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))))))) (return_statement return IDENT ;) })))
(function_definition "uint FUN_000a14dc(undefined4 param_1,uint *param_2,uint *param_3,uint *param_4,uint **param_5,\n                 undefined4 param_6)\n\n{\n  uint *puVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  uint *puVar4;\n  uint *puVar5;\n  uint *puVar6;\n  uint uVar7;\n  byte bVar8;\n  uint *puVar9;\n  uint uVar10;\n  char cVar12;\n  uint uVar11;\n  uint *puVar13;\n  undefined *puVar14;\n  int iVar15;\n  code *pcVar16;\n  uint *puStack_78;\n  uint *puStack_74;\n  uint uStack_70;\n  uint *puStack_6c;\n  undefined4 uStack_68;\n  uint **ppuStack_64;\n  uint *puStack_60;\n  uint *puStack_5c;\n  undefined4 uStack_58;\n  code *pcStack_54;\n  uint **local_40;\n  undefined4 local_3c;\n  uint *local_30;\n  undefined4 *local_2c;\n  \n  local_2c = *(undefined4 **)PTR___stack_chk_guard_0018fecc;\n  local_30 = (uint *)0x0;\n  for (puVar9 = param_2; (bVar8 = *(byte *)puVar9, bVar8 == 0xa2 || (bVar8 == 0xa9));\n      puVar9 = (uint *)puVar9[3]) {\n  }\n  if (bVar8 == 0xa4) {\n    bVar8 = *(byte *)(puVar9 + 10);\n  }\n  cVar12 = (char)param_4;\n  puVar5 = param_3;\n  if (bVar8 == 0x24) {\n    uVar10 = (*(code *)(PTR_LAB_0018fbbc + 0x7c60))(puVar9[2],0);\n    param_2 = (uint *)puVar9[3];\n    local_3c = param_6;\n    local_40 = param_5;\n    puVar6 = (uint *)(uVar10 & 0xff);\n    uVar7 = FUN_000a14dc(param_1);\n    if (*param_5 != (uint *)0x0) {\n      FUN_0008f194(*param_5,(uint *)(uVar10 & 0xff),1);\n      puVar5 = (uint *)0x1;\n      param_2 = (uint *)(int)cVar12;\n      FUN_0008efcc(*param_5);\n    }\n  }\n  else {\n    puVar6 = param_4;\n    if (bVar8 == 0xa1) {\n      puVar4 = (uint *)puVar9[3];\n      bVar8 = *(byte *)puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) {\n        puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80);\n        iVar15 = -1;\n        goto LAB_000a1594;\n      }\nLAB_000a1688:\n      param_2 = (uint *)puVar9[3];\n      local_3c = param_6;\n      local_40 = &local_30;\n      iVar15 = FUN_000a14dc(param_1);\n      if (iVar15 == 0) {\n        uVar7 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n          if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (uint *)(int)cVar12;\n          puVar5 = param_3;\n          FUN_0008efcc(local_30);\n        }\n      }\n      else {\n        uVar7 = 0;\n      }\n      goto LAB_000a180c;\n    }\n    if (bVar8 == 0x6a) {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\nLAB_000a1740:\n      local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n      if (local_30 == (uint *)0x0) {\nLAB_000a1a8c:\n        (*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);\n        param_2 = (uint *)0x0;\n        (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1);\n        (*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30);\n        uVar7 = 7;\n        goto LAB_000a1814;\n      }\n      if ((puVar9[1] & 0x400) == 0) {\n        puVar6 = (uint *)puVar9[2];\n        iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c);\n        puVar5 = puVar13;\n        if (iVar15 == 0) goto LAB_000a1a8c;\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x1;\n        FUN_00081e3c(local_30,0xffffffff,iVar15);\n      }\n      else {\n        puVar6 = (uint *)(puVar9[2] * iVar15);\n        (*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);\n      }\n      if (((bVar8 & 0xfd) == 0x8d) && (puVar5 = (uint *)0x1, param_4 == (uint *)0x41)) {\n        FUN_0008efcc(local_30,0x43);\n      }\n      else {\n        puVar5 = (uint *)0x1;\n        FUN_0008efcc(local_30,(int)cVar12);\n      }\n      if ((*(ushort *)(local_30 + 2) & 0xc) != 0) {\n        *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n      }\n      param_2 = param_3;\n      if (param_3 == (uint *)0x1) {\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = FUN_00084bc0();\n      }\n    }\n    else {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\n      puVar4 = puVar9;\nLAB_000a1594:\n      puVar9 = puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) goto LAB_000a1740;\n      if (bVar8 == 0xa1) goto LAB_000a1688;\n      if (bVar8 == 0x6e) {\n        local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }\n        goto LAB_000a1a8c;\n      }\n      if (bVar8 == 0x8e) {\n        puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        puVar5 = param_3;\n        param_3 = puVar13;\n        local_30 = puVar13;\n        if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;\n        uVar7 = puVar4[2];\n        iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);\n        puVar9 = (uint *)(iVar15 + -1);\n        param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x0;\n        puVar5 = (uint *)((int)puVar9 / 2);\n        FUN_00081ac0(puVar13);\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = 0;\n        if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }\n      }\n    }\nLAB_000a180c:\n    *param_5 = local_30;\n  }\nLAB_000a1814:\n  if (local_2c == *(undefined4 **)PTR___stack_chk_guard_0018fecc) {\n    return uVar7;\n  }\n  pcVar16 = FUN_000a1aec;\n  puVar3 = local_2c;\n  puVar14 = PTR___stack_chk_fail_0018fea0;\n  (*(code *)PTR___stack_chk_fail_0018fea0)();\n  uStack_58 = param_6;\n  ppuStack_64 = param_5;\n  puStack_74 = (uint *)**(undefined4 **)(puVar14 + 0xee3e0);\n  puVar4 = param_2;\n  puVar13 = puVar5;\n  uStack_70 = uVar7;\n  puStack_6c = puVar9;\n  uStack_68 = param_1;\n  puStack_60 = param_3;\n  puStack_5c = param_4;\n  pcStack_54 = pcVar16;\n  if (param_2 == (uint *)0x0) {\n    uVar7 = 2;\n    if (puVar5 == (uint *)0x0) {\n      uVar7 = 0;\n    }\n    goto LAB_000a1b98;\n  }\n  if (puVar5 == (uint *)0x0) {\n    uVar7 = 2;\n    goto LAB_000a1b98;\n  }\n  if ((puVar3 == (undefined4 *)0x0) || (*(byte *)param_2 != 0x90)) {\nLAB_000a1b58:\n    uVar10 = param_2[1];\n  }\n  else {\n    puStack_78 = (uint *)0x0;\n    puVar13 = (uint *)0x1;\n    puVar4 = puVar5;\n    FUN_000a14dc(*puVar3,puVar5,1,0x41,&puStack_78,0);\n    if (puStack_78 == (uint *)0x0) goto LAB_000a1b58;\n    puVar4 = (uint *)param_2[8];\n    (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x6628))(puVar3[2],puVar4);\n    puVar13 = (uint *)0x41;\n    iVar15 = FUN_0008f0b8(puVar3[0x36],puVar4,0x41);\n    if (iVar15 == 0) {\n      iVar15 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar15 + -0x5984))(puStack_78);\n      (*(code *)(iVar15 + -0x5984))(0);\n      uVar10 = param_2[1];\n    }\n    else {\n      if (*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==\n          '\x03') {\n        sqlite3_value_text(iVar15);\n      }\n      puVar13 = (uint *)0x0;\n      puVar4 = puStack_78;\n      uVar7 = FUN_0008ea3c(iVar15,puStack_78,0);\n      iVar2 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar2 + -0x5984))(puStack_78);\n      (*(code *)(iVar2 + -0x5984))(iVar15);\n      if (uVar7 == 0) goto LAB_000a1b98;\n      uVar10 = param_2[1];\n    }\n  }\n  uVar11 = uVar10 | puVar5[1];\n  if ((uVar11 & 0x400) != 0) {\n    uVar7 = 2;\n    if (((uVar10 & puVar5[1] & 0x400) != 0) && (uVar7 = 2, param_2[2] == puVar5[2])) {\n      uVar7 = 0;\n    }\n    goto LAB_000a1b98;\n  }\n  bVar8 = *(byte *)param_2;\n  if (*(byte *)puVar5 == bVar8) {\n    if (bVar8 != 0x47) {\n      if (((bVar8 != 0x9e) && (bVar8 != 0xa0)) && (param_2[2] != 0)) {\n        if (bVar8 == 0x9d) {\n          puVar4 = (uint *)puVar5[2];\n          iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();\n          if (iVar15 != 0) {\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }\n          if ((int)(uVar10 << 7) < 0) {\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n        else {\n          if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }\n          if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n      }\n      if (((param_2[1] ^ puVar5[1]) & 0x10) == 0) {\n        if ((uVar11 & 0x4000) == 0) {\n          if ((uVar11 & 0x800) == 0) {\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }\n          else {\n            uVar7 = 2;\n          }\n        }\n        else {\n          uVar7 = 0;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      goto LAB_000a1b98;\n    }\n  }\n  else if (bVar8 == 0x66) {\n    puVar4 = (uint *)param_2[3];\n    puVar13 = puVar5;\n    iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5,puVar6);\n    if (iVar15 < 2) {\n      uVar7 = 1;\n      goto LAB_000a1b98;\n    }\n  }\n  if (*(byte *)puVar5 == 0x66) {\n    puVar13 = (uint *)puVar5[3];\n    iVar15 = FUN_000a1aec(puVar3,param_2,puVar13,puVar6);\n    uVar7 = 2;\n    puVar4 = param_2;\n    if (iVar15 < 2) {\n      uVar7 = 1;\n    }\n  }\n  else {\n    uVar7 = 2;\n    puVar4 = param_2;\n  }\nLAB_000a1b98:\n  if (puStack_74 == (uint *)**(undefined4 **)(puVar14 + 0xee3e0)) {\n    return uVar7;\n  }\n  pcVar16 = *(code **)(puVar14 + 0xee3b4);\n  puVar9 = puStack_74;\n  (*pcVar16)();\n  pcVar16 = pcVar16 + 0xf5910;\n  if (puVar9 == (uint *)0x0) {\n    uVar7 = (uint)(puVar4 != (uint *)0x0);\n  }\n  else if (puVar4 == (uint *)0x0) {\n    uVar7 = 1;\n  }\n  else if (*puVar9 == *puVar4) {\n    if ((int)*puVar9 < 1) {\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = puVar9[1];\n      uVar10 = puVar4[1];\n      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }\n    }\n  }\n  else {\n    uVar7 = 1;\n  }\n  return uVar7;\n}" (type_identifier "uint") (function_declarator "FUN_000a14dc(undefined4 param_1,uint *param_2,uint *param_3,uint *param_4,uint **param_5,\n                 undefined4 param_6)" (identifier "FUN_000a14dc") (parameter_list "(undefined4 param_1,uint *param_2,uint *param_3,uint *param_4,uint **param_5,\n                 undefined4 param_6)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "uint *param_2" (type_identifier "uint") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "uint *param_3" (type_identifier "uint") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "uint *param_4" (type_identifier "uint") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "uint **param_5" (type_identifier "uint") (pointer_declarator "**param_5" (* "*") (pointer_declarator "*param_5" (* "*") (identifier "param_5")))) (, ",") (parameter_declaration "undefined4 param_6" (type_identifier "undefined4") (identifier "param_6")) () ")"))) (compound_statement "{\n  uint *puVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  uint *puVar4;\n  uint *puVar5;\n  uint *puVar6;\n  uint uVar7;\n  byte bVar8;\n  uint *puVar9;\n  uint uVar10;\n  char cVar12;\n  uint uVar11;\n  uint *puVar13;\n  undefined *puVar14;\n  int iVar15;\n  code *pcVar16;\n  uint *puStack_78;\n  uint *puStack_74;\n  uint uStack_70;\n  uint *puStack_6c;\n  undefined4 uStack_68;\n  uint **ppuStack_64;\n  uint *puStack_60;\n  uint *puStack_5c;\n  undefined4 uStack_58;\n  code *pcStack_54;\n  uint **local_40;\n  undefined4 local_3c;\n  uint *local_30;\n  undefined4 *local_2c;\n  \n  local_2c = *(undefined4 **)PTR___stack_chk_guard_0018fecc;\n  local_30 = (uint *)0x0;\n  for (puVar9 = param_2; (bVar8 = *(byte *)puVar9, bVar8 == 0xa2 || (bVar8 == 0xa9));\n      puVar9 = (uint *)puVar9[3]) {\n  }\n  if (bVar8 == 0xa4) {\n    bVar8 = *(byte *)(puVar9 + 10);\n  }\n  cVar12 = (char)param_4;\n  puVar5 = param_3;\n  if (bVar8 == 0x24) {\n    uVar10 = (*(code *)(PTR_LAB_0018fbbc + 0x7c60))(puVar9[2],0);\n    param_2 = (uint *)puVar9[3];\n    local_3c = param_6;\n    local_40 = param_5;\n    puVar6 = (uint *)(uVar10 & 0xff);\n    uVar7 = FUN_000a14dc(param_1);\n    if (*param_5 != (uint *)0x0) {\n      FUN_0008f194(*param_5,(uint *)(uVar10 & 0xff),1);\n      puVar5 = (uint *)0x1;\n      param_2 = (uint *)(int)cVar12;\n      FUN_0008efcc(*param_5);\n    }\n  }\n  else {\n    puVar6 = param_4;\n    if (bVar8 == 0xa1) {\n      puVar4 = (uint *)puVar9[3];\n      bVar8 = *(byte *)puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) {\n        puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80);\n        iVar15 = -1;\n        goto LAB_000a1594;\n      }\nLAB_000a1688:\n      param_2 = (uint *)puVar9[3];\n      local_3c = param_6;\n      local_40 = &local_30;\n      iVar15 = FUN_000a14dc(param_1);\n      if (iVar15 == 0) {\n        uVar7 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n          if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (uint *)(int)cVar12;\n          puVar5 = param_3;\n          FUN_0008efcc(local_30);\n        }\n      }\n      else {\n        uVar7 = 0;\n      }\n      goto LAB_000a180c;\n    }\n    if (bVar8 == 0x6a) {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\nLAB_000a1740:\n      local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n      if (local_30 == (uint *)0x0) {\nLAB_000a1a8c:\n        (*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);\n        param_2 = (uint *)0x0;\n        (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1);\n        (*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30);\n        uVar7 = 7;\n        goto LAB_000a1814;\n      }\n      if ((puVar9[1] & 0x400) == 0) {\n        puVar6 = (uint *)puVar9[2];\n        iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c);\n        puVar5 = puVar13;\n        if (iVar15 == 0) goto LAB_000a1a8c;\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x1;\n        FUN_00081e3c(local_30,0xffffffff,iVar15);\n      }\n      else {\n        puVar6 = (uint *)(puVar9[2] * iVar15);\n        (*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);\n      }\n      if (((bVar8 & 0xfd) == 0x8d) && (puVar5 = (uint *)0x1, param_4 == (uint *)0x41)) {\n        FUN_0008efcc(local_30,0x43);\n      }\n      else {\n        puVar5 = (uint *)0x1;\n        FUN_0008efcc(local_30,(int)cVar12);\n      }\n      if ((*(ushort *)(local_30 + 2) & 0xc) != 0) {\n        *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n      }\n      param_2 = param_3;\n      if (param_3 == (uint *)0x1) {\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = FUN_00084bc0();\n      }\n    }\n    else {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\n      puVar4 = puVar9;\nLAB_000a1594:\n      puVar9 = puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) goto LAB_000a1740;\n      if (bVar8 == 0xa1) goto LAB_000a1688;\n      if (bVar8 == 0x6e) {\n        local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }\n        goto LAB_000a1a8c;\n      }\n      if (bVar8 == 0x8e) {\n        puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        puVar5 = param_3;\n        param_3 = puVar13;\n        local_30 = puVar13;\n        if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;\n        uVar7 = puVar4[2];\n        iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);\n        puVar9 = (uint *)(iVar15 + -1);\n        param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x0;\n        puVar5 = (uint *)((int)puVar9 / 2);\n        FUN_00081ac0(puVar13);\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = 0;\n        if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }\n      }\n    }\nLAB_000a180c:\n    *param_5 = local_30;\n  }\nLAB_000a1814:\n  if (local_2c == *(undefined4 **)PTR___stack_chk_guard_0018fecc) {\n    return uVar7;\n  }\n  pcVar16 = FUN_000a1aec;\n  puVar3 = local_2c;\n  puVar14 = PTR___stack_chk_fail_0018fea0;\n  (*(code *)PTR___stack_chk_fail_0018fea0)();\n  uStack_58 = param_6;\n  ppuStack_64 = param_5;\n  puStack_74 = (uint *)**(undefined4 **)(puVar14 + 0xee3e0);\n  puVar4 = param_2;\n  puVar13 = puVar5;\n  uStack_70 = uVar7;\n  puStack_6c = puVar9;\n  uStack_68 = param_1;\n  puStack_60 = param_3;\n  puStack_5c = param_4;\n  pcStack_54 = pcVar16;\n  if (param_2 == (uint *)0x0) {\n    uVar7 = 2;\n    if (puVar5 == (uint *)0x0) {\n      uVar7 = 0;\n    }\n    goto LAB_000a1b98;\n  }\n  if (puVar5 == (uint *)0x0) {\n    uVar7 = 2;\n    goto LAB_000a1b98;\n  }\n  if ((puVar3 == (undefined4 *)0x0) || (*(byte *)param_2 != 0x90)) {\nLAB_000a1b58:\n    uVar10 = param_2[1];\n  }\n  else {\n    puStack_78 = (uint *)0x0;\n    puVar13 = (uint *)0x1;\n    puVar4 = puVar5;\n    FUN_000a14dc(*puVar3,puVar5,1,0x41,&puStack_78,0);\n    if (puStack_78 == (uint *)0x0) goto LAB_000a1b58;\n    puVar4 = (uint *)param_2[8];\n    (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x6628))(puVar3[2],puVar4);\n    puVar13 = (uint *)0x41;\n    iVar15 = FUN_0008f0b8(puVar3[0x36],puVar4,0x41);\n    if (iVar15 == 0) {\n      iVar15 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar15 + -0x5984))(puStack_78);\n      (*(code *)(iVar15 + -0x5984))(0);\n      uVar10 = param_2[1];\n    }\n    else {\n      if (*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==\n          '\x03') {\n        sqlite3_value_text(iVar15);\n      }\n      puVar13 = (uint *)0x0;\n      puVar4 = puStack_78;\n      uVar7 = FUN_0008ea3c(iVar15,puStack_78,0);\n      iVar2 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar2 + -0x5984))(puStack_78);\n      (*(code *)(iVar2 + -0x5984))(iVar15);\n      if (uVar7 == 0) goto LAB_000a1b98;\n      uVar10 = param_2[1];\n    }\n  }\n  uVar11 = uVar10 | puVar5[1];\n  if ((uVar11 & 0x400) != 0) {\n    uVar7 = 2;\n    if (((uVar10 & puVar5[1] & 0x400) != 0) && (uVar7 = 2, param_2[2] == puVar5[2])) {\n      uVar7 = 0;\n    }\n    goto LAB_000a1b98;\n  }\n  bVar8 = *(byte *)param_2;\n  if (*(byte *)puVar5 == bVar8) {\n    if (bVar8 != 0x47) {\n      if (((bVar8 != 0x9e) && (bVar8 != 0xa0)) && (param_2[2] != 0)) {\n        if (bVar8 == 0x9d) {\n          puVar4 = (uint *)puVar5[2];\n          iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();\n          if (iVar15 != 0) {\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }\n          if ((int)(uVar10 << 7) < 0) {\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n        else {\n          if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }\n          if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n      }\n      if (((param_2[1] ^ puVar5[1]) & 0x10) == 0) {\n        if ((uVar11 & 0x4000) == 0) {\n          if ((uVar11 & 0x800) == 0) {\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }\n          else {\n            uVar7 = 2;\n          }\n        }\n        else {\n          uVar7 = 0;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      goto LAB_000a1b98;\n    }\n  }\n  else if (bVar8 == 0x66) {\n    puVar4 = (uint *)param_2[3];\n    puVar13 = puVar5;\n    iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5,puVar6);\n    if (iVar15 < 2) {\n      uVar7 = 1;\n      goto LAB_000a1b98;\n    }\n  }\n  if (*(byte *)puVar5 == 0x66) {\n    puVar13 = (uint *)puVar5[3];\n    iVar15 = FUN_000a1aec(puVar3,param_2,puVar13,puVar6);\n    uVar7 = 2;\n    puVar4 = param_2;\n    if (iVar15 < 2) {\n      uVar7 = 1;\n    }\n  }\n  else {\n    uVar7 = 2;\n    puVar4 = param_2;\n  }\nLAB_000a1b98:\n  if (puStack_74 == (uint *)**(undefined4 **)(puVar14 + 0xee3e0)) {\n    return uVar7;\n  }\n  pcVar16 = *(code **)(puVar14 + 0xee3b4);\n  puVar9 = puStack_74;\n  (*pcVar16)();\n  pcVar16 = pcVar16 + 0xf5910;\n  if (puVar9 == (uint *)0x0) {\n    uVar7 = (uint)(puVar4 != (uint *)0x0);\n  }\n  else if (puVar4 == (uint *)0x0) {\n    uVar7 = 1;\n  }\n  else if (*puVar9 == *puVar4) {\n    if ((int)*puVar9 < 1) {\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = puVar9[1];\n      uVar10 = puVar4[1];\n      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }\n    }\n  }\n  else {\n    uVar7 = 1;\n  }\n  return uVar7;\n}" ({ "{") (declaration "uint *puVar1;" (type_identifier "uint") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "uint *puVar4;" (type_identifier "uint") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "uint *puVar5;" (type_identifier "uint") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "uint *puVar6;" (type_identifier "uint") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "byte bVar8;" (type_identifier "byte") (identifier "bVar8") (; ";")) (declaration "uint *puVar9;" (type_identifier "uint") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "char cVar12;" (primitive_type "char") (identifier "cVar12") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "uint *puVar13;" (type_identifier "uint") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "undefined *puVar14;" (type_identifier "undefined") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "code *pcVar16;" (type_identifier "code") (pointer_declarator "*pcVar16" (* "*") (identifier "pcVar16")) (; ";")) (declaration "uint *puStack_78;" (type_identifier "uint") (pointer_declarator "*puStack_78" (* "*") (identifier "puStack_78")) (; ";")) (declaration "uint *puStack_74;" (type_identifier "uint") (pointer_declarator "*puStack_74" (* "*") (identifier "puStack_74")) (; ";")) (declaration "uint uStack_70;" (type_identifier "uint") (identifier "uStack_70") (; ";")) (declaration "uint *puStack_6c;" (type_identifier "uint") (pointer_declarator "*puStack_6c" (* "*") (identifier "puStack_6c")) (; ";")) (declaration "undefined4 uStack_68;" (type_identifier "undefined4") (identifier "uStack_68") (; ";")) (declaration "uint **ppuStack_64;" (type_identifier "uint") (pointer_declarator "**ppuStack_64" (* "*") (pointer_declarator "*ppuStack_64" (* "*") (identifier "ppuStack_64"))) (; ";")) (declaration "uint *puStack_60;" (type_identifier "uint") (pointer_declarator "*puStack_60" (* "*") (identifier "puStack_60")) (; ";")) (declaration "uint *puStack_5c;" (type_identifier "uint") (pointer_declarator "*puStack_5c" (* "*") (identifier "puStack_5c")) (; ";")) (declaration "undefined4 uStack_58;" (type_identifier "undefined4") (identifier "uStack_58") (; ";")) (declaration "code *pcStack_54;" (type_identifier "code") (pointer_declarator "*pcStack_54" (* "*") (identifier "pcStack_54")) (; ";")) (declaration "uint **local_40;" (type_identifier "uint") (pointer_declarator "**local_40" (* "*") (pointer_declarator "*local_40" (* "*") (identifier "local_40"))) (; ";")) (declaration "undefined4 local_3c;" (type_identifier "undefined4") (identifier "local_3c") (; ";")) (declaration "uint *local_30;" (type_identifier "uint") (pointer_declarator "*local_30" (* "*") (identifier "local_30")) (; ";")) (declaration "undefined4 *local_2c;" (type_identifier "undefined4") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")) (; ";")) (expression_statement "local_2c = *(undefined4 **)PTR___stack_chk_guard_0018fecc;" (assignment_expression "local_2c = *(undefined4 **)PTR___stack_chk_guard_0018fecc" (identifier "local_2c") (= "=") (pointer_expression "*(undefined4 **)PTR___stack_chk_guard_0018fecc" (* "*") (cast_expression "(undefined4 **)PTR___stack_chk_guard_0018fecc" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_0018fecc")))) (; ";")) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" (identifier "local_30") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (for_statement "for (puVar9 = param_2; (bVar8 = *(byte *)puVar9, bVar8 == 0xa2 || (bVar8 == 0xa9));\n      puVar9 = (uint *)puVar9[3]) {\n  }" (for "for") (( "(") (assignment_expression "puVar9 = param_2" (identifier "puVar9") (= "=") (identifier "param_2")) (; ";") (parenthesized_expression "(bVar8 = *(byte *)puVar9, bVar8 == 0xa2 || (bVar8 == 0xa9))" (( "(") (comma_expression "bVar8 = *(byte *)puVar9, bVar8 == 0xa2 || (bVar8 == 0xa9)" (assignment_expression "bVar8 = *(byte *)puVar9" (identifier "bVar8") (= "=") (pointer_expression "*(byte *)puVar9" (* "*") (cast_expression "(byte *)puVar9" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar9")))) (, ",") (binary_expression "bVar8 == 0xa2 || (bVar8 == 0xa9)" (binary_expression "bVar8 == 0xa2" (identifier "bVar8") (== "==") (number_literal "0xa2")) (|| "||") (parenthesized_expression "(bVar8 == 0xa9)" (( "(") (binary_expression "bVar8 == 0xa9" (identifier "bVar8") (== "==") (number_literal "0xa9")) () ")")))) () ")")) (; ";") (assignment_expression "puVar9 = (uint *)puVar9[3]" (identifier "puVar9") (= "=") (cast_expression "(uint *)puVar9[3]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[3]" (identifier "puVar9") ([ "[") (number_literal "3") (] "]")))) () ")") (compound_statement "{\n  }" ({ "{") (} "}"))) (if_statement "if (bVar8 == 0xa4) {\n    bVar8 = *(byte *)(puVar9 + 10);\n  }" (if "if") (parenthesized_expression "(bVar8 == 0xa4)" (( "(") (binary_expression "bVar8 == 0xa4" (identifier "bVar8") (== "==") (number_literal "0xa4")) () ")")) (compound_statement "{\n    bVar8 = *(byte *)(puVar9 + 10);\n  }" ({ "{") (expression_statement "bVar8 = *(byte *)(puVar9 + 10);" (assignment_expression "bVar8 = *(byte *)(puVar9 + 10)" (identifier "bVar8") (= "=") (pointer_expression "*(byte *)(puVar9 + 10)" (* "*") (cast_expression "(byte *)(puVar9 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 10)" (( "(") (binary_expression "puVar9 + 10" (identifier "puVar9") (+ "+") (number_literal "10")) () ")"))))) (; ";")) (} "}"))) (expression_statement "cVar12 = (char)param_4;" (assignment_expression "cVar12 = (char)param_4" (identifier "cVar12") (= "=") (cast_expression "(char)param_4" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "param_4"))) (; ";")) (expression_statement "puVar5 = param_3;" (assignment_expression "puVar5 = param_3" (identifier "puVar5") (= "=") (identifier "param_3")) (; ";")) (if_statement "if (bVar8 == 0x24) {\n    uVar10 = (*(code *)(PTR_LAB_0018fbbc + 0x7c60))(puVar9[2],0);\n    param_2 = (uint *)puVar9[3];\n    local_3c = param_6;\n    local_40 = param_5;\n    puVar6 = (uint *)(uVar10 & 0xff);\n    uVar7 = FUN_000a14dc(param_1);\n    if (*param_5 != (uint *)0x0) {\n      FUN_0008f194(*param_5,(uint *)(uVar10 & 0xff),1);\n      puVar5 = (uint *)0x1;\n      param_2 = (uint *)(int)cVar12;\n      FUN_0008efcc(*param_5);\n    }\n  }\n  else {\n    puVar6 = param_4;\n    if (bVar8 == 0xa1) {\n      puVar4 = (uint *)puVar9[3];\n      bVar8 = *(byte *)puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) {\n        puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80);\n        iVar15 = -1;\n        goto LAB_000a1594;\n      }\nLAB_000a1688:\n      param_2 = (uint *)puVar9[3];\n      local_3c = param_6;\n      local_40 = &local_30;\n      iVar15 = FUN_000a14dc(param_1);\n      if (iVar15 == 0) {\n        uVar7 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n          if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (uint *)(int)cVar12;\n          puVar5 = param_3;\n          FUN_0008efcc(local_30);\n        }\n      }\n      else {\n        uVar7 = 0;\n      }\n      goto LAB_000a180c;\n    }\n    if (bVar8 == 0x6a) {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\nLAB_000a1740:\n      local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n      if (local_30 == (uint *)0x0) {\nLAB_000a1a8c:\n        (*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);\n        param_2 = (uint *)0x0;\n        (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1);\n        (*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30);\n        uVar7 = 7;\n        goto LAB_000a1814;\n      }\n      if ((puVar9[1] & 0x400) == 0) {\n        puVar6 = (uint *)puVar9[2];\n        iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c);\n        puVar5 = puVar13;\n        if (iVar15 == 0) goto LAB_000a1a8c;\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x1;\n        FUN_00081e3c(local_30,0xffffffff,iVar15);\n      }\n      else {\n        puVar6 = (uint *)(puVar9[2] * iVar15);\n        (*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);\n      }\n      if (((bVar8 & 0xfd) == 0x8d) && (puVar5 = (uint *)0x1, param_4 == (uint *)0x41)) {\n        FUN_0008efcc(local_30,0x43);\n      }\n      else {\n        puVar5 = (uint *)0x1;\n        FUN_0008efcc(local_30,(int)cVar12);\n      }\n      if ((*(ushort *)(local_30 + 2) & 0xc) != 0) {\n        *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n      }\n      param_2 = param_3;\n      if (param_3 == (uint *)0x1) {\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = FUN_00084bc0();\n      }\n    }\n    else {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\n      puVar4 = puVar9;\nLAB_000a1594:\n      puVar9 = puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) goto LAB_000a1740;\n      if (bVar8 == 0xa1) goto LAB_000a1688;\n      if (bVar8 == 0x6e) {\n        local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }\n        goto LAB_000a1a8c;\n      }\n      if (bVar8 == 0x8e) {\n        puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        puVar5 = param_3;\n        param_3 = puVar13;\n        local_30 = puVar13;\n        if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;\n        uVar7 = puVar4[2];\n        iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);\n        puVar9 = (uint *)(iVar15 + -1);\n        param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x0;\n        puVar5 = (uint *)((int)puVar9 / 2);\n        FUN_00081ac0(puVar13);\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = 0;\n        if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }\n      }\n    }\nLAB_000a180c:\n    *param_5 = local_30;\n  }" (if "if") (parenthesized_expression "(bVar8 == 0x24)" (( "(") (binary_expression "bVar8 == 0x24" (identifier "bVar8") (== "==") (number_literal "0x24")) () ")")) (compound_statement "{\n    uVar10 = (*(code *)(PTR_LAB_0018fbbc + 0x7c60))(puVar9[2],0);\n    param_2 = (uint *)puVar9[3];\n    local_3c = param_6;\n    local_40 = param_5;\n    puVar6 = (uint *)(uVar10 & 0xff);\n    uVar7 = FUN_000a14dc(param_1);\n    if (*param_5 != (uint *)0x0) {\n      FUN_0008f194(*param_5,(uint *)(uVar10 & 0xff),1);\n      puVar5 = (uint *)0x1;\n      param_2 = (uint *)(int)cVar12;\n      FUN_0008efcc(*param_5);\n    }\n  }" ({ "{") (expression_statement "uVar10 = (*(code *)(PTR_LAB_0018fbbc + 0x7c60))(puVar9[2],0);" (assignment_expression "uVar10 = (*(code *)(PTR_LAB_0018fbbc + 0x7c60))(puVar9[2],0)" (identifier "uVar10") (= "=") (call_expression "(*(code *)(PTR_LAB_0018fbbc + 0x7c60))(puVar9[2],0)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbbc + 0x7c60))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0018fbbc + 0x7c60)" (* "*") (cast_expression "(code *)(PTR_LAB_0018fbbc + 0x7c60)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0018fbbc + 0x7c60)" (( "(") (binary_expression "PTR_LAB_0018fbbc + 0x7c60" (identifier "PTR_LAB_0018fbbc") (+ "+") (number_literal "0x7c60")) () ")")))) () ")")) (argument_list "(puVar9[2],0)" (( "(") (subscript_expression "puVar9[2]" (identifier "puVar9") ([ "[") (number_literal "2") (] "]")) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_2 = (uint *)puVar9[3];" (assignment_expression "param_2 = (uint *)puVar9[3]" (identifier "param_2") (= "=") (cast_expression "(uint *)puVar9[3]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[3]" (identifier "puVar9") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "local_3c = param_6;" (assignment_expression "local_3c = param_6" (identifier "local_3c") (= "=") (identifier "param_6")) (; ";")) (expression_statement "local_40 = param_5;" (assignment_expression "local_40 = param_5" (identifier "local_40") (= "=") (identifier "param_5")) (; ";")) (expression_statement "puVar6 = (uint *)(uVar10 & 0xff);" (assignment_expression "puVar6 = (uint *)(uVar10 & 0xff)" (identifier "puVar6") (= "=") (cast_expression "(uint *)(uVar10 & 0xff)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar10 & 0xff)" (( "(") (binary_expression "uVar10 & 0xff" (identifier "uVar10") (& "&") (number_literal "0xff")) () ")")))) (; ";")) (expression_statement "uVar7 = FUN_000a14dc(param_1);" (assignment_expression "uVar7 = FUN_000a14dc(param_1)" (identifier "uVar7") (= "=") (call_expression "FUN_000a14dc(param_1)" (identifier "FUN_000a14dc") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (*param_5 != (uint *)0x0) {\n      FUN_0008f194(*param_5,(uint *)(uVar10 & 0xff),1);\n      puVar5 = (uint *)0x1;\n      param_2 = (uint *)(int)cVar12;\n      FUN_0008efcc(*param_5);\n    }" (if "if") (parenthesized_expression "(*param_5 != (uint *)0x0)" (( "(") (binary_expression "*param_5 != (uint *)0x0" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      FUN_0008f194(*param_5,(uint *)(uVar10 & 0xff),1);\n      puVar5 = (uint *)0x1;\n      param_2 = (uint *)(int)cVar12;\n      FUN_0008efcc(*param_5);\n    }" ({ "{") (expression_statement "FUN_0008f194(*param_5,(uint *)(uVar10 & 0xff),1);" (call_expression "FUN_0008f194(*param_5,(uint *)(uVar10 & 0xff),1)" (identifier "FUN_0008f194") (argument_list "(*param_5,(uint *)(uVar10 & 0xff),1)" (( "(") (pointer_expression "*param_5" (* "*") (identifier "param_5")) (, ",") (cast_expression "(uint *)(uVar10 & 0xff)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar10 & 0xff)" (( "(") (binary_expression "uVar10 & 0xff" (identifier "uVar10") (& "&") (number_literal "0xff")) () ")"))) (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "puVar5 = (uint *)0x1;" (assignment_expression "puVar5 = (uint *)0x1" (identifier "puVar5") (= "=") (cast_expression "(uint *)0x1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "param_2 = (uint *)(int)cVar12;" (assignment_expression "param_2 = (uint *)(int)cVar12" (identifier "param_2") (= "=") (cast_expression "(uint *)(int)cVar12" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)cVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar12")))) (; ";")) (expression_statement "FUN_0008efcc(*param_5);" (call_expression "FUN_0008efcc(*param_5)" (identifier "FUN_0008efcc") (argument_list "(*param_5)" (( "(") (pointer_expression "*param_5" (* "*") (identifier "param_5")) () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    puVar6 = param_4;\n    if (bVar8 == 0xa1) {\n      puVar4 = (uint *)puVar9[3];\n      bVar8 = *(byte *)puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) {\n        puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80);\n        iVar15 = -1;\n        goto LAB_000a1594;\n      }\nLAB_000a1688:\n      param_2 = (uint *)puVar9[3];\n      local_3c = param_6;\n      local_40 = &local_30;\n      iVar15 = FUN_000a14dc(param_1);\n      if (iVar15 == 0) {\n        uVar7 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n          if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (uint *)(int)cVar12;\n          puVar5 = param_3;\n          FUN_0008efcc(local_30);\n        }\n      }\n      else {\n        uVar7 = 0;\n      }\n      goto LAB_000a180c;\n    }\n    if (bVar8 == 0x6a) {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\nLAB_000a1740:\n      local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n      if (local_30 == (uint *)0x0) {\nLAB_000a1a8c:\n        (*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);\n        param_2 = (uint *)0x0;\n        (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1);\n        (*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30);\n        uVar7 = 7;\n        goto LAB_000a1814;\n      }\n      if ((puVar9[1] & 0x400) == 0) {\n        puVar6 = (uint *)puVar9[2];\n        iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c);\n        puVar5 = puVar13;\n        if (iVar15 == 0) goto LAB_000a1a8c;\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x1;\n        FUN_00081e3c(local_30,0xffffffff,iVar15);\n      }\n      else {\n        puVar6 = (uint *)(puVar9[2] * iVar15);\n        (*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);\n      }\n      if (((bVar8 & 0xfd) == 0x8d) && (puVar5 = (uint *)0x1, param_4 == (uint *)0x41)) {\n        FUN_0008efcc(local_30,0x43);\n      }\n      else {\n        puVar5 = (uint *)0x1;\n        FUN_0008efcc(local_30,(int)cVar12);\n      }\n      if ((*(ushort *)(local_30 + 2) & 0xc) != 0) {\n        *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n      }\n      param_2 = param_3;\n      if (param_3 == (uint *)0x1) {\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = FUN_00084bc0();\n      }\n    }\n    else {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\n      puVar4 = puVar9;\nLAB_000a1594:\n      puVar9 = puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) goto LAB_000a1740;\n      if (bVar8 == 0xa1) goto LAB_000a1688;\n      if (bVar8 == 0x6e) {\n        local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }\n        goto LAB_000a1a8c;\n      }\n      if (bVar8 == 0x8e) {\n        puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        puVar5 = param_3;\n        param_3 = puVar13;\n        local_30 = puVar13;\n        if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;\n        uVar7 = puVar4[2];\n        iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);\n        puVar9 = (uint *)(iVar15 + -1);\n        param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x0;\n        puVar5 = (uint *)((int)puVar9 / 2);\n        FUN_00081ac0(puVar13);\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = 0;\n        if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }\n      }\n    }\nLAB_000a180c:\n    *param_5 = local_30;\n  }" (else "else") (compound_statement "{\n    puVar6 = param_4;\n    if (bVar8 == 0xa1) {\n      puVar4 = (uint *)puVar9[3];\n      bVar8 = *(byte *)puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) {\n        puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80);\n        iVar15 = -1;\n        goto LAB_000a1594;\n      }\nLAB_000a1688:\n      param_2 = (uint *)puVar9[3];\n      local_3c = param_6;\n      local_40 = &local_30;\n      iVar15 = FUN_000a14dc(param_1);\n      if (iVar15 == 0) {\n        uVar7 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n          if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (uint *)(int)cVar12;\n          puVar5 = param_3;\n          FUN_0008efcc(local_30);\n        }\n      }\n      else {\n        uVar7 = 0;\n      }\n      goto LAB_000a180c;\n    }\n    if (bVar8 == 0x6a) {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\nLAB_000a1740:\n      local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n      if (local_30 == (uint *)0x0) {\nLAB_000a1a8c:\n        (*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);\n        param_2 = (uint *)0x0;\n        (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1);\n        (*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30);\n        uVar7 = 7;\n        goto LAB_000a1814;\n      }\n      if ((puVar9[1] & 0x400) == 0) {\n        puVar6 = (uint *)puVar9[2];\n        iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c);\n        puVar5 = puVar13;\n        if (iVar15 == 0) goto LAB_000a1a8c;\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x1;\n        FUN_00081e3c(local_30,0xffffffff,iVar15);\n      }\n      else {\n        puVar6 = (uint *)(puVar9[2] * iVar15);\n        (*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);\n      }\n      if (((bVar8 & 0xfd) == 0x8d) && (puVar5 = (uint *)0x1, param_4 == (uint *)0x41)) {\n        FUN_0008efcc(local_30,0x43);\n      }\n      else {\n        puVar5 = (uint *)0x1;\n        FUN_0008efcc(local_30,(int)cVar12);\n      }\n      if ((*(ushort *)(local_30 + 2) & 0xc) != 0) {\n        *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n      }\n      param_2 = param_3;\n      if (param_3 == (uint *)0x1) {\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = FUN_00084bc0();\n      }\n    }\n    else {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\n      puVar4 = puVar9;\nLAB_000a1594:\n      puVar9 = puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) goto LAB_000a1740;\n      if (bVar8 == 0xa1) goto LAB_000a1688;\n      if (bVar8 == 0x6e) {\n        local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }\n        goto LAB_000a1a8c;\n      }\n      if (bVar8 == 0x8e) {\n        puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        puVar5 = param_3;\n        param_3 = puVar13;\n        local_30 = puVar13;\n        if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;\n        uVar7 = puVar4[2];\n        iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);\n        puVar9 = (uint *)(iVar15 + -1);\n        param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x0;\n        puVar5 = (uint *)((int)puVar9 / 2);\n        FUN_00081ac0(puVar13);\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = 0;\n        if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }\n      }\n    }\nLAB_000a180c:\n    *param_5 = local_30;\n  }" ({ "{") (expression_statement "puVar6 = param_4;" (assignment_expression "puVar6 = param_4" (identifier "puVar6") (= "=") (identifier "param_4")) (; ";")) (if_statement "if (bVar8 == 0xa1) {\n      puVar4 = (uint *)puVar9[3];\n      bVar8 = *(byte *)puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) {\n        puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80);\n        iVar15 = -1;\n        goto LAB_000a1594;\n      }\nLAB_000a1688:\n      param_2 = (uint *)puVar9[3];\n      local_3c = param_6;\n      local_40 = &local_30;\n      iVar15 = FUN_000a14dc(param_1);\n      if (iVar15 == 0) {\n        uVar7 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n          if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (uint *)(int)cVar12;\n          puVar5 = param_3;\n          FUN_0008efcc(local_30);\n        }\n      }\n      else {\n        uVar7 = 0;\n      }\n      goto LAB_000a180c;\n    }" (if "if") (parenthesized_expression "(bVar8 == 0xa1)" (( "(") (binary_expression "bVar8 == 0xa1" (identifier "bVar8") (== "==") (number_literal "0xa1")) () ")")) (compound_statement "{\n      puVar4 = (uint *)puVar9[3];\n      bVar8 = *(byte *)puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) {\n        puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80);\n        iVar15 = -1;\n        goto LAB_000a1594;\n      }\nLAB_000a1688:\n      param_2 = (uint *)puVar9[3];\n      local_3c = param_6;\n      local_40 = &local_30;\n      iVar15 = FUN_000a14dc(param_1);\n      if (iVar15 == 0) {\n        uVar7 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n          if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (uint *)(int)cVar12;\n          puVar5 = param_3;\n          FUN_0008efcc(local_30);\n        }\n      }\n      else {\n        uVar7 = 0;\n      }\n      goto LAB_000a180c;\n    }" ({ "{") (expression_statement "puVar4 = (uint *)puVar9[3];" (assignment_expression "puVar4 = (uint *)puVar9[3]" (identifier "puVar4") (= "=") (cast_expression "(uint *)puVar9[3]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[3]" (identifier "puVar9") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "bVar8 = *(byte *)puVar4;" (assignment_expression "bVar8 = *(byte *)puVar4" (identifier "bVar8") (= "=") (pointer_expression "*(byte *)puVar4" (* "*") (cast_expression "(byte *)puVar4" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4")))) (; ";")) (if_statement "if ((bVar8 & 0xfd) == 0x8d) {\n        puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80);\n        iVar15 = -1;\n        goto LAB_000a1594;\n      }" (if "if") (parenthesized_expression "((bVar8 & 0xfd) == 0x8d)" (( "(") (binary_expression "(bVar8 & 0xfd) == 0x8d" (parenthesized_expression "(bVar8 & 0xfd)" (( "(") (binary_expression "bVar8 & 0xfd" (identifier "bVar8") (& "&") (number_literal "0xfd")) () ")")) (== "==") (number_literal "0x8d")) () ")")) (compound_statement "{\n        puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80);\n        iVar15 = -1;\n        goto LAB_000a1594;\n      }" ({ "{") (expression_statement "puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80);" (assignment_expression "puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80)" (identifier "puVar13") (= "=") (cast_expression "(uint *)(PTR_LAB_0018f958 + 0xd80)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0018f958 + 0xd80)" (( "(") (binary_expression "PTR_LAB_0018f958 + 0xd80" (identifier "PTR_LAB_0018f958") (+ "+") (number_literal "0xd80")) () ")")))) (; ";")) (expression_statement "iVar15 = -1;" (assignment_expression "iVar15 = -1" (identifier "iVar15") (= "=") (number_literal "-1")) (; ";")) (goto_statement "goto LAB_000a1594;" (goto "goto") (statement_identifier "LAB_000a1594") (; ";")) (} "}"))) (labeled_statement "LAB_000a1688:\n      param_2 = (uint *)puVar9[3];" (statement_identifier "LAB_000a1688") (: ":") (expression_statement "param_2 = (uint *)puVar9[3];" (assignment_expression "param_2 = (uint *)puVar9[3]" (identifier "param_2") (= "=") (cast_expression "(uint *)puVar9[3]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[3]" (identifier "puVar9") ([ "[") (number_literal "3") (] "]")))) (; ";"))) (expression_statement "local_3c = param_6;" (assignment_expression "local_3c = param_6" (identifier "local_3c") (= "=") (identifier "param_6")) (; ";")) (expression_statement "local_40 = &local_30;" (assignment_expression "local_40 = &local_30" (identifier "local_40") (= "=") (pointer_expression "&local_30" (& "&") (identifier "local_30"))) (; ";")) (expression_statement "iVar15 = FUN_000a14dc(param_1);" (assignment_expression "iVar15 = FUN_000a14dc(param_1)" (identifier "iVar15") (= "=") (call_expression "FUN_000a14dc(param_1)" (identifier "FUN_000a14dc") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar15 == 0) {\n        uVar7 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n          if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (uint *)(int)cVar12;\n          puVar5 = param_3;\n          FUN_0008efcc(local_30);\n        }\n      }\n      else {\n        uVar7 = 0;\n      }" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar7 = 0;\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n          if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (uint *)(int)cVar12;\n          puVar5 = param_3;\n          FUN_0008efcc(local_30);\n        }\n      }" ({ "{") (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n          if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (uint *)(int)cVar12;\n          puVar5 = param_3;\n          FUN_0008efcc(local_30);\n        }" (if "if") (parenthesized_expression "(local_30 != (uint *)0x0)" (( "(") (binary_expression "local_30 != (uint *)0x0" (identifier "local_30") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();\n          if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }\n          param_2 = (uint *)(int)cVar12;\n          puVar5 = param_3;\n          FUN_0008efcc(local_30);\n        }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_0018fbd0 + 0x6988))();" (call_expression "(*(code *)(PTR_LAB_0018fbd0 + 0x6988))()" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbd0 + 0x6988))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0018fbd0 + 0x6988)" (* "*") (cast_expression "(code *)(PTR_LAB_0018fbd0 + 0x6988)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0018fbd0 + 0x6988)" (( "(") (binary_expression "PTR_LAB_0018fbd0 + 0x6988" (identifier "PTR_LAB_0018fbd0") (+ "+") (number_literal "0x6988")) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if ((local_30[2] & 0x80000) == 0) {\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }\n          else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }" (if "if") (parenthesized_expression "((local_30[2] & 0x80000) == 0)" (( "(") (binary_expression "(local_30[2] & 0x80000) == 0" (parenthesized_expression "(local_30[2] & 0x80000)" (( "(") (binary_expression "local_30[2] & 0x80000" (subscript_expression "local_30[2]" (identifier "local_30") ([ "[") (number_literal "2") (] "]")) (& "&") (number_literal "0x80000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }\n          }" ({ "{") (if_statement "if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }\n            else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }" (if "if") (parenthesized_expression "((*local_30 == 0x80000000) && (local_30[1] == 0))" (( "(") (binary_expression "(*local_30 == 0x80000000) && (local_30[1] == 0)" (parenthesized_expression "(*local_30 == 0x80000000)" (( "(") (binary_expression "*local_30 == 0x80000000" (pointer_expression "*local_30" (* "*") (identifier "local_30")) (== "==") (number_literal "0x80000000")) () ")")) (&& "&&") (parenthesized_expression "(local_30[1] == 0)" (( "(") (binary_expression "local_30[1] == 0" (subscript_expression "local_30[1]" (identifier "local_30") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);\n              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;\n            }" ({ "{") (expression_statement "*(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);" (assignment_expression "*(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8)" (pointer_expression "*(undefined8 *)local_30" (* "*") (cast_expression "(undefined8 *)local_30" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_30"))) (= "=") (pointer_expression "*(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8)" (* "*") (cast_expression "(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0018fbb0 + -0x3fb8)" (( "(") (binary_expression "PTR_DAT_0018fbb0 + -0x3fb8" (identifier "PTR_DAT_0018fbb0") (+ "+") (number_literal "-0x3fb8")) () ")"))))) (; ";")) (expression_statement "*(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;" (assignment_expression "*(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8" (pointer_expression "*(ushort *)(local_30 + 2)" (* "*") (cast_expression "(ushort *)(local_30 + 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_30 + 2)" (( "(") (binary_expression "local_30 + 2" (identifier "local_30") (+ "+") (number_literal "2")) () ")")))) (= "=") (binary_expression "*(ushort *)(local_30 + 2) & 0x3e00 | 8" (binary_expression "*(ushort *)(local_30 + 2) & 0x3e00" (pointer_expression "*(ushort *)(local_30 + 2)" (* "*") (cast_expression "(ushort *)(local_30 + 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_30 + 2)" (( "(") (binary_expression "local_30 + 2" (identifier "local_30") (+ "+") (number_literal "2")) () ")")))) (& "&") (number_literal "0x3e00")) (| "|") (number_literal "8"))) (; ";")) (} "}")) (else_clause "else {\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }" (else "else") (compound_statement "{\n              uVar10 = -local_30[1];\n              *local_30 = -(uint)(uVar10 != 0) - *local_30;\n              local_30[1] = uVar10;\n            }" ({ "{") (expression_statement "uVar10 = -local_30[1];" (assignment_expression "uVar10 = -local_30[1]" (identifier "uVar10") (= "=") (unary_expression "-local_30[1]" (- "-") (subscript_expression "local_30[1]" (identifier "local_30") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "*local_30 = -(uint)(uVar10 != 0) - *local_30;" (assignment_expression "*local_30 = -(uint)(uVar10 != 0) - *local_30" (pointer_expression "*local_30" (* "*") (identifier "local_30")) (= "=") (binary_expression "-(uint)(uVar10 != 0) - *local_30" (unary_expression "-(uint)(uVar10 != 0)" (- "-") (call_expression "(uint)(uVar10 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar10 != 0)" (( "(") (binary_expression "uVar10 != 0" (identifier "uVar10") (!= "!=") (number_literal "0")) () ")")))) (- "-") (pointer_expression "*local_30" (* "*") (identifier "local_30")))) (; ";")) (expression_statement "local_30[1] = uVar10;" (assignment_expression "local_30[1] = uVar10" (subscript_expression "local_30[1]" (identifier "local_30") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n            *local_30 = *local_30 ^ 0x80000000;\n          }" (else "else") (compound_statement "{\n            *local_30 = *local_30 ^ 0x80000000;\n          }" ({ "{") (expression_statement "*local_30 = *local_30 ^ 0x80000000;" (assignment_expression "*local_30 = *local_30 ^ 0x80000000" (pointer_expression "*local_30" (* "*") (identifier "local_30")) (= "=") (binary_expression "*local_30 ^ 0x80000000" (pointer_expression "*local_30" (* "*") (identifier "local_30")) (^ "^") (number_literal "0x80000000"))) (; ";")) (} "}")))) (expression_statement "param_2 = (uint *)(int)cVar12;" (assignment_expression "param_2 = (uint *)(int)cVar12" (identifier "param_2") (= "=") (cast_expression "(uint *)(int)cVar12" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)cVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar12")))) (; ";")) (expression_statement "puVar5 = param_3;" (assignment_expression "puVar5 = param_3" (identifier "puVar5") (= "=") (identifier "param_3")) (; ";")) (expression_statement "FUN_0008efcc(local_30);" (call_expression "FUN_0008efcc(local_30)" (identifier "FUN_0008efcc") (argument_list "(local_30)" (( "(") (identifier "local_30") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        uVar7 = 0;\n      }" (else "else") (compound_statement "{\n        uVar7 = 0;\n      }" ({ "{") (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (} "}")))) (goto_statement "goto LAB_000a180c;" (goto "goto") (statement_identifier "LAB_000a180c") (; ";")) (} "}"))) (if_statement "if (bVar8 == 0x6a) {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\nLAB_000a1740:\n      local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n      if (local_30 == (uint *)0x0) {\nLAB_000a1a8c:\n        (*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);\n        param_2 = (uint *)0x0;\n        (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1);\n        (*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30);\n        uVar7 = 7;\n        goto LAB_000a1814;\n      }\n      if ((puVar9[1] & 0x400) == 0) {\n        puVar6 = (uint *)puVar9[2];\n        iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c);\n        puVar5 = puVar13;\n        if (iVar15 == 0) goto LAB_000a1a8c;\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x1;\n        FUN_00081e3c(local_30,0xffffffff,iVar15);\n      }\n      else {\n        puVar6 = (uint *)(puVar9[2] * iVar15);\n        (*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);\n      }\n      if (((bVar8 & 0xfd) == 0x8d) && (puVar5 = (uint *)0x1, param_4 == (uint *)0x41)) {\n        FUN_0008efcc(local_30,0x43);\n      }\n      else {\n        puVar5 = (uint *)0x1;\n        FUN_0008efcc(local_30,(int)cVar12);\n      }\n      if ((*(ushort *)(local_30 + 2) & 0xc) != 0) {\n        *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n      }\n      param_2 = param_3;\n      if (param_3 == (uint *)0x1) {\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = FUN_00084bc0();\n      }\n    }\n    else {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\n      puVar4 = puVar9;\nLAB_000a1594:\n      puVar9 = puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) goto LAB_000a1740;\n      if (bVar8 == 0xa1) goto LAB_000a1688;\n      if (bVar8 == 0x6e) {\n        local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }\n        goto LAB_000a1a8c;\n      }\n      if (bVar8 == 0x8e) {\n        puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        puVar5 = param_3;\n        param_3 = puVar13;\n        local_30 = puVar13;\n        if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;\n        uVar7 = puVar4[2];\n        iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);\n        puVar9 = (uint *)(iVar15 + -1);\n        param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x0;\n        puVar5 = (uint *)((int)puVar9 / 2);\n        FUN_00081ac0(puVar13);\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = 0;\n        if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }\n      }\n    }" (if "if") (parenthesized_expression "(bVar8 == 0x6a)" (( "(") (binary_expression "bVar8 == 0x6a" (identifier "bVar8") (== "==") (number_literal "0x6a")) () ")")) (compound_statement "{\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\nLAB_000a1740:\n      local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n      if (local_30 == (uint *)0x0) {\nLAB_000a1a8c:\n        (*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);\n        param_2 = (uint *)0x0;\n        (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1);\n        (*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30);\n        uVar7 = 7;\n        goto LAB_000a1814;\n      }\n      if ((puVar9[1] & 0x400) == 0) {\n        puVar6 = (uint *)puVar9[2];\n        iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c);\n        puVar5 = puVar13;\n        if (iVar15 == 0) goto LAB_000a1a8c;\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x1;\n        FUN_00081e3c(local_30,0xffffffff,iVar15);\n      }\n      else {\n        puVar6 = (uint *)(puVar9[2] * iVar15);\n        (*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);\n      }\n      if (((bVar8 & 0xfd) == 0x8d) && (puVar5 = (uint *)0x1, param_4 == (uint *)0x41)) {\n        FUN_0008efcc(local_30,0x43);\n      }\n      else {\n        puVar5 = (uint *)0x1;\n        FUN_0008efcc(local_30,(int)cVar12);\n      }\n      if ((*(ushort *)(local_30 + 2) & 0xc) != 0) {\n        *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n      }\n      param_2 = param_3;\n      if (param_3 == (uint *)0x1) {\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = FUN_00084bc0();\n      }\n    }" ({ "{") (expression_statement "puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);" (assignment_expression "puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20)" (identifier "puVar13") (= "=") (cast_expression "(uint *)(PTR_LAB_0018f958 + 0x2d20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0018f958 + 0x2d20)" (( "(") (binary_expression "PTR_LAB_0018f958 + 0x2d20" (identifier "PTR_LAB_0018f958") (+ "+") (number_literal "0x2d20")) () ")")))) (; ";")) (expression_statement "iVar15 = 1;" (assignment_expression "iVar15 = 1" (identifier "iVar15") (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_000a1740:\n      local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);" (statement_identifier "LAB_000a1740") (: ":") (expression_statement "local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);" (assignment_expression "local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1)" (identifier "local_30") (= "=") (cast_expression "(uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbbc + 0x65c8))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0018fbbc + 0x65c8)" (* "*") (cast_expression "(code *)(PTR_LAB_0018fbbc + 0x65c8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0018fbbc + 0x65c8)" (( "(") (binary_expression "PTR_LAB_0018fbbc + 0x65c8" (identifier "PTR_LAB_0018fbbc") (+ "+") (number_literal "0x65c8")) () ")")))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))))) (; ";"))) (if_statement "if (local_30 == (uint *)0x0) {\nLAB_000a1a8c:\n        (*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);\n        param_2 = (uint *)0x0;\n        (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1);\n        (*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30);\n        uVar7 = 7;\n        goto LAB_000a1814;\n      }" (if "if") (parenthesized_expression "(local_30 == (uint *)0x0)" (( "(") (binary_expression "local_30 == (uint *)0x0" (identifier "local_30") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_000a1a8c:\n        (*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);\n        param_2 = (uint *)0x0;\n        (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1);\n        (*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30);\n        uVar7 = 7;\n        goto LAB_000a1814;\n      }" ({ "{") (labeled_statement "LAB_000a1a8c:\n        (*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);" (statement_identifier "LAB_000a1a8c") (: ":") (expression_statement "(*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);" (call_expression "(*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fb58 + 0x1354))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0018fb58 + 0x1354)" (* "*") (cast_expression "(code *)(PTR_LAB_0018fb58 + 0x1354)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0018fb58 + 0x1354)" (( "(") (binary_expression "PTR_LAB_0018fb58 + 0x1354" (identifier "PTR_LAB_0018fb58") (+ "+") (number_literal "0x1354")) () ")")))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";"))) (expression_statement "param_2 = (uint *)0x0;" (assignment_expression "param_2 = (uint *)0x0" (identifier "param_2") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "(*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1);" (call_expression "(*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbd0 + 0x7878))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0018fbd0 + 0x7878)" (* "*") (cast_expression "(code *)(PTR_LAB_0018fbd0 + 0x7878)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0018fbd0 + 0x7878)" (( "(") (binary_expression "PTR_LAB_0018fbd0 + 0x7878" (identifier "PTR_LAB_0018fbd0") (+ "+") (number_literal "0x7878")) () ")")))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (expression_statement "(*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30);" (call_expression "(*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fc04 + -0x5984))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0018fc04 + -0x5984)" (* "*") (cast_expression "(code *)(PTR_LAB_0018fc04 + -0x5984)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0018fc04 + -0x5984)" (( "(") (binary_expression "PTR_LAB_0018fc04 + -0x5984" (identifier "PTR_LAB_0018fc04") (+ "+") (number_literal "-0x5984")) () ")")))) () ")")) (argument_list "(local_30)" (( "(") (identifier "local_30") () ")"))) (; ";")) (expression_statement "uVar7 = 7;" (assignment_expression "uVar7 = 7" (identifier "uVar7") (= "=") (number_literal "7")) (; ";")) (goto_statement "goto LAB_000a1814;" (goto "goto") (statement_identifier "LAB_000a1814") (; ";")) (} "}"))) (if_statement "if ((puVar9[1] & 0x400) == 0) {\n        puVar6 = (uint *)puVar9[2];\n        iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c);\n        puVar5 = puVar13;\n        if (iVar15 == 0) goto LAB_000a1a8c;\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x1;\n        FUN_00081e3c(local_30,0xffffffff,iVar15);\n      }\n      else {\n        puVar6 = (uint *)(puVar9[2] * iVar15);\n        (*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);\n      }" (if "if") (parenthesized_expression "((puVar9[1] & 0x400) == 0)" (( "(") (binary_expression "(puVar9[1] & 0x400) == 0" (parenthesized_expression "(puVar9[1] & 0x400)" (( "(") (binary_expression "puVar9[1] & 0x400" (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]")) (& "&") (number_literal "0x400")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        puVar6 = (uint *)puVar9[2];\n        iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c);\n        puVar5 = puVar13;\n        if (iVar15 == 0) goto LAB_000a1a8c;\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x1;\n        FUN_00081e3c(local_30,0xffffffff,iVar15);\n      }" ({ "{") (expression_statement "puVar6 = (uint *)puVar9[2];" (assignment_expression "puVar6 = (uint *)puVar9[2]" (identifier "puVar6") (= "=") (cast_expression "(uint *)puVar9[2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[2]" (identifier "puVar9") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c);" (assignment_expression "iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c)" (identifier "iVar15") (= "=") (call_expression "FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c)" (identifier "FUN_000a1468") (argument_list "(param_1,PTR_LAB_0018f958 + 0x172c)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_LAB_0018f958 + 0x172c" (identifier "PTR_LAB_0018f958") (+ "+") (number_literal "0x172c")) () ")")))) (; ";")) (expression_statement "puVar5 = puVar13;" (assignment_expression "puVar5 = puVar13" (identifier "puVar5") (= "=") (identifier "puVar13")) (; ";")) (if_statement "if (iVar15 == 0) goto LAB_000a1a8c;" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000a1a8c;" (goto "goto") (statement_identifier "LAB_000a1a8c") (; ";"))) (expression_statement "local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);" (assignment_expression "local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030)" (identifier "local_40") (= "=") (cast_expression "(uint **)(PTR_LAB_0018fb58 + 0x1030)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_LAB_0018fb58 + 0x1030)" (( "(") (binary_expression "PTR_LAB_0018fb58 + 0x1030" (identifier "PTR_LAB_0018fb58") (+ "+") (number_literal "0x1030")) () ")")))) (; ";")) (expression_statement "puVar6 = (uint *)0x1;" (assignment_expression "puVar6 = (uint *)0x1" (identifier "puVar6") (= "=") (cast_expression "(uint *)0x1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "FUN_00081e3c(local_30,0xffffffff,iVar15);" (call_expression "FUN_00081e3c(local_30,0xffffffff,iVar15)" (identifier "FUN_00081e3c") (argument_list "(local_30,0xffffffff,iVar15)" (( "(") (identifier "local_30") (, ",") (number_literal "0xffffffff") (, ",") (identifier "iVar15") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        puVar6 = (uint *)(puVar9[2] * iVar15);\n        (*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);\n      }" (else "else") (compound_statement "{\n        puVar6 = (uint *)(puVar9[2] * iVar15);\n        (*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);\n      }" ({ "{") (expression_statement "puVar6 = (uint *)(puVar9[2] * iVar15);" (assignment_expression "puVar6 = (uint *)(puVar9[2] * iVar15)" (identifier "puVar6") (= "=") (cast_expression "(uint *)(puVar9[2] * iVar15)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9[2] * iVar15)" (( "(") (binary_expression "puVar9[2] * iVar15" (subscript_expression "puVar9[2]" (identifier "puVar9") ([ "[") (number_literal "2") (] "]")) (* "*") (identifier "iVar15")) () ")")))) (; ";")) (expression_statement "(*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);" (call_expression "(*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fc04 + -0x6694))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0018fc04 + -0x6694)" (* "*") (cast_expression "(code *)(PTR_LAB_0018fc04 + -0x6694)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0018fc04 + -0x6694)" (( "(") (binary_expression "PTR_LAB_0018fc04 + -0x6694" (identifier "PTR_LAB_0018fc04") (+ "+") (number_literal "-0x6694")) () ")")))) () ")")) (argument_list "(local_30)" (( "(") (identifier "local_30") () ")"))) (; ";")) (} "}")))) (if_statement "if (((bVar8 & 0xfd) == 0x8d) && (puVar5 = (uint *)0x1, param_4 == (uint *)0x41)) {\n        FUN_0008efcc(local_30,0x43);\n      }\n      else {\n        puVar5 = (uint *)0x1;\n        FUN_0008efcc(local_30,(int)cVar12);\n      }" (if "if") (parenthesized_expression "(((bVar8 & 0xfd) == 0x8d) && (puVar5 = (uint *)0x1, param_4 == (uint *)0x41))" (( "(") (binary_expression "((bVar8 & 0xfd) == 0x8d) && (puVar5 = (uint *)0x1, param_4 == (uint *)0x41)" (parenthesized_expression "((bVar8 & 0xfd) == 0x8d)" (( "(") (binary_expression "(bVar8 & 0xfd) == 0x8d" (parenthesized_expression "(bVar8 & 0xfd)" (( "(") (binary_expression "bVar8 & 0xfd" (identifier "bVar8") (& "&") (number_literal "0xfd")) () ")")) (== "==") (number_literal "0x8d")) () ")")) (&& "&&") (parenthesized_expression "(puVar5 = (uint *)0x1, param_4 == (uint *)0x41)" (( "(") (comma_expression "puVar5 = (uint *)0x1, param_4 == (uint *)0x41" (assignment_expression "puVar5 = (uint *)0x1" (identifier "puVar5") (= "=") (cast_expression "(uint *)0x1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (, ",") (binary_expression "param_4 == (uint *)0x41" (identifier "param_4") (== "==") (cast_expression "(uint *)0x41" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x41")))) () ")"))) () ")")) (compound_statement "{\n        FUN_0008efcc(local_30,0x43);\n      }" ({ "{") (expression_statement "FUN_0008efcc(local_30,0x43);" (call_expression "FUN_0008efcc(local_30,0x43)" (identifier "FUN_0008efcc") (argument_list "(local_30,0x43)" (( "(") (identifier "local_30") (, ",") (number_literal "0x43") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        puVar5 = (uint *)0x1;\n        FUN_0008efcc(local_30,(int)cVar12);\n      }" (else "else") (compound_statement "{\n        puVar5 = (uint *)0x1;\n        FUN_0008efcc(local_30,(int)cVar12);\n      }" ({ "{") (expression_statement "puVar5 = (uint *)0x1;" (assignment_expression "puVar5 = (uint *)0x1" (identifier "puVar5") (= "=") (cast_expression "(uint *)0x1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "FUN_0008efcc(local_30,(int)cVar12);" (call_expression "FUN_0008efcc(local_30,(int)cVar12)" (identifier "FUN_0008efcc") (argument_list "(local_30,(int)cVar12)" (( "(") (identifier "local_30") (, ",") (cast_expression "(int)cVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar12")) () ")"))) (; ";")) (} "}")))) (if_statement "if ((*(ushort *)(local_30 + 2) & 0xc) != 0) {\n        *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n      }" (if "if") (parenthesized_expression "((*(ushort *)(local_30 + 2) & 0xc) != 0)" (( "(") (binary_expression "(*(ushort *)(local_30 + 2) & 0xc) != 0" (parenthesized_expression "(*(ushort *)(local_30 + 2) & 0xc)" (( "(") (binary_expression "*(ushort *)(local_30 + 2) & 0xc" (pointer_expression "*(ushort *)(local_30 + 2)" (* "*") (cast_expression "(ushort *)(local_30 + 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_30 + 2)" (( "(") (binary_expression "local_30 + 2" (identifier "local_30") (+ "+") (number_literal "2")) () ")")))) (& "&") (number_literal "0xc")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;\n      }" ({ "{") (expression_statement "*(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;" (assignment_expression "*(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd" (pointer_expression "*(ushort *)(local_30 + 2)" (* "*") (cast_expression "(ushort *)(local_30 + 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_30 + 2)" (( "(") (binary_expression "local_30 + 2" (identifier "local_30") (+ "+") (number_literal "2")) () ")")))) (= "=") (binary_expression "*(ushort *)(local_30 + 2) & 0xfffd" (pointer_expression "*(ushort *)(local_30 + 2)" (* "*") (cast_expression "(ushort *)(local_30 + 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_30 + 2)" (( "(") (binary_expression "local_30 + 2" (identifier "local_30") (+ "+") (number_literal "2")) () ")")))) (& "&") (number_literal "0xfffd"))) (; ";")) (} "}"))) (expression_statement "param_2 = param_3;" (assignment_expression "param_2 = param_3" (identifier "param_2") (= "=") (identifier "param_3")) (; ";")) (if_statement "if (param_3 == (uint *)0x1) {\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = FUN_00084bc0();\n      }" (if "if") (parenthesized_expression "(param_3 == (uint *)0x1)" (( "(") (binary_expression "param_3 == (uint *)0x1" (identifier "param_3") (== "==") (cast_expression "(uint *)0x1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n        uVar7 = 0;\n      }" ({ "{") (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        uVar7 = FUN_00084bc0();\n      }" (else "else") (compound_statement "{\n        uVar7 = FUN_00084bc0();\n      }" ({ "{") (expression_statement "uVar7 = FUN_00084bc0();" (assignment_expression "uVar7 = FUN_00084bc0()" (identifier "uVar7") (= "=") (call_expression "FUN_00084bc0()" (identifier "FUN_00084bc0") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\n      puVar4 = puVar9;\nLAB_000a1594:\n      puVar9 = puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) goto LAB_000a1740;\n      if (bVar8 == 0xa1) goto LAB_000a1688;\n      if (bVar8 == 0x6e) {\n        local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }\n        goto LAB_000a1a8c;\n      }\n      if (bVar8 == 0x8e) {\n        puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        puVar5 = param_3;\n        param_3 = puVar13;\n        local_30 = puVar13;\n        if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;\n        uVar7 = puVar4[2];\n        iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);\n        puVar9 = (uint *)(iVar15 + -1);\n        param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x0;\n        puVar5 = (uint *)((int)puVar9 / 2);\n        FUN_00081ac0(puVar13);\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = 0;\n        if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }\n      }\n    }" (else "else") (compound_statement "{\n      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);\n      iVar15 = 1;\n      puVar4 = puVar9;\nLAB_000a1594:\n      puVar9 = puVar4;\n      if ((bVar8 & 0xfd) == 0x8d) goto LAB_000a1740;\n      if (bVar8 == 0xa1) goto LAB_000a1688;\n      if (bVar8 == 0x6e) {\n        local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }\n        goto LAB_000a1a8c;\n      }\n      if (bVar8 == 0x8e) {\n        puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        puVar5 = param_3;\n        param_3 = puVar13;\n        local_30 = puVar13;\n        if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;\n        uVar7 = puVar4[2];\n        iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);\n        puVar9 = (uint *)(iVar15 + -1);\n        param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x0;\n        puVar5 = (uint *)((int)puVar9 / 2);\n        FUN_00081ac0(puVar13);\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = 0;\n        if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }\n      }\n    }" ({ "{") (expression_statement "puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);" (assignment_expression "puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20)" (identifier "puVar13") (= "=") (cast_expression "(uint *)(PTR_LAB_0018f958 + 0x2d20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0018f958 + 0x2d20)" (( "(") (binary_expression "PTR_LAB_0018f958 + 0x2d20" (identifier "PTR_LAB_0018f958") (+ "+") (number_literal "0x2d20")) () ")")))) (; ";")) (expression_statement "iVar15 = 1;" (assignment_expression "iVar15 = 1" (identifier "iVar15") (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar4 = puVar9;" (assignment_expression "puVar4 = puVar9" (identifier "puVar4") (= "=") (identifier "puVar9")) (; ";")) (labeled_statement "LAB_000a1594:\n      puVar9 = puVar4;" (statement_identifier "LAB_000a1594") (: ":") (expression_statement "puVar9 = puVar4;" (assignment_expression "puVar9 = puVar4" (identifier "puVar9") (= "=") (identifier "puVar4")) (; ";"))) (if_statement "if ((bVar8 & 0xfd) == 0x8d) goto LAB_000a1740;" (if "if") (parenthesized_expression "((bVar8 & 0xfd) == 0x8d)" (( "(") (binary_expression "(bVar8 & 0xfd) == 0x8d" (parenthesized_expression "(bVar8 & 0xfd)" (( "(") (binary_expression "bVar8 & 0xfd" (identifier "bVar8") (& "&") (number_literal "0xfd")) () ")")) (== "==") (number_literal "0x8d")) () ")")) (goto_statement "goto LAB_000a1740;" (goto "goto") (statement_identifier "LAB_000a1740") (; ";"))) (if_statement "if (bVar8 == 0xa1) goto LAB_000a1688;" (if "if") (parenthesized_expression "(bVar8 == 0xa1)" (( "(") (binary_expression "bVar8 == 0xa1" (identifier "bVar8") (== "==") (number_literal "0xa1")) () ")")) (goto_statement "goto LAB_000a1688;" (goto "goto") (statement_identifier "LAB_000a1688") (; ";"))) (if_statement "if (bVar8 == 0x6e) {\n        local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }\n        goto LAB_000a1a8c;\n      }" (if "if") (parenthesized_expression "(bVar8 == 0x6e)" (( "(") (binary_expression "bVar8 == 0x6e" (identifier "bVar8") (== "==") (number_literal "0x6e")) () ")")) (compound_statement "{\n        local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }\n        goto LAB_000a1a8c;\n      }" ({ "{") (expression_statement "local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);" (assignment_expression "local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1)" (identifier "local_30") (= "=") (cast_expression "(uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbbc + 0x65c8))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0018fbbc + 0x65c8)" (* "*") (cast_expression "(code *)(PTR_LAB_0018fbbc + 0x65c8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0018fbbc + 0x65c8)" (( "(") (binary_expression "PTR_LAB_0018fbbc + 0x65c8" (identifier "PTR_LAB_0018fbbc") (+ "+") (number_literal "0x65c8")) () ")")))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))))) (; ";")) (if_statement "if (local_30 != (uint *)0x0) {\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }" (if "if") (parenthesized_expression "(local_30 != (uint *)0x0)" (( "(") (binary_expression "local_30 != (uint *)0x0" (identifier "local_30") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);\n          uVar7 = 0;\n          goto LAB_000a180c;\n        }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);" (call_expression "(*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbd0 + 0x6988))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0018fbd0 + 0x6988)" (* "*") (cast_expression "(code *)(PTR_LAB_0018fbd0 + 0x6988)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0018fbd0 + 0x6988)" (( "(") (binary_expression "PTR_LAB_0018fbd0 + 0x6988" (identifier "PTR_LAB_0018fbd0") (+ "+") (number_literal "0x6988")) () ")")))) () ")")) (argument_list "(local_30)" (( "(") (identifier "local_30") () ")"))) (; ";")) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_000a180c;" (goto "goto") (statement_identifier "LAB_000a180c") (; ";")) (} "}"))) (goto_statement "goto LAB_000a1a8c;" (goto "goto") (statement_identifier "LAB_000a1a8c") (; ";")) (} "}"))) (if_statement "if (bVar8 == 0x8e) {\n        puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        puVar5 = param_3;\n        param_3 = puVar13;\n        local_30 = puVar13;\n        if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;\n        uVar7 = puVar4[2];\n        iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);\n        puVar9 = (uint *)(iVar15 + -1);\n        param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x0;\n        puVar5 = (uint *)((int)puVar9 / 2);\n        FUN_00081ac0(puVar13);\n        uVar7 = 0;\n      }\n      else {\n        uVar7 = 0;\n        if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(bVar8 == 0x8e)" (( "(") (binary_expression "bVar8 == 0x8e" (identifier "bVar8") (== "==") (number_literal "0x8e")) () ")")) (compound_statement "{\n        puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n        puVar5 = param_3;\n        param_3 = puVar13;\n        local_30 = puVar13;\n        if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;\n        uVar7 = puVar4[2];\n        iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);\n        puVar9 = (uint *)(iVar15 + -1);\n        param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);\n        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);\n        puVar6 = (uint *)0x0;\n        puVar5 = (uint *)((int)puVar9 / 2);\n        FUN_00081ac0(puVar13);\n        uVar7 = 0;\n      }" ({ "{") (expression_statement "puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);" (assignment_expression "puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1)" (identifier "puVar13") (= "=") (cast_expression "(uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbbc + 0x65c8))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0018fbbc + 0x65c8)" (* "*") (cast_expression "(code *)(PTR_LAB_0018fbbc + 0x65c8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0018fbbc + 0x65c8)" (( "(") (binary_expression "PTR_LAB_0018fbbc + 0x65c8" (identifier "PTR_LAB_0018fbbc") (+ "+") (number_literal "0x65c8")) () ")")))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))))) (; ";")) (expression_statement "puVar5 = param_3;" (assignment_expression "puVar5 = param_3" (identifier "puVar5") (= "=") (identifier "param_3")) (; ";")) (expression_statement "param_3 = puVar13;" (assignment_expression "param_3 = puVar13" (identifier "param_3") (= "=") (identifier "puVar13")) (; ";")) (expression_statement "local_30 = puVar13;" (assignment_expression "local_30 = puVar13" (identifier "local_30") (= "=") (identifier "puVar13")) (; ";")) (if_statement "if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;" (if "if") (parenthesized_expression "(puVar13 == (uint *)0x0)" (( "(") (binary_expression "puVar13 == (uint *)0x0" (identifier "puVar13") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000a1a8c;" (goto "goto") (statement_identifier "LAB_000a1a8c") (; ";"))) (expression_statement "uVar7 = puVar4[2];" (assignment_expression "uVar7 = puVar4[2]" (identifier "uVar7") (= "=") (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);" (assignment_expression "iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2)" (identifier "iVar15") (= "=") (call_expression "(*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0018fbd0 + -0x4bc8)" (* "*") (cast_expression "(code *)(PTR_LAB_0018fbd0 + -0x4bc8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0018fbd0 + -0x4bc8)" (( "(") (binary_expression "PTR_LAB_0018fbd0 + -0x4bc8" (identifier "PTR_LAB_0018fbd0") (+ "+") (number_literal "-0x4bc8")) () ")")))) () ")")) (argument_list "(uVar7 + 2)" (( "(") (binary_expression "uVar7 + 2" (identifier "uVar7") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "puVar9 = (uint *)(iVar15 + -1);" (assignment_expression "puVar9 = (uint *)(iVar15 + -1)" (identifier "puVar9") (= "=") (cast_expression "(uint *)(iVar15 + -1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + -1)" (( "(") (binary_expression "iVar15 + -1" (identifier "iVar15") (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);" (assignment_expression "param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9)" (identifier "param_2") (= "=") (cast_expression "(uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fb58 + 0x2284))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0018fb58 + 0x2284)" (* "*") (cast_expression "(code *)(PTR_LAB_0018fb58 + 0x2284)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0018fb58 + 0x2284)" (( "(") (binary_expression "PTR_LAB_0018fb58 + 0x2284" (identifier "PTR_LAB_0018fb58") (+ "+") (number_literal "0x2284")) () ")")))) () ")")) (argument_list "(param_1,uVar7 + 2,puVar9)" (( "(") (identifier "param_1") (, ",") (binary_expression "uVar7 + 2" (identifier "uVar7") (+ "+") (number_literal "2")) (, ",") (identifier "puVar9") () ")"))))) (; ";")) (expression_statement "local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);" (assignment_expression "local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030)" (identifier "local_40") (= "=") (cast_expression "(uint **)(PTR_LAB_0018fb58 + 0x1030)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_LAB_0018fb58 + 0x1030)" (( "(") (binary_expression "PTR_LAB_0018fb58 + 0x1030" (identifier "PTR_LAB_0018fb58") (+ "+") (number_literal "0x1030")) () ")")))) (; ";")) (expression_statement "puVar6 = (uint *)0x0;" (assignment_expression "puVar6 = (uint *)0x0" (identifier "puVar6") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar5 = (uint *)((int)puVar9 / 2);" (assignment_expression "puVar5 = (uint *)((int)puVar9 / 2)" (identifier "puVar5") (= "=") (cast_expression "(uint *)((int)puVar9 / 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar9 / 2)" (( "(") (binary_expression "(int)puVar9 / 2" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (/ "/") (number_literal "2")) () ")")))) (; ";")) (expression_statement "FUN_00081ac0(puVar13);" (call_expression "FUN_00081ac0(puVar13)" (identifier "FUN_00081ac0") (argument_list "(puVar13)" (( "(") (identifier "puVar13") () ")"))) (; ";")) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        uVar7 = 0;\n        if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }\n      }" (else "else") (compound_statement "{\n        uVar7 = 0;\n        if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }\n      }" ({ "{") (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (if_statement "if (bVar8 == 0x9b) {\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }" (if "if") (parenthesized_expression "(bVar8 == 0x9b)" (( "(") (binary_expression "bVar8 == 0x9b" (identifier "bVar8") (== "==") (number_literal "0x9b")) () ")")) (compound_statement "{\n          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);\n          if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }\n        }" ({ "{") (expression_statement "local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);" (assignment_expression "local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1)" (identifier "local_30") (= "=") (cast_expression "(uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbbc + 0x65c8))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0018fbbc + 0x65c8)" (* "*") (cast_expression "(code *)(PTR_LAB_0018fbbc + 0x65c8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0018fbbc + 0x65c8)" (( "(") (binary_expression "PTR_LAB_0018fbbc + 0x65c8" (identifier "PTR_LAB_0018fbbc") (+ "+") (number_literal "0x65c8")) () ")")))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))))) (; ";")) (if_statement "if (local_30 == (uint *)0x0) {\n            uVar7 = 0;\n          }\n          else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }" (if "if") (parenthesized_expression "(local_30 == (uint *)0x0)" (( "(") (binary_expression "local_30 == (uint *)0x0" (identifier "local_30") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            uVar7 = 0;\n          }" ({ "{") (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }" (else "else") (compound_statement "{\n            *(undefined2 *)(local_30 + 2) = 4;\n            cVar12 = *(char *)(puVar4[2] + 4);\n            *local_30 = 0;\n            local_30[1] = (uint)(cVar12 == '\0');\n            uVar7 = 0;\n          }" ({ "{") (expression_statement "*(undefined2 *)(local_30 + 2) = 4;" (assignment_expression "*(undefined2 *)(local_30 + 2) = 4" (pointer_expression "*(undefined2 *)(local_30 + 2)" (* "*") (cast_expression "(undefined2 *)(local_30 + 2)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_30 + 2)" (( "(") (binary_expression "local_30 + 2" (identifier "local_30") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "4")) (; ";")) (expression_statement "cVar12 = *(char *)(puVar4[2] + 4);" (assignment_expression "cVar12 = *(char *)(puVar4[2] + 4)" (identifier "cVar12") (= "=") (pointer_expression "*(char *)(puVar4[2] + 4)" (* "*") (cast_expression "(char *)(puVar4[2] + 4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4[2] + 4)" (( "(") (binary_expression "puVar4[2] + 4" (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "*local_30 = 0;" (assignment_expression "*local_30 = 0" (pointer_expression "*local_30" (* "*") (identifier "local_30")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_30[1] = (uint)(cVar12 == '\0');" (assignment_expression "local_30[1] = (uint)(cVar12 == '\0')" (subscript_expression "local_30[1]" (identifier "local_30") ([ "[") (number_literal "1") (] "]")) (= "=") (call_expression "(uint)(cVar12 == '\0')" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(cVar12 == '\0')" (( "(") (binary_expression "cVar12 == '\0'" (identifier "cVar12") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")))) (; ";")) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}"))) (} "}")))) (} "}")))) (labeled_statement "LAB_000a180c:\n    *param_5 = local_30;" (statement_identifier "LAB_000a180c") (: ":") (expression_statement "*param_5 = local_30;" (assignment_expression "*param_5 = local_30" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "local_30")) (; ";"))) (} "}")))) (labeled_statement "LAB_000a1814:\n  if (local_2c == *(undefined4 **)PTR___stack_chk_guard_0018fecc) {\n    return uVar7;\n  }" (statement_identifier "LAB_000a1814") (: ":") (if_statement "if (local_2c == *(undefined4 **)PTR___stack_chk_guard_0018fecc) {\n    return uVar7;\n  }" (if "if") (parenthesized_expression "(local_2c == *(undefined4 **)PTR___stack_chk_guard_0018fecc)" (( "(") (binary_expression "local_2c == *(undefined4 **)PTR___stack_chk_guard_0018fecc" (identifier "local_2c") (== "==") (pointer_expression "*(undefined4 **)PTR___stack_chk_guard_0018fecc" (* "*") (cast_expression "(undefined4 **)PTR___stack_chk_guard_0018fecc" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_0018fecc")))) () ")")) (compound_statement "{\n    return uVar7;\n  }" ({ "{") (return_statement "return uVar7;" (return "return") (identifier "uVar7") (; ";")) (} "}")))) (expression_statement "pcVar16 = FUN_000a1aec;" (assignment_expression "pcVar16 = FUN_000a1aec" (identifier "pcVar16") (= "=") (identifier "FUN_000a1aec")) (; ";")) (expression_statement "puVar3 = local_2c;" (assignment_expression "puVar3 = local_2c" (identifier "puVar3") (= "=") (identifier "local_2c")) (; ";")) (expression_statement "puVar14 = PTR___stack_chk_fail_0018fea0;" (assignment_expression "puVar14 = PTR___stack_chk_fail_0018fea0" (identifier "puVar14") (= "=") (identifier "PTR___stack_chk_fail_0018fea0")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_0018fea0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0018fea0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0018fea0)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0018fea0" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0018fea0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0018fea0"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uStack_58 = param_6;" (assignment_expression "uStack_58 = param_6" (identifier "uStack_58") (= "=") (identifier "param_6")) (; ";")) (expression_statement "ppuStack_64 = param_5;" (assignment_expression "ppuStack_64 = param_5" (identifier "ppuStack_64") (= "=") (identifier "param_5")) (; ";")) (expression_statement "puStack_74 = (uint *)**(undefined4 **)(puVar14 + 0xee3e0);" (assignment_expression "puStack_74 = (uint *)**(undefined4 **)(puVar14 + 0xee3e0)" (identifier "puStack_74") (= "=") (cast_expression "(uint *)**(undefined4 **)(puVar14 + 0xee3e0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(puVar14 + 0xee3e0)" (* "*") (pointer_expression "*(undefined4 **)(puVar14 + 0xee3e0)" (* "*") (cast_expression "(undefined4 **)(puVar14 + 0xee3e0)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + 0xee3e0)" (( "(") (binary_expression "puVar14 + 0xee3e0" (identifier "puVar14") (+ "+") (number_literal "0xee3e0")) () ")"))))))) (; ";")) (expression_statement "puVar4 = param_2;" (assignment_expression "puVar4 = param_2" (identifier "puVar4") (= "=") (identifier "param_2")) (; ";")) (expression_statement "puVar13 = puVar5;" (assignment_expression "puVar13 = puVar5" (identifier "puVar13") (= "=") (identifier "puVar5")) (; ";")) (expression_statement "uStack_70 = uVar7;" (assignment_expression "uStack_70 = uVar7" (identifier "uStack_70") (= "=") (identifier "uVar7")) (; ";")) (expression_statement "puStack_6c = puVar9;" (assignment_expression "puStack_6c = puVar9" (identifier "puStack_6c") (= "=") (identifier "puVar9")) (; ";")) (expression_statement "uStack_68 = param_1;" (assignment_expression "uStack_68 = param_1" (identifier "uStack_68") (= "=") (identifier "param_1")) (; ";")) (expression_statement "puStack_60 = param_3;" (assignment_expression "puStack_60 = param_3" (identifier "puStack_60") (= "=") (identifier "param_3")) (; ";")) (expression_statement "puStack_5c = param_4;" (assignment_expression "puStack_5c = param_4" (identifier "puStack_5c") (= "=") (identifier "param_4")) (; ";")) (expression_statement "pcStack_54 = pcVar16;" (assignment_expression "pcStack_54 = pcVar16" (identifier "pcStack_54") (= "=") (identifier "pcVar16")) (; ";")) (if_statement "if (param_2 == (uint *)0x0) {\n    uVar7 = 2;\n    if (puVar5 == (uint *)0x0) {\n      uVar7 = 0;\n    }\n    goto LAB_000a1b98;\n  }" (if "if") (parenthesized_expression "(param_2 == (uint *)0x0)" (( "(") (binary_expression "param_2 == (uint *)0x0" (identifier "param_2") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar7 = 2;\n    if (puVar5 == (uint *)0x0) {\n      uVar7 = 0;\n    }\n    goto LAB_000a1b98;\n  }" ({ "{") (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" (identifier "uVar7") (= "=") (number_literal "2")) (; ";")) (if_statement "if (puVar5 == (uint *)0x0) {\n      uVar7 = 0;\n    }" (if "if") (parenthesized_expression "(puVar5 == (uint *)0x0)" (( "(") (binary_expression "puVar5 == (uint *)0x0" (identifier "puVar5") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      uVar7 = 0;\n    }" ({ "{") (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (} "}"))) (goto_statement "goto LAB_000a1b98;" (goto "goto") (statement_identifier "LAB_000a1b98") (; ";")) (} "}"))) (if_statement "if (puVar5 == (uint *)0x0) {\n    uVar7 = 2;\n    goto LAB_000a1b98;\n  }" (if "if") (parenthesized_expression "(puVar5 == (uint *)0x0)" (( "(") (binary_expression "puVar5 == (uint *)0x0" (identifier "puVar5") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar7 = 2;\n    goto LAB_000a1b98;\n  }" ({ "{") (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" (identifier "uVar7") (= "=") (number_literal "2")) (; ";")) (goto_statement "goto LAB_000a1b98;" (goto "goto") (statement_identifier "LAB_000a1b98") (; ";")) (} "}"))) (if_statement "if ((puVar3 == (undefined4 *)0x0) || (*(byte *)param_2 != 0x90)) {\nLAB_000a1b58:\n    uVar10 = param_2[1];\n  }\n  else {\n    puStack_78 = (uint *)0x0;\n    puVar13 = (uint *)0x1;\n    puVar4 = puVar5;\n    FUN_000a14dc(*puVar3,puVar5,1,0x41,&puStack_78,0);\n    if (puStack_78 == (uint *)0x0) goto LAB_000a1b58;\n    puVar4 = (uint *)param_2[8];\n    (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x6628))(puVar3[2],puVar4);\n    puVar13 = (uint *)0x41;\n    iVar15 = FUN_0008f0b8(puVar3[0x36],puVar4,0x41);\n    if (iVar15 == 0) {\n      iVar15 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar15 + -0x5984))(puStack_78);\n      (*(code *)(iVar15 + -0x5984))(0);\n      uVar10 = param_2[1];\n    }\n    else {\n      if (*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==\n          '\x03') {\n        sqlite3_value_text(iVar15);\n      }\n      puVar13 = (uint *)0x0;\n      puVar4 = puStack_78;\n      uVar7 = FUN_0008ea3c(iVar15,puStack_78,0);\n      iVar2 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar2 + -0x5984))(puStack_78);\n      (*(code *)(iVar2 + -0x5984))(iVar15);\n      if (uVar7 == 0) goto LAB_000a1b98;\n      uVar10 = param_2[1];\n    }\n  }" (if "if") (parenthesized_expression "((puVar3 == (undefined4 *)0x0) || (*(byte *)param_2 != 0x90))" (( "(") (binary_expression "(puVar3 == (undefined4 *)0x0) || (*(byte *)param_2 != 0x90)" (parenthesized_expression "(puVar3 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar3 == (undefined4 *)0x0" (identifier "puVar3") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(*(byte *)param_2 != 0x90)" (( "(") (binary_expression "*(byte *)param_2 != 0x90" (pointer_expression "*(byte *)param_2" (* "*") (cast_expression "(byte *)param_2" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2"))) (!= "!=") (number_literal "0x90")) () ")"))) () ")")) (compound_statement "{\nLAB_000a1b58:\n    uVar10 = param_2[1];\n  }" ({ "{") (labeled_statement "LAB_000a1b58:\n    uVar10 = param_2[1];" (statement_identifier "LAB_000a1b58") (: ":") (expression_statement "uVar10 = param_2[1];" (assignment_expression "uVar10 = param_2[1]" (identifier "uVar10") (= "=") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (; ";"))) (} "}")) (else_clause "else {\n    puStack_78 = (uint *)0x0;\n    puVar13 = (uint *)0x1;\n    puVar4 = puVar5;\n    FUN_000a14dc(*puVar3,puVar5,1,0x41,&puStack_78,0);\n    if (puStack_78 == (uint *)0x0) goto LAB_000a1b58;\n    puVar4 = (uint *)param_2[8];\n    (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x6628))(puVar3[2],puVar4);\n    puVar13 = (uint *)0x41;\n    iVar15 = FUN_0008f0b8(puVar3[0x36],puVar4,0x41);\n    if (iVar15 == 0) {\n      iVar15 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar15 + -0x5984))(puStack_78);\n      (*(code *)(iVar15 + -0x5984))(0);\n      uVar10 = param_2[1];\n    }\n    else {\n      if (*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==\n          '\x03') {\n        sqlite3_value_text(iVar15);\n      }\n      puVar13 = (uint *)0x0;\n      puVar4 = puStack_78;\n      uVar7 = FUN_0008ea3c(iVar15,puStack_78,0);\n      iVar2 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar2 + -0x5984))(puStack_78);\n      (*(code *)(iVar2 + -0x5984))(iVar15);\n      if (uVar7 == 0) goto LAB_000a1b98;\n      uVar10 = param_2[1];\n    }\n  }" (else "else") (compound_statement "{\n    puStack_78 = (uint *)0x0;\n    puVar13 = (uint *)0x1;\n    puVar4 = puVar5;\n    FUN_000a14dc(*puVar3,puVar5,1,0x41,&puStack_78,0);\n    if (puStack_78 == (uint *)0x0) goto LAB_000a1b58;\n    puVar4 = (uint *)param_2[8];\n    (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x6628))(puVar3[2],puVar4);\n    puVar13 = (uint *)0x41;\n    iVar15 = FUN_0008f0b8(puVar3[0x36],puVar4,0x41);\n    if (iVar15 == 0) {\n      iVar15 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar15 + -0x5984))(puStack_78);\n      (*(code *)(iVar15 + -0x5984))(0);\n      uVar10 = param_2[1];\n    }\n    else {\n      if (*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==\n          '\x03') {\n        sqlite3_value_text(iVar15);\n      }\n      puVar13 = (uint *)0x0;\n      puVar4 = puStack_78;\n      uVar7 = FUN_0008ea3c(iVar15,puStack_78,0);\n      iVar2 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar2 + -0x5984))(puStack_78);\n      (*(code *)(iVar2 + -0x5984))(iVar15);\n      if (uVar7 == 0) goto LAB_000a1b98;\n      uVar10 = param_2[1];\n    }\n  }" ({ "{") (expression_statement "puStack_78 = (uint *)0x0;" (assignment_expression "puStack_78 = (uint *)0x0" (identifier "puStack_78") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar13 = (uint *)0x1;" (assignment_expression "puVar13 = (uint *)0x1" (identifier "puVar13") (= "=") (cast_expression "(uint *)0x1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "puVar4 = puVar5;" (assignment_expression "puVar4 = puVar5" (identifier "puVar4") (= "=") (identifier "puVar5")) (; ";")) (expression_statement "FUN_000a14dc(*puVar3,puVar5,1,0x41,&puStack_78,0);" (call_expression "FUN_000a14dc(*puVar3,puVar5,1,0x41,&puStack_78,0)" (identifier "FUN_000a14dc") (argument_list "(*puVar3,puVar5,1,0x41,&puStack_78,0)" (( "(") (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (, ",") (identifier "puVar5") (, ",") (number_literal "1") (, ",") (number_literal "0x41") (, ",") (pointer_expression "&puStack_78" (& "&") (identifier "puStack_78")) (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (puStack_78 == (uint *)0x0) goto LAB_000a1b58;" (if "if") (parenthesized_expression "(puStack_78 == (uint *)0x0)" (( "(") (binary_expression "puStack_78 == (uint *)0x0" (identifier "puStack_78") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000a1b58;" (goto "goto") (statement_identifier "LAB_000a1b58") (; ";"))) (expression_statement "puVar4 = (uint *)param_2[8];" (assignment_expression "puVar4 = (uint *)param_2[8]" (identifier "puVar4") (= "=") (cast_expression "(uint *)param_2[8]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[8]" (identifier "param_2") ([ "[") (number_literal "8") (] "]")))) (; ";")) (expression_statement "(*(code *)(*(int *)(puVar14 + 0xee06c) + 0x6628))(puVar3[2],puVar4);" (call_expression "(*(code *)(*(int *)(puVar14 + 0xee06c) + 0x6628))(puVar3[2],puVar4)" (parenthesized_expression "(*(code *)(*(int *)(puVar14 + 0xee06c) + 0x6628))" (( "(") (pointer_expression "*(code *)(*(int *)(puVar14 + 0xee06c) + 0x6628)" (* "*") (cast_expression "(code *)(*(int *)(puVar14 + 0xee06c) + 0x6628)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar14 + 0xee06c) + 0x6628)" (( "(") (binary_expression "*(int *)(puVar14 + 0xee06c) + 0x6628" (pointer_expression "*(int *)(puVar14 + 0xee06c)" (* "*") (cast_expression "(int *)(puVar14 + 0xee06c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 0xee06c)" (( "(") (binary_expression "puVar14 + 0xee06c" (identifier "puVar14") (+ "+") (number_literal "0xee06c")) () ")")))) (+ "+") (number_literal "0x6628")) () ")")))) () ")")) (argument_list "(puVar3[2],puVar4)" (( "(") (subscript_expression "puVar3[2]" (identifier "puVar3") ([ "[") (number_literal "2") (] "]")) (, ",") (identifier "puVar4") () ")"))) (; ";")) (expression_statement "puVar13 = (uint *)0x41;" (assignment_expression "puVar13 = (uint *)0x41" (identifier "puVar13") (= "=") (cast_expression "(uint *)0x41" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x41"))) (; ";")) (expression_statement "iVar15 = FUN_0008f0b8(puVar3[0x36],puVar4,0x41);" (assignment_expression "iVar15 = FUN_0008f0b8(puVar3[0x36],puVar4,0x41)" (identifier "iVar15") (= "=") (call_expression "FUN_0008f0b8(puVar3[0x36],puVar4,0x41)" (identifier "FUN_0008f0b8") (argument_list "(puVar3[0x36],puVar4,0x41)" (( "(") (subscript_expression "puVar3[0x36]" (identifier "puVar3") ([ "[") (number_literal "0x36") (] "]")) (, ",") (identifier "puVar4") (, ",") (number_literal "0x41") () ")")))) (; ";")) (if_statement "if (iVar15 == 0) {\n      iVar15 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar15 + -0x5984))(puStack_78);\n      (*(code *)(iVar15 + -0x5984))(0);\n      uVar10 = param_2[1];\n    }\n    else {\n      if (*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==\n          '\x03') {\n        sqlite3_value_text(iVar15);\n      }\n      puVar13 = (uint *)0x0;\n      puVar4 = puStack_78;\n      uVar7 = FUN_0008ea3c(iVar15,puStack_78,0);\n      iVar2 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar2 + -0x5984))(puStack_78);\n      (*(code *)(iVar2 + -0x5984))(iVar15);\n      if (uVar7 == 0) goto LAB_000a1b98;\n      uVar10 = param_2[1];\n    }" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar15 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar15 + -0x5984))(puStack_78);\n      (*(code *)(iVar15 + -0x5984))(0);\n      uVar10 = param_2[1];\n    }" ({ "{") (expression_statement "iVar15 = *(int *)(puVar14 + 0xee118);" (assignment_expression "iVar15 = *(int *)(puVar14 + 0xee118)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(puVar14 + 0xee118)" (* "*") (cast_expression "(int *)(puVar14 + 0xee118)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 0xee118)" (( "(") (binary_expression "puVar14 + 0xee118" (identifier "puVar14") (+ "+") (number_literal "0xee118")) () ")"))))) (; ";")) (expression_statement "(*(code *)(iVar15 + -0x5984))(puStack_78);" (call_expression "(*(code *)(iVar15 + -0x5984))(puStack_78)" (parenthesized_expression "(*(code *)(iVar15 + -0x5984))" (( "(") (pointer_expression "*(code *)(iVar15 + -0x5984)" (* "*") (cast_expression "(code *)(iVar15 + -0x5984)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + -0x5984)" (( "(") (binary_expression "iVar15 + -0x5984" (identifier "iVar15") (+ "+") (number_literal "-0x5984")) () ")")))) () ")")) (argument_list "(puStack_78)" (( "(") (identifier "puStack_78") () ")"))) (; ";")) (expression_statement "(*(code *)(iVar15 + -0x5984))(0);" (call_expression "(*(code *)(iVar15 + -0x5984))(0)" (parenthesized_expression "(*(code *)(iVar15 + -0x5984))" (( "(") (pointer_expression "*(code *)(iVar15 + -0x5984)" (* "*") (cast_expression "(code *)(iVar15 + -0x5984)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + -0x5984)" (( "(") (binary_expression "iVar15 + -0x5984" (identifier "iVar15") (+ "+") (number_literal "-0x5984")) () ")")))) () ")")) (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (expression_statement "uVar10 = param_2[1];" (assignment_expression "uVar10 = param_2[1]" (identifier "uVar10") (= "=") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n      if (*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==\n          '\x03') {\n        sqlite3_value_text(iVar15);\n      }\n      puVar13 = (uint *)0x0;\n      puVar4 = puStack_78;\n      uVar7 = FUN_0008ea3c(iVar15,puStack_78,0);\n      iVar2 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar2 + -0x5984))(puStack_78);\n      (*(code *)(iVar2 + -0x5984))(iVar15);\n      if (uVar7 == 0) goto LAB_000a1b98;\n      uVar10 = param_2[1];\n    }" (else "else") (compound_statement "{\n      if (*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==\n          '\x03') {\n        sqlite3_value_text(iVar15);\n      }\n      puVar13 = (uint *)0x0;\n      puVar4 = puStack_78;\n      uVar7 = FUN_0008ea3c(iVar15,puStack_78,0);\n      iVar2 = *(int *)(puVar14 + 0xee118);\n      (*(code *)(iVar2 + -0x5984))(puStack_78);\n      (*(code *)(iVar2 + -0x5984))(iVar15);\n      if (uVar7 == 0) goto LAB_000a1b98;\n      uVar10 = param_2[1];\n    }" ({ "{") (if_statement "if (*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==\n          '\x03') {\n        sqlite3_value_text(iVar15);\n      }" (if "if") (parenthesized_expression "(*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==\n          '\x03')" (( "(") (binary_expression "*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==\n          '\x03'" (pointer_expression "*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0)" (* "*") (cast_expression "(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0)" (( "(") (binary_expression "(*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0" (binary_expression "(*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70)" (parenthesized_expression "(*(ushort *)(iVar15 + 8) & 0x1f)" (( "(") (binary_expression "*(ushort *)(iVar15 + 8) & 0x1f" (pointer_expression "*(ushort *)(iVar15 + 8)" (* "*") (cast_expression "(ushort *)(iVar15 + 8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 8)" (( "(") (binary_expression "iVar15 + 8" (identifier "iVar15") (+ "+") (number_literal "8")) () ")")))) (& "&") (number_literal "0x1f")) () ")")) (+ "+") (pointer_expression "*(int *)(puVar14 + 0xede70)" (* "*") (cast_expression "(int *)(puVar14 + 0xede70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 0xede70)" (( "(") (binary_expression "puVar14 + 0xede70" (identifier "puVar14") (+ "+") (number_literal "0xede70")) () ")"))))) (+ "+") (number_literal "0x65d0")) () ")")))) (== "==") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) () ")")) (compound_statement "{\n        sqlite3_value_text(iVar15);\n      }" ({ "{") (expression_statement "sqlite3_value_text(iVar15);" (call_expression "sqlite3_value_text(iVar15)" (identifier "sqlite3_value_text") (argument_list "(iVar15)" (( "(") (identifier "iVar15") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar13 = (uint *)0x0;" (assignment_expression "puVar13 = (uint *)0x0" (identifier "puVar13") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar4 = puStack_78;" (assignment_expression "puVar4 = puStack_78" (identifier "puVar4") (= "=") (identifier "puStack_78")) (; ";")) (expression_statement "uVar7 = FUN_0008ea3c(iVar15,puStack_78,0);" (assignment_expression "uVar7 = FUN_0008ea3c(iVar15,puStack_78,0)" (identifier "uVar7") (= "=") (call_expression "FUN_0008ea3c(iVar15,puStack_78,0)" (identifier "FUN_0008ea3c") (argument_list "(iVar15,puStack_78,0)" (( "(") (identifier "iVar15") (, ",") (identifier "puStack_78") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "iVar2 = *(int *)(puVar14 + 0xee118);" (assignment_expression "iVar2 = *(int *)(puVar14 + 0xee118)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(puVar14 + 0xee118)" (* "*") (cast_expression "(int *)(puVar14 + 0xee118)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 0xee118)" (( "(") (binary_expression "puVar14 + 0xee118" (identifier "puVar14") (+ "+") (number_literal "0xee118")) () ")"))))) (; ";")) (expression_statement "(*(code *)(iVar2 + -0x5984))(puStack_78);" (call_expression "(*(code *)(iVar2 + -0x5984))(puStack_78)" (parenthesized_expression "(*(code *)(iVar2 + -0x5984))" (( "(") (pointer_expression "*(code *)(iVar2 + -0x5984)" (* "*") (cast_expression "(code *)(iVar2 + -0x5984)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + -0x5984)" (( "(") (binary_expression "iVar2 + -0x5984" (identifier "iVar2") (+ "+") (number_literal "-0x5984")) () ")")))) () ")")) (argument_list "(puStack_78)" (( "(") (identifier "puStack_78") () ")"))) (; ";")) (expression_statement "(*(code *)(iVar2 + -0x5984))(iVar15);" (call_expression "(*(code *)(iVar2 + -0x5984))(iVar15)" (parenthesized_expression "(*(code *)(iVar2 + -0x5984))" (( "(") (pointer_expression "*(code *)(iVar2 + -0x5984)" (* "*") (cast_expression "(code *)(iVar2 + -0x5984)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + -0x5984)" (( "(") (binary_expression "iVar2 + -0x5984" (identifier "iVar2") (+ "+") (number_literal "-0x5984")) () ")")))) () ")")) (argument_list "(iVar15)" (( "(") (identifier "iVar15") () ")"))) (; ";")) (if_statement "if (uVar7 == 0) goto LAB_000a1b98;" (if "if") (parenthesized_expression "(uVar7 == 0)" (( "(") (binary_expression "uVar7 == 0" (identifier "uVar7") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000a1b98;" (goto "goto") (statement_identifier "LAB_000a1b98") (; ";"))) (expression_statement "uVar10 = param_2[1];" (assignment_expression "uVar10 = param_2[1]" (identifier "uVar10") (= "=") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}")))) (} "}")))) (expression_statement "uVar11 = uVar10 | puVar5[1];" (assignment_expression "uVar11 = uVar10 | puVar5[1]" (identifier "uVar11") (= "=") (binary_expression "uVar10 | puVar5[1]" (identifier "uVar10") (| "|") (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")))) (; ";")) (if_statement "if ((uVar11 & 0x400) != 0) {\n    uVar7 = 2;\n    if (((uVar10 & puVar5[1] & 0x400) != 0) && (uVar7 = 2, param_2[2] == puVar5[2])) {\n      uVar7 = 0;\n    }\n    goto LAB_000a1b98;\n  }" (if "if") (parenthesized_expression "((uVar11 & 0x400) != 0)" (( "(") (binary_expression "(uVar11 & 0x400) != 0" (parenthesized_expression "(uVar11 & 0x400)" (( "(") (binary_expression "uVar11 & 0x400" (identifier "uVar11") (& "&") (number_literal "0x400")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar7 = 2;\n    if (((uVar10 & puVar5[1] & 0x400) != 0) && (uVar7 = 2, param_2[2] == puVar5[2])) {\n      uVar7 = 0;\n    }\n    goto LAB_000a1b98;\n  }" ({ "{") (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" (identifier "uVar7") (= "=") (number_literal "2")) (; ";")) (if_statement "if (((uVar10 & puVar5[1] & 0x400) != 0) && (uVar7 = 2, param_2[2] == puVar5[2])) {\n      uVar7 = 0;\n    }" (if "if") (parenthesized_expression "(((uVar10 & puVar5[1] & 0x400) != 0) && (uVar7 = 2, param_2[2] == puVar5[2]))" (( "(") (binary_expression "((uVar10 & puVar5[1] & 0x400) != 0) && (uVar7 = 2, param_2[2] == puVar5[2])" (parenthesized_expression "((uVar10 & puVar5[1] & 0x400) != 0)" (( "(") (binary_expression "(uVar10 & puVar5[1] & 0x400) != 0" (parenthesized_expression "(uVar10 & puVar5[1] & 0x400)" (( "(") (binary_expression "uVar10 & puVar5[1] & 0x400" (binary_expression "uVar10 & puVar5[1]" (identifier "uVar10") (& "&") (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]"))) (& "&") (number_literal "0x400")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar7 = 2, param_2[2] == puVar5[2])" (( "(") (comma_expression "uVar7 = 2, param_2[2] == puVar5[2]" (assignment_expression "uVar7 = 2" (identifier "uVar7") (= "=") (number_literal "2")) (, ",") (binary_expression "param_2[2] == puVar5[2]" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (== "==") (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")))) () ")"))) () ")")) (compound_statement "{\n      uVar7 = 0;\n    }" ({ "{") (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (} "}"))) (goto_statement "goto LAB_000a1b98;" (goto "goto") (statement_identifier "LAB_000a1b98") (; ";")) (} "}"))) (expression_statement "bVar8 = *(byte *)param_2;" (assignment_expression "bVar8 = *(byte *)param_2" (identifier "bVar8") (= "=") (pointer_expression "*(byte *)param_2" (* "*") (cast_expression "(byte *)param_2" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2")))) (; ";")) (if_statement "if (*(byte *)puVar5 == bVar8) {\n    if (bVar8 != 0x47) {\n      if (((bVar8 != 0x9e) && (bVar8 != 0xa0)) && (param_2[2] != 0)) {\n        if (bVar8 == 0x9d) {\n          puVar4 = (uint *)puVar5[2];\n          iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();\n          if (iVar15 != 0) {\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }\n          if ((int)(uVar10 << 7) < 0) {\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n        else {\n          if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }\n          if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n      }\n      if (((param_2[1] ^ puVar5[1]) & 0x10) == 0) {\n        if ((uVar11 & 0x4000) == 0) {\n          if ((uVar11 & 0x800) == 0) {\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }\n          else {\n            uVar7 = 2;\n          }\n        }\n        else {\n          uVar7 = 0;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      goto LAB_000a1b98;\n    }\n  }\n  else if (bVar8 == 0x66) {\n    puVar4 = (uint *)param_2[3];\n    puVar13 = puVar5;\n    iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5,puVar6);\n    if (iVar15 < 2) {\n      uVar7 = 1;\n      goto LAB_000a1b98;\n    }\n  }" (if "if") (parenthesized_expression "(*(byte *)puVar5 == bVar8)" (( "(") (binary_expression "*(byte *)puVar5 == bVar8" (pointer_expression "*(byte *)puVar5" (* "*") (cast_expression "(byte *)puVar5" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar5"))) (== "==") (identifier "bVar8")) () ")")) (compound_statement "{\n    if (bVar8 != 0x47) {\n      if (((bVar8 != 0x9e) && (bVar8 != 0xa0)) && (param_2[2] != 0)) {\n        if (bVar8 == 0x9d) {\n          puVar4 = (uint *)puVar5[2];\n          iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();\n          if (iVar15 != 0) {\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }\n          if ((int)(uVar10 << 7) < 0) {\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n        else {\n          if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }\n          if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n      }\n      if (((param_2[1] ^ puVar5[1]) & 0x10) == 0) {\n        if ((uVar11 & 0x4000) == 0) {\n          if ((uVar11 & 0x800) == 0) {\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }\n          else {\n            uVar7 = 2;\n          }\n        }\n        else {\n          uVar7 = 0;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      goto LAB_000a1b98;\n    }\n  }" ({ "{") (if_statement "if (bVar8 != 0x47) {\n      if (((bVar8 != 0x9e) && (bVar8 != 0xa0)) && (param_2[2] != 0)) {\n        if (bVar8 == 0x9d) {\n          puVar4 = (uint *)puVar5[2];\n          iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();\n          if (iVar15 != 0) {\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }\n          if ((int)(uVar10 << 7) < 0) {\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n        else {\n          if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }\n          if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n      }\n      if (((param_2[1] ^ puVar5[1]) & 0x10) == 0) {\n        if ((uVar11 & 0x4000) == 0) {\n          if ((uVar11 & 0x800) == 0) {\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }\n          else {\n            uVar7 = 2;\n          }\n        }\n        else {\n          uVar7 = 0;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      goto LAB_000a1b98;\n    }" (if "if") (parenthesized_expression "(bVar8 != 0x47)" (( "(") (binary_expression "bVar8 != 0x47" (identifier "bVar8") (!= "!=") (number_literal "0x47")) () ")")) (compound_statement "{\n      if (((bVar8 != 0x9e) && (bVar8 != 0xa0)) && (param_2[2] != 0)) {\n        if (bVar8 == 0x9d) {\n          puVar4 = (uint *)puVar5[2];\n          iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();\n          if (iVar15 != 0) {\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }\n          if ((int)(uVar10 << 7) < 0) {\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n        else {\n          if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }\n          if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n      }\n      if (((param_2[1] ^ puVar5[1]) & 0x10) == 0) {\n        if ((uVar11 & 0x4000) == 0) {\n          if ((uVar11 & 0x800) == 0) {\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }\n          else {\n            uVar7 = 2;\n          }\n        }\n        else {\n          uVar7 = 0;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }\n      goto LAB_000a1b98;\n    }" ({ "{") (if_statement "if (((bVar8 != 0x9e) && (bVar8 != 0xa0)) && (param_2[2] != 0)) {\n        if (bVar8 == 0x9d) {\n          puVar4 = (uint *)puVar5[2];\n          iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();\n          if (iVar15 != 0) {\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }\n          if ((int)(uVar10 << 7) < 0) {\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n        else {\n          if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }\n          if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "(((bVar8 != 0x9e) && (bVar8 != 0xa0)) && (param_2[2] != 0))" (( "(") (binary_expression "((bVar8 != 0x9e) && (bVar8 != 0xa0)) && (param_2[2] != 0)" (parenthesized_expression "((bVar8 != 0x9e) && (bVar8 != 0xa0))" (( "(") (binary_expression "(bVar8 != 0x9e) && (bVar8 != 0xa0)" (parenthesized_expression "(bVar8 != 0x9e)" (( "(") (binary_expression "bVar8 != 0x9e" (identifier "bVar8") (!= "!=") (number_literal "0x9e")) () ")")) (&& "&&") (parenthesized_expression "(bVar8 != 0xa0)" (( "(") (binary_expression "bVar8 != 0xa0" (identifier "bVar8") (!= "!=") (number_literal "0xa0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(param_2[2] != 0)" (( "(") (binary_expression "param_2[2] != 0" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        if (bVar8 == 0x9d) {\n          puVar4 = (uint *)puVar5[2];\n          iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();\n          if (iVar15 != 0) {\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }\n          if ((int)(uVar10 << 7) < 0) {\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n        else {\n          if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }\n          if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n      }" ({ "{") (if_statement "if (bVar8 == 0x9d) {\n          puVar4 = (uint *)puVar5[2];\n          iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();\n          if (iVar15 != 0) {\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }\n          if ((int)(uVar10 << 7) < 0) {\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }\n        else {\n          if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }\n          if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(bVar8 == 0x9d)" (( "(") (binary_expression "bVar8 == 0x9d" (identifier "bVar8") (== "==") (number_literal "0x9d")) () ")")) (compound_statement "{\n          puVar4 = (uint *)puVar5[2];\n          iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();\n          if (iVar15 != 0) {\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }\n          if ((int)(uVar10 << 7) < 0) {\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }" ({ "{") (expression_statement "puVar4 = (uint *)puVar5[2];" (assignment_expression "puVar4 = (uint *)puVar5[2]" (identifier "puVar4") (= "=") (cast_expression "(uint *)puVar5[2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();" (assignment_expression "iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))()" (identifier "iVar15") (= "=") (call_expression "(*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))()" (parenthesized_expression "(*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))" (( "(") (pointer_expression "*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4)" (* "*") (cast_expression "(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar14 + 0xee06c) + 0x17e4)" (( "(") (binary_expression "*(int *)(puVar14 + 0xee06c) + 0x17e4" (pointer_expression "*(int *)(puVar14 + 0xee06c)" (* "*") (cast_expression "(int *)(puVar14 + 0xee06c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 0xee06c)" (( "(") (binary_expression "puVar14 + 0xee06c" (identifier "puVar14") (+ "+") (number_literal "0xee06c")) () ")")))) (+ "+") (number_literal "0x17e4")) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar15 != 0) {\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }" (if "if") (parenthesized_expression "(iVar15 != 0)" (( "(") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar7 = 2;\n            goto LAB_000a1b98;\n          }" ({ "{") (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" (identifier "uVar7") (= "=") (number_literal "2")) (; ";")) (goto_statement "goto LAB_000a1b98;" (goto "goto") (statement_identifier "LAB_000a1b98") (; ";")) (} "}"))) (if_statement "if ((int)(uVar10 << 7) < 0) {\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }" (if "if") (parenthesized_expression "((int)(uVar10 << 7) < 0)" (( "(") (binary_expression "(int)(uVar10 << 7) < 0" (cast_expression "(int)(uVar10 << 7)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar10 << 7)" (( "(") (binary_expression "uVar10 << 7" (identifier "uVar10") (<< "<<") (number_literal "7")) () ")"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            puVar13 = (uint *)puVar5[0xc];\n            puVar4 = (uint *)param_2[0xc];\n            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }" ({ "{") (expression_statement "puVar13 = (uint *)puVar5[0xc];" (assignment_expression "puVar13 = (uint *)puVar5[0xc]" (identifier "puVar13") (= "=") (cast_expression "(uint *)puVar5[0xc]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar5[0xc]" (identifier "puVar5") ([ "[") (number_literal "0xc") (] "]")))) (; ";")) (expression_statement "puVar4 = (uint *)param_2[0xc];" (assignment_expression "puVar4 = (uint *)param_2[0xc]" (identifier "puVar4") (= "=") (cast_expression "(uint *)param_2[0xc]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[0xc]" (identifier "param_2") ([ "[") (number_literal "0xc") (] "]")))) (; ";")) (expression_statement "iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);" (assignment_expression "iVar15 = FUN_000a2138(puVar3,puVar4,puVar13)" (identifier "iVar15") (= "=") (call_expression "FUN_000a2138(puVar3,puVar4,puVar13)" (identifier "FUN_000a2138") (argument_list "(puVar3,puVar4,puVar13)" (( "(") (identifier "puVar3") (, ",") (identifier "puVar4") (, ",") (identifier "puVar13") () ")")))) (; ";")) (if_statement "if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }" (if "if") (parenthesized_expression "(iVar15 != 0)" (( "(") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }" ({ "{") (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" (identifier "uVar7") (= "=") (number_literal "2")) (; ";")) (goto_statement "goto LAB_000a1b98;" (goto "goto") (statement_identifier "LAB_000a1b98") (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n          if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }\n          if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }" (else "else") (compound_statement "{\n          if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }\n          if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n        }" ({ "{") (if_statement "if (bVar8 == 0x6e) {\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }" (if "if") (parenthesized_expression "(bVar8 == 0x6e)" (( "(") (binary_expression "bVar8 == 0x6e" (identifier "bVar8") (== "==") (number_literal "0x6e")) () ")")) (compound_statement "{\n            uVar7 = 0;\n            goto LAB_000a1b98;\n          }" ({ "{") (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_000a1b98;" (goto "goto") (statement_identifier "LAB_000a1b98") (; ";")) (} "}"))) (if_statement "if (bVar8 == 0x66) {\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }\n          else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }" (if "if") (parenthesized_expression "(bVar8 == 0x66)" (( "(") (binary_expression "bVar8 == 0x66" (identifier "bVar8") (== "==") (number_literal "0x66")) () ")")) (compound_statement "{\n            puVar4 = (uint *)puVar5[2];\n            iVar15 = (**(code **)(puVar14 + 0xedf44))();\n            if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }" ({ "{") (expression_statement "puVar4 = (uint *)puVar5[2];" (assignment_expression "puVar4 = (uint *)puVar5[2]" (identifier "puVar4") (= "=") (cast_expression "(uint *)puVar5[2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "iVar15 = (**(code **)(puVar14 + 0xedf44))();" (assignment_expression "iVar15 = (**(code **)(puVar14 + 0xedf44))()" (identifier "iVar15") (= "=") (call_expression "(**(code **)(puVar14 + 0xedf44))()" (parenthesized_expression "(**(code **)(puVar14 + 0xedf44))" (( "(") (pointer_expression "**(code **)(puVar14 + 0xedf44)" (* "*") (pointer_expression "*(code **)(puVar14 + 0xedf44)" (* "*") (cast_expression "(code **)(puVar14 + 0xedf44)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + 0xedf44)" (( "(") (binary_expression "puVar14 + 0xedf44" (identifier "puVar14") (+ "+") (number_literal "0xedf44")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar15 != 0) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }" (if "if") (parenthesized_expression "(iVar15 != 0)" (( "(") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }" ({ "{") (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" (identifier "uVar7") (= "=") (number_literal "2")) (; ";")) (goto_statement "goto LAB_000a1b98;" (goto "goto") (statement_identifier "LAB_000a1b98") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }" (else "else") (compound_statement "{\n            puVar4 = (uint *)puVar5[2];\n            if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }\n          }" ({ "{") (expression_statement "puVar4 = (uint *)puVar5[2];" (assignment_expression "puVar4 = (uint *)puVar5[2]" (identifier "puVar4") (= "=") (cast_expression "(uint *)puVar5[2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")))) (; ";")) (if_statement "if ((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }" (if "if") (parenthesized_expression "((puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0))" (( "(") (binary_expression "(puVar4 != (uint *)0x0) &&\n               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)" (parenthesized_expression "(puVar4 != (uint *)0x0)" (( "(") (binary_expression "puVar4 != (uint *)0x0" (identifier "puVar4") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)" (( "(") (comma_expression "iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0" (assignment_expression "iVar15 = (**(code **)(puVar14 + 0xee420))()" (identifier "iVar15") (= "=") (call_expression "(**(code **)(puVar14 + 0xee420))()" (parenthesized_expression "(**(code **)(puVar14 + 0xee420))" (( "(") (pointer_expression "**(code **)(puVar14 + 0xee420)" (* "*") (pointer_expression "*(code **)(puVar14 + 0xee420)" (* "*") (cast_expression "(code **)(puVar14 + 0xee420)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + 0xee420)" (( "(") (binary_expression "puVar14 + 0xee420" (identifier "puVar14") (+ "+") (number_literal "0xee420")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n              uVar7 = 2;\n              goto LAB_000a1b98;\n            }" ({ "{") (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" (identifier "uVar7") (= "=") (number_literal "2")) (; ";")) (goto_statement "goto LAB_000a1b98;" (goto "goto") (statement_identifier "LAB_000a1b98") (; ";")) (} "}"))) (} "}")))) (} "}")))) (} "}"))) (if_statement "if (((param_2[1] ^ puVar5[1]) & 0x10) == 0) {\n        if ((uVar11 & 0x4000) == 0) {\n          if ((uVar11 & 0x800) == 0) {\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }\n          else {\n            uVar7 = 2;\n          }\n        }\n        else {\n          uVar7 = 0;\n        }\n      }\n      else {\n        uVar7 = 2;\n      }" (if "if") (parenthesized_expression "(((param_2[1] ^ puVar5[1]) & 0x10) == 0)" (( "(") (binary_expression "((param_2[1] ^ puVar5[1]) & 0x10) == 0" (parenthesized_expression "((param_2[1] ^ puVar5[1]) & 0x10)" (( "(") (binary_expression "(param_2[1] ^ puVar5[1]) & 0x10" (parenthesized_expression "(param_2[1] ^ puVar5[1])" (( "(") (binary_expression "param_2[1] ^ puVar5[1]" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (^ "^") (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]"))) () ")")) (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if ((uVar11 & 0x4000) == 0) {\n          if ((uVar11 & 0x800) == 0) {\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }\n          else {\n            uVar7 = 2;\n          }\n        }\n        else {\n          uVar7 = 0;\n        }\n      }" ({ "{") (if_statement "if ((uVar11 & 0x4000) == 0) {\n          if ((uVar11 & 0x800) == 0) {\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }\n          else {\n            uVar7 = 2;\n          }\n        }\n        else {\n          uVar7 = 0;\n        }" (if "if") (parenthesized_expression "((uVar11 & 0x4000) == 0)" (( "(") (binary_expression "(uVar11 & 0x4000) == 0" (parenthesized_expression "(uVar11 & 0x4000)" (( "(") (binary_expression "uVar11 & 0x4000" (identifier "uVar11") (& "&") (number_literal "0x4000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if ((uVar11 & 0x800) == 0) {\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }\n          else {\n            uVar7 = 2;\n          }\n        }" ({ "{") (if_statement "if ((uVar11 & 0x800) == 0) {\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }\n          else {\n            uVar7 = 2;\n          }" (if "if") (parenthesized_expression "((uVar11 & 0x800) == 0)" (( "(") (binary_expression "(uVar11 & 0x800) == 0" (parenthesized_expression "(uVar11 & 0x800)" (( "(") (binary_expression "uVar11 & 0x800" (identifier "uVar11") (& "&") (number_literal "0x800")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }\n            puVar4 = (uint *)param_2[4];\n            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);\n            puVar13 = puVar6;\n            if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }\n          }" ({ "{") (if_statement "if ((uVar11 & 8) == 0) {\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }" (if "if") (parenthesized_expression "((uVar11 & 8) == 0)" (( "(") (binary_expression "(uVar11 & 8) == 0" (parenthesized_expression "(uVar11 & 8)" (( "(") (binary_expression "uVar11 & 8" (identifier "uVar11") (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              puVar13 = (uint *)puVar5[3];\n              puVar4 = (uint *)param_2[3];\n              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);\n              if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }\n            }" ({ "{") (expression_statement "puVar13 = (uint *)puVar5[3];" (assignment_expression "puVar13 = (uint *)puVar5[3]" (identifier "puVar13") (= "=") (cast_expression "(uint *)puVar5[3]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "puVar4 = (uint *)param_2[3];" (assignment_expression "puVar4 = (uint *)param_2[3]" (identifier "puVar4") (= "=") (cast_expression "(uint *)param_2[3]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);" (assignment_expression "iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6)" (identifier "iVar15") (= "=") (call_expression "FUN_000a1aec(puVar3,puVar4,puVar13,puVar6)" (identifier "FUN_000a1aec") (argument_list "(puVar3,puVar4,puVar13,puVar6)" (( "(") (identifier "puVar3") (, ",") (identifier "puVar4") (, ",") (identifier "puVar13") (, ",") (identifier "puVar6") () ")")))) (; ";")) (if_statement "if (iVar15 != 0) {\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }" (if "if") (parenthesized_expression "(iVar15 != 0)" (( "(") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                uVar7 = 2;\n                goto LAB_000a1b98;\n              }" ({ "{") (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" (identifier "uVar7") (= "=") (number_literal "2")) (; ";")) (goto_statement "goto LAB_000a1b98;" (goto "goto") (statement_identifier "LAB_000a1b98") (; ";")) (} "}"))) (} "}"))) (expression_statement "puVar4 = (uint *)param_2[4];" (assignment_expression "puVar4 = (uint *)param_2[4]" (identifier "puVar4") (= "=") (cast_expression "(uint *)param_2[4]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]")))) (; ";")) (expression_statement "iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);" (assignment_expression "iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6)" (identifier "iVar15") (= "=") (call_expression "FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6)" (identifier "FUN_000a1aec") (argument_list "(puVar3,puVar4,puVar5[4],puVar6)" (( "(") (identifier "puVar3") (, ",") (identifier "puVar4") (, ",") (subscript_expression "puVar5[4]" (identifier "puVar5") ([ "[") (number_literal "4") (] "]")) (, ",") (identifier "puVar6") () ")")))) (; ";")) (expression_statement "puVar13 = puVar6;" (assignment_expression "puVar13 = puVar6" (identifier "puVar13") (= "=") (identifier "puVar6")) (; ";")) (if_statement "if (iVar15 == 0) {\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }\n            else {\n              uVar7 = 2;\n            }" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              puVar4 = (uint *)puVar5[5];\n              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);\n              if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }\n            }" ({ "{") (expression_statement "puVar4 = (uint *)puVar5[5];" (assignment_expression "puVar4 = (uint *)puVar5[5]" (identifier "puVar4") (= "=") (cast_expression "(uint *)puVar5[5]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar5[5]" (identifier "puVar5") ([ "[") (number_literal "5") (] "]")))) (; ";")) (expression_statement "iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);" (assignment_expression "iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6)" (identifier "iVar15") (= "=") (call_expression "FUN_000a2010(param_2[5],puVar4,puVar6)" (identifier "FUN_000a2010") (argument_list "(param_2[5],puVar4,puVar6)" (( "(") (subscript_expression "param_2[5]" (identifier "param_2") ([ "[") (number_literal "5") (] "]")) (, ",") (identifier "puVar4") (, ",") (identifier "puVar6") () ")")))) (; ";")) (if_statement "if (iVar15 == 0) {\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }\n              else {\n                uVar7 = 2;\n              }" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                uVar7 = 0;\n                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }\n              }" ({ "{") (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (if_statement "if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)) {\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }" (if "if") (parenthesized_expression "(((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0))" (( "(") (binary_expression "((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&\n                   ((uVar11 & 0x2000) == 0)" (parenthesized_expression "((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b))" (( "(") (binary_expression "(*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)" (parenthesized_expression "(*(byte *)param_2 != 0x6a)" (( "(") (binary_expression "*(byte *)param_2 != 0x6a" (pointer_expression "*(byte *)param_2" (* "*") (cast_expression "(byte *)param_2" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2"))) (!= "!=") (number_literal "0x6a")) () ")")) (&& "&&") (parenthesized_expression "(*(byte *)param_2 != 0x9b)" (( "(") (binary_expression "*(byte *)param_2 != 0x9b" (pointer_expression "*(byte *)param_2" (* "*") (cast_expression "(byte *)param_2" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2"))) (!= "!=") (number_literal "0x9b")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((uVar11 & 0x2000) == 0)" (( "(") (binary_expression "(uVar11 & 0x2000) == 0" (parenthesized_expression "(uVar11 & 0x2000)" (( "(") (binary_expression "uVar11 & 0x2000" (identifier "uVar11") (& "&") (number_literal "0x2000")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                  if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }\n                }" ({ "{") (if_statement "if (param_2[8] == puVar5[8]) {\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }\n                  else {\n                    uVar7 = 2;\n                  }" (if "if") (parenthesized_expression "(param_2[8] == puVar5[8])" (( "(") (binary_expression "param_2[8] == puVar5[8]" (subscript_expression "param_2[8]" (identifier "param_2") ([ "[") (number_literal "8") (] "]")) (== "==") (subscript_expression "puVar5[8]" (identifier "puVar5") ([ "[") (number_literal "8") (] "]"))) () ")")) (compound_statement "{\n                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }\n                  }" ({ "{") (if_statement "if ((uint *)param_2[7] != (uint *)puVar5[7]) {\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }" (if "if") (parenthesized_expression "((uint *)param_2[7] != (uint *)puVar5[7])" (( "(") (binary_expression "(uint *)param_2[7] != (uint *)puVar5[7]" (cast_expression "(uint *)param_2[7]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) (!= "!=") (cast_expression "(uint *)puVar5[7]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar5[7]" (identifier "puVar5") ([ "[") (number_literal "7") (] "]")))) () ")")) (compound_statement "{\n                      if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }\n                    }" ({ "{") (if_statement "if ((uint *)param_2[7] == puVar6) {\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }\n                      else {\n                        uVar7 = 2;\n                      }" (if "if") (parenthesized_expression "((uint *)param_2[7] == puVar6)" (( "(") (binary_expression "(uint *)param_2[7] == puVar6" (cast_expression "(uint *)param_2[7]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) (== "==") (identifier "puVar6")) () ")")) (compound_statement "{\n                        if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }\n                      }" ({ "{") (if_statement "if (-1 < (int)puVar5[7]) {\n                          uVar7 = 2;\n                        }" (if "if") (parenthesized_expression "(-1 < (int)puVar5[7])" (( "(") (binary_expression "-1 < (int)puVar5[7]" (number_literal "-1") (< "<") (cast_expression "(int)puVar5[7]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "puVar5[7]" (identifier "puVar5") ([ "[") (number_literal "7") (] "]")))) () ")")) (compound_statement "{\n                          uVar7 = 2;\n                        }" ({ "{") (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" (identifier "uVar7") (= "=") (number_literal "2")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                        uVar7 = 2;\n                      }" (else "else") (compound_statement "{\n                        uVar7 = 2;\n                      }" ({ "{") (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" (identifier "uVar7") (= "=") (number_literal "2")) (; ";")) (} "}")))) (} "}"))) (} "}")) (else_clause "else {\n                    uVar7 = 2;\n                  }" (else "else") (compound_statement "{\n                    uVar7 = 2;\n                  }" ({ "{") (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" (identifier "uVar7") (= "=") (number_literal "2")) (; ";")) (} "}")))) (} "}"))) (} "}")) (else_clause "else {\n                uVar7 = 2;\n              }" (else "else") (compound_statement "{\n                uVar7 = 2;\n              }" ({ "{") (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" (identifier "uVar7") (= "=") (number_literal "2")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n              uVar7 = 2;\n            }" (else "else") (compound_statement "{\n              uVar7 = 2;\n            }" ({ "{") (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" (identifier "uVar7") (= "=") (number_literal "2")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n            uVar7 = 2;\n          }" (else "else") (compound_statement "{\n            uVar7 = 2;\n          }" ({ "{") (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" (identifier "uVar7") (= "=") (number_literal "2")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          uVar7 = 0;\n        }" (else "else") (compound_statement "{\n          uVar7 = 0;\n        }" ({ "{") (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        uVar7 = 2;\n      }" (else "else") (compound_statement "{\n        uVar7 = 2;\n      }" ({ "{") (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" (identifier "uVar7") (= "=") (number_literal "2")) (; ";")) (} "}")))) (goto_statement "goto LAB_000a1b98;" (goto "goto") (statement_identifier "LAB_000a1b98") (; ";")) (} "}"))) (} "}")) (else_clause "else if (bVar8 == 0x66) {\n    puVar4 = (uint *)param_2[3];\n    puVar13 = puVar5;\n    iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5,puVar6);\n    if (iVar15 < 2) {\n      uVar7 = 1;\n      goto LAB_000a1b98;\n    }\n  }" (else "else") (if_statement "if (bVar8 == 0x66) {\n    puVar4 = (uint *)param_2[3];\n    puVar13 = puVar5;\n    iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5,puVar6);\n    if (iVar15 < 2) {\n      uVar7 = 1;\n      goto LAB_000a1b98;\n    }\n  }" (if "if") (parenthesized_expression "(bVar8 == 0x66)" (( "(") (binary_expression "bVar8 == 0x66" (identifier "bVar8") (== "==") (number_literal "0x66")) () ")")) (compound_statement "{\n    puVar4 = (uint *)param_2[3];\n    puVar13 = puVar5;\n    iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5,puVar6);\n    if (iVar15 < 2) {\n      uVar7 = 1;\n      goto LAB_000a1b98;\n    }\n  }" ({ "{") (expression_statement "puVar4 = (uint *)param_2[3];" (assignment_expression "puVar4 = (uint *)param_2[3]" (identifier "puVar4") (= "=") (cast_expression "(uint *)param_2[3]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "puVar13 = puVar5;" (assignment_expression "puVar13 = puVar5" (identifier "puVar13") (= "=") (identifier "puVar5")) (; ";")) (expression_statement "iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5,puVar6);" (assignment_expression "iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5,puVar6)" (identifier "iVar15") (= "=") (call_expression "FUN_000a1aec(puVar3,puVar4,puVar5,puVar6)" (identifier "FUN_000a1aec") (argument_list "(puVar3,puVar4,puVar5,puVar6)" (( "(") (identifier "puVar3") (, ",") (identifier "puVar4") (, ",") (identifier "puVar5") (, ",") (identifier "puVar6") () ")")))) (; ";")) (if_statement "if (iVar15 < 2) {\n      uVar7 = 1;\n      goto LAB_000a1b98;\n    }" (if "if") (parenthesized_expression "(iVar15 < 2)" (( "(") (binary_expression "iVar15 < 2" (identifier "iVar15") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n      uVar7 = 1;\n      goto LAB_000a1b98;\n    }" ({ "{") (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_000a1b98;" (goto "goto") (statement_identifier "LAB_000a1b98") (; ";")) (} "}"))) (} "}"))))) (if_statement "if (*(byte *)puVar5 == 0x66) {\n    puVar13 = (uint *)puVar5[3];\n    iVar15 = FUN_000a1aec(puVar3,param_2,puVar13,puVar6);\n    uVar7 = 2;\n    puVar4 = param_2;\n    if (iVar15 < 2) {\n      uVar7 = 1;\n    }\n  }\n  else {\n    uVar7 = 2;\n    puVar4 = param_2;\n  }" (if "if") (parenthesized_expression "(*(byte *)puVar5 == 0x66)" (( "(") (binary_expression "*(byte *)puVar5 == 0x66" (pointer_expression "*(byte *)puVar5" (* "*") (cast_expression "(byte *)puVar5" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar5"))) (== "==") (number_literal "0x66")) () ")")) (compound_statement "{\n    puVar13 = (uint *)puVar5[3];\n    iVar15 = FUN_000a1aec(puVar3,param_2,puVar13,puVar6);\n    uVar7 = 2;\n    puVar4 = param_2;\n    if (iVar15 < 2) {\n      uVar7 = 1;\n    }\n  }" ({ "{") (expression_statement "puVar13 = (uint *)puVar5[3];" (assignment_expression "puVar13 = (uint *)puVar5[3]" (identifier "puVar13") (= "=") (cast_expression "(uint *)puVar5[3]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "iVar15 = FUN_000a1aec(puVar3,param_2,puVar13,puVar6);" (assignment_expression "iVar15 = FUN_000a1aec(puVar3,param_2,puVar13,puVar6)" (identifier "iVar15") (= "=") (call_expression "FUN_000a1aec(puVar3,param_2,puVar13,puVar6)" (identifier "FUN_000a1aec") (argument_list "(puVar3,param_2,puVar13,puVar6)" (( "(") (identifier "puVar3") (, ",") (identifier "param_2") (, ",") (identifier "puVar13") (, ",") (identifier "puVar6") () ")")))) (; ";")) (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" (identifier "uVar7") (= "=") (number_literal "2")) (; ";")) (expression_statement "puVar4 = param_2;" (assignment_expression "puVar4 = param_2" (identifier "puVar4") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (iVar15 < 2) {\n      uVar7 = 1;\n    }" (if "if") (parenthesized_expression "(iVar15 < 2)" (( "(") (binary_expression "iVar15 < 2" (identifier "iVar15") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n      uVar7 = 1;\n    }" ({ "{") (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    uVar7 = 2;\n    puVar4 = param_2;\n  }" (else "else") (compound_statement "{\n    uVar7 = 2;\n    puVar4 = param_2;\n  }" ({ "{") (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" (identifier "uVar7") (= "=") (number_literal "2")) (; ";")) (expression_statement "puVar4 = param_2;" (assignment_expression "puVar4 = param_2" (identifier "puVar4") (= "=") (identifier "param_2")) (; ";")) (} "}")))) (labeled_statement "LAB_000a1b98:\n  if (puStack_74 == (uint *)**(undefined4 **)(puVar14 + 0xee3e0)) {\n    return uVar7;\n  }" (statement_identifier "LAB_000a1b98") (: ":") (if_statement "if (puStack_74 == (uint *)**(undefined4 **)(puVar14 + 0xee3e0)) {\n    return uVar7;\n  }" (if "if") (parenthesized_expression "(puStack_74 == (uint *)**(undefined4 **)(puVar14 + 0xee3e0))" (( "(") (binary_expression "puStack_74 == (uint *)**(undefined4 **)(puVar14 + 0xee3e0)" (identifier "puStack_74") (== "==") (cast_expression "(uint *)**(undefined4 **)(puVar14 + 0xee3e0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(puVar14 + 0xee3e0)" (* "*") (pointer_expression "*(undefined4 **)(puVar14 + 0xee3e0)" (* "*") (cast_expression "(undefined4 **)(puVar14 + 0xee3e0)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + 0xee3e0)" (( "(") (binary_expression "puVar14 + 0xee3e0" (identifier "puVar14") (+ "+") (number_literal "0xee3e0")) () ")"))))))) () ")")) (compound_statement "{\n    return uVar7;\n  }" ({ "{") (return_statement "return uVar7;" (return "return") (identifier "uVar7") (; ";")) (} "}")))) (expression_statement "pcVar16 = *(code **)(puVar14 + 0xee3b4);" (assignment_expression "pcVar16 = *(code **)(puVar14 + 0xee3b4)" (identifier "pcVar16") (= "=") (pointer_expression "*(code **)(puVar14 + 0xee3b4)" (* "*") (cast_expression "(code **)(puVar14 + 0xee3b4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + 0xee3b4)" (( "(") (binary_expression "puVar14 + 0xee3b4" (identifier "puVar14") (+ "+") (number_literal "0xee3b4")) () ")"))))) (; ";")) (expression_statement "puVar9 = puStack_74;" (assignment_expression "puVar9 = puStack_74" (identifier "puVar9") (= "=") (identifier "puStack_74")) (; ";")) (expression_statement "(*pcVar16)();" (call_expression "(*pcVar16)()" (parenthesized_expression "(*pcVar16)" (( "(") (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar16 = pcVar16 + 0xf5910;" (assignment_expression "pcVar16 = pcVar16 + 0xf5910" (identifier "pcVar16") (= "=") (binary_expression "pcVar16 + 0xf5910" (identifier "pcVar16") (+ "+") (number_literal "0xf5910"))) (; ";")) (if_statement "if (puVar9 == (uint *)0x0) {\n    uVar7 = (uint)(puVar4 != (uint *)0x0);\n  }\n  else if (puVar4 == (uint *)0x0) {\n    uVar7 = 1;\n  }\n  else if (*puVar9 == *puVar4) {\n    if ((int)*puVar9 < 1) {\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = puVar9[1];\n      uVar10 = puVar4[1];\n      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }\n    }\n  }\n  else {\n    uVar7 = 1;\n  }" (if "if") (parenthesized_expression "(puVar9 == (uint *)0x0)" (( "(") (binary_expression "puVar9 == (uint *)0x0" (identifier "puVar9") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar7 = (uint)(puVar4 != (uint *)0x0);\n  }" ({ "{") (expression_statement "uVar7 = (uint)(puVar4 != (uint *)0x0);" (assignment_expression "uVar7 = (uint)(puVar4 != (uint *)0x0)" (identifier "uVar7") (= "=") (call_expression "(uint)(puVar4 != (uint *)0x0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar4 != (uint *)0x0)" (( "(") (binary_expression "puVar4 != (uint *)0x0" (identifier "puVar4") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")))) (; ";")) (} "}")) (else_clause "else if (puVar4 == (uint *)0x0) {\n    uVar7 = 1;\n  }\n  else if (*puVar9 == *puVar4) {\n    if ((int)*puVar9 < 1) {\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = puVar9[1];\n      uVar10 = puVar4[1];\n      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }\n    }\n  }\n  else {\n    uVar7 = 1;\n  }" (else "else") (if_statement "if (puVar4 == (uint *)0x0) {\n    uVar7 = 1;\n  }\n  else if (*puVar9 == *puVar4) {\n    if ((int)*puVar9 < 1) {\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = puVar9[1];\n      uVar10 = puVar4[1];\n      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }\n    }\n  }\n  else {\n    uVar7 = 1;\n  }" (if "if") (parenthesized_expression "(puVar4 == (uint *)0x0)" (( "(") (binary_expression "puVar4 == (uint *)0x0" (identifier "puVar4") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar7 = 1;\n  }" ({ "{") (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else if (*puVar9 == *puVar4) {\n    if ((int)*puVar9 < 1) {\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = puVar9[1];\n      uVar10 = puVar4[1];\n      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }\n    }\n  }\n  else {\n    uVar7 = 1;\n  }" (else "else") (if_statement "if (*puVar9 == *puVar4) {\n    if ((int)*puVar9 < 1) {\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = puVar9[1];\n      uVar10 = puVar4[1];\n      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }\n    }\n  }\n  else {\n    uVar7 = 1;\n  }" (if "if") (parenthesized_expression "(*puVar9 == *puVar4)" (( "(") (binary_expression "*puVar9 == *puVar4" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (== "==") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) () ")")) (compound_statement "{\n    if ((int)*puVar9 < 1) {\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = puVar9[1];\n      uVar10 = puVar4[1];\n      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }\n    }\n  }" ({ "{") (if_statement "if ((int)*puVar9 < 1) {\n      uVar7 = 0;\n    }\n    else {\n      uVar7 = puVar9[1];\n      uVar10 = puVar4[1];\n      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }\n    }" (if "if") (parenthesized_expression "((int)*puVar9 < 1)" (( "(") (binary_expression "(int)*puVar9 < 1" (cast_expression "(int)*puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n      uVar7 = 0;\n    }" ({ "{") (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      uVar7 = puVar9[1];\n      uVar10 = puVar4[1];\n      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }\n    }" (else "else") (compound_statement "{\n      uVar7 = puVar9[1];\n      uVar10 = puVar4[1];\n      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }\n    }" ({ "{") (expression_statement "uVar7 = puVar9[1];" (assignment_expression "uVar7 = puVar9[1]" (identifier "uVar7") (= "=") (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar10 = puVar4[1];" (assignment_expression "uVar10 = puVar4[1]" (identifier "uVar10") (= "=") (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }\n      else {\n        uVar7 = 1;\n      }" (if "if") (parenthesized_expression "(*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4))" (( "(") (binary_expression "*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)" (pointer_expression "*(byte *)(puVar9 + 4)" (* "*") (cast_expression "(byte *)(puVar9 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 4)" (( "(") (binary_expression "puVar9 + 4" (identifier "puVar9") (+ "+") (number_literal "4")) () ")")))) (== "==") (pointer_expression "*(byte *)(puVar4 + 4)" (* "*") (cast_expression "(byte *)(puVar4 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 4)" (( "(") (binary_expression "puVar4 + 4" (identifier "puVar4") (+ "+") (number_literal "4")) () ")"))))) () ")")) (compound_statement "{\n        puVar5 = puVar9 + 6;\n        puVar4 = puVar4 + 6;\n        iVar15 = 0;\n        do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);\n        uVar7 = 1;\n      }" ({ "{") (expression_statement "puVar5 = puVar9 + 6;" (assignment_expression "puVar5 = puVar9 + 6" (identifier "puVar5") (= "=") (binary_expression "puVar9 + 6" (identifier "puVar9") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "puVar4 = puVar4 + 6;" (assignment_expression "puVar4 = puVar4 + 6" (identifier "puVar4") (= "=") (binary_expression "puVar4 + 6" (identifier "puVar4") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" (identifier "iVar15") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        } while (*(byte *)puVar6 == *(byte *)puVar1);" (do "do") (compound_statement "{\n          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);\n          iVar15 = iVar15 + 1;\n          if (iVar2 != 0) {\n            return 1;\n          }\n          if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }\n          uVar7 = *puVar5;\n          uVar10 = *puVar4;\n          puVar6 = puVar5 + 3;\n          puVar5 = puVar5 + 5;\n          puVar1 = puVar4 + 3;\n          puVar4 = puVar4 + 5;\n        }" ({ "{") (expression_statement "iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);" (assignment_expression "iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16)" (identifier "iVar2") (= "=") (call_expression "FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16)" (identifier "FUN_000a1aec") (argument_list "(0,uVar7,uVar10,puVar13,pcVar16)" (( "(") (number_literal "0") (, ",") (identifier "uVar7") (, ",") (identifier "uVar10") (, ",") (identifier "puVar13") (, ",") (identifier "pcVar16") () ")")))) (; ";")) (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" (identifier "iVar15") (= "=") (binary_expression "iVar15 + 1" (identifier "iVar15") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar2 != 0) {\n            return 1;\n          }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            return 1;\n          }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if ((int)*puVar9 <= iVar15) {\n            return 0;\n          }" (if "if") (parenthesized_expression "((int)*puVar9 <= iVar15)" (( "(") (binary_expression "(int)*puVar9 <= iVar15" (cast_expression "(int)*puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (<= "<=") (identifier "iVar15")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar7 = *puVar5;" (assignment_expression "uVar7 = *puVar5" (identifier "uVar7") (= "=") (pointer_expression "*puVar5" (* "*") (identifier "puVar5"))) (; ";")) (expression_statement "uVar10 = *puVar4;" (assignment_expression "uVar10 = *puVar4" (identifier "uVar10") (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "puVar6 = puVar5 + 3;" (assignment_expression "puVar6 = puVar5 + 3" (identifier "puVar6") (= "=") (binary_expression "puVar5 + 3" (identifier "puVar5") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "puVar5 = puVar5 + 5;" (assignment_expression "puVar5 = puVar5 + 5" (identifier "puVar5") (= "=") (binary_expression "puVar5 + 5" (identifier "puVar5") (+ "+") (number_literal "5"))) (; ";")) (expression_statement "puVar1 = puVar4 + 3;" (assignment_expression "puVar1 = puVar4 + 3" (identifier "puVar1") (= "=") (binary_expression "puVar4 + 3" (identifier "puVar4") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "puVar4 = puVar4 + 5;" (assignment_expression "puVar4 = puVar4 + 5" (identifier "puVar4") (= "=") (binary_expression "puVar4 + 5" (identifier "puVar4") (+ "+") (number_literal "5"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(byte *)puVar6 == *(byte *)puVar1)" (( "(") (binary_expression "*(byte *)puVar6 == *(byte *)puVar1" (pointer_expression "*(byte *)puVar6" (* "*") (cast_expression "(byte *)puVar6" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar6"))) (== "==") (pointer_expression "*(byte *)puVar1" (* "*") (cast_expression "(byte *)puVar1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1")))) () ")")) (; ";")) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n        uVar7 = 1;\n      }" (else "else") (compound_statement "{\n        uVar7 = 1;\n      }" ({ "{") (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (; ";")) (} "}")))) (} "}")))) (} "}")) (else_clause "else {\n    uVar7 = 1;\n  }" (else "else") (compound_statement "{\n    uVar7 = 1;\n  }" ({ "{") (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (; ";")) (} "}")))))))) (return_statement "return uVar7;" (return "return") (identifier "uVar7") (; ";")) (} "}")))

int function_1(type_1 *db,type_2 *pExpr,type_3 enc,type_3 affinity,type_4 **ppVal,
                 type_5 *pCtx)

{
  char var_20;
  type_3 affinity_00;
  type_2 *pEVar2;
  type_6 *var_18;
  char *var_14;
  type_7 in_register_00000018;
  type_7 in_register_0000001c;
  int var_6;
  type_8 var_1;
  int var_9;
  type_9 *puVar7;
  type_4 *var_7;
  int var_21;
  
  var_21 = *(int *)PTR___stack_chk_guard_0018fecc;
  var_7 = (type_4 *)0x0;
  for (; (var_1 = pExpr->op, var_1 == 0xa2 || (var_1 == 0xa9)); pExpr = pExpr->pLeft) {
  }
  if (var_1 == 0xa4) {
    var_1 = pExpr->op2;
  }
  if (var_1 == 0x24) {
    affinity_00 = (*(type_10 *)(var_2 + 0x7c60))((pExpr->u).zToken,0);
    var_6 = function_1(db,pExpr->pLeft,enc,affinity_00,ppVal,pCtx);
    if (*ppVal != (type_6 *)0x0) {
      var_3(*ppVal,affinity_00,'\x01');
      var_4(*ppVal,affinity,'\x01');
    }
    goto LAB_000a1814;
  }
  if (var_1 == 0xa1) {
    pEVar2 = pExpr->pLeft;
    var_1 = pEVar2->op;
    if ((var_1 & 0xfd) == 0x8d) {
      puVar7 = var_5 + 0xd80;
      goto LAB_000a1594;
    }
LAB_000a1688:
    var_6 = function_1(db,pExpr->pLeft,enc,affinity,&var_7,pCtx);
    if (var_6 == 0) {
      var_6 = 0;
      if (var_7 != (type_4 *)0x0) {
        (*(type_10 *)(var_8 + 0x6988))();
        if ((var_7->flags & 8) == 0) {
          var_9 = *(int *)((int)&var_7->u + 4);
          if (((var_7->u).nZero == -0x80000000) && (var_9 == 0)) {
            var_7->u = *(type_11 *)(var_10 + -0x3fb8);
            var_7->flags = var_7->flags & 0x3e00 | 8;
          }
          else {
            var_9 = -var_9;
            (var_7->u).zPType = (char *)(-(type_13)(var_9 != 0) - (var_7->u).nZero);
            *(int *)((int)&var_7->u + 4) = var_9;
          }
        }
        else {
          (var_7->u).nZero = (var_7->u).nZero ^ 0x80000000;
        }
        var_4(var_7,affinity,enc);
      }
    }
    else {
      var_6 = 0;
    }
    goto LAB_000a180c;
  }
  if (var_1 == 0x6a) {
    puVar7 = var_5 + 0x2d20;
LAB_000a1740:
    var_7 = (type_4 *)(*(type_10 *)(var_2 + 0x65c8))(db);
    if (var_7 == (type_4 *)0x0) {
LAB_000a1a8c:
      (*(type_10 *)(var_11 + 0x1354))(db);
      (*(type_10 *)(var_8 + 0x7878))(db,0);
      (*(type_10 *)(var_12 + -0x5984))(var_7);
      var_6 = 7;
      goto LAB_000a1814;
    }
    if ((pExpr->flags & 0x400) == 0) {
      var_14 = var_13(db,var_5 + 0x172c,puVar7,(pExpr->u).zToken);
      if (var_14 == (char *)0x0) goto LAB_000a1a8c;
      var_15(var_7,-1,var_14,'\x01',(type_12 *)(var_11 + 0x1030));
    }
    else {
      (*(type_10 *)(var_12 + -0x6694))(var_7);
    }
    if (((var_1 & 0xfd) == 0x8d) && (var_16(in_register_0000001c,affinity) == 0x41)) {
      var_4(var_7,'C','\x01');
    }
    else {
      var_4(var_7,affinity,'\x01');
    }
    if ((var_7->flags & 0xc) != 0) {
      var_7->flags = var_7->flags & 0xfffd;
    }
    if (var_16(in_register_00000018,enc) == 1) {
      var_6 = 0;
    }
    else {
      var_6 = var_17(var_7,var_16(in_register_00000018,enc));
    }
  }
  else {
    puVar7 = var_5 + 0x2d20;
    pEVar2 = pExpr;
LAB_000a1594:
    pExpr = pEVar2;
    if ((var_1 & 0xfd) == 0x8d) goto LAB_000a1740;
    if (var_1 == 0xa1) goto LAB_000a1688;
    if (var_1 == 0x6e) {
      var_7 = (type_4 *)(*(type_10 *)(var_2 + 0x65c8))(db);
      if (var_7 != (type_4 *)0x0) {
        (*(type_10 *)(var_8 + 0x6988))(var_7);
        var_6 = 0;
        goto LAB_000a180c;
      }
      goto LAB_000a1a8c;
    }
    if (var_1 == 0x8e) {
      var_18 = (type_6 *)(*(type_10 *)(var_2 + 0x65c8))(db);
      var_7 = var_18;
      if (var_18 == (type_6 *)0x0) goto LAB_000a1a8c;
      var_9 = (pEVar2->u).iValue + 2;
      var_6 = (*(type_10 *)(var_8 + -0x4bc8))(var_9);
      var_14 = (char *)(*(type_10 *)(var_11 + 0x2284))(db,var_9,var_6 + -1);
      var_19
                (var_18,var_14,(var_6 + -1) / 2,'\0',
                 (type_12 *)(var_11 + 0x1030));
      var_6 = 0;
    }
    else {
      var_6 = 0;
      if (var_1 == 0x9b) {
        var_7 = (type_4 *)(*(type_10 *)(var_2 + 0x65c8))(db);
        if (var_7 == (type_4 *)0x0) {
          var_6 = 0;
        }
        else {
          var_7->flags = 4;
          var_20 = *(char *)((pEVar2->u).iValue + 4);
          (var_7->u).nZero = 0;
          *(type_13 *)((int)&var_7->u + 4) = (type_13)(var_20 == '\0');
          var_6 = 0;
        }
      }
    }
  }
LAB_000a180c:
  *ppVal = var_7;
LAB_000a1814:
  if (var_21 != *(int *)PTR___stack_chk_guard_0018fecc) {
    var_6 = (*(type_10 *)PTR___stack_chk_fail_0018fea0)();
    return var_6;
  }
  return var_6;
}


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

uint MASKED(undefined4 param_1,uint *param_2,uint *param_3,uint *param_4,uint **param_5,
                 undefined4 param_6)

{
  uint *puVar1;
  int iVar2;
  undefined4 *puVar3;
  uint *puVar4;
  uint *puVar5;
  uint *puVar6;
  uint uVar7;
  byte bVar8;
  uint *puVar9;
  uint uVar10;
  char cVar12;
  uint uVar11;
  uint *puVar13;
  undefined *puVar14;
  int iVar15;
  code *pcVar16;
  uint *puStack_78;
  uint *puStack_74;
  uint uStack_70;
  uint *puStack_6c;
  undefined4 uStack_68;
  uint **ppuStack_64;
  uint *puStack_60;
  uint *puStack_5c;
  undefined4 uStack_58;
  code *pcStack_54;
  uint **local_40;
  undefined4 local_3c;
  uint *local_30;
  undefined4 *local_2c;
  
  local_2c = *(undefined4 **)PTR___stack_chk_guard_0018fecc;
  local_30 = (uint *)0x0;
  for (puVar9 = param_2; (bVar8 = *(byte *)puVar9, bVar8 == 0xa2 || (bVar8 == 0xa9));
      puVar9 = (uint *)puVar9[3]) {
  }
  if (bVar8 == 0xa4) {
    bVar8 = *(byte *)(puVar9 + 10);
  }
  cVar12 = (char)param_4;
  puVar5 = param_3;
  if (bVar8 == 0x24) {
    uVar10 = (*(code *)(PTR_LAB_0018fbbc + 0x7c60))(puVar9[2],0);
    param_2 = (uint *)puVar9[3];
    local_3c = param_6;
    local_40 = param_5;
    puVar6 = (uint *)(uVar10 & 0xff);
    uVar7 = MASKED(param_1);
    if (*param_5 != (uint *)0x0) {
      FUN_0008f194(*param_5,(uint *)(uVar10 & 0xff),1);
      puVar5 = (uint *)0x1;
      param_2 = (uint *)(int)cVar12;
      FUN_0008efcc(*param_5);
    }
  }
  else {
    puVar6 = param_4;
    if (bVar8 == 0xa1) {
      puVar4 = (uint *)puVar9[3];
      bVar8 = *(byte *)puVar4;
      if ((bVar8 & 0xfd) == 0x8d) {
        puVar13 = (uint *)(PTR_LAB_0018f958 + 0xd80);
        iVar15 = -1;
        goto LAB_000a1594;
      }
LAB_000a1688:
      param_2 = (uint *)puVar9[3];
      local_3c = param_6;
      local_40 = &local_30;
      iVar15 = MASKED(param_1);
      if (iVar15 == 0) {
        uVar7 = 0;
        if (local_30 != (uint *)0x0) {
          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))();
          if ((local_30[2] & 0x80000) == 0) {
            if ((*local_30 == 0x80000000) && (local_30[1] == 0)) {
              *(undefined8 *)local_30 = *(undefined8 *)(PTR_DAT_0018fbb0 + -0x3fb8);
              *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0x3e00 | 8;
            }
            else {
              uVar10 = -local_30[1];
              *local_30 = -(uint)(uVar10 != 0) - *local_30;
              local_30[1] = uVar10;
            }
          }
          else {
            *local_30 = *local_30 ^ 0x80000000;
          }
          param_2 = (uint *)(int)cVar12;
          puVar5 = param_3;
          FUN_0008efcc(local_30);
        }
      }
      else {
        uVar7 = 0;
      }
      goto LAB_000a180c;
    }
    if (bVar8 == 0x6a) {
      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);
      iVar15 = 1;
LAB_000a1740:
      local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);
      if (local_30 == (uint *)0x0) {
LAB_000a1a8c:
        (*(code *)(PTR_LAB_0018fb58 + 0x1354))(param_1);
        param_2 = (uint *)0x0;
        (*(code *)(PTR_LAB_0018fbd0 + 0x7878))(param_1);
        (*(code *)(PTR_LAB_0018fc04 + -0x5984))(local_30);
        uVar7 = 7;
        goto LAB_000a1814;
      }
      if ((puVar9[1] & 0x400) == 0) {
        puVar6 = (uint *)puVar9[2];
        iVar15 = FUN_000a1468(param_1,PTR_LAB_0018f958 + 0x172c);
        puVar5 = puVar13;
        if (iVar15 == 0) goto LAB_000a1a8c;
        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);
        puVar6 = (uint *)0x1;
        FUN_00081e3c(local_30,0xffffffff,iVar15);
      }
      else {
        puVar6 = (uint *)(puVar9[2] * iVar15);
        (*(code *)(PTR_LAB_0018fc04 + -0x6694))(local_30);
      }
      if (((bVar8 & 0xfd) == 0x8d) && (puVar5 = (uint *)0x1, param_4 == (uint *)0x41)) {
        FUN_0008efcc(local_30,0x43);
      }
      else {
        puVar5 = (uint *)0x1;
        FUN_0008efcc(local_30,(int)cVar12);
      }
      if ((*(ushort *)(local_30 + 2) & 0xc) != 0) {
        *(ushort *)(local_30 + 2) = *(ushort *)(local_30 + 2) & 0xfffd;
      }
      param_2 = param_3;
      if (param_3 == (uint *)0x1) {
        uVar7 = 0;
      }
      else {
        uVar7 = FUN_00084bc0();
      }
    }
    else {
      puVar13 = (uint *)(PTR_LAB_0018f958 + 0x2d20);
      iVar15 = 1;
      puVar4 = puVar9;
LAB_000a1594:
      puVar9 = puVar4;
      if ((bVar8 & 0xfd) == 0x8d) goto LAB_000a1740;
      if (bVar8 == 0xa1) goto LAB_000a1688;
      if (bVar8 == 0x6e) {
        local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);
        if (local_30 != (uint *)0x0) {
          (*(code *)(PTR_LAB_0018fbd0 + 0x6988))(local_30);
          uVar7 = 0;
          goto LAB_000a180c;
        }
        goto LAB_000a1a8c;
      }
      if (bVar8 == 0x8e) {
        puVar13 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);
        puVar5 = param_3;
        param_3 = puVar13;
        local_30 = puVar13;
        if (puVar13 == (uint *)0x0) goto LAB_000a1a8c;
        uVar7 = puVar4[2];
        iVar15 = (*(code *)(PTR_LAB_0018fbd0 + -0x4bc8))(uVar7 + 2);
        puVar9 = (uint *)(iVar15 + -1);
        param_2 = (uint *)(*(code *)(PTR_LAB_0018fb58 + 0x2284))(param_1,uVar7 + 2,puVar9);
        local_40 = (uint **)(PTR_LAB_0018fb58 + 0x1030);
        puVar6 = (uint *)0x0;
        puVar5 = (uint *)((int)puVar9 / 2);
        FUN_00081ac0(puVar13);
        uVar7 = 0;
      }
      else {
        uVar7 = 0;
        if (bVar8 == 0x9b) {
          local_30 = (uint *)(*(code *)(PTR_LAB_0018fbbc + 0x65c8))(param_1);
          if (local_30 == (uint *)0x0) {
            uVar7 = 0;
          }
          else {
            *(undefined2 *)(local_30 + 2) = 4;
            cVar12 = *(char *)(puVar4[2] + 4);
            *local_30 = 0;
            local_30[1] = (uint)(cVar12 == '\0');
            uVar7 = 0;
          }
        }
      }
    }
LAB_000a180c:
    *param_5 = local_30;
  }
LAB_000a1814:
  if (local_2c == *(undefined4 **)PTR___stack_chk_guard_0018fecc) {
    return uVar7;
  }
  pcVar16 = FUN_000a1aec;
  puVar3 = local_2c;
  puVar14 = PTR___stack_chk_fail_0018fea0;
  (*(code *)PTR___stack_chk_fail_0018fea0)();
  uStack_58 = param_6;
  ppuStack_64 = param_5;
  puStack_74 = (uint *)**(undefined4 **)(puVar14 + 0xee3e0);
  puVar4 = param_2;
  puVar13 = puVar5;
  uStack_70 = uVar7;
  puStack_6c = puVar9;
  uStack_68 = param_1;
  puStack_60 = param_3;
  puStack_5c = param_4;
  pcStack_54 = pcVar16;
  if (param_2 == (uint *)0x0) {
    uVar7 = 2;
    if (puVar5 == (uint *)0x0) {
      uVar7 = 0;
    }
    goto LAB_000a1b98;
  }
  if (puVar5 == (uint *)0x0) {
    uVar7 = 2;
    goto LAB_000a1b98;
  }
  if ((puVar3 == (undefined4 *)0x0) || (*(byte *)param_2 != 0x90)) {
LAB_000a1b58:
    uVar10 = param_2[1];
  }
  else {
    puStack_78 = (uint *)0x0;
    puVar13 = (uint *)0x1;
    puVar4 = puVar5;
    MASKED(*puVar3,puVar5,1,0x41,&puStack_78,0);
    if (puStack_78 == (uint *)0x0) goto LAB_000a1b58;
    puVar4 = (uint *)param_2[8];
    (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x6628))(puVar3[2],puVar4);
    puVar13 = (uint *)0x41;
    iVar15 = FUN_0008f0b8(puVar3[0x36],puVar4,0x41);
    if (iVar15 == 0) {
      iVar15 = *(int *)(puVar14 + 0xee118);
      (*(code *)(iVar15 + -0x5984))(puStack_78);
      (*(code *)(iVar15 + -0x5984))(0);
      uVar10 = param_2[1];
    }
    else {
      if (*(char *)((*(ushort *)(iVar15 + 8) & 0x1f) + *(int *)(puVar14 + 0xede70) + 0x65d0) ==
          '\x03') {
        sqlite3_value_text(iVar15);
      }
      puVar13 = (uint *)0x0;
      puVar4 = puStack_78;
      uVar7 = FUN_0008ea3c(iVar15,puStack_78,0);
      iVar2 = *(int *)(puVar14 + 0xee118);
      (*(code *)(iVar2 + -0x5984))(puStack_78);
      (*(code *)(iVar2 + -0x5984))(iVar15);
      if (uVar7 == 0) goto LAB_000a1b98;
      uVar10 = param_2[1];
    }
  }
  uVar11 = uVar10 | puVar5[1];
  if ((uVar11 & 0x400) != 0) {
    uVar7 = 2;
    if (((uVar10 & puVar5[1] & 0x400) != 0) && (uVar7 = 2, param_2[2] == puVar5[2])) {
      uVar7 = 0;
    }
    goto LAB_000a1b98;
  }
  bVar8 = *(byte *)param_2;
  if (*(byte *)puVar5 == bVar8) {
    if (bVar8 != 0x47) {
      if (((bVar8 != 0x9e) && (bVar8 != 0xa0)) && (param_2[2] != 0)) {
        if (bVar8 == 0x9d) {
          puVar4 = (uint *)puVar5[2];
          iVar15 = (*(code *)(*(int *)(puVar14 + 0xee06c) + 0x17e4))();
          if (iVar15 != 0) {
            uVar7 = 2;
            goto LAB_000a1b98;
          }
          if ((int)(uVar10 << 7) < 0) {
            puVar13 = (uint *)puVar5[0xc];
            puVar4 = (uint *)param_2[0xc];
            iVar15 = FUN_000a2138(puVar3,puVar4,puVar13);
            if (iVar15 != 0) {
              uVar7 = 2;
              goto LAB_000a1b98;
            }
          }
        }
        else {
          if (bVar8 == 0x6e) {
            uVar7 = 0;
            goto LAB_000a1b98;
          }
          if (bVar8 == 0x66) {
            puVar4 = (uint *)puVar5[2];
            iVar15 = (**(code **)(puVar14 + 0xedf44))();
            if (iVar15 != 0) {
              uVar7 = 2;
              goto LAB_000a1b98;
            }
          }
          else {
            puVar4 = (uint *)puVar5[2];
            if ((puVar4 != (uint *)0x0) &&
               (iVar15 = (**(code **)(puVar14 + 0xee420))(), iVar15 != 0)) {
              uVar7 = 2;
              goto LAB_000a1b98;
            }
          }
        }
      }
      if (((param_2[1] ^ puVar5[1]) & 0x10) == 0) {
        if ((uVar11 & 0x4000) == 0) {
          if ((uVar11 & 0x800) == 0) {
            if ((uVar11 & 8) == 0) {
              puVar13 = (uint *)puVar5[3];
              puVar4 = (uint *)param_2[3];
              iVar15 = FUN_000a1aec(puVar3,puVar4,puVar13,puVar6);
              if (iVar15 != 0) {
                uVar7 = 2;
                goto LAB_000a1b98;
              }
            }
            puVar4 = (uint *)param_2[4];
            iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5[4],puVar6);
            puVar13 = puVar6;
            if (iVar15 == 0) {
              puVar4 = (uint *)puVar5[5];
              iVar15 = FUN_000a2010(param_2[5],puVar4,puVar6);
              if (iVar15 == 0) {
                uVar7 = 0;
                if (((*(byte *)param_2 != 0x6a) && (*(byte *)param_2 != 0x9b)) &&
                   ((uVar11 & 0x2000) == 0)) {
                  if (param_2[8] == puVar5[8]) {
                    if ((uint *)param_2[7] != (uint *)puVar5[7]) {
                      if ((uint *)param_2[7] == puVar6) {
                        if (-1 < (int)puVar5[7]) {
                          uVar7 = 2;
                        }
                      }
                      else {
                        uVar7 = 2;
                      }
                    }
                  }
                  else {
                    uVar7 = 2;
                  }
                }
              }
              else {
                uVar7 = 2;
              }
            }
            else {
              uVar7 = 2;
            }
          }
          else {
            uVar7 = 2;
          }
        }
        else {
          uVar7 = 0;
        }
      }
      else {
        uVar7 = 2;
      }
      goto LAB_000a1b98;
    }
  }
  else if (bVar8 == 0x66) {
    puVar4 = (uint *)param_2[3];
    puVar13 = puVar5;
    iVar15 = FUN_000a1aec(puVar3,puVar4,puVar5,puVar6);
    if (iVar15 < 2) {
      uVar7 = 1;
      goto LAB_000a1b98;
    }
  }
  if (*(byte *)puVar5 == 0x66) {
    puVar13 = (uint *)puVar5[3];
    iVar15 = FUN_000a1aec(puVar3,param_2,puVar13,puVar6);
    uVar7 = 2;
    puVar4 = param_2;
    if (iVar15 < 2) {
      uVar7 = 1;
    }
  }
  else {
    uVar7 = 2;
    puVar4 = param_2;
  }
LAB_000a1b98:
  if (puStack_74 == (uint *)**(undefined4 **)(puVar14 + 0xee3e0)) {
    return uVar7;
  }
  pcVar16 = *(code **)(puVar14 + 0xee3b4);
  puVar9 = puStack_74;
  (*pcVar16)();
  pcVar16 = pcVar16 + 0xf5910;
  if (puVar9 == (uint *)0x0) {
    uVar7 = (uint)(puVar4 != (uint *)0x0);
  }
  else if (puVar4 == (uint *)0x0) {
    uVar7 = 1;
  }
  else if (*puVar9 == *puVar4) {
    if ((int)*puVar9 < 1) {
      uVar7 = 0;
    }
    else {
      uVar7 = puVar9[1];
      uVar10 = puVar4[1];
      if (*(byte *)(puVar9 + 4) == *(byte *)(puVar4 + 4)) {
        puVar5 = puVar9 + 6;
        puVar4 = puVar4 + 6;
        iVar15 = 0;
        do {
          iVar2 = FUN_000a1aec(0,uVar7,uVar10,puVar13,pcVar16);
          iVar15 = iVar15 + 1;
          if (iVar2 != 0) {
            return 1;
          }
          if ((int)*puVar9 <= iVar15) {
            return 0;
          }
          uVar7 = *puVar5;
          uVar10 = *puVar4;
          puVar6 = puVar5 + 3;
          puVar5 = puVar5 + 5;
          puVar1 = puVar4 + 3;
          puVar4 = puVar4 + 5;
        } while (*(byte *)puVar6 == *(byte *)puVar1);
        uVar7 = 1;
      }
      else {
        uVar7 = 1;
      }
    }
  }
  else {
    uVar7 = 1;
  }
  return uVar7;
}

