============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined py_DNS_RPC_SERVER_INFO_LONGHORN_set_dwDsPollingInterval() PUSH RBP MOV RBP,RSI PUSH RBX SUB RSP,0x8 CALL .plt:::_pytalloc_get_ptr ;undefined _pytalloc_get_ptr() TEST RBP,RBP JZ LAB_00119dc7 MOV RBX,RAX MOV RAX,qword ptr [RBP + 0x8] TEST byte ptr [RAX + 0xab],0x1 JZ LAB_00119d70 MOV RDI,RBP CALL .plt:::PyLong_AsUnsignedLongLong ;undefined PyLong_AsUnsignedLongLong() MOV RBP,RAX CALL .plt:::PyErr_Occurred ;undefined PyErr_Occurred() TEST RAX,RAX JNZ LAB_00119d68 MOV ECX,0xffffffff CMP RBP,RCX JA LAB_00119d9a MOV dword ptr [RBX + 0xc4],EBP XOR EAX,EAX LAB_00119d5e: ADD RSP,0x8 POP RBX POP RBP RET ?? 0Fh ?? 1Fh ?? 00h LAB_00119d68: MOV EAX,0xffffffff JMP LAB_00119d5e ?? 90h LAB_00119d70: MOV RAX,qword ptr [->PyLong_Type] ;= 00185210 LEA RSI,[.rodata:s_Expected_type_%s_0016031b] ;= "Expected type %s" MOV RDX,qword ptr [RAX + offset EXTERNAL:::ndr_push_DNS_RPC_SERVER_INFO_LONGHORN >>16] ;=?? MOV RAX,qword ptr [->PyExc_TypeError] ;= 001850d0 MOV RDI,qword ptr [RAX]=>EXTERNAL:PyExc_TypeError ;=?? XOR EAX,EAX CALL .plt:::PyErr_Format ;undefined PyErr_Format() MOV EAX,0xffffffff JMP LAB_00119d5e LAB_00119d9a: MOV RAX,qword ptr [->PyLong_Type] ;= 00185210 MOV R8,RBP LEA RSI,[.rodata:s_Expected_type_%s_within_range_0_-_001521b0] ;= "Expected type %s within range 0 -... MOV RDX,qword ptr [RAX + offset EXTERNAL:::ndr_push_DNS_RPC_SERVER_INFO_LONGHORN >>16] ;=?? MOV RAX,qword ptr [->PyExc_OverflowError] ;= 00185238 MOV RDI,qword ptr [RAX]=>EXTERNAL:PyExc_OverflowError ;=?? XOR EAX,EAX CALL .plt:::PyErr_Format ;undefined PyErr_Format() MOV EAX,0xffffffff JMP LAB_00119d5e LAB_00119dc7: MOV RAX,qword ptr [->PyExc_AttributeError] ;= 00185260 LEA RSI,[.rodata:s_Cannot_delete_NDR_object:_struct_001539e0] ;= "Cannot delete NDR object: struct... MOV RDI,qword ptr [RAX]=>EXTERNAL:PyExc_AttributeError ;=?? XOR EAX,EAX CALL .plt:::PyErr_Format ;undefined PyErr_Format() MOV EAX,0xffffffff JMP LAB_00119d5e ?? 0Fh Actual src: static int py_DNS_RPC_SERVER_INFO_LONGHORN_set_dwDsPollingInterval(PyObject *py_obj, PyObject *value, void *closure) { struct DNS_RPC_SERVER_INFO_LONGHORN *object = (struct DNS_RPC_SERVER_INFO_LONGHORN *)pytalloc_get_ptr(py_obj); if (value == NULL) { PyErr_Format(PyExc_AttributeError, "Cannot delete NDR object: struct object->dwDsPollingInterval"); return -1; } { const unsigned long long uint_max = ndr_sizeof2uintmax(sizeof(object->dwDsPollingInterval)); if (PyLong_Check(value)) { unsigned long long test_var; test_var = PyLong_AsUnsignedLongLong(value); if (PyErr_Occurred()!= NULL) { return -1; } if (test_var > uint_max) { PyErr_Format(PyExc_OverflowError, "Expected type %s within range 0 - %llu, got %llu",\ PyLong_Type.tp_name, uint_max, test_var); return -1; } object->dwDsPollingInterval = test_var; } else { PyErr_Format(PyExc_TypeError, "Expected type %s",\ PyLong_Type.tp_name); return -1; } } return 0; } Predicted src: static int py_DNS_RPC_RPC_ZONE_INFO_INFO_set_dwType(PyObject *py_obj, PyObject *value, void *closure) { struct DNS_RPC_ZONE_INFO_INFO *object = (struct DNS_RPC_ZONE_INFO_INFO *)pytalloc_get_ptr(py_obj); if (value == NULL) { PyErr_Format(PyExc_AttributeError, "Cannot delete NDR object: struct object->dwType"); return -1; } { const unsigned long long uint_max = ndr_sizeof2uintmax(sizeof(object->dwType)); if (PyLong_Check(value)) { unsigned long long test_var; test_var = PyLong_AsUnsignedLongLong(value); if (PyErr_Occurred()!= NULL) { return -1; } if (test_var > uint_max) { PyErr_Format(PyExc_OverflowError, "Expected type %s within range 0 - %llu, got %llu",\ PyLong_Type.tp_name, uint_max, test_var); return -1; } object->dwType = test_var; } else { PyErr_Format(PyExc_TypeError, "Expected type %s",\ PyLong_Type.tp_name); return -1; } } return 0; } ============================== Sample 2 ============================== 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 gboolean gimp_tool_key_press (GimpTool *tool, GimpTool *tool) { GimpTool *tool = GIMP_TOOL (tool); if (tool->event) { GimpTool *tool = GIMP_TOOL (tool->event); if (tool->event) { gimp_tool_key_press (tool); return TRUE; } } return FALSE; } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* Gui::Dragable::isValidDragPosition(QPoint const&) const * ;************************************************************************************************************************************************************ ;undefined isValidDragPosition(QPoint * param_1) ;param_1 QPoint * RDI MOV EAX,0x1 RET ?? 66h f Actual src: bool Dragable::isValidDragPosition(const QPoint& p) const { Q_UNUSED(p) return true; } Predicted src: bool Qt::PositionPositionPosition(const QModelIndex &index) const { return true; } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined test_cancel_transfer() ;local_10 undefined8 -10 ;local_14 undefined1 -14 ;local_20 undefined8 -20 ;local_58 undefined1[10] -58 PUSH RBX XOR ESI,ESI MOV RBX,RDI XOR ECX,ECX XOR EDX,EDX SUB RSP,0x20 MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_10+0x28],RAX XOR EAX,EAX CALL create_file_transfer_channel ;undefined create_file_transfer_chann... MOV RDI,qword ptr [RBX + 0x38] LEA RSI=>local_14,[RSP + 0x14] CALL .plt:::tp_file_transfer_channel_get_state ;undefined tp_file_transfer_channel_g... CMP EAX,0x1 JZ LAB_0010780a SUB RSP,0x8 MOV EAX,EAX LEA R9,[.rodata:DAT_0010e177] ;= 3Dh = XOR EDI,EDI PUSH 0x69 LEA R8,[.rodata:s_tp_file_transfer_channel_get_sta_0010e220] ;= "tp_file_transfer_channel_get_stat... MOV RDX,-0x8000000000000000 LEA RCX,[.rodata:__func__.12] ;= "test_cancel_transfer" PUSH 0x3fff LEA RSI,[.rodata:s_file-transfer-channel.c_0010e02e] ;= "file-transfer-channel.c" PUSH RDX MOV EDX,0x1f1 MOV qword ptr [RSP + local_20+0x48],RAX FILD qword ptr [RSP + local_20+0x48] SUB RSP,0x10 FSTP tword ptr [RSP]=>local_58 CALL .plt:::g_assertion_message_cmpnum ;undefined g_assertion_message_cmpnum() ADD RSP,0x30 LAB_0010780a: MOV RAX,qword ptr [RSP + local_10+0x28] SUB RAX,qword ptr FS:[0x28] JNZ LAB_00107820 ADD RSP,0x20 POP RBX RET LAB_00107820: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() NOP dword ptr CS:[RAX + RAX*0x1] Actual src: static void test_cancel_transfer (Test *test, gconstpointer data G_GNUC_UNUSED) { TpFileTransferStateChangeReason reason; create_file_transfer_channel (test, FALSE, TP_SOCKET_ADDRESS_TYPE_UNIX, TP_SOCKET_ACCESS_CONTROL_LOCALHOST); g_assert_cmpuint (tp_file_transfer_channel_get_state (test->channel, &reason), ==, TP_FILE_TRANSFER_STATE_PENDING); } Predicted src: static void test_channel_channel_channel_test_channel_state (gpointer user_data) { TpChannelChannel *channel = user_data; gboolean ret = FALSE; g_assert_cmpint (channel->channel_channel, G_TYPE_STRING, NULL); g_assert_cmpint (channel->channel_state, G_TYPE_STRING, NULL); g_assert_cmpint (channel->channel_state, G_TYPE_STRING, NULL); g_assert_cmpint (channel->channel_state, G_TYPE_STRING, NULL); } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined crashhandlerOptionsInitDisplay() ;local_1c undefined4 -1c PUSH R12 MOV EDI,0x1 MOV R12,RSI MOV ESI,0x1a8 PUSH RBP SUB RSP,0x18 CALL .plt:::calloc ;void * calloc(size_t __nmemb, size_t... TEST RAX,RAX JZ LAB_00102aa8 MOV RDI,R12 MOV RBP,RAX CALL .plt:allocateScreenPrivateIndex ;undefined allocateScreenPrivateIndex() MOV dword ptr [RBP],EAX TEST EAX,EAX JS LAB_00102a78 MOVSXD RDX,dword ptr [.bss:CrashhandlerOptionsDisplayPrivateIndex] ;=?? MOV RAX,qword ptr [R12 + 0x8] MOV RDI,R12 LEA RCX,[RBP + 0x8] MOV R8D,0x4 LEA RSI,[.bss:crashhandlerOptionsMetadata] ;=?? MOV qword ptr [RAX + RDX*0x8],RBP LEA RDX,[.data.rel.ro:crashhandlerOptionsDisplayOptionInfo] CALL .plt:compInitDisplayOptionsFromMetadata ;undefined compInitDisplayOptionsFrom... TEST EAX,EAX JZ LAB_00102a90 MOV EAX,0x1 LAB_00102a6d: ADD RSP,0x18 POP RBP POP R12 RET ?? 0Fh ?? 1Fh ?? 00h LAB_00102a78: MOV RDI,RBP CALL .plt:::free ;void free(void * __ptr) ADD RSP,0x18 XOR EAX,EAX POP RBP POP R12 RET ?? 66h f ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_00102a90: MOV RDI,RBP MOV dword ptr [RSP + local_1c+0x28],EAX CALL .plt:::free ;void free(void * __ptr) MOV EAX,dword ptr [RSP + local_1c+0x28] ADD RSP,0x18 POP RBP POP R12 RET LAB_00102aa8: XOR EAX,EAX JMP LAB_00102a6d ?? 0Fh Actual src: static Bool crashhandlerOptionsInitDisplay (CompPlugin *p, CompDisplay *d) { CrashhandlerOptionsDisplay *od; od = calloc (1, sizeof(CrashhandlerOptionsDisplay)); if (!od) return FALSE; od->screenPrivateIndex = allocateScreenPrivateIndex(d); if (od->screenPrivateIndex < 0) { free(od); return FALSE; } d->base.privates[CrashhandlerOptionsDisplayPrivateIndex].ptr = od; if (!compInitDisplayOptionsFromMetadata (d, &crashhandlerOptionsMetadata, crashhandlerOptionsDisplayOptionInfo, od->opt, CrashhandlerDisplayOptionNum)) { free (od); return FALSE; } return TRUE; } Predicted src: static Bool freeScreenOptions (CompPlugin *p, CompDisplay *d) { int i; for (i = 0; i < 3; i++) { freeDisplayPrivateIndex (d, od->opt[i].value); free (d); return FALSE; } return TRUE; }