============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* wrapNewlineChunksize(libscols_column const*, char const*, void*) * ;************************************************************************************************************************************************************ ;undefined wrapNewlineChunksize(libscols_column * param_1, char * param_2, void * param_3) ;param_1 libscols_co... RDI ;param_2 char * RSI ;param_3 void * RDX JMP .plt:::scols_wrapnl_chunksize ?? 66h f Actual src: size_t wrapNewlineChunksize(const struct libscols_column *column, const char *data, void *userdata) { return scols_wrapnl_chunksize(column, data, userdata); } Predicted src: int size_column_size(const void *data, size_t size, const void *data, size_t size) { return (size_column_size(data, size, data, size)); } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined dhcp6_calc_mac() ;local_30 undefined8 -30 ;local_48 undefined1[16] -48 PUSH R13 PUSH R12 PUSH RBP PUSH RBX SUB RSP,0xc8 MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_30+0xe8],RAX XOR EAX,EAX CMP ECX,0x1 JNZ LAB_00112b80 LEA RAX,[R8 + 0x10] MOV RBX,RSI MOV RBP,R8 CMP RAX,RSI JA LAB_00112b80 MOV RSI,qword ptr [R9 + 0x28] MOV EDX,dword ptr [R9 + 0x30] MOV R13,RSP MOV R12,RDI MOV RDI,R13 CALL hmacmd5_init ;undefined hmacmd5_init() MOV EDX,EBX MOV RSI,R12 MOV RDI,R13 CALL md5_update ;undefined md5_update() LEA RSI=>local_48,[RSP + 0xa0] MOV RDI,R13 CALL hmacmd5_sign ;undefined hmacmd5_sign() XOR EAX,EAX MOVDQA XMM0,xmmword ptr [RSP + local_48[0]+0xe8] MOVUPS xmmword ptr [R12 + RBP*0x1],XMM0 LAB_00112b57: MOV RDX,qword ptr [RSP + local_30+0xe8] SUB RDX,qword ptr FS:[0x28] JNZ LAB_00112b87 ADD RSP,0xc8 POP RBX POP RBP POP R12 POP R13 RET ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00112b80: MOV EAX,0xffffffff JMP LAB_00112b57 LAB_00112b87: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() NOP dword ptr [RAX] Actual src: int dhcp6_calc_mac(buf, len, proto, alg, off, key) char *buf; size_t len, off; int proto, alg; struct keyinfo *key; { hmacmd5_t ctx; unsigned char digest[MD5_DIGESTLENGTH]; /* right now, we don't care about the protocol */ if (alg!= DHCP6_AUTHALG_HMACMD5) return (-1); if (off + MD5_DIGESTLENGTH > len) { /* * this should be assured by the caller, but check it here * for safety. */ return (-1); } hmacmd5_init(&ctx, key->secret, key->secretlen); hmacmd5_update(&ctx, buf, len); hmacmd5_sign(&ctx, digest); memcpy(buf + off, digest, MD5_DIGESTLENGTH); return (0); } Predicted src: int md5_md5_update(md5_context context, const void *buf, size_t len) { md5_md5_md5_md5_update(context, buf, len); md5_md5_md5_update(context, buf, len); md5_md5_update(context, buf, len); md5_md5_update(context, buf, len); } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* LAMMPS_NS::Modify::delete_fix(int) * ;************************************************************************************************************************************************************ ;undefined delete_fix(Modify * this, int param_1) ;this Modify * RDI ;param_1 int ESI PUSH R13 MOVSXD RAX,param_1 PUSH R12 LEA R13,[RAX*0x8] MOV R12,RAX PUSH RBP MOV RBP,this PUSH RBX SUB RSP,0x8 MOV RDX,qword ptr [this + 0x130] MOV this,qword ptr [RDX + RAX*0x8] TEST this,this JZ LAB_008fe0a1 MOV RAX,qword ptr [this] CALL qword ptr [RAX + 0x8] LAB_008fe0a1: MOV RAX,qword ptr [RBP + 0x30] MOV param_1,R12D LEA EBX,[R12 + 0x1] MOV this,qword ptr [RAX] CALL .plt:LAMMPS_NS::Atom::update_callback ;undefined update_callback(Atom * thi... MOV EAX,dword ptr [RBP + 0x124] CMP EBX,EAX JGE LAB_008fe105 MOV this,qword ptr [RBP + 0x130] SUB EAX,R12D MOVSXD RBX,EBX SUB EAX,0x2 LEA RDX,[0x8 + RAX*0x8] LEA param_1,[this + R13*0x1 + 0x8] ADD this,R13 CALL .plt:::memmove ;void * memmove(void * __dest, void *... MOV RDX,qword ptr [RBP + 0x138] NOP dword ptr [RAX + RAX*0x1] LAB_008fe0f0: MOV EAX,dword ptr [RDX + RBX*0x4] MOV dword ptr [RDX + RBX*0x4 + -0x4],EAX MOV EAX,dword ptr [RBP + 0x124] ADD RBX,0x1 CMP EAX,EBX JG LAB_008fe0f0 LAB_008fe105: SUB EAX,0x1 MOV dword ptr [RBP + 0x124],EAX ADD RSP,0x8 POP RBX POP RBP POP R12 POP R13 RET ?? 90h Actual src: void Modify::delete_fix(int ifix) { if (fix[ifix]) delete fix[ifix]; atom->update_callback(ifix); // move other Fixes and fmask down in list one slot for (int i = ifix+1; i < nfix; i++) fix[i-1] = fix[i]; for (int i = ifix+1; i < nfix; i++) fmask[i-1] = fmask[i]; nfix--; } Predicted src: void Fix::update_callback(int n) { int i; for (i = 0; i < n; i++) { n[i] = n[i]; n[i] = n[i]; n[i] = n[i]; n[i] = n[i]; n[i] = n[i]; n[i] = n[i]; } } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;double _nrrdUnaryOpAcos(double __x) ;__x double XMM0_Qa JMP .plt:::acos ?? 66h f Actual src: static double _nrrdUnaryOpAcos(double a) {return acos(a);} Predicted src: double _cffi_d_d(double x0) { return _cffi_d(x0); } ============================== Sample 5 ============================== 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_button_button_init (EButtonButtonButton *button) { button->priv = e_button_button_button_button_get_instance_private (button); }