Function at 0x489c10
Capabilities:
Get memory capacity

Disassembly:
sub esp, 0x20
push ebx
lea eax, [esp + 4]
xor ebx, ebx
push eax
mov dword [0x4e64cc], ebx
mov dword [esp + 8], 0x20
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
call fcn.00485ee0
cmp eax, 0x2ee
mov dword [0x4dde24], eax
jge 0x489c4e
mov ecx, dword [0x4cdcfc]
mov dword [0x4dde9c], ecx
jmp 0x489c77
cmp eax, 0x3b6
jl 0x489c6d
cmp dword [esp + 0xc], 0x8000000
jbe 0x489c6d
mov edx, dword [0x4cdcfc]
mov dword [0x4dde9c], edx
jmp 0x489c77
mov eax, dword [0x4cdcfc]
mov dword [0x4dde9c], eax
push 0x4cdcfc
push str.Graphics_Resolution
push str.Video_Settings
call fcn.0048f8d0
add esp, 0xc
test eax, eax
jne 0x489ce1
mov eax, dword [0x4dde24]
cmp eax, 0x2ee
jge 0x489cac
mov dword [0x4cdcfc], ebx
mov dword [0x4dde9c], ebx
jmp 0x489ce1
cmp eax, 0x3b6
jl 0x489cd2
cmp dword [esp + 0xc], 0x8000000
jbe 0x489cd2
cmp eax, 0x5aa
jle 0x489ccb
mov eax, 3
jmp 0x489cd7
mov eax, 2
jmp 0x489cd7
mov eax, 1
mov dword [0x4cdcfc], eax
mov dword [0x4dde9c], eax
push 0x4cdd00
push str.Alpha_Texture
push str.Video_Settings
call fcn.0048f8d0
add esp, 0xc
test eax, eax
jne 0x489d06
mov dword [0x4cdd00], 8
push 0x4cdd04
push str.Non_Alpha_Texture
push str.Video_Settings
call fcn.0048f8d0
add esp, 0xc
test eax, eax
jne 0x489d2b
mov dword [0x4cdd04], 7
cmp dword [0x4de4a0], ebx
je 0x489d45
push str.Renderer_already_initialised_n
call fcn.004777d0
add esp, 4
call fcn.00489510
push 0xdc
call sub.d3d8.dll_Direct3DCreate8
cmp eax, ebx
mov dword [0x4de4a0], eax
jne 0x489d6e
push str.Unable_to_initialise_D3D8_n
call fcn.004777d0
add esp, 4
pop ebx
add esp, 0x20
jmp fcn.0048c5a0
mov ecx, dword [eax]
push 0x4dde28
push ebx
push eax
call dword [ecx + 0x20]
test eax, eax
jge 0x489d94
push str.Unable_to_get_desktop_screen_mode_n
call fcn.004777d0
add esp, 4
pop ebx
add esp, 0x20
jmp fcn.0048c5a0
mov edx, dword [0x4dde34]
xor ecx, ecx
mov eax, 0x4cdd08
cmp dword [eax], edx
je 0x489db0
add eax, 0x38
inc ecx
cmp eax, 0x4cdf00
jl 0x489da1
cmp ecx, 9
jne 0x489dcc
push edx
push str.Unable_to_locate_the_screen_format___windows_is_in_format__d_n
call fcn.004777d0
add esp, 8
pop ebx
add esp, 0x20
jmp fcn.0048c5a0
call fcn.00487c60
test eax, eax
jne 0x489deb
push str.Unable_to_get_driver_details_n
call fcn.004777d0
add esp, 4
pop ebx
add esp, 0x20
jmp fcn.0048c5a0
push ebx
call fcn.004881d0
add esp, 4
test eax, eax
jne 0x489e0e
push str.Failed_to_create_device_n
call fcn.004777d0
add esp, 4
pop ebx
add esp, 0x20
jmp fcn.0048c5a0
call fcn.0048b4b0
mov eax, dword [0x4de4a4]
mov edx, dword [eax]
push 0x4dde78
push eax
call dword [edx + 0xa4]
test eax, eax
jge 0x489e40
push str.Failed_to_get_the_game_viewport_n
call fcn.004777d0
add esp, 4
pop ebx
add esp, 0x20
jmp fcn.0048c5a0
mov eax, dword [esp + 0x38]
push eax
push 0x44610000
push 0x47800000
push 0x3f800000
push ebx
mov dword [0x4e6e40], 0
mov dword [0x4e6e3c], 0
mov dword [0x4e6e38], 0
mov dword [0x4e6e34], 0
mov dword [0x4e6e2c], 0
mov dword [0x4e6e28], 0
mov dword [0x4e6e24], 0
mov dword [0x4e6e20], 0
mov dword [0x4e6e18], 0
mov dword [0x4e6e14], 0
mov dword [0x4e6e10], 0
mov dword [0x4e6e0c], 0
mov dword [0x4e6e44], 0x3f800000
mov dword [0x4e6e30], 0x3f800000
mov dword [0x4e6e1c], 0x3f800000
mov dword [0x4e6e08], 0x3f800000
mov dword [0x4e6df4], 0
call fcn.00485ff0
movzx ecx, byte [esp + 0x40]
movzx edx, byte [esp + 0x44]
movzx eax, byte [esp + 0x48]
or ecx, 0xffffff00
shl ecx, 8
or ecx, edx
shl ecx, 8
or ecx, eax
add esp, 0x14
mov dword [0x4de4ac], ecx
call fcn.00484200
test eax, eax
jne 0x489f4b
push str.Unable_to_create_vertex_shaders_n
call fcn.004777d0
add esp, 4
pop ebx
add esp, 0x20
jmp fcn.0048c5a0
call fcn.0048f5f0
test eax, eax
jne 0x489f6a
push str.Unable_to_initialise_bucket_system_n
call fcn.004777d0
add esp, 4
pop ebx
add esp, 0x20
jmp fcn.0048c5a0
call fcn.004844f0
test eax, eax
jne 0x489f89
push str.Unable_to_initialise_resource_system_n
call fcn.004777d0
add esp, 4
pop ebx
add esp, 0x20
jmp fcn.0048c5a0
mov dword [0x4de4b0], ebx
mov dword [0x4e64ac], ebx
mov dword [0x4e6430], ebx
call dword [sym.imp.WINMM.dll_timeGetTime]
push 0x4dde6c
push str.Detail_Level
push str.Video_Settings
mov dword [0x4dde70], eax
mov dword [0x4dde20], ebx
mov byte [0x4dde98], bl
call fcn.0048f8d0
add esp, 0xc
test eax, eax
jne 0x489fd7
call fcn.0048ba40
mov dword [0x4dde6c], eax
push 0x4dde90
push str.Resolution
push str.Video_Settings
call fcn.0048f8d0
add esp, 0xc
test eax, eax
jne 0x489ffc
call fcn.00487970
mov dword [0x4dde90], eax
push 0x4cd6a4
push 0x4b8c20
push str.Video_Settings
call fcn.0048f8d0
add esp, 0xc
test eax, eax
jne 0x48a021
mov dword [0x4cd6a4], 0x10
mov ecx, dword [0x4dde6c]
push ecx
call fcn.0048ba50
mov edx, dword [0x4cd6a4]
push edx
call fcn.00489380
add esp, 8
pop ebx
add esp, 0x20
ret