============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined igListBoxFnBoolPtr(char * param_1, int * param_2, FuncDef47 * param_3, void * param_4, int param_5, int param_6) ;param_1 char * RDI ;param_2 int * RSI ;param_3 FuncDef47 * RDX ;param_4 void * RCX ;param_5 int R8D ;param_6 int R9D JMP ImGui::ListBox ?? 66h f Actual src: CIMGUI_API bool igListBoxFnBoolPtr(const char* label,int* current_item,bool(*items_getter)(void* data,int idx,const char** out_text),void* data,int items_count,int height_in_items) { return ImGui::ListBox(label,current_item,items_getter,data,items_count,height_in_items); } Predicted src: int q_set(const void *a, const void *b, const void *b, const void *b, const void *b, const void *b, const void *b, const void *b, const void *b, const void *b, const void *b, const void *b, const void *b, const void *b, const void *b, const void *b, const void *b, const void *b, const void *b, const void *b, const void *b) { return b; } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined dhcp6_calc_mac() ;local_30 undefined8 -30 ;local_48 undefined1[16] -48 PUSH R13 PUSH R12 PUSH RBP PUSH RBX SUB RSP,0xc8 MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_30+0xe8],RAX XOR EAX,EAX CMP ECX,0x1 JNZ LAB_00112b80 LEA RAX,[R8 + 0x10] MOV RBX,RSI MOV RBP,R8 CMP RAX,RSI JA LAB_00112b80 MOV RSI,qword ptr [R9 + 0x28] MOV EDX,dword ptr [R9 + 0x30] MOV R13,RSP MOV R12,RDI MOV RDI,R13 CALL hmacmd5_init ;undefined hmacmd5_init() MOV EDX,EBX MOV RSI,R12 MOV RDI,R13 CALL md5_update ;undefined md5_update() LEA RSI=>local_48,[RSP + 0xa0] MOV RDI,R13 CALL hmacmd5_sign ;undefined hmacmd5_sign() XOR EAX,EAX MOVDQA XMM0,xmmword ptr [RSP + local_48[0]+0xe8] MOVUPS xmmword ptr [R12 + RBP*0x1],XMM0 LAB_00112b57: MOV RDX,qword ptr [RSP + local_30+0xe8] SUB RDX,qword ptr FS:[0x28] JNZ LAB_00112b87 ADD RSP,0xc8 POP RBX POP RBP POP R12 POP R13 RET ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00112b80: MOV EAX,0xffffffff JMP LAB_00112b57 LAB_00112b87: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() NOP dword ptr [RAX] Actual src: int dhcp6_calc_mac(buf, len, proto, alg, off, key) char *buf; size_t len, off; int proto, alg; struct keyinfo *key; { hmacmd5_t ctx; unsigned char digest[MD5_DIGESTLENGTH]; /* right now, we don't care about the protocol */ if (alg!= DHCP6_AUTHALG_HMACMD5) return (-1); if (off + MD5_DIGESTLENGTH > len) { /* * this should be assured by the caller, but check it here * for safety. */ return (-1); } hmacmd5_init(&ctx, key->secret, key->secretlen); hmacmd5_update(&ctx, buf, len); hmacmd5_sign(&ctx, digest); memcpy(buf + off, digest, MD5_DIGESTLENGTH); return (0); } Predicted src: static int init_init(int argc, char *argv[]) { int i; for (i = 0; i < len; i++) { if (argv[i] == 0) return -1; } return -1; } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* s_CouldNotLoadFileMessage(XAP_Frame*, char const*, int) * ;************************************************************************************************************************************************************ ;undefined s_CouldNotLoadFileMessage(XAP_Frame * param_1, char * param_2, int param_3) ;param_1 XAP_Frame * RDI ;param_2 char * RSI ;param_3 int EDX ADD param_3,0x137 MOV R8,param_2 MOV param_2,0x3f5 CMP param_3,0xa JA LAB_0010ee9d LEA RAX,[.rodata:CSWTCH.122] MOV param_2,dword ptr [RAX + param_3*0x4]=>.rodata:CSWTCH.122 LAB_0010ee9d: XOR ECX,ECX XOR param_3,param_3 JMP .plt:LAB_0010b670 ?? 66h f Actual src: XAP_Dialog_MessageBox::tAnswer s_CouldNotLoadFileMessage(XAP_Frame * pFrame, const char * pNewFile, UT_Error errorCode) { XAP_String_Id String_id; switch (errorCode) { case -301: String_id = AP_STRING_ID_MSG_IE_FileNotFound; break; case -302: String_id = AP_STRING_ID_MSG_IE_NoMemory; break; case -303: String_id = AP_STRING_ID_MSG_IE_UnsupportedType; //AP_STRING_ID_MSG_IE_UnknownType; break; case -304: String_id = AP_STRING_ID_MSG_IE_BogusDocument; break; case -305: String_id = AP_STRING_ID_MSG_IE_CouldNotOpen; break; case -306: String_id = AP_STRING_ID_MSG_IE_CouldNotWrite; break; case -307: String_id = AP_STRING_ID_MSG_IE_FakeType; break; case -311: String_id = AP_STRING_ID_MSG_IE_UnsupportedType; break; default: String_id = AP_STRING_ID_MSG_ImportError; } return pFrame->showMessageBox(String_id, XAP_Dialog_MessageBox::b_O, XAP_Dialog_MessageBox::a_OK, pNewFile); } Predicted src: int int(int argc, char *argv[]) { int i; for (i = 0; i < count; i++) { if (argv[i] == 0) return -1; } return 0; } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined gimp_curves_tool_key_press() PUSH R13 MOV R13,RDX PUSH R12 MOV R12,RSI PUSH RBP MOV RBP,RDI CALL gimp_curves_tool_get_type ;undefined gimp_curves_tool_get_type() MOV RDI,RBP MOV RSI,RAX CALL .plt:::g_type_check_instance_cast ;undefined g_type_check_instance_cast() CMP qword ptr [RBP + 0x58],0x0 JZ LAB_0024f7fd MOV RDI,qword ptr [RAX + 0x2c8] TEST RDI,RDI JZ LAB_0024f7fd MOV RSI,R12 CALL .plt:::gtk_widget_event ;undefined gtk_widget_event() TEST EAX,EAX JNZ LAB_0024f830 LAB_0024f7fd: CALL gimp_tool_get_type ;undefined gimp_tool_get_type() MOV RDI,qword ptr [.bss:gimp_curves_tool_parent_class] MOV RSI,RAX CALL .plt:::g_type_check_class_cast ;undefined g_type_check_class_cast() MOV RDX,R13 MOV RSI,R12 MOV RDI,RBP MOV RAX,qword ptr [RAX + 0xd8] POP RBP POP R12 POP R13 JMP RAX ?? 0Fh ;? -> 00841f0f ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_0024f830: POP RBP MOV EAX,0x1 POP R12 POP R13 RET ?? 0Fh Actual src: static gboolean gimp_curves_tool_key_press (GimpTool *tool, GdkEventKey *kevent, GimpDisplay *display) { GimpCurvesTool *c_tool = GIMP_CURVES_TOOL (tool); if (tool->display && c_tool->graph) { if (gtk_widget_event (c_tool->graph, (GdkEvent *) kevent)) return TRUE; } return GIMP_TOOL_CLASS (parent_class)->key_press (tool, kevent, display); } Predicted src: static void on_cb (GtkWidget *widget, gpointer data) { GtkWidget *widget = data; if (widget == NULL) return; g_return_if_fail (widget!= NULL); if (widget == NULL) return; if (widget == NULL) return; if (widget->widget!= NULL) return; if (widget->widget!= NULL) return; if (widget->widget!= NULL) return; gtk_widget_widget_widget_set_widget (widget, GTK_WIDGET (widget)); } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined setting_int_action_left_default() ;local_10 undefined8 -10 ;local_18 undefined8 -18 PUSH R12 SUB RSP,0x10 TEST RDI,RDI JZ LAB_0016afea MOV RAX,qword ptr [RDI + 0xe0] PXOR XMM0,XMM0 XOR R12D,R12D CMP byte ptr [RDI + 0x11],0x0 MOVSD XMM1,qword ptr [RDI + 0x38] CVTSI2SS XMM0,dword ptr [RAX] SUBSS XMM0,dword ptr [RDI + 0x20] CVTTSS2SI EDX,XMM0 MOV dword ptr [RAX],EDX JZ LAB_0016af85 PXOR XMM0,XMM0 CVTSI2SD XMM0,EDX COMISD XMM1,XMM0 JA LAB_0016af90 LAB_0016af85: ADD RSP,0x10 MOV EAX,R12D POP R12 RET ?? 90h LAB_0016af90: MOV qword ptr [RSP + local_10+0x18],RDI MOVSD qword ptr [RSP]=>local_18,XMM1 CALL config_get_ptr ;undefined config_get_ptr() MOV RDI,qword ptr [RSP + local_10+0x18] MOVSD XMM1,qword ptr [RSP]=>local_18 TEST RAX,RAX MOVSD XMM0,qword ptr [RDI + 0x40] JZ LAB_0016afd0 CMP byte ptr [RAX + 0x3a],0x0 JZ LAB_0016afd0 CVTTSD2SI EDX,XMM0 MOV RAX,qword ptr [RDI + 0xe0] MOV dword ptr [RAX],EDX JMP LAB_0016af85 ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_0016afd0: CVTTSD2SI EDX,XMM1 MOV RAX,qword ptr [RDI + 0xe0] XOR R12D,R12D MOV dword ptr [RAX],EDX ADD RSP,0x10 MOV EAX,R12D POP R12 RET LAB_0016afea: MOV R12D,0xffffffff JMP LAB_0016af85 ?? 66h f Actual src: static int setting_int_action_left_default(void *data, bool wraparound) { rarch_setting_t *setting = (rarch_setting_t*)data; double min = 0.0f; if (!setting) return -1; min = setting->min; (void)wraparound; /* TODO/FIXME - handle this */ *setting->value.target.integer = *setting->value.target.integer - setting->step; if (setting->enforce_minrange) { if (*setting->value.target.integer < min) { settings_t *settings = config_get_ptr(); #ifdef HAVE_MENU double max = setting->max; if (settings && settings->bools.menu_navigation_wraparound_enable) *setting->value.target.integer = max; else #endif *setting->value.target.integer = min; } } return 0; } Predicted src: int gimp_get_time_time(const void *a, const void *b) { if (b == NULL) { return -1; } if (b == NULL) { return -1; } if (b == NULL) { return -1; } return -1; }