Function at 0x78bfbf80
Capabilities:
Get windows directory from kuser_shared_data

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x2a0
mov rax, qword [0x78c09100]
xor rax, rsp
mov qword [rsp + 0x290], rax
mov eax, dword [0x78c0a780]
xor ebx, ebx
lea esi, [rbx + 1]
mov qword [rsp + 0x20], rbx
cmp eax, esi
jne 0x78bfbfc1
mov edi, ebx
jmp 0x78bfbfd8
or rbp, 0xffffffffffffffff
cmp eax, ebp
jne 0x78bfc003
mov edi, 0xc0000001
xor eax, eax
lock cmpxchg dword [0x78c0a780], ebp
mov eax, edi
mov rcx, qword [rsp + 0x290]
xor rcx, rsp
call fcn.78bfdec0
lea r11, [rsp + 0x2a0]
mov rbx, qword [r11 + 0x10]
mov rbp, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret
xor eax, eax
mov edx, 0x7ffe0030
mov rcx, rbp
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
sub rcx, rsi
lea eax, [rcx + rcx + 0x2c]
mov ecx, 0x208
cmp eax, ecx
jbe 0x78bfc02d
mov edi, 0xc0000023
jmp 0x78bfbfce
lea rax, [rsp + 0x80]
mov word [rsp + 0x2a], cx
lea rcx, [rsp + 0x28]
mov qword [rsp + 0x30], rax
mov word [rsp + 0x28], bx
call qword [fcn.78bd1140]
cmp eax, ebx
mov edi, eax
jl 0x78bfbfce
lea rdx, [0x78bd3680]
lea rcx, [rsp + 0x28]
call qword [fcn.78bd1148]
cmp eax, ebx
mov edi, eax
jl 0x78bfbfce
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
xor edx, edx
xor ecx, ecx
call qword [0x78bd1088]
cmp eax, ebx
mov edi, eax
jl 0x78bfbfce
mov rdx, qword [rsp + 0x20]
mov ecx, esi
call qword [0x78bd1328]
cmp eax, ebx
mov edi, eax
jl 0x78bfbfce
mov rcx, qword [rsp + 0x20]
lea r9, [rsp + 0x58]
lea rdx, [0x78bd3690]
xor r8d, r8d
call qword [0x78bd1098]
cmp eax, ebx
mov edi, eax
jl 0x78bfbfce
mov rcx, qword [rsp + 0x20]
lea r9, [rsp + 0x60]
lea rdx, [0x78bd36a0]
xor r8d, r8d
call qword [0x78bd1098]
cmp eax, ebx
mov edi, eax
jl 0x78bfbfce
mov rcx, qword [rsp + 0x20]
lea r9, [rsp + 0x70]
lea rdx, [0x78bd36b0]
xor r8d, r8d
call qword [0x78bd1098]
cmp eax, ebx
mov edi, eax
jl 0x78bfbfce
mov rcx, qword [rsp + 0x20]
lea r9, [rsp + 0x68]
lea rdx, [0x78bd36c0]
xor r8d, r8d
call qword [0x78bd1098]
cmp eax, ebx
mov edi, eax
jl 0x78bfbfce
mov rcx, qword [rsp + 0x20]
lea r9, [rsp + 0x50]
lea rdx, [0x78bd36d0]
xor r8d, r8d
call qword [0x78bd1098]
cmp eax, ebx
mov edi, eax
jl 0x78bfbfce
mov rcx, qword [rsp + 0x20]
lea r9, [rsp + 0x38]
lea rdx, [0x78bd36e0]
xor r8d, r8d
call qword [0x78bd1098]
cmp eax, ebx
mov edi, eax
jl 0x78bfbfce
mov rcx, qword [rsp + 0x20]
lea r9, [rsp + 0x40]
lea rdx, [0x78bd36f0]
xor r8d, r8d
call qword [0x78bd1098]
cmp eax, ebx
mov edi, eax
jl 0x78bfbfce
mov rcx, qword [rsp + 0x20]
lea r9, [rsp + 0x48]
lea rdx, [0x78bd3700]
xor r8d, r8d
call qword [0x78bd1098]
cmp eax, ebx
mov edi, eax
jl 0x78bfbfce
mov rcx, qword [rsp + 0x58]
call qword [0x78bd1320]
mov rdx, rax
xor eax, eax
lock cmpxchg qword [0x78c0a788], rdx
mov rcx, qword [rsp + 0x60]
call qword [0x78bd1320]
mov rdx, rax
xor eax, eax
lock cmpxchg qword [0x78c0a790], rdx
mov rcx, qword [rsp + 0x68]
call qword [0x78bd1320]
mov rdx, rax
xor eax, eax
lock cmpxchg qword [0x78c0a7a0], rdx
mov rcx, qword [rsp + 0x50]
call qword [0x78bd1320]
mov rdx, rax
xor eax, eax
lock cmpxchg qword [0x78c0a7a8], rdx
mov rcx, qword [rsp + 0x38]
call qword [0x78bd1320]
mov rdx, rax
xor eax, eax
lock cmpxchg qword [0x78c0a7b0], rdx
mov rcx, qword [rsp + 0x40]
call qword [0x78bd1320]
mov rdx, rax
xor eax, eax
lock cmpxchg qword [0x78c0a7b8], rdx
mov rcx, qword [rsp + 0x48]
call qword [0x78bd1320]
mov rdx, rax
xor eax, eax
lock cmpxchg qword [0x78c0a7c0], rdx
xor eax, eax
lock cmpxchg dword [0x78c0a780], esi
jmp 0x78bfbfd8