============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined gimp_curves_tool_key_press() PUSH R13 MOV R13,RDX PUSH R12 MOV R12,RSI PUSH RBP MOV RBP,RDI CALL gimp_curves_tool_get_type ;undefined gimp_curves_tool_get_type() MOV RDI,RBP MOV RSI,RAX CALL .plt:::g_type_check_instance_cast ;undefined g_type_check_instance_cast() CMP qword ptr [RBP + 0x58],0x0 JZ LAB_0024f7fd MOV RDI,qword ptr [RAX + 0x2c8] TEST RDI,RDI JZ LAB_0024f7fd MOV RSI,R12 CALL .plt:::gtk_widget_event ;undefined gtk_widget_event() TEST EAX,EAX JNZ LAB_0024f830 LAB_0024f7fd: CALL gimp_tool_get_type ;undefined gimp_tool_get_type() MOV RDI,qword ptr [.bss:gimp_curves_tool_parent_class] MOV RSI,RAX CALL .plt:::g_type_check_class_cast ;undefined g_type_check_class_cast() MOV RDX,R13 MOV RSI,R12 MOV RDI,RBP MOV RAX,qword ptr [RAX + 0xd8] POP RBP POP R12 POP R13 JMP RAX ?? 0Fh ;? -> 00841f0f ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_0024f830: POP RBP MOV EAX,0x1 POP R12 POP R13 RET ?? 0Fh Actual src: static gboolean gimp_curves_tool_key_press (GimpTool *tool, GdkEventKey *kevent, GimpDisplay *display) { GimpCurvesTool *c_tool = GIMP_CURVES_TOOL (tool); if (tool->display && c_tool->graph) { if (gtk_widget_event (c_tool->graph, (GdkEvent *) kevent)) return TRUE; } return GIMP_TOOL_CLASS (parent_class)->key_press (tool, kevent, display); } Predicted src: static void gtk_cb (GtkWidget *widget, gpointer user_data) { g_return_if_fail (widget!= NULL); g_return_if_fail (priv->priv->priv->priv!= NULL); } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined fd_write() PUSH R13 MOV R13,RCX PUSH R12 MOV R12,RDX XOR EDX,EDX PUSH RBP MOV EBP,EDI PUSH RBX MOV RBX,RSI SUB RSP,0x8 CALL .plt:::lseek ;__off_t lseek(int __fd, __off_t __of... CMP RAX,RBX JNZ LAB_00139860 ADD RSP,0x8 MOV RDX,R13 MOV RSI,R12 MOV EDI,EBP POP RBX POP RBP POP R12 POP R13 JMP .plt:::write ;ssize_t write(int __fd, void * __buf... ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00139860: ADD RSP,0x8 MOV RAX,-0x1 POP RBX POP RBP POP R12 POP R13 RET ?? 66h f Actual src: ssize_t fd_write(int fd, off_t offset, const void *src, size_t size) { if (lseek(fd, offset, SEEK_SET)!= offset) return -1; return write(fd, src, size); } Predicted src: static int _init(void) { int i; if (i == 0) return -1; return 1; } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined main() SUB RSP,0x8 XOR EAX,EAX CALL unitTestTEXT ;undefined unitTestTEXT() MOV EDI,EAX CALL .plt:::exit ;void exit(int __status) NOP word ptr CS:[RAX + RAX*0x1] Actual src: int main(int argc, char **argv){ int error; error = unitTestTEXT(); // error += unitTestNetADT((TEXT *)"ab (cd) fr- (ag-)"); // { TEXT txt[10]; txt[0] = 0x25; txt[1] = 0xd8; txt[2] = 0xaa; txt[3] = 0xd8; txt[4] = 0xb1; txt[5] = 0x0; // printf("TXT is %s\n",txt); // } exit(error); } Predicted src: static int (void) { return 0; } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* gkarrays::readsReader::isPairedEnd() * ;************************************************************************************************************************************************************ ;undefined isPairedEnd(readsReader * this) ;this readsReader * RDI MOVZX EAX,byte ptr [this + 0x18] RET ?? 66h f Actual src: bool readsReader::isPairedEnd() { return is_pairedEnd; } Predicted src: int vtkSetMacro(void) { return 0; } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined igListBoxFnBoolPtr(char * param_1, int * param_2, FuncDef47 * param_3, void * param_4, int param_5, int param_6) ;param_1 char * RDI ;param_2 int * RSI ;param_3 FuncDef47 * RDX ;param_4 void * RCX ;param_5 int R8D ;param_6 int R9D JMP ImGui::ListBox ?? 66h f Actual src: CIMGUI_API bool igListBoxFnBoolPtr(const char* label,int* current_item,bool(*items_getter)(void* data,int idx,const char** out_text),void* data,int items_count,int height_in_items) { return ImGui::ListBox(label,current_item,items_getter,data,items_count,height_in_items); } Predicted src: void * _new(const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name) { return NULL; }