============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined L12add_form_to_node_list() ;local_20 undefined8 -20 PUSH R12 MOV R12,RDI PUSH RBP MOV RBP,RSI PUSH RBX SUB RSP,0x10 MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_20+0x28],RAX XOR EAX,EAX CALL .plt:::ecl_process_env ;undefined ecl_process_env() MOV RBX,RAX MOV RAX,RSP CMP qword ptr [RBX + 0x2e8],RAX JNC LAB_00129998 LAB_00129942: MOV RAX,qword ptr [.bss:VV] ;=?? MOV RDI,RBX MOV RSI,qword ptr [RAX + 0x218] CALL .plt:::ecl_function_dispatch ;undefined ecl_function_dispatch() MOV RSI,R12 MOV EDI,0x1 MOV R8,RAX XOR EAX,EAX CALL R8 MOV RSI,RBP MOV RDI,RAX CALL .plt:::ecl_cons ;undefined ecl_cons() MOV qword ptr [RBX + 0x8],0x1 MOV RDX,qword ptr [RSP + local_20+0x28] SUB RDX,qword ptr FS:[0x28] JNZ LAB_0012999f ADD RSP,0x10 POP RBX POP RBP POP R12 RET ?? 0Fh ?? 1Fh ?? 40h @ ?? 00h LAB_00129998: CALL .plt:::ecl_cs_overflow ;undefined ecl_cs_overflow() JMP LAB_00129942 LAB_0012999f: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() NOP dword ptr CS:[RAX + RAX*0x1] Actual src: static cl_object L12add_form_to_node_list(cl_object v1form, cl_object v2list) { cl_object T0; cl_object env0 = ECL_NIL; const cl_env_ptr cl_env_copy = ecl_process_env(); cl_object value0; ecl_cs_check(cl_env_copy,value0); { TTL: T0 = ecl_function_dispatch(cl_env_copy,VV[67])(1, v1form) /* C1FORM-PARENTS */; value0 = CONS(T0,v2list); cl_env_copy->nvalues = 1; return value0; } } Predicted src: static VALUE rb_list_list(VALUE self) { rb_list_list_list_t *list; rb_list_list_t *list; rb_list_list_list_t *list; rb_list_list_list_t *list; rb_list_list_list_t *list; list = rb_list_list_list_list_list_list_list(list, &list, &list, &list, &list); if (list == NULL) { return NULL; } list = rb_list_list_list_list_list_list_list(list); list = rb_list_list_list_list_list_list_list(list); list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list = list; list->list = list; list->list = list; list->list = list; list->list = list; list->list = list; list = list; list->list = list; list->list = list; list->list = list; list->list = list = list; list = list; list->list = list; list->list = list; list = list; list->list = list = list; list = list; list->list = list; list->list = list; list->list = list; list = list; list = list; list = list = list; list = list; list->list = list = list; list->list = list; list = list; list->list = list; list = list; list->list = list; list = list = list; list = list; list = list = list; list = list = list; list->list = list; list = list; list = list; list = list = list; list = list; list = list = list; list = list; list = list; list = list = list; list = list; list = list = list; list = list; list = list = list; list = list; list = list; list = list = list; list = list = list; list = list; list = list; list = list; list = list = list; list = list = list; list = list; list = list; list = list = list; list = list; list = list = list; list; list = list; list = list = list; list = list = list = list; list = list; list = list; list = list; list = list = list = list; list = list; list = list; list = list = list; list = list; list = list = list; list = list = list; list = list = list; list = list; list = list = list; list = list; list = list = list; list = list; list = list; list = list = list; list ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* ResourceManager::downloadLicenseFinished() * ;************************************************************************************************************************************************************ ;undefined downloadLicenseFinished(ResourceManager * this) ;this ResourceMan... RDI LEA RAX,[.bss:ScQApp] ;=?? MOV RDX,this LEA RCX,[.rodata:s_1downloadLicenseFinished()_00f70b32] ;= "1downloadLicenseFinished()" LEA RSI,[.rodata:s_2finished()_00f3e05a] ;= "2finished()" MOV RAX=>.bss:ScQApp,qword ptr [RAX] ;=?? MOV this,qword ptr [RAX + 0x68] JMP .plt:::QObject::disconnect ;undefined disconnect(QObject * param... ?? 66h f Actual src: void ResourceManager::downloadLicenseFinished() { disconnect(ScQApp->dlManager(), SIGNAL(finished()), this, SLOT(downloadLicenseFinished())); } Predicted src: void KisManagerManagerManagerManager::slotManagerManager() { Q_UNUSED(m_class); } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* KoItemToolTip::timerEvent(QTimerEvent*) * ;************************************************************************************************************************************************************ ;undefined timerEvent(KoItemToolTip * this, QTimerEvent * param_1) ;this KoItemToolT... RDI ;param_1 QTimerEvent * RSI MOV RAX,qword ptr [this + 0x30] MOV EAX,dword ptr [RAX + 0x18] CMP dword ptr [param_1 + 0x14],EAX JZ LAB_00190630 RET ?? 0Fh ?? 1Fh ?? 00h LAB_00190630: JMP .plt:::QWidget::hide ;undefined hide(void) ?? 90h Actual src: void KoItemToolTip::timerEvent(QTimerEvent *e) { if (e->timerId() == d->timer.timerId()) { hide(); } } Predicted src: void QEventEvent(QEvent *arg1) { if (arg1 == arg2) return; else if (arg1 == arg2) return; } ============================== 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 gimp_tool_tool_changed (GObject *object) { GtkWidget *widget; GtkWidget *widget; GtkWidget *widget; widget = GTK_WIDGET_CLASS (widget); widget = GTK_WIDGET_CLASS (widget); widget = GTK_WIDGET_CLASS (widget); } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* Digikam::ImportItemModel::camItemInfoRef(QModelIndex const&) const * ;************************************************************************************************************************************************************ ;undefined camItemInfoRef(ImportItemModel * this, QModelIndex * param_1) ;this ImportItemM... RDI ;param_1 QModelIndex * RSI PUSH RBP PUSH RBX SUB RSP,0x8 MOVSXD RBP,dword ptr [param_1] MOV RBX,qword ptr [this + 0x20] TEST EBP,EBP JS LAB_005bc3c0 MOV EAX,dword ptr [param_1 + 0x4] TEST EAX,EAX JS LAB_005bc3c0 CMP qword ptr [param_1 + 0x10],0x0 JZ LAB_005bc3c0 MOV RAX,qword ptr [RBX + 0x8] MOV EDX,dword ptr [RAX + 0xc] SUB EDX,dword ptr [RAX + 0x8] CMP EBP,EDX JGE LAB_005bc3c0 MOV EDX,dword ptr [RAX] CMP EDX,0x1 JBE LAB_005bc3a4 MOV param_1,dword ptr [RAX + 0x4] LEA this,[RBX + 0x8] CALL QList::detach_helper ;undefined detach_helper(int param_1) MOV RAX,qword ptr [RBX + 0x8] LAB_005bc3a4: MOVSXD RDX,dword ptr [RAX + 0x8] ADD RDX,RBP MOV RAX,qword ptr [RAX + RDX*0x8 + 0x10] ADD RSP,0x8 POP RBX POP RBP RET ?? 66h f ?? 0Fh ;? -> 00841f0f ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_005bc3c0: ADD RSP,0x8 LEA RAX,[RBX + 0x10] POP RBX POP RBP RET ?? 90h Actual src: CamItemInfo& ImportItemModel::camItemInfoRef(const QModelIndex& index) const { if (!d->isValid(index)) { return d->camItemInfo; } return d->infos[index.row()]; } Predicted src: void KisItemItemItemItem::setItem(const QString &item) const { if (item == nullptr) { return; } if (item == nullptr) { return; } else { return; } }