
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

Bignum __regparm3 ecf_double(Bignum a,ec_curve *curve)

{
  Bignum_conflict a_00;
  int iVar1;
  Bignum_conflict pBVar2;
  
  a_00 = bignum_lshift((Bignum_conflict)a,1);
  iVar1 = bignum_cmp(a_00,(Bignum_conflict)curve->type);
  pBVar2 = a_00;
  if (-1 < iVar1) {
    pBVar2 = bigsub(a_00,(Bignum_conflict)curve->type);
    if (pBVar2 == (Bignum_conflict)0x0) {
                    /* WARNING: Subroutine does not return */
      __assert_fail("tmp","sshecc.c",0x1ee,"ecf_double");
    }
    freebn(a_00);
  }
  return pBVar2;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

int __regparm3 FUN_0005c550(undefined4 param_1,undefined4 *param_2)

{
  int iVar1;
  int iVar2;
  int iVar3;
  
  iVar1 = FUN_00054470(param_1,1);
  iVar2 = FUN_000540e0(iVar1,*param_2);
  iVar3 = iVar1;
  if (-1 < iVar2) {
    iVar3 = FUN_00054910(iVar1,*param_2);
    if (iVar3 == 0) {
                    /* WARNING: Subroutine does not return */
      __assert_fail("tmp","sshecc.c",0x1ee,"ecf_double");
    }
    FUN_00053760(iVar1);
  }
  return iVar3;
}


PUSH EDI
MOV EDI,EDX
PUSH ESI
PUSH EBX
CALL 0x0001c4f0
ADD EBX,0xb41f6
SUB ESP,0x8
PUSH 0x1
PUSH EAX
CALL 0x00054470
POP EDX
POP ECX
PUSH dword ptr [EDI]
PUSH EAX
MOV ESI,EAX
CALL 0x000540e0
ADD ESP,0x10
TEST EAX,EAX
JS 0x0005c5a0
SUB ESP,0x8
PUSH dword ptr [EDI]
PUSH ESI
CALL 0x00054910
ADD ESP,0x10
MOV EDI,EAX
TEST EAX,EAX
JZ 0x0005c5a6
SUB ESP,0xc
PUSH ESI
MOV ESI,EDI
CALL 0x00053760
ADD ESP,0x10
MOV EAX,ESI
POP EBX
POP ESI
POP EDI
RET
LEA EAX,[EBX + 0xfffb6f7c]
PUSH EAX
LEA EAX,[EBX + 0xfffb67b9]
PUSH 0x1ee
PUSH EAX
LEA EAX,[EBX + 0xfffbdb70]
PUSH EAX
CALL 0x0001c000
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint __regparm3 FUN_0005c550(undefined4 param_1,undefined4 *param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar1 = FUN_00054470(param_1,1);\n  iVar2 = FUN_000540e0(iVar1,*param_2);\n  iVar3 = iVar1;\n  if (-1 < iVar2) {\n    iVar3 = FUN_00054910(iVar1,*param_2);\n    if (iVar3 == 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("tmp","sshecc.c",0x1ee,"ecf_double");\n    }\n    FUN_00053760(iVar1);\n  }\n  return iVar3;\n}\n\n" comment (function_definition "int __regparm3 FUN_0005c550(undefined4 param_1,undefined4 *param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar1 = FUN_00054470(param_1,1);\n  iVar2 = FUN_000540e0(iVar1,*param_2);\n  iVar3 = iVar1;\n  if (-1 < iVar2) {\n    iVar3 = FUN_00054910(iVar1,*param_2);\n    if (iVar3 == 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("tmp","sshecc.c",0x1ee,"ecf_double");\n    }\n    FUN_00053760(iVar1);\n  }\n  return iVar3;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0005c550(undefined4 param_1,undefined4 *param_2)" identifier (parameter_list "(undefined4 param_1,undefined4 *param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar1 = FUN_00054470(param_1,1);\n  iVar2 = FUN_000540e0(iVar1,*param_2);\n  iVar3 = iVar1;\n  if (-1 < iVar2) {\n    iVar3 = FUN_00054910(iVar1,*param_2);\n    if (iVar3 == 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("tmp","sshecc.c",0x1ee,"ecf_double");\n    }\n    FUN_00053760(iVar1);\n  }\n  return iVar3;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "iVar1 = FUN_00054470(param_1,1);" (assignment_expression "iVar1 = FUN_00054470(param_1,1)" identifier = (call_expression "FUN_00054470(param_1,1)" identifier (argument_list "(param_1,1)" ( identifier , number_literal )))) ;) (expression_statement "iVar2 = FUN_000540e0(iVar1,*param_2);" (assignment_expression "iVar2 = FUN_000540e0(iVar1,*param_2)" identifier = (call_expression "FUN_000540e0(iVar1,*param_2)" identifier (argument_list "(iVar1,*param_2)" ( identifier , (pointer_expression "*param_2" * identifier) )))) ;) (expression_statement "iVar3 = iVar1;" (assignment_expression "iVar3 = iVar1" identifier = identifier) ;) (if_statement "if (-1 < iVar2) {\n    iVar3 = FUN_00054910(iVar1,*param_2);\n    if (iVar3 == 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("tmp","sshecc.c",0x1ee,"ecf_double");\n    }\n    FUN_00053760(iVar1);\n  }" if (parenthesized_expression "(-1 < iVar2)" ( (binary_expression "-1 < iVar2" number_literal < identifier) )) (compound_statement "{\n    iVar3 = FUN_00054910(iVar1,*param_2);\n    if (iVar3 == 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("tmp","sshecc.c",0x1ee,"ecf_double");\n    }\n    FUN_00053760(iVar1);\n  }" { (expression_statement "iVar3 = FUN_00054910(iVar1,*param_2);" (assignment_expression "iVar3 = FUN_00054910(iVar1,*param_2)" identifier = (call_expression "FUN_00054910(iVar1,*param_2)" identifier (argument_list "(iVar1,*param_2)" ( identifier , (pointer_expression "*param_2" * identifier) )))) ;) (if_statement "if (iVar3 == 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("tmp","sshecc.c",0x1ee,"ecf_double");\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("tmp","sshecc.c",0x1ee,"ecf_double");\n    }" { comment (expression_statement "__assert_fail("tmp","sshecc.c",0x1ee,"ecf_double");" (call_expression "__assert_fail("tmp","sshecc.c",0x1ee,"ecf_double")" identifier (argument_list "("tmp","sshecc.c",0x1ee,"ecf_double")" ( (string_literal ""tmp"" " string_content ") , (string_literal ""sshecc.c"" " string_content ") , number_literal , (string_literal ""ecf_double"" " string_content ") ))) ;) })) (expression_statement "FUN_00053760(iVar1);" (call_expression "FUN_00053760(iVar1)" identifier (argument_list "(iVar1)" ( identifier ))) ;) })) (return_statement "return iVar3;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nBignum __regparm3 ecf_double(Bignum a,ec_curve *curve)\n\n{\n  Bignum_conflict a_00;\n  int iVar1;\n  Bignum_conflict pBVar2;\n  \n  a_00 = bignum_lshift((Bignum_conflict)a,1);\n  iVar1 = bignum_cmp(a_00,(Bignum_conflict)curve->type);\n  pBVar2 = a_00;\n  if (-1 < iVar1) {\n    pBVar2 = bigsub(a_00,(Bignum_conflict)curve->type);\n    if (pBVar2 == (Bignum_conflict)0x0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("tmp","sshecc.c",0x1ee,"ecf_double");\n    }\n    freebn(a_00);\n  }\n  return pBVar2;\n}\n\n" comment comment (function_definition "Bignum __regparm3 ecf_double(Bignum a,ec_curve *curve)\n\n{\n  Bignum_conflict a_00;\n  int iVar1;\n  Bignum_conflict pBVar2;\n  \n  a_00 = bignum_lshift((Bignum_conflict)a,1);\n  iVar1 = bignum_cmp(a_00,(Bignum_conflict)curve->type);\n  pBVar2 = a_00;\n  if (-1 < iVar1) {\n    pBVar2 = bigsub(a_00,(Bignum_conflict)curve->type);\n    if (pBVar2 == (Bignum_conflict)0x0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("tmp","sshecc.c",0x1ee,"ecf_double");\n    }\n    freebn(a_00);\n  }\n  return pBVar2;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "ecf_double(Bignum a,ec_curve *curve)" identifier (parameter_list "(Bignum a,ec_curve *curve)" ( (parameter_declaration "Bignum a" type_identifier identifier) , (parameter_declaration "ec_curve *curve" type_identifier (pointer_declarator "*curve" * identifier)) ))) (compound_statement "{\n  Bignum_conflict a_00;\n  int iVar1;\n  Bignum_conflict pBVar2;\n  \n  a_00 = bignum_lshift((Bignum_conflict)a,1);\n  iVar1 = bignum_cmp(a_00,(Bignum_conflict)curve->type);\n  pBVar2 = a_00;\n  if (-1 < iVar1) {\n    pBVar2 = bigsub(a_00,(Bignum_conflict)curve->type);\n    if (pBVar2 == (Bignum_conflict)0x0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("tmp","sshecc.c",0x1ee,"ecf_double");\n    }\n    freebn(a_00);\n  }\n  return pBVar2;\n}" { (declaration "Bignum_conflict a_00;" type_identifier identifier ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "Bignum_conflict pBVar2;" type_identifier identifier ;) (expression_statement "a_00 = bignum_lshift((Bignum_conflict)a,1);" (assignment_expression "a_00 = bignum_lshift((Bignum_conflict)a,1)" identifier = (call_expression "bignum_lshift((Bignum_conflict)a,1)" identifier (argument_list "((Bignum_conflict)a,1)" ( (cast_expression "(Bignum_conflict)a" ( (type_descriptor "Bignum_conflict" type_identifier) ) identifier) , number_literal )))) ;) (expression_statement "iVar1 = bignum_cmp(a_00,(Bignum_conflict)curve->type);" (assignment_expression "iVar1 = bignum_cmp(a_00,(Bignum_conflict)curve->type)" identifier = (call_expression "bignum_cmp(a_00,(Bignum_conflict)curve->type)" identifier (argument_list "(a_00,(Bignum_conflict)curve->type)" ( identifier , (cast_expression "(Bignum_conflict)curve->type" ( (type_descriptor "Bignum_conflict" type_identifier) ) (field_expression "curve->type" identifier -> field_identifier)) )))) ;) (expression_statement "pBVar2 = a_00;" (assignment_expression "pBVar2 = a_00" identifier = identifier) ;) (if_statement "if (-1 < iVar1) {\n    pBVar2 = bigsub(a_00,(Bignum_conflict)curve->type);\n    if (pBVar2 == (Bignum_conflict)0x0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("tmp","sshecc.c",0x1ee,"ecf_double");\n    }\n    freebn(a_00);\n  }" if (parenthesized_expression "(-1 < iVar1)" ( (binary_expression "-1 < iVar1" number_literal < identifier) )) (compound_statement "{\n    pBVar2 = bigsub(a_00,(Bignum_conflict)curve->type);\n    if (pBVar2 == (Bignum_conflict)0x0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("tmp","sshecc.c",0x1ee,"ecf_double");\n    }\n    freebn(a_00);\n  }" { (expression_statement "pBVar2 = bigsub(a_00,(Bignum_conflict)curve->type);" (assignment_expression "pBVar2 = bigsub(a_00,(Bignum_conflict)curve->type)" identifier = (call_expression "bigsub(a_00,(Bignum_conflict)curve->type)" identifier (argument_list "(a_00,(Bignum_conflict)curve->type)" ( identifier , (cast_expression "(Bignum_conflict)curve->type" ( (type_descriptor "Bignum_conflict" type_identifier) ) (field_expression "curve->type" identifier -> field_identifier)) )))) ;) (if_statement "if (pBVar2 == (Bignum_conflict)0x0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("tmp","sshecc.c",0x1ee,"ecf_double");\n    }" if (parenthesized_expression "(pBVar2 == (Bignum_conflict)0x0)" ( (binary_expression "pBVar2 == (Bignum_conflict)0x0" identifier == (cast_expression "(Bignum_conflict)0x0" ( (type_descriptor "Bignum_conflict" type_identifier) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("tmp","sshecc.c",0x1ee,"ecf_double");\n    }" { comment (expression_statement "__assert_fail("tmp","sshecc.c",0x1ee,"ecf_double");" (call_expression "__assert_fail("tmp","sshecc.c",0x1ee,"ecf_double")" identifier (argument_list "("tmp","sshecc.c",0x1ee,"ecf_double")" ( (string_literal ""tmp"" " string_content ") , (string_literal ""sshecc.c"" " string_content ") , number_literal , (string_literal ""ecf_double"" " string_content ") ))) ;) })) (expression_statement "freebn(a_00);" (call_expression "freebn(a_00)" identifier (argument_list "(a_00)" ( identifier ))) ;) })) (return_statement "return pBVar2;" return identifier ;) })))
(translation_unit "int __regparm3 FUN_0005c550(undefined4 param_1,undefined4 *param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar1 = FUN_00054470(param_1,1);\n  iVar2 = FUN_000540e0(iVar1,*param_2);\n  iVar3 = iVar1;\n  if (-1 < iVar2) {\n    iVar3 = FUN_00054910(iVar1,*param_2);\n    if (iVar3 == 0) {\n                    \n      __assert_fail("tmp","sshecc.c",0x1ee,"ecf_double");\n    }\n    FUN_00053760(iVar1);\n  }\n  return iVar3;\n}\n\n" (function_definition "int __regparm3 FUN_0005c550(undefined4 param_1,undefined4 *param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar1 = FUN_00054470(param_1,1);\n  iVar2 = FUN_000540e0(iVar1,*param_2);\n  iVar3 = iVar1;\n  if (-1 < iVar2) {\n    iVar3 = FUN_00054910(iVar1,*param_2);\n    if (iVar3 == 0) {\n                    \n      __assert_fail("tmp","sshecc.c",0x1ee,"ecf_double");\n    }\n    FUN_00053760(iVar1);\n  }\n  return iVar3;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0005c550(undefined4 param_1,undefined4 *param_2)" identifier (parameter_list "(undefined4 param_1,undefined4 *param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar1 = FUN_00054470(param_1,1);\n  iVar2 = FUN_000540e0(iVar1,*param_2);\n  iVar3 = iVar1;\n  if (-1 < iVar2) {\n    iVar3 = FUN_00054910(iVar1,*param_2);\n    if (iVar3 == 0) {\n                    \n      __assert_fail("tmp","sshecc.c",0x1ee,"ecf_double");\n    }\n    FUN_00053760(iVar1);\n  }\n  return iVar3;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "iVar1 = FUN_00054470(param_1,1);" (assignment_expression "iVar1 = FUN_00054470(param_1,1)" identifier = (call_expression "FUN_00054470(param_1,1)" identifier (argument_list "(param_1,1)" ( identifier , number_literal )))) ;) (expression_statement "iVar2 = FUN_000540e0(iVar1,*param_2);" (assignment_expression "iVar2 = FUN_000540e0(iVar1,*param_2)" identifier = (call_expression "FUN_000540e0(iVar1,*param_2)" identifier (argument_list "(iVar1,*param_2)" ( identifier , (pointer_expression "*param_2" * identifier) )))) ;) (expression_statement "iVar3 = iVar1;" (assignment_expression "iVar3 = iVar1" identifier = identifier) ;) (if_statement "if (-1 < iVar2) {\n    iVar3 = FUN_00054910(iVar1,*param_2);\n    if (iVar3 == 0) {\n                    \n      __assert_fail("tmp","sshecc.c",0x1ee,"ecf_double");\n    }\n    FUN_00053760(iVar1);\n  }" if (parenthesized_expression "(-1 < iVar2)" ( (binary_expression "-1 < iVar2" number_literal < identifier) )) (compound_statement "{\n    iVar3 = FUN_00054910(iVar1,*param_2);\n    if (iVar3 == 0) {\n                    \n      __assert_fail("tmp","sshecc.c",0x1ee,"ecf_double");\n    }\n    FUN_00053760(iVar1);\n  }" { (expression_statement "iVar3 = FUN_00054910(iVar1,*param_2);" (assignment_expression "iVar3 = FUN_00054910(iVar1,*param_2)" identifier = (call_expression "FUN_00054910(iVar1,*param_2)" identifier (argument_list "(iVar1,*param_2)" ( identifier , (pointer_expression "*param_2" * identifier) )))) ;) (if_statement "if (iVar3 == 0) {\n                    \n      __assert_fail("tmp","sshecc.c",0x1ee,"ecf_double");\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n      __assert_fail("tmp","sshecc.c",0x1ee,"ecf_double");\n    }" { (expression_statement "__assert_fail("tmp","sshecc.c",0x1ee,"ecf_double");" (call_expression "__assert_fail("tmp","sshecc.c",0x1ee,"ecf_double")" identifier (argument_list "("tmp","sshecc.c",0x1ee,"ecf_double")" ( (string_literal ""tmp"" " string_content ") , (string_literal ""sshecc.c"" " string_content ") , number_literal , (string_literal ""ecf_double"" " string_content ") ))) ;) })) (expression_statement "FUN_00053760(iVar1);" (call_expression "FUN_00053760(iVar1)" identifier (argument_list "(iVar1)" ( identifier ))) ;) })) (return_statement "return iVar3;" return identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (return_statement return IDENT ;) })))
(function_definition "int __regparm3 FUN_0005c550(undefined4 param_1,undefined4 *param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar1 = FUN_00054470(param_1,1);\n  iVar2 = FUN_000540e0(iVar1,*param_2);\n  iVar3 = iVar1;\n  if (-1 < iVar2) {\n    iVar3 = FUN_00054910(iVar1,*param_2);\n    if (iVar3 == 0) {\n                    \n      __assert_fail("tmp","sshecc.c",0x1ee,"ecf_double");\n    }\n    FUN_00053760(iVar1);\n  }\n  return iVar3;\n}" (primitive_type "int") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_0005c550(undefined4 param_1,undefined4 *param_2)" (identifier "FUN_0005c550") (parameter_list "(undefined4 param_1,undefined4 *param_2)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 *param_2" (type_identifier "undefined4") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar1 = FUN_00054470(param_1,1);\n  iVar2 = FUN_000540e0(iVar1,*param_2);\n  iVar3 = iVar1;\n  if (-1 < iVar2) {\n    iVar3 = FUN_00054910(iVar1,*param_2);\n    if (iVar3 == 0) {\n                    \n      __assert_fail("tmp","sshecc.c",0x1ee,"ecf_double");\n    }\n    FUN_00053760(iVar1);\n  }\n  return iVar3;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (expression_statement "iVar1 = FUN_00054470(param_1,1);" (assignment_expression "iVar1 = FUN_00054470(param_1,1)" (identifier "iVar1") (= "=") (call_expression "FUN_00054470(param_1,1)" (identifier "FUN_00054470") (argument_list "(param_1,1)" (( "(") (identifier "param_1") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "iVar2 = FUN_000540e0(iVar1,*param_2);" (assignment_expression "iVar2 = FUN_000540e0(iVar1,*param_2)" (identifier "iVar2") (= "=") (call_expression "FUN_000540e0(iVar1,*param_2)" (identifier "FUN_000540e0") (argument_list "(iVar1,*param_2)" (( "(") (identifier "iVar1") (, ",") (pointer_expression "*param_2" (* "*") (identifier "param_2")) () ")")))) (; ";")) (expression_statement "iVar3 = iVar1;" (assignment_expression "iVar3 = iVar1" (identifier "iVar3") (= "=") (identifier "iVar1")) (; ";")) (if_statement "if (-1 < iVar2) {\n    iVar3 = FUN_00054910(iVar1,*param_2);\n    if (iVar3 == 0) {\n                    \n      __assert_fail("tmp","sshecc.c",0x1ee,"ecf_double");\n    }\n    FUN_00053760(iVar1);\n  }" (if "if") (parenthesized_expression "(-1 < iVar2)" (( "(") (binary_expression "-1 < iVar2" (number_literal "-1") (< "<") (identifier "iVar2")) () ")")) (compound_statement "{\n    iVar3 = FUN_00054910(iVar1,*param_2);\n    if (iVar3 == 0) {\n                    \n      __assert_fail("tmp","sshecc.c",0x1ee,"ecf_double");\n    }\n    FUN_00053760(iVar1);\n  }" ({ "{") (expression_statement "iVar3 = FUN_00054910(iVar1,*param_2);" (assignment_expression "iVar3 = FUN_00054910(iVar1,*param_2)" (identifier "iVar3") (= "=") (call_expression "FUN_00054910(iVar1,*param_2)" (identifier "FUN_00054910") (argument_list "(iVar1,*param_2)" (( "(") (identifier "iVar1") (, ",") (pointer_expression "*param_2" (* "*") (identifier "param_2")) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n                    \n      __assert_fail("tmp","sshecc.c",0x1ee,"ecf_double");\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n      __assert_fail("tmp","sshecc.c",0x1ee,"ecf_double");\n    }" ({ "{") (expression_statement "__assert_fail("tmp","sshecc.c",0x1ee,"ecf_double");" (call_expression "__assert_fail("tmp","sshecc.c",0x1ee,"ecf_double")" (identifier "__assert_fail") (argument_list "("tmp","sshecc.c",0x1ee,"ecf_double")" (( "(") (string_literal ""tmp"" (" """) (string_content "tmp") (" """)) (, ",") (string_literal ""sshecc.c"" (" """) (string_content "sshecc.c") (" """)) (, ",") (number_literal "0x1ee") (, ",") (string_literal ""ecf_double"" (" """) (string_content "ecf_double") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00053760(iVar1);" (call_expression "FUN_00053760(iVar1)" (identifier "FUN_00053760") (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")"))) (; ";")) (} "}"))) (return_statement "return iVar3;" (return "return") (identifier "iVar3") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

type_1 __regparm3 function_1(type_1 a,type_2 *curve)

{
  type_3 a_00;
  int var_3;
  type_3 var_5;
  
  a_00 = var_1((type_3)a,1);
  var_3 = var_2(a_00,(type_3)curve->type);
  var_5 = a_00;
  if (-1 < var_3) {
    var_5 = var_4(a_00,(type_3)curve->type);
    if (var_5 == (type_3)0x0) {
                    /* WARNING: Subroutine does not return */
      var_6("tmp","sshecc.c",0x1ee,"ecf_double");
    }
    var_7(a_00);
  }
  return var_5;
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

int __regparm3 MASKED(undefined4 param_1,undefined4 *param_2)

{
  int iVar1;
  int iVar2;
  int iVar3;
  
  iVar1 = FUN_00054470(param_1,1);
  iVar2 = FUN_000540e0(iVar1,*param_2);
  iVar3 = iVar1;
  if (-1 < iVar2) {
    iVar3 = FUN_00054910(iVar1,*param_2);
    if (iVar3 == 0) {
                    /* WARNING: Subroutine does not return */
      __assert_fail("tmp","sshecc.c",0x1ee,"ecf_double");
    }
    FUN_00053760(iVar1);
  }
  return iVar3;
}

