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

int ssl_ui_reader(UI *ui,UI_STRING *uis)

{
  UI_string_types UVar1;
  UI_METHOD *pUVar2;
  code *UNRECOVERED_JUMPTABLE;
  int iVar3;
  char *result;
  uint uVar4;
  UI_STRING *in_stack_ffffffd8;
  
  UVar1 = UI_get_string_type((UI_STRING *)uis);
  if (UVar1 - UIT_PROMPT < 2) {
    result = (char *)UI_get0_user_data((UI *)ui);
    if (result != (char *)0x0) {
      uVar4 = UI_get_input_flags((UI_STRING *)uis);
      if ((uVar4 & 2) != 0) {
        UI_set_result((UI *)ui,(UI_STRING *)uis,result);
        return 1;
      }
    }
  }
  pUVar2 = UI_OpenSSL();
  UNRECOVERED_JUMPTABLE = (code *)UI_method_get_reader((UI *)pUVar2,in_stack_ffffffd8);
                    /* WARNING: Could not recover jumptable at 0x00074f28. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  iVar3 = (*UNRECOVERED_JUMPTABLE)();
  return iVar3;
}



undefined4 __regparm2 FUN_00074ee0(undefined4 param_1,undefined4 param_2,UI_STRING *param_3)

{
  UI_string_types UVar1;
  UI_METHOD *pUVar2;
  code *UNRECOVERED_JUMPTABLE;
  undefined4 uVar3;
  char *result;
  uint uVar4;
  UI *unaff_retaddr;
  UI_STRING *in_stack_ffffffd4;
  
  entry(param_2,0x74ee9);
  UVar1 = UI_get_string_type(param_3);
  if (UVar1 - UIT_PROMPT < 2) {
    result = (char *)UI_get0_user_data(unaff_retaddr);
    if (result != (char *)0x0) {
      uVar4 = UI_get_input_flags(param_3);
      if ((uVar4 & 2) != 0) {
        UI_set_result(unaff_retaddr,param_3,result);
        return 1;
      }
    }
  }
  pUVar2 = UI_OpenSSL();
  UNRECOVERED_JUMPTABLE = (code *)UI_method_get_reader((UI *)pUVar2,in_stack_ffffffd4);
                    /* WARNING: Could not recover jumptable at 0x00074f28. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  uVar3 = (*UNRECOVERED_JUMPTABLE)();
  return uVar3;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00019ed0
ADD EBX,0x3b8f7
SUB ESP,0x18
MOV ESI,dword ptr [ESP + 0x30]
MOV EDI,dword ptr [ESP + 0x2c]
PUSH ESI
CALL 0x000188c0
ADD ESP,0x10
SUB EAX,0x1
CMP EAX,0x1
JBE 0x00074f30
CALL 0x000194d0
SUB ESP,0xc
PUSH EAX
CALL 0x000185e0
MOV dword ptr [ESP + 0x34],ESI
MOV dword ptr [ESP + 0x30],EDI
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
JMP EAX
SUB ESP,0xc
PUSH EDI
CALL 0x00018cb0
ADD ESP,0x10
MOV EBP,EAX
TEST EAX,EAX
JZ 0x00074f0b
SUB ESP,0xc
PUSH ESI
CALL 0x000185b0
ADD ESP,0x10
TEST AL,0x2
JZ 0x00074f0b
SUB ESP,0x4
PUSH EBP
PUSH ESI
PUSH EDI
CALL 0x00018960
ADD ESP,0x1c
MOV EAX,0x1
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "undefined4 __regparm2 FUN_00074ee0(undefined4 param_1,undefined4 param_2,UI_STRING *param_3)\n\n{\n  UI_string_types UVar1;\n  UI_METHOD *pUVar2;\n  code *UNRECOVERED_JUMPTABLE;\n  undefined4 uVar3;\n  char *result;\n  uint uVar4;\n  UI *unaff_retaddr;\n  UI_STRING *in_stack_ffffffd4;\n  \n  entry(param_2,0x74ee9);\n  UVar1 = UI_get_string_type(param_3);\n  if (UVar1 - UIT_PROMPT < 2) {\n    result = (char *)UI_get0_user_data(unaff_retaddr);\n    if (result != (char *)0x0) {\n      uVar4 = UI_get_input_flags(param_3);\n      if ((uVar4 & 2) != 0) {\n        UI_set_result(unaff_retaddr,param_3,result);\n        return 1;\n      }\n    }\n  }\n  pUVar2 = UI_OpenSSL();\n  UNRECOVERED_JUMPTABLE = (code *)UI_method_get_reader((UI *)pUVar2,in_stack_ffffffd4);\n                    /* WARNING: Could not recover jumptable at 0x00074f28. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  uVar3 = (*UNRECOVERED_JUMPTABLE)();\n  return uVar3;\n}\n\n" (function_definition "undefined4 __regparm2 FUN_00074ee0(undefined4 param_1,undefined4 param_2,UI_STRING *param_3)\n\n{\n  UI_string_types UVar1;\n  UI_METHOD *pUVar2;\n  code *UNRECOVERED_JUMPTABLE;\n  undefined4 uVar3;\n  char *result;\n  uint uVar4;\n  UI *unaff_retaddr;\n  UI_STRING *in_stack_ffffffd4;\n  \n  entry(param_2,0x74ee9);\n  UVar1 = UI_get_string_type(param_3);\n  if (UVar1 - UIT_PROMPT < 2) {\n    result = (char *)UI_get0_user_data(unaff_retaddr);\n    if (result != (char *)0x0) {\n      uVar4 = UI_get_input_flags(param_3);\n      if ((uVar4 & 2) != 0) {\n        UI_set_result(unaff_retaddr,param_3,result);\n        return 1;\n      }\n    }\n  }\n  pUVar2 = UI_OpenSSL();\n  UNRECOVERED_JUMPTABLE = (code *)UI_method_get_reader((UI *)pUVar2,in_stack_ffffffd4);\n                    /* WARNING: Could not recover jumptable at 0x00074f28. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  uVar3 = (*UNRECOVERED_JUMPTABLE)();\n  return uVar3;\n}" type_identifier (ERROR "__regparm2" identifier) (function_declarator "FUN_00074ee0(undefined4 param_1,undefined4 param_2,UI_STRING *param_3)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,UI_STRING *param_3)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "UI_STRING *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  UI_string_types UVar1;\n  UI_METHOD *pUVar2;\n  code *UNRECOVERED_JUMPTABLE;\n  undefined4 uVar3;\n  char *result;\n  uint uVar4;\n  UI *unaff_retaddr;\n  UI_STRING *in_stack_ffffffd4;\n  \n  entry(param_2,0x74ee9);\n  UVar1 = UI_get_string_type(param_3);\n  if (UVar1 - UIT_PROMPT < 2) {\n    result = (char *)UI_get0_user_data(unaff_retaddr);\n    if (result != (char *)0x0) {\n      uVar4 = UI_get_input_flags(param_3);\n      if ((uVar4 & 2) != 0) {\n        UI_set_result(unaff_retaddr,param_3,result);\n        return 1;\n      }\n    }\n  }\n  pUVar2 = UI_OpenSSL();\n  UNRECOVERED_JUMPTABLE = (code *)UI_method_get_reader((UI *)pUVar2,in_stack_ffffffd4);\n                    /* WARNING: Could not recover jumptable at 0x00074f28. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  uVar3 = (*UNRECOVERED_JUMPTABLE)();\n  return uVar3;\n}" { (declaration "UI_string_types UVar1;" type_identifier identifier ;) (declaration "UI_METHOD *pUVar2;" type_identifier (pointer_declarator "*pUVar2" * identifier) ;) (declaration "code *UNRECOVERED_JUMPTABLE;" type_identifier (pointer_declarator "*UNRECOVERED_JUMPTABLE" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "char *result;" primitive_type (pointer_declarator "*result" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "UI *unaff_retaddr;" type_identifier (pointer_declarator "*unaff_retaddr" * identifier) ;) (declaration "UI_STRING *in_stack_ffffffd4;" type_identifier (pointer_declarator "*in_stack_ffffffd4" * identifier) ;) (expression_statement "entry(param_2,0x74ee9);" (call_expression "entry(param_2,0x74ee9)" identifier (argument_list "(param_2,0x74ee9)" ( identifier , number_literal ))) ;) (expression_statement "UVar1 = UI_get_string_type(param_3);" (assignment_expression "UVar1 = UI_get_string_type(param_3)" identifier = (call_expression "UI_get_string_type(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (UVar1 - UIT_PROMPT < 2) {\n    result = (char *)UI_get0_user_data(unaff_retaddr);\n    if (result != (char *)0x0) {\n      uVar4 = UI_get_input_flags(param_3);\n      if ((uVar4 & 2) != 0) {\n        UI_set_result(unaff_retaddr,param_3,result);\n        return 1;\n      }\n    }\n  }" if (parenthesized_expression "(UVar1 - UIT_PROMPT < 2)" ( (binary_expression "UVar1 - UIT_PROMPT < 2" (binary_expression "UVar1 - UIT_PROMPT" identifier - identifier) < number_literal) )) (compound_statement "{\n    result = (char *)UI_get0_user_data(unaff_retaddr);\n    if (result != (char *)0x0) {\n      uVar4 = UI_get_input_flags(param_3);\n      if ((uVar4 & 2) != 0) {\n        UI_set_result(unaff_retaddr,param_3,result);\n        return 1;\n      }\n    }\n  }" { (expression_statement "result = (char *)UI_get0_user_data(unaff_retaddr);" (assignment_expression "result = (char *)UI_get0_user_data(unaff_retaddr)" identifier = (cast_expression "(char *)UI_get0_user_data(unaff_retaddr)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "UI_get0_user_data(unaff_retaddr)" identifier (argument_list "(unaff_retaddr)" ( identifier ))))) ;) (if_statement "if (result != (char *)0x0) {\n      uVar4 = UI_get_input_flags(param_3);\n      if ((uVar4 & 2) != 0) {\n        UI_set_result(unaff_retaddr,param_3,result);\n        return 1;\n      }\n    }" if (parenthesized_expression "(result != (char *)0x0)" ( (binary_expression "result != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar4 = UI_get_input_flags(param_3);\n      if ((uVar4 & 2) != 0) {\n        UI_set_result(unaff_retaddr,param_3,result);\n        return 1;\n      }\n    }" { (expression_statement "uVar4 = UI_get_input_flags(param_3);" (assignment_expression "uVar4 = UI_get_input_flags(param_3)" identifier = (call_expression "UI_get_input_flags(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if ((uVar4 & 2) != 0) {\n        UI_set_result(unaff_retaddr,param_3,result);\n        return 1;\n      }" if (parenthesized_expression "((uVar4 & 2) != 0)" ( (binary_expression "(uVar4 & 2) != 0" (parenthesized_expression "(uVar4 & 2)" ( (binary_expression "uVar4 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        UI_set_result(unaff_retaddr,param_3,result);\n        return 1;\n      }" { (expression_statement "UI_set_result(unaff_retaddr,param_3,result);" (call_expression "UI_set_result(unaff_retaddr,param_3,result)" identifier (argument_list "(unaff_retaddr,param_3,result)" ( identifier , identifier , identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) })) })) (expression_statement "pUVar2 = UI_OpenSSL();" (assignment_expression "pUVar2 = UI_OpenSSL()" identifier = (call_expression "UI_OpenSSL()" identifier (argument_list "()" ( )))) ;) (expression_statement "UNRECOVERED_JUMPTABLE = (code *)UI_method_get_reader((UI *)pUVar2,in_stack_ffffffd4);" (assignment_expression "UNRECOVERED_JUMPTABLE = (code *)UI_method_get_reader((UI *)pUVar2,in_stack_ffffffd4)" identifier = (cast_expression "(code *)UI_method_get_reader((UI *)pUVar2,in_stack_ffffffd4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "UI_method_get_reader((UI *)pUVar2,in_stack_ffffffd4)" identifier (argument_list "((UI *)pUVar2,in_stack_ffffffd4)" ( (cast_expression "(UI *)pUVar2" ( (type_descriptor "UI *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))))) ;) comment comment (expression_statement "uVar3 = (*UNRECOVERED_JUMPTABLE)();" (assignment_expression "uVar3 = (*UNRECOVERED_JUMPTABLE)()" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE)()" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "()" ( )))) ;) (return_statement "return uVar3;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint ssl_ui_reader(UI *ui,UI_STRING *uis)\n\n{\n  UI_string_types UVar1;\n  UI_METHOD *pUVar2;\n  code *UNRECOVERED_JUMPTABLE;\n  int iVar3;\n  char *result;\n  uint uVar4;\n  UI_STRING *in_stack_ffffffd8;\n  \n  UVar1 = UI_get_string_type((UI_STRING *)uis);\n  if (UVar1 - UIT_PROMPT < 2) {\n    result = (char *)UI_get0_user_data((UI *)ui);\n    if (result != (char *)0x0) {\n      uVar4 = UI_get_input_flags((UI_STRING *)uis);\n      if ((uVar4 & 2) != 0) {\n        UI_set_result((UI *)ui,(UI_STRING *)uis,result);\n        return 1;\n      }\n    }\n  }\n  pUVar2 = UI_OpenSSL();\n  UNRECOVERED_JUMPTABLE = (code *)UI_method_get_reader((UI *)pUVar2,in_stack_ffffffd8);\n                    /* WARNING: Could not recover jumptable at 0x00074f28. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  iVar3 = (*UNRECOVERED_JUMPTABLE)();\n  return iVar3;\n}\n\n" comment (function_definition "int ssl_ui_reader(UI *ui,UI_STRING *uis)\n\n{\n  UI_string_types UVar1;\n  UI_METHOD *pUVar2;\n  code *UNRECOVERED_JUMPTABLE;\n  int iVar3;\n  char *result;\n  uint uVar4;\n  UI_STRING *in_stack_ffffffd8;\n  \n  UVar1 = UI_get_string_type((UI_STRING *)uis);\n  if (UVar1 - UIT_PROMPT < 2) {\n    result = (char *)UI_get0_user_data((UI *)ui);\n    if (result != (char *)0x0) {\n      uVar4 = UI_get_input_flags((UI_STRING *)uis);\n      if ((uVar4 & 2) != 0) {\n        UI_set_result((UI *)ui,(UI_STRING *)uis,result);\n        return 1;\n      }\n    }\n  }\n  pUVar2 = UI_OpenSSL();\n  UNRECOVERED_JUMPTABLE = (code *)UI_method_get_reader((UI *)pUVar2,in_stack_ffffffd8);\n                    /* WARNING: Could not recover jumptable at 0x00074f28. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  iVar3 = (*UNRECOVERED_JUMPTABLE)();\n  return iVar3;\n}" primitive_type (function_declarator "ssl_ui_reader(UI *ui,UI_STRING *uis)" identifier (parameter_list "(UI *ui,UI_STRING *uis)" ( (parameter_declaration "UI *ui" type_identifier (pointer_declarator "*ui" * identifier)) , (parameter_declaration "UI_STRING *uis" type_identifier (pointer_declarator "*uis" * identifier)) ))) (compound_statement "{\n  UI_string_types UVar1;\n  UI_METHOD *pUVar2;\n  code *UNRECOVERED_JUMPTABLE;\n  int iVar3;\n  char *result;\n  uint uVar4;\n  UI_STRING *in_stack_ffffffd8;\n  \n  UVar1 = UI_get_string_type((UI_STRING *)uis);\n  if (UVar1 - UIT_PROMPT < 2) {\n    result = (char *)UI_get0_user_data((UI *)ui);\n    if (result != (char *)0x0) {\n      uVar4 = UI_get_input_flags((UI_STRING *)uis);\n      if ((uVar4 & 2) != 0) {\n        UI_set_result((UI *)ui,(UI_STRING *)uis,result);\n        return 1;\n      }\n    }\n  }\n  pUVar2 = UI_OpenSSL();\n  UNRECOVERED_JUMPTABLE = (code *)UI_method_get_reader((UI *)pUVar2,in_stack_ffffffd8);\n                    /* WARNING: Could not recover jumptable at 0x00074f28. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  iVar3 = (*UNRECOVERED_JUMPTABLE)();\n  return iVar3;\n}" { (declaration "UI_string_types UVar1;" type_identifier identifier ;) (declaration "UI_METHOD *pUVar2;" type_identifier (pointer_declarator "*pUVar2" * identifier) ;) (declaration "code *UNRECOVERED_JUMPTABLE;" type_identifier (pointer_declarator "*UNRECOVERED_JUMPTABLE" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "char *result;" primitive_type (pointer_declarator "*result" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "UI_STRING *in_stack_ffffffd8;" type_identifier (pointer_declarator "*in_stack_ffffffd8" * identifier) ;) (expression_statement "UVar1 = UI_get_string_type((UI_STRING *)uis);" (assignment_expression "UVar1 = UI_get_string_type((UI_STRING *)uis)" identifier = (call_expression "UI_get_string_type((UI_STRING *)uis)" identifier (argument_list "((UI_STRING *)uis)" ( (cast_expression "(UI_STRING *)uis" ( (type_descriptor "UI_STRING *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (UVar1 - UIT_PROMPT < 2) {\n    result = (char *)UI_get0_user_data((UI *)ui);\n    if (result != (char *)0x0) {\n      uVar4 = UI_get_input_flags((UI_STRING *)uis);\n      if ((uVar4 & 2) != 0) {\n        UI_set_result((UI *)ui,(UI_STRING *)uis,result);\n        return 1;\n      }\n    }\n  }" if (parenthesized_expression "(UVar1 - UIT_PROMPT < 2)" ( (binary_expression "UVar1 - UIT_PROMPT < 2" (binary_expression "UVar1 - UIT_PROMPT" identifier - identifier) < number_literal) )) (compound_statement "{\n    result = (char *)UI_get0_user_data((UI *)ui);\n    if (result != (char *)0x0) {\n      uVar4 = UI_get_input_flags((UI_STRING *)uis);\n      if ((uVar4 & 2) != 0) {\n        UI_set_result((UI *)ui,(UI_STRING *)uis,result);\n        return 1;\n      }\n    }\n  }" { (expression_statement "result = (char *)UI_get0_user_data((UI *)ui);" (assignment_expression "result = (char *)UI_get0_user_data((UI *)ui)" identifier = (cast_expression "(char *)UI_get0_user_data((UI *)ui)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "UI_get0_user_data((UI *)ui)" identifier (argument_list "((UI *)ui)" ( (cast_expression "(UI *)ui" ( (type_descriptor "UI *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))))) ;) (if_statement "if (result != (char *)0x0) {\n      uVar4 = UI_get_input_flags((UI_STRING *)uis);\n      if ((uVar4 & 2) != 0) {\n        UI_set_result((UI *)ui,(UI_STRING *)uis,result);\n        return 1;\n      }\n    }" if (parenthesized_expression "(result != (char *)0x0)" ( (binary_expression "result != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar4 = UI_get_input_flags((UI_STRING *)uis);\n      if ((uVar4 & 2) != 0) {\n        UI_set_result((UI *)ui,(UI_STRING *)uis,result);\n        return 1;\n      }\n    }" { (expression_statement "uVar4 = UI_get_input_flags((UI_STRING *)uis);" (assignment_expression "uVar4 = UI_get_input_flags((UI_STRING *)uis)" identifier = (call_expression "UI_get_input_flags((UI_STRING *)uis)" identifier (argument_list "((UI_STRING *)uis)" ( (cast_expression "(UI_STRING *)uis" ( (type_descriptor "UI_STRING *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if ((uVar4 & 2) != 0) {\n        UI_set_result((UI *)ui,(UI_STRING *)uis,result);\n        return 1;\n      }" if (parenthesized_expression "((uVar4 & 2) != 0)" ( (binary_expression "(uVar4 & 2) != 0" (parenthesized_expression "(uVar4 & 2)" ( (binary_expression "uVar4 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        UI_set_result((UI *)ui,(UI_STRING *)uis,result);\n        return 1;\n      }" { (expression_statement "UI_set_result((UI *)ui,(UI_STRING *)uis,result);" (call_expression "UI_set_result((UI *)ui,(UI_STRING *)uis,result)" identifier (argument_list "((UI *)ui,(UI_STRING *)uis,result)" ( (cast_expression "(UI *)ui" ( (type_descriptor "UI *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(UI_STRING *)uis" ( (type_descriptor "UI_STRING *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) })) })) (expression_statement "pUVar2 = UI_OpenSSL();" (assignment_expression "pUVar2 = UI_OpenSSL()" identifier = (call_expression "UI_OpenSSL()" identifier (argument_list "()" ( )))) ;) (expression_statement "UNRECOVERED_JUMPTABLE = (code *)UI_method_get_reader((UI *)pUVar2,in_stack_ffffffd8);" (assignment_expression "UNRECOVERED_JUMPTABLE = (code *)UI_method_get_reader((UI *)pUVar2,in_stack_ffffffd8)" identifier = (cast_expression "(code *)UI_method_get_reader((UI *)pUVar2,in_stack_ffffffd8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "UI_method_get_reader((UI *)pUVar2,in_stack_ffffffd8)" identifier (argument_list "((UI *)pUVar2,in_stack_ffffffd8)" ( (cast_expression "(UI *)pUVar2" ( (type_descriptor "UI *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))))) ;) comment comment (expression_statement "iVar3 = (*UNRECOVERED_JUMPTABLE)();" (assignment_expression "iVar3 = (*UNRECOVERED_JUMPTABLE)()" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE)()" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "()" ( )))) ;) (return_statement "return iVar3;" return identifier ;) })))
(translation_unit "undefined4 __regparm2 FUN_00074ee0(undefined4 param_1,undefined4 param_2,UI_STRING *param_3)\n\n{\n  UI_string_types UVar1;\n  UI_METHOD *pUVar2;\n  code *UNRECOVERED_JUMPTABLE;\n  undefined4 uVar3;\n  char *result;\n  uint uVar4;\n  UI *unaff_retaddr;\n  UI_STRING *in_stack_ffffffd4;\n  \n  entry(param_2,0x74ee9);\n  UVar1 = UI_get_string_type(param_3);\n  if (UVar1 - UIT_PROMPT < 2) {\n    result = (char *)UI_get0_user_data(unaff_retaddr);\n    if (result != (char *)0x0) {\n      uVar4 = UI_get_input_flags(param_3);\n      if ((uVar4 & 2) != 0) {\n        UI_set_result(unaff_retaddr,param_3,result);\n        return 1;\n      }\n    }\n  }\n  pUVar2 = UI_OpenSSL();\n  UNRECOVERED_JUMPTABLE = (code *)UI_method_get_reader((UI *)pUVar2,in_stack_ffffffd4);\n                    \n                    \n  uVar3 = (*UNRECOVERED_JUMPTABLE)();\n  return uVar3;\n}\n\n" (function_definition "undefined4 __regparm2 FUN_00074ee0(undefined4 param_1,undefined4 param_2,UI_STRING *param_3)\n\n{\n  UI_string_types UVar1;\n  UI_METHOD *pUVar2;\n  code *UNRECOVERED_JUMPTABLE;\n  undefined4 uVar3;\n  char *result;\n  uint uVar4;\n  UI *unaff_retaddr;\n  UI_STRING *in_stack_ffffffd4;\n  \n  entry(param_2,0x74ee9);\n  UVar1 = UI_get_string_type(param_3);\n  if (UVar1 - UIT_PROMPT < 2) {\n    result = (char *)UI_get0_user_data(unaff_retaddr);\n    if (result != (char *)0x0) {\n      uVar4 = UI_get_input_flags(param_3);\n      if ((uVar4 & 2) != 0) {\n        UI_set_result(unaff_retaddr,param_3,result);\n        return 1;\n      }\n    }\n  }\n  pUVar2 = UI_OpenSSL();\n  UNRECOVERED_JUMPTABLE = (code *)UI_method_get_reader((UI *)pUVar2,in_stack_ffffffd4);\n                    \n                    \n  uVar3 = (*UNRECOVERED_JUMPTABLE)();\n  return uVar3;\n}" type_identifier (ERROR "__regparm2" identifier) (function_declarator "FUN_00074ee0(undefined4 param_1,undefined4 param_2,UI_STRING *param_3)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,UI_STRING *param_3)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "UI_STRING *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  UI_string_types UVar1;\n  UI_METHOD *pUVar2;\n  code *UNRECOVERED_JUMPTABLE;\n  undefined4 uVar3;\n  char *result;\n  uint uVar4;\n  UI *unaff_retaddr;\n  UI_STRING *in_stack_ffffffd4;\n  \n  entry(param_2,0x74ee9);\n  UVar1 = UI_get_string_type(param_3);\n  if (UVar1 - UIT_PROMPT < 2) {\n    result = (char *)UI_get0_user_data(unaff_retaddr);\n    if (result != (char *)0x0) {\n      uVar4 = UI_get_input_flags(param_3);\n      if ((uVar4 & 2) != 0) {\n        UI_set_result(unaff_retaddr,param_3,result);\n        return 1;\n      }\n    }\n  }\n  pUVar2 = UI_OpenSSL();\n  UNRECOVERED_JUMPTABLE = (code *)UI_method_get_reader((UI *)pUVar2,in_stack_ffffffd4);\n                    \n                    \n  uVar3 = (*UNRECOVERED_JUMPTABLE)();\n  return uVar3;\n}" { (declaration "UI_string_types UVar1;" type_identifier identifier ;) (declaration "UI_METHOD *pUVar2;" type_identifier (pointer_declarator "*pUVar2" * identifier) ;) (declaration "code *UNRECOVERED_JUMPTABLE;" type_identifier (pointer_declarator "*UNRECOVERED_JUMPTABLE" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "char *result;" primitive_type (pointer_declarator "*result" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "UI *unaff_retaddr;" type_identifier (pointer_declarator "*unaff_retaddr" * identifier) ;) (declaration "UI_STRING *in_stack_ffffffd4;" type_identifier (pointer_declarator "*in_stack_ffffffd4" * identifier) ;) (expression_statement "entry(param_2,0x74ee9);" (call_expression "entry(param_2,0x74ee9)" identifier (argument_list "(param_2,0x74ee9)" ( identifier , number_literal ))) ;) (expression_statement "UVar1 = UI_get_string_type(param_3);" (assignment_expression "UVar1 = UI_get_string_type(param_3)" identifier = (call_expression "UI_get_string_type(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (UVar1 - UIT_PROMPT < 2) {\n    result = (char *)UI_get0_user_data(unaff_retaddr);\n    if (result != (char *)0x0) {\n      uVar4 = UI_get_input_flags(param_3);\n      if ((uVar4 & 2) != 0) {\n        UI_set_result(unaff_retaddr,param_3,result);\n        return 1;\n      }\n    }\n  }" if (parenthesized_expression "(UVar1 - UIT_PROMPT < 2)" ( (binary_expression "UVar1 - UIT_PROMPT < 2" (binary_expression "UVar1 - UIT_PROMPT" identifier - identifier) < number_literal) )) (compound_statement "{\n    result = (char *)UI_get0_user_data(unaff_retaddr);\n    if (result != (char *)0x0) {\n      uVar4 = UI_get_input_flags(param_3);\n      if ((uVar4 & 2) != 0) {\n        UI_set_result(unaff_retaddr,param_3,result);\n        return 1;\n      }\n    }\n  }" { (expression_statement "result = (char *)UI_get0_user_data(unaff_retaddr);" (assignment_expression "result = (char *)UI_get0_user_data(unaff_retaddr)" identifier = (cast_expression "(char *)UI_get0_user_data(unaff_retaddr)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "UI_get0_user_data(unaff_retaddr)" identifier (argument_list "(unaff_retaddr)" ( identifier ))))) ;) (if_statement "if (result != (char *)0x0) {\n      uVar4 = UI_get_input_flags(param_3);\n      if ((uVar4 & 2) != 0) {\n        UI_set_result(unaff_retaddr,param_3,result);\n        return 1;\n      }\n    }" if (parenthesized_expression "(result != (char *)0x0)" ( (binary_expression "result != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar4 = UI_get_input_flags(param_3);\n      if ((uVar4 & 2) != 0) {\n        UI_set_result(unaff_retaddr,param_3,result);\n        return 1;\n      }\n    }" { (expression_statement "uVar4 = UI_get_input_flags(param_3);" (assignment_expression "uVar4 = UI_get_input_flags(param_3)" identifier = (call_expression "UI_get_input_flags(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if ((uVar4 & 2) != 0) {\n        UI_set_result(unaff_retaddr,param_3,result);\n        return 1;\n      }" if (parenthesized_expression "((uVar4 & 2) != 0)" ( (binary_expression "(uVar4 & 2) != 0" (parenthesized_expression "(uVar4 & 2)" ( (binary_expression "uVar4 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        UI_set_result(unaff_retaddr,param_3,result);\n        return 1;\n      }" { (expression_statement "UI_set_result(unaff_retaddr,param_3,result);" (call_expression "UI_set_result(unaff_retaddr,param_3,result)" identifier (argument_list "(unaff_retaddr,param_3,result)" ( identifier , identifier , identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) })) })) (expression_statement "pUVar2 = UI_OpenSSL();" (assignment_expression "pUVar2 = UI_OpenSSL()" identifier = (call_expression "UI_OpenSSL()" identifier (argument_list "()" ( )))) ;) (expression_statement "UNRECOVERED_JUMPTABLE = (code *)UI_method_get_reader((UI *)pUVar2,in_stack_ffffffd4);" (assignment_expression "UNRECOVERED_JUMPTABLE = (code *)UI_method_get_reader((UI *)pUVar2,in_stack_ffffffd4)" identifier = (cast_expression "(code *)UI_method_get_reader((UI *)pUVar2,in_stack_ffffffd4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "UI_method_get_reader((UI *)pUVar2,in_stack_ffffffd4)" identifier (argument_list "((UI *)pUVar2,in_stack_ffffffd4)" ( (cast_expression "(UI *)pUVar2" ( (type_descriptor "UI *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))))) ;) (expression_statement "uVar3 = (*UNRECOVERED_JUMPTABLE)();" (assignment_expression "uVar3 = (*UNRECOVERED_JUMPTABLE)()" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE)()" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "()" ( )))) ;) (return_statement "return uVar3;" return identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (return_statement return LIT ;) })) })) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (return_statement return IDENT ;) })))
(function_definition "undefined4 __regparm2 FUN_00074ee0(undefined4 param_1,undefined4 param_2,UI_STRING *param_3)\n\n{\n  UI_string_types UVar1;\n  UI_METHOD *pUVar2;\n  code *UNRECOVERED_JUMPTABLE;\n  undefined4 uVar3;\n  char *result;\n  uint uVar4;\n  UI *unaff_retaddr;\n  UI_STRING *in_stack_ffffffd4;\n  \n  entry(param_2,0x74ee9);\n  UVar1 = UI_get_string_type(param_3);\n  if (UVar1 - UIT_PROMPT < 2) {\n    result = (char *)UI_get0_user_data(unaff_retaddr);\n    if (result != (char *)0x0) {\n      uVar4 = UI_get_input_flags(param_3);\n      if ((uVar4 & 2) != 0) {\n        UI_set_result(unaff_retaddr,param_3,result);\n        return 1;\n      }\n    }\n  }\n  pUVar2 = UI_OpenSSL();\n  UNRECOVERED_JUMPTABLE = (code *)UI_method_get_reader((UI *)pUVar2,in_stack_ffffffd4);\n                    \n                    \n  uVar3 = (*UNRECOVERED_JUMPTABLE)();\n  return uVar3;\n}" (type_identifier "undefined4") (ERROR "__regparm2" (identifier "__regparm2")) (function_declarator "FUN_00074ee0(undefined4 param_1,undefined4 param_2,UI_STRING *param_3)" (identifier "FUN_00074ee0") (parameter_list "(undefined4 param_1,undefined4 param_2,UI_STRING *param_3)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "UI_STRING *param_3" (type_identifier "UI_STRING") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  UI_string_types UVar1;\n  UI_METHOD *pUVar2;\n  code *UNRECOVERED_JUMPTABLE;\n  undefined4 uVar3;\n  char *result;\n  uint uVar4;\n  UI *unaff_retaddr;\n  UI_STRING *in_stack_ffffffd4;\n  \n  entry(param_2,0x74ee9);\n  UVar1 = UI_get_string_type(param_3);\n  if (UVar1 - UIT_PROMPT < 2) {\n    result = (char *)UI_get0_user_data(unaff_retaddr);\n    if (result != (char *)0x0) {\n      uVar4 = UI_get_input_flags(param_3);\n      if ((uVar4 & 2) != 0) {\n        UI_set_result(unaff_retaddr,param_3,result);\n        return 1;\n      }\n    }\n  }\n  pUVar2 = UI_OpenSSL();\n  UNRECOVERED_JUMPTABLE = (code *)UI_method_get_reader((UI *)pUVar2,in_stack_ffffffd4);\n                    \n                    \n  uVar3 = (*UNRECOVERED_JUMPTABLE)();\n  return uVar3;\n}" ({ "{") (declaration "UI_string_types UVar1;" (type_identifier "UI_string_types") (identifier "UVar1") (; ";")) (declaration "UI_METHOD *pUVar2;" (type_identifier "UI_METHOD") (pointer_declarator "*pUVar2" (* "*") (identifier "pUVar2")) (; ";")) (declaration "code *UNRECOVERED_JUMPTABLE;" (type_identifier "code") (pointer_declarator "*UNRECOVERED_JUMPTABLE" (* "*") (identifier "UNRECOVERED_JUMPTABLE")) (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "char *result;" (primitive_type "char") (pointer_declarator "*result" (* "*") (identifier "result")) (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "UI *unaff_retaddr;" (type_identifier "UI") (pointer_declarator "*unaff_retaddr" (* "*") (identifier "unaff_retaddr")) (; ";")) (declaration "UI_STRING *in_stack_ffffffd4;" (type_identifier "UI_STRING") (pointer_declarator "*in_stack_ffffffd4" (* "*") (identifier "in_stack_ffffffd4")) (; ";")) (expression_statement "entry(param_2,0x74ee9);" (call_expression "entry(param_2,0x74ee9)" (identifier "entry") (argument_list "(param_2,0x74ee9)" (( "(") (identifier "param_2") (, ",") (number_literal "0x74ee9") () ")"))) (; ";")) (expression_statement "UVar1 = UI_get_string_type(param_3);" (assignment_expression "UVar1 = UI_get_string_type(param_3)" (identifier "UVar1") (= "=") (call_expression "UI_get_string_type(param_3)" (identifier "UI_get_string_type") (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (UVar1 - UIT_PROMPT < 2) {\n    result = (char *)UI_get0_user_data(unaff_retaddr);\n    if (result != (char *)0x0) {\n      uVar4 = UI_get_input_flags(param_3);\n      if ((uVar4 & 2) != 0) {\n        UI_set_result(unaff_retaddr,param_3,result);\n        return 1;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(UVar1 - UIT_PROMPT < 2)" (( "(") (binary_expression "UVar1 - UIT_PROMPT < 2" (binary_expression "UVar1 - UIT_PROMPT" (identifier "UVar1") (- "-") (identifier "UIT_PROMPT")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n    result = (char *)UI_get0_user_data(unaff_retaddr);\n    if (result != (char *)0x0) {\n      uVar4 = UI_get_input_flags(param_3);\n      if ((uVar4 & 2) != 0) {\n        UI_set_result(unaff_retaddr,param_3,result);\n        return 1;\n      }\n    }\n  }" ({ "{") (expression_statement "result = (char *)UI_get0_user_data(unaff_retaddr);" (assignment_expression "result = (char *)UI_get0_user_data(unaff_retaddr)" (identifier "result") (= "=") (cast_expression "(char *)UI_get0_user_data(unaff_retaddr)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "UI_get0_user_data(unaff_retaddr)" (identifier "UI_get0_user_data") (argument_list "(unaff_retaddr)" (( "(") (identifier "unaff_retaddr") () ")"))))) (; ";")) (if_statement "if (result != (char *)0x0) {\n      uVar4 = UI_get_input_flags(param_3);\n      if ((uVar4 & 2) != 0) {\n        UI_set_result(unaff_retaddr,param_3,result);\n        return 1;\n      }\n    }" (if "if") (parenthesized_expression "(result != (char *)0x0)" (( "(") (binary_expression "result != (char *)0x0" (identifier "result") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      uVar4 = UI_get_input_flags(param_3);\n      if ((uVar4 & 2) != 0) {\n        UI_set_result(unaff_retaddr,param_3,result);\n        return 1;\n      }\n    }" ({ "{") (expression_statement "uVar4 = UI_get_input_flags(param_3);" (assignment_expression "uVar4 = UI_get_input_flags(param_3)" (identifier "uVar4") (= "=") (call_expression "UI_get_input_flags(param_3)" (identifier "UI_get_input_flags") (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (if_statement "if ((uVar4 & 2) != 0) {\n        UI_set_result(unaff_retaddr,param_3,result);\n        return 1;\n      }" (if "if") (parenthesized_expression "((uVar4 & 2) != 0)" (( "(") (binary_expression "(uVar4 & 2) != 0" (parenthesized_expression "(uVar4 & 2)" (( "(") (binary_expression "uVar4 & 2" (identifier "uVar4") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        UI_set_result(unaff_retaddr,param_3,result);\n        return 1;\n      }" ({ "{") (expression_statement "UI_set_result(unaff_retaddr,param_3,result);" (call_expression "UI_set_result(unaff_retaddr,param_3,result)" (identifier "UI_set_result") (argument_list "(unaff_retaddr,param_3,result)" (( "(") (identifier "unaff_retaddr") (, ",") (identifier "param_3") (, ",") (identifier "result") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "pUVar2 = UI_OpenSSL();" (assignment_expression "pUVar2 = UI_OpenSSL()" (identifier "pUVar2") (= "=") (call_expression "UI_OpenSSL()" (identifier "UI_OpenSSL") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "UNRECOVERED_JUMPTABLE = (code *)UI_method_get_reader((UI *)pUVar2,in_stack_ffffffd4);" (assignment_expression "UNRECOVERED_JUMPTABLE = (code *)UI_method_get_reader((UI *)pUVar2,in_stack_ffffffd4)" (identifier "UNRECOVERED_JUMPTABLE") (= "=") (cast_expression "(code *)UI_method_get_reader((UI *)pUVar2,in_stack_ffffffd4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "UI_method_get_reader((UI *)pUVar2,in_stack_ffffffd4)" (identifier "UI_method_get_reader") (argument_list "((UI *)pUVar2,in_stack_ffffffd4)" (( "(") (cast_expression "(UI *)pUVar2" (( "(") (type_descriptor "UI *" (type_identifier "UI") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pUVar2")) (, ",") (identifier "in_stack_ffffffd4") () ")"))))) (; ";")) (expression_statement "uVar3 = (*UNRECOVERED_JUMPTABLE)();" (assignment_expression "uVar3 = (*UNRECOVERED_JUMPTABLE)()" (identifier "uVar3") (= "=") (call_expression "(*UNRECOVERED_JUMPTABLE)()" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" (( "(") (pointer_expression "*UNRECOVERED_JUMPTABLE" (* "*") (identifier "UNRECOVERED_JUMPTABLE")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}")))

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

int function_1(type_1 *ui,type_2 *uis)

{
  type_3 var_2;
  type_4 *pUVar2;
  type_5 *UNRECOVERED_JUMPTABLE;
  int iVar3;
  char *var_5;
  type_6 var_7;
  type_2 *in_stack_ffffffd8;
  
  var_2 = var_1((type_2 *)uis);
  if (var_2 - var_3 < 2) {
    var_5 = (char *)var_4((type_1 *)ui);
    if (var_5 != (char *)0x0) {
      var_7 = var_6((type_2 *)uis);
      if ((var_7 & 2) != 0) {
        var_8((type_1 *)ui,(type_2 *)uis,var_5);
        return 1;
      }
    }
  }
  pUVar2 = var_9();
  UNRECOVERED_JUMPTABLE = (type_5 *)var_10((type_1 *)pUVar2,in_stack_ffffffd8);
                    /* WARNING: Could not recover jumptable at 0x00074f28. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  iVar3 = (*UNRECOVERED_JUMPTABLE)();
  return iVar3;
}


(translation_unit (function_definition type: (type_identifier) (ERROR (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: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator 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 (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (return_statement (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list)))) (return_statement (identifier)))))

undefined4 __regparm2 MASKED(undefined4 param_1,undefined4 param_2,UI_STRING *param_3)

{
  UI_string_types UVar1;
  UI_METHOD *pUVar2;
  code *UNRECOVERED_JUMPTABLE;
  undefined4 uVar3;
  char *result;
  uint uVar4;
  UI *unaff_retaddr;
  UI_STRING *in_stack_ffffffd4;
  
  entry(param_2,0x74ee9);
  UVar1 = UI_get_string_type(param_3);
  if (UVar1 - UIT_PROMPT < 2) {
    result = (char *)UI_get0_user_data(unaff_retaddr);
    if (result != (char *)0x0) {
      uVar4 = UI_get_input_flags(param_3);
      if ((uVar4 & 2) != 0) {
        UI_set_result(unaff_retaddr,param_3,result);
        return 1;
      }
    }
  }
  pUVar2 = UI_OpenSSL();
  UNRECOVERED_JUMPTABLE = (code *)UI_method_get_reader((UI *)pUVar2,in_stack_ffffffd4);
                    /* WARNING: Could not recover jumptable at 0x00074f28. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  uVar3 = (*UNRECOVERED_JUMPTABLE)();
  return uVar3;
}

