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

int askhk(void *frontend,char *algname,char *betteralgs,_func_void_void_ptr_int *callback,void *ctx)

{
  char *msg;
  int iVar1;
  undefined4 uVar2;
  void *pvVar3;
  GtkWidget *parentwin;
  
  msg = dupprintf("The first host key type we have stored for this server\nis %s, which is below the configured warning threshold.\nThe server also provides the following types of host key\nabove the threshold, which we do not have stored:\n%s\nContinue with connection?"
                  ,algname,betteralgs);
  iVar1 = string_width("is ecdsa-nistp521, which is below the configured warning threshold.");
  uVar2 = gtk_widget_get_type();
  pvVar3 = get_window();
  parentwin = (GtkWidget *)g_type_check_instance_cast(pvVar3,uVar2);
  iVar1 = messagebox(parentwin,"PuTTY Security Alert",msg,iVar1,0,0x8b4fd,0x79,0,1,0x8b501,0x6e,0,0,
                     0);
  safefree(msg);
  return (uint)(iVar1 != 0);
}



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

bool FUN_0005de20(undefined4 param_1,undefined4 param_2,undefined4 param_3)

{
  undefined4 uVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  int iVar5;
  
  uVar1 = FUN_000306f0("The first host key type we have stored for this server\nis %s, which is below the configured warning threshold.\nThe server also provides the following types of host key\nabove the threshold, which we do not have stored:\n%s\nContinue with connection?"
                       ,param_2,param_3);
  uVar2 = FUN_00066b00("is ecdsa-nistp521, which is below the configured warning threshold.");
  uVar3 = gtk_widget_get_type();
  uVar4 = FUN_00068560(param_1);
  uVar3 = g_type_check_instance_cast(uVar4,uVar3);
  iVar5 = FUN_0005d520(uVar3,"PuTTY Security Alert",uVar1,uVar2,0,&DAT_0008b4fd,0x79,0,1,
                       &DAT_0008b501,0x6e,0,0,0);
  FUN_00031580(uVar1);
  return iVar5 != 0;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x0001b410
ADD EBX,0x6797b
SUB ESP,0x10
PUSH dword ptr [ESP + 0x2c]
PUSH dword ptr [ESP + 0x2c]
LEA EAX,[EBX + 0xfffcef7c]
PUSH EAX
CALL 0x000306f0
MOV ESI,EAX
LEA EAX,[EBX + 0xfffcecb8]
MOV dword ptr [ESP],EAX
CALL 0x00066b00
MOV EDI,EAX
CALL 0x00019530
MOV EBP,EAX
POP EAX
PUSH dword ptr [ESP + 0x2c]
CALL 0x00068560
POP EDX
POP ECX
PUSH EBP
PUSH EAX
CALL 0x00019590
POP EBP
POP EDX
LEA EDX,[EBX + 0xfffc5d5d]
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x6e
PUSH EDX
LEA EDX,[EBX + 0xfffc5d59]
PUSH 0x1
PUSH 0x0
PUSH 0x79
PUSH EDX
LEA EDX,[EBX + 0xfffce468]
PUSH 0x0
PUSH EDI
PUSH ESI
PUSH EDX
PUSH EAX
CALL 0x0005d520
ADD ESP,0x34
PUSH ESI
MOV EDI,EAX
CALL 0x00031580
XOR EAX,EAX
TEST EDI,EDI
SETNZ AL
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nbool FUN_0005de20(undefined4 param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  \n  uVar1 = FUN_000306f0("The first host key type we have stored for this server\nis %s, which is below the configured warning threshold.\nThe server also provides the following types of host key\nabove the threshold, which we do not have stored:\n%s\nContinue with connection?"\n                       ,param_2,param_3);\n  uVar2 = FUN_00066b00("is ecdsa-nistp521, which is below the configured warning threshold.");\n  uVar3 = gtk_widget_get_type();\n  uVar4 = FUN_00068560(param_1);\n  uVar3 = g_type_check_instance_cast(uVar4,uVar3);\n  iVar5 = FUN_0005d520(uVar3,"PuTTY Security Alert",uVar1,uVar2,0,&DAT_0008b4fd,0x79,0,1,\n                       &DAT_0008b501,0x6e,0,0,0);\n  FUN_00031580(uVar1);\n  return iVar5 != 0;\n}\n\n" comment (function_definition "bool FUN_0005de20(undefined4 param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  \n  uVar1 = FUN_000306f0("The first host key type we have stored for this server\nis %s, which is below the configured warning threshold.\nThe server also provides the following types of host key\nabove the threshold, which we do not have stored:\n%s\nContinue with connection?"\n                       ,param_2,param_3);\n  uVar2 = FUN_00066b00("is ecdsa-nistp521, which is below the configured warning threshold.");\n  uVar3 = gtk_widget_get_type();\n  uVar4 = FUN_00068560(param_1);\n  uVar3 = g_type_check_instance_cast(uVar4,uVar3);\n  iVar5 = FUN_0005d520(uVar3,"PuTTY Security Alert",uVar1,uVar2,0,&DAT_0008b4fd,0x79,0,1,\n                       &DAT_0008b501,0x6e,0,0,0);\n  FUN_00031580(uVar1);\n  return iVar5 != 0;\n}" primitive_type (function_declarator "FUN_0005de20(undefined4 param_1,undefined4 param_2,undefined4 param_3)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  \n  uVar1 = FUN_000306f0("The first host key type we have stored for this server\nis %s, which is below the configured warning threshold.\nThe server also provides the following types of host key\nabove the threshold, which we do not have stored:\n%s\nContinue with connection?"\n                       ,param_2,param_3);\n  uVar2 = FUN_00066b00("is ecdsa-nistp521, which is below the configured warning threshold.");\n  uVar3 = gtk_widget_get_type();\n  uVar4 = FUN_00068560(param_1);\n  uVar3 = g_type_check_instance_cast(uVar4,uVar3);\n  iVar5 = FUN_0005d520(uVar3,"PuTTY Security Alert",uVar1,uVar2,0,&DAT_0008b4fd,0x79,0,1,\n                       &DAT_0008b501,0x6e,0,0,0);\n  FUN_00031580(uVar1);\n  return iVar5 != 0;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (expression_statement "uVar1 = FUN_000306f0("The first host key type we have stored for this server\nis %s, which is below the configured warning threshold.\nThe server also provides the following types of host key\nabove the threshold, which we do not have stored:\n%s\nContinue with connection?"\n                       ,param_2,param_3);" (assignment_expression "uVar1 = FUN_000306f0("The first host key type we have stored for this server\nis %s, which is below the configured warning threshold.\nThe server also provides the following types of host key\nabove the threshold, which we do not have stored:\n%s\nContinue with connection?"\n                       ,param_2,param_3)" identifier = (call_expression "FUN_000306f0("The first host key type we have stored for this server\nis %s, which is below the configured warning threshold.\nThe server also provides the following types of host key\nabove the threshold, which we do not have stored:\n%s\nContinue with connection?"\n                       ,param_2,param_3)" identifier (argument_list "("The first host key type we have stored for this server\nis %s, which is below the configured warning threshold.\nThe server also provides the following types of host key\nabove the threshold, which we do not have stored:\n%s\nContinue with connection?"\n                       ,param_2,param_3)" ( (string_literal ""The first host key type we have stored for this server\nis %s, which is below the configured warning threshold.\nThe server also provides the following types of host key\nabove the threshold, which we do not have stored:\n%s\nContinue with connection?"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") , identifier , identifier )))) ;) (expression_statement "uVar2 = FUN_00066b00("is ecdsa-nistp521, which is below the configured warning threshold.");" (assignment_expression "uVar2 = FUN_00066b00("is ecdsa-nistp521, which is below the configured warning threshold.")" identifier = (call_expression "FUN_00066b00("is ecdsa-nistp521, which is below the configured warning threshold.")" identifier (argument_list "("is ecdsa-nistp521, which is below the configured warning threshold.")" ( (string_literal ""is ecdsa-nistp521, which is below the configured warning threshold."" " string_content ") )))) ;) (expression_statement "uVar3 = gtk_widget_get_type();" (assignment_expression "uVar3 = gtk_widget_get_type()" identifier = (call_expression "gtk_widget_get_type()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar4 = FUN_00068560(param_1);" (assignment_expression "uVar4 = FUN_00068560(param_1)" identifier = (call_expression "FUN_00068560(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "uVar3 = g_type_check_instance_cast(uVar4,uVar3);" (assignment_expression "uVar3 = g_type_check_instance_cast(uVar4,uVar3)" identifier = (call_expression "g_type_check_instance_cast(uVar4,uVar3)" identifier (argument_list "(uVar4,uVar3)" ( identifier , identifier )))) ;) (expression_statement "iVar5 = FUN_0005d520(uVar3,"PuTTY Security Alert",uVar1,uVar2,0,&DAT_0008b4fd,0x79,0,1,\n                       &DAT_0008b501,0x6e,0,0,0);" (assignment_expression "iVar5 = FUN_0005d520(uVar3,"PuTTY Security Alert",uVar1,uVar2,0,&DAT_0008b4fd,0x79,0,1,\n                       &DAT_0008b501,0x6e,0,0,0)" identifier = (call_expression "FUN_0005d520(uVar3,"PuTTY Security Alert",uVar1,uVar2,0,&DAT_0008b4fd,0x79,0,1,\n                       &DAT_0008b501,0x6e,0,0,0)" identifier (argument_list "(uVar3,"PuTTY Security Alert",uVar1,uVar2,0,&DAT_0008b4fd,0x79,0,1,\n                       &DAT_0008b501,0x6e,0,0,0)" ( identifier , (string_literal ""PuTTY Security Alert"" " string_content ") , identifier , identifier , number_literal , (pointer_expression "&DAT_0008b4fd" & identifier) , number_literal , number_literal , number_literal , (pointer_expression "&DAT_0008b501" & identifier) , number_literal , number_literal , number_literal , number_literal )))) ;) (expression_statement "FUN_00031580(uVar1);" (call_expression "FUN_00031580(uVar1)" identifier (argument_list "(uVar1)" ( identifier ))) ;) (return_statement "return iVar5 != 0;" return (binary_expression "iVar5 != 0" identifier != number_literal) ;) })))
(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\nint askhk(void *frontend,char *algname,char *betteralgs,_func_void_void_ptr_int *callback,void *ctx)\n\n{\n  char *msg;\n  int iVar1;\n  undefined4 uVar2;\n  void *pvVar3;\n  GtkWidget *parentwin;\n  \n  msg = dupprintf("The first host key type we have stored for this server\nis %s, which is below the configured warning threshold.\nThe server also provides the following types of host key\nabove the threshold, which we do not have stored:\n%s\nContinue with connection?"\n                  ,algname,betteralgs);\n  iVar1 = string_width("is ecdsa-nistp521, which is below the configured warning threshold.");\n  uVar2 = gtk_widget_get_type();\n  pvVar3 = get_window();\n  parentwin = (GtkWidget *)g_type_check_instance_cast(pvVar3,uVar2);\n  iVar1 = messagebox(parentwin,"PuTTY Security Alert",msg,iVar1,0,0x8b4fd,0x79,0,1,0x8b501,0x6e,0,0,\n                     0);\n  safefree(msg);\n  return (uint)(iVar1 != 0);\n}\n\n" comment comment comment (function_definition "int askhk(void *frontend,char *algname,char *betteralgs,_func_void_void_ptr_int *callback,void *ctx)\n\n{\n  char *msg;\n  int iVar1;\n  undefined4 uVar2;\n  void *pvVar3;\n  GtkWidget *parentwin;\n  \n  msg = dupprintf("The first host key type we have stored for this server\nis %s, which is below the configured warning threshold.\nThe server also provides the following types of host key\nabove the threshold, which we do not have stored:\n%s\nContinue with connection?"\n                  ,algname,betteralgs);\n  iVar1 = string_width("is ecdsa-nistp521, which is below the configured warning threshold.");\n  uVar2 = gtk_widget_get_type();\n  pvVar3 = get_window();\n  parentwin = (GtkWidget *)g_type_check_instance_cast(pvVar3,uVar2);\n  iVar1 = messagebox(parentwin,"PuTTY Security Alert",msg,iVar1,0,0x8b4fd,0x79,0,1,0x8b501,0x6e,0,0,\n                     0);\n  safefree(msg);\n  return (uint)(iVar1 != 0);\n}" primitive_type (function_declarator "askhk(void *frontend,char *algname,char *betteralgs,_func_void_void_ptr_int *callback,void *ctx)" identifier (parameter_list "(void *frontend,char *algname,char *betteralgs,_func_void_void_ptr_int *callback,void *ctx)" ( (parameter_declaration "void *frontend" primitive_type (pointer_declarator "*frontend" * identifier)) , (parameter_declaration "char *algname" primitive_type (pointer_declarator "*algname" * identifier)) , (parameter_declaration "char *betteralgs" primitive_type (pointer_declarator "*betteralgs" * identifier)) , (parameter_declaration "_func_void_void_ptr_int *callback" type_identifier (pointer_declarator "*callback" * identifier)) , (parameter_declaration "void *ctx" primitive_type (pointer_declarator "*ctx" * identifier)) ))) (compound_statement "{\n  char *msg;\n  int iVar1;\n  undefined4 uVar2;\n  void *pvVar3;\n  GtkWidget *parentwin;\n  \n  msg = dupprintf("The first host key type we have stored for this server\nis %s, which is below the configured warning threshold.\nThe server also provides the following types of host key\nabove the threshold, which we do not have stored:\n%s\nContinue with connection?"\n                  ,algname,betteralgs);\n  iVar1 = string_width("is ecdsa-nistp521, which is below the configured warning threshold.");\n  uVar2 = gtk_widget_get_type();\n  pvVar3 = get_window();\n  parentwin = (GtkWidget *)g_type_check_instance_cast(pvVar3,uVar2);\n  iVar1 = messagebox(parentwin,"PuTTY Security Alert",msg,iVar1,0,0x8b4fd,0x79,0,1,0x8b501,0x6e,0,0,\n                     0);\n  safefree(msg);\n  return (uint)(iVar1 != 0);\n}" { (declaration "char *msg;" primitive_type (pointer_declarator "*msg" * identifier) ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "void *pvVar3;" primitive_type (pointer_declarator "*pvVar3" * identifier) ;) (declaration "GtkWidget *parentwin;" type_identifier (pointer_declarator "*parentwin" * identifier) ;) (expression_statement "msg = dupprintf("The first host key type we have stored for this server\nis %s, which is below the configured warning threshold.\nThe server also provides the following types of host key\nabove the threshold, which we do not have stored:\n%s\nContinue with connection?"\n                  ,algname,betteralgs);" (assignment_expression "msg = dupprintf("The first host key type we have stored for this server\nis %s, which is below the configured warning threshold.\nThe server also provides the following types of host key\nabove the threshold, which we do not have stored:\n%s\nContinue with connection?"\n                  ,algname,betteralgs)" identifier = (call_expression "dupprintf("The first host key type we have stored for this server\nis %s, which is below the configured warning threshold.\nThe server also provides the following types of host key\nabove the threshold, which we do not have stored:\n%s\nContinue with connection?"\n                  ,algname,betteralgs)" identifier (argument_list "("The first host key type we have stored for this server\nis %s, which is below the configured warning threshold.\nThe server also provides the following types of host key\nabove the threshold, which we do not have stored:\n%s\nContinue with connection?"\n                  ,algname,betteralgs)" ( (string_literal ""The first host key type we have stored for this server\nis %s, which is below the configured warning threshold.\nThe server also provides the following types of host key\nabove the threshold, which we do not have stored:\n%s\nContinue with connection?"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") , identifier , identifier )))) ;) (expression_statement "iVar1 = string_width("is ecdsa-nistp521, which is below the configured warning threshold.");" (assignment_expression "iVar1 = string_width("is ecdsa-nistp521, which is below the configured warning threshold.")" identifier = (call_expression "string_width("is ecdsa-nistp521, which is below the configured warning threshold.")" identifier (argument_list "("is ecdsa-nistp521, which is below the configured warning threshold.")" ( (string_literal ""is ecdsa-nistp521, which is below the configured warning threshold."" " string_content ") )))) ;) (expression_statement "uVar2 = gtk_widget_get_type();" (assignment_expression "uVar2 = gtk_widget_get_type()" identifier = (call_expression "gtk_widget_get_type()" identifier (argument_list "()" ( )))) ;) (expression_statement "pvVar3 = get_window();" (assignment_expression "pvVar3 = get_window()" identifier = (call_expression "get_window()" identifier (argument_list "()" ( )))) ;) (expression_statement "parentwin = (GtkWidget *)g_type_check_instance_cast(pvVar3,uVar2);" (assignment_expression "parentwin = (GtkWidget *)g_type_check_instance_cast(pvVar3,uVar2)" identifier = (cast_expression "(GtkWidget *)g_type_check_instance_cast(pvVar3,uVar2)" ( (type_descriptor "GtkWidget *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "g_type_check_instance_cast(pvVar3,uVar2)" identifier (argument_list "(pvVar3,uVar2)" ( identifier , identifier ))))) ;) (expression_statement "iVar1 = messagebox(parentwin,"PuTTY Security Alert",msg,iVar1,0,0x8b4fd,0x79,0,1,0x8b501,0x6e,0,0,\n                     0);" (assignment_expression "iVar1 = messagebox(parentwin,"PuTTY Security Alert",msg,iVar1,0,0x8b4fd,0x79,0,1,0x8b501,0x6e,0,0,\n                     0)" identifier = (call_expression "messagebox(parentwin,"PuTTY Security Alert",msg,iVar1,0,0x8b4fd,0x79,0,1,0x8b501,0x6e,0,0,\n                     0)" identifier (argument_list "(parentwin,"PuTTY Security Alert",msg,iVar1,0,0x8b4fd,0x79,0,1,0x8b501,0x6e,0,0,\n                     0)" ( identifier , (string_literal ""PuTTY Security Alert"" " string_content ") , identifier , identifier , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal )))) ;) (expression_statement "safefree(msg);" (call_expression "safefree(msg)" identifier (argument_list "(msg)" ( identifier ))) ;) (return_statement "return (uint)(iVar1 != 0);" return (call_expression "(uint)(iVar1 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) ))) ;) })))
(translation_unit "bool FUN_0005de20(undefined4 param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  \n  uVar1 = FUN_000306f0("The first host key type we have stored for this server\nis %s, which is below the configured warning threshold.\nThe server also provides the following types of host key\nabove the threshold, which we do not have stored:\n%s\nContinue with connection?"\n                       ,param_2,param_3);\n  uVar2 = FUN_00066b00("is ecdsa-nistp521, which is below the configured warning threshold.");\n  uVar3 = gtk_widget_get_type();\n  uVar4 = FUN_00068560(param_1);\n  uVar3 = g_type_check_instance_cast(uVar4,uVar3);\n  iVar5 = FUN_0005d520(uVar3,"PuTTY Security Alert",uVar1,uVar2,0,&DAT_0008b4fd,0x79,0,1,\n                       &DAT_0008b501,0x6e,0,0,0);\n  FUN_00031580(uVar1);\n  return iVar5 != 0;\n}\n\n" (function_definition "bool FUN_0005de20(undefined4 param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  \n  uVar1 = FUN_000306f0("The first host key type we have stored for this server\nis %s, which is below the configured warning threshold.\nThe server also provides the following types of host key\nabove the threshold, which we do not have stored:\n%s\nContinue with connection?"\n                       ,param_2,param_3);\n  uVar2 = FUN_00066b00("is ecdsa-nistp521, which is below the configured warning threshold.");\n  uVar3 = gtk_widget_get_type();\n  uVar4 = FUN_00068560(param_1);\n  uVar3 = g_type_check_instance_cast(uVar4,uVar3);\n  iVar5 = FUN_0005d520(uVar3,"PuTTY Security Alert",uVar1,uVar2,0,&DAT_0008b4fd,0x79,0,1,\n                       &DAT_0008b501,0x6e,0,0,0);\n  FUN_00031580(uVar1);\n  return iVar5 != 0;\n}" primitive_type (function_declarator "FUN_0005de20(undefined4 param_1,undefined4 param_2,undefined4 param_3)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  \n  uVar1 = FUN_000306f0("The first host key type we have stored for this server\nis %s, which is below the configured warning threshold.\nThe server also provides the following types of host key\nabove the threshold, which we do not have stored:\n%s\nContinue with connection?"\n                       ,param_2,param_3);\n  uVar2 = FUN_00066b00("is ecdsa-nistp521, which is below the configured warning threshold.");\n  uVar3 = gtk_widget_get_type();\n  uVar4 = FUN_00068560(param_1);\n  uVar3 = g_type_check_instance_cast(uVar4,uVar3);\n  iVar5 = FUN_0005d520(uVar3,"PuTTY Security Alert",uVar1,uVar2,0,&DAT_0008b4fd,0x79,0,1,\n                       &DAT_0008b501,0x6e,0,0,0);\n  FUN_00031580(uVar1);\n  return iVar5 != 0;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (expression_statement "uVar1 = FUN_000306f0("The first host key type we have stored for this server\nis %s, which is below the configured warning threshold.\nThe server also provides the following types of host key\nabove the threshold, which we do not have stored:\n%s\nContinue with connection?"\n                       ,param_2,param_3);" (assignment_expression "uVar1 = FUN_000306f0("The first host key type we have stored for this server\nis %s, which is below the configured warning threshold.\nThe server also provides the following types of host key\nabove the threshold, which we do not have stored:\n%s\nContinue with connection?"\n                       ,param_2,param_3)" identifier = (call_expression "FUN_000306f0("The first host key type we have stored for this server\nis %s, which is below the configured warning threshold.\nThe server also provides the following types of host key\nabove the threshold, which we do not have stored:\n%s\nContinue with connection?"\n                       ,param_2,param_3)" identifier (argument_list "("The first host key type we have stored for this server\nis %s, which is below the configured warning threshold.\nThe server also provides the following types of host key\nabove the threshold, which we do not have stored:\n%s\nContinue with connection?"\n                       ,param_2,param_3)" ( (string_literal ""The first host key type we have stored for this server\nis %s, which is below the configured warning threshold.\nThe server also provides the following types of host key\nabove the threshold, which we do not have stored:\n%s\nContinue with connection?"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") , identifier , identifier )))) ;) (expression_statement "uVar2 = FUN_00066b00("is ecdsa-nistp521, which is below the configured warning threshold.");" (assignment_expression "uVar2 = FUN_00066b00("is ecdsa-nistp521, which is below the configured warning threshold.")" identifier = (call_expression "FUN_00066b00("is ecdsa-nistp521, which is below the configured warning threshold.")" identifier (argument_list "("is ecdsa-nistp521, which is below the configured warning threshold.")" ( (string_literal ""is ecdsa-nistp521, which is below the configured warning threshold."" " string_content ") )))) ;) (expression_statement "uVar3 = gtk_widget_get_type();" (assignment_expression "uVar3 = gtk_widget_get_type()" identifier = (call_expression "gtk_widget_get_type()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar4 = FUN_00068560(param_1);" (assignment_expression "uVar4 = FUN_00068560(param_1)" identifier = (call_expression "FUN_00068560(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "uVar3 = g_type_check_instance_cast(uVar4,uVar3);" (assignment_expression "uVar3 = g_type_check_instance_cast(uVar4,uVar3)" identifier = (call_expression "g_type_check_instance_cast(uVar4,uVar3)" identifier (argument_list "(uVar4,uVar3)" ( identifier , identifier )))) ;) (expression_statement "iVar5 = FUN_0005d520(uVar3,"PuTTY Security Alert",uVar1,uVar2,0,&DAT_0008b4fd,0x79,0,1,\n                       &DAT_0008b501,0x6e,0,0,0);" (assignment_expression "iVar5 = FUN_0005d520(uVar3,"PuTTY Security Alert",uVar1,uVar2,0,&DAT_0008b4fd,0x79,0,1,\n                       &DAT_0008b501,0x6e,0,0,0)" identifier = (call_expression "FUN_0005d520(uVar3,"PuTTY Security Alert",uVar1,uVar2,0,&DAT_0008b4fd,0x79,0,1,\n                       &DAT_0008b501,0x6e,0,0,0)" identifier (argument_list "(uVar3,"PuTTY Security Alert",uVar1,uVar2,0,&DAT_0008b4fd,0x79,0,1,\n                       &DAT_0008b501,0x6e,0,0,0)" ( identifier , (string_literal ""PuTTY Security Alert"" " string_content ") , identifier , identifier , number_literal , (pointer_expression "&DAT_0008b4fd" & identifier) , number_literal , number_literal , number_literal , (pointer_expression "&DAT_0008b501" & identifier) , number_literal , number_literal , number_literal , number_literal )))) ;) (expression_statement "FUN_00031580(uVar1);" (call_expression "FUN_00031580(uVar1)" identifier (argument_list "(uVar1)" ( identifier ))) ;) (return_statement "return iVar5 != 0;" return (binary_expression "iVar5 != 0" identifier != number_literal) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT , IDENT , LIT , (pointer_expression & IDENT) , LIT , LIT , LIT , (pointer_expression & IDENT) , LIT , LIT , LIT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return (binary_expression IDENT != LIT) ;) })))
(function_definition "bool FUN_0005de20(undefined4 param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  \n  uVar1 = FUN_000306f0("The first host key type we have stored for this server\nis %s, which is below the configured warning threshold.\nThe server also provides the following types of host key\nabove the threshold, which we do not have stored:\n%s\nContinue with connection?"\n                       ,param_2,param_3);\n  uVar2 = FUN_00066b00("is ecdsa-nistp521, which is below the configured warning threshold.");\n  uVar3 = gtk_widget_get_type();\n  uVar4 = FUN_00068560(param_1);\n  uVar3 = g_type_check_instance_cast(uVar4,uVar3);\n  iVar5 = FUN_0005d520(uVar3,"PuTTY Security Alert",uVar1,uVar2,0,&DAT_0008b4fd,0x79,0,1,\n                       &DAT_0008b501,0x6e,0,0,0);\n  FUN_00031580(uVar1);\n  return iVar5 != 0;\n}" (primitive_type "bool") (function_declarator "FUN_0005de20(undefined4 param_1,undefined4 param_2,undefined4 param_3)" (identifier "FUN_0005de20") (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 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 "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  \n  uVar1 = FUN_000306f0("The first host key type we have stored for this server\nis %s, which is below the configured warning threshold.\nThe server also provides the following types of host key\nabove the threshold, which we do not have stored:\n%s\nContinue with connection?"\n                       ,param_2,param_3);\n  uVar2 = FUN_00066b00("is ecdsa-nistp521, which is below the configured warning threshold.");\n  uVar3 = gtk_widget_get_type();\n  uVar4 = FUN_00068560(param_1);\n  uVar3 = g_type_check_instance_cast(uVar4,uVar3);\n  iVar5 = FUN_0005d520(uVar3,"PuTTY Security Alert",uVar1,uVar2,0,&DAT_0008b4fd,0x79,0,1,\n                       &DAT_0008b501,0x6e,0,0,0);\n  FUN_00031580(uVar1);\n  return iVar5 != 0;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (expression_statement "uVar1 = FUN_000306f0("The first host key type we have stored for this server\nis %s, which is below the configured warning threshold.\nThe server also provides the following types of host key\nabove the threshold, which we do not have stored:\n%s\nContinue with connection?"\n                       ,param_2,param_3);" (assignment_expression "uVar1 = FUN_000306f0("The first host key type we have stored for this server\nis %s, which is below the configured warning threshold.\nThe server also provides the following types of host key\nabove the threshold, which we do not have stored:\n%s\nContinue with connection?"\n                       ,param_2,param_3)" (identifier "uVar1") (= "=") (call_expression "FUN_000306f0("The first host key type we have stored for this server\nis %s, which is below the configured warning threshold.\nThe server also provides the following types of host key\nabove the threshold, which we do not have stored:\n%s\nContinue with connection?"\n                       ,param_2,param_3)" (identifier "FUN_000306f0") (argument_list "("The first host key type we have stored for this server\nis %s, which is below the configured warning threshold.\nThe server also provides the following types of host key\nabove the threshold, which we do not have stored:\n%s\nContinue with connection?"\n                       ,param_2,param_3)" (( "(") (string_literal ""The first host key type we have stored for this server\nis %s, which is below the configured warning threshold.\nThe server also provides the following types of host key\nabove the threshold, which we do not have stored:\n%s\nContinue with connection?"" (" """) (string_content "The first host key type we have stored for this server") (escape_sequence "\n") (string_content "is %s, which is below the configured warning threshold.") (escape_sequence "\n") (string_content "The server also provides the following types of host key") (escape_sequence "\n") (string_content "above the threshold, which we do not have stored:") (escape_sequence "\n") (string_content "%s") (escape_sequence "\n") (string_content "Continue with connection?") (" """)) (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "uVar2 = FUN_00066b00("is ecdsa-nistp521, which is below the configured warning threshold.");" (assignment_expression "uVar2 = FUN_00066b00("is ecdsa-nistp521, which is below the configured warning threshold.")" (identifier "uVar2") (= "=") (call_expression "FUN_00066b00("is ecdsa-nistp521, which is below the configured warning threshold.")" (identifier "FUN_00066b00") (argument_list "("is ecdsa-nistp521, which is below the configured warning threshold.")" (( "(") (string_literal ""is ecdsa-nistp521, which is below the configured warning threshold."" (" """) (string_content "is ecdsa-nistp521, which is below the configured warning threshold.") (" """)) () ")")))) (; ";")) (expression_statement "uVar3 = gtk_widget_get_type();" (assignment_expression "uVar3 = gtk_widget_get_type()" (identifier "uVar3") (= "=") (call_expression "gtk_widget_get_type()" (identifier "gtk_widget_get_type") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar4 = FUN_00068560(param_1);" (assignment_expression "uVar4 = FUN_00068560(param_1)" (identifier "uVar4") (= "=") (call_expression "FUN_00068560(param_1)" (identifier "FUN_00068560") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "uVar3 = g_type_check_instance_cast(uVar4,uVar3);" (assignment_expression "uVar3 = g_type_check_instance_cast(uVar4,uVar3)" (identifier "uVar3") (= "=") (call_expression "g_type_check_instance_cast(uVar4,uVar3)" (identifier "g_type_check_instance_cast") (argument_list "(uVar4,uVar3)" (( "(") (identifier "uVar4") (, ",") (identifier "uVar3") () ")")))) (; ";")) (expression_statement "iVar5 = FUN_0005d520(uVar3,"PuTTY Security Alert",uVar1,uVar2,0,&DAT_0008b4fd,0x79,0,1,\n                       &DAT_0008b501,0x6e,0,0,0);" (assignment_expression "iVar5 = FUN_0005d520(uVar3,"PuTTY Security Alert",uVar1,uVar2,0,&DAT_0008b4fd,0x79,0,1,\n                       &DAT_0008b501,0x6e,0,0,0)" (identifier "iVar5") (= "=") (call_expression "FUN_0005d520(uVar3,"PuTTY Security Alert",uVar1,uVar2,0,&DAT_0008b4fd,0x79,0,1,\n                       &DAT_0008b501,0x6e,0,0,0)" (identifier "FUN_0005d520") (argument_list "(uVar3,"PuTTY Security Alert",uVar1,uVar2,0,&DAT_0008b4fd,0x79,0,1,\n                       &DAT_0008b501,0x6e,0,0,0)" (( "(") (identifier "uVar3") (, ",") (string_literal ""PuTTY Security Alert"" (" """) (string_content "PuTTY Security Alert") (" """)) (, ",") (identifier "uVar1") (, ",") (identifier "uVar2") (, ",") (number_literal "0") (, ",") (pointer_expression "&DAT_0008b4fd" (& "&") (identifier "DAT_0008b4fd")) (, ",") (number_literal "0x79") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (pointer_expression "&DAT_0008b501" (& "&") (identifier "DAT_0008b501")) (, ",") (number_literal "0x6e") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "FUN_00031580(uVar1);" (call_expression "FUN_00031580(uVar1)" (identifier "FUN_00031580") (argument_list "(uVar1)" (( "(") (identifier "uVar1") () ")"))) (; ";")) (return_statement "return iVar5 != 0;" (return "return") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) (; ";")) (} "}")))

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

int function_1(void *frontend,char *algname,char *betteralgs,type_1 *callback,void *ctx)

{
  char *msg;
  int var_8;
  type_2 uVar2;
  void *pvVar3;
  type_3 *parentwin;
  
  msg = var_1("The first host key type we have stored for this server\nis %s, which is below the configured warning threshold.\nThe server also provides the following types of host key\nabove the threshold, which we do not have stored:\n%s\nContinue with connection?"
                  ,algname,betteralgs);
  var_8 = var_2("is ecdsa-nistp521, which is below the configured warning threshold.");
  uVar2 = var_3();
  pvVar3 = var_4();
  parentwin = (type_3 *)var_5(pvVar3,uVar2);
  var_8 = var_6(parentwin,"PuTTY Security Alert",msg,var_8,0,0x8b4fd,0x79,0,1,0x8b501,0x6e,0,0,
                     0);
  var_7(msg);
  return (uint)(var_8 != 0);
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content)) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (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))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (identifier) (identifier) (number_literal) (pointer_expression argument: (identifier)) (number_literal) (number_literal) (number_literal) (pointer_expression argument: (identifier)) (number_literal) (number_literal) (number_literal) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (return_statement (binary_expression left: (identifier) right: (number_literal))))))

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

bool MASKED(undefined4 param_1,undefined4 param_2,undefined4 param_3)

{
  undefined4 uVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  int iVar5;
  
  uVar1 = FUN_000306f0("The first host key type we have stored for this server\nis %s, which is below the configured warning threshold.\nThe server also provides the following types of host key\nabove the threshold, which we do not have stored:\n%s\nContinue with connection?"
                       ,param_2,param_3);
  uVar2 = FUN_00066b00("is ecdsa-nistp521, which is below the configured warning threshold.");
  uVar3 = gtk_widget_get_type();
  uVar4 = FUN_00068560(param_1);
  uVar3 = g_type_check_instance_cast(uVar4,uVar3);
  iVar5 = FUN_0005d520(uVar3,"PuTTY Security Alert",uVar1,uVar2,0,&DAT_0008b4fd,0x79,0,1,
                       &DAT_0008b501,0x6e,0,0,0);
  FUN_00031580(uVar1);
  return iVar5 != 0;
}

