Function at 0x50e616
Capabilities:
Get memory capacity

Disassembly:
mov eax, 0x6bcd5f
call fcn.0066bd6c
mov eax, dword [0x7c55ac]
sub esp, 0x2c
shr eax, 2
push esi
push edi
test al, 1
je 0x50e651
call fcn.004a8520
mov edi, dword [eax + 4]
mov esi, dword [edi]
cmp esi, edi
je 0x50e651
mov ecx, dword [esi + 8]
push 1
mov eax, dword [ecx]
call dword [eax + 0x14]
mov eax, dword [esi]
mov esi, eax
cmp eax, edi
jne 0x50e63f
mov eax, dword fs:[0x2c]
mov ecx, dword [0x7f7290]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x7cdc08]
cmp eax, dword [ecx + 4]
jg 0x50e991
mov ecx, dword [0x7cdc00]
mov eax, dword [0x7cdc04]
add ecx, 2
mov edx, dword [0x7c1a94]
adc eax, 0
cmp eax, edx
jg 0x50e6d2
mov eax, dword [0x7c1a90]
jl 0x50e697
cmp ecx, eax
jae 0x50e6d2
mov edi, 0x7cdbac
mov dword [0x7cdc00], eax
push edi
mov dword [0x7cdc04], edx
call fcn.0046a68e
mov esi, 0x7cd810
mov ecx, esi
call fcn.0050f011
add esi, 0x28
cmp esi, 0x7cdba8
jl 0x50e6b2
and dword [ebp - 4], 0
push edi
call fcn.0046a7cb
or dword [ebp - 4], 0xffffffff
push 5
mov edx, 0x7cd730
pop esi
mov eax, dword [edx]
mov ecx, dword [edx - 4]
mov dword [edx], ecx
sub ecx, eax
mov eax, dword [edx - 8]
and dword [edx - 8], 0
add dword [edx + 8], eax
mov dword [edx + 4], ecx
adc dword [edx + 0xc], 0
lea edx, [edx + 0x20]
mov dword [edx - 0x10], eax
sub esi, 1
jne 0x50e6da
cmp byte [0x7cd6d2], 0
je 0x50e713
mov esi, dword [0x7cd6ec]
shl esi, 0x14
jmp 0x50e719
mov esi, dword [0x7cd708]
movzx eax, byte [0x7cd6d8]
neg eax
push ebx
sbb eax, eax
mov ebx, 0x7cd800
and eax, esi
xchg dword [ebx], eax
lea eax, [ebp - 0x38]
push eax
call dword [sym.imp.KERNEL32.DLL_GlobalMemoryStatus]
push 0
push esi
push 0
push dword [ebp - 0x30]
call fcn.0049b7a5
push 0
push eax
mov eax, dword [ebp - 0x20]
add eax, 0xf3800000
push 0
push eax
call fcn.0049b7a5
mov edi, eax
xor eax, eax
lock xadd dword [ebx], eax
xor ecx, ecx
mov edx, 0x7cd7fc
lock xadd dword [edx], ecx
cdq
push edx
push eax
mov eax, ecx
cdq
push edx
push eax
call fcn.0049b7a5
xor ecx, ecx
sub edi, eax
mov eax, 0x100000
sbb ecx, edx
jne 0x50e791
cmp edi, eax
ja 0x50e791
and dword [ebp - 0x14], 0
mov edi, eax
jmp 0x50e794
mov dword [ebp - 0x14], ecx
cmp byte [0x7cd6e5], 0
mov esi, 0x7cd7f8
je 0x50e8cc
cmp byte [0x7cd6e6], 0
je 0x50e7cf
xor eax, eax
lock xadd dword [esi], eax
neg eax
sbb eax, eax
and eax, 0xffff63c0
add eax, 0x13880
cmp dword [0x7c4bb8], eax
jb 0x50e8cc
cmp byte [0x7cd6d3], 0
jne 0x50e7e6
and dword [0x7cd808], 0
xchg dword [esi], edi
jmp 0x50e8d7
call fcn.00544e48
mov ebx, eax
xor ecx, ecx
add ebx, ebx
mov eax, 0x7cd7fc
lock xadd dword [eax], ecx
xor eax, eax
mov edx, 0x7cd800
lock xadd dword [edx], eax
cdq
mov dword [ebp - 0x10], eax
mov eax, ecx
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x14], edx
cdq
sub ecx, eax
mov eax, dword [ebp - 0x14]
push 0
sbb eax, edx
add ecx, ebx
pop edx
adc eax, edx
cmp edx, eax
ja 0x50e82e
jb 0x50e82a
cmp ebx, ecx
ja 0x50e82e
mov ebx, ecx
mov edx, eax
mov ecx, dword [ebp - 0x20]
xor eax, eax
sub ecx, ebx
sbb eax, edx
shrd ecx, eax, 1
shr eax, 1
push eax
mov eax, dword [0x7cd6f0]
imul dword [0x7c4bb8]
push ecx
xor ecx, ecx
add eax, dword [0x7cd808]
push ecx
adc edx, ecx
add eax, 0x100000
push edi
adc edx, ecx
push edx
push eax
call fcn.0049b7a5
push edx
push eax
call fcn.0049b7a5
mov ebx, eax
mov ecx, ebx
xchg dword [esi], ecx
cmp byte [0x7cd6e8], 0
je 0x50e8c3
mov ecx, dword [0x7cd6dc]
sub ecx, dword [0x7cd804]
mov eax, dword [0x7cd80c]
test eax, eax
je 0x50e897
cmp ebx, edi
jne 0x50e89b
test edx, edx
jne 0x50e89b
test ecx, ecx
jns 0x50e8d7
test eax, eax
je 0x50e8a5
dec eax
mov dword [0x7cd80c], eax
add ecx, dword [0x7cd808]
mov eax, 0x1000000
cmp ecx, eax
jg 0x50e8bc
mov eax, ecx
test ecx, ecx
jns 0x50e8bc
xor eax, eax
mov dword [0x7cd808], eax
jmp 0x50e8d7
and dword [0x7cd808], 0
jmp 0x50e8d7
and dword [0x7cd808], 0
xor eax, eax
xchg dword [esi], eax
mov edi, 0x7cf400
mov byte [ebp - 0x14], 1
push edi
mov dword [ebp - 0x18], edi
call fcn.0046a68e
mov dword [ebp - 4], 1
xor ecx, ecx
mov edx, 0x7cd7f4
lock xadd dword [edx], ecx
xor eax, eax
lock xadd dword [esi], eax
pop ebx
cmp ecx, eax
jle 0x50e91a
xor ecx, ecx
lock xadd dword [edx], ecx
xor eax, eax
lock xadd dword [esi], eax
sub ecx, eax
push ecx
call fcn.00544c14
call fcn.00544d53
test eax, eax
je 0x50e95a
call fcn.00544d53
lea esi, [eax + 0x14]
call fcn.00462ade
sub eax, dword [esi]
cmp byte [0x7cd6e7], 0
mov dword [0x7cd804], eax
je 0x50e961
imul ecx, dword [0x7cd6d4], 0xea60
cmp eax, ecx
jb 0x50e961
mov eax, ecx
cdq
push edx
push eax
call fcn.00544c6b
jmp 0x50e961
and dword [0x7cd804], 0
push edi
mov dword [ebp - 4], 2
call fcn.0046a7cb
mov eax, dword [0x7cd70c]
inc eax
pop edi
pop esi
cmp eax, 0x14
jb 0x50e97e
push 0x14
pop eax
mov ecx, dword [ebp - 0xc]
mov dword [0x7cd70c], eax
mov dword fs:[0], ecx
leave
ret 4
mov esi, 0x7cdc08
push esi
call fcn.0066bfa5
cmp dword [0x7cdc08], 0xffffffff
pop ecx
jne 0x50e671
mov eax, dword [0x7c1a90]
mov ecx, dword [0x7c1a94]
push esi
mov dword [0x7cdc00], eax
mov dword [0x7cdc04], ecx
call fcn.0066bf5b
pop ecx
jmp 0x50e671