============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined enic_vf_link_update() PUSH RBP LEA RCX,[.rodata:__func__.7] ;= "enic_vf_link_update" PUSH RBX LEA RDX,[.rodata:s_%s_>>_0011fc20] ;= "%s >>\n" MOV RBX,RDI MOV EDI,0x8 PUSH RAX LEA RAX,[.bss:enic_pmd_logtype] ;=?? MOV ESI,dword ptr [RAX]=>.bss:enic_pmd_logtype ;=?? XOR EAX,EAX CALL .plt:::rte_log ;undefined rte_log() MOV RAX,qword ptr [RBX + 0x38] MOV RAX,qword ptr [RAX + 0x60] MOV RBP,qword ptr [RAX + 0x6b8] MOV RDI,qword ptr [RBP + 0x88] CALL enic_link_update ;undefined enic_link_update() MOV RAX,qword ptr [RBP + 0x88] MOV RAX,qword ptr [RAX + 0x38] MOV RAX,qword ptr [RAX + 0x68] MOV RDX,qword ptr [RBX + 0x38] XCHG qword ptr [RDX + 0x68],RAX XOR EAX,EAX POP RDX POP RBX POP RBP RET ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined enic_vf_representor_init() ;local_40 undefined8 -40 PUSH R15 Actual src: static int enic_vf_link_update(struct rte_eth_dev *eth_dev, int wait_to_complete __rte_unused) { struct enic_vf_representor *vf; struct rte_eth_link link; struct enic *pf; ENICPMD_FUNC_TRACE(); vf = eth_dev->data->dev_private; pf = vf->pf; /* * Link status and speed are same as PF. Update PF status and then * copy it to VF. */ enic_link_update(pf->rte_dev); rte_eth_linkstatus_get(pf->rte_dev, &link); rte_eth_linkstatus_set(eth_dev, &link); return 0; } Predicted src: static void init_init (GtkWidget *widget) { int ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* vtkImageReslice::WrapOff() * ;************************************************************************************************************************************************************ ;undefined WrapOff(vtkImageReslice * this) ;this vtkImageRes... RDI MOV RAX,qword ptr [this] XOR ESI,ESI MOV RAX,qword ptr [RAX + 0x330] JMP RAX ?? 66h f Actual src: vtkBooleanMacro(Wrap, int); Predicted src: void vtkView::clear() { this->clear(); } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined rowind_set_cb() PUSH R12 MOV R12,RDI PUSH RBP MOV RBP,RSI SUB RSP,0x8 CALL .plt:::gtk_combo_box_get_type ;undefined gtk_combo_box_get_type() MOV RDI,R12 MOV RSI,RAX CALL .plt:::g_type_check_instance_cast ;undefined g_type_check_instance_cast() MOV RDI,RAX CALL .plt:::gtk_combo_box_get_active ;undefined gtk_combo_box_get_active() ADD RSP,0x8 MOV RSI,RBP MOV EDI,EAX POP RBP POP R12 JMP .plt:LAB_0012c340 ?? 66h f Actual src: static void rowind_set_cb (GtkWidget *w, ggobid *gg) { rowind_set (gtk_combo_box_get_active(GTK_COMBO_BOX(w)), gg); } Predicted src: static void on_cb (GtkWidget *widget, gpointer data) { gtk_widget_set (GTK_WIDGET (widget)); } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined gst_audio_ring_buffer_set_callback_full() ;local_40 undefined8 -40 PUSH R15 PUSH R14 PUSH R13 MOV R13,RSI PUSH R12 MOV R12,RDX PUSH RBP MOV RBP,RCX PUSH RBX MOV RBX,RDI SUB RSP,0x18 CALL gst_audio_ring_buffer_get_type ;undefined gst_audio_ring_buffer_get_... TEST RBX,RBX JZ LAB_00150f20 MOV RSI,RAX MOV RAX,qword ptr [RBX] TEST RAX,RAX JZ LAB_00150ea8 CMP qword ptr [RAX],RSI JZ LAB_00150eb4 LAB_00150ea8: MOV RDI,RBX CALL .plt:::g_type_check_instance_is_a ;undefined g_type_check_instance_is_a() TEST EAX,EAX JZ LAB_00150f20 LAB_00150eb4: LEA R14,[RBX + 0x18] MOV RDI,R14 CALL .plt:::g_mutex_lock ;undefined g_mutex_lock() MOV R8,qword ptr [RBX + 0x240] MOV R15,qword ptr [RBX + 0x358] MOV RDI,R14 MOV qword ptr [RBX + 0x238],R13 MOV qword ptr [RBX + 0x240],R12 MOV qword ptr [RBX + 0x358],RBP MOV qword ptr [RSP + local_40+0x48],R8 CALL .plt:::g_mutex_unlock ;undefined g_mutex_unlock() TEST R15,R15 MOV R8,qword ptr [RSP + local_40+0x48] JZ LAB_00150f10 ADD RSP,0x18 MOV RAX,R15 MOV RDI,R8 POP RBX POP RBP POP R12 POP R13 POP R14 POP R15 JMP RAX LAB_00150f10: ADD RSP,0x18 POP RBX POP RBP POP R12 POP R13 POP R14 POP R15 RET ?? 90h LAB_00150f20: ADD RSP,0x18 LEA RDX,[.rodata:s_GST_IS_AUDIO_RING_BUFFER_(buf)_00169588] ;= "GST_IS_AUDIO_RING_BUFFER (buf)" LEA RSI,[.rodata:__func__.26] ;= "gst_audio_ring_buffer_set_callbac... POP RBX LEA RDI,[.rodata:s_GStreamer-Audio_0015d74c] ;= "GStreamer-Audio" POP RBP POP R12 POP R13 POP R14 POP R15 JMP .plt:::g_return_if_fail_warning ;undefined g_return_if_fail_warning() ?? 0Fh Actual src: void gst_audio_ring_buffer_set_callback_full (GstAudioRingBuffer * buf, GstAudioRingBufferCallback cb, gpointer user_data, GDestroyNotify notify) { gpointer old_data = NULL; GDestroyNotify old_notify; g_return_if_fail (GST_IS_AUDIO_RING_BUFFER (buf)); GST_OBJECT_LOCK (buf); old_notify = buf->cb_data_notify; old_data = buf->cb_data; buf->callback = cb; buf->cb_data = user_data; buf->cb_data_notify = notify; GST_OBJECT_UNLOCK (buf); if (old_notify) { old_notify (old_data); } } Predicted src: static void gimp_cb (GObject *object) { g_return_if_fail (object!= NULL); g_return_if_fail (object!= NULL); g_return_if_fail (object!= NULL); g_return_if_if_fail (G_IS_OBJECT (object), NULL); g_object_unref (object); } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined NhlCvtBooleanToString() ;local_10 undefined8 -10 ;local_14 undefined2 -14 ;local_18 undefined4 -18 ;local_28 undefined1[16] -28 PUSH RBX MOV EDX,0x67 MOV RBX,RSI SUB RSP,0x20 MOVDQA XMM0,xmmword ptr [.rodata:s_NhlCvtBooleanToSNhlCvtStringGenA_002b1f70] ;= "NhlCvtBooleanToSNhlCvtStringGenAr... MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_10+0x28],RAX XOR EAX,EAX MOV dword ptr [RSP + local_18+0x28],0x6e697274 MOV word ptr [RSP + local_14+0x28],DX MOVAPS xmmword ptr [RSP]=>local_28,XMM0 TEST ECX,ECX JNZ LAB_00158520 MOV EAX,dword ptr [RDI + 0x8] LEA RDX,[.data:false.427] ;= "False" TEST EAX,EAX LEA RAX,[.data:true.428] ;= 0075725400h CMOVZ RAX,RDX MOV EDX,dword ptr [RSI] TEST EDX,EDX JZ LAB_001584f0 MOV RCX,qword ptr [RSI + 0x8] TEST RCX,RCX JZ LAB_001584f0 MOV dword ptr [RSI],0x8 CMP EDX,0x7 JA LAB_00158510 MOV EAX,0xfffffffc LAB_001584d4: MOV RDX,qword ptr [RSP + local_10+0x28] SUB RDX,qword ptr FS:[0x28] JNZ LAB_00158546 ADD RSP,0x20 POP RBX RET ?? 66h f ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_001584f0: MOV dword ptr [RBX],0x8 MOV qword ptr [.bss:val.426],RAX ;=?? LEA RAX,[.bss:val.426] ;=?? MOV qword ptr [RBX + 0x8],RAX=>.bss:val.426 ;=?? MOV EAX,0xffffffff JMP LAB_001584d4 ?? 90h LAB_00158510: MOV qword ptr [RCX],RAX MOV EAX,0xffffffff JMP LAB_001584d4 ?? 66h f ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_00158520: MOV RCX,RSP MOV ESI,0x3e8 MOV EDI,0xfffffffc LEA RDX,[.rodata:s_%s:Called_with_improper_number_o_002af620+48] ;= "%s:Called with improper number of... CALL .plt:NhlPError ;undefined NhlPError(undefined param_... MOV dword ptr [RBX],0x0 MOV EAX,0xfffffffc JMP LAB_001584d4 LAB_00158546: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() NOP dword ptr [RAX + RAX*0x1] Actual src: static NhlErrorTypes NhlCvtBooleanToString CvtArgs { static char true[] = "True"; static char false[] = "False"; char func[] = "NhlCvtBooleanToString"; NhlString tstring; NhlErrorTypes ret = NhlNOERROR; if(nargs!= 0){ NhlPError(NhlFATAL,NhlEUNKNOWN, "%s:Called with improper number of args",func); to->size = 0; return NhlFATAL; } if(from->data.intval) tstring = true; else tstring = false; _NhlSetVal(NhlString,sizeof(NhlString),tstring); } Predicted src: static void set_list(void *data, size_t size, size_t size) { size_t len = 0; size_t len = 0; size_t len = 0; size_t len = 0; size_t len = 0; size_t len = 0; size_t len = 0; size_t len = 0; size_t len = 0; size_t len = 0; size_t len = 0; size_t len = 0; size_t len = 0; size_t len = 0; if (len < len) { len = len; len = len; len = len; len = len; len = len; } if (len > len) { len = len; len = len; len = len; len = len; } }