Function at 0x140090030
Capabilities:
Get system information on windows

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x250
mov rax, qword [0x14017b608]
xor rax, rsp
mov qword [rsp + 0x240], rax
mov rsi, rcx
mov rcx, qword [0x14017b048]
lea rbp, [0x14017b048]
cmp rcx, rbp
je 0x140090093
test dword [rcx + 0x1c], 0x200
je 0x140090093
cmp byte [rcx + 0x19], 4
jb 0x140090093
mov rcx, qword [rcx + 0x10]
lea r8, [0x14015a6e8]
mov edx, 0xf
call fcn.140004c10
and dword [rsp + 0x20], 0
test rsi, rsi
jne 0x1400900b5
lea r8, str.pwszSystemDevicePath
mov edx, 0xbf
lea rcx, str.base_stor_blbutil_systemutils.cpp
call fcn.140087b08
and qword [rsi], 0
lea rcx, [rsp + 0x30]
xor edx, edx
mov r8d, 0x208
call sub.msvcrt.dll_memset
xor edx, edx
lea r9, [rsp + 0x20]
xor r8d, r8d
lea ecx, [rdx + 0x62]
call qword [sym.imp.ntdll.dll_NtQuerySystemInformation]
nop dword [rax + rax]
mov ebx, 0xc0000023
test eax, eax
jns 0x140090149
cmp eax, ebx
je 0x140090149
cmp eax, 0x80000005
je 0x140090149
cmp eax, 0xc0000004
je 0x140090149
mov ecx, eax
call fcn.14003bcc4
mov ebx, eax
mov rcx, qword [0x14017b048]
cmp rcx, rbp
je 0x14009029f
test byte [rcx + 0x1c], 8
je 0x140090276
cmp byte [rcx + 0x19], 2
jb 0x140090276
mov rcx, qword [rcx + 0x10]
lea r8, [0x14015a6e8]
mov edx, 0x10
mov r9d, eax
call fcn.140004c3c
jmp 0x14009026f
mov ecx, dword [rsp + 0x20]
call qword [sym.imp.ole32.dll_CoTaskMemAlloc]
nop dword [rax + rax]
mov rdi, rax
test rax, rax
jne 0x14009016b
mov ebx, 0x8007000e
jmp 0x14009026f
mov r8d, dword [rsp + 0x20]
xor edx, edx
mov rcx, rdi
call sub.msvcrt.dll_memset
mov r8d, dword [rsp + 0x20]
lea r9, [rsp + 0x20]
mov rdx, rdi
mov ecx, 0x62
call qword [sym.imp.ntdll.dll_NtQuerySystemInformation]
nop dword [rax + rax]
test eax, eax
jns 0x1400901e3
mov ecx, eax
call fcn.14003bcc4
mov ebx, eax
mov rcx, qword [0x14017b048]
cmp rcx, rbp
je 0x140090260
test byte [rcx + 0x1c], 8
je 0x140090260
cmp byte [rcx + 0x19], 2
jb 0x140090260
mov rcx, qword [rcx + 0x10]
lea r8, [0x14015a6e8]
mov edx, 0x11
mov r9d, eax
call fcn.140004c3c
jmp 0x140090260
movzx edx, word [rdi]
lea rax, [rdx + 2]
cmp rax, 0x208
jbe 0x1400901fb
mov ecx, ebx
call fcn.14003bcc4
jmp 0x14009025e
test dl, 1
je 0x14009021b
lea r8, str.pSysInfo__SystemPartition.Length___sizeof_WCHAR___0
mov edx, 0xf0
lea rcx, str.base_stor_blbutil_systemutils.cpp
call fcn.140087b08
movzx edx, word [rdi]
movzx eax, dx
add eax, 8
cmp eax, dword [rsp + 0x20]
jbe 0x14009022e
mov ebx, 0x8000ffff
jmp 0x140090260
mov r8, qword [rdi + 8]
lea rcx, [rsp + 0x30]
movzx r9d, dx
mov edx, 0x104
shr r9, 1
call fcn.140087be8
mov ebx, eax
test eax, eax
js 0x140090260
xor r8d, r8d
lea rcx, [rsp + 0x30]
mov rdx, rsi
call fcn.1400889dc
mov ebx, eax
mov rcx, rdi
call qword [sym.imp.ole32.dll_CoTaskMemFree]
nop dword [rax + rax]
mov rcx, qword [0x14017b048]
cmp rcx, rbp
je 0x14009029f
test dword [rcx + 0x1c], 0x200
je 0x14009029f
cmp byte [rcx + 0x19], 4
jb 0x14009029f
mov rcx, qword [rcx + 0x10]
lea r8, [0x14015a6e8]
mov edx, 0x12
call fcn.140004c10
mov eax, ebx
mov rcx, qword [rsp + 0x240]
xor rcx, rsp
call fcn.14014bb60
lea r11, [rsp + 0x250]
mov rbx, qword [r11 + 0x18]
mov rbp, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret