mirror of
https://github.com/reactos/reactos.git
synced 2024-08-19 01:48:11 +00:00
32 lines
873 B
ArmAsm
32 lines
873 B
ArmAsm
|
|
#include <asm.inc>
|
|
|
|
.code32
|
|
|
|
EXTERN _ndr_client_call:PROC
|
|
|
|
PUBLIC _call_stubless_func
|
|
_call_stubless_func:
|
|
|
|
mov ecx,[esp+4] /* This Pointer */
|
|
mov ecx,[ecx] /* This->lpVtbl */
|
|
mov ecx,[ecx-8] /* MIDL_STUBLESS_PROXY_INFO */
|
|
mov edx,[ecx+8] /* Info->FormatStringOffset */
|
|
mov edx,[edx+eax*2] /* FormatStringOffset[index] */
|
|
and edx, 0000FFFFh
|
|
add edx,[ecx+4] /* info->ProcFormatString + offset */
|
|
mov eax, [edx+8] /* arguments size */
|
|
and eax, 0000FFFFh
|
|
push eax
|
|
lea eax, [esp+8] /* &This */
|
|
push eax
|
|
push edx /* format string */
|
|
push [ecx] /* info->pstubdesc */
|
|
call _ndr_client_call
|
|
lea esp, [esp+12]
|
|
pop edx /* arguments size */
|
|
mov ecx, [esp] /* return address */
|
|
add esp, edx
|
|
jmp ecx
|
|
|
|
END |