
int vdbeRecordCompareInt(int nKey1,void *pKey1,UnpackedRecord *pPKey2)

{
  int iVar1;
  
  if (*(byte *)((int)pKey1 + 1) < 10) {
                    /* WARNING: Could not emulate address calculation at 0x0006c324 */
                    /* WARNING: Treating indirect jump as call */
    iVar1 = (*(code *)(&_gp + *(int *)(PTR_s_LE_FTS4_0015c5f4 +
                                      (uint)*(byte *)((int)pKey1 + 1) * 4 + 0x1618)))();
    return iVar1;
  }
  iVar1 = sqlite3VdbeRecordCompareWithSkip(nKey1,pKey1,pPKey2,0);
  return iVar1;
}



void FUN_0006c2f4(undefined4 param_1,int param_2)

{
  if (*(byte *)(param_2 + 1) < 10) {
                    /* WARNING: Could not emulate address calculation at 0x0006c324 */
                    /* WARNING: Treating indirect jump as call */
    (*(code *)(&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)
              ))();
    return;
  }
  FUN_0006bab4();
  return;
}


lui gp,0x10
addiu gp,gp,-0x7d44
addu gp,gp,t9
lbu v0,0x0(a1)
lbu v1,0x1(a1)
andi v0,v0,0x3f
sltiu a3,v1,0xa
beq a3,zero,0x0006c338
_addu v0,a1,v0
sll a3,v1,0x2
lw v1,-0x7fbc(gp)
addiu v1,v1,0x1618
addu v1,v1,a3
lw v1,0x0(v1)
addu v1,v1,gp
jr v1
_nop
lw t9,-0x7e6c(gp)
addiu t9,t9,-0x454c
b 0x0006bab4
_or a3,zero,zero
or v0,zero,zero
or a3,zero,zero
lw t0,0x4(a2)
lw v1,0x0(t0)
lw t1,0x4(t0)
slt t0,v0,v1
bne t0,zero,0x0006c37c
_nop
bne v1,v0,0x0006c420
_slt t0,v1,v0
sltu t0,a3,t1
beq t0,zero,0x0006c41c
_nop
jr ra
_lb v0,0xc(a2)
or v0,zero,zero
b 0x0006c350
_li a3,0x1
lb a3,0x0(v0)
b 0x0006c350
_sra v0,a3,0x1f
lb a3,0x0(v0)
lbu v0,0x1(v0)
sll a3,a3,0x8
or a3,a3,v0
b 0x0006c350
_sra v0,a3,0x1f
lbu v1,0x1(v0)
lb a3,0x0(v0)
lbu v0,0x2(v0)
sll v1,v1,0x8
sll a3,a3,0x10
or v0,v0,v1
or a3,a3,v0
b 0x0006c350
_sra v0,a3,0x1f
lwl a3,0x0(v0)
lwr a3,0x3(v0)
b 0x0006c350
_sra v0,a3,0x1f
lb v1,0x0(v0)
lwl a3,0x2(v0)
lbu t0,0x1(v0)
sll v1,v1,0x8
lwr a3,0x5(v0)
b 0x0006c350
_or v0,v1,t0
lwl v1,0x0(v0)
lwl a3,0x4(v0)
lwr v1,0x3(v0)
lwr a3,0x7(v0)
b 0x0006c350
_or v0,v1,zero
slt t0,v1,v0
bne t0,zero,0x0006c438
_nop
bne v0,v1,0x0006c440
_sltu a3,t1,a3
beq a3,zero,0x0006c440
_nop
jr ra
_lb v0,0xd(a2)
lhu v0,0x8(a2)
sltiu v0,v0,0x2
beq v0,zero,0x0006c45c
_li v1,0x1
lb v0,0xa(a2)
jr ra
_sb v1,0xe(a2)
lw t9,-0x7e6c(gp)
addiu t9,t9,-0x454c
b 0x0006bab4
_li a3,0x1
(translation_unit "void FUN_0006c2f4(undefined4 param_1,int param_2)\n\n{\n  if (*(byte *)(param_2 + 1) < 10) {\n                    /* WARNING: Could not emulate address calculation at 0x0006c324 */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)(&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)\n              ))();\n    return;\n  }\n  FUN_0006bab4();\n  return;\n}\n\n" (function_definition "void FUN_0006c2f4(undefined4 param_1,int param_2)\n\n{\n  if (*(byte *)(param_2 + 1) < 10) {\n                    /* WARNING: Could not emulate address calculation at 0x0006c324 */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)(&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)\n              ))();\n    return;\n  }\n  FUN_0006bab4();\n  return;\n}" primitive_type (function_declarator "FUN_0006c2f4(undefined4 param_1,int param_2)" identifier (parameter_list "(undefined4 param_1,int param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  if (*(byte *)(param_2 + 1) < 10) {\n                    /* WARNING: Could not emulate address calculation at 0x0006c324 */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)(&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)\n              ))();\n    return;\n  }\n  FUN_0006bab4();\n  return;\n}" { (if_statement "if (*(byte *)(param_2 + 1) < 10) {\n                    /* WARNING: Could not emulate address calculation at 0x0006c324 */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)(&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)\n              ))();\n    return;\n  }" if (parenthesized_expression "(*(byte *)(param_2 + 1) < 10)" ( (binary_expression "*(byte *)(param_2 + 1) < 10" (pointer_expression "*(byte *)(param_2 + 1)" * (cast_expression "(byte *)(param_2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 1)" ( (binary_expression "param_2 + 1" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x0006c324 */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)(&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)\n              ))();\n    return;\n  }" { comment comment (expression_statement "(*(code *)(&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)\n              ))();" (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)\n              ))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)\n              ))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)\n              )" * (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)\n              )" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)\n              )" ( (binary_expression "&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)" * (cast_expression "(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)" ( (binary_expression "PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618" (binary_expression "PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4" identifier + (binary_expression "(uint)*(byte *)(param_2 + 1) * 4" (binary_expression "(uint)*(byte *)(param_2 + 1)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(param_2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 1)" ( (binary_expression "param_2 + 1" identifier + number_literal) )))) * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_0006bab4();" (call_expression "FUN_0006bab4()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "int vdbeRecordCompareInt(int nKey1,void *pKey1,UnpackedRecord *pPKey2)\n\n{\n  int iVar1;\n  \n  if (*(byte *)((int)pKey1 + 1) < 10) {\n                    /* WARNING: Could not emulate address calculation at 0x0006c324 */\n                    /* WARNING: Treating indirect jump as call */\n    iVar1 = (*(code *)(&_gp + *(int *)(PTR_s_LE_FTS4_0015c5f4 +\n                                      (uint)*(byte *)((int)pKey1 + 1) * 4 + 0x1618)))();\n    return iVar1;\n  }\n  iVar1 = sqlite3VdbeRecordCompareWithSkip(nKey1,pKey1,pPKey2,0);\n  return iVar1;\n}\n\n" (function_definition "int vdbeRecordCompareInt(int nKey1,void *pKey1,UnpackedRecord *pPKey2)\n\n{\n  int iVar1;\n  \n  if (*(byte *)((int)pKey1 + 1) < 10) {\n                    /* WARNING: Could not emulate address calculation at 0x0006c324 */\n                    /* WARNING: Treating indirect jump as call */\n    iVar1 = (*(code *)(&_gp + *(int *)(PTR_s_LE_FTS4_0015c5f4 +\n                                      (uint)*(byte *)((int)pKey1 + 1) * 4 + 0x1618)))();\n    return iVar1;\n  }\n  iVar1 = sqlite3VdbeRecordCompareWithSkip(nKey1,pKey1,pPKey2,0);\n  return iVar1;\n}" primitive_type (function_declarator "vdbeRecordCompareInt(int nKey1,void *pKey1,UnpackedRecord *pPKey2)" identifier (parameter_list "(int nKey1,void *pKey1,UnpackedRecord *pPKey2)" ( (parameter_declaration "int nKey1" primitive_type identifier) , (parameter_declaration "void *pKey1" primitive_type (pointer_declarator "*pKey1" * identifier)) , (parameter_declaration "UnpackedRecord *pPKey2" type_identifier (pointer_declarator "*pPKey2" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  \n  if (*(byte *)((int)pKey1 + 1) < 10) {\n                    /* WARNING: Could not emulate address calculation at 0x0006c324 */\n                    /* WARNING: Treating indirect jump as call */\n    iVar1 = (*(code *)(&_gp + *(int *)(PTR_s_LE_FTS4_0015c5f4 +\n                                      (uint)*(byte *)((int)pKey1 + 1) * 4 + 0x1618)))();\n    return iVar1;\n  }\n  iVar1 = sqlite3VdbeRecordCompareWithSkip(nKey1,pKey1,pPKey2,0);\n  return iVar1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (if_statement "if (*(byte *)((int)pKey1 + 1) < 10) {\n                    /* WARNING: Could not emulate address calculation at 0x0006c324 */\n                    /* WARNING: Treating indirect jump as call */\n    iVar1 = (*(code *)(&_gp + *(int *)(PTR_s_LE_FTS4_0015c5f4 +\n                                      (uint)*(byte *)((int)pKey1 + 1) * 4 + 0x1618)))();\n    return iVar1;\n  }" if (parenthesized_expression "(*(byte *)((int)pKey1 + 1) < 10)" ( (binary_expression "*(byte *)((int)pKey1 + 1) < 10" (pointer_expression "*(byte *)((int)pKey1 + 1)" * (cast_expression "(byte *)((int)pKey1 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pKey1 + 1)" ( (binary_expression "(int)pKey1 + 1" (cast_expression "(int)pKey1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x0006c324 */\n                    /* WARNING: Treating indirect jump as call */\n    iVar1 = (*(code *)(&_gp + *(int *)(PTR_s_LE_FTS4_0015c5f4 +\n                                      (uint)*(byte *)((int)pKey1 + 1) * 4 + 0x1618)))();\n    return iVar1;\n  }" { comment comment (expression_statement "iVar1 = (*(code *)(&_gp + *(int *)(PTR_s_LE_FTS4_0015c5f4 +\n                                      (uint)*(byte *)((int)pKey1 + 1) * 4 + 0x1618)))();" (assignment_expression "iVar1 = (*(code *)(&_gp + *(int *)(PTR_s_LE_FTS4_0015c5f4 +\n                                      (uint)*(byte *)((int)pKey1 + 1) * 4 + 0x1618)))()" identifier = (call_expression "(*(code *)(&_gp + *(int *)(PTR_s_LE_FTS4_0015c5f4 +\n                                      (uint)*(byte *)((int)pKey1 + 1) * 4 + 0x1618)))()" (parenthesized_expression "(*(code *)(&_gp + *(int *)(PTR_s_LE_FTS4_0015c5f4 +\n                                      (uint)*(byte *)((int)pKey1 + 1) * 4 + 0x1618)))" ( (pointer_expression "*(code *)(&_gp + *(int *)(PTR_s_LE_FTS4_0015c5f4 +\n                                      (uint)*(byte *)((int)pKey1 + 1) * 4 + 0x1618))" * (cast_expression "(code *)(&_gp + *(int *)(PTR_s_LE_FTS4_0015c5f4 +\n                                      (uint)*(byte *)((int)pKey1 + 1) * 4 + 0x1618))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp + *(int *)(PTR_s_LE_FTS4_0015c5f4 +\n                                      (uint)*(byte *)((int)pKey1 + 1) * 4 + 0x1618))" ( (binary_expression "&_gp + *(int *)(PTR_s_LE_FTS4_0015c5f4 +\n                                      (uint)*(byte *)((int)pKey1 + 1) * 4 + 0x1618)" (pointer_expression "&_gp" & identifier) + (pointer_expression "*(int *)(PTR_s_LE_FTS4_0015c5f4 +\n                                      (uint)*(byte *)((int)pKey1 + 1) * 4 + 0x1618)" * (cast_expression "(int *)(PTR_s_LE_FTS4_0015c5f4 +\n                                      (uint)*(byte *)((int)pKey1 + 1) * 4 + 0x1618)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_LE_FTS4_0015c5f4 +\n                                      (uint)*(byte *)((int)pKey1 + 1) * 4 + 0x1618)" ( (binary_expression "PTR_s_LE_FTS4_0015c5f4 +\n                                      (uint)*(byte *)((int)pKey1 + 1) * 4 + 0x1618" (binary_expression "PTR_s_LE_FTS4_0015c5f4 +\n                                      (uint)*(byte *)((int)pKey1 + 1) * 4" identifier + (binary_expression "(uint)*(byte *)((int)pKey1 + 1) * 4" (binary_expression "(uint)*(byte *)((int)pKey1 + 1)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)pKey1 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pKey1 + 1)" ( (binary_expression "(int)pKey1 + 1" (cast_expression "(int)pKey1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar1;" return identifier ;) })) (expression_statement "iVar1 = sqlite3VdbeRecordCompareWithSkip(nKey1,pKey1,pPKey2,0);" (assignment_expression "iVar1 = sqlite3VdbeRecordCompareWithSkip(nKey1,pKey1,pPKey2,0)" identifier = (call_expression "sqlite3VdbeRecordCompareWithSkip(nKey1,pKey1,pPKey2,0)" identifier (argument_list "(nKey1,pKey1,pPKey2,0)" ( identifier , identifier , identifier , number_literal )))) ;) (return_statement "return iVar1;" return identifier ;) })))
(translation_unit "void FUN_0006c2f4(undefined4 param_1,int param_2)\n\n{\n  if (*(byte *)(param_2 + 1) < 10) {\n                    \n                    \n    (*(code *)(&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)\n              ))();\n    return;\n  }\n  FUN_0006bab4();\n  return;\n}\n\n" (function_definition "void FUN_0006c2f4(undefined4 param_1,int param_2)\n\n{\n  if (*(byte *)(param_2 + 1) < 10) {\n                    \n                    \n    (*(code *)(&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)\n              ))();\n    return;\n  }\n  FUN_0006bab4();\n  return;\n}" primitive_type (function_declarator "FUN_0006c2f4(undefined4 param_1,int param_2)" identifier (parameter_list "(undefined4 param_1,int param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  if (*(byte *)(param_2 + 1) < 10) {\n                    \n                    \n    (*(code *)(&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)\n              ))();\n    return;\n  }\n  FUN_0006bab4();\n  return;\n}" { (if_statement "if (*(byte *)(param_2 + 1) < 10) {\n                    \n                    \n    (*(code *)(&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)\n              ))();\n    return;\n  }" if (parenthesized_expression "(*(byte *)(param_2 + 1) < 10)" ( (binary_expression "*(byte *)(param_2 + 1) < 10" (pointer_expression "*(byte *)(param_2 + 1)" * (cast_expression "(byte *)(param_2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 1)" ( (binary_expression "param_2 + 1" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n                    \n                    \n    (*(code *)(&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)\n              ))();\n    return;\n  }" { (expression_statement "(*(code *)(&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)\n              ))();" (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)\n              ))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)\n              ))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)\n              )" * (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)\n              )" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)\n              )" ( (binary_expression "&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)" * (cast_expression "(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)" ( (binary_expression "PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618" (binary_expression "PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4" identifier + (binary_expression "(uint)*(byte *)(param_2 + 1) * 4" (binary_expression "(uint)*(byte *)(param_2 + 1)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(param_2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 1)" ( (binary_expression "param_2 + 1" identifier + number_literal) )))) * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_0006bab4();" (call_expression "FUN_0006bab4()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) + LIT) ))))) )))) )) (argument_list ( ))) ;) (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })))
(function_definition "void FUN_0006c2f4(undefined4 param_1,int param_2)\n\n{\n  if (*(byte *)(param_2 + 1) < 10) {\n                    \n                    \n    (*(code *)(&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)\n              ))();\n    return;\n  }\n  FUN_0006bab4();\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0006c2f4(undefined4 param_1,int param_2)" (identifier "FUN_0006c2f4") (parameter_list "(undefined4 param_1,int param_2)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  if (*(byte *)(param_2 + 1) < 10) {\n                    \n                    \n    (*(code *)(&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)\n              ))();\n    return;\n  }\n  FUN_0006bab4();\n  return;\n}" ({ "{") (if_statement "if (*(byte *)(param_2 + 1) < 10) {\n                    \n                    \n    (*(code *)(&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)\n              ))();\n    return;\n  }" (if "if") (parenthesized_expression "(*(byte *)(param_2 + 1) < 10)" (( "(") (binary_expression "*(byte *)(param_2 + 1) < 10" (pointer_expression "*(byte *)(param_2 + 1)" (* "*") (cast_expression "(byte *)(param_2 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 1)" (( "(") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1")) () ")")))) (< "<") (number_literal "10")) () ")")) (compound_statement "{\n                    \n                    \n    (*(code *)(&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)\n              ))();\n    return;\n  }" ({ "{") (expression_statement "(*(code *)(&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)\n              ))();" (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)\n              ))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)\n              ))" (( "(") (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)\n              )" (* "*") (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)\n              )" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)\n              )" (( "(") (binary_expression "&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)" (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (+ "+") (pointer_expression "*(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)" (* "*") (cast_expression "(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)" (( "(") (binary_expression "PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618" (binary_expression "PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4" (identifier "PTR_s_LE_FTS4_0015c5f4") (+ "+") (binary_expression "(uint)*(byte *)(param_2 + 1) * 4" (binary_expression "(uint)*(byte *)(param_2 + 1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(param_2 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 1)" (( "(") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1")) () ")")))) (* "*") (number_literal "4"))) (+ "+") (number_literal "0x1618")) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_0006bab4();" (call_expression "FUN_0006bab4()" (identifier "FUN_0006bab4") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (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: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal)))))))))) arguments: (argument_list))) (return_statement))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (return_statement))))

void MASKED(undefined4 param_1,int param_2)

{
  if (*(byte *)(param_2 + 1) < 10) {
                    /* WARNING: Could not emulate address calculation at 0x0006c324 */
                    /* WARNING: Treating indirect jump as call */
    (*(code *)(&_gp_1 + *(int *)(PTR_s_LE_FTS4_0015c5f4 + (uint)*(byte *)(param_2 + 1) * 4 + 0x1618)
              ))();
    return;
  }
  FUN_0006bab4();
  return;
}

