Function at 0x180058520
Capabilities:
Get system information on windows

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x28]
sub rsp, 0x128
mov rax, qword [0x1801dd028]
xor rax, rsp
mov qword [rbp + 0x10], rax
mov r12, r9
mov rdi, r8
mov r15, rdx
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x48], rdx
xor r13d, r13d
mov rsi, qword [rcx + 0x10]
mov r14, qword [rcx + 0x18]
mov rbx, qword [rbp + 0x90]
cmp rsi, r14
je 0x1800586fd
mov r10, qword [rsi]
cmp qword [r10 + 8], r12
jb 0x1800585dd
mov r10, qword [r10 + 0x10]
test r10, r10
je 0x1800585dd
nop dword [rax]
mov r9, qword [r10 + 8]
mov rax, qword [r10 + 0x10]
sub rax, r9
cmp rax, r12
jb 0x1800585d5
mov qword [rbp + 8], rbx
mov qword [rbp - 0x40], r9
mov r11, qword [rdi + 8]
mov rax, qword [rdi]
cmp rax, r11
je 0x1800585e3
mov r8, qword [rax]
mov rdx, r8
sub rdx, r9
mov rcx, r9
sub rcx, r8
cmp r9, r8
cmovbe rcx, rdx
cmp rcx, rbx
ja 0x1800585d5
add rax, 8
jmp 0x1800585af
mov r10, qword [r10]
test r10, r10
jne 0x180058590
add rsi, 8
jmp 0x180058571
lea rax, [r9 + r12]
mov qword [r10 + 8], rax
mov r8, qword [rsp + 0x20]
mov rdx, qword [r8 + 8]
test rdx, rdx
je 0x180058911
mov eax, dword [rdx + 8]
test eax, eax
je 0x180058911
nop dword [rax + rax]
lea ecx, [rax + 1]
lock cmpxchg dword [rdx + 8], ecx
je 0x180058624
test eax, eax
je 0x180058911
jmp 0x180058610
mov rcx, qword [r8]
mov qword [rbp - 0x80], rcx
mov rax, qword [r8 + 8]
mov qword [rbp - 0x78], rax
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x40], r12
lea rdx, [rsp + 0x28]
mov rcx, r15
call fcn.180057e70
mov byte [r15 + 0x20], 1
mov edi, 0xffffffff
mov rcx, qword [rsp + 0x28]
test rcx, rcx
je 0x1800586b9
mov rdx, qword [rsp + 0x38]
test rdx, rdx
je 0x1800586b9
mov r8, qword [rsp + 0x40]
test r8, r8
je 0x1800586b9
call fcn.1800583b0
mov rbx, qword [rsp + 0x30]
mov qword [rsp + 0x30], r13
test rbx, rbx
je 0x1800586be
mov eax, edi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x1800586b9
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, edi
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x1800586b9
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
mov r13, qword [rsp + 0x30]
test r13, r13
je 0x18005890c
mov eax, edi
lock xadd dword [r13 + 8], eax
cmp eax, 1
jne 0x18005890c
mov rbx, qword [rsp + 0x30]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], edi
cmp edi, 1
jne 0x18005890c
mov rcx, qword [rsp + 0x30]
jmp 0x180058905
xorps xmm0, xmm0
movups xmmword [rbp - 0x38], xmm0
movups xmmword [rbp - 0x28], xmm0
movups xmmword [rbp - 0x18], xmm0
lea rcx, [rbp - 0x38]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [rbp - 0x34]
mov dword [rbp - 0x58], eax
mov eax, dword [rbp - 0x10]
mov dword [rbp - 0x54], eax
mov rax, qword [rbp - 0x58]
shr rax, 0x20
lea r14, [rax - 1]
add r14, r12
dec rax
not rax
and r14, rax
xorps xmm0, xmm0
movups xmmword [rbp - 8], xmm0
mov r9, rbx
mov r8, r14
mov rdx, rdi
lea rcx, [rbp - 8]
call fcn.180058920
cmp byte [rbp], r13b
jne 0x180058787
movzx ecx, byte [rbp - 8]
mov byte [r15], cl
mov byte [r15 + 0x20], r13b
mov rax, r15
mov rcx, qword [rbp + 0x10]
xor rcx, rsp
call fcn.180083800
add rsp, 0x128
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ecx, 0x18
call fcn.180083828
mov qword [rax], r13
mov qword [rax + 8], r13
mov qword [rax + 0x10], r13
mov qword [rsp + 0x48], rax
mov rcx, qword [rsp + 0x20]
add rcx, 0x10
mov rdx, qword [rcx + 8]
cmp rdx, qword [rcx + 0x10]
je 0x1800587c5
mov qword [rdx], rax
mov rdi, qword [rcx + 8]
lea rax, [rdi + 8]
mov qword [rcx + 8], rax
jmp 0x1800587d2
lea r8, [rsp + 0x48]
call fcn.18005a8f0
mov rdi, rax
mov rcx, qword [rdi]
mov r15, qword [rbp - 8]
mov qword [rcx], r15
mov rcx, qword [rdi]
mov qword [rcx + 8], r14
mov ecx, 0x18
call fcn.180083828
mov rbx, rax
mov qword [rax], r13
mov qword [rax + 8], r13
mov qword [rax + 0x10], r13
mov rax, qword [rdi]
add rax, 0x10
lea rcx, [rbp - 0x60]
cmp rax, rcx
je 0x180058823
mov rsi, qword [rax]
mov qword [rax], rbx
test rsi, rsi
je 0x180058838
mov rcx, rsi
call fcn.18005a770
mov rcx, rsi
jmp 0x18005882e
mov rcx, rbx
call fcn.18005a770
mov rcx, rbx
mov edx, 0x18
call fcn.180083820
lea rdx, [r12 + r15]
mov rax, qword [rdi]
mov rcx, qword [rax + 0x10]
mov qword [rcx + 8], rdx
lea rdx, [r15 + r14]
mov rax, qword [rdi]
mov rcx, qword [rax + 0x10]
mov qword [rcx + 0x10], rdx
mov r8, qword [rsp + 0x20]
mov rdx, qword [r8 + 8]
test rdx, rdx
je 0x180058911
mov eax, dword [rdx + 8]
test eax, eax
je 0x180058911
lea ecx, [rax + 1]
lock cmpxchg dword [rdx + 8], ecx
je 0x180058886
test eax, eax
jne 0x180058873
jmp 0x180058911
mov rcx, qword [r8]
mov qword [rbp - 0x70], rcx
mov rax, qword [r8 + 8]
mov qword [rbp - 0x68], rax
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], rax
mov rax, qword [rbp - 8]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], r12
lea rdx, [rsp + 0x58]
mov r15, qword [rsp + 0x50]
mov rcx, r15
call fcn.180057e70
mov byte [r15 + 0x20], 1
lea rcx, [rsp + 0x58]
call fcn.180057fe0
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x18005890c
mov edi, 0xffffffff
mov eax, edi
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x18005890c
mov rbx, qword [rsp + 0x60]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], edi
cmp edi, 1
jne 0x18005890c
mov rcx, qword [rsp + 0x60]
mov rax, qword [rcx]
call qword [rax + 8]
nop
jmp 0x180058764
call fcn.180057e10
int3