
/* 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 */

curl_slist * Curl_ossl_engines_list(Curl_easy *data)

{
  ENGINE *e;
  char *data_00;
  curl_slist *pcVar1;
  curl_slist *list;
  
  e = ENGINE_get_first();
  if (e == (ENGINE *)0x0) {
    pcVar1 = (curl_slist *)0x0;
  }
  else {
    list = (curl_slist *)0x0;
    do {
      data_00 = ENGINE_get_id(e);
      pcVar1 = curl_slist_append(list,data_00);
      if (pcVar1 == (curl_slist *)0x0) {
        curl_slist_free_all(list);
        return (curl_slist *)0x0;
      }
      e = ENGINE_get_next(e);
      list = pcVar1;
    } while (e != (ENGINE *)0x0);
  }
  return pcVar1;
}



int __regparm3 FUN_0007ac50(undefined4 param_1,undefined4 param_2)

{
  ENGINE *e;
  char *pcVar1;
  int iVar2;
  int iVar3;
  
  entry(param_2,0x7ac59);
  e = ENGINE_get_first();
  if (e == (ENGINE *)0x0) {
    iVar2 = 0;
  }
  else {
    iVar3 = 0;
    do {
      pcVar1 = ENGINE_get_id(e);
      iVar2 = curl_slist_append(iVar3,pcVar1);
      if (iVar2 == 0) {
        curl_slist_free_all(iVar3);
        return 0;
      }
      e = ENGINE_get_next(e);
      iVar3 = iVar2;
    } while (e != (ENGINE *)0x0);
  }
  return iVar2;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00019ed0
ADD EBX,0x3bb87
SUB ESP,0xc
CALL 0x00019730
TEST EAX,EAX
JZ 0x0007acbd
MOV ESI,EAX
XOR EDI,EDI
JMP 0x0007ac8c
SUB ESP,0xc
MOV EDI,EBP
PUSH ESI
CALL 0x00018a60
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x0007acb3
SUB ESP,0xc
PUSH ESI
CALL 0x00019380
POP EDX
POP ECX
PUSH EAX
PUSH EDI
CALL 0x00018580
ADD ESP,0x10
MOV EBP,EAX
TEST EAX,EAX
JNZ 0x0007ac78
SUB ESP,0xc
PUSH EDI
CALL 0x00019340
ADD ESP,0x10
ADD ESP,0xc
MOV EAX,EBP
POP EBX
POP ESI
POP EDI
POP EBP
RET
XOR EBP,EBP
JMP 0x0007acb3
(translation_unit "int __regparm3 FUN_0007ac50(undefined4 param_1,undefined4 param_2)\n\n{\n  ENGINE *e;\n  char *pcVar1;\n  int iVar2;\n  int iVar3;\n  \n  entry(param_2,0x7ac59);\n  e = ENGINE_get_first();\n  if (e == (ENGINE *)0x0) {\n    iVar2 = 0;\n  }\n  else {\n    iVar3 = 0;\n    do {\n      pcVar1 = ENGINE_get_id(e);\n      iVar2 = curl_slist_append(iVar3,pcVar1);\n      if (iVar2 == 0) {\n        curl_slist_free_all(iVar3);\n        return 0;\n      }\n      e = ENGINE_get_next(e);\n      iVar3 = iVar2;\n    } while (e != (ENGINE *)0x0);\n  }\n  return iVar2;\n}\n\n" (function_definition "int __regparm3 FUN_0007ac50(undefined4 param_1,undefined4 param_2)\n\n{\n  ENGINE *e;\n  char *pcVar1;\n  int iVar2;\n  int iVar3;\n  \n  entry(param_2,0x7ac59);\n  e = ENGINE_get_first();\n  if (e == (ENGINE *)0x0) {\n    iVar2 = 0;\n  }\n  else {\n    iVar3 = 0;\n    do {\n      pcVar1 = ENGINE_get_id(e);\n      iVar2 = curl_slist_append(iVar3,pcVar1);\n      if (iVar2 == 0) {\n        curl_slist_free_all(iVar3);\n        return 0;\n      }\n      e = ENGINE_get_next(e);\n      iVar3 = iVar2;\n    } while (e != (ENGINE *)0x0);\n  }\n  return iVar2;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0007ac50(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 identifier) ))) (compound_statement "{\n  ENGINE *e;\n  char *pcVar1;\n  int iVar2;\n  int iVar3;\n  \n  entry(param_2,0x7ac59);\n  e = ENGINE_get_first();\n  if (e == (ENGINE *)0x0) {\n    iVar2 = 0;\n  }\n  else {\n    iVar3 = 0;\n    do {\n      pcVar1 = ENGINE_get_id(e);\n      iVar2 = curl_slist_append(iVar3,pcVar1);\n      if (iVar2 == 0) {\n        curl_slist_free_all(iVar3);\n        return 0;\n      }\n      e = ENGINE_get_next(e);\n      iVar3 = iVar2;\n    } while (e != (ENGINE *)0x0);\n  }\n  return iVar2;\n}" { (declaration "ENGINE *e;" type_identifier (pointer_declarator "*e" * identifier) ;) (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "entry(param_2,0x7ac59);" (call_expression "entry(param_2,0x7ac59)" identifier (argument_list "(param_2,0x7ac59)" ( identifier , number_literal ))) ;) (expression_statement "e = ENGINE_get_first();" (assignment_expression "e = ENGINE_get_first()" identifier = (call_expression "ENGINE_get_first()" identifier (argument_list "()" ( )))) ;) (if_statement "if (e == (ENGINE *)0x0) {\n    iVar2 = 0;\n  }\n  else {\n    iVar3 = 0;\n    do {\n      pcVar1 = ENGINE_get_id(e);\n      iVar2 = curl_slist_append(iVar3,pcVar1);\n      if (iVar2 == 0) {\n        curl_slist_free_all(iVar3);\n        return 0;\n      }\n      e = ENGINE_get_next(e);\n      iVar3 = iVar2;\n    } while (e != (ENGINE *)0x0);\n  }" if (parenthesized_expression "(e == (ENGINE *)0x0)" ( (binary_expression "e == (ENGINE *)0x0" identifier == (cast_expression "(ENGINE *)0x0" ( (type_descriptor "ENGINE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar2 = 0;\n  }" { (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    iVar3 = 0;\n    do {\n      pcVar1 = ENGINE_get_id(e);\n      iVar2 = curl_slist_append(iVar3,pcVar1);\n      if (iVar2 == 0) {\n        curl_slist_free_all(iVar3);\n        return 0;\n      }\n      e = ENGINE_get_next(e);\n      iVar3 = iVar2;\n    } while (e != (ENGINE *)0x0);\n  }" else (compound_statement "{\n    iVar3 = 0;\n    do {\n      pcVar1 = ENGINE_get_id(e);\n      iVar2 = curl_slist_append(iVar3,pcVar1);\n      if (iVar2 == 0) {\n        curl_slist_free_all(iVar3);\n        return 0;\n      }\n      e = ENGINE_get_next(e);\n      iVar3 = iVar2;\n    } while (e != (ENGINE *)0x0);\n  }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n      pcVar1 = ENGINE_get_id(e);\n      iVar2 = curl_slist_append(iVar3,pcVar1);\n      if (iVar2 == 0) {\n        curl_slist_free_all(iVar3);\n        return 0;\n      }\n      e = ENGINE_get_next(e);\n      iVar3 = iVar2;\n    } while (e != (ENGINE *)0x0);" do (compound_statement "{\n      pcVar1 = ENGINE_get_id(e);\n      iVar2 = curl_slist_append(iVar3,pcVar1);\n      if (iVar2 == 0) {\n        curl_slist_free_all(iVar3);\n        return 0;\n      }\n      e = ENGINE_get_next(e);\n      iVar3 = iVar2;\n    }" { (expression_statement "pcVar1 = ENGINE_get_id(e);" (assignment_expression "pcVar1 = ENGINE_get_id(e)" identifier = (call_expression "ENGINE_get_id(e)" identifier (argument_list "(e)" ( identifier )))) ;) (expression_statement "iVar2 = curl_slist_append(iVar3,pcVar1);" (assignment_expression "iVar2 = curl_slist_append(iVar3,pcVar1)" identifier = (call_expression "curl_slist_append(iVar3,pcVar1)" identifier (argument_list "(iVar3,pcVar1)" ( identifier , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n        curl_slist_free_all(iVar3);\n        return 0;\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        curl_slist_free_all(iVar3);\n        return 0;\n      }" { (expression_statement "curl_slist_free_all(iVar3);" (call_expression "curl_slist_free_all(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "e = ENGINE_get_next(e);" (assignment_expression "e = ENGINE_get_next(e)" identifier = (call_expression "ENGINE_get_next(e)" identifier (argument_list "(e)" ( identifier )))) ;) (expression_statement "iVar3 = iVar2;" (assignment_expression "iVar3 = iVar2" identifier = identifier) ;) }) while (parenthesized_expression "(e != (ENGINE *)0x0)" ( (binary_expression "e != (ENGINE *)0x0" identifier != (cast_expression "(ENGINE *)0x0" ( (type_descriptor "ENGINE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) }))) (return_statement "return iVar2;" return 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\ncurl_slist * Curl_ossl_engines_list(Curl_easy *data)\n\n{\n  ENGINE *e;\n  char *data_00;\n  curl_slist *pcVar1;\n  curl_slist *list;\n  \n  e = ENGINE_get_first();\n  if (e == (ENGINE *)0x0) {\n    pcVar1 = (curl_slist *)0x0;\n  }\n  else {\n    list = (curl_slist *)0x0;\n    do {\n      data_00 = ENGINE_get_id(e);\n      pcVar1 = curl_slist_append(list,data_00);\n      if (pcVar1 == (curl_slist *)0x0) {\n        curl_slist_free_all(list);\n        return (curl_slist *)0x0;\n      }\n      e = ENGINE_get_next(e);\n      list = pcVar1;\n    } while (e != (ENGINE *)0x0);\n  }\n  return pcVar1;\n}\n\n" comment comment comment (function_definition "curl_slist * Curl_ossl_engines_list(Curl_easy *data)\n\n{\n  ENGINE *e;\n  char *data_00;\n  curl_slist *pcVar1;\n  curl_slist *list;\n  \n  e = ENGINE_get_first();\n  if (e == (ENGINE *)0x0) {\n    pcVar1 = (curl_slist *)0x0;\n  }\n  else {\n    list = (curl_slist *)0x0;\n    do {\n      data_00 = ENGINE_get_id(e);\n      pcVar1 = curl_slist_append(list,data_00);\n      if (pcVar1 == (curl_slist *)0x0) {\n        curl_slist_free_all(list);\n        return (curl_slist *)0x0;\n      }\n      e = ENGINE_get_next(e);\n      list = pcVar1;\n    } while (e != (ENGINE *)0x0);\n  }\n  return pcVar1;\n}" type_identifier (pointer_declarator "* Curl_ossl_engines_list(Curl_easy *data)" * (function_declarator "Curl_ossl_engines_list(Curl_easy *data)" identifier (parameter_list "(Curl_easy *data)" ( (parameter_declaration "Curl_easy *data" type_identifier (pointer_declarator "*data" * identifier)) )))) (compound_statement "{\n  ENGINE *e;\n  char *data_00;\n  curl_slist *pcVar1;\n  curl_slist *list;\n  \n  e = ENGINE_get_first();\n  if (e == (ENGINE *)0x0) {\n    pcVar1 = (curl_slist *)0x0;\n  }\n  else {\n    list = (curl_slist *)0x0;\n    do {\n      data_00 = ENGINE_get_id(e);\n      pcVar1 = curl_slist_append(list,data_00);\n      if (pcVar1 == (curl_slist *)0x0) {\n        curl_slist_free_all(list);\n        return (curl_slist *)0x0;\n      }\n      e = ENGINE_get_next(e);\n      list = pcVar1;\n    } while (e != (ENGINE *)0x0);\n  }\n  return pcVar1;\n}" { (declaration "ENGINE *e;" type_identifier (pointer_declarator "*e" * identifier) ;) (declaration "char *data_00;" primitive_type (pointer_declarator "*data_00" * identifier) ;) (declaration "curl_slist *pcVar1;" type_identifier (pointer_declarator "*pcVar1" * identifier) ;) (declaration "curl_slist *list;" type_identifier (pointer_declarator "*list" * identifier) ;) (expression_statement "e = ENGINE_get_first();" (assignment_expression "e = ENGINE_get_first()" identifier = (call_expression "ENGINE_get_first()" identifier (argument_list "()" ( )))) ;) (if_statement "if (e == (ENGINE *)0x0) {\n    pcVar1 = (curl_slist *)0x0;\n  }\n  else {\n    list = (curl_slist *)0x0;\n    do {\n      data_00 = ENGINE_get_id(e);\n      pcVar1 = curl_slist_append(list,data_00);\n      if (pcVar1 == (curl_slist *)0x0) {\n        curl_slist_free_all(list);\n        return (curl_slist *)0x0;\n      }\n      e = ENGINE_get_next(e);\n      list = pcVar1;\n    } while (e != (ENGINE *)0x0);\n  }" if (parenthesized_expression "(e == (ENGINE *)0x0)" ( (binary_expression "e == (ENGINE *)0x0" identifier == (cast_expression "(ENGINE *)0x0" ( (type_descriptor "ENGINE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar1 = (curl_slist *)0x0;\n  }" { (expression_statement "pcVar1 = (curl_slist *)0x0;" (assignment_expression "pcVar1 = (curl_slist *)0x0" identifier = (cast_expression "(curl_slist *)0x0" ( (type_descriptor "curl_slist *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    list = (curl_slist *)0x0;\n    do {\n      data_00 = ENGINE_get_id(e);\n      pcVar1 = curl_slist_append(list,data_00);\n      if (pcVar1 == (curl_slist *)0x0) {\n        curl_slist_free_all(list);\n        return (curl_slist *)0x0;\n      }\n      e = ENGINE_get_next(e);\n      list = pcVar1;\n    } while (e != (ENGINE *)0x0);\n  }" else (compound_statement "{\n    list = (curl_slist *)0x0;\n    do {\n      data_00 = ENGINE_get_id(e);\n      pcVar1 = curl_slist_append(list,data_00);\n      if (pcVar1 == (curl_slist *)0x0) {\n        curl_slist_free_all(list);\n        return (curl_slist *)0x0;\n      }\n      e = ENGINE_get_next(e);\n      list = pcVar1;\n    } while (e != (ENGINE *)0x0);\n  }" { (expression_statement "list = (curl_slist *)0x0;" (assignment_expression "list = (curl_slist *)0x0" identifier = (cast_expression "(curl_slist *)0x0" ( (type_descriptor "curl_slist *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      data_00 = ENGINE_get_id(e);\n      pcVar1 = curl_slist_append(list,data_00);\n      if (pcVar1 == (curl_slist *)0x0) {\n        curl_slist_free_all(list);\n        return (curl_slist *)0x0;\n      }\n      e = ENGINE_get_next(e);\n      list = pcVar1;\n    } while (e != (ENGINE *)0x0);" do (compound_statement "{\n      data_00 = ENGINE_get_id(e);\n      pcVar1 = curl_slist_append(list,data_00);\n      if (pcVar1 == (curl_slist *)0x0) {\n        curl_slist_free_all(list);\n        return (curl_slist *)0x0;\n      }\n      e = ENGINE_get_next(e);\n      list = pcVar1;\n    }" { (expression_statement "data_00 = ENGINE_get_id(e);" (assignment_expression "data_00 = ENGINE_get_id(e)" identifier = (call_expression "ENGINE_get_id(e)" identifier (argument_list "(e)" ( identifier )))) ;) (expression_statement "pcVar1 = curl_slist_append(list,data_00);" (assignment_expression "pcVar1 = curl_slist_append(list,data_00)" identifier = (call_expression "curl_slist_append(list,data_00)" identifier (argument_list "(list,data_00)" ( identifier , identifier )))) ;) (if_statement "if (pcVar1 == (curl_slist *)0x0) {\n        curl_slist_free_all(list);\n        return (curl_slist *)0x0;\n      }" if (parenthesized_expression "(pcVar1 == (curl_slist *)0x0)" ( (binary_expression "pcVar1 == (curl_slist *)0x0" identifier == (cast_expression "(curl_slist *)0x0" ( (type_descriptor "curl_slist *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        curl_slist_free_all(list);\n        return (curl_slist *)0x0;\n      }" { (expression_statement "curl_slist_free_all(list);" (call_expression "curl_slist_free_all(list)" identifier (argument_list "(list)" ( identifier ))) ;) (return_statement "return (curl_slist *)0x0;" return (cast_expression "(curl_slist *)0x0" ( (type_descriptor "curl_slist *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "e = ENGINE_get_next(e);" (assignment_expression "e = ENGINE_get_next(e)" identifier = (call_expression "ENGINE_get_next(e)" identifier (argument_list "(e)" ( identifier )))) ;) (expression_statement "list = pcVar1;" (assignment_expression "list = pcVar1" identifier = identifier) ;) }) while (parenthesized_expression "(e != (ENGINE *)0x0)" ( (binary_expression "e != (ENGINE *)0x0" identifier != (cast_expression "(ENGINE *)0x0" ( (type_descriptor "ENGINE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) }))) (return_statement "return pcVar1;" return identifier ;) })))
(translation_unit "int __regparm3 FUN_0007ac50(undefined4 param_1,undefined4 param_2)\n\n{\n  ENGINE *e;\n  char *pcVar1;\n  int iVar2;\n  int iVar3;\n  \n  entry(param_2,0x7ac59);\n  e = ENGINE_get_first();\n  if (e == (ENGINE *)0x0) {\n    iVar2 = 0;\n  }\n  else {\n    iVar3 = 0;\n    do {\n      pcVar1 = ENGINE_get_id(e);\n      iVar2 = curl_slist_append(iVar3,pcVar1);\n      if (iVar2 == 0) {\n        curl_slist_free_all(iVar3);\n        return 0;\n      }\n      e = ENGINE_get_next(e);\n      iVar3 = iVar2;\n    } while (e != (ENGINE *)0x0);\n  }\n  return iVar2;\n}\n\n" (function_definition "int __regparm3 FUN_0007ac50(undefined4 param_1,undefined4 param_2)\n\n{\n  ENGINE *e;\n  char *pcVar1;\n  int iVar2;\n  int iVar3;\n  \n  entry(param_2,0x7ac59);\n  e = ENGINE_get_first();\n  if (e == (ENGINE *)0x0) {\n    iVar2 = 0;\n  }\n  else {\n    iVar3 = 0;\n    do {\n      pcVar1 = ENGINE_get_id(e);\n      iVar2 = curl_slist_append(iVar3,pcVar1);\n      if (iVar2 == 0) {\n        curl_slist_free_all(iVar3);\n        return 0;\n      }\n      e = ENGINE_get_next(e);\n      iVar3 = iVar2;\n    } while (e != (ENGINE *)0x0);\n  }\n  return iVar2;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0007ac50(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 identifier) ))) (compound_statement "{\n  ENGINE *e;\n  char *pcVar1;\n  int iVar2;\n  int iVar3;\n  \n  entry(param_2,0x7ac59);\n  e = ENGINE_get_first();\n  if (e == (ENGINE *)0x0) {\n    iVar2 = 0;\n  }\n  else {\n    iVar3 = 0;\n    do {\n      pcVar1 = ENGINE_get_id(e);\n      iVar2 = curl_slist_append(iVar3,pcVar1);\n      if (iVar2 == 0) {\n        curl_slist_free_all(iVar3);\n        return 0;\n      }\n      e = ENGINE_get_next(e);\n      iVar3 = iVar2;\n    } while (e != (ENGINE *)0x0);\n  }\n  return iVar2;\n}" { (declaration "ENGINE *e;" type_identifier (pointer_declarator "*e" * identifier) ;) (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "entry(param_2,0x7ac59);" (call_expression "entry(param_2,0x7ac59)" identifier (argument_list "(param_2,0x7ac59)" ( identifier , number_literal ))) ;) (expression_statement "e = ENGINE_get_first();" (assignment_expression "e = ENGINE_get_first()" identifier = (call_expression "ENGINE_get_first()" identifier (argument_list "()" ( )))) ;) (if_statement "if (e == (ENGINE *)0x0) {\n    iVar2 = 0;\n  }\n  else {\n    iVar3 = 0;\n    do {\n      pcVar1 = ENGINE_get_id(e);\n      iVar2 = curl_slist_append(iVar3,pcVar1);\n      if (iVar2 == 0) {\n        curl_slist_free_all(iVar3);\n        return 0;\n      }\n      e = ENGINE_get_next(e);\n      iVar3 = iVar2;\n    } while (e != (ENGINE *)0x0);\n  }" if (parenthesized_expression "(e == (ENGINE *)0x0)" ( (binary_expression "e == (ENGINE *)0x0" identifier == (cast_expression "(ENGINE *)0x0" ( (type_descriptor "ENGINE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar2 = 0;\n  }" { (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    iVar3 = 0;\n    do {\n      pcVar1 = ENGINE_get_id(e);\n      iVar2 = curl_slist_append(iVar3,pcVar1);\n      if (iVar2 == 0) {\n        curl_slist_free_all(iVar3);\n        return 0;\n      }\n      e = ENGINE_get_next(e);\n      iVar3 = iVar2;\n    } while (e != (ENGINE *)0x0);\n  }" else (compound_statement "{\n    iVar3 = 0;\n    do {\n      pcVar1 = ENGINE_get_id(e);\n      iVar2 = curl_slist_append(iVar3,pcVar1);\n      if (iVar2 == 0) {\n        curl_slist_free_all(iVar3);\n        return 0;\n      }\n      e = ENGINE_get_next(e);\n      iVar3 = iVar2;\n    } while (e != (ENGINE *)0x0);\n  }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n      pcVar1 = ENGINE_get_id(e);\n      iVar2 = curl_slist_append(iVar3,pcVar1);\n      if (iVar2 == 0) {\n        curl_slist_free_all(iVar3);\n        return 0;\n      }\n      e = ENGINE_get_next(e);\n      iVar3 = iVar2;\n    } while (e != (ENGINE *)0x0);" do (compound_statement "{\n      pcVar1 = ENGINE_get_id(e);\n      iVar2 = curl_slist_append(iVar3,pcVar1);\n      if (iVar2 == 0) {\n        curl_slist_free_all(iVar3);\n        return 0;\n      }\n      e = ENGINE_get_next(e);\n      iVar3 = iVar2;\n    }" { (expression_statement "pcVar1 = ENGINE_get_id(e);" (assignment_expression "pcVar1 = ENGINE_get_id(e)" identifier = (call_expression "ENGINE_get_id(e)" identifier (argument_list "(e)" ( identifier )))) ;) (expression_statement "iVar2 = curl_slist_append(iVar3,pcVar1);" (assignment_expression "iVar2 = curl_slist_append(iVar3,pcVar1)" identifier = (call_expression "curl_slist_append(iVar3,pcVar1)" identifier (argument_list "(iVar3,pcVar1)" ( identifier , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n        curl_slist_free_all(iVar3);\n        return 0;\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        curl_slist_free_all(iVar3);\n        return 0;\n      }" { (expression_statement "curl_slist_free_all(iVar3);" (call_expression "curl_slist_free_all(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "e = ENGINE_get_next(e);" (assignment_expression "e = ENGINE_get_next(e)" identifier = (call_expression "ENGINE_get_next(e)" identifier (argument_list "(e)" ( identifier )))) ;) (expression_statement "iVar3 = iVar2;" (assignment_expression "iVar3 = iVar2" identifier = identifier) ;) }) while (parenthesized_expression "(e != (ENGINE *)0x0)" ( (binary_expression "e != (ENGINE *)0x0" identifier != (cast_expression "(ENGINE *)0x0" ( (type_descriptor "ENGINE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) }))) (return_statement "return iVar2;" return identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) }))) (return_statement return IDENT ;) })))
(function_definition "int __regparm3 FUN_0007ac50(undefined4 param_1,undefined4 param_2)\n\n{\n  ENGINE *e;\n  char *pcVar1;\n  int iVar2;\n  int iVar3;\n  \n  entry(param_2,0x7ac59);\n  e = ENGINE_get_first();\n  if (e == (ENGINE *)0x0) {\n    iVar2 = 0;\n  }\n  else {\n    iVar3 = 0;\n    do {\n      pcVar1 = ENGINE_get_id(e);\n      iVar2 = curl_slist_append(iVar3,pcVar1);\n      if (iVar2 == 0) {\n        curl_slist_free_all(iVar3);\n        return 0;\n      }\n      e = ENGINE_get_next(e);\n      iVar3 = iVar2;\n    } while (e != (ENGINE *)0x0);\n  }\n  return iVar2;\n}" (primitive_type "int") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_0007ac50(undefined4 param_1,undefined4 param_2)" (identifier "FUN_0007ac50") (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") (identifier "param_2")) () ")"))) (compound_statement "{\n  ENGINE *e;\n  char *pcVar1;\n  int iVar2;\n  int iVar3;\n  \n  entry(param_2,0x7ac59);\n  e = ENGINE_get_first();\n  if (e == (ENGINE *)0x0) {\n    iVar2 = 0;\n  }\n  else {\n    iVar3 = 0;\n    do {\n      pcVar1 = ENGINE_get_id(e);\n      iVar2 = curl_slist_append(iVar3,pcVar1);\n      if (iVar2 == 0) {\n        curl_slist_free_all(iVar3);\n        return 0;\n      }\n      e = ENGINE_get_next(e);\n      iVar3 = iVar2;\n    } while (e != (ENGINE *)0x0);\n  }\n  return iVar2;\n}" ({ "{") (declaration "ENGINE *e;" (type_identifier "ENGINE") (pointer_declarator "*e" (* "*") (identifier "e")) (; ";")) (declaration "char *pcVar1;" (primitive_type "char") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (expression_statement "entry(param_2,0x7ac59);" (call_expression "entry(param_2,0x7ac59)" (identifier "entry") (argument_list "(param_2,0x7ac59)" (( "(") (identifier "param_2") (, ",") (number_literal "0x7ac59") () ")"))) (; ";")) (expression_statement "e = ENGINE_get_first();" (assignment_expression "e = ENGINE_get_first()" (identifier "e") (= "=") (call_expression "ENGINE_get_first()" (identifier "ENGINE_get_first") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (e == (ENGINE *)0x0) {\n    iVar2 = 0;\n  }\n  else {\n    iVar3 = 0;\n    do {\n      pcVar1 = ENGINE_get_id(e);\n      iVar2 = curl_slist_append(iVar3,pcVar1);\n      if (iVar2 == 0) {\n        curl_slist_free_all(iVar3);\n        return 0;\n      }\n      e = ENGINE_get_next(e);\n      iVar3 = iVar2;\n    } while (e != (ENGINE *)0x0);\n  }" (if "if") (parenthesized_expression "(e == (ENGINE *)0x0)" (( "(") (binary_expression "e == (ENGINE *)0x0" (identifier "e") (== "==") (cast_expression "(ENGINE *)0x0" (( "(") (type_descriptor "ENGINE *" (type_identifier "ENGINE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    iVar2 = 0;\n  }" ({ "{") (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    iVar3 = 0;\n    do {\n      pcVar1 = ENGINE_get_id(e);\n      iVar2 = curl_slist_append(iVar3,pcVar1);\n      if (iVar2 == 0) {\n        curl_slist_free_all(iVar3);\n        return 0;\n      }\n      e = ENGINE_get_next(e);\n      iVar3 = iVar2;\n    } while (e != (ENGINE *)0x0);\n  }" (else "else") (compound_statement "{\n    iVar3 = 0;\n    do {\n      pcVar1 = ENGINE_get_id(e);\n      iVar2 = curl_slist_append(iVar3,pcVar1);\n      if (iVar2 == 0) {\n        curl_slist_free_all(iVar3);\n        return 0;\n      }\n      e = ENGINE_get_next(e);\n      iVar3 = iVar2;\n    } while (e != (ENGINE *)0x0);\n  }" ({ "{") (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      pcVar1 = ENGINE_get_id(e);\n      iVar2 = curl_slist_append(iVar3,pcVar1);\n      if (iVar2 == 0) {\n        curl_slist_free_all(iVar3);\n        return 0;\n      }\n      e = ENGINE_get_next(e);\n      iVar3 = iVar2;\n    } while (e != (ENGINE *)0x0);" (do "do") (compound_statement "{\n      pcVar1 = ENGINE_get_id(e);\n      iVar2 = curl_slist_append(iVar3,pcVar1);\n      if (iVar2 == 0) {\n        curl_slist_free_all(iVar3);\n        return 0;\n      }\n      e = ENGINE_get_next(e);\n      iVar3 = iVar2;\n    }" ({ "{") (expression_statement "pcVar1 = ENGINE_get_id(e);" (assignment_expression "pcVar1 = ENGINE_get_id(e)" (identifier "pcVar1") (= "=") (call_expression "ENGINE_get_id(e)" (identifier "ENGINE_get_id") (argument_list "(e)" (( "(") (identifier "e") () ")")))) (; ";")) (expression_statement "iVar2 = curl_slist_append(iVar3,pcVar1);" (assignment_expression "iVar2 = curl_slist_append(iVar3,pcVar1)" (identifier "iVar2") (= "=") (call_expression "curl_slist_append(iVar3,pcVar1)" (identifier "curl_slist_append") (argument_list "(iVar3,pcVar1)" (( "(") (identifier "iVar3") (, ",") (identifier "pcVar1") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n        curl_slist_free_all(iVar3);\n        return 0;\n      }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        curl_slist_free_all(iVar3);\n        return 0;\n      }" ({ "{") (expression_statement "curl_slist_free_all(iVar3);" (call_expression "curl_slist_free_all(iVar3)" (identifier "curl_slist_free_all") (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "e = ENGINE_get_next(e);" (assignment_expression "e = ENGINE_get_next(e)" (identifier "e") (= "=") (call_expression "ENGINE_get_next(e)" (identifier "ENGINE_get_next") (argument_list "(e)" (( "(") (identifier "e") () ")")))) (; ";")) (expression_statement "iVar3 = iVar2;" (assignment_expression "iVar3 = iVar2" (identifier "iVar3") (= "=") (identifier "iVar2")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(e != (ENGINE *)0x0)" (( "(") (binary_expression "e != (ENGINE *)0x0" (identifier "e") (!= "!=") (cast_expression "(ENGINE *)0x0" (( "(") (type_descriptor "ENGINE *" (type_identifier "ENGINE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}")))) (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}")))

/* 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(type_2 *data)

{
  type_3 *var_2;
  char *data_00;
  type_1 *var_5;
  type_1 *list;
  
  var_2 = var_1();
  if (var_2 == (type_3 *)0x0) {
    var_5 = (type_1 *)0x0;
  }
  else {
    list = (type_1 *)0x0;
    do {
      data_00 = var_3(var_2);
      var_5 = var_4(list,data_00);
      if (var_5 == (type_1 *)0x0) {
        var_6(list);
        return (type_1 *)0x0;
      }
      var_2 = var_7(var_2);
      list = var_5;
    } while (var_2 != (type_3 *)0x0);
  }
  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: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (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 (identifier)))) (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))) (return_statement (identifier)))))

int __regparm3 MASKED(undefined4 param_1,undefined4 param_2)

{
  ENGINE *e;
  char *pcVar1;
  int iVar2;
  int iVar3;
  
  entry(param_2,0x7ac59);
  e = ENGINE_get_first();
  if (e == (ENGINE *)0x0) {
    iVar2 = 0;
  }
  else {
    iVar3 = 0;
    do {
      pcVar1 = ENGINE_get_id(e);
      iVar2 = curl_slist_append(iVar3,pcVar1);
      if (iVar2 == 0) {
        curl_slist_free_all(iVar3);
        return 0;
      }
      e = ENGINE_get_next(e);
      iVar3 = iVar2;
    } while (e != (ENGINE *)0x0);
  }
  return iVar2;
}

