Function at 0x140053940
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 0x140053c86
mov rbp, r8
mov r14, rcx
mov rsi, qword [rcx + 0xb0]
test rsi, rsi
je 0x140053a3a
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 0x1400539e7
cmp r14, rsi
setb bpl
lea rax, [r14 + r13]
inc rax
inc r14
cmp rax, 1
je 0x140053a1e
mov r12, qword [rbx + r14*8 - 8]
cmp byte [r12 + 0xb0], 0
je 0x1400539d0
cmp qword [r12 + 0xa0], rdi
jb 0x1400539d0
mov rcx, r12
mov rdx, rdi
call fcn.140053ca0
mov r15, 0xffffffffffffffff
cmp rax, 0xffffffffffffffff
je 0x1400539d0
mov r15, rax
jmp 0x140053a21
xor r12d, r12d
test bpl, 1
mov ebx, dword [rsp + 0x2c]
mov rbp, qword [rsp + 0x38]
mov r14, qword [rsp + 0x30]
je 0x140053a40
jmp 0x140053bfd
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 0x140053aba
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 0x140053aa9
cmp rdx, rsi
jae 0x140053aa9
mov eax, dword [r14 + 0x144]
jmp 0x140053b0f
cmp eax, 0x59
jbe 0x140053aba
add rdx, rdx
lea rax, [rdx + rdx*4]
cmp rax, rsi
jb 0x140053aa0
cmp dword [r14 + 0xa4], 0
jne 0x140053ae1
mov eax, dword [r14 + 0x144]
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
movss xmm1, dword [r14 + 0x13c]
ucomiss xmm1, xmm0
jbe 0x140053b0f
mov rcx, r14
mov rdx, rdi
mov r8b, 1
call fcn.140052d50
mov r12, rax
test rax, rax
jne 0x140053bef
mov byte [r14 + 0xa0], 1
mov rcx, r14
mov dl, 1
call fcn.1400500e0
jmp 0x140053b2e
test eax, eax
je 0x140053b25
mov byte [r14 + 0xa0], 1
mov rcx, r14
xor edx, edx
call fcn.1400500e0
test r12, r12
jne 0x140053bfd
mov r13, qword [r14 + 0xb0]
test r13, r13
je 0x140053bd5
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 0x140053b87
cmp r14, r13
setb bpl
lea rax, [rbx + r14]
inc rax
inc r14
cmp rax, 1
je 0x140053bbe
mov r12, qword [rsi + r14*8 - 8]
cmp byte [r12 + 0xb0], 0
je 0x140053b70
cmp qword [r12 + 0xa0], rdi
jb 0x140053b70
mov rcx, r12
mov rdx, rdi
call fcn.140053ca0
mov r15, 0xffffffffffffffff
cmp rax, 0xffffffffffffffff
je 0x140053b70
mov r15, rax
jmp 0x140053bc1
xor r12d, r12d
test bpl, 1
mov ebx, dword [rsp + 0x2c]
mov rbp, qword [rsp + 0x38]
mov r14, qword [rsp + 0x30]
jne 0x140053bfd
mov rcx, r14
mov rdx, rdi
mov r8b, 1
call fcn.140052d50
mov r12, rax
test rax, rax
je 0x140053c81
mov rcx, r12
mov rdx, rdi
call fcn.140053ca0
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 0x140053c29
mov rcx, r12
mov rdx, r15
mov r8d, ebx
call fcn.14004c9b0
cmp byte [0x1400e08d8], 1
jne 0x140053c6a
mov rcx, qword [rsp + 0xf0]
mov eax, 1
test rcx, rcx
je 0x140053c5e
mov rdx, qword [rcx]
test bl, 8
je 0x140053c58
lea r8, [0x1400d7c90]
cmp qword [rdx], r8
je 0x140053c5e
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 0x140053c6a
lea r8, str.coreinternalgcimplconservativegc.d
mov edx, 0x27
mov r9d, 0x7c7
xor ecx, ecx
call fcn.1400275a0
int3