============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined e_google_book_chooser_button_init() MOVSXD RAX,dword ptr [.bss:EGoogleBookChooserButton_private_offset] ;=?? ADD RAX,RDI MOV qword ptr [RDI + 0x38],RAX RET ?? 90h Actual src: static void e_google_book_chooser_button_init (EGoogleBookChooserButton *button) { button->priv = e_google_book_chooser_button_get_instance_private (button); } Predicted src: static void e_button_button_button_button_init (EButtonButtonButton *button) { button->priv = e_button_button_button_get_instance_private (button); } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined COM_InitArgv() PUSH R15 PUSH R14 PUSH R13 MOV R13,RSI PUSH R12 MOV R12D,EDI PUSH RBP PUSH RBX SUB RSP,0x8 CMP EDI,0x32 JG LAB_00160ca8 MOV dword ptr [.bss:com_argc],EDI TEST EDI,EDI JLE LAB_00160c95 LAB_00160c43: XOR EBP,EBP LEA R14,[.bss:com_argv] LEA R15,[.rodata:DAT_00286e0d] JMP LAB_00160c77 ?? 0Fh ?? 1Fh ?? 00h LAB_00160c58: MOV RDI,RBX CALL .plt:::strlen ;size_t strlen(char * __s) CMP RAX,0x3ff CMOVA RBX,R15 MOV qword ptr [R14 + RBP*0x8]=>.bss:com_argv,RBX ADD RBP,0x1 CMP R12D,EBP JLE LAB_00160c95 LAB_00160c77: MOV RBX,qword ptr [R13 + RBP*0x8] TEST RBX,RBX JNZ LAB_00160c58 LEA RBX,[.rodata:DAT_00286e0d] MOV qword ptr [R14 + RBP*0x8]=>.bss:com_argv,RBX=>.rodata:DAT_00286e0d ADD RBP,0x1 CMP R12D,EBP JG LAB_00160c77 LAB_00160c95: ADD RSP,0x8 POP RBX POP RBP POP R12 POP R13 POP R14 POP R15 RET ?? 0Fh ?? 1Fh ?? 40h @ ?? 00h LAB_00160ca8: LEA RSI,[.rodata:s_argc_>_MAX_NUM_ARGVS_0028ed0d] ;= "argc > MAX_NUM_ARGVS" XOR EDI,EDI XOR EAX,EAX CALL Com_Error ;undefined Com_Error(undefined param_... MOV dword ptr [.bss:com_argc],R12D JMP LAB_00160c43 ?? 66h f Actual src: void COM_InitArgv (int argc, char **argv) { int i; if (argc > MAX_NUM_ARGVS) Com_Error (ERR_FATAL, "argc > MAX_NUM_ARGVS"); com_argc = argc; for (i=0 ; i= MAX_TOKEN_CHARS ) com_argv[i] = ""; else com_argv[i] = argv[i]; } } Predicted src: void Init(int argc, char **argv) { int i; for (i = 0; i < argc; i++) { if (argv[i] == argv[i]) { fprintf(stderr, "Error: %s\n", argv[i]); return; } } for (i = 0; i < argc; i++) { fprintf(stderr, "Error: %s\n", argv[i]); } } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined _wrap_svn_error_t_line_get() ;local_10 undefined8 -10 ;local_18 undefined8 -18 PUSH RBX MOV RDI,RSI MOV ECX,0x1 MOV EDX,0x1 LEA RSI,[.rodata:s_svn_error_t_line_get_00177235] ;= "svn_error_t_line_get" SUB RSP,0x10 MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_10+0x18],RAX XOR EAX,EAX MOV R8,RSP MOV qword ptr [RSP]=>local_18,0x0 CALL .plt:PyArg_UnpackTuple ;undefined PyArg_UnpackTuple() TEST EAX,EAX JZ LAB_00121280 MOV RSI,qword ptr [.bss:swig_types[992]] MOV RDI,qword ptr [RSP]=>local_18 MOV EDX,0x1 CALL .plt:::svn_swig_py_must_get_ptr ;undefined svn_swig_py_must_get_ptr() MOV RBX,RAX CALL .plt:PyErr_Occurred ;undefined PyErr_Occurred() TEST RAX,RAX JNZ LAB_00121280 MOV RDI,qword ptr [RBX + 0x28] CALL .plt:PyLong_FromLong ;undefined PyLong_FromLong() JMP LAB_00121282 ?? 66h f ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_00121280: XOR EAX,EAX LAB_00121282: MOV RDX,qword ptr [RSP + local_10+0x18] SUB RDX,qword ptr FS:[0x28] JNZ LAB_00121298 ADD RSP,0x10 POP RBX RET LAB_00121298: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() NOP dword ptr [RAX] Actual src: SWIGINTERN PyObject *_wrap_svn_error_t_line_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; struct svn_error_t *arg1 = (struct svn_error_t *) 0 ; PyObject * obj0 = 0 ; long result; if (!PyArg_UnpackTuple(args, "svn_error_t_line_get", 1, 1, &obj0)) SWIG_fail; { arg1 = (struct svn_error_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_error_t, svn_argnum_obj0); if (PyErr_Occurred()) { SWIG_fail; } } result = (long) ((arg1)->line); resultobj = SWIG_From_long((long)(result)); return resultobj; fail: return NULL; } Predicted src: SWIGINTERN PyObject *_wrap_svn_wc_wc_status_t_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; struct svn_wc_status_t *arg1 = (struct svn_wc_status_t *) 0 ; PyObject * obj0 = 0 ; svn_error_t result; if (!PyArg_UnpackTuple(args, "svn_wc_status_t_get", 1, 1, &obj0)) SWIG_fail; { arg1 = (struct svn_wc_status_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_wc_status_t, svn_argnum_obj0); if (PyErr_Occurred()) { SWIG_fail; } } result = (svn_error_t) ((arg1)->get); resultobj = SWIG_From_long((long)(result)); return resultobj; fail: return NULL; } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;void clipboard_destroy(object * obj) ;obj object * RDI PUSH R13 MOV R13,obj PUSH R12 LEA R12,[R13 + 0x70] PUSH RBP PUSH RBX SUB RSP,0x8 MOV obj,qword ptr [obj->refcount + 0x90] CALL .plt:::free ;void free(void * __ptr) MOV RBP,qword ptr [R13 + 0x70] MOV RBX,qword ptr [RBP] CMP RBP,R12 JZ LAB_0011736b NOP word ptr [RAX + RAX*0x1] LAB_00117340: MOV RAX,qword ptr [RBP + 0x8] MOV qword ptr [RBX + 0x8],RAX MOV RDX,qword ptr [RBP] MOV qword ptr [RAX],RDX MOV obj,qword ptr [RBP + 0x20] CALL .plt:::free ;void free(void * __ptr) MOV obj,RBP MOV RBP,RBX CALL .plt:::free ;void free(void * __ptr) MOV RBX,qword ptr [RBX] CMP RBP,R12 JNZ LAB_00117340 LAB_0011736b: MOV qword ptr [R13 + 0x80],0x0 ADD RSP,0x8 POP RBX POP RBP POP R12 POP R13 RET ?? 66h f Actual src: static void clipboard_destroy( struct object *obj ) { struct clipboard *clipboard = (struct clipboard *)obj; free( clipboard->listeners ); free_clipboard_formats( clipboard ); } Predicted src: static void object_destroy(struct object *obj) { struct object *obj; struct object *obj; obj = obj->obj; obj = obj->obj; while (obj) { obj = obj->next; obj = obj->next; obj = obj->next; free(obj); } } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined acb_poly_validate_real_roots() MOV RCX,RDX MOV RDX,qword ptr [RSI + 0x8] MOV RSI,qword ptr [RSI] JMP .plt:LAB_0013a6d0 ?? 90h Actual src: int acb_poly_validate_real_roots(acb_srcptr roots, const acb_poly_t poly, slong prec) { return _acb_poly_validate_real_roots(roots, poly->coeffs, poly->length, prec); } Predicted src: void fmpz_poly_poly_poly_poly_poly_poly_poly(fmpz_poly_poly_poly_t poly, const fmpz_poly_poly_poly_poly_poly_t poly) { _fmpz_poly_poly_poly_poly_poly_poly_poly(poly, poly->poly, poly->poly, poly->poly, poly->poly); }