============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined gimp_brush_core_get_brush_mask() ;local_20 undefined8 -20 PUSH R12 MOVAPD XMM2,XMM0 PXOR XMM0,XMM0 PUSH RBP PUSH RBX SUB RSP,0x10 COMISD XMM0,XMM2 MOVSD qword ptr [RSP + local_20+0x28],XMM2 JNC LAB_005cab5e MOV R12,RSI MOV RSI,qword ptr [RDI + 0x1e8] MOV RBP,RDI MOV EBX,EDX CALL gimp_brush_core_transform_mask ;undefined gimp_brush_core_transform_... MOV RSI,RAX TEST RAX,RAX JZ LAB_005cab5e CMP EBX,0x1 JZ LAB_005cabb0 CMP EBX,0x2 MOVSD XMM2,qword ptr [RSP + local_20+0x28] JZ LAB_005cab90 TEST EBX,EBX JZ LAB_005cab70 LEA R9,[.rodata:__func__.2] ;= "gimp_brush_core_get_brush_mask" MOV R8D,0x45d XOR EAX,EAX MOV ESI,0x8 LEA RCX,[.rodata:s_gimpbrushcore.c_0071780d] ;= "gimpbrushcore.c" LEA RDX,[.rodata:s_file_%s:_line_%d_(%s):_should_no_006531f0] ;= "file %s: line %d (%s): should not... LEA RDI,[.rodata:s_Gimp-Paint_0064f994] ;= "Gimp-Paint" CALL .plt:::g_log ;undefined g_log() LAB_005cab5e: ADD RSP,0x10 XOR EAX,EAX POP RBX POP RBP POP R12 RET ?? 0Fh ?? 1Fh ?? 80h ?? 00h ?? 00h ?? 00h ?? 00h LAB_005cab70: MOVSD XMM1,qword ptr [R12 + 0x8] MOVSD XMM0,qword ptr [R12] MOV RDI,RBP ADD RSP,0x10 POP RBX POP RBP POP R12 JMP gimp_brush_core_solidify_mask ;undefined gimp_brush_core_solidify_m... ?? 0Fh ?? 1Fh ?? 00h LAB_005cab90: MOVSD XMM1,qword ptr [R12 + 0x8] MOVSD XMM0,qword ptr [R12] MOV RDI,RBP ADD RSP,0x10 POP RBX POP RBP POP R12 JMP gimp_brush_core_pressurize_mask ;undefined gimp_brush_core_pressurize... ?? 0Fh ?? 1Fh ?? 00h LAB_005cabb0: MOVSD XMM1,qword ptr [R12 + 0x8] MOVSD XMM0,qword ptr [R12] MOV RDI,RBP ADD RSP,0x10 POP RBX POP RBP POP R12 JMP gimp_brush_core_subsample_mask ;undefined gimp_brush_core_subsample_... ?? 0Fh Actual src: const GimpTempBuf * gimp_brush_core_get_brush_mask (GimpBrushCore *core, const GimpCoords *coords, GimpBrushApplicationMode brush_hardness, gdouble dynamic_force) { const GimpTempBuf *mask; if (dynamic_force <= 0.0) return NULL; mask = gimp_brush_core_transform_mask (core, core->brush); if (! mask) return NULL; switch (brush_hardness) { case GIMP_BRUSH_SOFT: return gimp_brush_core_subsample_mask (core, mask, coords->x, coords->y); break; case GIMP_BRUSH_HARD: return gimp_brush_core_solidify_mask (core, mask, coords->x, coords->y); break; case GIMP_BRUSH_PRESSURE: return gimp_brush_core_pressurize_mask (core, mask, coords->x, coords->y, dynamic_force); break; } g_return_val_if_reached (NULL); } Predicted src: static void gimp_file_get_source_width (Gimp *file, gdouble x, gdouble y, gdouble y, gdouble x, gdouble y) { GimpTool *file; GimpTool *file; file = gimp_file_get_file_file (file); if (file == NULL) return; file = gimp_file_get_file (file); if (file == NULL) return; file->x = x; file->y = y; if (file->x == y) file->x = y; gimp_file_set_width (file, file->x, file->y); } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined item_set_linked_invoker() PUSH R14 MOV R14,RSI XOR ESI,ESI PUSH R13 MOV R13,RDI MOV RDI,R8 PUSH R12 MOV R12,R9 PUSH RBP MOV RBP,R8 SUB RSP,0x8 CALL .plt:::gimp_value_array_index ;undefined gimp_value_array_index() MOV RSI,R14 MOV RDI,RAX CALL gimp_value_get_item ;undefined gimp_value_get_item() MOV ESI,0x1 MOV RDI,RBP MOV R14,RAX CALL .plt:::gimp_value_array_index ;undefined gimp_value_array_index() MOV RDI,RAX CALL .plt:::g_value_get_boolean ;undefined g_value_get_boolean() MOV EBP,EAX CALL gimp_item_get_type ;undefined gimp_item_get_type() MOV RDI,R14 MOV RSI,RAX CALL .plt:::g_type_check_instance_cast ;undefined g_type_check_instance_cast() MOV EDX,0x1 MOV ESI,EBP MOV RDI,RAX CALL gimp_item_set_linked ;undefined gimp_item_set_linked() TEST R12,R12 JZ LAB_0046518e MOV R12,qword ptr [R12] LAB_0046518e: ADD RSP,0x8 MOV RDX,R12 MOV RDI,R13 MOV ESI,0x1 POP RBP POP R12 POP R13 POP R14 JMP gimp_procedure_get_return_values ;undefined gimp_procedure_get_return_... ?? 0Fh Actual src: static GimpValueArray * item_set_linked_invoker (GimpProcedure *procedure, Gimp *gimp, GimpContext *context, GimpProgress *progress, const GimpValueArray *args, GError **error) { gboolean success = TRUE; GimpItem *item; gboolean linked; item = gimp_value_get_item (gimp_value_array_index (args, 0), gimp); linked = g_value_get_boolean (gimp_value_array_index (args, 1)); if (success) { gimp_item_set_linked (GIMP_ITEM (item), linked, TRUE); } return gimp_procedure_get_return_values (procedure, success, error? *error : NULL); } Predicted src: static void gimp_item_set_value (GimpItem *item, const GValue *value, const GValue *return_value, GParamSpec *pspec, GParamSpec *pspec) { GimpItem *item = gimp_item_get_item (item); GimpItem *item = gimp_item_get_item (item); GimpItem *item = gimp_item_get_item (item); if (item) { GimpItem *item = gimp_item_get_item (item); gimp_item_set_value (item, item, item); } } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined hc_AES_decrypt_key() PUSH RBX MOV RBX,RDX MOV EDX,ESI MOV RSI,RDI MOV RDI,RBX CALL _hc_rijndaelKeySetupDec ;undefined _hc_rijndaelKeySetupDec() CMP EAX,0x1 MOV dword ptr [RBX + 0xf0],EAX POP RBX SBB EAX,EAX RET ?? 66h f Actual src: int AES_set_decrypt_key(const unsigned char *userkey, const int bits, AES_KEY *key) { key->rounds = rijndaelKeySetupDec(key->key, userkey, bits); if (key->rounds == 0) return -1; return 0; } Predicted src: static int _key_key_key_key_key_key_key(key_key_t key, key_key_t key, key_key_key_key_t key, key_key_key_key_t key, key_key_key_key_key_key_t key) { key_key_key_key_key_key_key_key_t key = key; key_key_key_key_key_key_key_key_key_key_key_t key = key; key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key = key; key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key = key; key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key = key; key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key = key; key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key = key; key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key = key; key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key = key; key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key = key; key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key = key; key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_key_keykey_keykey_keykey_key_key_key_keykeykey_keykeykeykey_keykeykey_keykey_keykeykey_keykeykeykeykey_keykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeyke ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined e_attachment_bar_interface_init() LEA RAX,[attachment_bar_get_private] MOV qword ptr [RDI + 0x10],RAX=>attachment_bar_get_private LEA RAX,[attachment_bar_get_store] MOV qword ptr [RDI + 0x18],RAX=>attachment_bar_get_store LEA RAX,[attachment_bar_get_path_at_pos] MOV qword ptr [RDI + 0x20],RAX=>attachment_bar_get_path_at_pos LEA RAX,[attachment_bar_get_selected_paths] MOV qword ptr [RDI + 0x28],RAX=>attachment_bar_get_selected_paths LEA RAX,[attachment_bar_path_is_selected] MOV qword ptr [RDI + 0x30],RAX=>attachment_bar_path_is_selected LEA RAX,[attachment_bar_select_path] MOV qword ptr [RDI + 0x38],RAX=>attachment_bar_select_path LEA RAX,[attachment_bar_unselect_path] MOV qword ptr [RDI + 0x40],RAX=>attachment_bar_unselect_path LEA RAX,[attachment_bar_select_all] MOV qword ptr [RDI + 0x48],RAX=>attachment_bar_select_all LEA RAX,[attachment_bar_unselect_all] MOV qword ptr [RDI + 0x50],RAX=>attachment_bar_unselect_all LEA RAX,[attachment_bar_update_actions] MOV qword ptr [RDI + 0x78],RAX=>attachment_bar_update_actions RET ?? 90h Actual src: static void e_attachment_bar_interface_init (EAttachmentViewInterface *iface) { iface->get_private = attachment_bar_get_private; iface->get_store = attachment_bar_get_store; iface->get_path_at_pos = attachment_bar_get_path_at_pos; iface->get_selected_paths = attachment_bar_get_selected_paths; iface->path_is_selected = attachment_bar_path_is_selected; iface->select_path = attachment_bar_select_path; iface->unselect_path = attachment_bar_unselect_path; iface->select_all = attachment_bar_select_all; iface->unselect_all = attachment_bar_unselect_all; iface->update_actions = attachment_bar_update_actions; } Predicted src: static void e_bar_bar_iface_init (G_GNUC_UNUSED gpointer iface_data) { e_bar_bar_iface_init (iface); } ============================== Sample 5 ============================== 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: SWIGINTERN PyObject *_wrap_class_t_create(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; bt_class_t *arg1 = (bt_class_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; int result; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_bt_class_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "class_t_create" "', argument " "1"" of type '" "bt_class_t *""'"); } arg1 = (bt_class_t *)(argp1); result = (bt_class_t)class_create(arg1,arg1); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_bt_class_t, 0 | 0 ); return resultobj; fail: return NULL; }