tGFXAccess *pGFXAccess = 0x0f0422d; // sample address LPVOID ptr1 = pGFXAccess; __asm { // Save registers pushad // Restore these from after the dllobj was created mov eax, dwEax_setup mov ebx, dwEbx_setup mov ecx, dwEcx_setup mov edx, dwEdx_setup // Params to open the archive file for access push lpVar1 push paccess push pfilename // Code to open the archive file for access mov ecx, ptr1 mov edx, [ecx] mov eax, [edx + 0x10] // how do we calculate the place of function? LOL call eax // Store the result mov dwResult, eax // Restore registers popad }