============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* KDL::Path_RoundedComposite::GetLengthToEndOfSegment(int) * ;************************************************************************************************************************************************************ ;undefined GetLengthToEndOfSegment(int param_1) ;param_1 int EDI MOV param_1,qword ptr [param_1 + 0x8] MOV RAX,qword ptr [param_1] JMP qword ptr [RAX + 0x60] ?? 66h f Actual src: double Path_RoundedComposite::GetLengthToEndOfSegment(int i) { return comp->GetLengthToEndOfSegment(i); } Predicted src: virtual unsigned int GetPath(int id) { return id->PathPath(id); } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* KDL::Path_RoundedComposite::GetLengthToEndOfSegment(int) * ;************************************************************************************************************************************************************ ;undefined GetLengthToEndOfSegment(int param_1) ;param_1 int EDI MOV param_1,qword ptr [param_1 + 0x8] MOV RAX,qword ptr [param_1] JMP qword ptr [RAX + 0x60] ?? 66h f Actual src: double Path_RoundedComposite::GetLengthToEndOfSegment(int i) { return comp->GetLengthToEndOfSegment(i); } Predicted src: int ToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToT ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined LoadIntoExtraScreen() MOV EDX,0x1 XOR ESI,ESI JMP TFB_DrawScreen_Copy ;undefined TFB_DrawScreen_Copy() ?? 0Fh Actual src: void LoadIntoExtraScreen (PRECT r) { TFB_DrawScreen_Copy(r, TFB_SCREEN_MAIN, TFB_SCREEN_EXTRA); } Predicted src: static void do_color(Widget w, XEvent *event) { do_color(w, TRUE, TRUE); } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined gf_dm_sess_get_stats(undefined param_1, undefined param_2, undefined param_3, undefined param_4, undefined param_5, undefined param_6, undefined8 param_7) ;param_1 undefined DIL ;param_2 undefined SIL ;param_3 undefined DL ;param_4 undefined CL ;param_5 undefined R8B ;param_6 undefined R9B ;param_7 undefined8 8 MOV RAX,param_1 MOV param_1,qword ptr [RSP + param_7] TEST RAX,RAX JZ LAB_001c3669 TEST param_2,param_2 JZ LAB_001c35f9 MOV R10,qword ptr [RAX + 0x38] MOV qword ptr [param_2],R10 LAB_001c35f9: TEST param_3,param_3 JZ LAB_001c3605 MOV param_2,qword ptr [RAX + 0x58] MOV qword ptr [param_3],param_2 LAB_001c3605: TEST param_4,param_4 JZ LAB_001c3622 MOV param_3,dword ptr [RAX + 0x109c] MOV param_2,0x0 CMP param_3,0x40000000 CMOVZ param_3,param_2 MOV qword ptr [param_4],param_3 LAB_001c3622: TEST param_5,param_5 JZ LAB_001c3630 MOV param_4,dword ptr [RAX + 0x10a0] MOV qword ptr [param_5],param_4 LAB_001c3630: TEST param_6,param_6 JZ LAB_001c363e MOV param_3,dword ptr [RAX + 0x10d8] MOV dword ptr [param_6],param_3 LAB_001c363e: TEST param_1,param_1 JZ LAB_001c364b MOV param_3,dword ptr [RAX + 0x1094] MOV dword ptr [param_1],param_3 LAB_001c364b: MOV param_3,dword ptr [RAX + 0x1094] MOV EAX,0x1 CMP param_3,0xa JZ LAB_001c366e XOR EAX,EAX CMP param_3,0xb MOV param_3,0xfffffff3 CMOVZ EAX,param_3 RET LAB_001c3669: MOV EAX,0xffffffff LAB_001c366e: RET ?? 90h Actual src: GF_EXPORT GF_Err gf_dm_sess_get_stats(GF_DownloadSession * sess, const char **server, const char **path, u64 *total_size, u64 *bytes_done, u32 *bytes_per_sec, GF_NetIOStatus *net_status) { if (!sess) return GF_BAD_PARAM; if (server) *server = sess->server_name; if (path) *path = sess->remote_path; if (total_size) { if (sess->total_size==SIZE_IN_STREAM) *total_size = 0; else *total_size = sess->total_size; } if (bytes_done) *bytes_done = sess->bytes_done; if (bytes_per_sec) *bytes_per_sec = sess->bytes_per_sec; if (net_status) *net_status = sess->status; if (sess->status == GF_NETIO_DISCONNECTED) return GF_EOS; else if (sess->status == GF_NETIO_STATE_ERROR) return GF_SERVICE_ERROR; return GF_OK; } Predicted src: GF_EXPORT GF_GF_GF_GF_Err gf_GF_GF_ gf_ gf_GF_ gf_ gf_ gf_GF_ gf_ gf_ GF_ gf_ gf_ gf(GF_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf * gf, GF_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf, GF_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf * gf_ gf, GF_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf) { GF_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf( gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf, gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf); if ( gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf( gf_ gf_ gf_ gf_ gf_ gf_ gf, gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf); if ( gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf( gf_ gf_ gf_ gf_ gf, gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf) gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf( gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf, gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf); if ( gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf) gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf( gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf, gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf, gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf_ gf); } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined parse_trap2_fmt() SUB RSP,0x8 MOV RDI,RSI CALL .plt:::strdup ;char * strdup(char * __s) MOV RDX,qword ptr [->print_format2] ;= 0010f168 MOV qword ptr [RDX]=>.bss:print_format2,RAX ;=?? ADD RSP,0x8 RET ?? 0Fh Actual src: static void parse_trap2_fmt(const char *token, char *line) { print_format2 = strdup(line); } Predicted src: static void print_format (const char *format, const char *format, const char *format, const char *format) { (void)format; (void)format; (void)format; (void)format; (void)format; }