Function at 0x180064050
Capabilities:
Get system information on windows

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xd8
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
mov rax, qword [0x1800cb028]
xor rax, rsp
mov qword [rsp + 0xd0], rax
mov eax, dword [0x1800cb774]
mov ecx, dword [0x1800cb4e0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1800640f4
xor r14d, r14d
cmp rbx, 0x1000
ja 0x1800640cd
cmp byte [0x1800cb770], 0
je 0x1800640cd
mov rax, qword [0x1800cb648]
mov eax, dword [rax + 0x14810]
cmp eax, 1
je 0x18006422c
xor r14d, r14d
mov rcx, qword [rsp + 0xd0]
xor rcx, rsp
call fcn.180062020
mov rax, r14
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [0x1800cb774]
call fcn.180060ac0
cmp dword [0x1800cb774], 0xffffffff
jne 0x18006409f
mov eax, dword [0x1800cb600]
mov ecx, dword [0x1800cb4e0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jle 0x180064164
lea rcx, [0x1800cb600]
call fcn.180060ac0
cmp dword [0x1800cb600], 0xffffffff
jne 0x180064164
lea r14, [rsp + 0x48]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [r14 + 4]
mov qword [0x1800cb5f8], rax
lea rcx, [0x1800cb600]
call fcn.180060b40
mov r15, qword [0x1800cb5f8]
cmp r15, 0x1000
jne 0x18006420d
call fcn.180002fa0
mov qword [0x1800cb640], rax
mov eax, dword [0x1800cb4e0]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp byte [rax + 8], 0
je 0x1800644f7
call fcn.180002e80
mov qword [0x1800cb648], rax
lea r14, [0x1800cb618]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rax, qword [0x1800cb648]
mov rcx, qword [rax]
mov rdx, qword [rax + 8]
mov qword [rax], rdx
mov r8, rcx
shl r8, 0x17
xor r8, rcx
mov rcx, rdx
shr rcx, 0x1a
xor rcx, rdx
xor rcx, r8
shr r8, 0x11
xor r8, rcx
mov qword [rax + 8], r8
add edx, r8d
and edx, 0x1ffff
inc edx
mov dword [0x1800cb610], edx
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp r15, 0x1000
sete byte [0x1800cb770]
lea rcx, [0x1800cb774]
call fcn.180060b40
jmp 0x18006409f
lock inc qword [0x1800cb608]
lock dec dword [0x1800cb610]
jne 0x1800640ca
mov eax, dword [0x1800cb4e0]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp byte [rax + 8], 0
jne 0x180064262
call fcn.180060de8
mov eax, dword [0x1800cb4e0]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp byte [rax + 9], 0
jne 0x1800640ca
mov eax, dword [0x1800cb4e0]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp byte [rax + 8], 0
jne 0x1800642a3
call fcn.180060de8
mov eax, dword [0x1800cb4e0]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov byte [rax + 9], 1
lea r9, [rsp + 0x48]
mov qword [r9], 0
mov rdx, qword [rsp + 0x118]
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
lea rcx, [0x180067240]
mov r8d, 0x10
call fcn.18009d790
lea rcx, [0x1800cb618]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rax, qword [0x1800cb608]
mov qword [rsp + 0x40], rax
mov r12, qword [0x1800cb648]
mov rcx, qword [r12]
mov rdx, qword [r12 + 8]
mov rax, rcx
shl rax, 0x17
xor rax, rcx
mov rcx, rdx
shr rcx, 0x1a
xor rcx, rdx
xor rcx, rax
shr rax, 0x11
xor rax, rcx
lea ecx, [rdx + rax]
and ecx, 0x7fff
inc ecx
mov dword [rsp + 0x34], ecx
mov qword [r12], rax
mov rcx, rdx
shl rcx, 0x17
xor rcx, rdx
mov rbp, rcx
shr rbp, 0x11
mov rdx, rax
shr rdx, 0x1a
xor rbp, rcx
xor rbp, rax
xor rbp, rdx
mov qword [r12 + 8], rbp
add rbp, rax
mov r15d, 0x100
xor r14d, r14d
movzx ebp, bpl
imul r13, rbp, 0x148
cmp dword [r12 + r13 + 0x10], 1
je 0x1800643dc
mov rax, qword [rsp + 0x40]
cmp qword [r12 + r13 + 0x150], rax
ja 0x1800643dc
mov rax, qword [0x1800cb640]
mov rax, qword [rax]
mov rcx, rbp
shl rcx, 0xd
add rcx, rax
add rcx, 0x1000
mov edx, 0x1000
mov qword [rsp + 0x38], rcx
mov r8d, 0x1000
mov r9d, 4
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov r12, qword [0x1800cb648]
test rax, rax
jne 0x180064405
inc rbp
dec r15
jne 0x180064377
mov eax, dword [rsp + 0x34]
mov dword [0x1800cb610], eax
lea rcx, [0x1800cb618]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call fcn.180067250
jmp 0x1800640cd
cmp rbx, 8
ja 0x1800644bc
mov rax, rbx
mov ecx, 0x40
dec rax
je 0x180064424
bsr rcx, rax
xor rcx, 0x3f
neg cl
mov eax, 1
shl rax, cl
cmp rax, 0x11
mov ecx, 0x10
cmovb rax, rcx
cmp rbx, 2
cmovb rax, rcx
mov rcx, qword [rsp + 0x38]
sub rcx, rax
add rcx, 0x1000
mov r14, rdi
neg r14
and r14, rcx
cmp rdi, 1
cmove r14, rcx
lea rdi, [r12 + r13 + 0x30]
mov dword [rdi - 0x20], 1
movups xmm0, xmmword [rsi]
movups xmmword [rdi - 0x18], xmm0
mov qword [rdi - 8], r14
lea rdx, [rsp + 0x48]
mov r8d, 0x88
mov rcx, rdi
call sub.VCRUNTIME140.dll_memmove
mov byte [rdi + 0x88], 1
cmp byte [rdi + 0x118], 0
je 0x1800644ab
mov eax, 0x148
add rax, r13
add rax, r12
mov byte [rax], 0
mov qword [r12 + r13 + 0x150], 0xffffffffffffffff
jmp 0x1800643e4
cmp rbx, 0x1f0
ja 0x1800644d5
add rbx, 0xf
and rbx, 0xfffffffffffffff0
mov rax, rbx
jmp 0x180064443
mov eax, 0x1000
cmp rbx, 0xf00
ja 0x180064443
add rbx, 0xff
and rbx, 0xffffffffffffff00
jmp 0x1800644cd
call fcn.180060de8
jmp 0x1800641a4