
int sqlite3_bind_blob64(sqlite3_stmt *pStmt,int i,void *zData,sqlite3_uint64 nData,
                       _func_void_void_ptr *xDel)

{
  int iVar1;
  
  if (nData._4_4_ == (_func_void_void_ptr *)0x0 &&
      (uint)((sqlite3_stmt *)0x7fffffff < (sqlite3_stmt *)nData) <= (uint)-(int)nData._4_4_) {
    iVar1 = bindText((sqlite3_stmt *)nData,(int)xDel,(void *)0x0,(int)(sqlite3_stmt *)nData,
                     nData._4_4_,(u8)xDel);
    return iVar1;
  }
  if ((code *)0xfffffffd < xDel + -1) {
    return 0x12;
  }
  (*xDel)(zData);
  return 0x12;
}



undefined8
FUN_00056230(undefined4 param_1,undefined4 param_2,undefined4 param_3,uint param_4,int param_5,
            code *param_6)

{
  undefined4 extraout_EDX;
  undefined8 uVar1;
  
  if (param_5 == 0 && (uint)(0x7fffffff < param_4) <= (uint)-param_5) {
    uVar1 = FUN_000560e0();
    return uVar1;
  }
  if ((code *)0xfffffffd < param_6 + -1) {
    return CONCAT44(param_2,0x12);
  }
  (*param_6)(param_3);
  return CONCAT44(extraout_EDX,0x12);
}


