Function at 0x1804267b0
Capabilities:
Get system information on windows

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x58
lea rbp, [rsp + 0x50]
test rcx, rcx
je 0x180427272
lea rsi, [rcx - 0x10]
test byte [0x18042c190], 2
jne 0x1804268d0
mov rdx, qword [0x18042be38]
cmp rsi, rdx
jb 0x18042728d
mov r8, qword [rcx - 8]
mov eax, r8d
and eax, 3
cmp eax, 1
je 0x18042728d
mov rdi, r8
and rdi, 0xfffffffffffffff8
lea rax, [rsi + rdi]
test r8b, 1
jne 0x180426af6
mov rcx, qword [rsi]
test r8b, 2
jne 0x1804268ee
add rdi, rcx
add rdi, 0x20
je 0x1804268b5
sub rsi, rcx
lea rbx, [rbp - 0x28]
mov r14, qword [sym.imp.KERNEL32.dll_VirtualQuery]
mov r15, qword [sym.imp.KERNEL32.dll_VirtualFree]
mov r12, rdi
nop dword [rax]
mov r8d, 0x30
mov rcx, rsi
mov rdx, rbx
call r14
test rax, rax
je 0x18042725f
cmp qword [rbp - 0x28], rsi
jne 0x18042725f
cmp qword [rbp - 0x20], rsi
jne 0x18042725f
cmp dword [rbp - 8], 0x1000
jne 0x18042725f
cmp qword [rbp - 0x10], r12
ja 0x18042725f
mov rcx, rsi
xor edx, edx
mov r8d, 0x8000
call r15
test eax, eax
je 0x18042725f
mov rax, qword [rbp - 0x10]
add rsi, rax
sub r12, rax
jne 0x180426850
sub qword [0x18042c178], rdi
jmp 0x18042725f
mov eax, 1
xchg dword [0x18042c194], eax
test eax, eax
je 0x1804267df
cmp dword [0x18042c194], 0
jne 0x1804268e3
jmp 0x1804268d0
sub rsi, rcx
cmp rsi, rdx
jb 0x18042728d
add rdi, rcx
cmp rsi, qword [0x18042be40]
je 0x18042697a
cmp rcx, 0xff
ja 0x1804269ad
shr rcx, 3
mov r8, qword [rsi + 0x10]
mov r9, qword [rsi + 0x18]
mov r10, rcx
shl r10, 4
lea r11, [0x18042be20]
add r10, r11
add r10, 0x48
cmp r8, r10
je 0x18042694c
cmp r8, rdx
jb 0x18042728d
cmp qword [r8 + 0x18], rsi
jne 0x18042728d
cmp r9, r8
je 0x1804269fc
cmp r9, r10
je 0x18042696d
cmp r9, rdx
jb 0x18042728d
cmp qword [r9 + 0x10], rsi
jne 0x18042728d
mov qword [r8 + 0x18], r9
mov qword [r9 + 0x10], r8
jmp 0x180426af6
mov rcx, qword [rax + 8]
mov edx, ecx
not edx
test dl, 3
jne 0x180426af6
mov qword [0x18042be28], rdi
and rcx, 0xfffffffffffffffe
mov qword [rax + 8], rcx
mov rcx, rdi
or rcx, 1
mov qword [rsi + 8], rcx
mov qword [rax], rdi
jmp 0x18042725f
mov r9, qword [rsi + 0x18]
mov r8, qword [rsi + 0x30]
cmp r9, rsi
je 0x1804269ed
mov rcx, qword [rsi + 0x10]
cmp rcx, rdx
jb 0x18042728d
cmp qword [rcx + 0x18], rsi
jne 0x18042728d
cmp qword [r9 + 0x10], rsi
jne 0x18042728d
mov qword [rcx + 0x18], r9
mov qword [r9 + 0x10], rcx
test r8, r8
jne 0x180426a59
jmp 0x180426af6
mov rcx, qword [rsi + 0x28]
test rcx, rcx
je 0x180426a0e
lea r10, [rsi + 0x28]
jmp 0x180426a20
mov edx, 0xfffffffe
rol edx, cl
and dword [0x18042be20], edx
jmp 0x180426af6
mov rcx, qword [rsi + 0x20]
test rcx, rcx
je 0x18042713b
lea r10, [rsi + 0x20]
nop
mov r9, rcx
mov r11, r10
lea r10, [rcx + 0x28]
mov rcx, qword [rcx + 0x28]
test rcx, rcx
jne 0x180426a20
lea r10, [r9 + 0x20]
mov rcx, qword [r9 + 0x20]
test rcx, rcx
jne 0x180426a20
cmp r11, rdx
jb 0x18042728d
mov qword [r11], 0
test r8, r8
je 0x180426af6
mov ecx, dword [rsi + 0x38]
lea rdx, [0x18042be20]
cmp rsi, qword [rdx + rcx*8 + 0x258]
je 0x180426a92
mov rcx, qword [0x18042be38]
cmp r8, rcx
jb 0x18042728d
xor edx, edx
cmp qword [r8 + 0x20], rsi
setne dl
mov qword [r8 + rdx*8 + 0x20], r9
test r9, r9
jne 0x180426aa6
jmp 0x180426af6
mov qword [rdx + rcx*8 + 0x258], r9
test r9, r9
je 0x180426ae9
mov rcx, qword [0x18042be38]
cmp r9, rcx
jb 0x18042728d
mov qword [r9 + 0x30], r8
mov rdx, qword [rsi + 0x20]
test rdx, rdx
je 0x180426acd
cmp rdx, rcx
jb 0x18042728d
mov qword [r9 + 0x20], rdx
mov qword [rdx + 0x30], r9
mov rdx, qword [rsi + 0x28]
test rdx, rdx
je 0x180426af6
cmp rdx, rcx
jb 0x18042728d
mov qword [r9 + 0x28], rdx
mov qword [rdx + 0x30], r9
jmp 0x180426af6
mov edx, 0xfffffffe
rol edx, cl
and dword [0x18042be24], edx
cmp rsi, rax
jae 0x18042728d
mov rdx, qword [rax + 8]
test dl, 1
je 0x18042728d
test dl, 2
jne 0x180426bae
cmp rax, qword [0x18042be48]
je 0x180426c57
cmp rax, qword [0x18042be40]
je 0x180426c96
cmp rdx, 0xff
ja 0x180426df6
mov rcx, rdx
shr rcx, 3
mov r8, qword [rax + 0x10]
mov r9, qword [rax + 0x18]
mov r10, rcx
shl r10, 4
lea r11, [0x18042be20]
add r10, r11
add r10, 0x48
cmp r8, r10
je 0x180426b7c
cmp r8, qword [0x18042be38]
jb 0x18042728d
cmp qword [r8 + 0x18], rax
jne 0x18042728d
cmp r9, r8
je 0x180426f7f
cmp r9, r10
je 0x180426ba1
cmp r9, qword [0x18042be38]
jb 0x18042728d
cmp qword [r9 + 0x10], rax
jne 0x18042728d
mov qword [r8 + 0x18], r9
mov qword [r9 + 0x10], r8
jmp 0x18042710c
and rdx, 0xfffffffffffffffe
mov qword [rax + 8], rdx
mov rax, rdi
or rax, 1
mov qword [rsi + 8], rax
mov qword [rsi + rdi], rdi
cmp rdi, 0xff
ja 0x180426c17
shr rdi, 3
mov rax, rdi
shl rax, 4
lea rcx, [0x18042be20]
add rax, rcx
add rax, 0x48
mov edx, dword [0x18042be20]
mov r8d, 1
mov ecx, edi
shl r8d, cl
bt edx, edi
jae 0x180426cbf
mov rcx, qword [rax + 0x10]
cmp rcx, qword [0x18042be38]
jae 0x180426ccb
jmp 0x18042728d
mov rax, rdi
shr rax, 8
test eax, eax
je 0x180426ce0
mov ecx, 0x1f
cmp eax, 0xffff
ja 0x180426ce2
bsr eax, eax
xor eax, 0x1f
mov cl, 0x26
sub cl, al
movzx ecx, cl
xor edx, edx
bt rdi, rcx
setb dl
lea ecx, [rdx + rax*2]
xor ecx, 0x3e
jmp 0x180426ce2
add rdi, qword [0x18042be30]
mov qword [0x18042be30], rdi
mov qword [0x18042be48], rsi
mov rax, rdi
or rax, 1
mov qword [rsi + 8], rax
cmp rsi, qword [0x18042be40]
je 0x180426e42
cmp rdi, qword [0x18042be50]
ja 0x180426e65
jmp 0x18042725f
add rdi, qword [0x18042be28]
mov qword [0x18042be28], rdi
mov qword [0x18042be40], rsi
mov rax, rdi
or rax, 1
mov qword [rsi + 8], rax
mov qword [rsi + rdi], rdi
jmp 0x18042725f
or edx, r8d
mov dword [0x18042be20], edx
mov rcx, rax
mov qword [rax + 0x10], rsi
mov qword [rcx + 0x18], rsi
mov qword [rsi + 0x10], rcx
mov qword [rsi + 0x18], rax
jmp 0x18042725f
xor ecx, ecx
mov eax, ecx
lea rdx, [0x18042be20]
lea rax, [rdx + rax*8]
add rax, 0x258
mov dword [rsi + 0x38], ecx
xorps xmm0, xmm0
movups xmmword [rsi + 0x20], xmm0
mov edx, dword [0x18042be24]
mov r8d, 1
shl r8d, cl
bt edx, ecx
jae 0x180426d7e
mov rdx, qword [rax]
mov eax, ecx
shr eax, 1
mov r8b, 0x39
sub r8b, al
xor eax, eax
cmp ecx, 0x1f
movzx ecx, r8b
cmove ecx, eax
mov r8, rdi
shl r8, cl
nop word cs:[rax + rax]
mov rax, rdx
mov rcx, qword [rdx + 8]
and rcx, 0xfffffffffffffff8
cmp rcx, rdi
je 0x180426da5
mov rcx, r8
shr rcx, 0x3f
add r8, r8
mov rdx, qword [rax + rcx*8 + 0x20]
test rdx, rdx
jne 0x180426d40
lea rcx, [rax + rcx*8]
add rcx, 0x20
cmp rcx, qword [0x18042be38]
jb 0x18042728d
mov qword [rcx], rsi
jmp 0x180426d8a
or edx, r8d
mov dword [0x18042be24], edx
mov qword [rax], rsi
mov qword [rsi + 0x30], rax
mov qword [rsi + 0x18], rsi
mov qword [rsi + 0x10], rsi
dec qword [0x18042be58]
jne 0x18042725f
jmp 0x180426dec
mov rcx, qword [rax + 0x10]
mov r8, qword [0x18042be38]
cmp rcx, r8
setae dl
cmp rax, r8
jb 0x180427283
test dl, dl
je 0x18042728d
mov qword [rcx + 0x18], rsi
mov qword [rax + 0x10], rsi
mov qword [rsi + 0x10], rcx
mov qword [rsi + 0x18], rax
mov qword [rsi + 0x30], 0
dec qword [0x18042be58]
jne 0x18042725f
call fcn.1804272a0
jmp 0x18042725f
mov r9, qword [rax + 0x18]
mov r8, qword [rax + 0x30]
cmp r9, rax
je 0x180426f69
mov rcx, qword [rax + 0x10]
cmp rcx, qword [0x18042be38]
jb 0x18042728d
cmp qword [rcx + 0x18], rax
jne 0x18042728d
cmp qword [r9 + 0x10], rax
jne 0x18042728d
mov qword [rcx + 0x18], r9
mov qword [r9 + 0x10], rcx
test r8, r8
jne 0x18042706d
jmp 0x18042710c
mov qword [0x18042be40], 0
mov qword [0x18042be28], 0
cmp rdi, qword [0x18042be50]
jbe 0x18042725f
cmp qword [0x18042c1d8], 0
jne 0x180426f34
jmp 0x180426e89
cmp dword [0x18042c1d0], 0
jne 0x180426e80
mov eax, 1
xchg dword [0x18042c1d0], eax
test eax, eax
jne 0x180426e80
cmp qword [0x18042c1d8], 0
jne 0x180426f1a
mov esi, 0xffffffff
lea rcx, [rbp - 0x28]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [rbp]
lea ecx, [rsi + rax]
test ecx, eax
jne 0x18042728d
mov ecx, dword [rbp - 0x24]
add esi, ecx
test esi, ecx
jne 0x18042728d
mov qword [0x18042c1e8], rax
mov qword [0x18042c1e0], rcx
mov qword [0x18042c1f0], 0x40000
mov qword [0x18042c1f8], 0x200000
mov dword [0x18042c200], 7
mov qword [0x18042c190], 7
call qword [sym.imp.KERNEL32.dll_GetTickCount]
and eax, 0xfffffff0
xor eax, 0x55555558
mov qword [0x18042c1d8], rax
mov dword [0x18042c1d0], 0
mov rsi, qword [0x18042be48]
test rsi, rsi
je 0x18042725f
mov rax, qword [0x18042be30]
cmp rax, 0x51
jb 0x180427238
mov rcx, qword [0x18042c1e8]
add rax, rcx
add rax, 0xffffffffffffffaf
mov rdx, rax
or rdx, rcx
shr rdx, 0x20
je 0x180426f91
xor edx, edx
div rcx
mov rdi, rax
jmp 0x180426f97
mov rcx, qword [rax + 0x28]
test rcx, rcx
je 0x18042701a
lea r10, [rax + 0x28]
jmp 0x180427030
mov eax, 0xfffffffe
rol eax, cl
and dword [0x18042be20], eax
jmp 0x18042710c
xor edx, edx
div ecx
mov edi, eax
dec rdi
imul rdi, rcx
lea r14, [0x18042c198]
jmp 0x180426fb9
mov r14, qword [r14 + 0x10]
test r14, r14
je 0x180426fcc
mov rax, qword [r14]
cmp rax, rsi
ja 0x180426fb0
add rax, qword [r14 + 8]
cmp rax, rsi
jbe 0x180426fb0
jmp 0x180426fcf
xor r14d, r14d
mov eax, dword [r14 + 0x18]
and eax, 9
cmp eax, 1
jne 0x180427238
mov rcx, qword [r14 + 8]
mov rax, rcx
sub rax, rdi
jb 0x180427238
mov rsi, qword [r14]
add rcx, rsi
lea rdx, [0x18042c198]
jmp 0x18042700b
mov rdx, qword [rdx + 0x10]
test rdx, rdx
je 0x18042715a
cmp rdx, rsi
jb 0x180426ffe
cmp rdx, rcx
jae 0x180426ffe
jmp 0x180427238
mov rcx, qword [rax + 0x20]
test rcx, rcx
je 0x18042714c
lea r10, [rax + 0x20]
nop dword [rax + rax]
mov r9, rcx
mov r11, r10
lea r10, [rcx + 0x28]
mov rcx, qword [rcx + 0x28]
test rcx, rcx
jne 0x180427030
lea r10, [r9 + 0x20]
mov rcx, qword [r9 + 0x20]
test rcx, rcx
jne 0x180427030
cmp r11, qword [0x18042be38]
jb 0x18042728d
mov qword [r11], 0
test r8, r8
je 0x18042710c
mov ecx, dword [rax + 0x38]
lea r10, [0x18042be20]
cmp rax, qword [r10 + rcx*8 + 0x258]
je 0x1804270a8
mov rcx, qword [0x18042be38]
cmp r8, rcx
jb 0x18042728d
xor r10d, r10d
cmp qword [r8 + 0x20], rax
setne r10b
mov qword [r8 + r10*8 + 0x20], r9
test r9, r9
jne 0x1804270bc
jmp 0x18042710c
mov qword [r10 + rcx*8 + 0x258], r9
test r9, r9
je 0x1804270ff
mov rcx, qword [0x18042be38]
cmp r9, rcx
jb 0x18042728d
mov qword [r9 + 0x30], r8
mov r8, qword [rax + 0x20]
test r8, r8
je 0x1804270e3
cmp r8, rcx
jb 0x18042728d
mov qword [r9 + 0x20], r8
mov qword [r8 + 0x30], r9
mov rax, qword [rax + 0x28]
test rax, rax
je 0x18042710c
cmp rax, rcx
jb 0x18042728d
mov qword [r9 + 0x28], rax
mov qword [rax + 0x30], r9
jmp 0x18042710c
mov eax, 0xfffffffe
rol eax, cl
and dword [0x18042be24], eax
and rdx, 0xfffffffffffffff8
add rdi, rdx
mov rax, rdi
or rax, 1
mov qword [rsi + 8], rax
mov qword [rsi + rdi], rdi
cmp rsi, qword [0x18042be40]
jne 0x180426bc5
mov qword [0x18042be28], rdi
jmp 0x18042725f
xor r9d, r9d
test r8, r8
jne 0x180426a59
jmp 0x180426af6
xor r9d, r9d
test r8, r8
jne 0x18042706d
jmp 0x18042710c
test rdi, rdi
je 0x180427238
add rsi, rax
lea rbx, [rbp - 0x28]
mov r15, qword [sym.imp.KERNEL32.dll_VirtualQuery]
mov r12, qword [sym.imp.KERNEL32.dll_VirtualFree]
mov r13, rdi
mov r8d, 0x30
mov rcx, rsi
mov rdx, rbx
call r15
test rax, rax
je 0x180427238
cmp qword [rbp - 0x28], rsi
jne 0x180427238
cmp qword [rbp - 0x20], rsi
jne 0x180427238
cmp dword [rbp - 8], 0x1000
jne 0x180427238
cmp qword [rbp - 0x10], r13
ja 0x180427238
mov rcx, rsi
xor edx, edx
mov r8d, 0x8000
call r12
test eax, eax
je 0x180427238
mov rax, qword [rbp - 0x10]
add rsi, rax
sub r13, rax
jne 0x18042717b
sub qword [r14 + 8], rdi
sub qword [0x18042c178], rdi
mov rax, qword [0x18042be48]
mov rcx, qword [0x18042be30]
sub rcx, rdi
mov edx, 0xfffffff0
sub edx, eax
and edx, 0xf
lea r8, [rax + rdx]
mov r9, rcx
sub r9, rdx
mov qword [0x18042be48], r8
mov qword [0x18042be30], r9
or r9, 1
mov qword [rax + rdx + 8], r9
mov qword [rax + rcx + 8], 0x50
mov rax, qword [0x18042c1f8]
mov qword [0x18042be50], rax
jmp 0x18042723a
xor edi, edi
call fcn.1804272a0
add rax, rdi
jne 0x18042725f
mov rax, qword [0x18042be30]
cmp rax, qword [0x18042be50]
jbe 0x18042725f
mov qword [0x18042be50], 0xffffffffffffffff
test byte [0x18042c190], 2
je 0x180427272
mov dword [0x18042c194], 0
add rsp, 0x58
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
xor edx, edx
test dl, dl
jne 0x180426dc7
call fcn.18041e0c0
int3