Function at 0x45b770
Capabilities:
Get memory capacity

Disassembly:
sub esp, 0xe80
push ebx
push ebp
push esi
mov ebx, ecx
push edi
mov dword [esp + 0x24], ebx
call fcn.004ccfa0
or eax, 0xffffffff
lea edi, [ebx + 0x10]
push 1
mov ecx, edi
mov dword [ebx], vtable.ytHandlerStatic.0
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], eax
call fcn.004a1210
xor ebp, ebp
mov dword [edi + 0x38], 1
mov dword [edi + 0x3c], ebp
mov dword [edi + 0x40], ebp
lea ecx, [edi + 0x50]
mov dword [edi + 0x44], ebp
mov dword [edi + 0x48], ebp
mov dword [edi + 0x4c], ebp
call fcn.00484230
mov esi, dword [sym.imp.KERNEL32.dll_CreateEventA]
push ebp
push ebp
push ebp
push ebp
mov dword [edi + 0x5c], ebp
call esi
push ebp
push ebp
push ebp
push ebp
mov dword [edi + 0x60], eax
call esi
mov dword [edi + 0x64], eax
mov dword [edi], vtable.ytAsyncQueue_class_ImageLoaderJob_.0
lea edi, [ebx + 0x78]
push 1
mov ecx, edi
call fcn.004a1210
mov dword [edi + 0x38], 1
mov dword [edi + 0x3c], ebp
mov dword [edi + 0x40], ebp
lea ecx, [edi + 0x50]
mov dword [edi + 0x44], ebp
mov dword [edi + 0x48], ebp
mov dword [edi + 0x4c], ebp
call fcn.00484230
push ebp
push ebp
push ebp
push ebp
mov dword [edi + 0x5c], ebp
call esi
push ebp
push ebp
push ebp
push ebp
mov dword [edi + 0x60], eax
call esi
mov dword [edi + 0x64], eax
lea ecx, [ebx + 0xe0]
mov dword [edi], vtable.ytAsyncQueue_class_ImageLoaderJob_.0
call fcn.004a9ab0
lea esi, [ebx + 0xe8]
push 1
mov ecx, esi
call fcn.004a1210
lea edi, [ebx + 0x128]
push 1
mov ecx, edi
mov dword [esi], vtable.ytArray_struct_CachedFile__0__class_ytBaseThread_.0
mov dword [esi + 0x38], ebp
mov dword [esi + 0x3c], ebp
call fcn.004a1210
lea esi, [edi + 0x4c]
mov dword [esi], ebp
mov dword [esi + 4], ebp
push 1
push 0x4b1
lea ecx, [edi + 0x54]
call fcn.00463e30
mov ecx, esi
mov dword [edi], vtable.ytLRU_class_ytBitmap__class_ytBaseThread_.0
mov byte [edi + 0x38], 1
mov dword [edi + 0x3c], ebp
call fcn.00463a30
test eax, eax
je 0x45b88e
mov byte [edi + 0x38], 0
mov eax, dword [esi + 4]
mov ecx, eax
shr eax, 1
and ecx, 1
cmp eax, 1
jne 0x45b8a4
mov esi, dword [esi]
jmp 0x45ba3f
cmp ecx, ebp
je 0x45b94c
push 0x38
call fcn.004a1180
add esp, 4
cmp eax, ebp
je 0x45b8da
push fcn.00464690
push 1
lea edi, [eax + 4]
push 0x34
push edi
mov dword [eax], 1
mov dword [esp + 0x20], edi
call fcn.00430db0
cmp edi, ebp
jne 0x45b8ef
mov edx, dword [esi + 4]
xor eax, eax
and edx, 1
or edx, 2
mov dword [esi + 4], edx
mov esi, eax
jmp 0x45ba3f
mov eax, dword [esi + 4]
shr eax, 1
cmp eax, 1
jbe 0x45b8fe
mov eax, 1
cmp eax, ebp
jbe 0x45b926
xor edi, edi
mov dword [esp + 0x14], eax
mov eax, dword [esi]
mov ecx, dword [esp + 0x10]
add eax, edi
push eax
add ecx, edi
call fcn.004ee7c0
mov eax, dword [esp + 0x14]
add edi, 0x34
dec eax
mov dword [esp + 0x14], eax
jne 0x45b908
mov ecx, dword [esi]
cmp ecx, ebp
je 0x45b933
push 3
call fcn.004ee8e0
mov edx, dword [esi + 4]
mov eax, dword [esp + 0x10]
and edx, 1
or edx, 2
mov dword [esi], eax
mov dword [esi + 4], edx
mov esi, eax
jmp 0x45ba3f
mov edi, 1
add edi, edi
cmp edi, 1
jbe 0x45b951
mov edx, dword [esi]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ebp
fild qword [esp + 0x14]
mov dword [esp + 0x1c], edx
fstp dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
shr ecx, 0x17
and ecx, 0xff
sub ecx, 0x7f
js 0x45b995
mov edx, 1
shl edx, cl
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
jmp 0x45b997
xor ecx, ecx
cmp ecx, eax
jae 0x45b9a4
lea eax, [ecx + ecx]
mov dword [esp + 0x10], eax
mov ecx, eax
cmp ecx, edi
je 0x45ba31
cmp edi, ebp
mov dword [esp + 0x10], ebp
je 0x45ba1a
mov ecx, edi
imul ecx, ecx, 0x34
add ecx, 4
push ecx
call fcn.004a1180
xor ebp, ebp
add esp, 4
cmp eax, ebp
je 0x45b9ee
push fcn.00464690
push edi
mov dword [eax], edi
add eax, 4
push 0x34
push eax
mov dword [esp + 0x2c], eax
call fcn.00430db0
mov eax, dword [esp + 0x1c]
cmp eax, ebp
mov dword [esp + 0x10], eax
jne 0x45b9f2
xor edx, edx
jmp 0x45ba31
mov eax, dword [esi + 4]
shr eax, 1
cmp eax, edi
ja 0x45b9fd
mov edi, eax
cmp edi, ebp
jbe 0x45ba1a
xor ebp, ebp
mov edx, dword [esi]
mov eax, dword [esp + 0x10]
add edx, ebp
push edx
lea ecx, [eax + ebp]
call fcn.004ee7c0
add ebp, 0x34
dec edi
jne 0x45ba03
mov ecx, dword [esi]
test ecx, ecx
je 0x45ba27
push 3
call fcn.004ee8e0
mov eax, dword [esp + 0x10]
mov dword [esi], eax
mov edx, eax
xor ebp, ebp
mov ecx, dword [esi + 4]
and ecx, 1
or ecx, 2
mov dword [esi + 4], ecx
mov esi, edx
cmp esi, ebp
jne 0x45ba4a
mov byte [ebx + 0x160], 0
lea ecx, [ebx + 0x128]
call fcn.00463830
add ebx, 0x18c
push 1
mov ecx, ebx
mov dword [esp + 0x14], ebx
call fcn.004a1210
push 1
lea esi, [ebx + 0x4c]
push 0x4b1
lea ecx, [ebx + 0x54]
mov dword [esi], ebp
mov dword [esi + 4], ebp
call fcn.00463e30
mov ecx, esi
mov dword [ebx], vtable.ytLRU_class_ytBitmap__class_ytBaseThread_.0
mov byte [ebx + 0x38], 1
mov dword [ebx + 0x3c], ebp
call fcn.00463a30
test eax, eax
je 0x45ba9b
mov byte [ebx + 0x38], 0
mov eax, dword [esi + 4]
mov ecx, eax
shr eax, 1
and ecx, 1
cmp eax, 3
jne 0x45bab1
mov esi, dword [esi]
jmp 0x45bc2c
cmp ecx, ebp
je 0x45bb5b
push 0xa0
call fcn.004a1180
add esp, 4
cmp eax, ebp
je 0x45baea
push fcn.00464690
push 3
lea ebx, [eax + 4]
push 0x34
push ebx
mov dword [eax], 3
call fcn.00430db0
cmp ebx, ebp
jne 0x45baff
mov ebx, dword [esp + 0x10]
mov ecx, dword [esi + 4]
xor eax, eax
and ecx, 1
or ecx, 6
mov dword [esi + 4], ecx
mov esi, eax
jmp 0x45bc2c
mov eax, dword [esi + 4]
shr eax, 1
cmp eax, 3
jbe 0x45bb0e
mov eax, 3
cmp eax, ebp
jbe 0x45bb33
xor edi, edi
mov dword [esp + 0x14], eax
mov edx, dword [esi]
add edx, edi
push edx
lea ecx, [edi + ebx]
call fcn.004ee7c0
mov eax, dword [esp + 0x14]
add edi, 0x34
dec eax
mov dword [esp + 0x14], eax
jne 0x45bb18
mov ecx, dword [esi]
cmp ecx, ebp
je 0x45bb40
push 3
call fcn.004ee8e0
mov ecx, dword [esi + 4]
and ecx, 1
mov eax, ebx
or ecx, 6
mov dword [esi], ebx
mov ebx, dword [esp + 0x10]
mov dword [esi + 4], ecx
mov esi, eax
jmp 0x45bc2c
mov edi, 1
add edi, edi
cmp edi, 3
jbe 0x45bb60
mov edx, dword [esi]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ebp
fild qword [esp + 0x1c]
mov dword [esp + 0x14], edx
fstp dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
shr ecx, 0x17
and ecx, 0xff
sub ecx, 0x7f
js 0x45bb98
mov edx, 1
shl edx, cl
jmp 0x45bb9a
xor edx, edx
cmp edx, eax
jae 0x45bba0
add edx, edx
cmp edx, edi
je 0x45bc1c
xor ebx, ebx
cmp edi, ebp
je 0x45bc03
mov eax, edi
imul eax, eax, 0x34
add eax, 4
push eax
call fcn.004a1180
xor ebp, ebp
add esp, 4
cmp eax, ebp
je 0x45bbd8
push fcn.00464690
push edi
lea ebx, [eax + 4]
push 0x34
push ebx
mov dword [eax], edi
call fcn.00430db0
cmp ebx, ebp
jne 0x45bbde
mov dword [esp + 0x14], ebp
jmp 0x45bc18
mov eax, dword [esi + 4]
shr eax, 1
cmp eax, edi
ja 0x45bbe9
mov edi, eax
cmp edi, ebp
jbe 0x45bc03
xor ebp, ebp
nop
mov ecx, dword [esi]
add ecx, ebp
push ecx
lea ecx, [ebx + ebp]
call fcn.004ee7c0
add ebp, 0x34
dec edi
jne 0x45bbf0
mov ecx, dword [esi]
test ecx, ecx
je 0x45bc10
push 3
call fcn.004ee8e0
mov dword [esi], ebx
mov dword [esp + 0x14], ebx
xor ebp, ebp
mov ebx, dword [esp + 0x10]
mov edx, dword [esi + 4]
and edx, 1
or edx, 6
mov dword [esi + 4], edx
mov esi, dword [esp + 0x14]
cmp esi, ebp
jne 0x45bc34
mov byte [ebx + 0x38], 0
mov ecx, ebx
call fcn.00463830
mov ebp, dword [esp + 0x24]
lea ebx, [ebp + 0x1f0]
push 1
mov ecx, ebx
call fcn.004a1210
push 1
lea esi, [ebx + 0x4c]
xor edi, edi
push 0x4b1
lea ecx, [ebx + 0x54]
mov dword [esi], edi
mov dword [esi + 4], edi
call fcn.00463e30
mov ecx, esi
mov dword [ebx], vtable.ytLRU_class_ytBitmap__class_ytBaseThread_.0
mov byte [ebx + 0x38], 1
mov dword [ebx + 0x3c], edi
call fcn.00463a30
test eax, eax
je 0x45bc83
mov byte [ebx + 0x38], 0
mov eax, dword [esi + 4]
mov ecx, eax
shr eax, 1
and ecx, 1
cmp eax, 1
jne 0x45bc99
mov esi, dword [esi]
jmp 0x45be33
cmp ecx, edi
je 0x45bd46
push 0x38
call fcn.004a1180
add esp, 4
cmp eax, edi
je 0x45bccf
push fcn.00464690
push 1
lea edi, [eax + 4]
push 0x34
push edi
mov dword [eax], 1
mov dword [esp + 0x24], edi
call fcn.00430db0
test edi, edi
jne 0x45bce4
mov edx, dword [esi + 4]
xor eax, eax
and edx, 1
or edx, 2
mov dword [esi + 4], edx
mov esi, eax
jmp 0x45be33
mov eax, dword [esi + 4]
shr eax, 1
cmp eax, 1
jbe 0x45bcf3
mov eax, 1
test eax, eax
jbe 0x45bd1e
xor edi, edi
mov dword [esp + 0x24], eax
lea ecx, [ecx]
mov eax, dword [esi]
mov ecx, dword [esp + 0x14]
add eax, edi
push eax
add ecx, edi
call fcn.004ee7c0
mov eax, dword [esp + 0x24]
add edi, 0x34
dec eax
mov dword [esp + 0x24], eax
jne 0x45bd00
mov ecx, dword [esi]
test ecx, ecx
je 0x45bd2b
push 3
call fcn.004ee8e0
mov edx, dword [esi + 4]
mov eax, dword [esp + 0x14]
and edx, 1
xor edi, edi
or edx, 2
mov dword [esi], eax
mov dword [esi + 4], edx
mov esi, eax
jmp 0x45be33
mov edi, 1
nop
lea esp, [esp]
add edi, edi
cmp edi, 1
jbe 0x45bd50
mov ecx, dword [esi]
xor edx, edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
fild qword [esp + 0x1c]
mov dword [esp + 0x14], ecx
fstp dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
shr ecx, 0x17
and ecx, 0xff
sub ecx, 0x7f
js 0x45bd88
mov edx, 1
shl edx, cl
cmp edx, eax
jae 0x45bd8e
add edx, edx
cmp edx, edi
je 0x45be21
test edi, edi
mov dword [esp + 0x14], 0
je 0x45be06
mov edx, edi
imul edx, edx, 0x34
add edx, 4
push edx
call fcn.004a1180
add esp, 4
test eax, eax
je 0x45bdd2
push fcn.00464690
push edi
lea ebp, [eax + 4]
push 0x34
push ebp
mov dword [eax], edi
call fcn.00430db0
test ebp, ebp
mov dword [esp + 0x14], ebp
jne 0x45bddc
mov dword [esp + 0x14], 0
jmp 0x45be1d
mov eax, dword [esi + 4]
shr eax, 1
cmp eax, edi
ja 0x45bde7
mov edi, eax
test edi, edi
jbe 0x45be06
xor ebp, ebp
lea ecx, [ecx]
mov eax, dword [esi]
mov ecx, dword [esp + 0x14]
add eax, ebp
push eax
add ecx, ebp
call fcn.004ee7c0
add ebp, 0x34
dec edi
jne 0x45bdf0
mov ecx, dword [esi]
test ecx, ecx
je 0x45be13
push 3
call fcn.004ee8e0
mov eax, dword [esp + 0x14]
mov dword [esi], eax
mov dword [esp + 0x14], eax
mov ebp, dword [esp + 0x24]
mov edx, dword [esi + 4]
and edx, 1
or edx, 2
mov dword [esi + 4], edx
mov esi, dword [esp + 0x14]
xor edi, edi
cmp esi, edi
jne 0x45be3b
mov byte [ebx + 0x38], 0
mov ecx, ebx
call fcn.00463830
lea esi, [ebp + 0x258]
mov ecx, esi
mov dword [ebp + 0x254], edi
call fcn.004a0cc0
push 1
lea ecx, [esi + 0x14]
call fcn.004a1210
lea ecx, [ebp + 0x2ac]
mov dword [ebp + 0x2a4], edi
mov dword [ebp + 0x2a8], edi
call fcn.00462ce0
push 1
push 0x3f1
lea ecx, [ebp + 0x2ec]
call fcn.00463e30
push edi
push 0xffffffffffffffff
lea ecx, [ebp + 0x10]
mov dword [ebp], vtable.ImageCache.0
call fcn.004a1480
push 1
push 0xfffffffffffffffe
lea ecx, [ebp + 0x78]
call fcn.004a1480
fld dword [0x660280]
call fcn.00487bd0
mov dword [ebp + 0xb4], eax
fld dword [0x660280]
call fcn.00487bd0
mov dword [ebp + 0x4c], eax
mov eax, dword [str.ioqueue_slingshot.ioq]
push eax
lea ecx, [esp + 0x46c]
call fcn.00458ad0
lea ecx, [esp + 0x468]
push 1
push ecx
call fcn.004cacb0
add esp, 8
lea ecx, [esp + 0x468]
call fcn.004a6000
mov eax, dword [esp + 0x468]
cmp eax, edi
je 0x45bf03
lea edi, [eax + 4]
push 0
push 2
push edi
mov ecx, esi
call fcn.004a0d50
xor eax, eax
lea edx, [esp + 0x28]
mov ecx, 0x10
lea edi, [esp + 0x28]
rep stosd dword es:[edi], eax
push edx
mov dword [esp + 0x2c], 0x40
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
test eax, eax
je 0x45bfd1
mov eax, dword [esp + 0x3c]
test eax, eax
ja 0x45bf4d
cmp dword [esp + 0x38], 0x10000000
jbe 0x45c005
mov edi, dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
call edi
mov esi, eax
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x45bf67
cmp eax, esi
jne 0x45bf67
inc dword [ebx + 0x18]
jmp 0x45bf8b
mov al, byte [ebx + 5]
test al, al
je 0x45bf7a
lea eax, [ebx + 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
jmp 0x45bf81
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x10]
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x14], esi
push 2
mov ecx, ebx
call fcn.00462710
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x45bfae
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x45bfae
call edi
cmp dword [ebx + 0x14], eax
jne 0x45bfae
dec dword [ebx + 0x18]
jmp 0x45c005
mov al, byte [ebx + 5]
test al, al
mov dword [ebx + 0x14], 0
je 0x45bfc8
add ebx, 0x1c
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x45c005
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x14]
jmp 0x45c005
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0
push 0x400
lea ecx, [esp + 0x70]
push ecx
push 0
push eax
push 0
push 0x1000
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
lea edx, [esp + 0x68]
push edx
push str.GlobalMemoryStatusEx_failed____s_n
call fcn.005a2410
add esp, 8
lea ecx, [esp + 0x468]
call fcn.00431cf0
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0xe80
ret