============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined dpiStmt__check() PUSH R12 MOV RCX,RDX MOV R12,RDX MOV RDX,RSI PUSH RBP MOV ESI,0xfa3 MOV RBP,RDI SUB RSP,0x8 CALL .plt:dpiGen__startPublicFn ;undefined dpiGen__startPublicFn() TEST EAX,EAX JS LAB_0011ce70 CMP qword ptr [RBP + 0x28],0x0 JZ LAB_0011ce50 MOV RAX,qword ptr [RBP + 0x30] TEST RAX,RAX JZ LAB_0011ce08 CMP qword ptr [RAX + 0x28],0x0 JZ LAB_0011ce50 LAB_0011ce08: MOV RDI,qword ptr [RBP + 0x18] MOV RSI,R12 CALL .plt:dpiConn__checkConnected ;undefined dpiConn__checkConnected() TEST EAX,EAX JS LAB_0011ce70 XOR EAX,EAX CMP word ptr [RBP + 0x88],0x0 JZ LAB_0011ce30 LAB_0011ce24: ADD RSP,0x8 POP RBP POP R12 RET ?? 0Fh ?? 1Fh ?? 40h @ ?? 00h LAB_0011ce30: MOV RSI,R12 MOV RDI,RBP CALL .plt:dpiStmt__init ;undefined dpiStmt__init() ADD RSP,0x8 SAR EAX,0x1f POP RBP POP R12 RET ?? 66h f ?? 2Eh . ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_0011ce50: ADD RSP,0x8 MOV RDI,R12 MOV EDX,0x40e XOR EAX,EAX POP RBP LEA RSI,[.rodata:s_check_closed_0013b679] ;= "check closed" POP R12 JMP .plt:dpiError__set ;undefined dpiError__set(undefined pa... ?? 0Fh ?? 1Fh ?? 00h LAB_0011ce70: MOV EAX,0xffffffff JMP LAB_0011ce24 ?? 66h f Actual src: static int dpiStmt__check(dpiStmt *stmt, const char *fnName, dpiError *error) { if (dpiGen__startPublicFn(stmt, DPI_HTYPE_STMT, fnName, error) < 0) return DPI_FAILURE; if (!stmt->handle || (stmt->parentStmt &&!stmt->parentStmt->handle)) return dpiError__set(error, "check closed", DPI_ERR_STMT_CLOSED); if (dpiConn__checkConnected(stmt->conn, error) < 0) return DPI_FAILURE; if (stmt->statementType == 0 && dpiStmt__init(stmt, error) < 0) return DPI_FAILURE; return DPI_SUCCESS; } Predicted src: int dpiError__check(dpiError *error, dpiError *error) { dpiError error; if (dpiError__check(error) < 0) return dpiError__check_error(error); error = dpiError__check(error); if (error == NULL) return dpiError__check_error(error); if (dpiError__check(error) < 0) return dpiError__check_error(error, dpiError__check_error(error)); if (dpiError__check(error) < 0) return dpiError__check_error(error, dpiError__check_error(error)); return dpiError__check_error(error, dpiError__check_error(error)); } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined wvprintfx() JMP trio_vprintf ?? 66h f Actual src: int wvprintfx(const char* fmt, va_list args) { return trio_vprintf(fmt, args); } Predicted src: static void wio_wio(wio_t *wio, wio_t *wio) { wio_wio(wio); } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* ClpSolve::setSpecialOption(int, int, int) * ;************************************************************************************************************************************************************ ;undefined setSpecialOption(ClpSolve * this, int param_1, int param_2, int param_3) ;this ClpSolve * RDI ;param_1 int ESI ;param_2 int EDX ;param_3 int ECX MOVSXD param_1,param_1 MOV dword ptr [this + param_1*0x4 + 0xc],param_2 MOV dword ptr [this + param_1*0x4 + 0x28],param_3 RET ?? 0Fh Actual src: void ClpSolve::setSpecialOption(int which, int value, int extraInfo) { options_[which] = value; extraInfo_[which] = extraInfo; } Predicted src: voidOptionOption::setOption(int i, int i, int i) { m_i = i; m_i = i; } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined ioe_err_free() PUSH RBX MOV RBX,RDI MOV RDI,qword ptr [RDI] CALL .plt:free ;void free(void * __ptr) MOV RDI,qword ptr [RBX + 0x10] POP RBX JMP .plt:free ;void free(void * __ptr) ?? 66h f Actual src: void ioe_err_free(ioe_err_t *err) { free(err->path); free(err->msg); } Predicted src: void free_err_err(err_err_t err) { free(err->err); free(err); } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* idAnimBlend::GetCycleCount() const * ;************************************************************************************************************************************************************ ;undefined GetCycleCount(idAnimBlend * this) ;this idAnimBlend * RDI MOVSX EAX,word ptr [this + 0x34] RET ?? 90h Actual src: int idAnimBlend::GetCycleCount( void ) const { return cycle; } Predicted src: int idid::GetCount(void) const { return m_id; }