PUSH EDI
MOV EDI,0x7fffffff
PUSH ESI
PUSH EBX
MOV EBX,dword ptr [ESP + 0x1c]
MOV EAX,dword ptr [ESP + 0x10]
MOV EDX,dword ptr [ESP + 0x14]
CMP EDI,EBX
MOV EDI,0x0
SBB EDI,dword ptr [ESP + 0x20]
MOV ECX,dword ptr [ESP + 0x18]
MOV ESI,dword ptr [ESP + 0x24]
JNC 0x00056288
LEA EAX,[ESI + -0x1]
CMP EAX,-0x3
JBE 0x00056270
POP EBX
MOV EAX,0x12
POP ESI
POP EDI
RET
SUB ESP,0xc
PUSH ECX
CALL ESI
MOV EAX,0x12
ADD ESP,0x10
POP EBX
POP ESI
POP EDI
RET
MOV dword ptr [ESP + 0x18],0x0
MOV dword ptr [ESP + 0x14],ESI
MOV dword ptr [ESP + 0x10],EBX
POP EBX
POP ESI
POP EDI
JMP 0x000560e0
(translation_unit "undefined8\nFUN_00056230(undefined4 param_1,undefined4 param_2,undefined4 param_3,uint param_4,int param_5,\n            code *param_6)\n\n{\n  undefined4 extraout_EDX;\n  undefined8 uVar1;\n  \n  if (param_5 == 0 && (uint)(0x7fffffff < param_4) <= (uint)-param_5) {\n    uVar1 = FUN_000560e0();\n    return uVar1;\n  }\n  if ((code *)0xfffffffd < param_6 + -1) {\n    return CONCAT44(param_2,0x12);\n  }\n  (*param_6)(param_3);\n  return CONCAT44(extraout_EDX,0x12);\n}\n\n" (function_definition "undefined8\nFUN_00056230(undefined4 param_1,undefined4 param_2,undefined4 param_3,uint param_4,int param_5,\n            code *param_6)\n\n{\n  undefined4 extraout_EDX;\n  undefined8 uVar1;\n  \n  if (param_5 == 0 && (uint)(0x7fffffff < param_4) <= (uint)-param_5) {\n    uVar1 = FUN_000560e0();\n    return uVar1;\n  }\n  if ((code *)0xfffffffd < param_6 + -1) {\n    return CONCAT44(param_2,0x12);\n  }\n  (*param_6)(param_3);\n  return CONCAT44(extraout_EDX,0x12);\n}" type_identifier (function_declarator "FUN_00056230(undefined4 param_1,undefined4 param_2,undefined4 param_3,uint param_4,int param_5,\n            code *param_6)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,uint param_4,int param_5,\n            code *param_6)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "code *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) ))) (compound_statement "{\n  undefined4 extraout_EDX;\n  undefined8 uVar1;\n  \n  if (param_5 == 0 && (uint)(0x7fffffff < param_4) <= (uint)-param_5) {\n    uVar1 = FUN_000560e0();\n    return uVar1;\n  }\n  if ((code *)0xfffffffd < param_6 + -1) {\n    return CONCAT44(param_2,0x12);\n  }\n  (*param_6)(param_3);\n  return CONCAT44(extraout_EDX,0x12);\n}" { (declaration "undefined4 extraout_EDX;" type_identifier identifier ;) (declaration "undefined8 uVar1;" type_identifier identifier ;) (if_statement "if (param_5 == 0 && (uint)(0x7fffffff < param_4) <= (uint)-param_5) {\n    uVar1 = FUN_000560e0();\n    return uVar1;\n  }" if (parenthesized_expression "(param_5 == 0 && (uint)(0x7fffffff < param_4) <= (uint)-param_5)" ( (binary_expression "param_5 == 0 && (uint)(0x7fffffff < param_4) <= (uint)-param_5" (binary_expression "param_5 == 0" identifier == number_literal) && (binary_expression "(uint)(0x7fffffff < param_4) <= (uint)-param_5" (call_expression "(uint)(0x7fffffff < param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x7fffffff < param_4)" ( (binary_expression "0x7fffffff < param_4" number_literal < identifier) ))) <= (binary_expression "(uint)-param_5" (parenthesized_expression "(uint)" ( identifier )) - identifier))) )) (compound_statement "{\n    uVar1 = FUN_000560e0();\n    return uVar1;\n  }" { (expression_statement "uVar1 = FUN_000560e0();" (assignment_expression "uVar1 = FUN_000560e0()" identifier = (call_expression "FUN_000560e0()" identifier (argument_list "()" ( )))) ;) (return_statement "return uVar1;" return identifier ;) })) (if_statement "if ((code *)0xfffffffd < param_6 + -1) {\n    return CONCAT44(param_2,0x12);\n  }" if (parenthesized_expression "((code *)0xfffffffd < param_6 + -1)" ( (binary_expression "(code *)0xfffffffd < param_6 + -1" (cast_expression "(code *)0xfffffffd" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (binary_expression "param_6 + -1" identifier + number_literal)) )) (compound_statement "{\n    return CONCAT44(param_2,0x12);\n  }" { (return_statement "return CONCAT44(param_2,0x12);" return (call_expression "CONCAT44(param_2,0x12)" identifier (argument_list "(param_2,0x12)" ( identifier , number_literal ))) ;) })) (expression_statement "(*param_6)(param_3);" (call_expression "(*param_6)(param_3)" (parenthesized_expression "(*param_6)" ( (pointer_expression "*param_6" * identifier) )) (argument_list "(param_3)" ( identifier ))) ;) (return_statement "return CONCAT44(extraout_EDX,0x12);" return (call_expression "CONCAT44(extraout_EDX,0x12)" identifier (argument_list "(extraout_EDX,0x12)" ( identifier , number_literal ))) ;) })))
(translation_unit "int sqlite3_bind_blob64(sqlite3_stmt *pStmt,int i,void *zData,sqlite3_uint64 nData,\n                       _func_void_void_ptr *xDel)\n\n{\n  int iVar1;\n  \n  if (nData._4_4_ == (_func_void_void_ptr *)0x0 &&\n      (uint)((sqlite3_stmt *)0x7fffffff < (sqlite3_stmt *)nData) <= (uint)-(int)nData._4_4_) {\n    iVar1 = bindText((sqlite3_stmt *)nData,(int)xDel,(void *)0x0,(int)(sqlite3_stmt *)nData,\n                     nData._4_4_,(u8)xDel);\n    return iVar1;\n  }\n  if ((code *)0xfffffffd < xDel + -1) {\n    return 0x12;\n  }\n  (*xDel)(zData);\n  return 0x12;\n}\n\n" (function_definition "int sqlite3_bind_blob64(sqlite3_stmt *pStmt,int i,void *zData,sqlite3_uint64 nData,\n                       _func_void_void_ptr *xDel)\n\n{\n  int iVar1;\n  \n  if (nData._4_4_ == (_func_void_void_ptr *)0x0 &&\n      (uint)((sqlite3_stmt *)0x7fffffff < (sqlite3_stmt *)nData) <= (uint)-(int)nData._4_4_) {\n    iVar1 = bindText((sqlite3_stmt *)nData,(int)xDel,(void *)0x0,(int)(sqlite3_stmt *)nData,\n                     nData._4_4_,(u8)xDel);\n    return iVar1;\n  }\n  if ((code *)0xfffffffd < xDel + -1) {\n    return 0x12;\n  }\n  (*xDel)(zData);\n  return 0x12;\n}" primitive_type (function_declarator "sqlite3_bind_blob64(sqlite3_stmt *pStmt,int i,void *zData,sqlite3_uint64 nData,\n                       _func_void_void_ptr *xDel)" identifier (parameter_list "(sqlite3_stmt *pStmt,int i,void *zData,sqlite3_uint64 nData,\n                       _func_void_void_ptr *xDel)" ( (parameter_declaration "sqlite3_stmt *pStmt" type_identifier (pointer_declarator "*pStmt" * identifier)) , (parameter_declaration "int i" primitive_type identifier) , (parameter_declaration "void *zData" primitive_type (pointer_declarator "*zData" * identifier)) , (parameter_declaration "sqlite3_uint64 nData" type_identifier identifier) , (parameter_declaration "_func_void_void_ptr *xDel" type_identifier (pointer_declarator "*xDel" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  \n  if (nData._4_4_ == (_func_void_void_ptr *)0x0 &&\n      (uint)((sqlite3_stmt *)0x7fffffff < (sqlite3_stmt *)nData) <= (uint)-(int)nData._4_4_) {\n    iVar1 = bindText((sqlite3_stmt *)nData,(int)xDel,(void *)0x0,(int)(sqlite3_stmt *)nData,\n                     nData._4_4_,(u8)xDel);\n    return iVar1;\n  }\n  if ((code *)0xfffffffd < xDel + -1) {\n    return 0x12;\n  }\n  (*xDel)(zData);\n  return 0x12;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (if_statement "if (nData._4_4_ == (_func_void_void_ptr *)0x0 &&\n      (uint)((sqlite3_stmt *)0x7fffffff < (sqlite3_stmt *)nData) <= (uint)-(int)nData._4_4_) {\n    iVar1 = bindText((sqlite3_stmt *)nData,(int)xDel,(void *)0x0,(int)(sqlite3_stmt *)nData,\n                     nData._4_4_,(u8)xDel);\n    return iVar1;\n  }" if (parenthesized_expression "(nData._4_4_ == (_func_void_void_ptr *)0x0 &&\n      (uint)((sqlite3_stmt *)0x7fffffff < (sqlite3_stmt *)nData) <= (uint)-(int)nData._4_4_)" ( (binary_expression "nData._4_4_ == (_func_void_void_ptr *)0x0 &&\n      (uint)((sqlite3_stmt *)0x7fffffff < (sqlite3_stmt *)nData) <= (uint)-(int)nData._4_4_" (binary_expression "nData._4_4_ == (_func_void_void_ptr *)0x0" (field_expression "nData._4_4_" identifier . field_identifier) == (cast_expression "(_func_void_void_ptr *)0x0" ( (type_descriptor "_func_void_void_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "(uint)((sqlite3_stmt *)0x7fffffff < (sqlite3_stmt *)nData) <= (uint)-(int)nData._4_4_" (call_expression "(uint)((sqlite3_stmt *)0x7fffffff < (sqlite3_stmt *)nData)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((sqlite3_stmt *)0x7fffffff < (sqlite3_stmt *)nData)" ( (binary_expression "(sqlite3_stmt *)0x7fffffff < (sqlite3_stmt *)nData" (cast_expression "(sqlite3_stmt *)0x7fffffff" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (cast_expression "(sqlite3_stmt *)nData" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) <= (binary_expression "(uint)-(int)nData._4_4_" (parenthesized_expression "(uint)" ( identifier )) - (cast_expression "(int)nData._4_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "nData._4_4_" identifier . field_identifier))))) )) (compound_statement "{\n    iVar1 = bindText((sqlite3_stmt *)nData,(int)xDel,(void *)0x0,(int)(sqlite3_stmt *)nData,\n                     nData._4_4_,(u8)xDel);\n    return iVar1;\n  }" { (expression_statement "iVar1 = bindText((sqlite3_stmt *)nData,(int)xDel,(void *)0x0,(int)(sqlite3_stmt *)nData,\n                     nData._4_4_,(u8)xDel);" (assignment_expression "iVar1 = bindText((sqlite3_stmt *)nData,(int)xDel,(void *)0x0,(int)(sqlite3_stmt *)nData,\n                     nData._4_4_,(u8)xDel)" identifier = (call_expression "bindText((sqlite3_stmt *)nData,(int)xDel,(void *)0x0,(int)(sqlite3_stmt *)nData,\n                     nData._4_4_,(u8)xDel)" identifier (argument_list "((sqlite3_stmt *)nData,(int)xDel,(void *)0x0,(int)(sqlite3_stmt *)nData,\n                     nData._4_4_,(u8)xDel)" ( (cast_expression "(sqlite3_stmt *)nData" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int)xDel" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(int)(sqlite3_stmt *)nData" ( (type_descriptor "int" primitive_type) ) (cast_expression "(sqlite3_stmt *)nData" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (field_expression "nData._4_4_" identifier . field_identifier) , (cast_expression "(u8)xDel" ( (type_descriptor "u8" type_identifier) ) identifier) )))) ;) (return_statement "return iVar1;" return identifier ;) })) (if_statement "if ((code *)0xfffffffd < xDel + -1) {\n    return 0x12;\n  }" if (parenthesized_expression "((code *)0xfffffffd < xDel + -1)" ( (binary_expression "(code *)0xfffffffd < xDel + -1" (cast_expression "(code *)0xfffffffd" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (binary_expression "xDel + -1" identifier + number_literal)) )) (compound_statement "{\n    return 0x12;\n  }" { (return_statement "return 0x12;" return number_literal ;) })) (expression_statement "(*xDel)(zData);" (call_expression "(*xDel)(zData)" (parenthesized_expression "(*xDel)" ( (pointer_expression "*xDel" * identifier) )) (argument_list "(zData)" ( identifier ))) ;) (return_statement "return 0x12;" return number_literal ;) })))
(translation_unit "undefined8\nFUN_00056230(undefined4 param_1,undefined4 param_2,undefined4 param_3,uint param_4,int param_5,\n            code *param_6)\n\n{\n  undefined4 extraout_EDX;\n  undefined8 uVar1;\n  \n  if (param_5 == 0 && (uint)(0x7fffffff < param_4) <= (uint)-param_5) {\n    uVar1 = FUN_000560e0();\n    return uVar1;\n  }\n  if ((code *)0xfffffffd < param_6 + -1) {\n    return CONCAT44(param_2,0x12);\n  }\n  (*param_6)(param_3);\n  return CONCAT44(extraout_EDX,0x12);\n}\n\n" (function_definition "undefined8\nFUN_00056230(undefined4 param_1,undefined4 param_2,undefined4 param_3,uint param_4,int param_5,\n            code *param_6)\n\n{\n  undefined4 extraout_EDX;\n  undefined8 uVar1;\n  \n  if (param_5 == 0 && (uint)(0x7fffffff < param_4) <= (uint)-param_5) {\n    uVar1 = FUN_000560e0();\n    return uVar1;\n  }\n  if ((code *)0xfffffffd < param_6 + -1) {\n    return CONCAT44(param_2,0x12);\n  }\n  (*param_6)(param_3);\n  return CONCAT44(extraout_EDX,0x12);\n}" type_identifier (function_declarator "FUN_00056230(undefined4 param_1,undefined4 param_2,undefined4 param_3,uint param_4,int param_5,\n            code *param_6)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,uint param_4,int param_5,\n            code *param_6)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "code *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) ))) (compound_statement "{\n  undefined4 extraout_EDX;\n  undefined8 uVar1;\n  \n  if (param_5 == 0 && (uint)(0x7fffffff < param_4) <= (uint)-param_5) {\n    uVar1 = FUN_000560e0();\n    return uVar1;\n  }\n  if ((code *)0xfffffffd < param_6 + -1) {\n    return CONCAT44(param_2,0x12);\n  }\n  (*param_6)(param_3);\n  return CONCAT44(extraout_EDX,0x12);\n}" { (declaration "undefined4 extraout_EDX;" type_identifier identifier ;) (declaration "undefined8 uVar1;" type_identifier identifier ;) (if_statement "if (param_5 == 0 && (uint)(0x7fffffff < param_4) <= (uint)-param_5) {\n    uVar1 = FUN_000560e0();\n    return uVar1;\n  }" if (parenthesized_expression "(param_5 == 0 && (uint)(0x7fffffff < param_4) <= (uint)-param_5)" ( (binary_expression "param_5 == 0 && (uint)(0x7fffffff < param_4) <= (uint)-param_5" (binary_expression "param_5 == 0" identifier == number_literal) && (binary_expression "(uint)(0x7fffffff < param_4) <= (uint)-param_5" (call_expression "(uint)(0x7fffffff < param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x7fffffff < param_4)" ( (binary_expression "0x7fffffff < param_4" number_literal < identifier) ))) <= (binary_expression "(uint)-param_5" (parenthesized_expression "(uint)" ( identifier )) - identifier))) )) (compound_statement "{\n    uVar1 = FUN_000560e0();\n    return uVar1;\n  }" { (expression_statement "uVar1 = FUN_000560e0();" (assignment_expression "uVar1 = FUN_000560e0()" identifier = (call_expression "FUN_000560e0()" identifier (argument_list "()" ( )))) ;) (return_statement "return uVar1;" return identifier ;) })) (if_statement "if ((code *)0xfffffffd < param_6 + -1) {\n    return CONCAT44(param_2,0x12);\n  }" if (parenthesized_expression "((code *)0xfffffffd < param_6 + -1)" ( (binary_expression "(code *)0xfffffffd < param_6 + -1" (cast_expression "(code *)0xfffffffd" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (binary_expression "param_6 + -1" identifier + number_literal)) )) (compound_statement "{\n    return CONCAT44(param_2,0x12);\n  }" { (return_statement "return CONCAT44(param_2,0x12);" return (call_expression "CONCAT44(param_2,0x12)" identifier (argument_list "(param_2,0x12)" ( identifier , number_literal ))) ;) })) (expression_statement "(*param_6)(param_3);" (call_expression "(*param_6)(param_3)" (parenthesized_expression "(*param_6)" ( (pointer_expression "*param_6" * identifier) )) (argument_list "(param_3)" ( identifier ))) ;) (return_statement "return CONCAT44(extraout_EDX,0x12);" return (call_expression "CONCAT44(extraout_EDX,0x12)" identifier (argument_list "(extraout_EDX,0x12)" ( identifier , number_literal ))) ;) })))
(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 IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))) <= (binary_expression (parenthesized_expression ( IDENT )) - IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < (binary_expression IDENT + LIT)) )) (compound_statement { (return_statement return (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;) (return_statement return (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) })))
(function_definition "undefined8\nFUN_00056230(undefined4 param_1,undefined4 param_2,undefined4 param_3,uint param_4,int param_5,\n            code *param_6)\n\n{\n  undefined4 extraout_EDX;\n  undefined8 uVar1;\n  \n  if (param_5 == 0 && (uint)(0x7fffffff < param_4) <= (uint)-param_5) {\n    uVar1 = FUN_000560e0();\n    return uVar1;\n  }\n  if ((code *)0xfffffffd < param_6 + -1) {\n    return CONCAT44(param_2,0x12);\n  }\n  (*param_6)(param_3);\n  return CONCAT44(extraout_EDX,0x12);\n}" (type_identifier "undefined8") (function_declarator "FUN_00056230(undefined4 param_1,undefined4 param_2,undefined4 param_3,uint param_4,int param_5,\n            code *param_6)" (identifier "FUN_00056230") (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,uint param_4,int param_5,\n            code *param_6)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (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 "uint param_4" (type_identifier "uint") (identifier "param_4")) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) (, ",") (parameter_declaration "code *param_6" (type_identifier "code") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) () ")"))) (compound_statement "{\n  undefined4 extraout_EDX;\n  undefined8 uVar1;\n  \n  if (param_5 == 0 && (uint)(0x7fffffff < param_4) <= (uint)-param_5) {\n    uVar1 = FUN_000560e0();\n    return uVar1;\n  }\n  if ((code *)0xfffffffd < param_6 + -1) {\n    return CONCAT44(param_2,0x12);\n  }\n  (*param_6)(param_3);\n  return CONCAT44(extraout_EDX,0x12);\n}" ({ "{") (declaration "undefined4 extraout_EDX;" (type_identifier "undefined4") (identifier "extraout_EDX") (; ";")) (declaration "undefined8 uVar1;" (type_identifier "undefined8") (identifier "uVar1") (; ";")) (if_statement "if (param_5 == 0 && (uint)(0x7fffffff < param_4) <= (uint)-param_5) {\n    uVar1 = FUN_000560e0();\n    return uVar1;\n  }" (if "if") (parenthesized_expression "(param_5 == 0 && (uint)(0x7fffffff < param_4) <= (uint)-param_5)" (( "(") (binary_expression "param_5 == 0 && (uint)(0x7fffffff < param_4) <= (uint)-param_5" (binary_expression "param_5 == 0" (identifier "param_5") (== "==") (number_literal "0")) (&& "&&") (binary_expression "(uint)(0x7fffffff < param_4) <= (uint)-param_5" (call_expression "(uint)(0x7fffffff < param_4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0x7fffffff < param_4)" (( "(") (binary_expression "0x7fffffff < param_4" (number_literal "0x7fffffff") (< "<") (identifier "param_4")) () ")"))) (<= "<=") (binary_expression "(uint)-param_5" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (- "-") (identifier "param_5")))) () ")")) (compound_statement "{\n    uVar1 = FUN_000560e0();\n    return uVar1;\n  }" ({ "{") (expression_statement "uVar1 = FUN_000560e0();" (assignment_expression "uVar1 = FUN_000560e0()" (identifier "uVar1") (= "=") (call_expression "FUN_000560e0()" (identifier "FUN_000560e0") (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar1;" (return "return") (identifier "uVar1") (; ";")) (} "}"))) (if_statement "if ((code *)0xfffffffd < param_6 + -1) {\n    return CONCAT44(param_2,0x12);\n  }" (if "if") (parenthesized_expression "((code *)0xfffffffd < param_6 + -1)" (( "(") (binary_expression "(code *)0xfffffffd < param_6 + -1" (cast_expression "(code *)0xfffffffd" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xfffffffd")) (< "<") (binary_expression "param_6 + -1" (identifier "param_6") (+ "+") (number_literal "-1"))) () ")")) (compound_statement "{\n    return CONCAT44(param_2,0x12);\n  }" ({ "{") (return_statement "return CONCAT44(param_2,0x12);" (return "return") (call_expression "CONCAT44(param_2,0x12)" (identifier "CONCAT44") (argument_list "(param_2,0x12)" (( "(") (identifier "param_2") (, ",") (number_literal "0x12") () ")"))) (; ";")) (} "}"))) (expression_statement "(*param_6)(param_3);" (call_expression "(*param_6)(param_3)" (parenthesized_expression "(*param_6)" (( "(") (pointer_expression "*param_6" (* "*") (identifier "param_6")) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")"))) (; ";")) (return_statement "return CONCAT44(extraout_EDX,0x12);" (return "return") (call_expression "CONCAT44(extraout_EDX,0x12)" (identifier "CONCAT44") (argument_list "(extraout_EDX,0x12)" (( "(") (identifier "extraout_EDX") (, ",") (number_literal "0x12") () ")"))) (; ";")) (} "}")))

int function_1(type_1 *pStmt,int i,void *zData,type_2 nData,
                       type_3 *var_2)

{
  int iVar1;
  
  if (nData._4_4_ == (type_3 *)0x0 &&
      (uint)((type_1 *)0x7fffffff < (type_1 *)nData) <= (uint)-(int)nData._4_4_) {
    iVar1 = var_1((type_1 *)nData,(int)var_2,(void *)0x0,(int)(type_1 *)nData,
                     nData._4_4_,(type_4)var_2);
    return iVar1;
  }
  if ((type_5 *)0xfffffffd < var_2 + -1) {
    return 0x12;
  }
  (*var_2)(zData);
  return 0x12;
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (number_literal) right: (identifier)))) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (return_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))) (return_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))))

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

{
  undefined4 extraout_EDX;
  undefined8 uVar1;
  
  if (param_5 == 0 && (uint)(0x7fffffff < param_4) <= (uint)-param_5) {
    uVar1 = FUN_000560e0();
    return uVar1;
  }
  if ((code *)0xfffffffd < param_6 + -1) {
    return CONCAT44(param_2,0x12);
  }
  (*param_6)(param_3);
  return CONCAT44(extraout_EDX,0x12);
}

