============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* CBufferObject::GetFd() * ;************************************************************************************************************************************************************ ;undefined GetFd(CBufferObject * this) ;this CBufferObje... RDI MOV EAX,dword ptr [this + 0x8] RET ?? 66h f Actual src: int CBufferObject::GetFd() { return m_fd; } Predicted src: uint32_t CBuffer::GetBuffer() { return m_buffer; } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined graph_clear_all_marks() ADD qword ptr [RDI + 0x10],0x1 JZ LAB_00157e18 RET LAB_00157e18: PUSH RAX LEA RCX,[.rodata:__PRETTY_FUNCTION__.0] ;= "graph_clear_all_marks" MOV EDX,0x187 LEA RSI,[.rodata:s_graph.c_0019e462] ;= "graph.c" LEA RDI,[.rodata:s_g->mark_count_!=_0_0019e46a] ;= "g->mark_count!= 0" CALL .plt:::__assert_fail ;void __assert_fail(char * __assertio... NOP dword ptr [RAX + RAX*0x1] Actual src: void graph_clear_all_marks(ggraph g) /* Effects: Clears all marks on edges and nodes of g. Modifies: g */ { g->mark_count++; /* A wrap around of this 32 bit counter is rather unlikely. */ assert(g->mark_count!= 0); } Predicted src: void ggraph_clear_graph_graph(ggraph_graph_graph_t *graph) { ggraph_graph_t *graph; graph =graph->graph; graph->graph = NULL; graph->graph = NULL; } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined hdy_gtk_window_toggle_maximized() PUSH RBP MOV RBP,RDI CALL .plt:::gtk_window_is_maximized ;undefined gtk_window_is_maximized() MOV RDI,RBP TEST EAX,EAX JZ LAB_00114a20 POP RBP JMP .plt:LAB_00111140 ?? 66h f ?? 2Eh . ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00114a20: POP RBP JMP .plt:LAB_00111ce0 ?? 66h f Actual src: void hdy_gtk_window_toggle_maximized (GtkWindow *window) { if (gtk_window_is_maximized (window)) gtk_window_unmaximize (window); else gtk_window_maximize (window); } Predicted src: void gtk_window_is_window (GtkWindow *window) { if (gtk_window_is_window (window)) gtk_window_is_window (window); } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined tokz_unget_token() PUSH RBP MOV RBP,RDI LEA RDI,[RDI + 0x18] PUSH RBX MOV RBX,RSI PUSH RAX CALL tok_free ;undefined tok_free() MOVUPS XMM0,xmmword ptr [RBX] MOVUPS xmmword ptr [RBP + 0x18],XMM0 MOV dword ptr [RBX],0x0 POP RDX POP RBX POP RBP RET ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined tokz_close() PUSH RBP Actual src: void tokz_unget_token(Tokenizer *tokz, Token *tok) { tok_free(&(tokz->ungettok)); tokz->ungettok=*tok; tok->type=TOK_INVALID; } Predicted src: void free_token_token(struct free_token *token, struct free_token *token) { token->token = NULL; token->token = NULL; token->token = NULL; } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined rss_item_get_contributor_email() PUSH RBX MOV RBX,RDI CALL .plt:rss_item_get_type ;undefined rss_item_get_type() TEST RBX,RBX JZ LAB_00110f58 MOV RSI,RAX MOV RAX,qword ptr [RBX] TEST RAX,RAX JZ LAB_00110f3e CMP qword ptr [RAX],RSI JZ LAB_00110f4a LAB_00110f3e: MOV RDI,RBX CALL .plt:::g_type_check_instance_is_a ;undefined g_type_check_instance_is_a() TEST EAX,EAX JZ LAB_00110f58 LAB_00110f4a: MOV RAX,qword ptr [RBX + 0x18] POP RBX MOV RAX,qword ptr [RAX + 0x50] RET ?? 0Fh ?? 1Fh ?? 40h @ ?? 00h LAB_00110f58: LEA RDX,[.rodata:s_RSS_IS_ITEM_(self)_0011dd04] ;= "RSS_IS_ITEM (self)" LEA RSI,[.rodata:__func__.5] ;= "rss_item_get_contributor_email" XOR EDI,EDI CALL .plt:::g_return_if_fail_warning ;undefined g_return_if_fail_warning() XOR EAX,EAX POP RBX RET ?? 66h f Actual src: const gchar * rss_item_get_contributor_email (RssItem *self) { g_return_val_if_fail (RSS_IS_ITEM (self), NULL); return self->priv->contributor_email; } Predicted src: const gchar * gdata_item_get_item (GDataItem *self) { g_return_val_if_fail (GDATA_IS_ITEM (self), NULL); return self->priv->item; }