77 lines
1.4 KiB
NASM
77 lines
1.4 KiB
NASM
|
;EXTRN _NLG_Notify:NEAR
|
||
|
include ksamd64.inc
|
||
|
|
||
|
|
||
|
EXTRN _GetImageBase:NEAR
|
||
|
|
||
|
;;++
|
||
|
;;
|
||
|
;;extern "C" void* _CallSettingFrame(
|
||
|
;; void* handler,
|
||
|
;; EHRegistrationNode *pEstablisher,
|
||
|
;; ULONG NLG_CODE)
|
||
|
;;
|
||
|
;;--
|
||
|
|
||
|
|
||
|
_GP$=16
|
||
|
_handler$=32
|
||
|
_pEstablisher$=40
|
||
|
_NLG_CODE$=48
|
||
|
|
||
|
NESTED_ENTRY _CallSettingFrame, _TEXT$00
|
||
|
|
||
|
sub rsp, 24
|
||
|
.allocstack 24
|
||
|
.endprolog
|
||
|
mov QWORD PTR _handler$[rsp], rcx
|
||
|
mov QWORD PTR _pEstablisher$[rsp], rdx
|
||
|
mov DWORD PTR _NLG_CODE$[rsp], r8d
|
||
|
|
||
|
mov rdx, QWORD PTR _pEstablisher$[rsp]
|
||
|
mov rdx, QWORD PTR [rdx] ; *pEstablisher
|
||
|
mov rax, QWORD PTR _handler$[rsp]
|
||
|
call rax ; Call handler
|
||
|
|
||
|
mov QWORD PTR _GP$[rsp], rax
|
||
|
add rsp, 24
|
||
|
ret 0
|
||
|
NESTED_END _CallSettingFrame, _TEXT$00
|
||
|
|
||
|
|
||
|
;;++
|
||
|
;;
|
||
|
;;extern "C"
|
||
|
;;VOID
|
||
|
;;_GetNextInstrOffset (
|
||
|
;; PVOID* ppReturnPoint
|
||
|
;; );
|
||
|
;;
|
||
|
;;Routine Description:
|
||
|
;;
|
||
|
;; This function scans the scope tables associated with the specified
|
||
|
;; procedure and calls exception and termination handlers as necessary.
|
||
|
;;
|
||
|
;;Arguments:
|
||
|
;;
|
||
|
;; ppReturnPoint (r32) - store b0 in *pReturnPoint
|
||
|
;;
|
||
|
;;Return Value:
|
||
|
;;
|
||
|
;; None
|
||
|
;;
|
||
|
;;--
|
||
|
|
||
|
PUBLIC _GetNextInstrOffset
|
||
|
_TEXT SEGMENT
|
||
|
_GetNextInstrOffset PROC NEAR
|
||
|
|
||
|
mov rax, QWORD PTR[rsp]
|
||
|
mov QWORD PTR [rcx], rax
|
||
|
ret 0
|
||
|
|
||
|
_GetNextInstrOffset ENDP
|
||
|
_TEXT ENDS
|
||
|
|
||
|
END
|