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

Disassembly:
mov r11, rsp
push rbp
push rbx
push r12
push r14
lea rbp, [r11 - 0x38]
sub rsp, 0x118
mov rax, qword [0x180057040]
xor rax, rsp
mov qword [rbp], rax
mov qword [r11 + 8], rsi
lea rcx, str.Square_of__d_is__d_n
mov edx, 4
mov qword [r11 + 0x18], r13
mov qword [r11 - 0x28], r15
lea r8d, [rdx + 0xc]
call fcn.1800011b0
mov edx, 0x19
lea rcx, str.The_minimum_number_between__d_and__d_is__d_n
mov r9d, edx
lea r8d, [rdx + 5]
call fcn.1800011b0
mov edx, 0x48
lea rcx, str._c_is_an_uppercase_letter._n
call fcn.1800011b0
call qword [sym.imp.KERNEL32.dll_GetConsoleWindow]
mov rcx, rax
xor edx, edx
call qword [sym.imp.USER32.dll_ShowWindow]
mov r13d, 1
mov esi, 2
mov r8d, r13d
mov ecx, esi
nop dword [rax]
mov eax, 0x11
cdq
idiv ecx
test edx, edx
je 0x180015195
inc ecx
cmp ecx, 8
jle 0x180015180
jmp 0x180015198
xor r8d, r8d
test r8d, r8d
mov qword [rsp + 0x148], rdi
lea r15, str._d_is_a_prime_number._n
mov edx, 0x11
mov rcx, r15
lea rbx, str._d_is_not_a_prime_number._n
cmove rcx, rbx
call fcn.1800011b0
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x40
call qword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
lea r12, str._MB_Available
lea r14, [0x18005d270]
test eax, eax
je 0x180015239
mov rdi, qword [rsp + 0x30]
lea rdx, str.Memory_Usage:
mov rbx, qword [rsp + 0x28]
mov rcx, r14
shr rdi, 0x14
shr rbx, 0x14
call fcn.180018200
mov rcx, rax
mov rdx, rbx
call fcn.1800155f0
mov rcx, rax
lea rdx, str._MB_Total_
call fcn.180018200
mov rcx, rax
mov rdx, rdi
call fcn.1800155f0
mov rdx, r12
lea rbx, str._d_is_not_a_prime_number._n
jmp 0x180015243
mov rax, r14
lea rdx, str.Failed_to_get_memory_usage_
mov rcx, rax
call fcn.180018200
mov rcx, rax
call fcn.180018470
xorps xmm0, xmm0
mov dword [rsp + 0x60], 0x94
lea rcx, [rsp + 0x60]
movups xmmword [rsp + 0x64], xmm0
movups xmmword [rsp + 0x74], xmm0
movups xmmword [rbp - 0x7c], xmm0
movups xmmword [rbp - 0x6c], xmm0
movups xmmword [rbp - 0x5c], xmm0
movups xmmword [rbp - 0x4c], xmm0
movups xmmword [rbp - 0x3c], xmm0
movups xmmword [rbp - 0x2c], xmm0
movups xmmword [rbp - 0x1c], xmm0
call qword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
je 0x1800152ed
lea rdx, str.Operating_System_Version:
mov rcx, r14
call fcn.180018200
mov edx, dword [rsp + 0x64]
mov rcx, rax
call fcn.1800157a0
mov rcx, rax
lea rdx, [0x180050e94]
call fcn.180018200
mov edx, dword [rsp + 0x68]
mov rcx, rax
call fcn.1800157a0
mov rcx, rax
lea rdx, str.__Build
call fcn.180018200
mov edx, dword [rsp + 0x6c]
mov rcx, rax
call fcn.1800157a0
lea rdx, [0x180050e84]
jmp 0x1800152f7
mov rax, r14
lea rdx, str.Failed_to_get_operating_system_version_
mov rcx, rax
call fcn.180018200
mov rcx, rax
call fcn.180018470
lea rcx, [0x18000e6c0]
call fcn.1800134c0
mov edx, 0x65
lea rcx, str._c_is_a_lowercase_letter._n
call fcn.1800011b0
mov edx, 6
lea rcx, str.Factorial_of__d_is__d_n
mov r8d, 0x2d0
call fcn.1800011b0
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
lea rdx, str.Processor_Architecture:
mov rcx, r14
call fcn.180018200
movzx ecx, word [rsp + 0x20]
test ecx, ecx
je 0x180015391
sub ecx, 5
je 0x180015388
sub ecx, r13d
je 0x18001537f
cmp ecx, 3
je 0x180015376
lea rdx, str.Unknown
jmp 0x180015398
lea rdx, str.AMD64
jmp 0x180015398
lea rdx, str.IA64
jmp 0x180015398
lea rdx, [0x180050bb4]
jmp 0x180015398
lea rdx, [0x180050bc0]
mov rcx, r14
call fcn.180018200
mov rcx, rax
call fcn.180018470
lea rdx, str.Number_of_Processors:
mov rcx, r14
call fcn.180018200
mov edx, dword [rsp + 0x40]
mov rcx, rax
call fcn.1800157a0
mov rcx, rax
call fcn.180018470
lea rdx, str.Processor_Type:
mov rcx, r14
call fcn.180018200
mov edx, dword [rsp + 0x44]
mov rcx, rax
call fcn.1800157a0
mov rcx, rax
call fcn.180018470
lea rdx, str.Processor_Level:
mov rcx, r14
call fcn.180018200
movzx edx, word [rsp + 0x4c]
mov rcx, rax
call fcn.180015950
mov rcx, rax
call fcn.180018470
lea rdx, str.Processor_Revision:
mov rcx, r14
call fcn.180018200
movzx edx, word [rsp + 0x4e]
mov rcx, rax
call fcn.180015950
mov rcx, rax
call fcn.180018470
movsd xmm3, qword [0x1800510e8]
lea rcx, str.Product_of__.2f_and__.2f_is__.2f_n
movsd xmm2, qword [0x1800510e0]
movq r9, xmm3
movsd xmm1, qword [0x1800510d8]
movq r8, xmm2
movq rdx, xmm1
call fcn.1800011b0
nop dword [rax]
mov eax, 0x11
cdq
idiv esi
test edx, edx
je 0x180015485
inc esi
cmp esi, 8
jle 0x180015470
jmp 0x180015488
xor r13d, r13d
test r13d, r13d
mov edx, 0x11
cmove r15, rbx
mov rcx, r15
call fcn.1800011b0
mov edx, 0x7e4
lea rcx, str._d_is_a_leap_year._n
call fcn.1800011b0
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x40
call qword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
mov r15, qword [rsp + 0x110]
mov r13, qword [rsp + 0x150]
mov rsi, qword [rsp + 0x140]
test eax, eax
je 0x180015527
mov rdi, qword [rsp + 0x30]
lea rdx, str.Memory_Usage:
mov rbx, qword [rsp + 0x28]
mov rcx, r14
shr rdi, 0x14
shr rbx, 0x14
call fcn.180018200
mov rcx, rax
mov rdx, rbx
call fcn.1800155f0
mov rcx, rax
lea rdx, str._MB_Total_
call fcn.180018200
mov rcx, rax
mov rdx, rdi
call fcn.1800155f0
mov r14, rax
jmp 0x18001552e
lea r12, str.Failed_to_get_memory_usage_
mov rdx, r12
mov rcx, r14
call fcn.180018200
mov rcx, rax
call fcn.180018470
mov rdi, qword [rsp + 0x148]
mov rcx, qword [rbp]
xor rcx, rsp
call fcn.18001e8f0
add rsp, 0x118
pop r14
pop r12
pop rbx
pop rbp
ret