rendered paste bodytypedef struct _WINDBG_EXTENSION_APIS {
ULONG nSize;
PWINDBG_OUTPUT_ROUTINE lpOutputRoutine;
PWINDBG_GET_EXPRESSION lpGetExpressionRoutine;
PWINDBG_GET_SYMBOL lpGetSymbolRoutine;
PWINDBG_DISASM lpDisasmRoutine;
PWINDBG_CHECK_CONTROL_C lpCheckControlCRoutine;
PWINDBG_READ_PROCESS_MEMORY_ROUTINE lpReadProcessMemoryRoutine;
PWINDBG_WRITE_PROCESS_MEMORY_ROUTINE lpWriteProcessMemoryRoutine;
PWINDBG_GET_THREAD_CONTEXT_ROUTINE lpGetThreadContextRoutine;
PWINDBG_SET_THREAD_CONTEXT_ROUTINE lpSetThreadContextRoutine;
PWINDBG_IOCTL_ROUTINE lpIoctlRoutine;
PWINDBG_STACKTRACE_ROUTINE lpStackTraceRoutine;
} WINDBG_EXTENSION_APIS, *PWINDBG_EXTENSION_APIS;
.text:0009BFAB sub_9BFAB proc near ; CODE XREF: sub_9CA46+13p
.text:0009BFAB
.text:0009BFAB arg_0 = dword ptr 4
.text:0009BFAB
.text:0009BFAB 000 push esi
.text:0009BFAC 004 push offset aWindbgextens_0 ; "WinDbgExtensionDllInit"
.text:0009BFB1 008 push [esp+8+arg_0] ; int
.text:0009BFB5 00C call get_function
.text:0009BFB5
.text:0009BFBA 004 mov esi, eax
.text:0009BFBC 004 test esi, esi
.text:0009BFBE 004 jz short loc_9BFF0
.text:0009BFBE
.text:0009BFC0 004 push esi
.text:0009BFC1 008 push offset aNticeFoundWind ; "NTICE: Found WinDbgExtensionDllInit at "...
.text:0009BFC6 00C call sub_7470E
.text:0009BFC6
.text:0009BFCB 00C movzx eax, word ptr ds:NtBuildNumber
.text:0009BFD2 00C pop ecx
.text:0009BFD3 008 pop ecx
.text:0009BFD4 004 push eax
.text:0009BFD5 008 mov ax, word_176E90
.text:0009BFDB 008 neg ax
.text:0009BFDE 008 sbb eax, eax
.text:0009BFE0 008 and eax, 0FFFFFFFDh
.text:0009BFE3 008 add eax, 0Fh
.text:0009BFE6 008 push eax
.text:0009BFE7 00C push offset ExtensionApis
.text:0009BFEC 010 call esi ; WinDbgExtensionDllInit
.data:0016B08C ExtensionApis WINDBG_EXTENSION_APIS <30h, offset sprintf_dumb_canary_check, \
.data:0016B08C ; DATA XREF: sub_9BFAB+3Co
.data:0016B08C offset sub_A023E, offset sub_A031A, \
.data:0016B08C offset sub_A03B2, offset sub_A0456, \
.data:0016B08C offset sub_A045C, offset sub_A049C, \
.data:0016B08C offset sub_A0A09, offset sub_A0B89, \
.data:0016B08C offset sub_A0E5C, offset sub_A050A>