10D548E7 |. 8B8250470000 |MOV EAX,[EDX+00004750] 10D548ED |. 8B10 |MOV EDX,[EAX] 10D548EF |. 53 |PUSH EBX => StartIndex 10D548F0 |. 8B5D18 |MOV EBX, [EBP+18] 10D548F3 |. 2B5D14 |SUB EBX, [EBP+14] 10D548F6 |. 43 |INC EBX 10D548F7 |. 53 |push ebx => NumVertices 10D548F8 |. 8B5D14 |MOV EBX, [EBP+14] 10D548FB |. 53 |PUSH EBX => MinIndex 10D548FC |. 51 |PUSH ECX =>BaseVertexIndex 10D548FD |. 6A04 |PUSH 04 => Type 10D548FF |. 50 |PUSH EAX => pDevice 10D54900 |.FF9248010000 |CALL DWORD PTR [EDX+00000148] => Call DrawIndexedPrimitive[/COLOR]
DWORD DIPEngine = 0xD548FD; // Search the address inside of MAT.exe, this address is for MAT
DWORD retDIPEngine = ( DIPEngine + 0x7 );
__declspec( naked ) HRESULT WINAPI DIPEngineMidfunction( VOID )
{
static LPDIRECT3DDEVICE9 pDevice;
__asm
{
PUSH EAX
MOV DWORD PTR DS:[pDevice], EAX
MOV EAX, DWORD PTR DS:[ECX + 0x148]
PUSHAD
}
pDevice->SetRenderState( D3DRS_ZENABLE, D3DZB_FALSE );
// Others stuffs here ...
__asm
{
POPAD
JMP DWORD PTR DS:[retDIPEngine]
}
}

