Function at 0x4151a9
Capabilities:
Get memory capacity

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
push ebx
push esi
mov esi, dword [ebp + 8]
xor ebx, ebx
push edi
cmp dword [esi], ebx
je 0x4154c4
push ebx
mov ecx, esi
call fcn.0041da2a
cmp al, 0x3c
je 0x4151de
mov ecx, esi
call fcn.0041de81
push eax
call fcn.004262e3
pop ecx
jmp 0x4154c6
cmp dword [0x47f5dc], ebx
push 1
mov dword [ebp + 8], ebx
pop edi
jle 0x415216
push dword [ebp + 8]
mov ecx, 0x47f5d0
call fcn.0041fafa
mov ebx, eax
push edi
push esi
mov ecx, ebx
call fcn.0041d2c4
test al, al
jne 0x415244
inc dword [ebp + 8]
mov eax, dword [ebp + 8]
cmp eax, dword [0x47f5dc]
jl 0x4151ec
push edi
push str._CPUSpeed_
mov ecx, esi
call fcn.0041d348
test al, al
je 0x41525f
mov eax, dword [0x47f7d8]
cmp eax, 0xffffffff
jne 0x4154c6
call fcn.00406ca1
mov dword [0x47f7d8], eax
jmp 0x4154c6
cmp dword [ebx + 0x10], 0xffffffff
je 0x415257
push dword [ebp + 8]
mov ecx, 0x47f0b8
call fcn.0041bc15
mov eax, dword [ebx + 0x54]
jmp 0x4154c6
push edi
push str._CPUType_
mov ecx, esi
call fcn.0041d348
test al, al
je 0x4152ac
mov eax, dword [0x47f7dc]
cmp eax, 0xffffffff
jne 0x4154c6
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0xc]
push eax
call fcn.004066e9
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 4]
add esp, 0x10
mov dword [0x47f7dc], eax
mov dword [0x47f7e0], ecx
jmp 0x4154c6
push edi
push str._CPUFlags_
mov ecx, esi
call fcn.0041d348
test al, al
je 0x4152f8
cmp dword [0x47f7dc], 0xffffffff
jne 0x4152ee
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 8]
push eax
call fcn.004066e9
mov eax, dword [ebp + 8]
add esp, 0x10
mov dword [0x47f7dc], eax
mov eax, dword [ebp - 4]
mov dword [0x47f7e0], eax
mov eax, dword [0x47f7e0]
jmp 0x4154c6
push edi
push str._LanguageID_
mov ecx, esi
call fcn.0041d348
test al, al
je 0x415313
mov eax, dword [0x47f70c]
jmp 0x4154c6
push edi
push str._OSBuild_
mov ecx, esi
call fcn.0041d348
test al, al
je 0x415333
mov eax, dword [0x47f2e8]
and eax, 0xffff
jmp 0x4154c6
push edi
push str._CurXRes_
mov ecx, esi
call fcn.0041d348
test al, al
je 0x415380
cmp dword [0x47f7e4], 0xffffffff
jne 0x415376
push dword [0x47f278]
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
push 8
push esi
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
push esi
mov dword [0x47f7e4], eax
push dword [0x47f278]
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [0x47f7e4]
jmp 0x4154c6
push edi
push str._CurYRes_
mov ecx, esi
call fcn.0041d348
test al, al
je 0x4153cd
cmp dword [0x47f7e8], 0xffffffff
jne 0x4153c3
push dword [0x47f278]
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
push 0xa
push esi
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
push esi
mov dword [0x47f7e8], eax
push dword [0x47f278]
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [0x47f7e8]
jmp 0x4154c6
push edi
push str._CurBPP_
mov ecx, esi
call fcn.0041d348
test al, al
je 0x41541a
cmp dword [0x47f7ec], 0xffffffff
jne 0x415410
push dword [0x47f278]
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
push 0xc
push esi
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
push esi
mov dword [0x47f7ec], eax
push dword [0x47f278]
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [0x47f7ec]
jmp 0x4154c6
push edi
push str._RAM_
mov ecx, esi
call fcn.0041d348
test al, al
je 0x41546a
mov ecx, dword [0x47f7f0]
cmp ecx, 0xffffffff
jne 0x415466
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x2c], 0x20
push eax
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
mov ecx, dword [ebp - 0x24]
push 2
shr ecx, 0x14
mov eax, ecx
pop esi
cdq
idiv esi
mov dword [0x47f7f0], ecx
test edx, edx
je 0x415466
inc ecx
mov dword [0x47f7f0], ecx
mov eax, ecx
jmp 0x4154c6
push edi
push str._DirectXVer_
mov ecx, esi
call fcn.0041d348
test al, al
je 0x4154a2
mov ecx, dword [0x47f7f4]
cmp ecx, 0xffffffff
jne 0x415493
call fcn.00421193
mov ecx, eax
mov dword [0x47f7f4], ecx
mov eax, ecx
movzx ecx, cx
shr eax, 0x10
shl ecx, 0x10
or eax, ecx
jmp 0x4154c6
push edi
push str._.NETVersion_
mov ecx, esi
call fcn.0041d348
test al, al
je 0x4154c4
call fcn.00420e1b
test eax, eax
jl 0x4154c4
add eax, 0x64
imul eax, eax, 0x64
jmp 0x4154c6
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret