Function at 0x1800017b0
Capabilities:
Get memory capacity
Get system information on windows

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x90
xorps xmm0, xmm0
mov dword [rsp + 0x50], 0x40
lea rcx, [rsp + 0x20]
movups xmmword [rsp + 0x20], xmm0
movups xmmword [rsp + 0x30], xmm0
movups xmmword [rsp + 0x40], xmm0
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
call fcn.180003910
movsx ebp, al
call fcn.180003900
movsx r14d, al
mov ebx, r14d
imul ebx, ebp
call fcn.180003940
movsx esi, al
xor edx, edx
movsx eax, byte [0x180058de6]
xor r12d, r12d
movsx ecx, byte [0x180058de5]
mov edi, 9
lea r9d, [rbx + rsi]
add eax, r9d
div ecx
movsx ecx, byte [0x180058de2]
cmp eax, ecx
je 0x180001ad3
movsx eax, byte [0x180058de4]
lea r15d, [rsi + rbx*4]
movd xmm1, eax
movsx eax, byte [0x180058de3]
cmp dword [rsp + 0x40], 2
cvtdq2pd xmm1, xmm1
movd xmm0, eax
mov eax, r12d
setb al
add r15d, ebx
cvtdq2pd xmm0, xmm0
xor edx, edx
addsd xmm0, xmm0
subsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm1, xmm0
movsd qword [rsp + 0xc0], xmm1
movsx eax, byte [0x180058de6]
movsx ecx, byte [0x180058de5]
add eax, r15d
div ecx
movsx ecx, byte [0x180058de2]
cmp eax, ecx
je 0x1800018ea
call fcn.180003920
movsx edx, al
movsx eax, byte [0x180059908]
imul edx, eax
lea r8d, [rdx + rdx*4]
add r8d, r8d
call fcn.180003950
movsx ecx, al
sub r8d, ecx
call fcn.180003930
movsx ecx, al
add r8d, ecx
movsx ecx, byte [0x180058de3]
add ecx, r8d
je 0x1800018ea
mov r9d, edi
jmp 0x180001948
movsx eax, byte [0x180058de6]
xor edx, edx
movsx ecx, byte [0x180058de5]
add eax, r9d
div ecx
movsx ecx, byte [0x180058de2]
cmp eax, ecx
je 0x180001940
movsx eax, byte [0x180058de6]
xor edx, edx
movsx ecx, byte [0x180058de5]
add eax, r9d
div ecx
movsx ecx, byte [0x180058de2]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0xc0]
cvttsd2si r9d, xmm0
jmp 0x180001948
mov r9d, dword [rsp + 0xc0]
movsx eax, byte [0x180058de6]
lea edx, [rbx + rbx*2]
movsx ecx, byte [0x180058de5]
add eax, esi
lea eax, [rax + rdx*2]
xor edx, edx
div ecx
movsx ecx, byte [0x180058de2]
sub eax, ecx
imul eax, r9d
test eax, eax
je 0x180001ad3
lea rcx, str.Less_than_2_processors_detected._Possible_virtual_environment._n
call fcn.1800042b0
movsx eax, byte [0x180058de6]
lea ecx, [rbx + rsi]
lea ecx, [rcx + rbx*2]
xor edx, edx
add eax, ecx
xorps xmm2, xmm2
movsx ecx, byte [0x180058de5]
div ecx
movsx ecx, byte [0x180058de2]
xor edx, edx
sub eax, ecx
cvtsi2sd xmm2, rax
movsx eax, byte [0x180058de4]
movd xmm1, eax
movsx eax, byte [0x180058de3]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0xc0], xmm1
movsx eax, byte [0x180058de6]
movsx ecx, byte [0x180058de5]
add eax, r15d
div ecx
movsx ecx, byte [0x180058de2]
cmp eax, ecx
je 0x180001a40
call fcn.180003920
movsx edx, al
movsx eax, byte [0x180059908]
imul edx, eax
lea r8d, [rdx + rdx*4]
add r8d, r8d
call fcn.180003950
movsx ecx, al
sub r8d, ecx
call fcn.180003930
movsx ecx, al
add r8d, ecx
movsx ecx, byte [0x180058de3]
add ecx, r8d
jne 0x1800021a4
call fcn.180003940
movsx ecx, byte [0x180058de6]
mov edx, ebp
imul edx, r14d
movsx eax, al
add eax, edx
xor edx, edx
add eax, ecx
movsx ecx, byte [0x180058de5]
div ecx
movsx ecx, byte [0x180058de2]
cmp eax, ecx
je 0x180001ac3
call fcn.180003910
movsx r9d, al
call fcn.180003900
movsx ecx, al
imul r9d, ecx
call fcn.180003940
movsx ecx, byte [0x180058de6]
xor edx, edx
movsx eax, al
xorps xmm0, xmm0
add eax, r9d
add eax, ecx
movsx ecx, byte [0x180058de5]
div ecx
movsx ecx, byte [0x180058de2]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0xc0]
cvttsd2si eax, xmm0
jmp 0x180001aca
mov eax, dword [rsp + 0xc0]
cmp r12d, eax
jl 0x1800021a4
call fcn.180003910
movsx edx, al
call fcn.180003900
movsx ecx, al
imul edx, ecx
call fcn.180003940
movsx ecx, al
lea eax, [rcx + rdx*8]
movsx ecx, byte [0x180058de6]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x180058de5]
div ecx
movsx ecx, byte [0x180058de2]
cmp eax, ecx
je 0x180001e56
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
mov rcx, r12
xorps xmm2, xmm2
test eax, eax
movsx eax, byte [0x180058de4]
sete cl
movd xmm1, eax
movsx eax, byte [0x180058de3]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
cvtsi2sd xmm2, rcx
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0xc0], xmm1
call fcn.180003910
movsx edx, al
call fcn.180003900
movsx ecx, al
imul edx, ecx
lea ebx, [rdx + rdx*4]
call fcn.180003940
movsx ecx, al
xor edx, edx
movsx eax, byte [0x180058de6]
add ebx, ecx
movsx ecx, byte [0x180058de5]
add eax, ebx
div ecx
movsx ecx, byte [0x180058de2]
cmp eax, ecx
je 0x180001be4
call fcn.180003920
movsx edx, al
movsx eax, byte [0x180059908]
imul edx, eax
lea r8d, [rdx + rdx*4]
add r8d, r8d
call fcn.180003950
movsx ecx, al
sub r8d, ecx
call fcn.180003930
movsx ecx, al
add r8d, ecx
movsx ecx, byte [0x180058de3]
add ecx, r8d
je 0x180001be4
mov r10d, edi
jmp 0x180001c80
call fcn.180003910
movsx r9d, al
call fcn.180003900
movsx ecx, al
imul r9d, ecx
call fcn.180003940
movsx ecx, byte [0x180058de6]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [0x180058de5]
div ecx
movsx ecx, byte [0x180058de2]
cmp eax, ecx
je 0x180001c78
call fcn.180003910
movsx r9d, al
call fcn.180003900
movsx ecx, al
imul r9d, ecx
call fcn.180003940
movsx ecx, byte [0x180058de6]
xor edx, edx
movsx eax, al
xorps xmm0, xmm0
add eax, r9d
add eax, ecx
movsx ecx, byte [0x180058de5]
div ecx
movsx ecx, byte [0x180058de2]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0xc0]
cvttsd2si r10d, xmm0
jmp 0x180001c80
mov r10d, dword [rsp + 0xc0]
call fcn.180003910
movsx edx, al
call fcn.180003900
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*2]
call fcn.180003940
movsx ecx, byte [0x180058de6]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [0x180058de5]
div ecx
movsx ecx, byte [0x180058de2]
sub eax, ecx
imul eax, r10d
test eax, eax
je 0x180001e56
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.____GlobalMemoryStatusEx_Failed_With_Error_:__d__n
call fcn.1800042b0
call fcn.180003910
movsx edx, al
call fcn.180003900
movsx ecx, al
imul edx, ecx
call fcn.180003940
movsx ecx, al
xorps xmm2, xmm2
lea eax, [rcx + rdx*4]
movsx ecx, byte [0x180058de6]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x180058de5]
div ecx
movsx ecx, byte [0x180058de2]
xor edx, edx
sub eax, ecx
cvtsi2sd xmm2, rax
movsx eax, byte [0x180058de4]
movd xmm1, eax
movsx eax, byte [0x180058de3]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0xc0], xmm1
movsx eax, byte [0x180058de6]
movsx ecx, byte [0x180058de5]
add eax, ebx
div ecx
movsx ecx, byte [0x180058de2]
cmp eax, ecx
je 0x180001db3
call fcn.180003920
movsx edx, al
movsx eax, byte [0x180059908]
imul edx, eax
lea r8d, [rdx + rdx*4]
add r8d, r8d
call fcn.180003950
movsx ecx, al
sub r8d, ecx
call fcn.180003930
movsx ecx, al
add r8d, ecx
movsx ecx, byte [0x180058de3]
add ecx, r8d
jne 0x180002347
call fcn.180003910
movsx r9d, al
call fcn.180003900
movsx ecx, al
imul r9d, ecx
call fcn.180003940
movsx ecx, byte [0x180058de6]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [0x180058de5]
div ecx
movsx ecx, byte [0x180058de2]
cmp eax, ecx
je 0x180001e46
call fcn.180003910
movsx r9d, al
call fcn.180003900
movsx ecx, al
imul r9d, ecx
call fcn.180003940
movsx ecx, byte [0x180058de6]
xor edx, edx
movsx eax, al
xorps xmm0, xmm0
add eax, r9d
add eax, ecx
movsx ecx, byte [0x180058de5]
div ecx
movsx ecx, byte [0x180058de2]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0xc0]
cvttsd2si eax, xmm0
jmp 0x180001e4d
mov eax, dword [rsp + 0xc0]
cmp r12d, eax
jl 0x180002347
call fcn.180003910
movsx edx, al
call fcn.180003900
movsx ecx, al
imul edx, ecx
lea ebx, [rdx + rdx*4]
call fcn.180003940
movsx ecx, al
xor edx, edx
movsx eax, byte [0x180058de6]
add ebx, ecx
movsx ecx, byte [0x180058de5]
add eax, ebx
div ecx
movsx ecx, byte [0x180058de2]
cmp eax, ecx
je 0x1800021ae
movsx eax, byte [0x180058de4]
movd xmm1, eax
movsx eax, byte [0x180058de3]
cmp dword [rsp + 0x58], 0x80000000
cvtdq2pd xmm1, xmm1
movd xmm0, eax
mov rax, r12
setb al
xor edx, edx
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm1, xmm0
movsd qword [rsp + 0xc0], xmm1
movsx eax, byte [0x180058de6]
movsx ecx, byte [0x180058de5]
add eax, ebx
div ecx
movsx ecx, byte [0x180058de2]
cmp eax, ecx
je 0x180001f40
call fcn.180003920
movsx edx, al
movsx eax, byte [0x180059908]
imul edx, eax
lea r8d, [rdx + rdx*4]
add r8d, r8d
call fcn.180003950
movsx ecx, al
sub r8d, ecx
call fcn.180003930
movsx ecx, al
add r8d, ecx
movsx ecx, byte [0x180058de3]
add ecx, r8d
jne 0x180001fda
call fcn.180003910
movsx r9d, al
call fcn.180003900
movsx ecx, al
imul r9d, ecx
call fcn.180003940
movsx ecx, byte [0x180058de6]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [0x180058de5]
div ecx
movsx ecx, byte [0x180058de2]
cmp eax, ecx
je 0x180001fd3
call fcn.180003910
movsx r9d, al
call fcn.180003900
movsx ecx, al
imul r9d, ecx
call fcn.180003940
movsx ecx, byte [0x180058de6]
xor edx, edx
movsx eax, al
xorps xmm0, xmm0
add eax, r9d
add eax, ecx
movsx ecx, byte [0x180058de5]
div ecx
movsx ecx, byte [0x180058de2]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0xc0]
cvttsd2si edi, xmm0
jmp 0x180001fda
mov edi, dword [rsp + 0xc0]
call fcn.180003910
movsx edx, al
call fcn.180003900
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*4]
call fcn.180003940
movsx ecx, al
lea eax, [rcx + rdx*2]
movsx ecx, byte [0x180058de6]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x180058de5]
div ecx
movsx ecx, byte [0x180058de2]
sub eax, ecx
imul eax, edi
test eax, eax
je 0x1800021ae
lea rcx, str.Less_than_2_GB_of_RAM_detected._Possible_virtual_environment._n
call fcn.1800042b0
call fcn.180003910
movsx r9d, al
call fcn.180003900
movsx ecx, al
imul r9d, ecx
call fcn.180003940
movsx ecx, byte [0x180058de6]
xor edx, edx
movsx eax, al
xorps xmm2, xmm2
add eax, r9d
add eax, ecx
movsx ecx, byte [0x180058de5]
div ecx
movsx ecx, byte [0x180058de2]
xor edx, edx
sub eax, ecx
cvtsi2sd xmm2, rax
movsx eax, byte [0x180058de4]
movd xmm1, eax
movsx eax, byte [0x180058de3]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0xc0], xmm1
movsx eax, byte [0x180058de6]
movsx ecx, byte [0x180058de5]
add eax, ebx
div ecx
movsx ecx, byte [0x180058de2]
cmp eax, ecx
je 0x180002105
call fcn.180003920
movsx edx, al
movsx eax, byte [0x180059908]
imul edx, eax
lea r8d, [rdx + rdx*4]
add r8d, r8d
call fcn.180003950
movsx ecx, al
sub r8d, ecx
call fcn.180003930
movsx ecx, al
add r8d, ecx
movsx ecx, byte [0x180058de3]
add ecx, r8d
jne 0x1800021a4
call fcn.180003910
movsx r9d, al
call fcn.180003900
movsx ecx, al
imul r9d, ecx
call fcn.180003940
movsx ecx, byte [0x180058de6]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [0x180058de5]
div ecx
movsx ecx, byte [0x180058de2]
cmp eax, ecx
je 0x180002198
call fcn.180003910
movsx r9d, al
call fcn.180003900
movsx ecx, al
imul r9d, ecx
call fcn.180003940
movsx ecx, byte [0x180058de6]
xor edx, edx
movsx eax, al
xorps xmm0, xmm0
add eax, r9d
add eax, ecx
movsx ecx, byte [0x180058de5]
div ecx
movsx ecx, byte [0x180058de2]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0xc0]
cvttsd2si eax, xmm0
jmp 0x18000219f
mov eax, dword [rsp + 0xc0]
cmp r12d, eax
jge 0x1800021ae
mov eax, 1
jmp 0x180002349
call fcn.180003910
movsx edx, al
call fcn.180003900
movsx ecx, al
imul edx, ecx
imul r9d, edx, 7
call fcn.180003940
movsx ecx, byte [0x180058de6]
xor edx, edx
movsx eax, al
xorps xmm2, xmm2
add eax, r9d
add eax, ecx
movsx ecx, byte [0x180058de5]
div ecx
movsx ecx, byte [0x180058de2]
sub eax, ecx
cvtsi2sd xmm2, rax
movsx eax, byte [0x180058de4]
movd xmm1, eax
movsx eax, byte [0x180058de3]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0xc0], xmm1
call fcn.180003910
movsx edx, al
call fcn.180003900
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*4]
call fcn.180003940
movsx ecx, byte [0x180058de6]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [0x180058de5]
div ecx
movsx ecx, byte [0x180058de2]
cmp eax, ecx
je 0x1800022a8
call fcn.180003920
movsx edx, al
movsx eax, byte [0x180059908]
imul edx, eax
lea r8d, [rdx + rdx*4]
add r8d, r8d
call fcn.180003950
movsx ecx, al
sub r8d, ecx
call fcn.180003930
movsx ecx, al
add r8d, ecx
movsx ecx, byte [0x180058de3]
add ecx, r8d
jne 0x180002347
call fcn.180003910
movsx r9d, al
call fcn.180003900
movsx ecx, al
imul r9d, ecx
call fcn.180003940
movsx ecx, byte [0x180058de6]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [0x180058de5]
div ecx
movsx ecx, byte [0x180058de2]
cmp eax, ecx
je 0x18000233b
call fcn.180003910
movsx r9d, al
call fcn.180003900
movsx ecx, al
imul r9d, ecx
call fcn.180003940
movsx ecx, byte [0x180058de6]
xor edx, edx
movsx eax, al
xorps xmm0, xmm0
add eax, r9d
add eax, ecx
movsx ecx, byte [0x180058de5]
div ecx
movsx ecx, byte [0x180058de2]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0xc0]
cvttsd2si eax, xmm0
jmp 0x180002342
mov eax, dword [rsp + 0xc0]
cmp r12d, eax
jge 0x180002349
xor eax, eax
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret