Function at 0x54f0e0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x64575b
mov eax, dword fs:[0]
push eax
sub esp, 0xd8
mov eax, dword [0x699fe8]
xor eax, esp
mov dword [esp + 0xd0], eax
push ebx
push esi
push edi
mov eax, dword [0x699fe8]
xor eax, esp
push eax
lea eax, [esp + 0xe8]
mov dword fs:[0], eax
mov ebx, ecx
mov ecx, dword [ebx + 0x36c]
xor eax, eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x80], eax
cmp dword [ecx + 0x5c], eax
mov dword [esp + 0x7c], ebx
je 0x54f173
lea edx, [esp + 0x80]
push edx
mov dword [esp + 0x64], eax
lea edx, [esp + 0x60]
push edx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x68], 0x4000
mov eax, dword [ecx + 0x5c]
mov ecx, dword [eax]
lea edx, [esp + 0x68]
push edx
push eax
mov eax, dword [ecx + 0x5c]
call eax
mov eax, dword [ebx + 0x438]
mov edi, dword [eax]
add ebx, 0x434
mov esi, ebx
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa0], esi
call fcn.0055ef40
mov dword [esp + 0x38], eax
mov byte [eax + 0x19], 1
mov eax, dword [esp + 0x38]
mov dword [eax + 4], eax
mov eax, dword [esp + 0x38]
mov dword [eax], eax
mov eax, dword [esp + 0x38]
mov dword [eax + 8], eax
xor eax, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0xf0], eax
mov dword [esp + 0x14], eax
test esi, esi
mov ecx, dword [ebx + 4]
mov dword [esp + 0x64], ecx
je 0x54f1d2
cmp esi, ebx
je 0x54f1d7
call fcn.0061c63f
cmp edi, dword [esp + 0x64]
je 0x54f232
test esi, esi
jne 0x54f1e6
call fcn.0061c63f
cmp edi, dword [esi + 4]
jne 0x54f1f0
call fcn.0061c63f
mov edi, dword [edi + 0xc]
mov esi, dword [edi + 0x40]
test esi, esi
je 0x54f216
mov edx, dword [esi + 0x30]
add dword [esp + 0x14], edx
lea ecx, [esi + 0x3c]
lea eax, [esp + 0x34]
call fcn.00557e30
add dword [eax], 1
mov ecx, dword [esi + 0x30]
add dword [eax + 4], ecx
lea esi, [esp + 0xa0]
call fcn.0055c160
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xa0]
jmp 0x54f1c3
mov dword [esp + 0xdc], 0xf
mov dword [esp + 0xd8], 0
mov byte [esp + 0xc8], 0
mov edi, dword [esp + 0x7c]
mov eax, edi
mov byte [esp + 0xf0], 1
call fcn.00554fc0
test al, al
je 0x54f26e
mov edx, str.Recommended
jmp 0x54f283
mov eax, edi
call fcn.00554fa0
test al, al
mov edx, str.Supported
jne 0x54f283
mov edx, str.Unsupported
mov eax, edi
call fcn.00554f90
test al, al
mov eax, 0x670e60
jne 0x54f298
mov eax, 0x656a6c
push edx
push eax
push str.3D_Mode_is__s__3D_is__s_on_this_system__r_n_r_n
lea esi, [esp + 0x24]
call fcn.005b0ca0
add esp, 0xc
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0xd0]
mov byte [esp + 0xfc], 2
call fcn.0041dc70
mov ebx, 0x10
mov byte [esp + 0xf0], 1
cmp dword [esp + 0x30], ebx
jb 0x54f2e4
mov edx, dword [esp + 0x1c]
push edx
call fcn.0061c19a
add esp, 4
mov eax, dword [edi + 0x43c]
push eax
push str.Num_Images:__d_r_n
lea esi, [esp + 0x20]
call fcn.005b0ca0
add esp, 8
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0xd0]
mov byte [esp + 0xfc], 3
call fcn.0041dc70
mov byte [esp + 0xf0], 1
cmp dword [esp + 0x30], ebx
jb 0x54f330
mov eax, dword [esp + 0x1c]
push eax
call fcn.0061c19a
add esp, 4
mov ecx, dword [edi + 0x4b4]
mov edx, dword [ecx]
mov eax, dword [edx + 0x44]
call eax
push eax
push str.Num_Sounds:__d_r_n
lea esi, [esp + 0x20]
call fcn.005b0ca0
add esp, 8
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0xd0]
mov byte [esp + 0xfc], 4
call fcn.0041dc70
mov byte [esp + 0xf0], 1
cmp dword [esp + 0x30], ebx
jb 0x54f383
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.0061c19a
add esp, 4
mov ecx, dword [esp + 0x5c]
shr ecx, 0xa
lea edx, [esp + 0x84]
call fcn.005b0280
push eax
lea esi, [esp + 0x1c]
mov byte [esp + 0xf4], 5
call fcn.005afc50
add esp, 4
mov edi, eax
mov byte [esp + 0xf0], 6
mov ecx, dword [esp + 0x5c]
sub ecx, dword [esp + 0x80]
lea edx, [esp + 0x40]
shr ecx, 0xa
call fcn.005b0280
push eax
lea esi, [esp + 0xac]
mov byte [esp + 0xf4], 7
call fcn.005afc50
add esp, 4
mov byte [esp + 0xf0], 8
cmp dword [edi + 0x18], ebx
jb 0x54f3f6
mov edi, dword [edi + 4]
jmp 0x54f3f9
add edi, 4
cmp dword [eax + 0x18], ebx
jb 0x54f403
mov eax, dword [eax + 4]
jmp 0x54f406
add eax, 4
push edi
push eax
push str.Video_Memory:__s__s_KB_r_n
lea esi, [esp + 0x6c]
call fcn.005b0ca0
add esp, 0xc
push 0xffffffffffffffff
xor edi, edi
push edi
push eax
lea ecx, [esp + 0xd0]
mov byte [esp + 0xfc], 9
call fcn.0041dc70
cmp dword [esp + 0x78], ebx
jb 0x54f446
mov edx, dword [esp + 0x64]
push edx
call fcn.0061c19a
add esp, 4
cmp dword [esp + 0xc0], ebx
mov esi, 0xf
mov dword [esp + 0x78], esi
mov dword [esp + 0x74], edi
mov byte [esp + 0x64], 0
jb 0x54f471
mov eax, dword [esp + 0xac]
push eax
call fcn.0061c19a
add esp, 4
cmp dword [esp + 0x58], ebx
mov dword [esp + 0xc0], esi
mov dword [esp + 0xbc], edi
mov byte [esp + 0xac], 0
jb 0x54f49a
mov ecx, dword [esp + 0x44]
push ecx
call fcn.0061c19a
add esp, 4
cmp dword [esp + 0x30], ebx
mov dword [esp + 0x58], esi
mov dword [esp + 0x54], edi
mov byte [esp + 0x44], 0
jb 0x54f4ba
mov edx, dword [esp + 0x1c]
push edx
call fcn.0061c19a
add esp, 4
mov byte [esp + 0xf0], 1
cmp dword [esp + 0x9c], ebx
mov dword [esp + 0x30], esi
mov dword [esp + 0x2c], edi
mov byte [esp + 0x1c], 0
jb 0x54f4e8
mov eax, dword [esp + 0x88]
push eax
call fcn.0061c19a
add esp, 4
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ff
add eax, edx
mov ecx, eax
sar ecx, 0xa
lea edx, [esp + 0x84]
call fcn.005b0280
mov byte [esp + 0xf0], 0xa
cmp dword [eax + 0x18], ebx
jb 0x54f518
mov eax, dword [eax + 4]
jmp 0x54f51b
add eax, 4
push eax
push str.Texture_Memory:__s_KB_r_n
lea esi, [esp + 0x20]
call fcn.005b0ca0
add esp, 8
push 0xffffffffffffffff
push edi
push eax
lea ecx, [esp + 0xd0]
mov byte [esp + 0xfc], 0xb
call fcn.0041dc70
cmp dword [esp + 0x30], ebx
jb 0x54f558
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.0061c19a
add esp, 4
mov byte [esp + 0xf0], 1
cmp dword [esp + 0x9c], ebx
mov dword [esp + 0x30], 0xf
mov dword [esp + 0x2c], edi
mov byte [esp + 0x1c], 0
jb 0x54f58a
mov edx, dword [esp + 0x88]
push edx
call fcn.0061c19a
add esp, 4
lea ecx, [esp + 0x14]
lea eax, [esp + 0x34]
mov dword [esp + 0x14], 1
call fcn.00557e30
mov edi, dword [eax]
mov eax, dword [eax + 4]
cdq
and edx, 0x3ff
add eax, edx
mov ecx, eax
sar ecx, 0xa
lea edx, [esp + 0x84]
call fcn.005b0280
push eax
lea esi, [esp + 0x44]
mov byte [esp + 0xf4], 0xc
call fcn.005afc50
add esp, 4
mov byte [esp + 0xf0], 0xd
cmp dword [eax + 0x18], ebx
jb 0x54f5e5
mov eax, dword [eax + 4]
jmp 0x54f5e8
add eax, 4
push eax
push edi
push str.A8R8G8B8:__d____s_KB_r_n
lea esi, [esp + 0x24]
call fcn.005b0ca0
add esp, 0xc
push 0xffffffffffffffff
xor esi, esi
push esi
push eax
lea ecx, [esp + 0xd0]
mov byte [esp + 0xfc], 0xe
call fcn.0041dc70
cmp dword [esp + 0x30], ebx
jb 0x54f628
mov eax, dword [esp + 0x1c]
push eax
call fcn.0061c19a
add esp, 4
cmp dword [esp + 0x58], ebx
mov edi, 0xf
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], esi
mov byte [esp + 0x1c], 0
jb 0x54f64d
mov ecx, dword [esp + 0x44]
push ecx
call fcn.0061c19a
add esp, 4
mov byte [esp + 0xf0], 1
cmp dword [esp + 0x9c], ebx
mov dword [esp + 0x58], edi
mov dword [esp + 0x54], esi
mov byte [esp + 0x44], 0
jb 0x54f67b
mov edx, dword [esp + 0x88]
push edx
call fcn.0061c19a
add esp, 4
lea ecx, [esp + 0x14]
lea eax, [esp + 0x34]
mov dword [esp + 0x14], 2
call fcn.00557e30
mov edi, dword [eax]
mov eax, dword [eax + 4]
cdq
and edx, 0x3ff
add eax, edx
mov ecx, eax
sar ecx, 0xa
lea edx, [esp + 0x84]
call fcn.005b0280
push eax
lea esi, [esp + 0x44]
mov byte [esp + 0xf4], 0xf
call fcn.005afc50
add esp, 4
mov byte [esp + 0xf0], bl
cmp dword [eax + 0x18], ebx
jb 0x54f6d5
mov eax, dword [eax + 4]
jmp 0x54f6d8
add eax, 4
push eax
push edi
push str.A4R4G4B4:__d____s_KB_r_n
lea esi, [esp + 0x24]
call fcn.005b0ca0
add esp, 0xc
push 0xffffffffffffffff
xor esi, esi
push esi
push eax
lea ecx, [esp + 0xd0]
mov byte [esp + 0xfc], 0x11
call fcn.0041dc70
cmp dword [esp + 0x30], ebx
jb 0x54f718
mov eax, dword [esp + 0x1c]
push eax
call fcn.0061c19a
add esp, 4
cmp dword [esp + 0x58], ebx
mov edi, 0xf
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], esi
mov byte [esp + 0x1c], 0
jb 0x54f73d
mov ecx, dword [esp + 0x44]
push ecx
call fcn.0061c19a
add esp, 4
mov byte [esp + 0xf0], 1
cmp dword [esp + 0x9c], ebx
mov dword [esp + 0x58], edi
mov dword [esp + 0x54], esi
mov byte [esp + 0x44], 0
jb 0x54f76b
mov edx, dword [esp + 0x88]
push edx
call fcn.0061c19a
add esp, 4
lea ecx, [esp + 0x14]
lea eax, [esp + 0x34]
mov dword [esp + 0x14], 4
call fcn.00557e30
mov edi, dword [eax]
mov eax, dword [eax + 4]
cdq
and edx, 0x3ff
add eax, edx
mov ecx, eax
sar ecx, 0xa
lea edx, [esp + 0x84]
call fcn.005b0280
push eax
lea esi, [esp + 0x44]
mov byte [esp + 0xf4], 0x12
call fcn.005afc50
add esp, 4
mov byte [esp + 0xf0], 0x13
cmp dword [eax + 0x18], ebx
jb 0x54f7c6
mov eax, dword [eax + 4]
jmp 0x54f7c9
add eax, 4
push eax
push edi
push str.R5G6B5:__d____s_KB_r_n
lea esi, [esp + 0x24]
call fcn.005b0ca0
add esp, 0xc
push 0xffffffffffffffff
xor esi, esi
push esi
push eax
lea ecx, [esp + 0xd0]
mov byte [esp + 0xfc], 0x14
call fcn.0041dc70
cmp dword [esp + 0x30], ebx
jb 0x54f809
mov eax, dword [esp + 0x1c]
push eax
call fcn.0061c19a
add esp, 4
cmp dword [esp + 0x58], ebx
mov edi, 0xf
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], esi
mov byte [esp + 0x1c], 0
jb 0x54f82e
mov ecx, dword [esp + 0x44]
push ecx
call fcn.0061c19a
add esp, 4
mov byte [esp + 0xf0], 1
cmp dword [esp + 0x9c], ebx
mov dword [esp + 0x58], edi
mov dword [esp + 0x54], esi
mov byte [esp + 0x44], 0
jb 0x54f85c
mov edx, dword [esp + 0x88]
push edx
call fcn.0061c19a
add esp, 4
lea ecx, [esp + 0x14]
lea eax, [esp + 0x34]
mov dword [esp + 0x14], 8
call fcn.00557e30
mov edi, dword [eax]
mov eax, dword [eax + 4]
cdq
and edx, 0x3ff
add eax, edx
mov ecx, eax
sar ecx, 0xa
lea edx, [esp + 0x84]
call fcn.005b0280
push eax
lea esi, [esp + 0x44]
mov byte [esp + 0xf4], 0x15
call fcn.005afc50
add esp, 4
mov byte [esp + 0xf0], 0x16
cmp dword [eax + 0x18], ebx
jb 0x54f8b7
mov eax, dword [eax + 4]
jmp 0x54f8ba
add eax, 4
push eax
push edi
push str.Palette8:__d____s_KB_r_n
lea esi, [esp + 0x24]
call fcn.005b0ca0
add esp, 0xc
push 0xffffffffffffffff
xor esi, esi
push esi
push eax
lea ecx, [esp + 0xd0]
mov byte [esp + 0xfc], 0x17
call fcn.0041dc70
cmp dword [esp + 0x30], ebx
jb 0x54f8fa
mov eax, dword [esp + 0x1c]
push eax
call fcn.0061c19a
add esp, 4
cmp dword [esp + 0x58], ebx
mov edi, 0xf
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], esi
mov byte [esp + 0x1c], 0
jb 0x54f91f
mov ecx, dword [esp + 0x44]
push ecx
call fcn.0061c19a
add esp, 4
mov byte [esp + 0xf0], 1
cmp dword [esp + 0x9c], ebx
mov dword [esp + 0x58], edi
mov dword [esp + 0x54], esi
mov byte [esp + 0x44], 0
jb 0x54f94d
mov edx, dword [esp + 0x88]
push edx
call fcn.0061c19a
add esp, 4
push 0xb
push str.Video_Stats
lea ecx, [esp + 0x68]
mov dword [esp + 0x80], edi
mov dword [esp + 0x7c], esi
mov byte [esp + 0x6c], 0
call fcn.00404330
mov esi, dword [esp + 0x7c]
push 0
mov byte [esp + 0xf4], 0x18
mov eax, dword [esi]
mov eax, dword [eax + 0x78]
lea ecx, [esp + 0x64]
push ecx
lea edx, [esp + 0xcc]
push edx
mov ecx, esi
call eax
cmp dword [esp + 0x78], ebx
jb 0x54f9a4
mov ecx, dword [esp + 0x64]
push ecx
call fcn.0061c19a
add esp, 4
call dword [sym.imp.WINMM.dll_timeGetTime]
cmp dword [esp + 0xdc], ebx
mov dword [esi + 0x474], eax
jb 0x54f9c9
mov edx, dword [esp + 0xc8]
push edx
call fcn.0061c19a
add esp, 4
mov dword [esp + 0xf0], 0xffffffff
mov eax, dword [esp + 0x38]
push eax
lea ecx, [esp + 0x38]
mov dword [esp + 0xe0], edi
push ecx
mov dword [esp + 0xe0], 0
mov byte [esp + 0xd0], 0
mov edx, dword [eax]
push edx
mov esi, ecx
push esi
lea eax, [esp + 0x70]
push eax
mov edi, ecx
call fcn.0055c2b0
mov ecx, dword [esp + 0x38]
push ecx
call fcn.0061c19a
add esp, 4
mov ecx, dword [esp + 0xe8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.0061efd1
mov esp, ebp
pop ebp
ret