============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* _wrap_PyNs3WaveBsmStats_GetRxPktCount(PyNs3WaveBsmStats*, _object*, _object*) * ;************************************************************************************************************************************************************ ;undefined _wrap_PyNs3WaveBsmStats_GetRxPktCount(PyNs3WaveBsmStats * param_1, _object * param_2, _object * param_3) ;param_1 PyNs3WaveBs... RDI ;param_2 _object * RSI ;param_3 _object * RDX SUB RSP,0x8 MOV param_1,qword ptr [param_1 + 0x10] CALL .plt:::ns3::WaveBsmStats::GetRxPktCount ;undefined GetRxPktCount(void) LEA param_1,[.rodata:DAT_0018e091] ;= 69h i ADD RSP,0x8 MOV param_2,EAX XOR EAX,EAX JMP .plt:_Py_BuildValue_SizeT ;undefined _Py_BuildValue_SizeT() ?? 66h f Actual src: PyObject * _wrap_PyNs3WaveBsmStats_GetRxPktCount(PyNs3WaveBsmStats *self, PyObject *PYBINDGEN_UNUSED(_args), PyObject *PYBINDGEN_UNUSED(_kwargs)) { PyObject *py_retval; int retval; retval = self->obj->GetRxPktCount(); py_retval = Py_BuildValue((char *) "i", retval); return py_retval; } Predicted src: PyObject * _wrap_PyNs3WifiPhy_GetSerializedSize(PyNs3WifiPhy *self, PyObject *PYBINDGEN_UNUSED(_args), PyObject *PYBINDGEN_UNUSED(_kwargs)) { PyObject *py_retval; uint32_t retval; retval = self->obj->GetSerializedSize(); py_retval = Py_BuildValue((char *) "i", (int)retval); return py_retval; } ============================== Sample 2 ============================== 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: CBuffer CBuffer::GetBuffer() { return m_Buffer; } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined mp_rshd() TEST ESI,ESI JLE LAB_00191b00 PUSH RBP MOV RBP,RDI PUSH RBX SUB RSP,0x8 MOV R9D,dword ptr [RDI] CMP R9D,ESI JLE LAB_00191b08 MOV RDI,qword ptr [RDI + 0x10] MOV EBX,R9D MOVSXD RAX,ESI SUB EBX,ESI LEA R8,[RDI + RAX*0x8] TEST EBX,EBX JLE LAB_00191b18 MOVSXD RCX,EBX XOR EAX,EAX NOP LAB_00191ab0: MOV RDX,qword ptr [R8 + RAX*0x8] MOV qword ptr [RDI + RAX*0x8],RDX ADD RAX,0x1 CMP RCX,RAX JNZ LAB_00191ab0 LEA RDI,[RDI + RCX*0x8] CMP R9D,EBX JLE LAB_00191af0 MOV EAX,EBX LAB_00191acc: LEA EDX,[R9 + -0x1] SUB EDX,EAX ADD EAX,0x1 CMP R9D,EAX LEA RDX,[0x8 + RDX*0x8] MOV EAX,0x8 CMOVL RDX,RAX XOR ESI,ESI CALL .plt:::memset ;void * memset(void * __s, int __c, s... LAB_00191af0: MOV dword ptr [RBP],EBX ADD RSP,0x8 POP RBX POP RBP RET ?? 66h f ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_00191b00: RET ?? 0Fh ?? 1Fh ?? 80h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00191b08: ADD RSP,0x8 POP RBX POP RBP JMP .plt:mp_zero ;undefined mp_zero() ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_00191b18: XOR EAX,EAX JMP LAB_00191acc ?? 0Fh Actual src: void mp_rshd (mp_int * a, int b) { int x; /* if b <= 0 then ignore it */ if (b <= 0) { return; } /* if b > used then simply zero it and return */ if (a->used <= b) { mp_zero (a); return; } { mp_digit *bottom, *top; /* shift the digits down */ /* bottom */ bottom = a->dp; /* top [offset into digits] */ top = a->dp + b; /* this is implemented as a sliding window where * the window is b-digits long and digits from * the top of the window are copied to the bottom * * e.g. b-2 | b-1 | b0 | b1 | b2 |... | bb | ----> /\ | ----> \-------------------/ ----> */ for (x = 0; x < (a->used - b); x++) { *bottom++ = *top++; } /* zero the top digits */ for (; x < a->used; x++) { *bottom++ = 0; } } /* remove excess digits */ a->used -= b; } Predicted src: void mp_zero(mp_int *a, mp_int *b) { int i; mp_int *b; b = a[0]; b[1] = b[1]; b[2] = b[2]; for (i = 0; i < i; i++) b[i] = a[i]; } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined dtlsdecrypt_free_cb() PUSH RBX MOV RBX,RDI MOV RDI,qword ptr [RDI] CALL .plt.got:::g_free ;undefined g_free() MOV RDI,qword ptr [RBX + 0x8] CALL .plt.got:::g_free ;undefined g_free() MOV RDI,qword ptr [RBX + 0x10] CALL .plt.got:::g_free ;undefined g_free() MOV RDI,qword ptr [RBX + 0x18] CALL .plt.got:::g_free ;undefined g_free() MOV RDI,qword ptr [RBX + 0x20] POP RBX JMP .plt.got:::g_free ;undefined g_free() ?? 66h f Actual src: static void dtlsdecrypt_free_cb(void* r) { ssldecrypt_assoc_t* h = (ssldecrypt_assoc_t*)r; g_free(h->ipaddr); g_free(h->port); g_free(h->protocol); g_free(h->keyfile); g_free(h->password); } Predicted src: static void free_cb (gpointer user_data) { struct cb_data *data = user_data; g_free (data->path); g_free (data->path); g_free (data->path); g_free (data); } ============================== 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: CIMGUI_API void igCreatePtr(const char* label_id,const char* label_id,const char* label_id,const char* label_id,const char* label_id,const char* label_id,const char* label_id,const char* label_id,const char* label_id) { return ImGui::CreatePtr(label_id, label_id, label_id, label_id, label_id, label_id, label_id, label_id); }