============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined menu_media_disk_disciple_drive2_saveas() MOV ESI,0x152 JMP menu_media_save ;undefined menu_media_save() ?? 66h f Actual src: static MENU_CALLBACK( menu_media_disk_disciple_drive2_saveas ) { menu_media_save( gtk_action, 0x152 ); } Predicted src: static guint16 media_media_save_media_save_media_media_save_save_media(const gchar *name) { return (guint16)media_media_save_media(name, 0); } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined gfal2_bring_online_poll_list() PUSH R14 MOV R14,RCX PUSH R13 MOV R13D,ESI MOV RSI,R8 PUSH R12 MOV R12,RDX PUSH RBP MOV RBP,RDI PUSH RBX MOV RBX,R8 CALL .plt:gfal2_start_scope_cancel ;undefined gfal2_start_scope_cancel() TEST EAX,EAX JS LAB_0011121e TEST R12,R12 JZ LAB_001111c8 CMP qword ptr [R12],0x0 JZ LAB_001111c8 TEST RBP,RBP JZ LAB_001111c8 MOV RDX,R12 MOV R8,RBX MOV RCX,R14 MOV ESI,R13D MOV RDI,RBP CALL .plt:gfal_plugin_bring_online_poll_listG ;undefined gfal_plugin_bring_online_p... MOV R12D,EAX JMP LAB_0011120a ?? 0Fh ?? 1Fh ?? 80h ?? 00h ?? 00h ?? 00h ?? 00h LAB_001111c8: TEST R13D,R13D JLE LAB_00111204 LEA EAX,[R13 + -0x1] LEA R12,[.rodata:s_context_or/and_urls_are_incorrec_00117e00] ;= "context or/and urls are incorrect... LEA R13,[RBX + RAX*0x8 + 0x8] NOP dword ptr [RAX] LAB_001111e0: XOR EAX,EAX CALL .plt:gfal2_get_core_quark ;undefined gfal2_get_core_quark() MOV RDI,RBX MOV RCX=>.rodata:s_context_or/and_urls_are_incorrec_00117e00,R12 ;= "context or/and urls are incorrect... MOV EDX,0xe MOV ESI,EAX ADD RBX,0x8 XOR EAX,EAX CALL .plt:::g_set_error ;undefined g_set_error() CMP RBX,R13 JNZ LAB_001111e0 LAB_00111204: MOV R12D,0xffffffff LAB_0011120a: MOV RDI,RBP CALL .plt:gfal2_end_scope_cancel ;undefined gfal2_end_scope_cancel() LAB_00111212: POP RBX MOV EAX,R12D POP RBP POP R12 POP R13 POP R14 RET LAB_0011121e: MOV R12D,0xffffffff JMP LAB_00111212 ?? 66h f Actual src: int gfal2_bring_online_poll_list(gfal2_context_t context, int nbfiles, const char *const *urls, const char *token, GError **errors) { int res = -1; GFAL2_BEGIN_SCOPE_CANCEL(context, -1, errors); if (urls == NULL || *urls == NULL || context == NULL) { int i; for (i = 0; i < nbfiles; ++i) { g_set_error(&errors[i], gfal2_get_core_quark(), EFAULT, "context or/and urls are incorrect arguments"); } res = -1; } else { res = gfal_plugin_bring_online_poll_listG(context, nbfiles, urls, token, errors); } GFAL2_END_SCOPE_CANCEL(context); return res; } Predicted src: static gboolean plugin_set_start_func (gpointer user_data) { gpointer user_data; gpointer user_data; gpointer user_data; gpointer user_data; gpointer user_data; gpointer user_data; user_data = user_data; user_data = user_data; user_data = user_data; user_data = user_data; if (G_UNLIKELY (user_data == NULL)) { return FALSE; } user_data = user_data; if (G_UNLIKELY (user_data == NULL)) { return FALSE; } if (G_UNLIKELY (user_data == NULL)) { return FALSE; } if (G_UNLIKELY (user_data == NULL)) { return FALSE; } if (G_UNLIKELY (user_data == NULL)) { return FALSE; } if (G_UNLIKELY (user_data == NULL)) { return FALSE; } if (G_UNLIKELY (user_data == NULL)) { return FALSE; } return TRUE; } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined __newSnowballStemmer() ;local_28 undefined1[16] -28 PUSH R12 XOR ESI,ESI PUSH RBX SUB RSP,0x18 ; FWD[2,0]: 0017e440,002f4d30 MOVQ XMM0,qword ptr [->__sbstemmer_Stem] ;= 0017e440 MOVHPS XMM0,qword ptr [->__sbstemmer_Free] ;= 0017e510 MOVAPS xmmword ptr [RSP]=>local_28,XMM0 CALL .plt:sb_stemmer_new ;undefined sb_stemmer_new() MOV R12,RAX TEST RAX,RAX JZ LAB_0017e687 MOV EDI,0x18 CALL .plt.got:::malloc ;void * malloc(size_t __size) MOV EDI,0x18 MOV qword ptr [RAX],R12 MOV RBX,RAX MOV qword ptr [RAX + 0x10],0x18 CALL .plt.got:::malloc ;void * malloc(size_t __size) MOV EDI,0x30 MOV byte ptr [RAX],0x2b MOV qword ptr [RBX + 0x8],RAX CALL .plt.got:::malloc ;void * malloc(size_t __size) MOVDQA XMM0,xmmword ptr [RSP]=>local_28 MOV qword ptr [RAX],RBX MOV R12,RAX MOVUPS xmmword ptr [RAX + 0x8],XMM0 LEA RAX,[sbstemmer_Reset] MOV qword ptr [R12 + 0x18],RAX=>sbstemmer_Reset LAB_0017e687: ADD RSP,0x18 MOV RAX,R12 POP RBX POP R12 RET ?? 66h f Actual src: Stemmer *__newSnowballStemmer(const char *language) { struct sb_stemmer *sb = sb_stemmer_new(language, NULL); // No stemmer available for this language if (!sb) { return NULL; } struct sbStemmerCtx *ctx = malloc(sizeof(*ctx)); ctx->sb = sb; ctx->cap = 24; ctx->buf = malloc(ctx->cap); ctx->buf[0] = STEM_PREFIX; Stemmer *ret = malloc(sizeof(Stemmer)); ret->ctx = ctx; ret->Stem = __sbstemmer_Stem; ret->Free = __sbstemmer_Free; ret->Reset = sbstemmer_Reset; return ret; } Predicted src: SLEPC_EXPORT struct SLEPC_buf *SLEPC_buf_new(void) { struct SLEPC_buf *buf; buf = (struct SLEPC_buf *) malloc(sizeof(struct SLEPC_buf)); if (buf == NULL) return NULL; memset(buf, 0, sizeof(struct SLEPC_buf)); memset(buf, 0, sizeof(struct SLEPC_buf)); memset(buf, 0, sizeof(struct SLEPC_buf)); memset(buf, 0, sizeof(struct SLEPC_buf)); memset(buf, 0, sizeof(struct SLEPC_buf)); memset(buf, 0, sizeof(struct SLEPC_buf)); memset(buf, 0, 0, sizeof(struct SLEPC_buf)); memset(buf, 0, 0, sizeof(struct SLEPC_buf)); memset(buf, 0, 0, sizeof(struct SLEPC_buf)); memset(buf, 0, 0, sizeof(struct SLEPC_buf)); memset(buf, 0, 0, sizeof(struct SLEPC_buf)); memset(buf, 0, 0, sizeof(struct SLEPC_buf)); memset(buf, 0, 0, sizeof(struct SLEPC_buf)); memset(buf, 0, 0, 0, sizeof(struct SLEPC_buf)); memset(buf, 0, 0, 0, sizeof(struct SLEPC_buf)); memset(buf, 0, 0, 0, sizeof(struct SLEPC_buf)); memset(buf, 0, 0, 0, sizeof(struct SLEPC_buf)); memset(buf, 0, 0, 0, sizeof(struct SLEPC_buf)); memset(buf, 0, 0, 0, 0, sizeof(struct SLEPC_buf)); memset(buf, 0, 0, 0, 0, sizeof(struct SLEPC_buf)); memset(buf, 0, 0, 0, 0, sizeof(struct SLEPC_buf)); memset(buf, 0, 0, 0, 0, sizeof(struct SLEPC_buf)); memset(buf)); memset(buf, 0, 0, 0, 0, 0, 0, sizeof(struct SLEPC_buf)); memset(buf, 0, 0, 0, sizeof(struct SLEPC_buf)); memset(buf)); memset(buf, 0, 0, 0, 0, 0, 0, sizeof(struct SLEPC_buf)); memset(buf)); memset(buf, 0, 0, 0, 0, 0, 0, sizeof(struct SLEPC_buf)); memset(buf)); memset(buf, 0, 0, 0, 0, 0, 0, sizeof(struct SLEPC_buf)); memset(buf)); memset(buf, 0, 0, 0, 0, 0, 0, 0, sizeof(struct SLEPC_buf)); memset(buf)); memset(buf)); memset(buf, 0, 0, 0, 0, 0, 0, 0, sizeof(struct SLEPC_buf)); memset(buf)); memset(buf)); memset(buf, 0, 0, 0, 0, 0, 0, 0, sizeof(struct SLEPC_buf)); memset(buf)); memset(buf)); memset(buf, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, sizeof(struct SLEPC_buf)); memset(buf)); memset(buf)); memset(buf)); memset(buf, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, sizeof(struct SLEPC_buf)); (buf)); } ============================== 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_conf_cleanup_cleanup(ngx_conf_t *cf, void *data) { ngx_ngx_conf_t *cf = data; ngx_ngx_conf_cleanup(cf->conf, ngx_ngx_conf_cleanup); } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined snesgetksp_() PUSH RBX MOV RDI,qword ptr [RDI] MOV RBX,RDX CALL .plt:SNESGetKSP ;undefined SNESGetKSP() MOV dword ptr [RBX],EAX POP RBX RET ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined snessetdm_() PUSH RBX Actual src: PETSC_EXTERN void snesgetksp_(SNES snes,KSP *ksp, int *__ierr) { *__ierr = SNESGetKSP( (SNES)PetscToPointer((snes) ),ksp); } Predicted src: PETSC_EXTERN void dmgetdestroy_(DM dm,PetscInt *n,PetscInt *n, int *__ierr) { *__ierr = DMGetGetInterface( (DM)PetscToPointer((dm) ),n); }