Function at 0x50d049
Capabilities:
Get memory capacity

Disassembly:
mov eax, 0x6a862d
call fcn.00640244
mov eax, dword [0x7b0f78]
sub esp, 0x2c
shr eax, 2
push esi
push edi
test al, 1
je 0x50d080
call fcn.004a7313
mov esi, dword [eax + 4]
mov edi, esi
jmp 0x50d07a
mov ecx, dword [esi + 8]
push 1
mov eax, dword [ecx]
call dword [eax + 0x14]
mov esi, dword [esi]
cmp esi, edi
jne 0x50d070
mov eax, dword fs:[0x2c]
mov ecx, dword [0x7e15c8]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x7b9550]
cmp eax, dword [ecx + 4]
jle 0x50d0cc
mov esi, 0x7b9550
push esi
call fcn.006403ab
cmp dword [0x7b9550], 0xffffffff
pop ecx
jne 0x50d0cc
mov eax, dword [0x7b0438]
mov dword [0x7b9548], eax
mov eax, dword [0x7b043c]
push esi
mov dword [0x7b954c], eax
call fcn.0064036c
pop ecx
mov ecx, dword [0x7b9548]
mov eax, dword [0x7b954c]
add ecx, 2
mov edx, dword [0x7b043c]
push ebx
push 0
pop edi
adc eax, edi
cmp eax, edx
jg 0x50d12f
mov eax, dword [0x7b0438]
jl 0x50d0f5
cmp ecx, eax
jae 0x50d12f
mov ebx, 0x7b94f4
mov dword [0x7b9548], eax
push ebx
mov dword [0x7b954c], edx
call fcn.0046b312
mov esi, 0x7b91b0
mov ecx, esi
call fcn.0050d9fa
add esi, 0x24
cmp esi, 0x7b94ec
jl 0x50d110
push ebx
mov dword [ebp - 4], edi
call fcn.0046b405
or dword [ebp - 4], 0xffffffff
push 5
mov edx, 0x7b90e8
pop esi
mov eax, dword [edx]
mov ecx, dword [edx - 4]
mov dword [edx], ecx
sub ecx, eax
mov dword [edx + 4], ecx
mov eax, dword [edx - 8]
mov dword [edx - 8], edi
add dword [edx + 8], eax
mov dword [edx + 0x10], eax
adc dword [edx + 0xc], edi
lea edx, [edx + 0x1c]
sub esi, 1
jne 0x50d137
cmp byte [0x7b9092], 0
je 0x50d16e
mov esi, dword [0x7b90ac]
shl esi, 0x14
jmp 0x50d174
mov esi, dword [0x7b9084]
movzx eax, byte [0x7b9098]
neg eax
sbb eax, eax
and eax, esi
push eax
push 0x7b91a0
call dword [sym.imp.KERNEL32.DLL_InterlockedExchange]
lea eax, [ebp - 0x38]
push eax
call dword [sym.imp.KERNEL32.DLL_GlobalMemoryStatus]
push edi
push esi
push edi
push dword [ebp - 0x30]
call fcn.00508c45
push edi
push eax
mov eax, dword [ebp - 0x20]
add eax, 0xf3800000
push edi
push eax
call fcn.00508c45
push edi
mov edi, dword [sym.imp.KERNEL32.DLL_InterlockedExchangeAdd]
mov ebx, eax
push 0x7b91a0
mov dword [ebp - 0x14], edx
call edi
push 0
push 0x7b919c
mov esi, eax
call edi
mov ecx, eax
mov eax, esi
cdq
push edx
push eax
mov eax, ecx
cdq
push edx
push eax
call fcn.00508c45
xor ecx, ecx
sub ebx, eax
mov dword [ebp - 0x10], ebx
mov eax, 0x100000
sbb ecx, edx
jne 0x50d201
cmp ebx, eax
ja 0x50d201
and dword [ebp - 0x14], 0
mov esi, eax
mov dword [ebp - 0x10], esi
jmp 0x50d207
mov esi, dword [ebp - 0x10]
mov dword [ebp - 0x14], ecx
cmp byte [0x7b90a5], 0
mov ebx, 0x7b9198
je 0x50d239
cmp byte [0x7b90a6], 0
je 0x50d23d
push 0
push ebx
call edi
neg eax
sbb eax, eax
and eax, 0xffff63c0
add eax, 0x13880
cmp dword [0x7b04fc], eax
jae 0x50d23d
push 0
jmp 0x50d247
cmp byte [0x7b9093], 0
jne 0x50d25a
push esi
and dword [0x7b91a8], 0
push ebx
call dword [sym.imp.KERNEL32.DLL_InterlockedExchange]
jmp 0x50d34f
call fcn.00545d7f
push 0
add eax, eax
push 0x7b91a0
mov dword [ebp - 0x14], eax
call edi
push 0
push 0x7b919c
mov edi, eax
call dword [sym.imp.KERNEL32.DLL_InterlockedExchangeAdd]
cdq
mov ecx, eax
mov esi, edx
mov eax, edi
cdq
sub eax, ecx
push 0
sbb edx, esi
mov esi, dword [ebp - 0x14]
add eax, esi
pop edi
adc edx, edi
cmp edi, edx
ja 0x50d2a0
jb 0x50d29c
cmp esi, eax
ja 0x50d2a0
mov esi, eax
mov edi, edx
mov ecx, dword [ebp - 0x20]
xor eax, eax
sub ecx, esi
mov esi, dword [ebp - 0x10]
sbb eax, edi
shrd ecx, eax, 1
shr eax, 1
push eax
mov eax, dword [0x7b90b0]
imul dword [0x7b04fc]
push ecx
xor ecx, ecx
add eax, dword [0x7b91a8]
push ecx
adc edx, ecx
add eax, 0x100000
push esi
adc edx, ecx
push edx
push eax
call fcn.00508c45
push edx
push eax
call fcn.00508c45
mov edi, eax
mov dword [ebp - 0x14], edx
push edi
push ebx
call dword [sym.imp.KERNEL32.DLL_InterlockedExchange]
cmp byte [0x7b90a8], 0
je 0x50d342
mov ecx, dword [0x7b909c]
sub ecx, dword [0x7b91a4]
mov eax, dword [0x7b91ac]
test eax, eax
je 0x50d315
cmp edi, esi
jne 0x50d319
cmp dword [ebp - 0x14], 0
jne 0x50d319
test ecx, ecx
jns 0x50d349
test eax, eax
je 0x50d323
dec eax
mov dword [0x7b91ac], eax
mov eax, dword [0x7b91a8]
add eax, ecx
mov ecx, 0x1000000
cmp eax, ecx
jle 0x50d335
mov eax, ecx
test eax, eax
jns 0x50d33b
xor eax, eax
mov dword [0x7b91a8], eax
jmp 0x50d349
and dword [0x7b91a8], 0
mov edi, dword [sym.imp.KERNEL32.DLL_InterlockedExchangeAdd]
mov eax, 0x7bad48
mov byte [ebp - 0x14], 1
push eax
mov dword [ebp - 0x18], eax
call fcn.0046b312
push 0
push ebx
mov dword [ebp - 4], 1
call edi
push 0
push 0x7b9194
mov esi, eax
call edi
cmp eax, esi
jle 0x50d394
push 0
push ebx
call edi
push 0
push 0x7b9194
mov esi, eax
call edi
sub eax, esi
push eax
call fcn.00545b5f
call fcn.00545cad
pop ebx
test eax, eax
je 0x50d3d5
call fcn.00545cad
lea esi, [eax + 0x14]
call fcn.004639e8
sub eax, dword [esi]
cmp byte [0x7b90a7], 0
mov dword [0x7b91a4], eax
je 0x50d3dc
imul ecx, dword [0x7b9094], 0xea60
cmp eax, ecx
jb 0x50d3dc
mov eax, ecx
cdq
push edx
push eax
call fcn.00545bbe
jmp 0x50d3dc
and dword [0x7b91a4], 0
push 0x7bad48
mov dword [ebp - 4], 2
call fcn.0046b405
mov eax, dword [0x7b90c8]
inc eax
pop edi
pop esi
cmp eax, 0x14
jb 0x50d3fd
push 0x14
pop eax
mov ecx, dword [ebp - 0xc]
mov dword [0x7b90c8], eax
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4