============================== 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 int link_linklink_linklink_linklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklinklin ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined parse_trap2_fmt() SUB RSP,0x8 MOV RDI,RSI CALL .plt:::strdup ;char * strdup(char * __s) MOV RDX,qword ptr [->print_format2] ;= 0010f168 MOV qword ptr [RDX]=>.bss:print_format2,RAX ;=?? ADD RSP,0x8 RET ?? 0Fh Actual src: static void parse_trap2_fmt(const char *token, char *line) { print_format2 = strdup(line); } Predicted src: static void print_format_format (const char *format, const char *format, const char *format) { (void)format; (void)format; (void)format; (void)format; (void)format; (void)format; (void)format; (void)format; (void)format; (void)format; } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* HistogramDockerDock::startUpdateCanvasProjection() * ;************************************************************************************************************************************************************ ;undefined startUpdateCanvasProjection(HistogramDockerDock * this) ;this HistogramDo... RDI MOV RAX,qword ptr [this + 0x28] TEST byte ptr [RAX + 0x9],0x80 JNZ LAB_0010b110 RET ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_0010b110: MOV this,qword ptr [this + 0x48] JMP .plt:LAB_00108030 ?? 90h Actual src: void HistogramDockerDock::startUpdateCanvasProjection() { if (isVisible()) { m_imageIdleWatcher->startCountdown(); } } Predicted src: void SUpdateUpdate::UpdateUpdateUpdateUpdate() { if (m_UpdateUpdate) { m_UpdateUpdateUpdate = false; } } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined f_11826() ;local_30 undefined8 -30 ;local_40 undefined8 -40 ;local_48 undefined8 -48 ;local_50 undefined8 -50 PUSH RBP MOV RBP,RSP PUSH R14 PUSH R13 PUSH R12 MOV R12,RSI PUSH RBX MOV RBX,RDI SUB RSP,0x10 MOV RDX=>EXTERNAL:C_timer_interrupt_counter,qword ptr [->C_timer_interrupt_counter] ;= 001c62a8 ;=?? MOV R14,qword ptr [RSI] MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RBP + local_30+0x8],RAX XOR EAX,EAX MOV R13,qword ptr [RSI + 0x8] MOV RAX,qword ptr [RDX]=>EXTERNAL:C_timer_interrupt_counter ;=?? SUB RAX,0x1 MOV qword ptr [RDX]=>EXTERNAL:C_timer_interrupt_counter,RAX ;=?? TEST RAX,RAX JLE LAB_00149201 LAB_001491a1: MOV RAX,qword ptr [->C_stack_limit] ;= 001c6148 MOV RDX,qword ptr [->C_scratch_usage] ;= 001c6298 MOV RCX,RSP SUB RCX,qword ptr [RAX]=>EXTERNAL:C_stack_limit ;=?? MOV RDX=>EXTERNAL:C_scratch_usage,qword ptr [RDX] ;=?? MOV RAX,RCX XOR ECX,ECX SAR RAX,0x3 CMP RBX,0x2 SETL CL LEA RDX,[RCX + RDX*0x1 + 0x3] CMP RAX,RDX JLE LAB_0014920d SUB RSP,0x20 MOV RDI,qword ptr [R14 + 0x10] MOV RAX,0x300000000000002 LEA RSI=>local_50+0x7,[RSP + 0xf] AND RSI,-0x10 MOV qword ptr [RSI]=>local_50,RAX MOV qword ptr [RSI + local_48+0x50],R13 MOV qword ptr [RSI + local_40+0x50],0xe CALL f_11757 ;undefined f_11757() LAB_00149201: MOV EDI,0xff CALL .plt:::C_raise_interrupt ;undefined C_raise_interrupt() JMP LAB_001491a1 LAB_0014920d: MOV RDX,R12 MOV ESI,EBX LEA RDI,[f_11826] CALL .plt:::C_save_and_reclaim ;undefined C_save_and_reclaim() NOP Actual src: static void C_ccall f_11826(C_word c,C_word *av){ C_word tmp; C_word t0=av[0]; C_word t1=av[1]; C_word t2; C_word *a; C_check_for_interrupt; if(C_unlikely(!C_demand(C_calculate_demand(3,c,1)))){ C_save_and_reclaim((void *)f_11826,c,av);} a=C_alloc(3); t2=((C_word*)t0)[2]; f_11757(t2,C_a_i_list1(&a,1,t1));} Predicted src: static void C_ccall f_111111(C_word c,C_word *av){ C_word tmp; C_word t0=av[0]; C_word t1=av[1]; C_word t2; C_word *a; C_check_for_interrupt; if(C_unlikely(!C_demand(C_calculate_demand(0,c,3)))){ C_save_and_reclaim((void *)f_1111,c,av);} a=C_alloc(3); t2=(*a=C_CLOSURE_TYPE|2,a[1]=(C_word)f_11,a[2]=((C_word*)t0)[2],tmp=(C_word)a,a+=3,tmp); /* scrutinizer.scm: chicken.scm: chicken.compiler.compiler.compiler.compiler.compiler.compiler.compiler.compiler.compiler.compiler.compiler.compiler */ f_11(t2,((C_word*)t0)[3],((C_word*)t0)[3],((C_word*)t0)[3],((C_word*)t0)[4],((C_word*)t0)[4],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[5],((C_word*)t0)[6],((C_word*)t0)[5]);} ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined soup_request_get_type_once() ;local_10 undefined8 -10 ;local_18 undefined8 -18 ;local_20 undefined8 -20 ;local_28 undefined8 -28 PUSH R12 LEA RDI,[.rodata:s_SoupRequest_0017a106] ;= "SoupRequest" SUB RSP,0x20 MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_10+0x28],RAX XOR EAX,EAX CALL .plt:::g_intern_static_string ;undefined g_intern_static_string() SUB RSP,0x8 LEA R9,[soup_request_init] MOV R8D,0x20 PUSH 0x0 MOV EDX,0xc0 MOV RSI,RAX MOV EDI,0x50 LEA RCX,[soup_request_class_intern_init] CALL .plt:::g_type_register_static_simple ;undefined g_type_register_static_sim... MOV ESI,0x10 MOV RDI,RAX MOV R12,RAX CALL .plt:::g_type_add_instance_private ;undefined g_type_add_instance_private() MOV qword ptr [RSP + local_20+0x38],0x0 MOV dword ptr [.bss:SoupRequest_private_offset],EAX ;=?? LEA RAX,[soup_request_initable_interface_init] MOV qword ptr [RSP + local_28+0x38],RAX=>soup_request_initable_interface_init MOV qword ptr [RSP + local_18+0x38],0x0 CALL .plt:::g_initable_get_type ;undefined g_initable_get_type() LEA RDX=>local_28,[RSP + 0x10] MOV RDI,R12 MOV RSI,RAX CALL .plt:::g_type_add_interface_static ;undefined g_type_add_interface_static() POP RAX POP RDX MOV RAX,qword ptr [RSP + local_10+0x28] SUB RAX,qword ptr FS:[0x28] JNZ LAB_0014f153 ADD RSP,0x20 MOV RAX,R12 POP R12 RET LAB_0014f153: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() NOP dword ptr [RAX + RAX*0x1] Actual src: G_DEFINE_TYPE_WITH_CODE (SoupRequest, soup_request, G_TYPE_OBJECT, G_ADD_PRIVATE (SoupRequest) G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE, soup_request_initable_interface_init)) Predicted src: G_DEFINE_TYPE_WITH_CODE (GsdProxy, gsd_request, G_TYPE_OBJECT, G_ADD_PRIVATE (GsdProxy) G_IMPLEMENT_INTERFACE (Gsd_TYPE_MANAGER, gsd_request_iface_init))