Function at 0x140158990
Capabilities:
Get memory capacity

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0xe0
mov rax, qword [0x14035cb78]
xor rax, rsp
mov qword [rbp + 0x2f], rax
mov rbx, rdx
mov qword [rsp + 0x28], rdx
xor esi, esi
mov dword [rsp + 0x20], esi
mov qword [rdx], rsi
mov qword [rdx + 0x10], rsi
mov edi, SafeArrayGetLBound
mov qword [rdx + 0x18], rdi
mov byte [rdx], sil
mov dword [rsp + 0x20], 1
mov qword [rbp - 0x51], rsi
mov qword [rbp - 0x41], rsi
mov qword [rbp - 0x39], rdi
mov byte [rbp - 0x51], sil
mov dword [rbp - 0x29], 0x40
lea rcx, [rbp - 0x29]
call qword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
mov rcx, qword [rbp - 0x21]
sub rcx, qword [rbp - 0x19]
lea r9, [rbp + 0x2c]
movabs r10, 0xcccccccccccccccd
nop dword [rax]
nop word [rax + rax]
dec r9
mov rax, r10
mul rcx
mov r8, rdx
shr r8, 3
movzx eax, r8b
shl al, 2
lea edx, [rax + r8]
add dl, dl
sub cl, dl
add cl, 0x30
mov byte [r9], cl
mov rcx, r8
test r8, r8
jne 0x140158a30
mov rcx, rsi
mov qword [rbp - 0x71], rcx
mov qword [rbp - 0x61], rsi
mov rax, rdi
mov qword [rbp - 0x59], rax
lea rdx, [rbp + 0x2c]
cmp r9, rdx
je 0x140158a93
lea r8, [rbp + 0x2c]
sub r8, r9
mov rdx, r9
lea rcx, [rbp - 0x71]
call fcn.1400d0690
mov rax, qword [rbp - 0x59]
mov rcx, qword [rbp - 0x71]
mov dword [rsp + 0x20], 7
lea rdx, [rbp - 0x71]
cmp rbx, rdx
je 0x140158af2
mov rdx, qword [rbx + 0x18]
cmp rdx, 0x10
jb 0x140158ade
mov rcx, qword [rbx]
inc rdx
cmp rdx, 0x1000
jb 0x140158ad9
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140158cee
mov rcx, r8
call fcn.1401c72f8
mov byte [rbx], 0
movups xmm0, xmmword [rbp - 0x71]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [rbp - 0x61]
movups xmmword [rbx + 0x10], xmm1
jmp 0x140158b26
cmp rax, 0x10
jb 0x140158b26
lea rdx, [rax + 1]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140158b21
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140158cee
call fcn.1401c72f8
mov r13, qword [rbx + 0x10]
movabs rcx, 0x7fffffffffffffff
mov rax, rcx
sub rax, r13
cmp rax, 0x33
jb 0x140158cf4
mov r12, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x140158b51
mov r12, qword [rbx]
mov qword [rbp - 0x71], rsi
lea r15, [r13 + 0x33]
mov rsi, rdi
lea r14, [rbp - 0x71]
cmp r15, rdi
jbe 0x140158b92
mov rsi, r15
or rsi, 0xf
cmp rsi, rcx
jbe 0x140158b76
mov rsi, rcx
jmp 0x140158b82
mov eax, SafeArrayPutElement
cmp rsi, rax
cmovb rsi, rax
lea rcx, [rsi + 1]
call fcn.1400b9950
mov r14, rax
mov qword [rbp - 0x71], rax
mov qword [rbp - 0x61], r15
mov qword [rbp - 0x59], rsi
movups xmm0, xmmword [str._SystemInfoClass__Detail_GetMemoryUsage_:_return_:]
movups xmmword [r14], xmm0
movups xmm1, xmmword [0x140283210]
movups xmmword [r14 + 0x10], xmm1
movups xmm0, xmmword [0x140283220]
movups xmmword [r14 + 0x20], xmm0
movzx eax, word [0x140283230]
mov word [r14 + 0x30], ax
movzx eax, byte [0x140283232]
mov byte [r14 + 0x32], al
lea rcx, [r14 + 0x33]
mov r8, r13
mov rdx, r12
call fcn.1401ff6b0
mov byte [r14 + r15], 0
mov dword [rsp + 0x20], edi
movups xmm0, xmmword [rbp - 0x71]
movups xmmword [rbp - 0x51], xmm0
movups xmm1, xmmword [rbp - 0x61]
movups xmmword [rbp - 0x41], xmm1
xor eax, eax
mov qword [rbp - 0x71], rax
mov qword [rbp - 0x61], rax
mov qword [rbp - 0x59], rax
lea r12, [rbp - 0x51]
movq rsi, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 8
movq r15, xmm0
cmp r15, 0x10
cmovae r12, rsi
movq r14, xmm1
cmp r14, 0x10
jae 0x140158c3f
movups xmm0, xmmword [r12]
movups xmmword [rbp - 0x71], xmm0
jmp 0x140158c73
mov rdi, r14
or rdi, 0xf
movabs rax, 0x7fffffffffffffff
cmp rdi, rax
cmova rdi, rax
lea rcx, [rdi + 1]
call fcn.1400b9950
mov qword [rbp - 0x71], rax
lea r8, [r14 + 1]
mov rdx, r12
mov rcx, rax
call fcn.1401ff6b0
mov qword [rbp - 0x61], r14
mov qword [rbp - 0x59], rdi
lea rcx, [rbp - 0x71]
call fcn.1401630b0
nop
cmp r15, 0x10
jb 0x140158cb8
lea rdx, [r15 + 1]
mov rax, rsi
cmp rdx, 0x1000
jb 0x140158cb0
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140158ce8
mov rcx, rsi
call fcn.1401c72f8
mov rax, rbx
mov rcx, qword [rbp + 0x2f]
xor rcx, rsp
call fcn.1401c7850
lea r11, [rsp + 0xe0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call sub.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn
nop
call sub.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn
int3
call fcn.1400d0220
int3