============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined g_flags_class_init() PUSH RBP PUSH RBX SUB RSP,0x8 TEST RDI,RDI JZ LAB_00115a25 CMP qword ptr [RDI],0x34 MOV RBP,RDI MOV RBX,RSI JZ LAB_00115a48 MOV ESI,0x34 CALL g_type_check_class_is_a ;undefined g_type_check_class_is_a() TEST EAX,EAX JNZ LAB_00115a48 LAB_00115a25: ADD RSP,0x8 LEA RDX,[.rodata:s_G_IS_FLAGS_CLASS_(class)_00140d3b] ;= "G_IS_FLAGS_CLASS (class)" LEA RSI,[.rodata:__func__.15] ;= "g_flags_class_init" POP RBX LEA RDI,[.rodata:s_GLib-GObject_0013f3e8] ;= "GLib-GObject" POP RBP JMP .plt:::g_return_if_fail_warning ;undefined g_return_if_fail_warning() ?? 0Fh ?? 1Fh ?? 00h LAB_00115a48: MOV qword ptr [RBP + 0x8],0x0 MOV qword ptr [RBP + 0x10],RBX TEST RBX,RBX JZ LAB_00115a86 XOR EAX,EAX CMP qword ptr [RBX + 0x8],0x0 MOV EDX,0x1 JZ LAB_00115a86 NOP word ptr [RAX + RAX*0x1] LAB_00115a70: OR EAX,dword ptr [RBX] ADD RBX,0x18 MOV dword ptr [RBP + 0xc],EDX ADD EDX,0x1 MOV dword ptr [RBP + 0x8],EAX CMP qword ptr [RBX + 0x8],0x0 JNZ LAB_00115a70 LAB_00115a86: ADD RSP,0x8 POP RBX POP RBP RET ?? 0Fh Actual src: static void g_flags_class_init (GFlagsClass *class, gpointer class_data) { g_return_if_fail (G_IS_FLAGS_CLASS (class)); class->mask = 0; class->n_values = 0; class->values = class_data; if (class->values) { GFlagsValue *values; for (values = class->values; values->value_name; values++) { class->mask |= values->value; class->n_values++; } } } Predicted src: void g_class_init (GClass *class) { g_return_if_fail (G_IS_OBJECT (class)); g_return_if_fail (G_IS_OBJECT (class)); g_return_if_fail (G_IS_OBJECT (class)); class->flags = G_OBJECT_NONE; class->flags = G_OBJECT_NONE; } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined BKE_camera_multiview_model_matrix() PUSH RBP MOV RBP,RCX CALL BKE_camera_multiview_model_matrix_scaled ;undefined BKE_camera_multiview_model... MOV RDI,RBP POP RBP JMP normalize_m4 ;undefined normalize_m4() ?? 66h f Actual src: void BKE_camera_multiview_model_matrix(const RenderData *rd, const Object *camera, const char *viewname, float r_modelmat[4][4]) { BKE_camera_multiview_model_matrix_scaled(rd, camera, viewname, r_modelmat); normalize_m4(r_modelmat); } Predicted src: void BKE_matrix_view_matrix_matrix(bContext *C, ReportList *reports, PointerRNA *_ptr, ParameterList *_parms) { rna_matrix_view_matrix_matrix(_ptr, _parms); } ============================== Sample 3 ============================== ASM: MOV word ptr [RBP + local_3f0+0x8],AX LEA param_3=>local_3f0,[RBP + -0x3e8] LEA RAX=>local_3ee,[RBP + -0x3e6] MOV param_2,param_3 MOV param_1,RAX CALL poly_int<1u,unsigned_short>::poly_int ;undefined poly_int(p... MOVZX EAX,word ptr [RBP + local_3ee+0x8] MOV word ptr [RBP + local_3f2+0x8],AX LEA param_3=>local_3f8,[RBP + -0x3f0] LEA RAX=>local_3f2,[RBP + -0x3ea] MOV param_2,param_3 MOV param_1,RAX CALL operator* ;poly_int operator*(poly_int_pod * pa... MOV qword ptr [RBP + local_400+0x8],RAX LEA param_3=>local_400,[RBP + -0x3f8] LEA RAX=>local_402,[RBP + -0x3fa] MOV param_2,param_3 Actual src: scope_kind innermost_scope_kind (void) { return current_binding_level->kind; } Predicted src: void visit(Type *e) { visit((Type *)e); } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* idLBCache::Reset() * ;************************************************************************************************************************************************************ ;undefined Reset(idLBCache * this) ;this idLBCache * RDI PUSH R15 LEA R15,[this + 0xcc] PUSH R14 MOV R14,this PUSH R13 PUSH R12 PUSH RBP LEA RBP,[this + 0x4] PUSH RBX SUB RSP,0x8 LAB_0080c80c: MOV R13,qword ptr [RBP + 0x14] MOV dword ptr [RBP],0x0 TEST R13,R13 JZ LAB_0080c85c MOV EAX,dword ptr [RBP + 0x8] TEST EAX,EAX JLE LAB_0080c854 SUB EAX,0x1 LEA RBX,[R13 + 0x10] LEA RAX,[RAX + RAX*0x2] SHL RAX,0x6 LEA R12,[R13 + RAX*0x1 + 0xd0] NOP word ptr [RAX + RAX*0x1] LAB_0080c840: MOV this,RBX ADD RBX,0xc0 CALL idStr::FreeData ;undefined FreeData(idStr * this) CMP RBX,R12 JNZ LAB_0080c840 LAB_0080c854: MOV this,R13 LAB_0080c857: CALL Mem_Free16 ;undefined Mem_Free16(void * param_1) LAB_0080c85c: MOV qword ptr [RBP + 0x14],0x0 ADD RBP,0x28 MOV dword ptr [RBP + -0x24],0x0 MOV dword ptr [RBP + -0x20],0x0 CMP RBP,R15 JNZ LAB_0080c80c MOV qword ptr [R14 + 0xc8],0x0 XOR EAX,EAX MOV dword ptr [R14 + 0xd0],0x0 MOV qword ptr [R14 + 0xe8],0x0 MOV dword ptr [R14 + 0xf0],0x0 MOV qword ptr [R14 + 0xd8],0x0 MOV dword ptr [R14 + 0xe0],0x0 MOV word ptr [R14 + 0xe4],AX ADD RSP,0x8 POP RBX POP RBP POP R12 POP R13 POP R14 POP R15 RET ?? 66h f Actual src: void idLBCache::Reset() { for( int i = 0; i < NUM_ROW_BLOCKS; i++ ) { rowBlocks[i].startIndex = 0; rowBlocks[i].rows.Clear(); } def = NULL; filter = DEFAULT_LEADERBOARD_FILTER; pendingDef = NULL; pendingFilter = DEFAULT_LEADERBOARD_FILTER; rowOffset = 0; requestingRows = false; numRowsInLeaderboard = 0; entryIndex = 0; loadingNewLeaderboard = false; } Predicted src: void idCache::FreeCache() { int i; for (i = 0; i < MAX_SIZE; i++) { idCache[i] = 0; idCache[i] = 0; idCache[i] = 0; idCache[i] = 0; idCache[i] = 0; idCache[i] = 0; idCache[i] = 0; idCache[i] = 0; idCache[i] = 0; idCache[i] = 0; idCache[i] = 0; idCache[i] = 0; idCache[i] = 0; idCache[i] = 0; idCache[i] = 0; idCache[i] = 0; idCache[i] = 0; } } ============================== Sample 5 ============================== 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 graph_graph_clear_graph_count (graph_graph_t *graph) { assert (graph!= NULL); graph->count++; }