
void sqlite3OpenTable(Parse *pParse,int iCur,int iDb,Table *pTab,int opcode)

{
  byte bVar1;
  code *pcVar2;
  Index *pIdx;
  Vdbe *p;
  
  p = pParse->pVdbe;
  if (p == (Vdbe *)0x0) {
    p = (Vdbe *)(*(code *)(PTR_LAB_00190bc0 + 0x1274))();
  }
  (*(code *)(PTR_LAB_00190bc0 + 0xb3c))(pParse,iDb,pTab->tnum,opcode == 0x6e,pTab->zName);
  if ((pTab->tabFlags & 0x20) == 0) {
    (*(code *)(PTR_LAB_00190bc0 + 0x13a0))(p,opcode,iCur,pTab->tnum,iDb,(int)pTab->nCol);
  }
  else {
    pIdx = pTab->pIndex;
    if (pIdx == (Index *)0x0) {
LAB_000a45f4:
                    /* WARNING: Does not return */
      pcVar2 = (code *)trap(0);
      (*pcVar2)();
    }
    bVar1 = pIdx->field_0x37;
    while ((bVar1 & 0xc0) != 0x80) {
      pIdx = pIdx->pNext;
      if (pIdx == (Index *)0x0) goto LAB_000a45f4;
      bVar1 = pIdx->field_0x37;
    }
    (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(p,opcode,iCur,pIdx->tnum,iDb);
    sqlite3VdbeSetP4KeyInfo(pParse,pIdx);
  }
  sqlite3VdbeComment(p,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5dfc,pTab->zName);
  return;
}



void FUN_000a4470(int param_1,undefined4 param_2,undefined4 param_3,undefined4 *param_4,int param_5)

{
  byte bVar1;
  code *pcVar2;
  int iVar3;
  int iVar4;
  
  iVar4 = *(int *)(param_1 + 8);
  if (iVar4 == 0) {
    iVar4 = (*(code *)(PTR_LAB_00190bc0 + 0x1274))();
  }
  (*(code *)(PTR_LAB_00190bc0 + 0xb3c))(param_1,param_3,param_4[7],param_5 == 0x6e,*param_4);
  if ((param_4[9] & 0x20) == 0) {
    (*(code *)(PTR_LAB_00190bc0 + 0x13a0))
              (iVar4,param_5,param_2,param_4[7],param_3,(int)*(short *)((int)param_4 + 0x2a));
  }
  else {
    iVar3 = param_4[2];
    if (iVar3 == 0) {
LAB_000a45f4:
                    /* WARNING: Does not return */
      pcVar2 = (code *)trap(0);
      (*pcVar2)();
    }
    bVar1 = *(byte *)(iVar3 + 0x37);
    while ((bVar1 & 0xc0) != 0x80) {
      iVar3 = *(int *)(iVar3 + 0x14);
      if (iVar3 == 0) goto LAB_000a45f4;
      bVar1 = *(byte *)(iVar3 + 0x37);
    }
    (*(code *)(PTR_LAB_00190bc0 + 0x10fc))
              (iVar4,param_5,param_2,*(undefined4 *)(iVar3 + 0x2c),param_3);
    FUN_00099d24(param_1,iVar3);
  }
  FUN_000a43f8(iVar4,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5dfc,*param_4);
  return;
}


lui gp,0xf
addiu gp,gp,0x44b0
addu gp,gp,t9
addiu sp,sp,-0x40
sw s5,0x34(sp)
or s5,a1,zero
sw s4,0x30(sp)
sw s3,0x2c(sp)
or s3,a2,zero
sw s2,0x28(sp)
or s2,a0,zero
sw s1,0x24(sp)
or s1,a3,zero
sw gp,0x18(sp)
sw ra,0x3c(sp)
sw s6,0x38(sp)
sw s0,0x20(sp)
lw s6,0x8(a0)
bne s6,zero,0x000a44d8
_lw s4,0x50(sp)
lw t9,-0x7d60(gp)
addiu t9,t9,0x1274
jalr t9
_nop
lw gp,0x18(sp)
or s6,v0,zero
lw t9,-0x7d60(gp)
xori a3,s4,0x6e
lw v0,0x0(s1)
sltiu a3,a3,0x1
lw a2,0x1c(s1)
or a1,s3,zero
addiu t9,t9,0xb3c
sw v0,0x10(sp)
jalr t9
_or a0,s2,zero
lw v0,0x24(s1)
andi v0,v0,0x20
beq v0,zero,0x000a45c4
_lw gp,0x18(sp)
lw s0,0x8(s1)
beq s0,zero,0x000a45f4
_li v1,0x80
lbu v0,0x37(s0)
andi v0,v0,0xc0
beq v0,v1,0x000a454c
_lw t9,-0x7d60(gp)
li a0,-0x40
lw s0,0x14(s0)
beq s0,zero,0x000a45f4
_nop
lbu v0,0x37(s0)
and v0,a0,v0
bne v0,v1,0x000a4530
_lw t9,-0x7d60(gp)
or a2,s5,zero
lw a3,0x2c(s0)
or a1,s4,zero
or a0,s6,zero
addiu t9,t9,0x10fc
jalr t9
_sw s3,0x10(sp)
or a1,s0,zero
lw gp,0x18(sp)
lw t9,-0x7d5c(gp)
addiu t9,t9,-0x62dc
bal 0x00099d24
_or a0,s2,zero
lw gp,0x18(sp)
lw a1,-0x7fc4(gp)
or a0,s6,zero
lw t9,-0x7d5c(gp)
lw a2,0x0(s1)
lw ra,0x3c(sp)
addiu a1,a1,-0x5dfc
lw s6,0x38(sp)
addiu t9,t9,0x43f8
lw s5,0x34(sp)
lw s4,0x30(sp)
lw s3,0x2c(sp)
lw s2,0x28(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
b 0x000a43f8
_addiu sp,sp,0x40
lw t9,-0x7d60(gp)
or a2,s5,zero
lh v0,0x2a(s1)
or a1,s4,zero
lw a3,0x1c(s1)
or a0,s6,zero
addiu t9,t9,0x13a0
sw s3,0x10(sp)
jalr t9
_sw v0,0x14(sp)
b 0x000a4584
_lw gp,0x18(sp)
lw v0,0x2c(zero)
teq zero,zero
(translation_unit "void FUN_000a4470(int param_1,undefined4 param_2,undefined4 param_3,undefined4 *param_4,int param_5)\n\n{\n  byte bVar1;\n  code *pcVar2;\n  int iVar3;\n  int iVar4;\n  \n  iVar4 = *(int *)(param_1 + 8);\n  if (iVar4 == 0) {\n    iVar4 = (*(code *)(PTR_LAB_00190bc0 + 0x1274))();\n  }\n  (*(code *)(PTR_LAB_00190bc0 + 0xb3c))(param_1,param_3,param_4[7],param_5 == 0x6e,*param_4);\n  if ((param_4[9] & 0x20) == 0) {\n    (*(code *)(PTR_LAB_00190bc0 + 0x13a0))\n              (iVar4,param_5,param_2,param_4[7],param_3,(int)*(short *)((int)param_4 + 0x2a));\n  }\n  else {\n    iVar3 = param_4[2];\n    if (iVar3 == 0) {\nLAB_000a45f4:\n                    /* WARNING: Does not return */\n      pcVar2 = (code *)trap(0);\n      (*pcVar2)();\n    }\n    bVar1 = *(byte *)(iVar3 + 0x37);\n    while ((bVar1 & 0xc0) != 0x80) {\n      iVar3 = *(int *)(iVar3 + 0x14);\n      if (iVar3 == 0) goto LAB_000a45f4;\n      bVar1 = *(byte *)(iVar3 + 0x37);\n    }\n    (*(code *)(PTR_LAB_00190bc0 + 0x10fc))\n              (iVar4,param_5,param_2,*(undefined4 *)(iVar3 + 0x2c),param_3);\n    FUN_00099d24(param_1,iVar3);\n  }\n  FUN_000a43f8(iVar4,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5dfc,*param_4);\n  return;\n}\n\n" (function_definition "void FUN_000a4470(int param_1,undefined4 param_2,undefined4 param_3,undefined4 *param_4,int param_5)\n\n{\n  byte bVar1;\n  code *pcVar2;\n  int iVar3;\n  int iVar4;\n  \n  iVar4 = *(int *)(param_1 + 8);\n  if (iVar4 == 0) {\n    iVar4 = (*(code *)(PTR_LAB_00190bc0 + 0x1274))();\n  }\n  (*(code *)(PTR_LAB_00190bc0 + 0xb3c))(param_1,param_3,param_4[7],param_5 == 0x6e,*param_4);\n  if ((param_4[9] & 0x20) == 0) {\n    (*(code *)(PTR_LAB_00190bc0 + 0x13a0))\n              (iVar4,param_5,param_2,param_4[7],param_3,(int)*(short *)((int)param_4 + 0x2a));\n  }\n  else {\n    iVar3 = param_4[2];\n    if (iVar3 == 0) {\nLAB_000a45f4:\n                    /* WARNING: Does not return */\n      pcVar2 = (code *)trap(0);\n      (*pcVar2)();\n    }\n    bVar1 = *(byte *)(iVar3 + 0x37);\n    while ((bVar1 & 0xc0) != 0x80) {\n      iVar3 = *(int *)(iVar3 + 0x14);\n      if (iVar3 == 0) goto LAB_000a45f4;\n      bVar1 = *(byte *)(iVar3 + 0x37);\n    }\n    (*(code *)(PTR_LAB_00190bc0 + 0x10fc))\n              (iVar4,param_5,param_2,*(undefined4 *)(iVar3 + 0x2c),param_3);\n    FUN_00099d24(param_1,iVar3);\n  }\n  FUN_000a43f8(iVar4,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5dfc,*param_4);\n  return;\n}" primitive_type (function_declarator "FUN_000a4470(int param_1,undefined4 param_2,undefined4 param_3,undefined4 *param_4,int param_5)" identifier (parameter_list "(int param_1,undefined4 param_2,undefined4 param_3,undefined4 *param_4,int param_5)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int param_5" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  code *pcVar2;\n  int iVar3;\n  int iVar4;\n  \n  iVar4 = *(int *)(param_1 + 8);\n  if (iVar4 == 0) {\n    iVar4 = (*(code *)(PTR_LAB_00190bc0 + 0x1274))();\n  }\n  (*(code *)(PTR_LAB_00190bc0 + 0xb3c))(param_1,param_3,param_4[7],param_5 == 0x6e,*param_4);\n  if ((param_4[9] & 0x20) == 0) {\n    (*(code *)(PTR_LAB_00190bc0 + 0x13a0))\n              (iVar4,param_5,param_2,param_4[7],param_3,(int)*(short *)((int)param_4 + 0x2a));\n  }\n  else {\n    iVar3 = param_4[2];\n    if (iVar3 == 0) {\nLAB_000a45f4:\n                    /* WARNING: Does not return */\n      pcVar2 = (code *)trap(0);\n      (*pcVar2)();\n    }\n    bVar1 = *(byte *)(iVar3 + 0x37);\n    while ((bVar1 & 0xc0) != 0x80) {\n      iVar3 = *(int *)(iVar3 + 0x14);\n      if (iVar3 == 0) goto LAB_000a45f4;\n      bVar1 = *(byte *)(iVar3 + 0x37);\n    }\n    (*(code *)(PTR_LAB_00190bc0 + 0x10fc))\n              (iVar4,param_5,param_2,*(undefined4 *)(iVar3 + 0x2c),param_3);\n    FUN_00099d24(param_1,iVar3);\n  }\n  FUN_000a43f8(iVar4,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5dfc,*param_4);\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "code *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (expression_statement "iVar4 = *(int *)(param_1 + 8);" (assignment_expression "iVar4 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 == 0) {\n    iVar4 = (*(code *)(PTR_LAB_00190bc0 + 0x1274))();\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar4 = (*(code *)(PTR_LAB_00190bc0 + 0x1274))();\n  }" { (expression_statement "iVar4 = (*(code *)(PTR_LAB_00190bc0 + 0x1274))();" (assignment_expression "iVar4 = (*(code *)(PTR_LAB_00190bc0 + 0x1274))()" identifier = (call_expression "(*(code *)(PTR_LAB_00190bc0 + 0x1274))()" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc0 + 0x1274))" ( (pointer_expression "*(code *)(PTR_LAB_00190bc0 + 0x1274)" * (cast_expression "(code *)(PTR_LAB_00190bc0 + 0x1274)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bc0 + 0x1274)" ( (binary_expression "PTR_LAB_00190bc0 + 0x1274" identifier + number_literal) )))) )) (argument_list "()" ( )))) ;) })) (expression_statement "(*(code *)(PTR_LAB_00190bc0 + 0xb3c))(param_1,param_3,param_4[7],param_5 == 0x6e,*param_4);" (call_expression "(*(code *)(PTR_LAB_00190bc0 + 0xb3c))(param_1,param_3,param_4[7],param_5 == 0x6e,*param_4)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc0 + 0xb3c))" ( (pointer_expression "*(code *)(PTR_LAB_00190bc0 + 0xb3c)" * (cast_expression "(code *)(PTR_LAB_00190bc0 + 0xb3c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bc0 + 0xb3c)" ( (binary_expression "PTR_LAB_00190bc0 + 0xb3c" identifier + number_literal) )))) )) (argument_list "(param_1,param_3,param_4[7],param_5 == 0x6e,*param_4)" ( identifier , identifier , (subscript_expression "param_4[7]" identifier [ number_literal ]) , (binary_expression "param_5 == 0x6e" identifier == number_literal) , (pointer_expression "*param_4" * identifier) ))) ;) (if_statement "if ((param_4[9] & 0x20) == 0) {\n    (*(code *)(PTR_LAB_00190bc0 + 0x13a0))\n              (iVar4,param_5,param_2,param_4[7],param_3,(int)*(short *)((int)param_4 + 0x2a));\n  }\n  else {\n    iVar3 = param_4[2];\n    if (iVar3 == 0) {\nLAB_000a45f4:\n                    /* WARNING: Does not return */\n      pcVar2 = (code *)trap(0);\n      (*pcVar2)();\n    }\n    bVar1 = *(byte *)(iVar3 + 0x37);\n    while ((bVar1 & 0xc0) != 0x80) {\n      iVar3 = *(int *)(iVar3 + 0x14);\n      if (iVar3 == 0) goto LAB_000a45f4;\n      bVar1 = *(byte *)(iVar3 + 0x37);\n    }\n    (*(code *)(PTR_LAB_00190bc0 + 0x10fc))\n              (iVar4,param_5,param_2,*(undefined4 *)(iVar3 + 0x2c),param_3);\n    FUN_00099d24(param_1,iVar3);\n  }" if (parenthesized_expression "((param_4[9] & 0x20) == 0)" ( (binary_expression "(param_4[9] & 0x20) == 0" (parenthesized_expression "(param_4[9] & 0x20)" ( (binary_expression "param_4[9] & 0x20" (subscript_expression "param_4[9]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n    (*(code *)(PTR_LAB_00190bc0 + 0x13a0))\n              (iVar4,param_5,param_2,param_4[7],param_3,(int)*(short *)((int)param_4 + 0x2a));\n  }" { (expression_statement "(*(code *)(PTR_LAB_00190bc0 + 0x13a0))\n              (iVar4,param_5,param_2,param_4[7],param_3,(int)*(short *)((int)param_4 + 0x2a));" (call_expression "(*(code *)(PTR_LAB_00190bc0 + 0x13a0))\n              (iVar4,param_5,param_2,param_4[7],param_3,(int)*(short *)((int)param_4 + 0x2a))" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc0 + 0x13a0))" ( (pointer_expression "*(code *)(PTR_LAB_00190bc0 + 0x13a0)" * (cast_expression "(code *)(PTR_LAB_00190bc0 + 0x13a0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bc0 + 0x13a0)" ( (binary_expression "PTR_LAB_00190bc0 + 0x13a0" identifier + number_literal) )))) )) (argument_list "(iVar4,param_5,param_2,param_4[7],param_3,(int)*(short *)((int)param_4 + 0x2a))" ( identifier , identifier , identifier , (subscript_expression "param_4[7]" identifier [ number_literal ]) , identifier , (cast_expression "(int)*(short *)((int)param_4 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)param_4 + 0x2a)" * (cast_expression "(short *)((int)param_4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 0x2a)" ( (binary_expression "(int)param_4 + 0x2a" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) ;) }) (else_clause "else {\n    iVar3 = param_4[2];\n    if (iVar3 == 0) {\nLAB_000a45f4:\n                    /* WARNING: Does not return */\n      pcVar2 = (code *)trap(0);\n      (*pcVar2)();\n    }\n    bVar1 = *(byte *)(iVar3 + 0x37);\n    while ((bVar1 & 0xc0) != 0x80) {\n      iVar3 = *(int *)(iVar3 + 0x14);\n      if (iVar3 == 0) goto LAB_000a45f4;\n      bVar1 = *(byte *)(iVar3 + 0x37);\n    }\n    (*(code *)(PTR_LAB_00190bc0 + 0x10fc))\n              (iVar4,param_5,param_2,*(undefined4 *)(iVar3 + 0x2c),param_3);\n    FUN_00099d24(param_1,iVar3);\n  }" else (compound_statement "{\n    iVar3 = param_4[2];\n    if (iVar3 == 0) {\nLAB_000a45f4:\n                    /* WARNING: Does not return */\n      pcVar2 = (code *)trap(0);\n      (*pcVar2)();\n    }\n    bVar1 = *(byte *)(iVar3 + 0x37);\n    while ((bVar1 & 0xc0) != 0x80) {\n      iVar3 = *(int *)(iVar3 + 0x14);\n      if (iVar3 == 0) goto LAB_000a45f4;\n      bVar1 = *(byte *)(iVar3 + 0x37);\n    }\n    (*(code *)(PTR_LAB_00190bc0 + 0x10fc))\n              (iVar4,param_5,param_2,*(undefined4 *)(iVar3 + 0x2c),param_3);\n    FUN_00099d24(param_1,iVar3);\n  }" { (expression_statement "iVar3 = param_4[2];" (assignment_expression "iVar3 = param_4[2]" identifier = (subscript_expression "param_4[2]" identifier [ number_literal ])) ;) (if_statement "if (iVar3 == 0) {\nLAB_000a45f4:\n                    /* WARNING: Does not return */\n      pcVar2 = (code *)trap(0);\n      (*pcVar2)();\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000a45f4:\n                    /* WARNING: Does not return */\n      pcVar2 = (code *)trap(0);\n      (*pcVar2)();\n    }" { (labeled_statement "LAB_000a45f4:\n                    /* WARNING: Does not return */\n      pcVar2 = (code *)trap(0);" statement_identifier : comment (expression_statement "pcVar2 = (code *)trap(0);" (assignment_expression "pcVar2 = (code *)trap(0)" identifier = (cast_expression "(code *)trap(0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "trap(0)" identifier (argument_list "(0)" ( number_literal ))))) ;)) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) })) (expression_statement "bVar1 = *(byte *)(iVar3 + 0x37);" (assignment_expression "bVar1 = *(byte *)(iVar3 + 0x37)" identifier = (pointer_expression "*(byte *)(iVar3 + 0x37)" * (cast_expression "(byte *)(iVar3 + 0x37)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x37)" ( (binary_expression "iVar3 + 0x37" identifier + number_literal) ))))) ;) (while_statement "while ((bVar1 & 0xc0) != 0x80) {\n      iVar3 = *(int *)(iVar3 + 0x14);\n      if (iVar3 == 0) goto LAB_000a45f4;\n      bVar1 = *(byte *)(iVar3 + 0x37);\n    }" while (parenthesized_expression "((bVar1 & 0xc0) != 0x80)" ( (binary_expression "(bVar1 & 0xc0) != 0x80" (parenthesized_expression "(bVar1 & 0xc0)" ( (binary_expression "bVar1 & 0xc0" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      iVar3 = *(int *)(iVar3 + 0x14);\n      if (iVar3 == 0) goto LAB_000a45f4;\n      bVar1 = *(byte *)(iVar3 + 0x37);\n    }" { (expression_statement "iVar3 = *(int *)(iVar3 + 0x14);" (assignment_expression "iVar3 = *(int *)(iVar3 + 0x14)" identifier = (pointer_expression "*(int *)(iVar3 + 0x14)" * (cast_expression "(int *)(iVar3 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) goto LAB_000a45f4;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000a45f4;" goto statement_identifier ;)) (expression_statement "bVar1 = *(byte *)(iVar3 + 0x37);" (assignment_expression "bVar1 = *(byte *)(iVar3 + 0x37)" identifier = (pointer_expression "*(byte *)(iVar3 + 0x37)" * (cast_expression "(byte *)(iVar3 + 0x37)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x37)" ( (binary_expression "iVar3 + 0x37" identifier + number_literal) ))))) ;) })) (expression_statement "(*(code *)(PTR_LAB_00190bc0 + 0x10fc))\n              (iVar4,param_5,param_2,*(undefined4 *)(iVar3 + 0x2c),param_3);" (call_expression "(*(code *)(PTR_LAB_00190bc0 + 0x10fc))\n              (iVar4,param_5,param_2,*(undefined4 *)(iVar3 + 0x2c),param_3)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc0 + 0x10fc))" ( (pointer_expression "*(code *)(PTR_LAB_00190bc0 + 0x10fc)" * (cast_expression "(code *)(PTR_LAB_00190bc0 + 0x10fc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bc0 + 0x10fc)" ( (binary_expression "PTR_LAB_00190bc0 + 0x10fc" identifier + number_literal) )))) )) (argument_list "(iVar4,param_5,param_2,*(undefined4 *)(iVar3 + 0x2c),param_3)" ( identifier , identifier , identifier , (pointer_expression "*(undefined4 *)(iVar3 + 0x2c)" * (cast_expression "(undefined4 *)(iVar3 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2c)" ( (binary_expression "iVar3 + 0x2c" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "FUN_00099d24(param_1,iVar3);" (call_expression "FUN_00099d24(param_1,iVar3)" identifier (argument_list "(param_1,iVar3)" ( identifier , identifier ))) ;) }))) (expression_statement "FUN_000a43f8(iVar4,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5dfc,*param_4);" (call_expression "FUN_000a43f8(iVar4,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5dfc,*param_4)" identifier (argument_list "(iVar4,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5dfc,*param_4)" ( identifier , (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5dfc" identifier + number_literal) , (pointer_expression "*param_4" * identifier) ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void sqlite3OpenTable(Parse *pParse,int iCur,int iDb,Table *pTab,int opcode)\n\n{\n  byte bVar1;\n  code *pcVar2;\n  Index *pIdx;\n  Vdbe *p;\n  \n  p = pParse->pVdbe;\n  if (p == (Vdbe *)0x0) {\n    p = (Vdbe *)(*(code *)(PTR_LAB_00190bc0 + 0x1274))();\n  }\n  (*(code *)(PTR_LAB_00190bc0 + 0xb3c))(pParse,iDb,pTab->tnum,opcode == 0x6e,pTab->zName);\n  if ((pTab->tabFlags & 0x20) == 0) {\n    (*(code *)(PTR_LAB_00190bc0 + 0x13a0))(p,opcode,iCur,pTab->tnum,iDb,(int)pTab->nCol);\n  }\n  else {\n    pIdx = pTab->pIndex;\n    if (pIdx == (Index *)0x0) {\nLAB_000a45f4:\n                    /* WARNING: Does not return */\n      pcVar2 = (code *)trap(0);\n      (*pcVar2)();\n    }\n    bVar1 = pIdx->field_0x37;\n    while ((bVar1 & 0xc0) != 0x80) {\n      pIdx = pIdx->pNext;\n      if (pIdx == (Index *)0x0) goto LAB_000a45f4;\n      bVar1 = pIdx->field_0x37;\n    }\n    (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(p,opcode,iCur,pIdx->tnum,iDb);\n    sqlite3VdbeSetP4KeyInfo(pParse,pIdx);\n  }\n  sqlite3VdbeComment(p,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5dfc,pTab->zName);\n  return;\n}\n\n" (function_definition "void sqlite3OpenTable(Parse *pParse,int iCur,int iDb,Table *pTab,int opcode)\n\n{\n  byte bVar1;\n  code *pcVar2;\n  Index *pIdx;\n  Vdbe *p;\n  \n  p = pParse->pVdbe;\n  if (p == (Vdbe *)0x0) {\n    p = (Vdbe *)(*(code *)(PTR_LAB_00190bc0 + 0x1274))();\n  }\n  (*(code *)(PTR_LAB_00190bc0 + 0xb3c))(pParse,iDb,pTab->tnum,opcode == 0x6e,pTab->zName);\n  if ((pTab->tabFlags & 0x20) == 0) {\n    (*(code *)(PTR_LAB_00190bc0 + 0x13a0))(p,opcode,iCur,pTab->tnum,iDb,(int)pTab->nCol);\n  }\n  else {\n    pIdx = pTab->pIndex;\n    if (pIdx == (Index *)0x0) {\nLAB_000a45f4:\n                    /* WARNING: Does not return */\n      pcVar2 = (code *)trap(0);\n      (*pcVar2)();\n    }\n    bVar1 = pIdx->field_0x37;\n    while ((bVar1 & 0xc0) != 0x80) {\n      pIdx = pIdx->pNext;\n      if (pIdx == (Index *)0x0) goto LAB_000a45f4;\n      bVar1 = pIdx->field_0x37;\n    }\n    (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(p,opcode,iCur,pIdx->tnum,iDb);\n    sqlite3VdbeSetP4KeyInfo(pParse,pIdx);\n  }\n  sqlite3VdbeComment(p,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5dfc,pTab->zName);\n  return;\n}" primitive_type (function_declarator "sqlite3OpenTable(Parse *pParse,int iCur,int iDb,Table *pTab,int opcode)" identifier (parameter_list "(Parse *pParse,int iCur,int iDb,Table *pTab,int opcode)" ( (parameter_declaration "Parse *pParse" type_identifier (pointer_declarator "*pParse" * identifier)) , (parameter_declaration "int iCur" primitive_type identifier) , (parameter_declaration "int iDb" primitive_type identifier) , (parameter_declaration "Table *pTab" type_identifier (pointer_declarator "*pTab" * identifier)) , (parameter_declaration "int opcode" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  code *pcVar2;\n  Index *pIdx;\n  Vdbe *p;\n  \n  p = pParse->pVdbe;\n  if (p == (Vdbe *)0x0) {\n    p = (Vdbe *)(*(code *)(PTR_LAB_00190bc0 + 0x1274))();\n  }\n  (*(code *)(PTR_LAB_00190bc0 + 0xb3c))(pParse,iDb,pTab->tnum,opcode == 0x6e,pTab->zName);\n  if ((pTab->tabFlags & 0x20) == 0) {\n    (*(code *)(PTR_LAB_00190bc0 + 0x13a0))(p,opcode,iCur,pTab->tnum,iDb,(int)pTab->nCol);\n  }\n  else {\n    pIdx = pTab->pIndex;\n    if (pIdx == (Index *)0x0) {\nLAB_000a45f4:\n                    /* WARNING: Does not return */\n      pcVar2 = (code *)trap(0);\n      (*pcVar2)();\n    }\n    bVar1 = pIdx->field_0x37;\n    while ((bVar1 & 0xc0) != 0x80) {\n      pIdx = pIdx->pNext;\n      if (pIdx == (Index *)0x0) goto LAB_000a45f4;\n      bVar1 = pIdx->field_0x37;\n    }\n    (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(p,opcode,iCur,pIdx->tnum,iDb);\n    sqlite3VdbeSetP4KeyInfo(pParse,pIdx);\n  }\n  sqlite3VdbeComment(p,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5dfc,pTab->zName);\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "code *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "Index *pIdx;" type_identifier (pointer_declarator "*pIdx" * identifier) ;) (declaration "Vdbe *p;" type_identifier (pointer_declarator "*p" * identifier) ;) (expression_statement "p = pParse->pVdbe;" (assignment_expression "p = pParse->pVdbe" identifier = (field_expression "pParse->pVdbe" identifier -> field_identifier)) ;) (if_statement "if (p == (Vdbe *)0x0) {\n    p = (Vdbe *)(*(code *)(PTR_LAB_00190bc0 + 0x1274))();\n  }" if (parenthesized_expression "(p == (Vdbe *)0x0)" ( (binary_expression "p == (Vdbe *)0x0" identifier == (cast_expression "(Vdbe *)0x0" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    p = (Vdbe *)(*(code *)(PTR_LAB_00190bc0 + 0x1274))();\n  }" { (expression_statement "p = (Vdbe *)(*(code *)(PTR_LAB_00190bc0 + 0x1274))();" (assignment_expression "p = (Vdbe *)(*(code *)(PTR_LAB_00190bc0 + 0x1274))()" identifier = (cast_expression "(Vdbe *)(*(code *)(PTR_LAB_00190bc0 + 0x1274))()" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_00190bc0 + 0x1274))()" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc0 + 0x1274))" ( (pointer_expression "*(code *)(PTR_LAB_00190bc0 + 0x1274)" * (cast_expression "(code *)(PTR_LAB_00190bc0 + 0x1274)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bc0 + 0x1274)" ( (binary_expression "PTR_LAB_00190bc0 + 0x1274" identifier + number_literal) )))) )) (argument_list "()" ( ))))) ;) })) (expression_statement "(*(code *)(PTR_LAB_00190bc0 + 0xb3c))(pParse,iDb,pTab->tnum,opcode == 0x6e,pTab->zName);" (call_expression "(*(code *)(PTR_LAB_00190bc0 + 0xb3c))(pParse,iDb,pTab->tnum,opcode == 0x6e,pTab->zName)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc0 + 0xb3c))" ( (pointer_expression "*(code *)(PTR_LAB_00190bc0 + 0xb3c)" * (cast_expression "(code *)(PTR_LAB_00190bc0 + 0xb3c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bc0 + 0xb3c)" ( (binary_expression "PTR_LAB_00190bc0 + 0xb3c" identifier + number_literal) )))) )) (argument_list "(pParse,iDb,pTab->tnum,opcode == 0x6e,pTab->zName)" ( identifier , identifier , (field_expression "pTab->tnum" identifier -> field_identifier) , (binary_expression "opcode == 0x6e" identifier == number_literal) , (field_expression "pTab->zName" identifier -> field_identifier) ))) ;) (if_statement "if ((pTab->tabFlags & 0x20) == 0) {\n    (*(code *)(PTR_LAB_00190bc0 + 0x13a0))(p,opcode,iCur,pTab->tnum,iDb,(int)pTab->nCol);\n  }\n  else {\n    pIdx = pTab->pIndex;\n    if (pIdx == (Index *)0x0) {\nLAB_000a45f4:\n                    /* WARNING: Does not return */\n      pcVar2 = (code *)trap(0);\n      (*pcVar2)();\n    }\n    bVar1 = pIdx->field_0x37;\n    while ((bVar1 & 0xc0) != 0x80) {\n      pIdx = pIdx->pNext;\n      if (pIdx == (Index *)0x0) goto LAB_000a45f4;\n      bVar1 = pIdx->field_0x37;\n    }\n    (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(p,opcode,iCur,pIdx->tnum,iDb);\n    sqlite3VdbeSetP4KeyInfo(pParse,pIdx);\n  }" if (parenthesized_expression "((pTab->tabFlags & 0x20) == 0)" ( (binary_expression "(pTab->tabFlags & 0x20) == 0" (parenthesized_expression "(pTab->tabFlags & 0x20)" ( (binary_expression "pTab->tabFlags & 0x20" (field_expression "pTab->tabFlags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    (*(code *)(PTR_LAB_00190bc0 + 0x13a0))(p,opcode,iCur,pTab->tnum,iDb,(int)pTab->nCol);\n  }" { (expression_statement "(*(code *)(PTR_LAB_00190bc0 + 0x13a0))(p,opcode,iCur,pTab->tnum,iDb,(int)pTab->nCol);" (call_expression "(*(code *)(PTR_LAB_00190bc0 + 0x13a0))(p,opcode,iCur,pTab->tnum,iDb,(int)pTab->nCol)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc0 + 0x13a0))" ( (pointer_expression "*(code *)(PTR_LAB_00190bc0 + 0x13a0)" * (cast_expression "(code *)(PTR_LAB_00190bc0 + 0x13a0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bc0 + 0x13a0)" ( (binary_expression "PTR_LAB_00190bc0 + 0x13a0" identifier + number_literal) )))) )) (argument_list "(p,opcode,iCur,pTab->tnum,iDb,(int)pTab->nCol)" ( identifier , identifier , identifier , (field_expression "pTab->tnum" identifier -> field_identifier) , identifier , (cast_expression "(int)pTab->nCol" ( (type_descriptor "int" primitive_type) ) (field_expression "pTab->nCol" identifier -> field_identifier)) ))) ;) }) (else_clause "else {\n    pIdx = pTab->pIndex;\n    if (pIdx == (Index *)0x0) {\nLAB_000a45f4:\n                    /* WARNING: Does not return */\n      pcVar2 = (code *)trap(0);\n      (*pcVar2)();\n    }\n    bVar1 = pIdx->field_0x37;\n    while ((bVar1 & 0xc0) != 0x80) {\n      pIdx = pIdx->pNext;\n      if (pIdx == (Index *)0x0) goto LAB_000a45f4;\n      bVar1 = pIdx->field_0x37;\n    }\n    (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(p,opcode,iCur,pIdx->tnum,iDb);\n    sqlite3VdbeSetP4KeyInfo(pParse,pIdx);\n  }" else (compound_statement "{\n    pIdx = pTab->pIndex;\n    if (pIdx == (Index *)0x0) {\nLAB_000a45f4:\n                    /* WARNING: Does not return */\n      pcVar2 = (code *)trap(0);\n      (*pcVar2)();\n    }\n    bVar1 = pIdx->field_0x37;\n    while ((bVar1 & 0xc0) != 0x80) {\n      pIdx = pIdx->pNext;\n      if (pIdx == (Index *)0x0) goto LAB_000a45f4;\n      bVar1 = pIdx->field_0x37;\n    }\n    (*(code *)(PTR_LAB_00190bc0 + 0x10fc))(p,opcode,iCur,pIdx->tnum,iDb);\n    sqlite3VdbeSetP4KeyInfo(pParse,pIdx);\n  }" { (expression_statement "pIdx = pTab->pIndex;" (assignment_expression "pIdx = pTab->pIndex" identifier = (field_expression "pTab->pIndex" identifier -> field_identifier)) ;) (if_statement "if (pIdx == (Index *)0x0) {\nLAB_000a45f4:\n                    /* WARNING: Does not return */\n      pcVar2 = (code *)trap(0);\n      (*pcVar2)();\n    }" if (parenthesized_expression "(pIdx == (Index *)0x0)" ( (binary_expression "pIdx == (Index *)0x0" identifier == (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000a45f4:\n                    /* WARNING: Does not return */\n      pcVar2 = (code *)trap(0);\n      (*pcVar2)();\n    }" { (labeled_statement "LAB_000a45f4:\n                    /* WARNING: Does not return */\n      pcVar2 = (code *)trap(0);" statement_identifier : comment (expression_statement "pcVar2 = (code *)trap(0);" (assignment_expression "pcVar2 = (code *)trap(0)" identifier = (cast_expression "(code *)trap(0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "trap(0)" identifier (argument_list "(0)" ( number_literal ))))) ;)) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) })) (expression_statement "bVar1 = pIdx->field_0x37;" (assignment_expression "bVar1 = pIdx->field_0x37" identifier = (field_expression "pIdx->field_0x37" identifier -> field_identifier)) ;) (while_statement "while ((bVar1 & 0xc0) != 0x80) {\n      pIdx = pIdx->pNext;\n      if (pIdx == (Index *)0x0) goto LAB_000a45f4;\n      bVar1 = pIdx->field_0x37;\n    }" while (parenthesized_expression "((bVar1 & 0xc0) != 0x80)" ( (binary_expression "(bVar1 & 0xc0) != 0x80" (parenthesized_expression "(bVar1 & 0xc0)" ( (binary_expression "bVar1 & 0xc0" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      pIdx = pIdx->pNext;\n      if (pIdx == (Index *)0x0) goto LAB_000a45f4;\n      bVar1 = pIdx->field_0x37;\n    }" { (expression_statement "pIdx = pIdx->pNext;" (assignment_expression "pIdx = pIdx->pNext" identifier = (field_expression "pIdx->pNext" identifier -> field_identifier)) ;) (if_statement "if (pIdx == (Index *)0x0) goto LAB_000a45f4;" if (parenthesized_expression "(pIdx == (Index *)0x0)" ( (binary_expression "pIdx == (Index *)0x0" identifier == (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000a45f4;" goto statement_identifier ;)) (expression_statement "bVar1 = pIdx->field_0x37;" (assignment_expression "bVar1 = pIdx->field_0x37" identifier = (field_expression "pIdx->field_0x37" identifier -> field_identifier)) ;) })) (expression_statement "(*(code *)(PTR_LAB_00190bc0 + 0x10fc))(p,opcode,iCur,pIdx->tnum,iDb);" (call_expression "(*(code *)(PTR_LAB_00190bc0 + 0x10fc))(p,opcode,iCur,pIdx->tnum,iDb)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc0 + 0x10fc))" ( (pointer_expression "*(code *)(PTR_LAB_00190bc0 + 0x10fc)" * (cast_expression "(code *)(PTR_LAB_00190bc0 + 0x10fc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bc0 + 0x10fc)" ( (binary_expression "PTR_LAB_00190bc0 + 0x10fc" identifier + number_literal) )))) )) (argument_list "(p,opcode,iCur,pIdx->tnum,iDb)" ( identifier , identifier , identifier , (field_expression "pIdx->tnum" identifier -> field_identifier) , identifier ))) ;) (expression_statement "sqlite3VdbeSetP4KeyInfo(pParse,pIdx);" (call_expression "sqlite3VdbeSetP4KeyInfo(pParse,pIdx)" identifier (argument_list "(pParse,pIdx)" ( identifier , identifier ))) ;) }))) (expression_statement "sqlite3VdbeComment(p,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5dfc,pTab->zName);" (call_expression "sqlite3VdbeComment(p,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5dfc,pTab->zName)" identifier (argument_list "(p,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5dfc,pTab->zName)" ( identifier , (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5dfc" identifier + number_literal) , (field_expression "pTab->zName" identifier -> field_identifier) ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_000a4470(int param_1,undefined4 param_2,undefined4 param_3,undefined4 *param_4,int param_5)\n\n{\n  byte bVar1;\n  code *pcVar2;\n  int iVar3;\n  int iVar4;\n  \n  iVar4 = *(int *)(param_1 + 8);\n  if (iVar4 == 0) {\n    iVar4 = (*(code *)(PTR_LAB_00190bc0 + 0x1274))();\n  }\n  (*(code *)(PTR_LAB_00190bc0 + 0xb3c))(param_1,param_3,param_4[7],param_5 == 0x6e,*param_4);\n  if ((param_4[9] & 0x20) == 0) {\n    (*(code *)(PTR_LAB_00190bc0 + 0x13a0))\n              (iVar4,param_5,param_2,param_4[7],param_3,(int)*(short *)((int)param_4 + 0x2a));\n  }\n  else {\n    iVar3 = param_4[2];\n    if (iVar3 == 0) {\nLAB_000a45f4:\n                    \n      pcVar2 = (code *)trap(0);\n      (*pcVar2)();\n    }\n    bVar1 = *(byte *)(iVar3 + 0x37);\n    while ((bVar1 & 0xc0) != 0x80) {\n      iVar3 = *(int *)(iVar3 + 0x14);\n      if (iVar3 == 0) goto LAB_000a45f4;\n      bVar1 = *(byte *)(iVar3 + 0x37);\n    }\n    (*(code *)(PTR_LAB_00190bc0 + 0x10fc))\n              (iVar4,param_5,param_2,*(undefined4 *)(iVar3 + 0x2c),param_3);\n    FUN_00099d24(param_1,iVar3);\n  }\n  FUN_000a43f8(iVar4,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5dfc,*param_4);\n  return;\n}\n\n" (function_definition "void FUN_000a4470(int param_1,undefined4 param_2,undefined4 param_3,undefined4 *param_4,int param_5)\n\n{\n  byte bVar1;\n  code *pcVar2;\n  int iVar3;\n  int iVar4;\n  \n  iVar4 = *(int *)(param_1 + 8);\n  if (iVar4 == 0) {\n    iVar4 = (*(code *)(PTR_LAB_00190bc0 + 0x1274))();\n  }\n  (*(code *)(PTR_LAB_00190bc0 + 0xb3c))(param_1,param_3,param_4[7],param_5 == 0x6e,*param_4);\n  if ((param_4[9] & 0x20) == 0) {\n    (*(code *)(PTR_LAB_00190bc0 + 0x13a0))\n              (iVar4,param_5,param_2,param_4[7],param_3,(int)*(short *)((int)param_4 + 0x2a));\n  }\n  else {\n    iVar3 = param_4[2];\n    if (iVar3 == 0) {\nLAB_000a45f4:\n                    \n      pcVar2 = (code *)trap(0);\n      (*pcVar2)();\n    }\n    bVar1 = *(byte *)(iVar3 + 0x37);\n    while ((bVar1 & 0xc0) != 0x80) {\n      iVar3 = *(int *)(iVar3 + 0x14);\n      if (iVar3 == 0) goto LAB_000a45f4;\n      bVar1 = *(byte *)(iVar3 + 0x37);\n    }\n    (*(code *)(PTR_LAB_00190bc0 + 0x10fc))\n              (iVar4,param_5,param_2,*(undefined4 *)(iVar3 + 0x2c),param_3);\n    FUN_00099d24(param_1,iVar3);\n  }\n  FUN_000a43f8(iVar4,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5dfc,*param_4);\n  return;\n}" primitive_type (function_declarator "FUN_000a4470(int param_1,undefined4 param_2,undefined4 param_3,undefined4 *param_4,int param_5)" identifier (parameter_list "(int param_1,undefined4 param_2,undefined4 param_3,undefined4 *param_4,int param_5)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int param_5" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  code *pcVar2;\n  int iVar3;\n  int iVar4;\n  \n  iVar4 = *(int *)(param_1 + 8);\n  if (iVar4 == 0) {\n    iVar4 = (*(code *)(PTR_LAB_00190bc0 + 0x1274))();\n  }\n  (*(code *)(PTR_LAB_00190bc0 + 0xb3c))(param_1,param_3,param_4[7],param_5 == 0x6e,*param_4);\n  if ((param_4[9] & 0x20) == 0) {\n    (*(code *)(PTR_LAB_00190bc0 + 0x13a0))\n              (iVar4,param_5,param_2,param_4[7],param_3,(int)*(short *)((int)param_4 + 0x2a));\n  }\n  else {\n    iVar3 = param_4[2];\n    if (iVar3 == 0) {\nLAB_000a45f4:\n                    \n      pcVar2 = (code *)trap(0);\n      (*pcVar2)();\n    }\n    bVar1 = *(byte *)(iVar3 + 0x37);\n    while ((bVar1 & 0xc0) != 0x80) {\n      iVar3 = *(int *)(iVar3 + 0x14);\n      if (iVar3 == 0) goto LAB_000a45f4;\n      bVar1 = *(byte *)(iVar3 + 0x37);\n    }\n    (*(code *)(PTR_LAB_00190bc0 + 0x10fc))\n              (iVar4,param_5,param_2,*(undefined4 *)(iVar3 + 0x2c),param_3);\n    FUN_00099d24(param_1,iVar3);\n  }\n  FUN_000a43f8(iVar4,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5dfc,*param_4);\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "code *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (expression_statement "iVar4 = *(int *)(param_1 + 8);" (assignment_expression "iVar4 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 == 0) {\n    iVar4 = (*(code *)(PTR_LAB_00190bc0 + 0x1274))();\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar4 = (*(code *)(PTR_LAB_00190bc0 + 0x1274))();\n  }" { (expression_statement "iVar4 = (*(code *)(PTR_LAB_00190bc0 + 0x1274))();" (assignment_expression "iVar4 = (*(code *)(PTR_LAB_00190bc0 + 0x1274))()" identifier = (call_expression "(*(code *)(PTR_LAB_00190bc0 + 0x1274))()" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc0 + 0x1274))" ( (pointer_expression "*(code *)(PTR_LAB_00190bc0 + 0x1274)" * (cast_expression "(code *)(PTR_LAB_00190bc0 + 0x1274)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bc0 + 0x1274)" ( (binary_expression "PTR_LAB_00190bc0 + 0x1274" identifier + number_literal) )))) )) (argument_list "()" ( )))) ;) })) (expression_statement "(*(code *)(PTR_LAB_00190bc0 + 0xb3c))(param_1,param_3,param_4[7],param_5 == 0x6e,*param_4);" (call_expression "(*(code *)(PTR_LAB_00190bc0 + 0xb3c))(param_1,param_3,param_4[7],param_5 == 0x6e,*param_4)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc0 + 0xb3c))" ( (pointer_expression "*(code *)(PTR_LAB_00190bc0 + 0xb3c)" * (cast_expression "(code *)(PTR_LAB_00190bc0 + 0xb3c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bc0 + 0xb3c)" ( (binary_expression "PTR_LAB_00190bc0 + 0xb3c" identifier + number_literal) )))) )) (argument_list "(param_1,param_3,param_4[7],param_5 == 0x6e,*param_4)" ( identifier , identifier , (subscript_expression "param_4[7]" identifier [ number_literal ]) , (binary_expression "param_5 == 0x6e" identifier == number_literal) , (pointer_expression "*param_4" * identifier) ))) ;) (if_statement "if ((param_4[9] & 0x20) == 0) {\n    (*(code *)(PTR_LAB_00190bc0 + 0x13a0))\n              (iVar4,param_5,param_2,param_4[7],param_3,(int)*(short *)((int)param_4 + 0x2a));\n  }\n  else {\n    iVar3 = param_4[2];\n    if (iVar3 == 0) {\nLAB_000a45f4:\n                    \n      pcVar2 = (code *)trap(0);\n      (*pcVar2)();\n    }\n    bVar1 = *(byte *)(iVar3 + 0x37);\n    while ((bVar1 & 0xc0) != 0x80) {\n      iVar3 = *(int *)(iVar3 + 0x14);\n      if (iVar3 == 0) goto LAB_000a45f4;\n      bVar1 = *(byte *)(iVar3 + 0x37);\n    }\n    (*(code *)(PTR_LAB_00190bc0 + 0x10fc))\n              (iVar4,param_5,param_2,*(undefined4 *)(iVar3 + 0x2c),param_3);\n    FUN_00099d24(param_1,iVar3);\n  }" if (parenthesized_expression "((param_4[9] & 0x20) == 0)" ( (binary_expression "(param_4[9] & 0x20) == 0" (parenthesized_expression "(param_4[9] & 0x20)" ( (binary_expression "param_4[9] & 0x20" (subscript_expression "param_4[9]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n    (*(code *)(PTR_LAB_00190bc0 + 0x13a0))\n              (iVar4,param_5,param_2,param_4[7],param_3,(int)*(short *)((int)param_4 + 0x2a));\n  }" { (expression_statement "(*(code *)(PTR_LAB_00190bc0 + 0x13a0))\n              (iVar4,param_5,param_2,param_4[7],param_3,(int)*(short *)((int)param_4 + 0x2a));" (call_expression "(*(code *)(PTR_LAB_00190bc0 + 0x13a0))\n              (iVar4,param_5,param_2,param_4[7],param_3,(int)*(short *)((int)param_4 + 0x2a))" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc0 + 0x13a0))" ( (pointer_expression "*(code *)(PTR_LAB_00190bc0 + 0x13a0)" * (cast_expression "(code *)(PTR_LAB_00190bc0 + 0x13a0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bc0 + 0x13a0)" ( (binary_expression "PTR_LAB_00190bc0 + 0x13a0" identifier + number_literal) )))) )) (argument_list "(iVar4,param_5,param_2,param_4[7],param_3,(int)*(short *)((int)param_4 + 0x2a))" ( identifier , identifier , identifier , (subscript_expression "param_4[7]" identifier [ number_literal ]) , identifier , (cast_expression "(int)*(short *)((int)param_4 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)param_4 + 0x2a)" * (cast_expression "(short *)((int)param_4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 0x2a)" ( (binary_expression "(int)param_4 + 0x2a" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) ;) }) (else_clause "else {\n    iVar3 = param_4[2];\n    if (iVar3 == 0) {\nLAB_000a45f4:\n                    \n      pcVar2 = (code *)trap(0);\n      (*pcVar2)();\n    }\n    bVar1 = *(byte *)(iVar3 + 0x37);\n    while ((bVar1 & 0xc0) != 0x80) {\n      iVar3 = *(int *)(iVar3 + 0x14);\n      if (iVar3 == 0) goto LAB_000a45f4;\n      bVar1 = *(byte *)(iVar3 + 0x37);\n    }\n    (*(code *)(PTR_LAB_00190bc0 + 0x10fc))\n              (iVar4,param_5,param_2,*(undefined4 *)(iVar3 + 0x2c),param_3);\n    FUN_00099d24(param_1,iVar3);\n  }" else (compound_statement "{\n    iVar3 = param_4[2];\n    if (iVar3 == 0) {\nLAB_000a45f4:\n                    \n      pcVar2 = (code *)trap(0);\n      (*pcVar2)();\n    }\n    bVar1 = *(byte *)(iVar3 + 0x37);\n    while ((bVar1 & 0xc0) != 0x80) {\n      iVar3 = *(int *)(iVar3 + 0x14);\n      if (iVar3 == 0) goto LAB_000a45f4;\n      bVar1 = *(byte *)(iVar3 + 0x37);\n    }\n    (*(code *)(PTR_LAB_00190bc0 + 0x10fc))\n              (iVar4,param_5,param_2,*(undefined4 *)(iVar3 + 0x2c),param_3);\n    FUN_00099d24(param_1,iVar3);\n  }" { (expression_statement "iVar3 = param_4[2];" (assignment_expression "iVar3 = param_4[2]" identifier = (subscript_expression "param_4[2]" identifier [ number_literal ])) ;) (if_statement "if (iVar3 == 0) {\nLAB_000a45f4:\n                    \n      pcVar2 = (code *)trap(0);\n      (*pcVar2)();\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000a45f4:\n                    \n      pcVar2 = (code *)trap(0);\n      (*pcVar2)();\n    }" { (labeled_statement "LAB_000a45f4:\n                    \n      pcVar2 = (code *)trap(0);" statement_identifier : (expression_statement "pcVar2 = (code *)trap(0);" (assignment_expression "pcVar2 = (code *)trap(0)" identifier = (cast_expression "(code *)trap(0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "trap(0)" identifier (argument_list "(0)" ( number_literal ))))) ;)) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) })) (expression_statement "bVar1 = *(byte *)(iVar3 + 0x37);" (assignment_expression "bVar1 = *(byte *)(iVar3 + 0x37)" identifier = (pointer_expression "*(byte *)(iVar3 + 0x37)" * (cast_expression "(byte *)(iVar3 + 0x37)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x37)" ( (binary_expression "iVar3 + 0x37" identifier + number_literal) ))))) ;) (while_statement "while ((bVar1 & 0xc0) != 0x80) {\n      iVar3 = *(int *)(iVar3 + 0x14);\n      if (iVar3 == 0) goto LAB_000a45f4;\n      bVar1 = *(byte *)(iVar3 + 0x37);\n    }" while (parenthesized_expression "((bVar1 & 0xc0) != 0x80)" ( (binary_expression "(bVar1 & 0xc0) != 0x80" (parenthesized_expression "(bVar1 & 0xc0)" ( (binary_expression "bVar1 & 0xc0" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      iVar3 = *(int *)(iVar3 + 0x14);\n      if (iVar3 == 0) goto LAB_000a45f4;\n      bVar1 = *(byte *)(iVar3 + 0x37);\n    }" { (expression_statement "iVar3 = *(int *)(iVar3 + 0x14);" (assignment_expression "iVar3 = *(int *)(iVar3 + 0x14)" identifier = (pointer_expression "*(int *)(iVar3 + 0x14)" * (cast_expression "(int *)(iVar3 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) goto LAB_000a45f4;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000a45f4;" goto statement_identifier ;)) (expression_statement "bVar1 = *(byte *)(iVar3 + 0x37);" (assignment_expression "bVar1 = *(byte *)(iVar3 + 0x37)" identifier = (pointer_expression "*(byte *)(iVar3 + 0x37)" * (cast_expression "(byte *)(iVar3 + 0x37)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x37)" ( (binary_expression "iVar3 + 0x37" identifier + number_literal) ))))) ;) })) (expression_statement "(*(code *)(PTR_LAB_00190bc0 + 0x10fc))\n              (iVar4,param_5,param_2,*(undefined4 *)(iVar3 + 0x2c),param_3);" (call_expression "(*(code *)(PTR_LAB_00190bc0 + 0x10fc))\n              (iVar4,param_5,param_2,*(undefined4 *)(iVar3 + 0x2c),param_3)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc0 + 0x10fc))" ( (pointer_expression "*(code *)(PTR_LAB_00190bc0 + 0x10fc)" * (cast_expression "(code *)(PTR_LAB_00190bc0 + 0x10fc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bc0 + 0x10fc)" ( (binary_expression "PTR_LAB_00190bc0 + 0x10fc" identifier + number_literal) )))) )) (argument_list "(iVar4,param_5,param_2,*(undefined4 *)(iVar3 + 0x2c),param_3)" ( identifier , identifier , identifier , (pointer_expression "*(undefined4 *)(iVar3 + 0x2c)" * (cast_expression "(undefined4 *)(iVar3 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2c)" ( (binary_expression "iVar3 + 0x2c" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "FUN_00099d24(param_1,iVar3);" (call_expression "FUN_00099d24(param_1,iVar3)" identifier (argument_list "(param_1,iVar3)" ( identifier , identifier ))) ;) }))) (expression_statement "FUN_000a43f8(iVar4,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5dfc,*param_4);" (call_expression "FUN_000a43f8(iVar4,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5dfc,*param_4)" identifier (argument_list "(iVar4,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5dfc,*param_4)" ( identifier , (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5dfc" identifier + number_literal) , (pointer_expression "*param_4" * identifier) ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == 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 ( )))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , (subscript_expression IDENT [ LIT ]) , (binary_expression IDENT == LIT) , (pointer_expression * IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == 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 , IDENT , IDENT , (subscript_expression IDENT [ LIT ]) , IDENT , (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (while_statement while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , (pointer_expression * IDENT) ))) ;) (return_statement return ;) })))
(function_definition "void FUN_000a4470(int param_1,undefined4 param_2,undefined4 param_3,undefined4 *param_4,int param_5)\n\n{\n  byte bVar1;\n  code *pcVar2;\n  int iVar3;\n  int iVar4;\n  \n  iVar4 = *(int *)(param_1 + 8);\n  if (iVar4 == 0) {\n    iVar4 = (*(code *)(PTR_LAB_00190bc0 + 0x1274))();\n  }\n  (*(code *)(PTR_LAB_00190bc0 + 0xb3c))(param_1,param_3,param_4[7],param_5 == 0x6e,*param_4);\n  if ((param_4[9] & 0x20) == 0) {\n    (*(code *)(PTR_LAB_00190bc0 + 0x13a0))\n              (iVar4,param_5,param_2,param_4[7],param_3,(int)*(short *)((int)param_4 + 0x2a));\n  }\n  else {\n    iVar3 = param_4[2];\n    if (iVar3 == 0) {\nLAB_000a45f4:\n                    \n      pcVar2 = (code *)trap(0);\n      (*pcVar2)();\n    }\n    bVar1 = *(byte *)(iVar3 + 0x37);\n    while ((bVar1 & 0xc0) != 0x80) {\n      iVar3 = *(int *)(iVar3 + 0x14);\n      if (iVar3 == 0) goto LAB_000a45f4;\n      bVar1 = *(byte *)(iVar3 + 0x37);\n    }\n    (*(code *)(PTR_LAB_00190bc0 + 0x10fc))\n              (iVar4,param_5,param_2,*(undefined4 *)(iVar3 + 0x2c),param_3);\n    FUN_00099d24(param_1,iVar3);\n  }\n  FUN_000a43f8(iVar4,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5dfc,*param_4);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_000a4470(int param_1,undefined4 param_2,undefined4 param_3,undefined4 *param_4,int param_5)" (identifier "FUN_000a4470") (parameter_list "(int param_1,undefined4 param_2,undefined4 param_3,undefined4 *param_4,int param_5)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 *param_4" (type_identifier "undefined4") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) () ")"))) (compound_statement "{\n  byte bVar1;\n  code *pcVar2;\n  int iVar3;\n  int iVar4;\n  \n  iVar4 = *(int *)(param_1 + 8);\n  if (iVar4 == 0) {\n    iVar4 = (*(code *)(PTR_LAB_00190bc0 + 0x1274))();\n  }\n  (*(code *)(PTR_LAB_00190bc0 + 0xb3c))(param_1,param_3,param_4[7],param_5 == 0x6e,*param_4);\n  if ((param_4[9] & 0x20) == 0) {\n    (*(code *)(PTR_LAB_00190bc0 + 0x13a0))\n              (iVar4,param_5,param_2,param_4[7],param_3,(int)*(short *)((int)param_4 + 0x2a));\n  }\n  else {\n    iVar3 = param_4[2];\n    if (iVar3 == 0) {\nLAB_000a45f4:\n                    \n      pcVar2 = (code *)trap(0);\n      (*pcVar2)();\n    }\n    bVar1 = *(byte *)(iVar3 + 0x37);\n    while ((bVar1 & 0xc0) != 0x80) {\n      iVar3 = *(int *)(iVar3 + 0x14);\n      if (iVar3 == 0) goto LAB_000a45f4;\n      bVar1 = *(byte *)(iVar3 + 0x37);\n    }\n    (*(code *)(PTR_LAB_00190bc0 + 0x10fc))\n              (iVar4,param_5,param_2,*(undefined4 *)(iVar3 + 0x2c),param_3);\n    FUN_00099d24(param_1,iVar3);\n  }\n  FUN_000a43f8(iVar4,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5dfc,*param_4);\n  return;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "code *pcVar2;" (type_identifier "code") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (expression_statement "iVar4 = *(int *)(param_1 + 8);" (assignment_expression "iVar4 = *(int *)(param_1 + 8)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar4 == 0) {\n    iVar4 = (*(code *)(PTR_LAB_00190bc0 + 0x1274))();\n  }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar4 = (*(code *)(PTR_LAB_00190bc0 + 0x1274))();\n  }" ({ "{") (expression_statement "iVar4 = (*(code *)(PTR_LAB_00190bc0 + 0x1274))();" (assignment_expression "iVar4 = (*(code *)(PTR_LAB_00190bc0 + 0x1274))()" (identifier "iVar4") (= "=") (call_expression "(*(code *)(PTR_LAB_00190bc0 + 0x1274))()" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc0 + 0x1274))" (( "(") (pointer_expression "*(code *)(PTR_LAB_00190bc0 + 0x1274)" (* "*") (cast_expression "(code *)(PTR_LAB_00190bc0 + 0x1274)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190bc0 + 0x1274)" (( "(") (binary_expression "PTR_LAB_00190bc0 + 0x1274" (identifier "PTR_LAB_00190bc0") (+ "+") (number_literal "0x1274")) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (expression_statement "(*(code *)(PTR_LAB_00190bc0 + 0xb3c))(param_1,param_3,param_4[7],param_5 == 0x6e,*param_4);" (call_expression "(*(code *)(PTR_LAB_00190bc0 + 0xb3c))(param_1,param_3,param_4[7],param_5 == 0x6e,*param_4)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc0 + 0xb3c))" (( "(") (pointer_expression "*(code *)(PTR_LAB_00190bc0 + 0xb3c)" (* "*") (cast_expression "(code *)(PTR_LAB_00190bc0 + 0xb3c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190bc0 + 0xb3c)" (( "(") (binary_expression "PTR_LAB_00190bc0 + 0xb3c" (identifier "PTR_LAB_00190bc0") (+ "+") (number_literal "0xb3c")) () ")")))) () ")")) (argument_list "(param_1,param_3,param_4[7],param_5 == 0x6e,*param_4)" (( "(") (identifier "param_1") (, ",") (identifier "param_3") (, ",") (subscript_expression "param_4[7]" (identifier "param_4") ([ "[") (number_literal "7") (] "]")) (, ",") (binary_expression "param_5 == 0x6e" (identifier "param_5") (== "==") (number_literal "0x6e")) (, ",") (pointer_expression "*param_4" (* "*") (identifier "param_4")) () ")"))) (; ";")) (if_statement "if ((param_4[9] & 0x20) == 0) {\n    (*(code *)(PTR_LAB_00190bc0 + 0x13a0))\n              (iVar4,param_5,param_2,param_4[7],param_3,(int)*(short *)((int)param_4 + 0x2a));\n  }\n  else {\n    iVar3 = param_4[2];\n    if (iVar3 == 0) {\nLAB_000a45f4:\n                    \n      pcVar2 = (code *)trap(0);\n      (*pcVar2)();\n    }\n    bVar1 = *(byte *)(iVar3 + 0x37);\n    while ((bVar1 & 0xc0) != 0x80) {\n      iVar3 = *(int *)(iVar3 + 0x14);\n      if (iVar3 == 0) goto LAB_000a45f4;\n      bVar1 = *(byte *)(iVar3 + 0x37);\n    }\n    (*(code *)(PTR_LAB_00190bc0 + 0x10fc))\n              (iVar4,param_5,param_2,*(undefined4 *)(iVar3 + 0x2c),param_3);\n    FUN_00099d24(param_1,iVar3);\n  }" (if "if") (parenthesized_expression "((param_4[9] & 0x20) == 0)" (( "(") (binary_expression "(param_4[9] & 0x20) == 0" (parenthesized_expression "(param_4[9] & 0x20)" (( "(") (binary_expression "param_4[9] & 0x20" (subscript_expression "param_4[9]" (identifier "param_4") ([ "[") (number_literal "9") (] "]")) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    (*(code *)(PTR_LAB_00190bc0 + 0x13a0))\n              (iVar4,param_5,param_2,param_4[7],param_3,(int)*(short *)((int)param_4 + 0x2a));\n  }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_00190bc0 + 0x13a0))\n              (iVar4,param_5,param_2,param_4[7],param_3,(int)*(short *)((int)param_4 + 0x2a));" (call_expression "(*(code *)(PTR_LAB_00190bc0 + 0x13a0))\n              (iVar4,param_5,param_2,param_4[7],param_3,(int)*(short *)((int)param_4 + 0x2a))" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc0 + 0x13a0))" (( "(") (pointer_expression "*(code *)(PTR_LAB_00190bc0 + 0x13a0)" (* "*") (cast_expression "(code *)(PTR_LAB_00190bc0 + 0x13a0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190bc0 + 0x13a0)" (( "(") (binary_expression "PTR_LAB_00190bc0 + 0x13a0" (identifier "PTR_LAB_00190bc0") (+ "+") (number_literal "0x13a0")) () ")")))) () ")")) (argument_list "(iVar4,param_5,param_2,param_4[7],param_3,(int)*(short *)((int)param_4 + 0x2a))" (( "(") (identifier "iVar4") (, ",") (identifier "param_5") (, ",") (identifier "param_2") (, ",") (subscript_expression "param_4[7]" (identifier "param_4") ([ "[") (number_literal "7") (] "]")) (, ",") (identifier "param_3") (, ",") (cast_expression "(int)*(short *)((int)param_4 + 0x2a)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)((int)param_4 + 0x2a)" (* "*") (cast_expression "(short *)((int)param_4 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_4 + 0x2a)" (( "(") (binary_expression "(int)param_4 + 0x2a" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (+ "+") (number_literal "0x2a")) () ")"))))) () ")"))) (; ";")) (} "}")) (else_clause "else {\n    iVar3 = param_4[2];\n    if (iVar3 == 0) {\nLAB_000a45f4:\n                    \n      pcVar2 = (code *)trap(0);\n      (*pcVar2)();\n    }\n    bVar1 = *(byte *)(iVar3 + 0x37);\n    while ((bVar1 & 0xc0) != 0x80) {\n      iVar3 = *(int *)(iVar3 + 0x14);\n      if (iVar3 == 0) goto LAB_000a45f4;\n      bVar1 = *(byte *)(iVar3 + 0x37);\n    }\n    (*(code *)(PTR_LAB_00190bc0 + 0x10fc))\n              (iVar4,param_5,param_2,*(undefined4 *)(iVar3 + 0x2c),param_3);\n    FUN_00099d24(param_1,iVar3);\n  }" (else "else") (compound_statement "{\n    iVar3 = param_4[2];\n    if (iVar3 == 0) {\nLAB_000a45f4:\n                    \n      pcVar2 = (code *)trap(0);\n      (*pcVar2)();\n    }\n    bVar1 = *(byte *)(iVar3 + 0x37);\n    while ((bVar1 & 0xc0) != 0x80) {\n      iVar3 = *(int *)(iVar3 + 0x14);\n      if (iVar3 == 0) goto LAB_000a45f4;\n      bVar1 = *(byte *)(iVar3 + 0x37);\n    }\n    (*(code *)(PTR_LAB_00190bc0 + 0x10fc))\n              (iVar4,param_5,param_2,*(undefined4 *)(iVar3 + 0x2c),param_3);\n    FUN_00099d24(param_1,iVar3);\n  }" ({ "{") (expression_statement "iVar3 = param_4[2];" (assignment_expression "iVar3 = param_4[2]" (identifier "iVar3") (= "=") (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if (iVar3 == 0) {\nLAB_000a45f4:\n                    \n      pcVar2 = (code *)trap(0);\n      (*pcVar2)();\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000a45f4:\n                    \n      pcVar2 = (code *)trap(0);\n      (*pcVar2)();\n    }" ({ "{") (labeled_statement "LAB_000a45f4:\n                    \n      pcVar2 = (code *)trap(0);" (statement_identifier "LAB_000a45f4") (: ":") (expression_statement "pcVar2 = (code *)trap(0);" (assignment_expression "pcVar2 = (code *)trap(0)" (identifier "pcVar2") (= "=") (cast_expression "(code *)trap(0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "trap(0)" (identifier "trap") (argument_list "(0)" (( "(") (number_literal "0") () ")"))))) (; ";"))) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "bVar1 = *(byte *)(iVar3 + 0x37);" (assignment_expression "bVar1 = *(byte *)(iVar3 + 0x37)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(iVar3 + 0x37)" (* "*") (cast_expression "(byte *)(iVar3 + 0x37)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x37)" (( "(") (binary_expression "iVar3 + 0x37" (identifier "iVar3") (+ "+") (number_literal "0x37")) () ")"))))) (; ";")) (while_statement "while ((bVar1 & 0xc0) != 0x80) {\n      iVar3 = *(int *)(iVar3 + 0x14);\n      if (iVar3 == 0) goto LAB_000a45f4;\n      bVar1 = *(byte *)(iVar3 + 0x37);\n    }" (while "while") (parenthesized_expression "((bVar1 & 0xc0) != 0x80)" (( "(") (binary_expression "(bVar1 & 0xc0) != 0x80" (parenthesized_expression "(bVar1 & 0xc0)" (( "(") (binary_expression "bVar1 & 0xc0" (identifier "bVar1") (& "&") (number_literal "0xc0")) () ")")) (!= "!=") (number_literal "0x80")) () ")")) (compound_statement "{\n      iVar3 = *(int *)(iVar3 + 0x14);\n      if (iVar3 == 0) goto LAB_000a45f4;\n      bVar1 = *(byte *)(iVar3 + 0x37);\n    }" ({ "{") (expression_statement "iVar3 = *(int *)(iVar3 + 0x14);" (assignment_expression "iVar3 = *(int *)(iVar3 + 0x14)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(iVar3 + 0x14)" (* "*") (cast_expression "(int *)(iVar3 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x14)" (( "(") (binary_expression "iVar3 + 0x14" (identifier "iVar3") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_000a45f4;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000a45f4;" (goto "goto") (statement_identifier "LAB_000a45f4") (; ";"))) (expression_statement "bVar1 = *(byte *)(iVar3 + 0x37);" (assignment_expression "bVar1 = *(byte *)(iVar3 + 0x37)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(iVar3 + 0x37)" (* "*") (cast_expression "(byte *)(iVar3 + 0x37)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x37)" (( "(") (binary_expression "iVar3 + 0x37" (identifier "iVar3") (+ "+") (number_literal "0x37")) () ")"))))) (; ";")) (} "}"))) (expression_statement "(*(code *)(PTR_LAB_00190bc0 + 0x10fc))\n              (iVar4,param_5,param_2,*(undefined4 *)(iVar3 + 0x2c),param_3);" (call_expression "(*(code *)(PTR_LAB_00190bc0 + 0x10fc))\n              (iVar4,param_5,param_2,*(undefined4 *)(iVar3 + 0x2c),param_3)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc0 + 0x10fc))" (( "(") (pointer_expression "*(code *)(PTR_LAB_00190bc0 + 0x10fc)" (* "*") (cast_expression "(code *)(PTR_LAB_00190bc0 + 0x10fc)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190bc0 + 0x10fc)" (( "(") (binary_expression "PTR_LAB_00190bc0 + 0x10fc" (identifier "PTR_LAB_00190bc0") (+ "+") (number_literal "0x10fc")) () ")")))) () ")")) (argument_list "(iVar4,param_5,param_2,*(undefined4 *)(iVar3 + 0x2c),param_3)" (( "(") (identifier "iVar4") (, ",") (identifier "param_5") (, ",") (identifier "param_2") (, ",") (pointer_expression "*(undefined4 *)(iVar3 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x2c)" (( "(") (binary_expression "iVar3 + 0x2c" (identifier "iVar3") (+ "+") (number_literal "0x2c")) () ")")))) (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "FUN_00099d24(param_1,iVar3);" (call_expression "FUN_00099d24(param_1,iVar3)" (identifier "FUN_00099d24") (argument_list "(param_1,iVar3)" (( "(") (identifier "param_1") (, ",") (identifier "iVar3") () ")"))) (; ";")) (} "}")))) (expression_statement "FUN_000a43f8(iVar4,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5dfc,*param_4);" (call_expression "FUN_000a43f8(iVar4,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5dfc,*param_4)" (identifier "FUN_000a43f8") (argument_list "(iVar4,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5dfc,*param_4)" (( "(") (identifier "iVar4") (, ",") (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5dfc" (identifier "PTR_s_o_page_from_root____pageno_INTEG_0019095c") (+ "+") (number_literal "-0x5dfc")) (, ",") (pointer_expression "*param_4" (* "*") (identifier "param_4")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *pParse,int iCur,int iDb,type_2 *pTab,int var_3)

{
  type_3 var_6;
  type_4 *pcVar2;
  type_5 *var_4;
  type_6 *var_1;
  
  var_1 = pParse->pVdbe;
  if (var_1 == (type_6 *)0x0) {
    var_1 = (type_6 *)(*(type_4 *)(var_2 + 0x1274))();
  }
  (*(type_4 *)(var_2 + 0xb3c))(pParse,iDb,pTab->tnum,var_3 == 0x6e,pTab->zName);
  if ((pTab->tabFlags & 0x20) == 0) {
    (*(type_4 *)(var_2 + 0x13a0))(var_1,var_3,iCur,pTab->tnum,iDb,(int)pTab->nCol);
  }
  else {
    var_4 = pTab->pIndex;
    if (var_4 == (type_5 *)0x0) {
LAB_000a45f4:
                    /* WARNING: Does not return */
      pcVar2 = (type_4 *)var_5(0);
      (*pcVar2)();
    }
    var_6 = var_4->field_0x37;
    while ((var_6 & 0xc0) != 0x80) {
      var_4 = var_4->pNext;
      if (var_4 == (type_5 *)0x0) goto LAB_000a45f4;
      var_6 = var_4->field_0x37;
    }
    (*(type_4 *)(var_2 + 0x10fc))(var_1,var_3,iCur,var_4->tnum,iDb);
    var_7(pParse,var_4);
  }
  var_8(var_1,var_9 + -0x5dfc,pTab->zName);
  return;
}


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

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

{
  byte bVar1;
  code *pcVar2;
  int iVar3;
  int iVar4;
  
  iVar4 = *(int *)(param_1 + 8);
  if (iVar4 == 0) {
    iVar4 = (*(code *)(PTR_LAB_00190bc0 + 0x1274))();
  }
  (*(code *)(PTR_LAB_00190bc0 + 0xb3c))(param_1,param_3,param_4[7],param_5 == 0x6e,*param_4);
  if ((param_4[9] & 0x20) == 0) {
    (*(code *)(PTR_LAB_00190bc0 + 0x13a0))
              (iVar4,param_5,param_2,param_4[7],param_3,(int)*(short *)((int)param_4 + 0x2a));
  }
  else {
    iVar3 = param_4[2];
    if (iVar3 == 0) {
LAB_000a45f4:
                    /* WARNING: Does not return */
      pcVar2 = (code *)trap(0);
      (*pcVar2)();
    }
    bVar1 = *(byte *)(iVar3 + 0x37);
    while ((bVar1 & 0xc0) != 0x80) {
      iVar3 = *(int *)(iVar3 + 0x14);
      if (iVar3 == 0) goto LAB_000a45f4;
      bVar1 = *(byte *)(iVar3 + 0x37);
    }
    (*(code *)(PTR_LAB_00190bc0 + 0x10fc))
              (iVar4,param_5,param_2,*(undefined4 *)(iVar3 + 0x2c),param_3);
    FUN_00099d24(param_1,iVar3);
  }
  FUN_000a43f8(iVar4,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5dfc,*param_4);
  return;
}

