Function at 0x180060558
Capabilities:
Get system information on windows

Disassembly:
mov rax, rsp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x1b0
mov qword [rax - 0x138], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov rax, qword [0x1800c9088]
xor rax, rsp
mov qword [rsp + 0x1a0], rax
mov rbx, rdx
mov rdi, rcx
mov qword [rsp + 0x20], rcx
mov r14, rcx
mov qword [rsp + 0x28], rdx
mov r12, rdx
mov r15, qword [rcx + 0x18]
test r15, r15
jne 0x1800605e4
lea rax, [0x1800c9a10]
mov rcx, qword [0x1800c9a10]
cmp rcx, rax
je 0x1800605dd
test byte [rcx + 0x1c], 1
je 0x1800605dd
cmp byte [rcx + 0x19], 2
jb 0x1800605dd
lea edx, [r15 + 0x11]
lea r8, [0x1800a1e50]
mov rcx, qword [rcx + 0x10]
call fcn.180001ae4
xor eax, eax
jmp 0x1800609cb
mov r9, qword [rcx + 0x10]
cmp r9, rbx
jne 0x180060632
mov rcx, r15
lea rax, [0x1800c9a10]
mov r9, qword [0x1800c9a10]
cmp r9, rax
je 0x18006062a
test byte [r9 + 0x1c], 1
je 0x18006062a
cmp byte [r9 + 0x19], 3
jb 0x18006062a
mov edx, SafeArrayAccessData
lea r8, [0x1800a1e50]
mov rcx, qword [r9 + 0x10]
call fcn.180001ae4
mov rcx, qword [rdi + 0x18]
mov rax, rcx
jmp 0x1800609cb
xor esi, esi
mov ecx, dword [rcx + 8]
sub ecx, 2
je 0x180060885
sub ecx, 1
je 0x1800607ac
sub ecx, 1
je 0x180060746
sub ecx, 1
je 0x1800606a3
cmp ecx, 1
je 0x180060885
lea rax, [0x1800c9a10]
mov rcx, qword [0x1800c9a10]
cmp rcx, rax
je 0x1800609c8
test byte [rcx + 0x1c], 1
je 0x1800609c8
cmp byte [rcx + 0x19], 2
jb 0x1800609c8
lea edx, [rsi + 0x16]
lea r8, [0x1800a1e50]
mov rcx, qword [rcx + 0x10]
call fcn.180001ae4
jmp 0x1800609c8
cmp rbx, 0x80
jbe 0x180060740
mov qword [rsp + 0x40], r9
lea rcx, [rsp + 0x50]
call fcn.18005cfa8
nop
mov rcx, rbx
call fcn.1800464ac
mov qword [rdi + 0x18], rax
test rax, rax
je 0x1800609f3
jmp 0x1800606e7
lea rsi, [r14 + 0x20]
cmp dword [rsp + 0x58], 0
je 0x1800606f8
mov qword [r14 + 0x18], rsi
jmp 0x180060734
mov dword [rdi + 8], 2
mov qword [rdi + 0x10], rbx
mov r8, r12
xor edx, edx
mov rcx, qword [r14 + 0x18]
call fcn.1800485d0
mov rax, qword [rdi]
mov r8, qword [rdi + 0x10]
mov rdx, qword [rdi + 0x18]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov r8, qword [rsp + 0x40]
mov rdx, rsi
mov rcx, qword [rdi + 0x18]
call fcn.180048170
nop
lea rcx, [rsp + 0x50]
call fcn.18005d030
jmp 0x1800607a3
mov qword [rdi + 0x10], rbx
jmp 0x1800607a3
mov r10d, dword [0x1800cbf6c]
test r10d, r10d
jne 0x18006076a
lea rcx, [0x1800cbf68]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov r9, qword [rdi + 0x10]
mov r10d, dword [0x1800cbf6c]
mov ecx, r10d
xor edx, edx
mov rax, rbx
div rcx
mov r8, rbx
sub r8, rdx
xor edx, edx
mov rax, rbx
div rcx
xor eax, eax
test rdx, rdx
cmovne eax, r10d
mov ecx, eax
add rcx, r8
cmp r9, r8
jbe 0x180060885
cmp rcx, r9
jb 0x180060885
mov rsi, qword [rdi + 0x18]
jmp 0x1800609c8
cmp rbx, 0x80
jbe 0x18006084a
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
mov r9, rbx
mov r8, r15
mov edx, 8
call qword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov rsi, rax
test rax, rax
jne 0x18006080e
lea rax, [0x1800c9a10]
mov rcx, qword [0x1800c9a10]
cmp rcx, rax
je 0x1800609c8
test byte [rcx + 0x1c], 1
je 0x1800609c8
cmp byte [rcx + 0x19], 2
jb 0x1800609c8
lea edx, [rsi + 0x15]
jmp 0x18006068e
mov qword [rdi + 0x18], rsi
mov rbx, qword [rdi + 0x10]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
mov r8, rsi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapSize]
mov r8, rax
mov qword [rdi + 0x10], rax
mov r9, qword [rdi]
sub r8, rbx
mov rdx, qword [rdi + 0x18]
add rdx, rbx
mov rcx, rdi
call qword [r9 + reloc.OLEAUT32.dll_VariantClear]
jmp 0x1800609c8
mov dword [rdi + 8], 5
mov qword [rdi + 0x10], rbx
lea rsi, [rdi + 0x20]
mov r8, rbx
mov rdx, r15
mov rcx, rsi
call fcn.180048170
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
mov r8, qword [rdi + 0x18]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rdi + 0x18], rsi
jmp 0x1800609c8
lea r14, [0x1800aa3f0]
mov qword [rsp + 0xd0], r14
and dword [rsp + 0xd8], esi
and qword [rsp + 0xe0], rsi
and qword [rsp + 0xe8], rsi
and qword [rsp + 0x170], rsi
and qword [rsp + 0x178], rsi
cmp dword [rdi + 8], 6
jne 0x180060912
mov r8, qword [rdi + 0xa8]
mov rdx, qword [rdi + 0xa0]
lea rcx, [rsp + 0xd0]
call fcn.18005fedc
test eax, eax
jne 0x180060912
lea rax, [0x1800c9a10]
mov rcx, qword [0x1800c9a10]
cmp rcx, rax
je 0x1800609b3
test byte [rcx + 0x1c], 1
je 0x1800609b3
cmp byte [rcx + 0x19], 2
jb 0x1800609b3
mov edx, SafeArrayUnaccessData
jmp 0x18006094e
mov r8, rbx
mov edx, dword [rdi + 8]
lea rcx, [rsp + 0xd0]
call fcn.1800602e4
test rax, rax
jne 0x180060960
lea rax, [0x1800c9a10]
mov rcx, qword [0x1800c9a10]
cmp rcx, rax
je 0x1800609b3
test byte [rcx + 0x1c], 1
je 0x1800609b3
cmp byte [rcx + 0x19], 2
jb 0x1800609b3
mov edx, SafeArrayUnaccessData
lea r8, [0x1800a1e50]
mov rcx, qword [rcx + 0x10]
call fcn.180001ae4
jmp 0x1800609b3
mov rax, qword [rdi]
mov r8, qword [rsp + 0xe0]
mov rdx, qword [rsp + 0xe8]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov r8, qword [rdi + 0x10]
cmp qword [rsp + 0xe0], r8
cmovb r8, qword [rsp + 0xe0]
mov rdx, qword [rdi + 0x18]
mov rcx, qword [rsp + 0xe8]
call fcn.180048170
lea rdx, [rsp + 0xd0]
mov rcx, rdi
call fcn.18005ff9c
mov rsi, qword [rdi + 0x18]
mov qword [rsp + 0xd0], r14
lea rcx, [rsp + 0xd0]
call fcn.1800604b4
mov rax, rsi
mov rcx, qword [rsp + 0x1a0]
xor rcx, rsp
call fcn.180045d30
mov rbx, qword [rsp + 0x1f0]
add rsp, 0x1b0
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret
lea rcx, [rsp + 0xb8]
call fcn.18002ef78
lea rdx, [0x1800c6ef8]
lea rcx, [rsp + 0xb8]
call fcn.1800480a0
int3