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

ec_curve * ec_p384(void)

{
  if (initialised_4754 != '\0') {
    return (ec_curve *)&curve_4753;
  }
  curve_4753 = 0;
  DAT_000700ec = 0x180;
  DAT_000700f0 = bignum_from_bytes(p_4755,0x30);
  DAT_000700f4 = bignum_from_bytes(a_4756,0x30);
  DAT_000700f8 = bignum_from_bytes(b_4757,0x30);
  DAT_000700fc = bignum_from_bytes(n_4758,0x30);
  DAT_00070104 = bignum_from_bytes(Gx_4759,0x30);
  DAT_00070108 = bignum_from_bytes(Gy_4760,0x30);
  DAT_00070100 = &curve_4753;
  DAT_000700e4 = "nistp384";
  DAT_000700e8 = "nistp384";
  DAT_00070110 = 0;
  initialised_4754 = 1;
  return (ec_curve *)&curve_4753;
}



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

undefined4 * FUN_0002f800(void)

{
  if (DAT_00070114 != '\0') {
    return &DAT_000700e0;
  }
  DAT_000700e0 = 0;
  DAT_000700ec = 0x180;
  DAT_000700f0 = FUN_000271e0(&DAT_00054f60,0x30);
  DAT_000700f4 = FUN_000271e0(&DAT_00054f20,0x30);
  DAT_000700f8 = FUN_000271e0(&DAT_00054ee0,0x30);
  DAT_000700fc = FUN_000271e0(&DAT_00054ea0,0x30);
  DAT_00070104 = FUN_000271e0(&DAT_00054e60,0x30);
  DAT_00070108 = FUN_000271e0(&DAT_00054e20,0x30);
  DAT_00070100 = &DAT_000700e0;
  DAT_000700e4 = "nistp384";
  DAT_000700e8 = "nistp384";
  DAT_00070110 = 0;
  DAT_00070114 = 1;
  return &DAT_000700e0;
}


