============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined device_added() PUSH R13 MOV RDI,RSI PUSH R12 MOV R12,RDX PUSH RBP MOV RBP,RSI CALL .plt:::nm_device_get_iface ;undefined nm_device_get_iface() LEA RSI,[.rodata:s_%s:_device_created_0019389e] ;= "%s: device created\n" LEA RDI,[.rodata:s_NetworkManager_0018910e] ;= "NetworkManager" MOV R13,RAX CALL .plt:::g_dgettext ;undefined g_dgettext() MOV RSI,R13 MOV RDI,RAX XOR EAX,EAX CALL .plt:::g_print ;undefined g_print() MOV RCX,R12 MOV RDI,RBP XOR R9D,R9D ADD dword ptr [R12 + 0x38],0x1 XOR R8D,R8D LEA RDX,[device_state] LEA RSI,[.rodata:s_notify::state_0018b29c] ;= "notify::state" CALL .plt:::g_signal_connect_data ;undefined g_signal_connect_data() MOV RCX,R12 MOV RDI,RBP XOR R9D,R9D POP RBP XOR R8D,R8D POP R12 LEA RDX,[device_ac] LEA RSI,[.rodata:s_notify::active-connection_001938b2] ;= "notify::active-connection" POP R13 JMP .plt:::g_signal_connect_data ;undefined g_signal_connect_data() ?? 90h Actual src: static void device_added(NMClient *client, NMDevice *device, NmCli *nmc) { g_print(_("%s: device created\n"), nm_device_get_iface(device)); device_watch(nmc, NM_DEVICE(device)); } Predicted src: static void g_set_init (void) { g_fail (G_object); } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined _wrap_event_class_create_with_id() ;local_20 undefined8 -20 ;local_30 undefined8 -30 ;local_38 undefined8 -38 ;local_40 undefined8 -40 ;local_48 undefined8 -48 PUSH R12 MOV RDI,RSI MOV ECX,0x2 MOV EDX,0x2 PUSH RBP LEA RSI,[.rodata:s_event_class_create_with_id_0018964f] ;= "event_class_create_with_id" XOR R12D,R12D SUB RSP,0x38 MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_20+0x48],RAX XOR EAX,EAX LEA R8=>local_38,[RSP + 0x10] MOV qword ptr [RSP]=>local_48,0x0 CALL SWIG_Python_UnpackTuple ;undefined SWIG_Python_UnpackTuple() TEST RAX,RAX JZ LAB_00147beb MOV RDI,qword ptr [RSP + local_38+0x48] MOV RDX,qword ptr [.bss:swig_types[1072]] MOV RSI,RSP CALL SWIG_Python_ConvertPtrAndOwn.constprop.0 ;undefined SWIG_Python_ConvertPtrAndO... MOV EDI,EAX TEST EAX,EAX JS LAB_00147c38 MOV RDI,qword ptr [RSP + local_30+0x48] LEA RSI=>local_40,[RSP + 0x8] MOV RBP,qword ptr [RSP]=>local_48 CALL SWIG_AsVal_unsigned_SS_long_SS_long ;undefined SWIG_AsVal_unsigned_SS_lon... MOV EDI,EAX TEST EAX,EAX JS LAB_00147c10 MOV RSI=>local_40,qword ptr [RSP + 0x8] MOV RDI,RBP CALL .plt:::bt_event_class_create_with_id ;undefined bt_event_class_create_with... MOV RSI,qword ptr [.bss:swig_types[256]] MOV RDI,RAX CALL SWIG_Python_NewPointerObj.constprop.0 ;undefined SWIG_Python_NewPointerObj.... MOV R12,RAX LAB_00147beb: MOV RAX,qword ptr [RSP + local_20+0x48] SUB RAX,qword ptr FS:[0x28] JNZ LAB_00147c59 ADD RSP,0x38 MOV RAX,R12 POP RBP POP R12 RET ?? 66h f ?? 2Eh . ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00147c10: CMP EAX,-0x1 MOV EAX,0xfffffffb LEA RSI,[.rodata:s_in_method_'event_class_create_wi_001749a8] ;= "in method 'event_class_create_wit... CMOVZ EDI,EAX CALL SWIG_Python_ErrorType ;undefined SWIG_Python_ErrorType() MOV RDI,RAX CALL .plt:PyErr_SetString ;undefined PyErr_SetString() JMP LAB_00147beb ?? 0Fh ?? 1Fh ?? 80h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00147c38: CMP EAX,-0x1 MOV EAX,0xfffffffb LEA RSI,[.rodata:s_in_method_'event_class_create_wi_00174958] ;= "in method 'event_class_create_wit... CMOVZ EDI,EAX CALL SWIG_Python_ErrorType ;undefined SWIG_Python_ErrorType() MOV RDI,RAX CALL .plt:PyErr_SetString ;undefined PyErr_SetString() JMP LAB_00147beb LAB_00147c59: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() NOP Actual src: SWIGINTERN PyObject *_wrap_event_class_create_with_id(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; bt_stream_class *arg1 = (bt_stream_class *) 0 ; uint64_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; unsigned long long val2 ; int ecode2 = 0 ; PyObject *swig_obj[2] ; bt_event_class *result = 0 ; if (!SWIG_Python_UnpackTuple(args, "event_class_create_with_id", 2, 2, swig_obj)) SWIG_fail; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_bt_stream_class, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "event_class_create_with_id" "', argument " "1"" of type '" "bt_stream_class *""'"); } arg1 = (bt_stream_class *)(argp1); ecode2 = SWIG_AsVal_unsigned_SS_long_SS_long(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "event_class_create_with_id" "', argument " "2"" of type '" "uint64_t""'"); } arg2 = (uint64_t)(val2); result = (bt_event_class *)bt_event_class_create_with_id(arg1,arg2); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_bt_event_class, 0 | 0 ); return resultobj; fail: return NULL; } Predicted src: static int _get_get_init (void) { int i; if (i == 0) { } } if (i == 0) { { { return 0; } } } return 0; } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined pxy_setextattr_value_by_id() MOV EAX,0x2714 RET ?? 66h f Actual src: fsal_status_t pxy_setextattr_value_by_id(struct fsal_obj_handle *obj_hdl, const struct req_op_context *opctx, unsigned int xattr_id, void *buffer_addr, size_t buffer_size) { return fsalstat(ERR_FSAL_NOTSUPP, 0); } Predicted src: static int _set_set_set_set_init (void) { return 0; } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined xdp_camera_proxy_get_is_camera_present() PUSH R12 XOR R12D,R12D PUSH RBP MOV RBP,RDI SUB RSP,0x8 CALL xdp_camera_proxy_get_type ;undefined xdp_camera_proxy_get_type() MOV RDI,RBP MOV RSI,RAX CALL .plt:::g_type_check_instance_cast ;undefined g_type_check_instance_cast() MOV RBP,RAX CALL .plt:::g_dbus_proxy_get_type ;undefined g_dbus_proxy_get_type() MOV RDI,RBP MOV RSI,RAX CALL .plt:::g_type_check_instance_cast ;undefined g_type_check_instance_cast() LEA RSI,[.rodata:s_IsCameraPresent_001a19d0] ;= "IsCameraPresent" MOV RDI,RAX CALL .plt:::g_dbus_proxy_get_cached_property ;undefined g_dbus_proxy_get_cached_pr... TEST RAX,RAX JZ LAB_0014af3a MOV RBP,RAX MOV RDI,RAX CALL .plt:::g_variant_get_boolean ;undefined g_variant_get_boolean() MOV RDI,RBP MOV R12D,EAX CALL .plt.got:::g_variant_unref ;undefined g_variant_unref() LAB_0014af3a: ADD RSP,0x8 MOV EAX,R12D POP RBP POP R12 RET ?? 66h f Actual src: static gboolean xdp_camera_proxy_get_is_camera_present (XdpCamera *object) { XdpCameraProxy *proxy = XDP_CAMERA_PROXY (object); GVariant *variant; gboolean value = 0; variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "IsCameraPresent"); if (variant!= NULL) { value = g_variant_get_boolean (variant); g_variant_unref (variant); } return value; } Predicted src: static void _init (void) { g_return_fail (g_fail (g_fail (g_fail (G_fail (G_fail (self), NULL); } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined g_flags_class_init() PUSH RBP PUSH RBX SUB RSP,0x8 TEST RDI,RDI JZ LAB_00115a25 CMP qword ptr [RDI],0x34 MOV RBP,RDI MOV RBX,RSI JZ LAB_00115a48 MOV ESI,0x34 CALL g_type_check_class_is_a ;undefined g_type_check_class_is_a() TEST EAX,EAX JNZ LAB_00115a48 LAB_00115a25: ADD RSP,0x8 LEA RDX,[.rodata:s_G_IS_FLAGS_CLASS_(class)_00140d3b] ;= "G_IS_FLAGS_CLASS (class)" LEA RSI,[.rodata:__func__.15] ;= "g_flags_class_init" POP RBX LEA RDI,[.rodata:s_GLib-GObject_0013f3e8] ;= "GLib-GObject" POP RBP JMP .plt:::g_return_if_fail_warning ;undefined g_return_if_fail_warning() ?? 0Fh ?? 1Fh ?? 00h LAB_00115a48: MOV qword ptr [RBP + 0x8],0x0 MOV qword ptr [RBP + 0x10],RBX TEST RBX,RBX JZ LAB_00115a86 XOR EAX,EAX CMP qword ptr [RBX + 0x8],0x0 MOV EDX,0x1 JZ LAB_00115a86 NOP word ptr [RAX + RAX*0x1] LAB_00115a70: OR EAX,dword ptr [RBX] ADD RBX,0x18 MOV dword ptr [RBP + 0xc],EDX ADD EDX,0x1 MOV dword ptr [RBP + 0x8],EAX CMP qword ptr [RBX + 0x8],0x0 JNZ LAB_00115a70 LAB_00115a86: ADD RSP,0x8 POP RBX POP RBP RET ?? 0Fh Actual src: static void g_flags_class_init (GFlagsClass *class, gpointer class_data) { g_return_if_fail (G_IS_FLAGS_CLASS (class)); class->mask = 0; class->n_values = 0; class->values = class_data; if (class->values) { GFlagsValue *values; for (values = class->values; values->value_name; values++) { class->mask |= values->value; class->n_values++; } } } Predicted src: static void _init (void) { g_if_fail (g->priv->priv->priv->priv->priv->priv->priv->priv->priv->priv->priv->priv->priv->priv->priv->priv->priv->priv->priv->priv->priv->priv->priv->priv->priv->priv->priv); }