excp. handler
fffff80001040340
fffff800010403e5 je sti
fffff800010403e6 su interrupty enablnute




0010:FFFFF80001058D49 E8F2020000       call loc_fffff80001059040h call KeContextFromKframes



0010:FFFFF80001058D4E 813B03000080     cmp [rbx],80000003h
0010:FFFFF80001058D54 7508             jnz loc_fffff80001058d5eh
0010:FFFFF80001058D56 48FF8C24F8010000 dec qword [rsp+000001f8h]
    //
    // If the exception is a break point, then convert the break point to a
    // fault.
    //

    if (ExceptionRecord->ExceptionCode == STATUS_BREAKPOINT) {
        ContextRecord.Rip -= 1;
    }







0010:FFFFF80001058D79 4584ED           test r13b,r13b
0010:FFFFF80001058D7C 0F859491FBFF     jnz loc_fffff80001011f16h
    if (PreviousMode == KernelMode) {


0010:FFFFF80001058D82 4438AC2420060000 cmp [rsp+00000620h],r13b
0010:FFFFF80001058D8A 0F848A150400     jz loc_fffff8000109a31ah
        if (FirstChance != FALSE) {



0010:FFFFF80001058D90 44886C2428       mov [rsp+28h],r13b
0010:FFFFF80001058D95 44886C2420       mov [rsp+20h],r13b
0010:FFFFF80001058D9A 4C8D8C2400010000 lea r9,[rsp+00000100h]
0010:FFFFF80001058DA2 4C8BC3           mov r8,rbx
0010:FFFFF80001058DA5 498BD4           mov rdx,r12
0010:FFFFF80001058DA8 488BCF           mov rcx,rdi
0010:FFFFF80001058DAB FF156F9E1100     call qword [loc_fffff80001172c20h]($+119e75)
0010:FFFFF80001058DB1 84C0             test al,al
0010:FFFFF80001058DB3 0F84EA9EFDFF     jz loc_fffff80001032ca3h
            if ((KiDebugRoutine)(TrapFrame,
                                 ExceptionFrame,
                                 ExceptionRecord,
                                 &ContextRecord,
                                 PreviousMode,
                                 FALSE) != FALSE) {

                goto Handled1;
            }



0010:FFFFF80001058DB9 44886C2420       mov [rsp+20h],r13b
0010:FFFFF80001058DBE 448B8C2430010000 mov r9d,[rsp+00000130h]
0010:FFFFF80001058DC6 4C8D842400010000 lea r8,[rsp+00000100h]
0010:FFFFF80001058DCE 498BD4           mov rdx,r12
0010:FFFFF80001058DD1 488BCF           mov rcx,rdi
0010:FFFFF80001058DD4 E8678CFEFF       call loc_fffff80001041a40h
0010:FFFFF80001058DD9 EB00             jmp loc_fffff80001058ddbh
            //
            // Kernel debugger didn't handle exception.
            //
            // If interrupts are disabled, then bugcheck.
            //

            if (RtlDispatchException(ExceptionRecord, &ContextRecord) != FALSE) {
                goto Handled1;
            }
        }








0010:FFFFF80001030C91 4D8B7C2410       mov r15,[r12+10h]
    ControlPc = (ULONG64)ExceptionRecord->ExceptionAddress;





0010:FFFFF80001030A82 488D542460       lea rdx,[rsp+60h]
0010:FFFFF80001030A87 4C8BC0           mov r8,rax
0010:FFFFF80001030A8A 498BCF           mov rcx,r15
0010:FFFFF80001030A8D E84E970200       call loc_fffff8000105a1e0h
        //
        // Lookup the function table entry using the point at which control
        // left the procedure.
        //

        FunctionEntry = RtlLookupFunctionEntry(ControlPc,
                                               &ImageBase,
                                               HistoryTable);






0010:FFFFF8000105A1E0
RtlLookupFunctionEntry







PsInvertedFunctionTable SP1 = FFFFF80001171880h











SP2
nt!KiDivideErrorFault:
fffff800`0102c4c0 4883ec08        sub     rsp,8
...
nt!KiDivideErrorFault+0xb2:
fffff800`0102c572 e849210000      call    nt!KiExceptionDispatch (fffff800`0102e6c0)


nt!KiExceptionDispatch+0xaa:
fffff800`0102e76a e801700200      call    nt!KiDispatchException (fffff800`01055770)
