Function at 0x503f25
Capabilities:
Get memory capacity

Disassembly:
mov eax, 0x674dc0
call fcn.006313fc
mov eax, dword [0x7639c8]
sub esp, 0x2c
shr eax, 2
push ebx
push ebp
push esi
push edi
test al, 1
je 0x503f5d
call fcn.004a2684
mov edi, dword [eax]
mov esi, dword [edi]
jmp 0x503f59
mov ecx, dword [esi + 8]
push 1
mov eax, dword [ecx]
call dword [eax + 0x14]
mov esi, dword [esi]
cmp esi, edi
jne 0x503f4d
mov eax, dword [0x76bdc0]
mov esi, dword [0x762f24]
mov edx, dword [0x762f20]
test al, 1
jne 0x503f8b
or eax, 1
mov ecx, esi
mov dword [0x76bdc0], eax
mov eax, edx
mov dword [0x76bdb8], eax
mov dword [0x76bdbc], ecx
jmp 0x503f96
mov ecx, dword [0x76bdbc]
mov eax, dword [0x76bdb8]
add eax, 2
push 0
pop edi
adc ecx, edi
cmp ecx, esi
jg 0x503fdc
jl 0x503fa8
cmp eax, edx
jae 0x503fdc
mov ebx, 0x76bd64
mov dword [0x76bdb8], edx
push ebx
mov dword [0x76bdbc], esi
call fcn.00466f49
mov esi, 0x76ba20
mov ecx, esi
call fcn.00504921
add esi, 0x24
cmp esi, 0x76bd5c
jl 0x503fc4
push ebx
call fcn.0046703c
push 5
mov edx, 0x76b958
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]
dec esi
jne 0x503fe4
cmp byte [0x76b902], 0
je 0x504019
mov esi, dword [0x76b91c]
shl esi, 0x14
jmp 0x50401f
mov esi, dword [0x76b938]
movzx eax, byte [0x76b908]
mov ebx, 0x76ba10
neg eax
sbb eax, eax
and eax, esi
push eax
push ebx
call dword [sym.imp.KERNEL32.DLL_InterlockedExchange]
lea eax, [esp + 0x1c]
push eax
call dword [sym.imp.KERNEL32.DLL_GlobalMemoryStatus]
push edi
push esi
push edi
push dword [esp + 0x30]
call fcn.00497911
push edi
push eax
mov eax, dword [esp + 0x3c]
add eax, 0xf3800000
push edi
push eax
call fcn.00497911
push edi
push ebx
mov ebx, dword [sym.imp.KERNEL32.DLL_InterlockedExchangeAdd]
mov ebp, eax
call ebx
push edi
push 0x76ba0c
mov esi, eax
call ebx
mov ecx, eax
mov eax, esi
cdq
push edx
push eax
mov eax, ecx
cdq
push edx
push eax
call fcn.00497911
xor ecx, ecx
sub ebp, eax
mov eax, 0x100000
sbb ecx, edx
jne 0x5040a2
cmp ebp, eax
ja 0x5040a2
mov ebp, eax
mov dword [esp + 0x18], edi
jmp 0x5040a6
mov dword [esp + 0x18], ecx
cmp byte [0x76b915], 0
je 0x504204
cmp byte [0x76b916], 0
mov edi, 0x76ba08
je 0x5040ea
push 0
push edi
call ebx
neg eax
sbb eax, eax
and eax, 0xffff63c0
add eax, 0x13880
cmp dword [0x762ffc], eax
jae 0x5040ea
and dword [0x76ba18], 0
push 0
jmp 0x504210
cmp byte [0x76b903], 0
jne 0x504100
and dword [0x76ba18], 0
push ebp
jmp 0x504210
call fcn.005391fa
push 0
add eax, eax
push 0x76ba0c
mov dword [esp + 0x1c], eax
call ebx
push 0
push 0x76ba10
mov esi, eax
call ebx
cdq
mov ecx, eax
mov dword [esp + 0x10], edx
mov eax, esi
mov esi, dword [esp + 0x14]
cdq
sub ecx, eax
mov eax, dword [esp + 0x10]
push 0
sbb eax, edx
add ecx, esi
pop edx
adc eax, edx
cmp edx, eax
ja 0x50414a
jb 0x504146
cmp esi, ecx
ja 0x50414a
mov esi, ecx
mov edx, eax
mov ecx, dword [esp + 0x34]
xor eax, eax
sub ecx, esi
sbb eax, edx
shrd ecx, eax, 1
shr eax, 1
push eax
mov eax, dword [0x76b920]
push ecx
cdq
push 0
mov esi, eax
mov ecx, edx
mov eax, dword [0x762ffc]
push ebp
cdq
push edx
push eax
push ecx
push esi
call fcn.00637fe0
add eax, dword [0x76ba18]
adc edx, 0
add eax, 0x100000
adc edx, 0
push edx
push eax
call fcn.00497911
push edx
push eax
call fcn.00497911
mov esi, eax
mov dword [esp + 0x14], edx
push esi
push edi
call dword [sym.imp.KERNEL32.DLL_InterlockedExchange]
cmp byte [0x76b918], 0
je 0x5041fb
mov ecx, dword [0x76b90c]
sub ecx, dword [0x76ba14]
mov eax, dword [0x76ba1c]
test eax, eax
je 0x5041ce
cmp esi, ebp
jne 0x5041d2
cmp dword [esp + 0x14], 0
jne 0x5041d2
test ecx, ecx
jns 0x504217
test eax, eax
je 0x5041dc
dec eax
mov dword [0x76ba1c], eax
mov eax, dword [0x76ba18]
add eax, ecx
mov ecx, 0x1000000
cmp eax, ecx
jle 0x5041ee
mov eax, ecx
test eax, eax
jns 0x5041f4
xor eax, eax
mov dword [0x76ba18], eax
jmp 0x504217
and dword [0x76ba18], 0
jmp 0x504217
mov dword [0x76ba18], edi
push edi
mov edi, 0x76ba08
push edi
call dword [sym.imp.KERNEL32.DLL_InterlockedExchange]
mov ebp, 0x76d5f4
mov byte [esp + 0x18], 1
push ebp
mov dword [esp + 0x18], ebp
call fcn.00466f49
and dword [esp + 0x44], 0
push 0
push 0x76ba04
call ebx
push 0
push edi
mov esi, eax
call ebx
cmp esi, eax
jle 0x50425c
push 0
push 0x76ba04
call ebx
push 0
push edi
mov esi, eax
call ebx
sub esi, eax
push esi
call fcn.00538fda
call fcn.00539128
test eax, eax
je 0x50429c
call fcn.00539128
lea esi, [eax + 0x14]
call fcn.00461427
sub eax, dword [esi]
cmp byte [0x76b917], 0
mov dword [0x76ba14], eax
je 0x5042a3
imul ecx, dword [0x76b904], 0xea60
cmp eax, ecx
jb 0x5042a3
mov eax, ecx
cdq
push edx
push eax
call fcn.00539039
jmp 0x5042a3
and dword [0x76ba14], 0
or dword [esp + 0x44], 0xffffffff
push ebp
call fcn.0046703c
mov eax, dword [0x76b8e8]
pop edi
pop esi
inc eax
pop ebp
pop ebx
cmp eax, 0x14
jb 0x5042c0
push 0x14
pop eax
mov ecx, dword [esp + 0x2c]
mov dword [0x76b8e8], eax
mov dword fs:[0], ecx
leave
ret 4