Function at 0x5af120
Capabilities:
Get memory capacity
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x79549c
mov eax, dword fs:[0]
push eax
sub esp, 0x1d0
mov eax, dword [0x867e6c]
xor eax, esp
mov dword [esp + 0x1c8], eax
push ebx
push esi
push edi
mov eax, dword [0x867e6c]
xor eax, esp
push eax
lea eax, [esp + 0x1e0]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov edi, ecx
mov dword [esp + 0x78], eax
mov eax, dword [edi + 4]
xor ebx, ebx
mov dword [esp + 0x18], edi
cmp byte [eax + 0x55c], bl
jne 0x5b047c
cmp byte [eax + 0x39d], bl
jne 0x5b047c
cmp byte [eax + 0x633], bl
jne 0x5b047c
cmp byte [0x88b5bb], bl
jne 0x5b047c
cmp dword [eax + 0x838], ebx
je 0x5b0309
mov ecx, dword [edi + 8]
mov edx, dword [ecx]
mov eax, dword [edx + 0x2c]
call eax
lea ecx, [esp + 0xec]
push ecx
mov ecx, eax
call fcn.00430680
mov eax, 1
mov dword [esp + 0x1e8], ebx
test byte [0xccf3a8], al
jne 0x5af22b
or dword [0xccf3a8], eax
push str.Tahoma
lea ecx, [esp + 0x1c0]
mov byte [esp + 0x1ec], al
call fcn.00401280
push 0xccf388
mov byte [esp + 0x1ec], 2
call fcn.0059c3f0
lea ecx, [esp + 0x1bc]
call fcn.004012f0
push 0x7997e0
call fcn.00645ab5
add esp, 4
mov byte [esp + 0x1e8], bl
mov ecx, 0xccf388
lea eax, [esp + 0xec]
call fcn.00430c10
lea edx, [esp + 0x1c]
push edx
call fcn.00448d70
lea eax, [esp + 0x54]
push eax
mov byte [esp + 0x1ec], 3
call fcn.00644e55
add esp, 4
lea ecx, [esp + 0x54]
push ecx
lea edx, [esp + 0xc4]
push edx
call fcn.00644701
lea eax, [esp + 0xc8]
push eax
call fcn.006492ba
add esp, 0xc
push eax
lea ecx, [esp + 0x1a4]
call fcn.00403550
mov byte [esp + 0x1e8], 4
mov ebx, dword [edi + 4]
add ebx, 0x3d8
lea esi, [esp + 0x34]
call fcn.00438d50
mov byte [esp + 0x1e8], 5
mov ecx, dword [esp + 0x1a4]
mov ebx, 8
cmp dword [esp + 0x1b8], ebx
jae 0x5af2c8
lea ecx, [esp + 0x1a4]
cmp dword [eax + 0x18], ebx
jb 0x5af2d2
mov eax, dword [eax + 4]
jmp 0x5af2d5
add eax, 4
push ecx
mov ecx, dword [edi + 4]
mov edx, dword [ecx + 0x590]
push edx
push eax
push str.Game_Version:__s__UpdateCount:__d__Current_Time:__s
lea esi, [esp + 0x1cc]
call fcn.00439a90
add esp, 0x10
lea ecx, [esp + 0x34]
mov byte [esp + 0x1e8], 7
call fcn.00406fb0
mov ecx, esi
mov edi, 0x88ba50
lea esi, [esp + 0x7c]
call fcn.005b04b0
push eax
lea eax, [esp + 0x20]
mov byte [esp + 0x1ec], bl
call fcn.005baeb0
call fcn.005b04f0
lea ecx, [esp + 0x1bc]
call fcn.00406fb0
lea ecx, [esp + 0x1a0]
call fcn.00406fb0
xor eax, eax
mov dword [esp + 0x1b8], 7
mov dword [esp + 0x1b4], 0
mov word [esp + 0x1a4], ax
mov ebx, dword [esp + 0x18]
mov byte [esp + 0x1e8], 9
mov ecx, dword [ebx + 8]
cmp byte [ecx + 0xcb0], al
je 0x5af38d
lea edx, [esp + 0x1a0]
push edx
mov edx, str.Wide
call fcn.004106b0
mov eax, dword [ebx + 8]
cmp byte [eax + 0xcf8], 0
mov edx, str.Windowed
jne 0x5af3a3
mov edx, str.Fullscreen
lea ecx, [esp + 0x1a0]
push ecx
call fcn.004106b0
mov edx, dword [ebx]
mov eax, dword [edx + 0x90]
mov ecx, ebx
call eax
test al, al
je 0x5af3ea
mov eax, dword [ebx + 8]
cmp byte [eax + 0xc68], 0
je 0x5af3e3
cmp byte [eax + 0xc66], 0
je 0x5af3dc
mov edx, str.HW_DX9
jmp 0x5af3ef
mov edx, str.HW_DX8
jmp 0x5af3ef
mov edx, str.HW_DX7
jmp 0x5af3ef
mov edx, 0x825388
lea ecx, [esp + 0x1a0]
push ecx
call fcn.004106b0
push 0xff
mov edx, 0xff
push 0
mov ecx, edx
lea eax, [esp + 0x5c]
call fcn.004348b0
mov edi, eax
lea ecx, [esp + 0x1a0]
lea esi, [esp + 0x7c]
call fcn.005b04b0
push eax
lea eax, [esp + 0x20]
mov byte [esp + 0x1ec], 0xa
call fcn.005baeb0
mov byte [esp + 0x1e8], 9
call fcn.005b04f0
mov edx, dword [ebx]
mov eax, dword [edx + 0x90]
mov ecx, ebx
call eax
test al, al
je 0x5af5e3
mov eax, dword [ebx + 8]
test eax, eax
je 0x5af5e3
cmp dword [eax + 0xc5c], 0
je 0x5af5e3
mov ecx, eax
mov ecx, dword [ecx + 0xc5c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x68]
push 3
lea eax, [esp + 0x58]
push eax
call edx
mov ebx, eax
lea esi, [esp + 0x1bc]
mov byte [esp + 0x1e8], 0xb
call fcn.00438d50
mov byte [esp + 0x1e8], 0xc
cmp dword [eax + 0x18], 8
jb 0x5af4af
mov eax, dword [eax + 4]
jmp 0x5af4b2
add eax, 4
push eax
push str.__BackBuffer:__s
lea esi, [esp + 0x3c]
call fcn.00439a90
add esp, 8
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x1ac]
mov byte [esp + 0x1f4], 0xd
call fcn.00401880
mov ecx, esi
call fcn.00406fb0
lea ecx, [esp + 0x1bc]
call fcn.00406fb0
lea ecx, [esp + 0x54]
mov byte [esp + 0x1e8], 9
call fcn.004012f0
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 8]
mov ecx, dword [ecx + 0xc5c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x68]
push 2
lea eax, [esp + 0x58]
push eax
call edx
mov ebx, eax
lea esi, [esp + 0x1bc]
mov byte [esp + 0x1e8], 0xe
call fcn.00438d50
mov byte [esp + 0x1e8], 0xf
cmp dword [eax + 0x18], 8
jb 0x5af545
mov eax, dword [eax + 4]
jmp 0x5af548
add eax, 4
push eax
push str.__DisplayMode:__s
lea esi, [esp + 0x3c]
call fcn.00439a90
add esp, 8
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x1ac]
mov byte [esp + 0x1f4], 0x10
call fcn.004041c0
mov ecx, esi
call fcn.00406fb0
lea ecx, [esp + 0x1bc]
call fcn.00406fb0
mov bl, 9
lea ecx, [esp + 0x54]
mov byte [esp + 0x1e8], bl
call fcn.004012f0
push 0xff
mov edx, 0xff
push 0
mov ecx, edx
lea eax, [esp + 0x5c]
call fcn.004348b0
mov edi, eax
lea ecx, [esp + 0x1a0]
lea esi, [esp + 0x7c]
call fcn.005b04b0
push eax
lea eax, [esp + 0x20]
mov byte [esp + 0x1ec], 0x11
call fcn.005baeb0
mov byte [esp + 0x1e8], bl
call fcn.005b04f0
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 8]
mov ecx, dword [eax + 0xcdc]
mov edx, dword [eax + 0xcd8]
push ecx
push edx
push str.__PresentationRect:__d_x__d
lea esi, [esp + 0x40]
call fcn.00439a90
add esp, 0xc
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x1ac]
mov byte [esp + 0x1f4], 0x12
call fcn.00401880
mov ecx, esi
mov byte [esp + 0x1e8], 9
call fcn.00406fb0
mov eax, dword [ebx + 8]
cmp dword [eax + 0xcfc], 0
je 0x5af688
mov ecx, dword [eax + 0xcfc]
mov eax, ecx
call fcn.0045a0f0
push eax
mov eax, ecx
call fcn.0045a0e0
push eax
push str.__DrawSurface:__d_x__d
lea esi, [esp + 0x40]
call fcn.00439a90
add esp, 0xc
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x1ac]
mov byte [esp + 0x1f4], 0x13
call fcn.004041c0
mov ecx, esi
mov byte [esp + 0x1e8], 9
call fcn.00406fb0
push 0xff
mov edx, 0xff
push 0
mov ecx, edx
lea eax, [esp + 0x5c]
call fcn.004348b0
mov edi, eax
lea ecx, [esp + 0x1a0]
lea esi, [esp + 0x7c]
call fcn.005b04b0
push eax
lea eax, [esp + 0x20]
mov byte [esp + 0x1ec], 0x14
call fcn.005baeb0
mov byte [esp + 0x1e8], 9
call fcn.005b04f0
mov eax, dword [ebx + 4]
cmp byte [eax + 0x6c4], 0
mov ecx, 0x825440
jne 0x5af6e6
mov ecx, 0x825448
mov eax, dword [ebx + 8]
mov edx, dword [eax + 0xca0]
push ecx
mov ecx, dword [eax + 0xca4]
push ecx
push edx
push str.__DesktopRes:__d_x__d__CustomCursors:__s
lea esi, [esp + 0x44]
call fcn.00439a90
add esp, 0x10
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x1ac]
mov byte [esp + 0x1f4], 0x15
call fcn.00401880
mov ecx, esi
mov byte [esp + 0x1e8], 9
call fcn.00406fb0
push 0xff
mov edx, 0xff
push 0
mov ecx, edx
lea eax, [esp + 0x5c]
call fcn.004348b0
mov edi, eax
lea ecx, [esp + 0x1a0]
lea esi, [esp + 0x7c]
call fcn.005b04b0
push eax
lea eax, [esp + 0x20]
mov byte [esp + 0x1ec], 0x16
call fcn.005baeb0
call fcn.005b04f0
lea ecx, [esp + 0x1a0]
call fcn.00406fb0
xor eax, eax
mov dword [esp + 0x1b8], 7
mov dword [esp + 0x1b4], 0
mov word [esp + 0x1a4], ax
mov byte [esp + 0x1e8], 0x17
mov edx, dword [ebx]
mov eax, dword [edx + 0x90]
mov ecx, ebx
call eax
test al, al
je 0x5af829
mov eax, dword [ebx + 8]
test eax, eax
je 0x5af829
cmp dword [eax + 0xc5c], 0
je 0x5af829
mov ecx, eax
mov ecx, dword [ecx + 0xc5c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x68]
push 0
lea eax, [esp + 0x1c0]
push eax
call edx
mov ebx, eax
lea esi, [esp + 0x34]
mov byte [esp + 0x1e8], 0x18
call fcn.00438d50
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x1ac]
mov byte [esp + 0x1f4], 0x19
call fcn.00401880
mov ecx, esi
call fcn.00406fb0
lea ecx, [esp + 0x1bc]
mov byte [esp + 0x1e8], 0x17
call fcn.004012f0
mov ebx, dword [esp + 0x18]
cmp dword [esp + 0x1b4], 0
jne 0x5af845
lea eax, [esp + 0x1a0]
push eax
mov edx, str.No_Adapter_Info_Available
call fcn.00404b20
push 0xff
mov edx, 0x80
push 0
lea ecx, [edx + 0x7f]
lea eax, [esp + 0x5c]
call fcn.004348b0
mov edi, eax
lea ecx, [esp + 0x1a0]
lea esi, [esp + 0x7c]
call fcn.005b04b0
push eax
lea eax, [esp + 0x20]
mov byte [esp + 0x1ec], 0x1a
call fcn.005baeb0
call fcn.005b04f0
lea ecx, [esp + 0x1a0]
call fcn.00406fb0
xor ecx, ecx
mov dword [esp + 0x1b8], 7
mov dword [esp + 0x1b4], 0
mov word [esp + 0x1a4], cx
mov byte [esp + 0x1e8], 0x1b
mov edx, dword [ebx]
mov eax, dword [edx + 0x90]
mov ecx, ebx
call eax
test al, al
je 0x5af93a
mov eax, dword [ebx + 8]
test eax, eax
je 0x5af93a
cmp dword [eax + 0xc5c], 0
je 0x5af93a
mov ecx, eax
mov ecx, dword [ecx + 0xc5c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x68]
push 1
lea eax, [esp + 0x1c0]
push eax
call edx
mov ebx, eax
lea esi, [esp + 0x34]
mov byte [esp + 0x1e8], 0x1c
call fcn.00438d50
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x1ac]
mov byte [esp + 0x1f4], 0x1d
call fcn.00401880
mov ecx, esi
call fcn.00406fb0
lea ecx, [esp + 0x1bc]
mov byte [esp + 0x1e8], 0x1b
call fcn.004012f0
cmp dword [esp + 0x1b4], 0
jne 0x5af958
lea eax, [esp + 0x1a0]
push eax
mov edx, str.No_D3D_Version_Information_Available
call fcn.00404b20
jmp 0x5af999
lea ecx, [esp + 0x1a0]
push ecx
mov edx, str.D3D_DLL_Version:
lea esi, [esp + 0x38]
call fcn.00406c30
add esp, 4
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x1ac]
mov byte [esp + 0x1f4], 0x1e
call fcn.00401880
mov ecx, esi
mov byte [esp + 0x1e8], 0x1b
call fcn.00406fb0
push 0xff
mov edx, 0x80
push 0
lea ecx, [edx + 0x7f]
lea eax, [esp + 0x5c]
call fcn.004348b0
mov edi, eax
lea ecx, [esp + 0x1a0]
lea esi, [esp + 0x7c]
call fcn.005b04b0
push eax
lea eax, [esp + 0x20]
mov byte [esp + 0x1ec], 0x1f
call fcn.005baeb0
call fcn.005b04f0
lea ecx, [esp + 0x1a0]
mov byte [esp + 0x1e8], 3
call fcn.00406fb0
lea edi, [esp + 0x34]
call fcn.00437e70
mov ebx, eax
lea esi, [esp + 0x1bc]
mov byte [esp + 0x1e8], 0x20
call fcn.00438d50
mov ecx, edi
mov byte [esp + 0x1e8], 0x22
call fcn.004012f0
push 0xff
mov edx, 0x80
push 0xff
lea ecx, [edx + 0x7f]
lea eax, [esp + 0x5c]
call fcn.004348b0
mov ecx, esi
mov edi, eax
lea esi, [esp + 0x7c]
call fcn.005b04b0
push eax
lea eax, [esp + 0x20]
mov byte [esp + 0x1ec], 0x23
call fcn.005baeb0
call fcn.005b04f0
lea ecx, [esp + 0x1bc]
mov byte [esp + 0x1e8], 3
call fcn.00406fb0
lea edx, [esp + 0x1a0]
push edx
call fcn.00428920
lea eax, [esp + 0x1a0]
push eax
mov byte [esp + 0x1ec], 0x24
call fcn.00438230
mov ecx, dword [esp + 0x1b4]
sub ecx, dword [esp + 0x1b0]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
add esp, 4
mov dword [esp + 0x14], 0
test ecx, ecx
jle 0x5afba3
mov edi, dword [esp + 0x14]
lea esi, [esp + 0x1a0]
call fcn.00403700
mov ebx, eax
lea esi, [esp + 0x34]
call fcn.00438d50
mov esi, eax
push 0xff
mov edx, 0xc0
push 0xc0
mov ecx, edx
lea eax, [esp + 0x5c]
mov byte [esp + 0x1f0], 0x25
call fcn.004348b0
mov ecx, esi
mov edi, eax
lea esi, [esp + 0xc0]
call fcn.005b04b0
push eax
lea eax, [esp + 0x20]
mov byte [esp + 0x1ec], 0x26
call fcn.005baeb0
cmp dword [esp + 0xd8], 8
jb 0x5afb40
mov edx, dword [esp + 0xc4]
push edx
call fcn.006441c7
add esp, 4
xor eax, eax
lea ecx, [esp + 0x34]
mov dword [esp + 0xd8], 7
mov dword [esp + 0xd4], 0
mov word [esp + 0xc4], ax
mov byte [esp + 0x1e8], 0x24
call fcn.00406fb0
mov ecx, dword [esp + 0x1b0]
sub ecx, dword [esp + 0x1ac]
mov esi, dword [esp + 0x14]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
inc esi
add ecx, edx
cmp esi, ecx
mov dword [esp + 0x14], esi
jl 0x5afac5
lea esi, [esp + 0x1a0]
mov byte [esp + 0x1e8], 3
call fcn.00402100
push pe_nt_image_headers32
lea edx, [esp + 0x80]
push 0
push edx
call fcn.0064edd0
add esp, 0xc
lea eax, [esp + 0x7c]
push eax
mov dword [esp + 0x80], pe_nt_image_headers32
call dword [sym.imp.kernel32.dll_GlobalMemoryStatusEx]
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xa8]
mov eax, dword [esp + 0xac]
shrd ecx, edx, 0x14
push ecx
mov ecx, dword [esp + 0xb4]
shrd eax, ecx, 0x14
push eax
mov eax, dword [esp + 0xa0]
shr edx, 0x14
mov edx, dword [esp + 0x9c]
shrd edx, eax, 0x14
push edx
mov edx, dword [esp + 0xac]
shr ecx, 0x14
mov ecx, dword [esp + 0xa8]
shrd ecx, edx, 0x14
push ecx
mov ecx, dword [esp + 0x98]
shr eax, 0x14
mov eax, dword [esp + 0x94]
shrd eax, ecx, 0x14
push eax
mov eax, dword [esp + 0xa4]
shr edx, 0x14
mov edx, dword [esp + 0xa0]
shrd edx, eax, 0x14
shr ecx, 0x14
mov ecx, dword [esp + 0x94]
push edx
push ecx
push str.MemLoad__d___PhysAvail__d__dMB_PageAvail__d__dMB_VirtAvail__d__dMB
lea esi, [esp + 0x1dc]
shr eax, 0x14
call fcn.00439a90
add esp, 0x20
push 0xff
push 0xff
mov edx, 0xff
xor ecx, ecx
lea eax, [esp + 0x5c]
mov byte [esp + 0x1f0], 0x27
call fcn.004348b0
mov ecx, esi
mov edi, eax
lea esi, [esp + 0xc0]
call fcn.005b04b0
push eax
lea eax, [esp + 0x20]
mov byte [esp + 0x1ec], 0x28
call fcn.005baeb0
cmp dword [esp + 0xd8], 8
jb 0x5afcdf
mov edx, dword [esp + 0xc4]
push edx
call fcn.006441c7
add esp, 4
lea ecx, [esp + 0x1bc]
call fcn.00406fb0
xor eax, eax
mov dword [esp + 0x1b8], 7
mov dword [esp + 0x1b4], 0
mov word [esp + 0x1a4], ax
mov esi, dword [esp + 0x18]
mov byte [esp + 0x1e8], 0x29
mov edx, dword [esi]
mov eax, dword [edx + 0x90]
mov ecx, esi
call eax
test al, al
je 0x5afd97
mov eax, dword [esi + 8]
test eax, eax
je 0x5afd97
cmp dword [eax + 0xc5c], 0
je 0x5afd97
mov ecx, eax
mov ecx, dword [ecx + 0xc5c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x68]
push 4
lea eax, [esp + 0x1c0]
push eax
call edx
mov ebx, eax
lea esi, [esp + 0x34]
mov byte [esp + 0x1e8], 0x2a
call fcn.00438d50
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x1ac]
mov byte [esp + 0x1f4], 0x2b
call fcn.00401880
mov ecx, esi
call fcn.00406fb0
lea ecx, [esp + 0x1bc]
mov byte [esp + 0x1e8], 0x29
call fcn.004012f0
cmp dword [esp + 0x1b4], 0
jne 0x5afdb5
lea eax, [esp + 0x1a0]
push eax
mov edx, str.No_D3D_Texture_Memory_Information_Available
call fcn.00404b20
jmp 0x5afdf6
lea ecx, [esp + 0x1a0]
push ecx
mov edx, str.D3D_Texture_Memory:
lea esi, [esp + 0x38]
call fcn.00406c30
add esp, 4
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x1ac]
mov byte [esp + 0x1f4], 0x2c
call fcn.00401880
mov ecx, esi
mov byte [esp + 0x1e8], 0x29
call fcn.00406fb0
push 0xff
push 0x80
mov edx, 0xff
xor ecx, ecx
lea eax, [esp + 0x5c]
call fcn.004348b0
mov edi, eax
lea ecx, [esp + 0x1a0]
lea esi, [esp + 0xc0]
call fcn.005b04b0
push eax
lea eax, [esp + 0x20]
mov byte [esp + 0x1ec], 0x2d
call fcn.005baeb0
cmp dword [esp + 0xd8], 8
jb 0x5afe51
mov edx, dword [esp + 0xc4]
push edx
call fcn.006441c7
add esp, 4
lea ecx, [esp + 0x1a0]
call fcn.00406fb0
xor eax, eax
mov dword [esp + 0x1b8], 7
mov dword [esp + 0x1b4], 0
mov word [esp + 0x1a4], ax
mov ebx, dword [esp + 0x18]
mov byte [esp + 0x1e8], 0x2e
mov edx, dword [ebx]
mov eax, dword [edx + 0x90]
mov ecx, ebx
call eax
test al, al
je 0x5aff10
mov eax, dword [ebx + 8]
test eax, eax
je 0x5aff10
cmp dword [eax + 0xc5c], 0
je 0x5aff10
mov ecx, ebx
mov edx, dword [ecx + 8]
mov ecx, dword [edx + 0xc5c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
push 5
lea edx, [esp + 0x1c0]
push edx
call eax
mov ebx, eax
lea esi, [esp + 0x34]
mov byte [esp + 0x1e8], 0x2f
call fcn.00438d50
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x1ac]
mov byte [esp + 0x1f4], 0x30
call fcn.00401880
mov ecx, esi
call fcn.00406fb0
lea ecx, [esp + 0x1bc]
mov byte [esp + 0x1e8], 0x2e
call fcn.004012f0
mov ebx, dword [esp + 0x18]
cmp dword [esp + 0x1b4], 0
je 0x5affa2
lea ecx, [esp + 0x1a0]
push ecx
mov edx, str.D3D_Resources:
lea esi, [esp + 0x38]
call fcn.00406c30
add esp, 4
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x1ac]
mov byte [esp + 0x1f4], 0x31
call fcn.00401880
mov ecx, esi
mov byte [esp + 0x1e8], 0x2e
call fcn.00406fb0
push 0xff
push 0xc0
mov edx, 0xff
xor ecx, ecx
lea eax, [esp + 0x5c]
call fcn.004348b0
mov edi, eax
lea ecx, [esp + 0x1a0]
lea esi, [esp + 0x7c]
call fcn.005b04b0
push eax
lea eax, [esp + 0x20]
mov byte [esp + 0x1ec], 0x32
call fcn.005baeb0
call fcn.005b04f0
lea ecx, [esp + 0x1a0]
call fcn.00406fb0
xor edx, edx
mov dword [esp + 0x1b8], 7
mov dword [esp + 0x1b4], 0
mov word [esp + 0x1a4], dx
mov byte [esp + 0x1e8], 0x33
mov edi, dword [ebx + 4]
call fcn.0046c310
test eax, eax
je 0x5b0038
lea ecx, [esp + 0x1bc]
push ecx
mov ecx, eax
call fcn.00459070
mov ebx, eax
lea esi, [esp + 0x34]
mov byte [esp + 0x1e8], 0x34
call fcn.00438d50
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x1ac]
mov byte [esp + 0x1f4], 0x35
call fcn.00401880
mov ecx, esi
call fcn.00406fb0
lea ecx, [esp + 0x1bc]
mov byte [esp + 0x1e8], 0x33
call fcn.004012f0
cmp dword [esp + 0x1b4], 0
je 0x5b00ca
lea edx, [esp + 0x1a0]
push edx
mov edx, str.D3D_RTPool:
lea esi, [esp + 0x38]
call fcn.00406c30
add esp, 4
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x1ac]
mov byte [esp + 0x1f4], 0x36
call fcn.00401880
mov ecx, esi
mov byte [esp + 0x1e8], 0x33
call fcn.00406fb0
push 0xff
push 0xc0
mov edx, 0xff
xor ecx, ecx
lea eax, [esp + 0x5c]
call fcn.004348b0
mov edi, eax
lea ecx, [esp + 0x1a0]
lea esi, [esp + 0x7c]
call fcn.005b04b0
push eax
lea eax, [esp + 0x20]
mov byte [esp + 0x1ec], 0x37
call fcn.005baeb0
call fcn.005b04f0
lea ecx, [esp + 0x1a0]
mov byte [esp + 0x1e8], 3
call fcn.00406fb0
mov ecx, dword [esp + 0x2c]
mov edx, ecx
sub edx, dword [esp + 0x28]
mov eax, 0x2e8ba2e9
imul edx
sar edx, 3
mov edi, edx
shr edi, 0x1f
xor esi, esi
add edi, edx
cmp edi, esi
mov dword [esp + 0x14], esi
jle 0x5b0199
xor ebx, ebx
jmp 0x5b0114
mov ecx, dword [esp + 0x2c]
sub ecx, dword [esp + 0x28]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x5b0132
call fcn.006441b7
mov ecx, dword [esp + 0x28]
mov edx, dword [0xccf388]
lea eax, [ecx + ebx]
push eax
mov eax, dword [edx + 0x1c]
mov ecx, 0xccf388
call eax
cmp dword [esp + 0x14], eax
jg 0x5b018d
mov ecx, dword [esp + 0x2c]
sub ecx, dword [esp + 0x28]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp esi, ecx
jb 0x5b0172
call fcn.006441b7
mov edx, dword [esp + 0x28]
lea eax, [edx + ebx]
push eax
mov eax, dword [0xccf388]
mov edx, dword [eax + 0x1c]
mov ecx, 0xccf388
call edx
mov dword [esp + 0x14], eax
inc esi
add ebx, 0x2c
cmp esi, edi
jl 0x5b0110
mov eax, dword [0xccf388]
mov edx, dword [eax + 0x10]
mov ecx, 0xccf388
call edx
mov ecx, dword [esp + 0x18]
mov ebx, eax
mov eax, dword [esp + 0x14]
add eax, 0xa
add ebx, 2
lea esi, [edi + 1]
mov dword [esp + 0x54], eax
imul esi, ebx
mov eax, dword [ecx + 4]
cmp dword [eax + 0x838], 1
mov dword [esp + 0x14], 5
jne 0x5b01e5
mov eax, dword [eax + 0xec]
sub eax, esi
sub eax, 5
mov dword [esp + 0x14], eax
push 0xa0
push 0
xor edx, edx
xor ecx, ecx
lea eax, [esp + 0x1a8]
call fcn.004348b0
lea ecx, [esp + 0xec]
call fcn.00430c20
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x14]
push esi
push edx
push eax
push 5
lea esi, [esp + 0xfc]
call fcn.00430d10
mov dword [esp + 0x50], 0
test edi, edi
jle 0x5b02ab
mov ecx, dword [esp + 0x14]
add ecx, ebx
mov dword [esp + 0x54], 0
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x2c]
sub ecx, dword [esp + 0x28]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x50], eax
jb 0x5b0267
call fcn.006441b7
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x28]
lea esi, [edx + ecx]
lea eax, [esi + 0x1c]
lea ecx, [esp + 0xec]
call fcn.00430c20
mov eax, dword [esp + 0x14]
push eax
push 0xa
push esi
lea eax, [esp + 0xf8]
call fcn.004316d0
mov eax, dword [esp + 0x50]
add dword [esp + 0x14], ebx
add dword [esp + 0x54], 0x2c
inc eax
cmp eax, edi
mov dword [esp + 0x50], eax
jl 0x5b0243
mov eax, dword [esp + 0x28]
xor esi, esi
cmp eax, esi
je 0x5b02d3
mov ecx, dword [esp + 0x78]
mov edi, dword [esp + 0x2c]
push ecx
call fcn.005bf580
mov edx, dword [esp + 0x2c]
add esp, 4
push edx
call fcn.006441c7
add esp, 4
mov eax, dword [esp + 0x1c]
push eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
call fcn.006441c7
add esp, 4
lea ecx, [esp + 0xec]
mov dword [esp + 0x1e8], 0xffffffff
call fcn.00430870
mov edi, dword [esp + 0x18]
xor ebx, ebx
mov ecx, dword [edi + 8]
mov edx, dword [ecx]
mov eax, dword [esp + 0x78]
mov edx, dword [edx + 0x34]
push eax
call edx
test al, al
jne 0x5b045f
mov byte [0x88b626], bl
cmp byte [0x88b5e8], bl
jne 0x5b0335
mov byte [0x88b5e8], 1
push 0x2c
lea eax, [esp + 0xc4]
push ebx
push eax
call fcn.0064edd0
mov edx, dword [edi + 4]
add esp, 0xc
lea ecx, [esp + 0xc0]
mov dword [esp + 0xc0], 0x2c
mov eax, dword [edx + 0x5e4]
push ecx
push eax
call dword [sym.imp.user32.dll_GetWindowPlacement]
call dword [sym.imp.winmm.dll_timeGetTime]
mov ecx, dword [edi + 4]
cmp byte [ecx + 0x632], bl
jne 0x5b039c
mov edx, eax
sub edx, dword [0x8c0b8c]
cmp edx, 0x3e8
jbe 0x5b0473
cmp byte [ecx + 0x3a0], bl
je 0x5b0473
cmp dword [esp + 0xc8], 2
je 0x5b0473
cmp byte [ecx + 0x633], bl
jne 0x5b0473
mov ecx, dword [ecx + 0x358]
mov esi, edi
mov dword [ecx + 0x70], ebx
mov dword [0x8c0b8c], eax
call fcn.005b69c0
mov ecx, dword [edi + 4]
cmp byte [ecx + 0x39f], bl
je 0x5b0401
cmp eax, 6
jne 0x5b0401
cmp byte [ecx + 0x632], bl
je 0x5b047c
mov edx, dword [ecx]
mov eax, dword [edx + 0x104]
push ebx
call eax
mov ecx, dword [edi + 4]
mov byte [ecx + 0x3a2], 1
jmp 0x5b047c
cmp eax, 7
jne 0x5b0417
mov edx, dword [edi]
mov eax, dword [edx + 0x9c]
push 1
push ebx
mov ecx, edi
call eax
jmp 0x5b047c
cmp eax, ebx
jne 0x5b047c
mov edx, dword [ecx]
mov eax, dword [edx + 0x1c]
call eax
mov ecx, dword [edi + 8]
mov edx, dword [ecx]
mov eax, dword [edx + 0x2c]
call eax
mov ecx, dword [edi + 4]
mov edx, dword [ecx + 0x358]
mov dword [edx + 0x70], eax
mov eax, dword [edi + 4]
mov ecx, dword [eax + 0x358]
mov edx, dword [ecx]
mov eax, dword [edx + 0x28]
call eax
call dword [sym.imp.winmm.dll_timeGetTime]
mov ecx, dword [edi + 4]
mov dword [ecx + 0x578], eax
mov dword [ecx + 0x57c], ebx
jmp 0x5b0473
cmp byte [0x88b5e8], bl
je 0x5b0473
mov byte [0x88b5e8], bl
mov dword [0x8c0b8c], ebx
mov edi, dword [edi + 4]
inc dword [edi + 0x640]
mov ecx, dword [esp + 0x1e0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1c8]
xor ecx, esp
call fcn.00643db8
mov esp, ebp
pop ebp
ret 4