Function at 0x140053950
Capabilities:
Get memory capacity

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov ebx, r9d
lea rax, [rdx + 0xfff]
shr rax, 0xc
movabs r9, 0xffffffff000
cmp rdx, r9
mov rdi, 0xffffffffffffffff
cmovbe rdi, rax
movabs rax, 0xffffffff001
cmp rdx, rax
jae 0x140053c96
mov rbp, r8
mov r14, rcx
mov rsi, qword [rcx + 0xb0]
test rsi, rsi
je 0x140053a4a
mov qword [rsp + 0x38], rbp
mov dword [rsp + 0x2c], ebx
mov qword [rsp + 0x30], r14
mov rbx, qword [r14 + 0xa8]
mov r13, rsi
neg r13
mov bpl, 1
mov r14d, 1
xor r15d, r15d
jmp 0x1400539f7
cmp r14, rsi
setb bpl
lea rax, [r14 + r13]
inc rax
inc r14
cmp rax, 1
je 0x140053a2e
mov r12, qword [rbx + r14*8 - 8]
cmp byte [r12 + 0xb0], 0
je 0x1400539e0
cmp qword [r12 + 0xa0], rdi
jb 0x1400539e0
mov rcx, r12
mov rdx, rdi
call fcn.140053cb0
mov r15, 0xffffffffffffffff
cmp rax, 0xffffffffffffffff
je 0x1400539e0
mov r15, rax
jmp 0x140053a31
xor r12d, r12d
test bpl, 1
mov ebx, dword [rsp + 0x2c]
mov rbp, qword [rsp + 0x38]
mov r14, qword [rsp + 0x30]
je 0x140053a50
jmp 0x140053c0d
xor r12d, r12d
xor r15d, r15d
mov esi, dword [r14 + 0x148]
xorps xmm0, xmm0
movaps xmmword [rsp + 0x40], xmm0
movaps xmmword [rsp + 0x70], xmm0
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x50], xmm0
mov dword [rsp + 0x40], 0x40
lea rcx, [rsp + 0x40]
call sub.KERNEL32.dll_GlobalMemoryStatusEx
test eax, eax
je 0x140053aca
shl rsi, 0xc
mov rax, qword [rsp + 0x48]
shr rax, 2
movabs rcx, 0x28f5c28f5c28f5c3
mul rcx
shr rdx, 2
mov eax, dword [rsp + 0x44]
cmp eax, 0x5f
jb 0x140053ab9
cmp rdx, rsi
jae 0x140053ab9
mov eax, dword [r14 + 0x144]
jmp 0x140053b1f
cmp eax, 0x59
jbe 0x140053aca
add rdx, rdx
lea rax, [rdx + rdx*4]
cmp rax, rsi
jb 0x140053ab0
cmp dword [r14 + 0xa4], 0
jne 0x140053af1
mov eax, dword [r14 + 0x144]
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
movss xmm1, dword [r14 + 0x13c]
ucomiss xmm1, xmm0
jbe 0x140053b1f
mov rcx, r14
mov rdx, rdi
mov r8b, 1
call fcn.140052d60
mov r12, rax
test rax, rax
jne 0x140053bff
mov byte [r14 + 0xa0], 1
mov rcx, r14
mov dl, 1
call fcn.1400500f0
jmp 0x140053b3e
test eax, eax
je 0x140053b35
mov byte [r14 + 0xa0], 1
mov rcx, r14
xor edx, edx
call fcn.1400500f0
test r12, r12
jne 0x140053c0d
mov r13, qword [r14 + 0xb0]
test r13, r13
je 0x140053be5
mov qword [rsp + 0x38], rbp
mov dword [rsp + 0x2c], ebx
mov qword [rsp + 0x30], r14
mov rsi, qword [r14 + 0xa8]
mov rbx, r13
neg rbx
mov bpl, 1
mov r14d, 1
jmp 0x140053b97
cmp r14, r13
setb bpl
lea rax, [rbx + r14]
inc rax
inc r14
cmp rax, 1
je 0x140053bce
mov r12, qword [rsi + r14*8 - 8]
cmp byte [r12 + 0xb0], 0
je 0x140053b80
cmp qword [r12 + 0xa0], rdi
jb 0x140053b80
mov rcx, r12
mov rdx, rdi
call fcn.140053cb0
mov r15, 0xffffffffffffffff
cmp rax, 0xffffffffffffffff
je 0x140053b80
mov r15, rax
jmp 0x140053bd1
xor r12d, r12d
test bpl, 1
mov ebx, dword [rsp + 0x2c]
mov rbp, qword [rsp + 0x38]
mov r14, qword [rsp + 0x30]
jne 0x140053c0d
mov rcx, r14
mov rdx, rdi
mov r8b, 1
call fcn.140052d60
mov r12, rax
test rax, rax
je 0x140053c91
mov rcx, r12
mov rdx, rdi
call fcn.140053cb0
mov r15, rax
add dword [r14 + 0x144], edi
mov r14, r15
shl r14, 0xc
add r14, qword [r12]
shl rdi, 0xc
mov qword [rbp], rdi
test ebx, ebx
je 0x140053c39
mov rcx, r12
mov rdx, r15
mov r8d, ebx
call fcn.14004c9c0
cmp byte [0x1400e18d8], 1
jne 0x140053c7a
mov rcx, qword [rsp + 0xf0]
mov eax, 1
test rcx, rcx
je 0x140053c6e
mov rdx, qword [rcx]
test bl, 8
je 0x140053c68
lea r8, [0x1400d8c90]
cmp qword [rdx], r8
je 0x140053c6e
call qword [rdx + 0x90]
mov rcx, qword [r12 + 0xf8]
mov qword [rcx + r15*8], rax
mov rax, r14
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor r14d, r14d
jmp 0x140053c7a
lea r8, str.coreinternalgcimplconservativegc.d
mov edx, 0x27
mov r9d, 0x7c7
xor ecx, ecx
call fcn.1400275a0
int3