Function at 0x402510
Capabilities:
Get memory capacity

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x503771
mov eax, dword fs:[0]
push eax
sub esp, 0x1c8
mov eax, dword [0x543720]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x1b8], edi
test edi, edi
je 0x4029be
xorps xmm0, xmm0
mov dword [ebp - 0x34], 0
movdqu xmmword [ebp - 0x44], xmm0
mov dword [ebp - 0x44], vtable.CCPU.0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x44]
call fcn.00402ca0
mov dword [ebp - 4], 1
lea eax, [ebp - 0x40]
push eax
lea ecx, [edi + 4]
call fcn.00403040
xorps xmm0, xmm0
movdqu xmmword [ebp - 0x64], xmm0
mov dword [ebp - 0x64], vtable.CDISK.0
movdqu xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x64]
call fcn.00403a30
lea ecx, [ebp - 0x64]
call fcn.00403cf0
mov byte [ebp - 4], 3
lea ecx, [edi + 0x18]
mov eax, dword [ebp - 0x54]
mov dword [edi + 0x14], eax
call fcn.00403370
push dword [ebp - 0x1b4]
lea ecx, [edi + 0x18]
push dword [ebp - 0x5c]
push dword [ebp - 0x60]
call fcn.00403e00
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x48]
mov dword [edi + 0x28], ecx
mov dword [edi + 0x2c], edx
cmp ecx, edx
jl 0x402636
mov eax, ecx
movd xmm0, ecx
sub eax, edx
cvtdq2ps xmm0, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
divss xmm1, xmm0
mulss xmm1, dword [0x52e6c0]
cvttss2si eax, xmm1
inc eax
mov dword [ebp - 0x50], eax
mov dword [edi + 0x24], eax
lea eax, [ebp - 0xd0]
mov dword [ebp - method.CMemory.virtual_0], vtable.CMemory.0
push eax
mov dword [ebp - 0xd0], 0x40
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
test eax, eax
je 0x4026d9
mov eax, dword [ebp - 0xcc]
mov edx, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xc8]
mov dword [ebp - 0x1d0], eax
call fcn.004e6b2e
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
mulss xmm1, dword [0x52e688]
mulss xmm1, dword [0x52e688]
movss dword [ebp - 0x1cc], xmm1
mov edx, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0xc0]
movss dword [ebp - 0x1b4], xmm1
call fcn.004e6b2e
xorps xmm2, xmm2
cvtsd2ss xmm2, xmm0
mulss xmm2, dword [0x52e688]
mulss xmm2, dword [0x52e688]
movss dword [ebp - 0x1c8], xmm2
movss xmm1, dword [ebp - 0x1b4]
jmp 0x4026e9
movss xmm2, dword [ebp - 0x1c8]
movss xmm1, dword [ebp - 0x1cc]
mov byte [ebp - 4], 4
ucomiss xmm1, dword [0x52e670]
movss dword [edi + 0x44], xmm1
movss dword [edi + 0x48], xmm2
lahf
test ah, 0x44
jnp 0x402709
comiss xmm2, xmm1
ja 0x402729
movaps xmm0, xmm1
subss xmm0, xmm2
divss xmm0, xmm1
mulss xmm0, dword [0x52e6c0]
cvttss2si eax, xmm0
mov dword [ebp - 0x1d0], eax
mov dword [edi + 0x40], eax
lea eax, [ebp - 0x1b0]
mov dword [ebp - method.CScreen.virtual_0], vtable.CScreen.0
push eax
push 0xffffffffffffffff
push 0
call dword [sym.imp.USER32.dll_EnumDisplaySettingsW]
test eax, eax
je 0x402762
mov eax, dword [ebp - 0x104]
mov dword [ebp - 0x1c0], eax
mov ecx, dword [ebp - 0x100]
mov dword [ebp - 0x1bc], ecx
jmp 0x40276e
mov ecx, dword [ebp - 0x1bc]
mov eax, dword [ebp - 0x1c0]
mov byte [ebp - 4], 5
push 0x2c
mov dword [edi + 0x74], eax
lea eax, [ebp - 0x90]
push 0
push eax
mov dword [edi + 0x78], ecx
call fcn.004e4b60
add esp, 0xc
lea ecx, [ebp - 0x90]
call fcn.004042f0
mov byte [ebp - 4], 6
lea ecx, [edi + 0x50]
mov eax, dword [ebp - 0x8c]
mov esi, dword [ebp - 0x84]
mov dword [edi + 0x4c], eax
mov edi, dword [ebp - 0x88]
call fcn.00403370
push dword [ebp - 0x1b4]
push esi
mov esi, dword [ebp - 0x1b8]
push edi
lea ecx, [esi + 0x50]
call fcn.00403e00
mov edi, dword [ebp - 0x70]
lea ecx, [esi + 0x68]
mov esi, dword [ebp - 0x6c]
call fcn.00403370
push dword [ebp - 0x1b4]
push esi
push edi
mov edi, dword [ebp - 0x1b8]
lea ecx, [edi + 0x68]
call fcn.00403e00
xorps xmm0, xmm0
mov dword [ebp - 0x14], 0
movq qword [ebp - 0x1c], xmm0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x1c]
call fcn.00404df0
mov byte [ebp - 4], 8
lea ecx, [edi + 0x7c]
call fcn.00403370
push dword [ebp - 0x1b4]
lea ecx, [edi + 0x7c]
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
call fcn.00403e00
xorps xmm0, xmm0
mov dword [ebp - 0x20], 0
movdqu xmmword [ebp - 0x30], xmm0
mov dword [ebp - 0x30], vtable.CDisplayCard.0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x30]
call fcn.00403ff0
mov byte [ebp - 4], 0xa
lea ecx, [edi + 0x34]
mov eax, dword [ebp - 0x2c]
mov dword [edi + 0x30], eax
call fcn.00403370
push dword [ebp - 0x1b4]
lea ecx, [edi + 0x34]
push dword [ebp - 0x24]
push dword [ebp - 0x28]
call fcn.00403e00
mov dword [edi], 1
mov byte [ebp - 4], 8
mov dword [ebp - 0x30], vtable.CDisplayCard.0
mov byte [ebp - 4], 8
mov esi, dword [ebp - 0x28]
test esi, esi
je 0x4028e1
push dword [ebp - 0x24]
push esi
call fcn.00403430
push esi
call fcn.004e03e4
add esp, 4
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov byte [ebp - 4], 6
mov esi, dword [ebp - 0x1c]
test esi, esi
je 0x402913
push dword [ebp - 0x18]
push esi
call fcn.00403430
push esi
call fcn.004e03e4
add esp, 4
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x90]
call fcn.004043c0
mov byte [ebp - 4], 4
mov dword [ebp - method.CScreen.virtual_0], vtable.CScreen.0
mov byte [ebp - 4], 3
mov dword [ebp - method.CMemory.virtual_0], vtable.CMemory.0
mov byte [ebp - 4], 1
mov dword [ebp - 0x64], vtable.CDISK.0
mov byte [ebp - 4], 1
mov esi, dword [ebp - 0x60]
test esi, esi
je 0x40297b
push dword [ebp - 0x5c]
push esi
call fcn.00403430
push esi
call fcn.004e03e4
add esp, 4
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x44], vtable.CCPU.0
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x40]
test esi, esi
je 0x4029be
push dword [ebp - 0x3c]
push esi
call fcn.00403430
push esi
call fcn.004e03e4
add esp, 4
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004e03e9
mov esp, ebp
pop ebp
ret