============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined allocate_row() PUSH RBX MOV RAX,qword ptr [RDI] MOV RBX,RDI LEA RDI,[RAX + 0x10] CALL .plt:shash_count ;undefined shash_count() MOV R8,RAX MOV RAX,qword ptr [RBX] LEA RDX,[R8 + R8*0x2] MOV RAX,qword ptr [RAX + 0x38] SHL RAX,0x4 LEA RDI,[RAX + RDX*0x8 + 0x48] CALL .plt:xmalloc ;undefined xmalloc() LEA RDX,[RAX + 0x20] MOV qword ptr [RAX + 0x10],RBX MOV qword ptr [RAX + 0x20],RDX MOV qword ptr [RAX + 0x28],RDX LEA RDX,[RAX + 0x30] MOV qword ptr [RAX + 0x18],0x0 MOV qword ptr [RAX + 0x30],RDX MOV qword ptr [RAX + 0x38],RDX MOV qword ptr [RAX + 0x40],0x0 POP RBX RET ?? 66h f Actual src: static struct ovsdb_row * allocate_row(const struct ovsdb_table *table) { size_t n_fields = shash_count(&table->schema->columns); size_t n_indexes = table->schema->n_indexes; size_t row_size = (offsetof(struct ovsdb_row, fields) + sizeof(struct ovsdb_datum) * n_fields + sizeof(struct hmap_node) * n_indexes); struct ovsdb_row *row = xmalloc(row_size); row->table = CONST_CAST(struct ovsdb_table *, table); row->txn_row = NULL; ovs_list_init(&row->src_refs); ovs_list_init(&row->dst_refs); row->n_refs = 0; return row; } Predicted src: static void row_count(struct row_row *row) { struct row_row *row = row_new(struct row_row); row->row_count = row->row_count; row->row_count = row->row_count; row->row_count = row->row_count; row->row_count = row->row_count; row->row_count = row->row_count; } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined ProfilerGetCurrentState() MOV RSI,RDI MOV RDI,qword ptr [->CpuProfiler::instance_] ;= 00151640 JMP .plt:LAB_00117330 ?? 90h Actual src: void ProfilerGetCurrentState( ProfilerState* state) { CpuProfiler::instance_.GetCurrentState(state); } Predicted src: CIMGUI_API void ImPlot_instance(const char* name) { return ImGui::instance()->instance()->instance(); } ============================== Sample 3 ============================== 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_view_matrix_model_matrix(bContext *C, ReportList *reports, PointerRNA *_ptr, ParameterList *_parms) { struct Object *_self; _self = (struct Object *)_ptr->data; rna_view_matrix_model_matrix(_self, _self); } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined parser_isexpr() ;local_10 undefined8 -10 ;local_14 undefined4 -14 ;local_20 undefined8 -20 ;local_28 undefined8 -28 ;local_30 undefined8 -30 PUSH RBP MOV RBP,RSP SUB RSP,0x30 MOV qword ptr [RBP + local_20+0x8],RDI MOV qword ptr [RBP + local_28+0x8],RSI MOV qword ptr [RBP + local_30+0x8],RDX MOV qword ptr [RBP + local_10+0x8],0x0 MOV RAX,qword ptr [RBP + local_20+0x8] TEST RAX,RAX JNZ LAB_00102ebc LEA RDX=>local_20,[RBP + -0x18] MOV RSI,qword ptr [RBP + local_30+0x8] MOV RAX,qword ptr [RBP + local_28+0x8] MOV R9,RDX LEA R8,[.data:PyST_Type] LEA RDX,[.data:keywords.4] MOV RCX=>.data:keywords.4,RDX LEA RDX,[.rodata:s_O!:isexpr_0010d2cc] ;= "O!:isexpr" MOV RDI,RAX MOV EAX,0x0 CALL .plt:PyArg_ParseTupleAndKeywords ;undefined PyArg_ParseTupleAndKeywords() MOV dword ptr [RBP + local_14+0x8],EAX JMP LAB_00102ee5 LAB_00102ebc: MOV RSI,qword ptr [RBP + local_30+0x8] MOV RAX,qword ptr [RBP + local_28+0x8] LEA RDX,[.data:keywords.4[8]] MOV RCX=>.data:keywords.4[8],RDX LEA RDX,[.rodata:s_:isexpr_0010d2d6] ;= ":isexpr" MOV RDI,RAX MOV EAX,0x0 CALL .plt:PyArg_ParseTupleAndKeywords ;undefined PyArg_ParseTupleAndKeywords() MOV dword ptr [RBP + local_14+0x8],EAX LAB_00102ee5: CMP dword ptr [RBP + local_14+0x8],0x0 JZ LAB_00102f37 MOV RAX,qword ptr [RBP + local_20+0x8] MOV EAX,dword ptr [RAX + 0x28] CMP EAX,0x1 JNZ LAB_00102f00 MOV RAX,qword ptr [->_Py_TrueStruct] ;= 00112170 JMP LAB_00102f07 LAB_00102f00: MOV RAX,qword ptr [->_Py_ZeroStruct] ;= 00112020 LAB_00102f07: ; FWD[3,0]: Stack[-0x10],00112020,00112170 MOV qword ptr [RBP + local_10+0x8],RAX=>EXTERNAL:_Py_TrueStruct ;=?? MOV RAX,qword ptr [->_Py_RefTotal] ;= 00112178 MOV RAX=>EXTERNAL:_Py_RefTotal,qword ptr [RAX] ;=?? LEA RDX,[RAX + 0x1] MOV RAX,qword ptr [->_Py_RefTotal] ;= 00112178 MOV qword ptr [RAX]=>EXTERNAL:_Py_RefTotal,RDX ;=?? MOV RAX,qword ptr [RBP + local_10+0x8] ; FWD[2,0]: 00112030,00112180 MOV RAX,qword ptr [RAX + 0x10]=>EXTERNAL:PyDict_New ;=?? LEA RDX,[RAX + 0x1] MOV RAX,qword ptr [RBP + local_10+0x8] ; FWD[2,0]: 00112030,00112180 MOV qword ptr [RAX + 0x10]=>EXTERNAL:PyDict_New,RDX ;=?? LAB_00102f37: ; FWD[3,0]: Stack[-0x10],00112020,00112170 MOV RAX=>EXTERNAL:_Py_TrueStruct,qword ptr [RBP + local_10+0x8] ;=?? LEAVE RET ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined parser_issuite() ;local_10 undefined8 -10 ;local_14 undefined4 -14 ;local_20 undefined8 -20 ;local_28 undefined8 -28 ;local_30 undefined8 -30 PUSH RBP Actual src: static PyObject* parser_isexpr(PyST_Object *self, PyObject *args, PyObject *kw) { PyObject* res = 0; int ok; static char *keywords[] = {"ast", NULL}; if (self == NULL) ok = PyArg_ParseTupleAndKeywords(args, kw, "O!:isexpr", keywords, &PyST_Type, &self); else ok = PyArg_ParseTupleAndKeywords(args, kw, ":isexpr", &keywords[1]); if (ok) { /* Check to see if the ST represents an expression or not. */ res = (self->st_type == PyST_EXPR)? Py_True : Py_False; Py_INCREF(res); } return (res); } Predicted src: static PyObject * PyInit_is(PyObject *self, PyObject *args) { PyObject *return_value = NULL; if (!PyArg_ParseTuple(args, "O!", &PyInit_Type, &PyInit_Type, &PyInit_Type, &PyInit_Type)) return NULL; Py_INCREF(Py_None); return Py_None; } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined razer_string_to_bool() ;local_20 undefined8 -20 ;local_1010 undefined8 -1010 ;local_1048 undefined8 -1048 PUSH RBP PUSH RBX SUB RSP,0x1000 OR qword ptr [RSP]=>local_1010,0x0 SUB RSP,0x38 OR qword ptr [RSP]=>local_1048,0x0 ADD RSP,0x1020 MOV RBP,RSI LEA RSI,[.rodata:DAT_0011926e] ;= 79h y MOV RBX,RDI CALL .plt:::strcasecmp ;int strcasecmp(char * __s1, char * _... TEST EAX,EAX JZ LAB_0010b250 LEA RSI,[.rodata:DAT_00119272] ;= 74h t MOV RDI,RBX CALL .plt:::strcasecmp ;int strcasecmp(char * __s1, char * _... TEST EAX,EAX JZ LAB_0010b250 LEA RSI,[.rodata:s_on_0011817d+5] ;= "on" MOV RDI,RBX CALL .plt:::strcasecmp ;int strcasecmp(char * __s1, char * _... TEST EAX,EAX JZ LAB_0010b250 LEA RSI,[.rodata:DAT_00119277] ;= 6Eh n MOV RDI,RBX CALL .plt:::strcasecmp ;int strcasecmp(char * __s1, char * _... TEST EAX,EAX JZ LAB_0010b260 LEA RSI,[.rodata:s_false_0011927a] ;= "false" MOV RDI,RBX CALL .plt:::strcasecmp ;int strcasecmp(char * __s1, char * _... TEST EAX,EAX JZ LAB_0010b260 LEA RSI,[.rodata:DAT_00119280] ;= 6Fh o MOV RDI,RBX CALL .plt:::strcasecmp ;int strcasecmp(char * __s1, char * _... TEST EAX,EAX JZ LAB_0010b260 XOR EDX,EDX LEA RSI=>local_20,[RSP + 0x8] MOV RDI,RBX CALL .plt:::strtol ;long strtol(char * __nptr, char * *... MOV RDX,qword ptr [RSP + local_20+0x28] CMP RBX,RDX JZ LAB_0010b26d CMP byte ptr [RDX],0x0 JNZ LAB_0010b26d TEST EAX,EAX SETNZ byte ptr [RBP] XOR EAX,EAX JMP LAB_0010b256 ?? 90h LAB_0010b250: MOV byte ptr [RBP],0x1 XOR EAX,EAX LAB_0010b256: ADD RSP,0x18 POP RBX POP RBP RET ?? 0Fh ?? 1Fh ?? 00h LAB_0010b260: MOV byte ptr [RBP],0x0 ADD RSP,0x18 XOR EAX,EAX POP RBX POP RBP RET LAB_0010b26d: MOV EAX,0xffffffea JMP LAB_0010b256 ?? 66h f Actual src: int razer_string_to_bool(const char *string, bool *b) { int i; if (strcasecmp(string, "yes") == 0 || strcasecmp(string, "true") == 0 || strcasecmp(string, "on") == 0) { *b = 1; return 0; } if (strcasecmp(string, "no") == 0 || strcasecmp(string, "false") == 0 || strcasecmp(string, "off") == 0) { *b = 0; return 0; } if (!razer_string_to_int(string, &i)) { *b =!!i; return 0; } return -EINVAL; } Predicted src: static int parse_bool(const char *key, const char *value) { const char *val = NULL; const char *val = NULL; if (!strcasecmp(key, "0") ||!strcasecmp(val, "0") ||!strcasecmp(val, "0") ||!strcasecmp(val, "0") ||!strcasecmp(val, "0") ||!strcasecmp(val, "0") ||!strcasecmp(val, "0") ||!strcasecmp(val, "0") ||!strcasecmp(val, "0") ||!strcasecmp(val, "0") ||!strcasecmp(val, "0") ||!strcasecmp(val, "0") ||!strcasecmp(val, "0") ||!strcasecmp(val, "0") ||!strcasecmp(val, "0") ||!strcasecmp(val, "0") ||!strcasecmp(val, "0") ||!strcasecmp(val, "0") ||!strcasecmp(val, "0") ||!strcasecmp(val, "0") ||!strcasecmp(val, "0") ||!strcasecmp(val, "0") ||!strcasecmp(val, "0") ||!strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0 ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0 ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0 ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0 ||strcasecmp(val, "0") ||strcasecmp(val, "0 ||strcasecmp(val, "0 ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0 ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0 ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0 ||strcasecmp(val, "0 ||strcasecmp(val, "0") ||strcasecmp(val, "0 ||strcasecmp(val, "0") ||strcasecmp(val, "0 ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0") ||strcasecmp(val, "0 ||strcasecmp(val, "0 ||strcasecmp(val, "0 ||strcasecmp(val, "0 |