============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined gdm_dbus_chooser_skeleton_init() PUSH RBX MOV RBX,RDI MOVSXD RDI,dword ptr [.bss:GdmDBusChooserSkeleton_private_offset] ADD RDI,RBX MOV qword ptr [RBX + 0x20],RDI ADD RDI,0x20 CALL .plt:::g_mutex_init ;undefined g_mutex_init() MOV RBX,qword ptr [RBX + 0x20] CALL .plt:::g_main_context_ref_thread_default ;undefined g_main_context_ref_thread_... MOV qword ptr [RBX + 0x18],RAX POP RBX RET ?? 66h f Actual src: static void gdm_dbus_chooser_skeleton_init (GdmDBusChooserSkeleton *skeleton) { #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 skeleton->priv = gdm_dbus_chooser_skeleton_get_instance_private (skeleton); #else skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, GDM_DBUS_TYPE_CHOOSER_SKELETON, GdmDBusChooserSkeletonPrivate); #endif g_mutex_init (&skeleton->priv->lock); skeleton->priv->context = g_main_context_ref_thread_default (); } Predicted src: static void xdp_dbus_context_skeleton_init (XdpDBusContextSkeleton *skeleton) { #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 skeleton->priv = XDP_dbus_context_skeleton_get_instance_private (skeleton); #else skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, XDP_DBUS_TYPE_SKELETON, XdpDBusContextSkeletonPrivate); #endif g_mutex_init (&skeleton->priv->lock); skeleton->priv->context = g_main_context_ref_thread_default (); } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined akira_widgets_export_widget_get_image_buffer_size_data_free() PUSH RBP MOV RBP,RDI MOV RDI,qword ptr [RDI + 0x20] TEST RDI,RDI JZ LAB_0017763a CALL .plt.got:::g_object_unref ;undefined g_object_unref() MOV qword ptr [RBP + 0x20],0x0 LAB_0017763a: MOV RSI,RBP MOV EDI,0x48 POP RBP JMP .plt:::g_slice_free1 ;undefined g_slice_free1() ?? 0Fh Actual src: static void akira_widgets_export_widget_get_image_buffer_size_data_free (gpointer _data) { AkiraWidgetsExportWidgetGetImageBufferSizeData* _data_; _data_ = _data; _g_object_unref0 (_data_->self); g_slice_free (AkiraWidgetsExportWidgetGetImageBufferSizeData, _data_); } Predicted src: static void akira_widgets_image_widget_image_buffer_widget_data_free (gpointer _data) { akira_widgets_image_widget_image_buffer_data_ = _data; _g_object_unref0 (_data_->self); } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined erts_get_schedulers_binds() PUSH R13 MOV ESI,0x7 PUSH R12 MOV R12,RDI LEA RDI,[.rodata:s_unbound_0043355b] ;= "unbound" PUSH RBP PUSH RBX SUB RSP,0x8 CALL am_atom_put ;undefined am_atom_put() CMP qword ptr [R12 + 0x78],0x0 MOV RBP,RAX MOV RAX,qword ptr [ERTS_LOW_WRITE:erts_no_schedulers] LEA RSI,[RAX + 0x1] JZ LAB_003025d4 MOV RAX,qword ptr [R12 + 0x58] MOV RBX,qword ptr [R12 + 0x50] MOV RDX,qword ptr [ERTS_LOW_WRITE:erts_no_schedulers] SUB RAX,0x18 CMP RBX,RAX LEA RSI,[RDX + 0x1] CMOVNC RAX,RBX SUB RAX,RBX SAR RAX,0x3 CMP RAX,RSI JNC LAB_00302660 LAB_003025d4: XOR EDX,EDX MOV RDI,R12 CALL erts_heap_alloc ;undefined erts_heap_alloc() MOV RDX,qword ptr [ERTS_LOW_WRITE:erts_no_schedulers] MOV RBX,RAX LAB_003025e8: SHL RDX,0x6 LEA R13,[.bss:cpuinfo_rwmtx] LEA R12,[RBX + 0x2] MOV qword ptr [RBX],RDX MOV RDI=>.bss:cpuinfo_rwmtx,R13 CALL ethr_rwmutex_rlock ;undefined ethr_rwmutex_rlock() CMP qword ptr [ERTS_LOW_WRITE:erts_no_schedulers],0x0 MOV EAX,0x1 MOV RSI,qword ptr [.bss:scheduler2cpu_map] JZ LAB_00302645 NOP dword ptr [RAX + RAX*0x1] LAB_00302620: MOVSXD RDX,dword ptr [RSI + RAX*0x8 + 0x4] MOV RCX,RBP TEST EDX,EDX JS LAB_00302634 SHL RDX,0x4 LEA RCX,[RDX + 0xf] LAB_00302634: MOV qword ptr [RBX + RAX*0x8],RCX ADD RAX,0x1 CMP qword ptr [ERTS_LOW_WRITE:erts_no_schedulers],RAX JNC LAB_00302620 LAB_00302645: MOV RDI=>.bss:cpuinfo_rwmtx,R13 CALL ethr_rwmutex_runlock ;undefined ethr_rwmutex_runlock() ADD RSP,0x8 MOV RAX,R12 POP RBX POP RBP POP R12 POP R13 RET ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_00302660: LEA RAX,[RBX + RSI*0x8] MOV qword ptr [R12 + 0x50],RAX JMP LAB_003025e8 ?? 66h f Actual src: Eterm erts_get_schedulers_binds(Process *c_p) { int ix; ERTS_DECL_AM(unbound); Eterm *hp = HAlloc(c_p, erts_no_schedulers+1); Eterm res = make_tuple(hp); *(hp++) = make_arityval(erts_no_schedulers); erts_rwmtx_rlock(&cpuinfo_rwmtx); for (ix = 1; ix <= erts_no_schedulers; ix++) *(hp++) = (scheduler2cpu_map[ix].bound_id >= 0 ? make_small(scheduler2cpu_map[ix].bound_id) : AM_unbound); erts_rwmtx_runlock(&cpuinfo_rwmtx); return res; } Predicted src: static void * r_heap_alloc(void *arg) { struct r_heap *heap = arg; struct r_heap *heap; struct r_heap *heap; heap = r_heap_alloc_heap(); heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; heap->heap = NULL; return(heap); } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined txn_body_cleanup_txn_changes() MOV R8,RDI MOV RCX,qword ptr [RSI + 0x10] MOV RDI,qword ptr [RSI + 0x8] MOV RDX,RSI MOV RSI,qword ptr [R8] JMP .plt:LAB_00109bc0 ?? 66h f Actual src: static svn_error_t * txn_body_cleanup_txn_changes(void *baton, trail_t *trail) { const char *key = *(const char **)baton; return svn_fs_bdb__changes_delete(trail->fs, key, trail, trail->pool); } Predicted src: static void ngx_http_body_cleanup(ngx_pool_t *p, ngx_http_body_t *body) { ngx_http_body_t *body = (ngx_http_body_t *)p->data; ngx_http_body_cleanup(body->body,body->body); } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* UserSerializer::serialize(GenericIO&, GameLogicState&) * ;************************************************************************************************************************************************************ ;undefined serialize(GenericIO * param_1, GameLogicState * param_2) ;param_1 GenericIO * RDI ;param_2 GameLogicSt... RSI JMP doSerializeGameLogicState ?? 66h f Actual src: USER_SERIALIZER_IMPLEMENTATION_HELPER(GameLogicState) Predicted src: void GameGameGameGame::GameGameGameGame(GameGameGameGame&GameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGameGam