Function at 0x109040b0
Capabilities:
Get memory capacity

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1094146d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x588
push ebx
push esi
push edi
lea eax, [ebp - 0x94]
mov dword [ebp - 0x10], esp
xor ebx, ebx
push eax
mov dword [ebp - 4], ebx
mov dword [ebp - 0x14], 0x7fffffff
mov dword [ebp - 0x94], 0x20
call dword [sym.imp.kernel32.dll_GlobalMemoryStatus]
mov eax, dword [ebp - 0x8c]
mov ecx, dword [sym.imp.core.dll_class_FOutputDevice__GLog]
mov edx, dword [ecx]
mov esi, dword [sym.imp.core.dll_public:_void___cdecl_FOutputDevice::Logf_enum_EName__char_const__]
shr eax, 0x14
push eax
push 0x109442dc
push 0x2fa
push edx
call esi
add esp, 0x10
xor eax, eax
mov ecx, 0x35
lea edi, [ebp - 0x168]
rep stosd dword es:[edi], eax
push ebx
lea eax, [ebp - 0x20]
push eax
push ebx
mov byte [ebp - 4], 1
call sub.ddraw.dll_DirectDrawCreate
cmp eax, ebx
jge 0x1090415e
mov ecx, dword [sym.imp.core.dll_class_FOutputDevice__GLog]
mov edx, dword [ecx]
push 0x109442a4
push 0x2fa
push edx
call esi
add esp, 0xc
jmp 0x10904255
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
lea edx, [ebp - 0x1c]
push edx
push 0x1094730c
push eax
call dword [ecx]
cmp eax, ebx
jge 0x1090418f
mov eax, dword [sym.imp.core.dll_class_FOutputDevice__GLog]
mov ecx, dword [eax]
push 0x1094426c
push 0x2fa
push ecx
call esi
add esp, 0xc
jmp 0x1090424c
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x34], edx
lea edx, [ebp - 0x24]
push edx
lea edx, [ebp - 0x18]
push edx
lea edx, [ebp - 0x40]
push edx
mov dword [ebp - 0x40], 0x10007000
mov ecx, dword [eax]
push eax
call dword [ecx + 0x5c]
mov eax, dword [ebp - 0x18]
cmp eax, ebx
je 0x109041ce
cmp eax, 0x7fffffff
jae 0x109041ce
mov edi, eax
mov dword [ebp - 0x14], edi
jmp 0x109041d1
mov edi, dword [ebp - 0x14]
xor eax, eax
mov dword [ebp - 0x40], eax
lea edx, [ebp - 0x24]
push edx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
lea edx, [ebp - 0x18]
push edx
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0x40]
push edx
mov dword [ebp - 0x40], 0x10005000
mov ecx, dword [eax]
push eax
call dword [ecx + 0x5c]
mov eax, dword [ebp - 0x18]
cmp eax, ebx
je 0x1090420b
cmp edi, eax
jbe 0x1090420b
mov edi, eax
mov dword [ebp - 0x14], edi
xor eax, eax
mov dword [ebp - 0x40], eax
lea edx, [ebp - 0x24]
push edx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
lea edx, [ebp - 0x18]
push edx
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0x40]
push edx
mov dword [ebp - 0x40], 0x10004040
mov ecx, dword [eax]
push eax
call dword [ecx + 0x5c]
mov eax, dword [ebp - 0x18]
cmp eax, ebx
je 0x10904243
cmp edi, eax
jbe 0x10904243
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x20]
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [ebp - 0x14]
cmp eax, 0x7fffffff
mov dword [ebp - 4], ebx
je 0x10904295
cdq
and edx, 0x3ff
add eax, edx
sar eax, 0xa
cdq
and edx, 0x3ff
add eax, edx
sar eax, 0xa
push eax
mov dword [ebp - 0x14], eax
mov eax, dword [sym.imp.core.dll_class_FOutputDevice__GLog]
mov ecx, dword [eax]
push 0x10944244
push 0x2fa
push ecx
call esi
add esp, 0x10
push 0xdc
mov byte [ebp - 4], 3
call sub.d3d8.dll_Direct3DCreate8
mov edi, eax
cmp edi, ebx
mov dword [ebp - 0x30], edi
je 0x10904694
mov edx, dword [edi]
lea eax, [ebp - 0x168]
push eax
push 1
push ebx
push edi
call dword [edx + 0x34]
cmp eax, ebx
jge 0x109042dc
mov ecx, dword [sym.imp.core.dll_class_FOutputDevice__GLog]
mov edx, dword [ecx]
push 0x1094421c
push 0x2fa
push edx
call esi
add esp, 0xc
test dword [ebp - 0x15c], 0x20000000
jne 0x10904304
mov eax, dword [sym.imp.core.dll_class_FConfigCache__GConfig]
mov ecx, dword [eax]
mov edx, dword [ecx]
push ebx
push 0x10944214
push 0x10944204
push 0x109441ec
call dword [edx + 0x30]
mov eax, dword [edi]
push 0x33545844
push 3
push ebx
push 0x16
push 1
push ebx
push edi
call dword [eax + 0x28]
cmp eax, ebx
jge 0x10904326
mov eax, dword [ebp - 0x14]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x14], eax
mov ecx, dword [edi]
lea edx, [ebp - 0x594]
push edx
push 2
push ebx
push edi
call dword [ecx + 0x14]
cmp eax, ebx
jge 0x1090434c
mov ecx, 0x10b
xor eax, eax
lea edi, [ebp - 0x594]
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x30]
lea ecx, [ebp - 0x58]
call dword [sym.imp.core.dll_public:_void___thiscall_FString::constructor_void_]
mov eax, dword [sym.imp.core.dll_class_FConfigCache__GConfig]
mov ecx, dword [eax]
mov edx, dword [ecx]
push ebx
lea eax, [ebp - 0x58]
push eax
push 0x109441e0
push 0x109441d0
mov byte [ebp - 4], 4
call dword [edx + 0xc]
mov ecx, dword [ebp - 0x188]
mov edx, dword [ebp - 0x18c]
push ecx
push edx
lea eax, [ebp - 0x38]
push 0x109441c0
push eax
call dword [sym.imp.core.dll_public:_static_class_FStringTemp___cdecl_FString::Printf_char_const__]
add esp, 0x10
push ebx
push eax
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 5
call dword [sym.imp.core.dll_public:_void___thiscall_TArray_char_::constructor_class_TArray_char__const___bool_]
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 7
call dword [sym.imp.core.dll_public:_void___thiscall_FStringTemp::destructor_void_]
lea ecx, [ebp - 0x58]
push ecx
lea ecx, [ebp - 0x4c]
call dword [sym.imp.core.dll_public:_bool___thiscall_FString::operator__class_FString_const__const]
cmp al, bl
je 0x10904661
lea ecx, [ebp - 0x4c]
call dword [sym.imp.core.dll_public:_char_const____thiscall_FString::operator_void_const]
mov edx, dword [sym.imp.core.dll_class_FConfigCache__GConfig]
mov ecx, dword [edx]
mov edx, dword [ecx]
push ebx
push eax
push 0x109441e0
push 0x109441d0
call dword [edx + 0x30]
mov eax, dword [sym.imp.core.dll_class_FConfigCache__GConfig]
mov ecx, dword [eax]
mov edx, dword [ecx]
push ebx
push ebx
push 1
call dword [edx + 0x34]
lea ecx, [ebp - 0x2c]
call dword [sym.imp.core.dll_public:_void___thiscall_FString::constructor_void_]
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 8
call dword [sym.imp.core.dll_public:_void___thiscall_FString::constructor_void_]
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 9
call dword [sym.imp.core.dll_public:_char_const____thiscall_FString::operator_void_const]
mov ecx, dword [sym.imp.core.dll_class_FConfigCache__GConfig]
mov ecx, dword [ecx]
mov edx, dword [ecx]
push ebx
lea esi, [ebp - 0x70]
push esi
push 0x10943c58
push eax
call dword [edx + 0xc]
cmp eax, ebx
je 0x10904448
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x2c]
call dword [0x1094306c]
jmp 0x1090460d
mov edx, dword [ebp + 8]
cmp edx, ebx
xorps xmm0, xmm0
movss dword [ebp - 0x1c], xmm0
je 0x1090449b
cvtsi2ss xmm0, dword [ebp + 0x10]
sub esp, 8
movss dword [esp + 4], xmm0
cvtsi2ss xmm0, dword [ebp + 0xc]
mov ecx, edi
movss dword [esp], xmm0
call fcn.10902800
fstp dword [ebp - 0x64]
mov ecx, dword [ebp - 0x64]
mov edx, dword [sym.imp.core.dll_class_FConfigCache__GConfig]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [edx]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ecx]
push ebx
push edx
push 0x109441ac
push 0x109441d0
call dword [eax + 0x2c]
mov eax, dword [sym.imp.core.dll_class_FConfigCache__GConfig]
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp + 0xc], ebx
mov dword [ebp + 8], ebx
mov ecx, dword [eax]
mov edx, dword [ecx]
push ebx
lea eax, [ebp - 0x44]
push eax
push 0x109441ac
push 0x10944198
call dword [edx + 4]
mov ecx, dword [sym.imp.core.dll_class_FConfigCache__GConfig]
mov ecx, dword [ecx]
mov edx, dword [ecx]
push ebx
lea eax, [ebp - 0x24]
push eax
push 0x109441ac
push 0x10944180
call dword [edx + 4]
mov ecx, dword [sym.imp.core.dll_class_FConfigCache__GConfig]
mov ecx, dword [ecx]
mov edx, dword [ecx]
push ebx
lea eax, [ebp + 0xc]
push eax
push 0x109441ac
push 0x1094416c
call dword [edx + 4]
mov ecx, dword [sym.imp.core.dll_class_FConfigCache__GConfig]
mov ecx, dword [ecx]
mov edx, dword [ecx]
push ebx
lea eax, [ebp + 8]
push eax
push 0x109441ac
push 0x10944154
call dword [edx + 4]
mov ecx, dword [sym.imp.core.dll_class_FConfigCache__GConfig]
push ebx
lea eax, [ebp - 0x30]
push eax
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp + 0x10], ebx
mov ecx, dword [ecx]
mov edx, dword [ecx]
push 0x10944148
push 0x10944198
call dword [edx + 4]
mov ecx, dword [sym.imp.core.dll_class_FConfigCache__GConfig]
mov ecx, dword [ecx]
mov edx, dword [ecx]
push ebx
lea eax, [ebp - 0x18]
push eax
push 0x10944148
push 0x10944180
call dword [edx + 4]
mov ecx, dword [sym.imp.core.dll_class_FConfigCache__GConfig]
mov ecx, dword [ecx]
mov edx, dword [ecx]
push ebx
lea eax, [ebp - 0x20]
push eax
push 0x10944148
push 0x1094416c
call dword [edx + 4]
mov ecx, dword [sym.imp.core.dll_class_FConfigCache__GConfig]
mov ecx, dword [ecx]
mov edx, dword [ecx]
push ebx
lea eax, [ebp + 0x10]
push eax
push 0x10944148
push 0x10944154
call dword [edx + 4]
cvtsi2ss xmm1, dword [ebp + 8]
movss xmm0, dword [ebp - 0x1c]
comiss xmm0, xmm1
mov eax, dword [ebp - 0x14]
jb 0x109045b0
cmp eax, dword [ebp + 0x10]
jl 0x109045b0
push 0x10944154
jmp 0x10904604
cvtsi2ss xmm1, dword [ebp + 0xc]
comiss xmm0, xmm1
jb 0x109045c6
cmp eax, dword [ebp - 0x20]
jl 0x109045c6
push 0x1094416c
jmp 0x10904604
cvtsi2ss xmm1, dword [ebp - 0x24]
comiss xmm0, xmm1
jb 0x109045d5
cmp eax, dword [ebp - 0x18]
jge 0x109045f8
cvtsi2ss xmm1, dword [ebp - 0x44]
comiss xmm0, xmm1
jb 0x109045eb
cmp eax, dword [ebp - 0x30]
jl 0x109045eb
push 0x10944198
jmp 0x10904604
ucomiss xmm0, dword [0x10943c20]
lahf
test ah, 0x44
jp 0x109045ff
push 0x10944180
jmp 0x10904604
push 0x10944130
lea ecx, [ebp - 0x2c]
call dword [sym.imp.core.dll_public:_class_FString____thiscall_FString::operator_char_const__]
lea ecx, [ebp - 0x2c]
call fcn.10902de0
lea ecx, [ebp - 0x2c]
call dword [sym.imp.core.dll_public:_char_const____thiscall_FString::operator_void_const]
mov ecx, dword [sym.imp.core.dll_class_FConfigCache__GConfig]
mov ecx, dword [ecx]
mov edx, dword [ecx]
push ebx
push eax
push 0x10944120
push 0x109441d0
call dword [edx + 0x30]
mov eax, dword [sym.imp.core.dll_class_FConfigCache__GConfig]
mov ecx, dword [eax]
mov edx, dword [ecx]
push ebx
push ebx
push 1
call dword [edx + 0x34]
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 8
call dword [sym.imp.core.dll_public:_void___thiscall_FString::destructor_void_]
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 7
call dword [sym.imp.core.dll_public:_void___thiscall_FString::destructor_void_]
mov eax, dword [edi]
push edi
call dword [eax + 8]
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 4
call dword [sym.imp.core.dll_public:_void___thiscall_FString::destructor_void_]
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 3
call dword [sym.imp.core.dll_public:_void___thiscall_FString::destructor_void_]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov ecx, dword [sym.imp.core.dll_class_FOutputDeviceError__GError]
mov edx, dword [ecx]
push 0x109440c0
push 0x318
push edx
call esi
mov eax, dword [sym.imp.core.dll_class_FOutputDevice__GLog]
mov ecx, dword [eax]
add esp, 0xc
push 0x1094421c
push 0x2fa
push ecx
call esi
mov ecx, dword [ebp - 0xc]
add esp, 0xc
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0xc