Function at 0x405824
Capabilities:
Get memory capacity

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x45a770
mov eax, dword fs:[0]
push eax
sub esp, 0x370
mov eax, dword [0x479548]
xor eax, esp
mov dword [esp + 0x368], eax
push ebx
push esi
push edi
mov eax, dword [0x479548]
xor eax, esp
push eax
lea eax, [esp + 0x380]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
push 0
lea ecx, [esp + 0x104]
mov dword [esp + 0x20], eax
mov dword [esp + 0x11c], 0xf
call fcn.00414e57
and dword [esp + 0x388], 0
push str._____System_information______n
lea ecx, [esp + 0x104]
call fcn.00414a0f
mov eax, 0x80000000
cpuid
lea esi, [esp + 0x3c]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
cmp dword [esp + 0x3c], 0x80000004
jb 0x40590a
mov eax, 0x80000002
cpuid
lea esi, [esp + 0x334]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
mov eax, 0x80000003
cpuid
lea esi, [esp + 0x344]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
mov eax, 0x80000004
cpuid
lea esi, [esp + 0x354]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
jmp 0x405921
push str.Unknown_CPU
lea eax, [esp + 0x338]
push 0x30
push eax
call fcn.0043d078
add esp, 0xc
push str.CPU_name:_n_s_n
lea eax, [esp + 0x5c]
xor ebx, ebx
push eax
mov byte [esp + 0x36b], bl
call fcn.0040b971
mov esi, eax
mov byte [esp + 0x388], 1
cmp byte [esi + 0x30], bl
je 0x40594d
call fcn.0040d8e3
lea eax, [esp + 0x334]
push eax
mov ecx, esi
call fcn.0040e524
inc dword [esi + 0x28]
mov eax, dword [esi + 0x28]
pop ecx
mov dword [esp + 0x14], eax
cmp dword [esi + 0x10], ebx
je 0x4059a2
cmp eax, dword [esi + 0x2c]
jge 0x4059a2
jmp 0x405977
mov eax, dword [esp + 0x14]
push eax
lea edi, [esp + 0x40]
lea eax, [esi + 0x10]
call fcn.0040cdb5
mov ecx, dword [eax + 4]
mov edx, dword [eax]
xor edi, edi
inc edi
shl edi, cl
test dword [edx], edi
je 0x4059a2
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov dword [esi + 0x28], eax
cmp eax, dword [esi + 0x2c]
jl 0x405973
lea eax, [esp + 0x20]
push eax
mov ecx, esi
call fcn.0040bd72
pop ecx
push 0xffffffffffffffff
push ebx
lea esi, [esp + 0x108]
mov byte [esp + 0x390], 2
call fcn.00408eb7
push ebx
push 1
lea ecx, [esp + 0x28]
call fcn.00414e73
lea eax, [esp + 0x58]
push eax
mov byte [esp + 0x38c], bl
call fcn.00403160
push 0x3c
lea eax, [esp + 0x33c]
push ebx
push eax
mov dword [esp + 0x340], 0x40
call fcn.0043c820
add esp, 0xc
lea eax, [esp + 0x334]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
mov eax, dword [esp + 0x33c]
mov ecx, dword [esp + 0x340]
shrd eax, ecx, 0x14
mov dword [esp + 0x14], eax
push str.Memory:_n_lld_MB_n
lea eax, [esp + 0x5c]
shr ecx, 0x14
push eax
mov dword [esp + 0x20], ecx
call fcn.0040b971
mov esi, eax
mov byte [esp + 0x388], 3
cmp byte [esi + 0x30], bl
je 0x405a4f
call fcn.0040d8e3
lea eax, [esp + 0x14]
push eax
mov ecx, esi
call fcn.0040e48b
inc dword [esi + 0x28]
mov eax, dword [esi + 0x28]
pop ecx
mov dword [esp + 0x14], eax
cmp dword [esi + 0x10], ebx
je 0x405aa1
cmp eax, dword [esi + 0x2c]
jge 0x405aa1
jmp 0x405a76
mov eax, dword [esp + 0x14]
push eax
lea edi, [esp + 0x40]
lea eax, [esi + 0x10]
call fcn.0040cdb5
mov ecx, dword [eax + 4]
mov edx, dword [eax]
xor edi, edi
inc edi
shl edi, cl
test dword [edx], edi
je 0x405aa1
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov dword [esi + 0x28], eax
cmp eax, dword [esi + 0x2c]
jl 0x405a72
lea eax, [esp + 0x20]
push eax
mov ecx, esi
call fcn.0040bd72
pop ecx
push 0xffffffffffffffff
push ebx
lea esi, [esp + 0x108]
mov byte [esp + 0x390], 4
call fcn.00408eb7
xor edi, edi
push ebx
inc edi
push edi
lea ecx, [esp + 0x28]
call fcn.00414e73
lea eax, [esp + 0x58]
push eax
mov byte [esp + 0x38c], bl
call fcn.00403160
mov eax, dword [0x47d1c8]
mov ecx, dword [eax + 0xc]
sub ecx, dword [eax + 8]
mov eax, esi
sar ecx, 2
cmp ecx, edi
jbe 0x405aff
push 0x468f94
jmp 0x405b04
push 0x468fb8
push eax
call fcn.004069f1
push str._____________________________n
lea eax, [esp + 0x104]
push eax
call fcn.004069f1
push str._____Graphics_card_information______n
lea eax, [esp + 0x104]
push eax
call fcn.004069f1
mov eax, dword [0x47d1c4]
mov eax, dword [eax + 0x2cc]
mov ecx, dword [eax]
push 0x1e0
push 0x280
lea edx, [esp + 0x124]
push edx
push eax
call dword [ecx + 0x10]
test al, al
jne 0x405b75
mov eax, dword [esp + 0x1c]
push 0x10
push str.Fatal_error
push str.There_is_no_suitable_dispray_mode_in_this_video_card.
push dword [eax + 4]
call dword [sym.imp.USER32.dll_MessageBoxA]
push ebx
push edi
jmp 0x405e0b
push str.Graphics_card_name:_n_s_n
lea eax, [esp + 0x5c]
push eax
call fcn.0040b971
lea ecx, [esp + 0x11c]
push ecx
mov byte [esp + 0x38c], 5
call fcn.0040bd87
lea edx, [esp + 0x20]
mov ecx, eax
call fcn.0040ba10
push 0xffffffffffffffff
push ebx
lea esi, [esp + 0x108]
mov byte [esp + 0x390], 6
call fcn.00408eb7
push ebx
push edi
lea ecx, [esp + 0x28]
call fcn.00414e73
lea eax, [esp + 0x58]
push eax
mov byte [esp + 0x38c], bl
call fcn.00403160
mov eax, dword [esp + 0x320]
shr eax, 0x14
mov dword [esp + 0x14], eax
push str.Total_video_memory_of_adapter:_n_d_MB_n
lea eax, [esp + 0x5c]
push eax
call fcn.0040b971
lea ecx, [esp + 0x14]
push ecx
mov byte [esp + 0x38c], 7
call fcn.0040bbc1
lea ecx, [esp + 0x20]
push ecx
mov ecx, eax
call fcn.0040bd72
pop ecx
push 0xffffffffffffffff
push ebx
mov byte [esp + 0x390], 8
call fcn.00408eb7
push ebx
push edi
lea ecx, [esp + 0x28]
call fcn.00414e73
lea eax, [esp + 0x58]
push eax
mov byte [esp + 0x38c], bl
call fcn.00403160
push str.Maximum_texture_width:_n_d_Pixel_n
lea eax, [esp + 0x5c]
push eax
call fcn.0040b971
lea ecx, [esp + 0x324]
push ecx
mov byte [esp + 0x38c], 9
call fcn.0040bde7
lea ecx, [esp + 0x20]
push ecx
mov ecx, eax
call fcn.0040bd72
pop ecx
push 0xffffffffffffffff
push ebx
mov byte [esp + 0x390], 0xa
call fcn.00408eb7
push ebx
push edi
lea ecx, [esp + 0x28]
call fcn.00414e73
mov byte [esp + 0x388], bl
lea eax, [esp + 0x58]
push eax
call fcn.00403160
push str.Maximum_texture_height:_n_d_Pixel_n
lea eax, [esp + 0x5c]
push eax
call fcn.0040b971
lea ecx, [esp + 0x328]
push ecx
mov byte [esp + 0x38c], 0xb
call fcn.0040bde7
lea ecx, [esp + 0x20]
push ecx
mov ecx, eax
call fcn.0040bd72
pop ecx
push 0xffffffffffffffff
push ebx
mov byte [esp + 0x390], 0xc
call fcn.00408eb7
push ebx
push edi
lea ecx, [esp + 0x28]
call fcn.00414e73
lea eax, [esp + 0x58]
push eax
mov byte [esp + 0x38c], bl
call fcn.00403160
mov eax, dword [esp + 0x31c]
sub eax, ebx
je 0x405d18
dec eax
je 0x405d11
dec eax
jne 0x405d2a
push str.Adapter_mode:_nHardware_Emulation_Layer_n
jmp 0x405d1d
push str.Adapter_mode:_nHardware_Accelerator_Layer_n
jmp 0x405d1d
push str.Adapter_mode:_nHardware_TnL_n
lea eax, [esp + 0x104]
push eax
call fcn.004069f1
lea eax, [esp + 0x100]
cmp byte [esp + 0x32d], bl
je 0x405d41
push str.Pixel_Shader_2.0:_nYes_n
jmp 0x405d46
push str.Pixel_Shader_2.0:_nNo_n
push eax
call fcn.004069f1
push str.____________________________________n
lea eax, [esp + 0x104]
push eax
call fcn.004069f1
push 0x4691bc
lea ecx, [esp + 0x24]
call fcn.00414a2c
push 0x4691c0
lea ecx, [esp + 0x40]
mov byte [esp + 0x38c], 0xd
call fcn.00414a2c
mov byte [esp + 0x388], 0xe
push ebx
jmp 0x405dac
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0x28]
push eax
push dword [esp + 0x5c]
lea edi, [esp + 0x110]
call fcn.00407657
mov eax, dword [esp + 0x34]
add eax, esi
push eax
lea eax, [esp + 0x104]
push eax
lea eax, [esp + 0x44]
call fcn.00406a40
mov esi, eax
cmp esi, 0xffffffff
jne 0x405d8d
push ebx
push 1
lea ecx, [esp + 0x44]
call fcn.00414e73
push ebx
push 1
lea ecx, [esp + 0x28]
call fcn.00414e73
cmp dword [esp + 0x118], 0x10
mov eax, dword [esp + 0x104]
jae 0x405df4
lea eax, [esp + 0x104]
push eax
mov eax, dword [esp + 0x20]
push ebx
push 0xc
push dword [eax + 0x148]
call dword [sym.imp.USER32.dll_SendMessageA]
push ebx
push 1
lea ecx, [esp + 0x108]
call fcn.00414e73
mov ecx, dword [esp + 0x380]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x368]
xor ecx, esp
call fcn.0043c781
mov esp, ebp
pop ebp
ret 4