PUSH ESI
PUSH EBX
CALL 0x00014560
ADD EBX,0x4065d
SUB ESP,0x4
CMP byte ptr [EBX + 0x2b0],0x0
LEA ESI,[EBX + 0x27c]
JZ 0x0002f830
ADD ESP,0x4
MOV EAX,ESI
POP EBX
POP ESI
RET
SUB ESP,0x8
LEA EAX,[EBX + 0xfffe50fc]
MOV dword ptr [EBX + 0x27c],0x0
PUSH 0x30
PUSH EAX
MOV dword ptr [EBX + 0x288],0x180
CALL 0x000271e0
MOV dword ptr [EBX + 0x28c],EAX
POP EAX
LEA EAX,[EBX + 0xfffe50bc]
POP EDX
PUSH 0x30
PUSH EAX
CALL 0x000271e0
POP ECX
MOV dword ptr [EBX + 0x290],EAX
POP EAX
LEA EAX,[EBX + 0xfffe507c]
PUSH 0x30
PUSH EAX
CALL 0x000271e0
MOV dword ptr [EBX + 0x294],EAX
POP EAX
LEA EAX,[EBX + 0xfffe503c]
POP EDX
PUSH 0x30
PUSH EAX
CALL 0x000271e0
POP ECX
MOV dword ptr [EBX + 0x298],EAX
POP EAX
LEA EAX,[EBX + 0xfffe4ffc]
PUSH 0x30
PUSH EAX
CALL 0x000271e0
MOV dword ptr [EBX + 0x2a0],EAX
POP EAX
LEA EAX,[EBX + 0xfffe4fbc]
POP EDX
PUSH 0x30
PUSH EAX
CALL 0x000271e0
ADD ESP,0x10
MOV dword ptr [EBX + 0x29c],ESI
MOV dword ptr [EBX + 0x2a4],EAX
LEA EAX,[EBX + 0xfffe4c66]
MOV dword ptr [EBX + 0x280],EAX
MOV dword ptr [EBX + 0x284],EAX
MOV EAX,ESI
MOV byte ptr [EBX + 0x2ac],0x0
MOV byte ptr [EBX + 0x2b0],0x1
ADD ESP,0x4
POP EBX
POP ESI
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 * FUN_0002f800(void)\n\n{\n  if (DAT_00070114 != '\0') {\n    return &DAT_000700e0;\n  }\n  DAT_000700e0 = 0;\n  DAT_000700ec = 0x180;\n  DAT_000700f0 = FUN_000271e0(&DAT_00054f60,0x30);\n  DAT_000700f4 = FUN_000271e0(&DAT_00054f20,0x30);\n  DAT_000700f8 = FUN_000271e0(&DAT_00054ee0,0x30);\n  DAT_000700fc = FUN_000271e0(&DAT_00054ea0,0x30);\n  DAT_00070104 = FUN_000271e0(&DAT_00054e60,0x30);\n  DAT_00070108 = FUN_000271e0(&DAT_00054e20,0x30);\n  DAT_00070100 = &DAT_000700e0;\n  DAT_000700e4 = "nistp384";\n  DAT_000700e8 = "nistp384";\n  DAT_00070110 = 0;\n  DAT_00070114 = 1;\n  return &DAT_000700e0;\n}\n\n" comment (function_definition "undefined4 * FUN_0002f800(void)\n\n{\n  if (DAT_00070114 != '\0') {\n    return &DAT_000700e0;\n  }\n  DAT_000700e0 = 0;\n  DAT_000700ec = 0x180;\n  DAT_000700f0 = FUN_000271e0(&DAT_00054f60,0x30);\n  DAT_000700f4 = FUN_000271e0(&DAT_00054f20,0x30);\n  DAT_000700f8 = FUN_000271e0(&DAT_00054ee0,0x30);\n  DAT_000700fc = FUN_000271e0(&DAT_00054ea0,0x30);\n  DAT_00070104 = FUN_000271e0(&DAT_00054e60,0x30);\n  DAT_00070108 = FUN_000271e0(&DAT_00054e20,0x30);\n  DAT_00070100 = &DAT_000700e0;\n  DAT_000700e4 = "nistp384";\n  DAT_000700e8 = "nistp384";\n  DAT_00070110 = 0;\n  DAT_00070114 = 1;\n  return &DAT_000700e0;\n}" type_identifier (pointer_declarator "* FUN_0002f800(void)" * (function_declarator "FUN_0002f800(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) )))) (compound_statement "{\n  if (DAT_00070114 != '\0') {\n    return &DAT_000700e0;\n  }\n  DAT_000700e0 = 0;\n  DAT_000700ec = 0x180;\n  DAT_000700f0 = FUN_000271e0(&DAT_00054f60,0x30);\n  DAT_000700f4 = FUN_000271e0(&DAT_00054f20,0x30);\n  DAT_000700f8 = FUN_000271e0(&DAT_00054ee0,0x30);\n  DAT_000700fc = FUN_000271e0(&DAT_00054ea0,0x30);\n  DAT_00070104 = FUN_000271e0(&DAT_00054e60,0x30);\n  DAT_00070108 = FUN_000271e0(&DAT_00054e20,0x30);\n  DAT_00070100 = &DAT_000700e0;\n  DAT_000700e4 = "nistp384";\n  DAT_000700e8 = "nistp384";\n  DAT_00070110 = 0;\n  DAT_00070114 = 1;\n  return &DAT_000700e0;\n}" { (if_statement "if (DAT_00070114 != '\0') {\n    return &DAT_000700e0;\n  }" if (parenthesized_expression "(DAT_00070114 != '\0')" ( (binary_expression "DAT_00070114 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return &DAT_000700e0;\n  }" { (return_statement "return &DAT_000700e0;" return (pointer_expression "&DAT_000700e0" & identifier) ;) })) (expression_statement "DAT_000700e0 = 0;" (assignment_expression "DAT_000700e0 = 0" identifier = number_literal) ;) (expression_statement "DAT_000700ec = 0x180;" (assignment_expression "DAT_000700ec = 0x180" identifier = number_literal) ;) (expression_statement "DAT_000700f0 = FUN_000271e0(&DAT_00054f60,0x30);" (assignment_expression "DAT_000700f0 = FUN_000271e0(&DAT_00054f60,0x30)" identifier = (call_expression "FUN_000271e0(&DAT_00054f60,0x30)" identifier (argument_list "(&DAT_00054f60,0x30)" ( (pointer_expression "&DAT_00054f60" & identifier) , number_literal )))) ;) (expression_statement "DAT_000700f4 = FUN_000271e0(&DAT_00054f20,0x30);" (assignment_expression "DAT_000700f4 = FUN_000271e0(&DAT_00054f20,0x30)" identifier = (call_expression "FUN_000271e0(&DAT_00054f20,0x30)" identifier (argument_list "(&DAT_00054f20,0x30)" ( (pointer_expression "&DAT_00054f20" & identifier) , number_literal )))) ;) (expression_statement "DAT_000700f8 = FUN_000271e0(&DAT_00054ee0,0x30);" (assignment_expression "DAT_000700f8 = FUN_000271e0(&DAT_00054ee0,0x30)" identifier = (call_expression "FUN_000271e0(&DAT_00054ee0,0x30)" identifier (argument_list "(&DAT_00054ee0,0x30)" ( (pointer_expression "&DAT_00054ee0" & identifier) , number_literal )))) ;) (expression_statement "DAT_000700fc = FUN_000271e0(&DAT_00054ea0,0x30);" (assignment_expression "DAT_000700fc = FUN_000271e0(&DAT_00054ea0,0x30)" identifier = (call_expression "FUN_000271e0(&DAT_00054ea0,0x30)" identifier (argument_list "(&DAT_00054ea0,0x30)" ( (pointer_expression "&DAT_00054ea0" & identifier) , number_literal )))) ;) (expression_statement "DAT_00070104 = FUN_000271e0(&DAT_00054e60,0x30);" (assignment_expression "DAT_00070104 = FUN_000271e0(&DAT_00054e60,0x30)" identifier = (call_expression "FUN_000271e0(&DAT_00054e60,0x30)" identifier (argument_list "(&DAT_00054e60,0x30)" ( (pointer_expression "&DAT_00054e60" & identifier) , number_literal )))) ;) (expression_statement "DAT_00070108 = FUN_000271e0(&DAT_00054e20,0x30);" (assignment_expression "DAT_00070108 = FUN_000271e0(&DAT_00054e20,0x30)" identifier = (call_expression "FUN_000271e0(&DAT_00054e20,0x30)" identifier (argument_list "(&DAT_00054e20,0x30)" ( (pointer_expression "&DAT_00054e20" & identifier) , number_literal )))) ;) (expression_statement "DAT_00070100 = &DAT_000700e0;" (assignment_expression "DAT_00070100 = &DAT_000700e0" identifier = (pointer_expression "&DAT_000700e0" & identifier)) ;) (expression_statement "DAT_000700e4 = "nistp384";" (assignment_expression "DAT_000700e4 = "nistp384"" identifier = (string_literal ""nistp384"" " string_content ")) ;) (expression_statement "DAT_000700e8 = "nistp384";" (assignment_expression "DAT_000700e8 = "nistp384"" identifier = (string_literal ""nistp384"" " string_content ")) ;) (expression_statement "DAT_00070110 = 0;" (assignment_expression "DAT_00070110 = 0" identifier = number_literal) ;) (expression_statement "DAT_00070114 = 1;" (assignment_expression "DAT_00070114 = 1" identifier = number_literal) ;) (return_statement "return &DAT_000700e0;" return (pointer_expression "&DAT_000700e0" & identifier) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nec_curve * ec_p384(void)\n\n{\n  if (initialised_4754 != '\0') {\n    return (ec_curve *)&curve_4753;\n  }\n  curve_4753 = 0;\n  DAT_000700ec = 0x180;\n  DAT_000700f0 = bignum_from_bytes(p_4755,0x30);\n  DAT_000700f4 = bignum_from_bytes(a_4756,0x30);\n  DAT_000700f8 = bignum_from_bytes(b_4757,0x30);\n  DAT_000700fc = bignum_from_bytes(n_4758,0x30);\n  DAT_00070104 = bignum_from_bytes(Gx_4759,0x30);\n  DAT_00070108 = bignum_from_bytes(Gy_4760,0x30);\n  DAT_00070100 = &curve_4753;\n  DAT_000700e4 = "nistp384";\n  DAT_000700e8 = "nistp384";\n  DAT_00070110 = 0;\n  initialised_4754 = 1;\n  return (ec_curve *)&curve_4753;\n}\n\n" comment comment comment (function_definition "ec_curve * ec_p384(void)\n\n{\n  if (initialised_4754 != '\0') {\n    return (ec_curve *)&curve_4753;\n  }\n  curve_4753 = 0;\n  DAT_000700ec = 0x180;\n  DAT_000700f0 = bignum_from_bytes(p_4755,0x30);\n  DAT_000700f4 = bignum_from_bytes(a_4756,0x30);\n  DAT_000700f8 = bignum_from_bytes(b_4757,0x30);\n  DAT_000700fc = bignum_from_bytes(n_4758,0x30);\n  DAT_00070104 = bignum_from_bytes(Gx_4759,0x30);\n  DAT_00070108 = bignum_from_bytes(Gy_4760,0x30);\n  DAT_00070100 = &curve_4753;\n  DAT_000700e4 = "nistp384";\n  DAT_000700e8 = "nistp384";\n  DAT_00070110 = 0;\n  initialised_4754 = 1;\n  return (ec_curve *)&curve_4753;\n}" type_identifier (pointer_declarator "* ec_p384(void)" * (function_declarator "ec_p384(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) )))) (compound_statement "{\n  if (initialised_4754 != '\0') {\n    return (ec_curve *)&curve_4753;\n  }\n  curve_4753 = 0;\n  DAT_000700ec = 0x180;\n  DAT_000700f0 = bignum_from_bytes(p_4755,0x30);\n  DAT_000700f4 = bignum_from_bytes(a_4756,0x30);\n  DAT_000700f8 = bignum_from_bytes(b_4757,0x30);\n  DAT_000700fc = bignum_from_bytes(n_4758,0x30);\n  DAT_00070104 = bignum_from_bytes(Gx_4759,0x30);\n  DAT_00070108 = bignum_from_bytes(Gy_4760,0x30);\n  DAT_00070100 = &curve_4753;\n  DAT_000700e4 = "nistp384";\n  DAT_000700e8 = "nistp384";\n  DAT_00070110 = 0;\n  initialised_4754 = 1;\n  return (ec_curve *)&curve_4753;\n}" { (if_statement "if (initialised_4754 != '\0') {\n    return (ec_curve *)&curve_4753;\n  }" if (parenthesized_expression "(initialised_4754 != '\0')" ( (binary_expression "initialised_4754 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return (ec_curve *)&curve_4753;\n  }" { (return_statement "return (ec_curve *)&curve_4753;" return (cast_expression "(ec_curve *)&curve_4753" ( (type_descriptor "ec_curve *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&curve_4753" & identifier)) ;) })) (expression_statement "curve_4753 = 0;" (assignment_expression "curve_4753 = 0" identifier = number_literal) ;) (expression_statement "DAT_000700ec = 0x180;" (assignment_expression "DAT_000700ec = 0x180" identifier = number_literal) ;) (expression_statement "DAT_000700f0 = bignum_from_bytes(p_4755,0x30);" (assignment_expression "DAT_000700f0 = bignum_from_bytes(p_4755,0x30)" identifier = (call_expression "bignum_from_bytes(p_4755,0x30)" identifier (argument_list "(p_4755,0x30)" ( identifier , number_literal )))) ;) (expression_statement "DAT_000700f4 = bignum_from_bytes(a_4756,0x30);" (assignment_expression "DAT_000700f4 = bignum_from_bytes(a_4756,0x30)" identifier = (call_expression "bignum_from_bytes(a_4756,0x30)" identifier (argument_list "(a_4756,0x30)" ( identifier , number_literal )))) ;) (expression_statement "DAT_000700f8 = bignum_from_bytes(b_4757,0x30);" (assignment_expression "DAT_000700f8 = bignum_from_bytes(b_4757,0x30)" identifier = (call_expression "bignum_from_bytes(b_4757,0x30)" identifier (argument_list "(b_4757,0x30)" ( identifier , number_literal )))) ;) (expression_statement "DAT_000700fc = bignum_from_bytes(n_4758,0x30);" (assignment_expression "DAT_000700fc = bignum_from_bytes(n_4758,0x30)" identifier = (call_expression "bignum_from_bytes(n_4758,0x30)" identifier (argument_list "(n_4758,0x30)" ( identifier , number_literal )))) ;) (expression_statement "DAT_00070104 = bignum_from_bytes(Gx_4759,0x30);" (assignment_expression "DAT_00070104 = bignum_from_bytes(Gx_4759,0x30)" identifier = (call_expression "bignum_from_bytes(Gx_4759,0x30)" identifier (argument_list "(Gx_4759,0x30)" ( identifier , number_literal )))) ;) (expression_statement "DAT_00070108 = bignum_from_bytes(Gy_4760,0x30);" (assignment_expression "DAT_00070108 = bignum_from_bytes(Gy_4760,0x30)" identifier = (call_expression "bignum_from_bytes(Gy_4760,0x30)" identifier (argument_list "(Gy_4760,0x30)" ( identifier , number_literal )))) ;) (expression_statement "DAT_00070100 = &curve_4753;" (assignment_expression "DAT_00070100 = &curve_4753" identifier = (pointer_expression "&curve_4753" & identifier)) ;) (expression_statement "DAT_000700e4 = "nistp384";" (assignment_expression "DAT_000700e4 = "nistp384"" identifier = (string_literal ""nistp384"" " string_content ")) ;) (expression_statement "DAT_000700e8 = "nistp384";" (assignment_expression "DAT_000700e8 = "nistp384"" identifier = (string_literal ""nistp384"" " string_content ")) ;) (expression_statement "DAT_00070110 = 0;" (assignment_expression "DAT_00070110 = 0" identifier = number_literal) ;) (expression_statement "initialised_4754 = 1;" (assignment_expression "initialised_4754 = 1" identifier = number_literal) ;) (return_statement "return (ec_curve *)&curve_4753;" return (cast_expression "(ec_curve *)&curve_4753" ( (type_descriptor "ec_curve *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&curve_4753" & identifier)) ;) })))
(translation_unit "undefined4 * FUN_0002f800(void)\n\n{\n  if (DAT_00070114 != '\0') {\n    return &DAT_000700e0;\n  }\n  DAT_000700e0 = 0;\n  DAT_000700ec = 0x180;\n  DAT_000700f0 = FUN_000271e0(&DAT_00054f60,0x30);\n  DAT_000700f4 = FUN_000271e0(&DAT_00054f20,0x30);\n  DAT_000700f8 = FUN_000271e0(&DAT_00054ee0,0x30);\n  DAT_000700fc = FUN_000271e0(&DAT_00054ea0,0x30);\n  DAT_00070104 = FUN_000271e0(&DAT_00054e60,0x30);\n  DAT_00070108 = FUN_000271e0(&DAT_00054e20,0x30);\n  DAT_00070100 = &DAT_000700e0;\n  DAT_000700e4 = "nistp384";\n  DAT_000700e8 = "nistp384";\n  DAT_00070110 = 0;\n  DAT_00070114 = 1;\n  return &DAT_000700e0;\n}\n\n" (function_definition "undefined4 * FUN_0002f800(void)\n\n{\n  if (DAT_00070114 != '\0') {\n    return &DAT_000700e0;\n  }\n  DAT_000700e0 = 0;\n  DAT_000700ec = 0x180;\n  DAT_000700f0 = FUN_000271e0(&DAT_00054f60,0x30);\n  DAT_000700f4 = FUN_000271e0(&DAT_00054f20,0x30);\n  DAT_000700f8 = FUN_000271e0(&DAT_00054ee0,0x30);\n  DAT_000700fc = FUN_000271e0(&DAT_00054ea0,0x30);\n  DAT_00070104 = FUN_000271e0(&DAT_00054e60,0x30);\n  DAT_00070108 = FUN_000271e0(&DAT_00054e20,0x30);\n  DAT_00070100 = &DAT_000700e0;\n  DAT_000700e4 = "nistp384";\n  DAT_000700e8 = "nistp384";\n  DAT_00070110 = 0;\n  DAT_00070114 = 1;\n  return &DAT_000700e0;\n}" type_identifier (pointer_declarator "* FUN_0002f800(void)" * (function_declarator "FUN_0002f800(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) )))) (compound_statement "{\n  if (DAT_00070114 != '\0') {\n    return &DAT_000700e0;\n  }\n  DAT_000700e0 = 0;\n  DAT_000700ec = 0x180;\n  DAT_000700f0 = FUN_000271e0(&DAT_00054f60,0x30);\n  DAT_000700f4 = FUN_000271e0(&DAT_00054f20,0x30);\n  DAT_000700f8 = FUN_000271e0(&DAT_00054ee0,0x30);\n  DAT_000700fc = FUN_000271e0(&DAT_00054ea0,0x30);\n  DAT_00070104 = FUN_000271e0(&DAT_00054e60,0x30);\n  DAT_00070108 = FUN_000271e0(&DAT_00054e20,0x30);\n  DAT_00070100 = &DAT_000700e0;\n  DAT_000700e4 = "nistp384";\n  DAT_000700e8 = "nistp384";\n  DAT_00070110 = 0;\n  DAT_00070114 = 1;\n  return &DAT_000700e0;\n}" { (if_statement "if (DAT_00070114 != '\0') {\n    return &DAT_000700e0;\n  }" if (parenthesized_expression "(DAT_00070114 != '\0')" ( (binary_expression "DAT_00070114 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return &DAT_000700e0;\n  }" { (return_statement "return &DAT_000700e0;" return (pointer_expression "&DAT_000700e0" & identifier) ;) })) (expression_statement "DAT_000700e0 = 0;" (assignment_expression "DAT_000700e0 = 0" identifier = number_literal) ;) (expression_statement "DAT_000700ec = 0x180;" (assignment_expression "DAT_000700ec = 0x180" identifier = number_literal) ;) (expression_statement "DAT_000700f0 = FUN_000271e0(&DAT_00054f60,0x30);" (assignment_expression "DAT_000700f0 = FUN_000271e0(&DAT_00054f60,0x30)" identifier = (call_expression "FUN_000271e0(&DAT_00054f60,0x30)" identifier (argument_list "(&DAT_00054f60,0x30)" ( (pointer_expression "&DAT_00054f60" & identifier) , number_literal )))) ;) (expression_statement "DAT_000700f4 = FUN_000271e0(&DAT_00054f20,0x30);" (assignment_expression "DAT_000700f4 = FUN_000271e0(&DAT_00054f20,0x30)" identifier = (call_expression "FUN_000271e0(&DAT_00054f20,0x30)" identifier (argument_list "(&DAT_00054f20,0x30)" ( (pointer_expression "&DAT_00054f20" & identifier) , number_literal )))) ;) (expression_statement "DAT_000700f8 = FUN_000271e0(&DAT_00054ee0,0x30);" (assignment_expression "DAT_000700f8 = FUN_000271e0(&DAT_00054ee0,0x30)" identifier = (call_expression "FUN_000271e0(&DAT_00054ee0,0x30)" identifier (argument_list "(&DAT_00054ee0,0x30)" ( (pointer_expression "&DAT_00054ee0" & identifier) , number_literal )))) ;) (expression_statement "DAT_000700fc = FUN_000271e0(&DAT_00054ea0,0x30);" (assignment_expression "DAT_000700fc = FUN_000271e0(&DAT_00054ea0,0x30)" identifier = (call_expression "FUN_000271e0(&DAT_00054ea0,0x30)" identifier (argument_list "(&DAT_00054ea0,0x30)" ( (pointer_expression "&DAT_00054ea0" & identifier) , number_literal )))) ;) (expression_statement "DAT_00070104 = FUN_000271e0(&DAT_00054e60,0x30);" (assignment_expression "DAT_00070104 = FUN_000271e0(&DAT_00054e60,0x30)" identifier = (call_expression "FUN_000271e0(&DAT_00054e60,0x30)" identifier (argument_list "(&DAT_00054e60,0x30)" ( (pointer_expression "&DAT_00054e60" & identifier) , number_literal )))) ;) (expression_statement "DAT_00070108 = FUN_000271e0(&DAT_00054e20,0x30);" (assignment_expression "DAT_00070108 = FUN_000271e0(&DAT_00054e20,0x30)" identifier = (call_expression "FUN_000271e0(&DAT_00054e20,0x30)" identifier (argument_list "(&DAT_00054e20,0x30)" ( (pointer_expression "&DAT_00054e20" & identifier) , number_literal )))) ;) (expression_statement "DAT_00070100 = &DAT_000700e0;" (assignment_expression "DAT_00070100 = &DAT_000700e0" identifier = (pointer_expression "&DAT_000700e0" & identifier)) ;) (expression_statement "DAT_000700e4 = "nistp384";" (assignment_expression "DAT_000700e4 = "nistp384"" identifier = (string_literal ""nistp384"" " string_content ")) ;) (expression_statement "DAT_000700e8 = "nistp384";" (assignment_expression "DAT_000700e8 = "nistp384"" identifier = (string_literal ""nistp384"" " string_content ")) ;) (expression_statement "DAT_00070110 = 0;" (assignment_expression "DAT_00070110 = 0" identifier = number_literal) ;) (expression_statement "DAT_00070114 = 1;" (assignment_expression "DAT_00070114 = 1" identifier = number_literal) ;) (return_statement "return &DAT_000700e0;" return (pointer_expression "&DAT_000700e0" & identifier) ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) )))) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return (pointer_expression & IDENT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (return_statement return (pointer_expression & IDENT) ;) })))
(function_definition "undefined4 * FUN_0002f800(void)\n\n{\n  if (DAT_00070114 != '\0') {\n    return &DAT_000700e0;\n  }\n  DAT_000700e0 = 0;\n  DAT_000700ec = 0x180;\n  DAT_000700f0 = FUN_000271e0(&DAT_00054f60,0x30);\n  DAT_000700f4 = FUN_000271e0(&DAT_00054f20,0x30);\n  DAT_000700f8 = FUN_000271e0(&DAT_00054ee0,0x30);\n  DAT_000700fc = FUN_000271e0(&DAT_00054ea0,0x30);\n  DAT_00070104 = FUN_000271e0(&DAT_00054e60,0x30);\n  DAT_00070108 = FUN_000271e0(&DAT_00054e20,0x30);\n  DAT_00070100 = &DAT_000700e0;\n  DAT_000700e4 = "nistp384";\n  DAT_000700e8 = "nistp384";\n  DAT_00070110 = 0;\n  DAT_00070114 = 1;\n  return &DAT_000700e0;\n}" (type_identifier "undefined4") (pointer_declarator "* FUN_0002f800(void)" (* "*") (function_declarator "FUN_0002f800(void)" (identifier "FUN_0002f800") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")")))) (compound_statement "{\n  if (DAT_00070114 != '\0') {\n    return &DAT_000700e0;\n  }\n  DAT_000700e0 = 0;\n  DAT_000700ec = 0x180;\n  DAT_000700f0 = FUN_000271e0(&DAT_00054f60,0x30);\n  DAT_000700f4 = FUN_000271e0(&DAT_00054f20,0x30);\n  DAT_000700f8 = FUN_000271e0(&DAT_00054ee0,0x30);\n  DAT_000700fc = FUN_000271e0(&DAT_00054ea0,0x30);\n  DAT_00070104 = FUN_000271e0(&DAT_00054e60,0x30);\n  DAT_00070108 = FUN_000271e0(&DAT_00054e20,0x30);\n  DAT_00070100 = &DAT_000700e0;\n  DAT_000700e4 = "nistp384";\n  DAT_000700e8 = "nistp384";\n  DAT_00070110 = 0;\n  DAT_00070114 = 1;\n  return &DAT_000700e0;\n}" ({ "{") (if_statement "if (DAT_00070114 != '\0') {\n    return &DAT_000700e0;\n  }" (if "if") (parenthesized_expression "(DAT_00070114 != '\0')" (( "(") (binary_expression "DAT_00070114 != '\0'" (identifier "DAT_00070114") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    return &DAT_000700e0;\n  }" ({ "{") (return_statement "return &DAT_000700e0;" (return "return") (pointer_expression "&DAT_000700e0" (& "&") (identifier "DAT_000700e0")) (; ";")) (} "}"))) (expression_statement "DAT_000700e0 = 0;" (assignment_expression "DAT_000700e0 = 0" (identifier "DAT_000700e0") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_000700ec = 0x180;" (assignment_expression "DAT_000700ec = 0x180" (identifier "DAT_000700ec") (= "=") (number_literal "0x180")) (; ";")) (expression_statement "DAT_000700f0 = FUN_000271e0(&DAT_00054f60,0x30);" (assignment_expression "DAT_000700f0 = FUN_000271e0(&DAT_00054f60,0x30)" (identifier "DAT_000700f0") (= "=") (call_expression "FUN_000271e0(&DAT_00054f60,0x30)" (identifier "FUN_000271e0") (argument_list "(&DAT_00054f60,0x30)" (( "(") (pointer_expression "&DAT_00054f60" (& "&") (identifier "DAT_00054f60")) (, ",") (number_literal "0x30") () ")")))) (; ";")) (expression_statement "DAT_000700f4 = FUN_000271e0(&DAT_00054f20,0x30);" (assignment_expression "DAT_000700f4 = FUN_000271e0(&DAT_00054f20,0x30)" (identifier "DAT_000700f4") (= "=") (call_expression "FUN_000271e0(&DAT_00054f20,0x30)" (identifier "FUN_000271e0") (argument_list "(&DAT_00054f20,0x30)" (( "(") (pointer_expression "&DAT_00054f20" (& "&") (identifier "DAT_00054f20")) (, ",") (number_literal "0x30") () ")")))) (; ";")) (expression_statement "DAT_000700f8 = FUN_000271e0(&DAT_00054ee0,0x30);" (assignment_expression "DAT_000700f8 = FUN_000271e0(&DAT_00054ee0,0x30)" (identifier "DAT_000700f8") (= "=") (call_expression "FUN_000271e0(&DAT_00054ee0,0x30)" (identifier "FUN_000271e0") (argument_list "(&DAT_00054ee0,0x30)" (( "(") (pointer_expression "&DAT_00054ee0" (& "&") (identifier "DAT_00054ee0")) (, ",") (number_literal "0x30") () ")")))) (; ";")) (expression_statement "DAT_000700fc = FUN_000271e0(&DAT_00054ea0,0x30);" (assignment_expression "DAT_000700fc = FUN_000271e0(&DAT_00054ea0,0x30)" (identifier "DAT_000700fc") (= "=") (call_expression "FUN_000271e0(&DAT_00054ea0,0x30)" (identifier "FUN_000271e0") (argument_list "(&DAT_00054ea0,0x30)" (( "(") (pointer_expression "&DAT_00054ea0" (& "&") (identifier "DAT_00054ea0")) (, ",") (number_literal "0x30") () ")")))) (; ";")) (expression_statement "DAT_00070104 = FUN_000271e0(&DAT_00054e60,0x30);" (assignment_expression "DAT_00070104 = FUN_000271e0(&DAT_00054e60,0x30)" (identifier "DAT_00070104") (= "=") (call_expression "FUN_000271e0(&DAT_00054e60,0x30)" (identifier "FUN_000271e0") (argument_list "(&DAT_00054e60,0x30)" (( "(") (pointer_expression "&DAT_00054e60" (& "&") (identifier "DAT_00054e60")) (, ",") (number_literal "0x30") () ")")))) (; ";")) (expression_statement "DAT_00070108 = FUN_000271e0(&DAT_00054e20,0x30);" (assignment_expression "DAT_00070108 = FUN_000271e0(&DAT_00054e20,0x30)" (identifier "DAT_00070108") (= "=") (call_expression "FUN_000271e0(&DAT_00054e20,0x30)" (identifier "FUN_000271e0") (argument_list "(&DAT_00054e20,0x30)" (( "(") (pointer_expression "&DAT_00054e20" (& "&") (identifier "DAT_00054e20")) (, ",") (number_literal "0x30") () ")")))) (; ";")) (expression_statement "DAT_00070100 = &DAT_000700e0;" (assignment_expression "DAT_00070100 = &DAT_000700e0" (identifier "DAT_00070100") (= "=") (pointer_expression "&DAT_000700e0" (& "&") (identifier "DAT_000700e0"))) (; ";")) (expression_statement "DAT_000700e4 = "nistp384";" (assignment_expression "DAT_000700e4 = "nistp384"" (identifier "DAT_000700e4") (= "=") (string_literal ""nistp384"" (" """) (string_content "nistp384") (" """))) (; ";")) (expression_statement "DAT_000700e8 = "nistp384";" (assignment_expression "DAT_000700e8 = "nistp384"" (identifier "DAT_000700e8") (= "=") (string_literal ""nistp384"" (" """) (string_content "nistp384") (" """))) (; ";")) (expression_statement "DAT_00070110 = 0;" (assignment_expression "DAT_00070110 = 0" (identifier "DAT_00070110") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00070114 = 1;" (assignment_expression "DAT_00070114 = 1" (identifier "DAT_00070114") (= "=") (number_literal "1")) (; ";")) (return_statement "return &DAT_000700e0;" (return "return") (pointer_expression "&DAT_000700e0" (& "&") (identifier "DAT_000700e0")) (; ";")) (} "}")))

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

type_1 * function_1(void)

{
  if (var_1 != '\0') {
    return (type_1 *)&curve_4753;
  }
  curve_4753 = 0;
  DAT_000700ec = 0x180;
  DAT_000700f0 = var_2(p_4755,0x30);
  DAT_000700f4 = var_2(a_4756,0x30);
  DAT_000700f8 = var_2(b_4757,0x30);
  DAT_000700fc = var_2(n_4758,0x30);
  DAT_00070104 = var_2(Gx_4759,0x30);
  DAT_00070108 = var_2(Gy_4760,0x30);
  DAT_00070100 = &curve_4753;
  DAT_000700e4 = "nistp384";
  DAT_000700e8 = "nistp384";
  DAT_00070110 = 0;
  var_1 = 1;
  return (type_1 *)&curve_4753;
}


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

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

undefined4 * MASKED(void)

{
  if (DAT_00070114 != '\0') {
    return &DAT_000700e0;
  }
  DAT_000700e0 = 0;
  DAT_000700ec = 0x180;
  DAT_000700f0 = FUN_000271e0(&DAT_00054f60,0x30);
  DAT_000700f4 = FUN_000271e0(&DAT_00054f20,0x30);
  DAT_000700f8 = FUN_000271e0(&DAT_00054ee0,0x30);
  DAT_000700fc = FUN_000271e0(&DAT_00054ea0,0x30);
  DAT_00070104 = FUN_000271e0(&DAT_00054e60,0x30);
  DAT_00070108 = FUN_000271e0(&DAT_00054e20,0x30);
  DAT_00070100 = &DAT_000700e0;
  DAT_000700e4 = "nistp384";
  DAT_000700e8 = "nistp384";
  DAT_00070110 = 0;
  DAT_00070114 = 1;
  return &DAT_000700e0;
}

