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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x650d7b
mov eax, dword fs:[0]
push eax
sub esp, 0xd8
mov eax, dword [0x6af168]
xor eax, esp
mov dword [esp + 0xd0], eax
push ebx
push esi
push edi
mov eax, dword [0x6af168]
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 0x54af03
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.00557df0
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 0x54af62
cmp esi, ebx
je 0x54af67
call fcn.0062492b
cmp edi, dword [esp + 0x64]
je 0x54afc2
test esi, esi
jne 0x54af76
call fcn.0062492b
cmp edi, dword [esi + 4]
jne 0x54af80
call fcn.0062492b
mov edi, dword [edi + 0xc]
mov esi, dword [edi + 0x40]
test esi, esi
je 0x54afa6
mov edx, dword [esi + 0x30]
add dword [esp + 0x14], edx
lea ecx, [esi + 0x3c]
lea eax, [esp + 0x34]
call fcn.00552ad0
add dword [eax], 1
mov ecx, dword [esi + 0x30]
add dword [eax + 4], ecx
lea esi, [esp + 0xa0]
call fcn.0053d800
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xa0]
jmp 0x54af53
mov dword [esp + 0xdc], 0xf
mov dword [esp + 0xd8], 0
mov byte [esp + 0xc8], 0
mov esi, dword [esp + 0x7c]
mov eax, esi
mov byte [esp + 0xf0], 1
call fcn.00550f20
test al, al
je 0x54affe
mov edx, str.Recommended
jmp 0x54b013
mov eax, esi
call fcn.00550f00
test al, al
mov edx, str.Supported
jne 0x54b013
mov edx, str.Unsupported
mov eax, esi
call fcn.00550ef0
test al, al
mov eax, 0x681554
jne 0x54b028
mov eax, 0x681558
push edx
push eax
lea edx, [esp + 0x20]
push str.3D_Mode_is__s__3D_is__s_on_this_system__r_n_r_n
push edx
call fcn.004e7a20
add esp, 0x10
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0xd0]
mov byte [esp + 0xfc], 2
call fcn.00446020
mov ebx, 0x10
mov byte [esp + 0xf0], 1
cmp dword [esp + 0x30], ebx
jb 0x54b075
mov eax, dword [esp + 0x1c]
push eax
call fcn.0062493b
add esp, 4
mov eax, dword [esi + 0x43c]
push eax
lea ecx, [esp + 0x1c]
push str.Num_Images:__d_r_n
push ecx
call fcn.004e7a20
add esp, 0xc
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0xd0]
mov byte [esp + 0xfc], 3
call fcn.00446020
mov byte [esp + 0xf0], 1
cmp dword [esp + 0x30], ebx
jb 0x54b0c2
mov edx, dword [esp + 0x1c]
push edx
call fcn.0062493b
add esp, 4
mov ecx, dword [esi + 0x4b4]
mov eax, dword [ecx]
mov edx, dword [eax + 0x44]
call edx
push eax
lea eax, [esp + 0x1c]
push str.Num_Sounds:__d_r_n
push eax
call fcn.004e7a20
add esp, 0xc
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0xd0]
mov byte [esp + 0xfc], 4
call fcn.00446020
mov byte [esp + 0xf0], 1
cmp dword [esp + 0x30], ebx
jb 0x54b116
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.0062493b
add esp, 4
mov ecx, dword [esp + 0x5c]
shr ecx, 0xa
lea edx, [esp + 0x84]
call fcn.004e6e90
push eax
lea esi, [esp + 0x1c]
mov byte [esp + 0xf4], 5
call fcn.004e6880
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.004e6e90
push eax
lea esi, [esp + 0xac]
mov byte [esp + 0xf4], 7
call fcn.004e6880
add esp, 4
mov byte [esp + 0xf0], 8
cmp dword [edi + 0x18], ebx
jb 0x54b189
mov edi, dword [edi + 4]
jmp 0x54b18c
add edi, 4
cmp dword [eax + 0x18], ebx
jb 0x54b196
mov eax, dword [eax + 4]
jmp 0x54b199
add eax, 4
push edi
push eax
lea edx, [esp + 0x68]
push str.Video_Memory:__s__s_KB_r_n
push edx
call fcn.004e7a20
add esp, 0x10
push 0xffffffffffffffff
xor esi, esi
push esi
push eax
lea ecx, [esp + 0xd0]
mov byte [esp + 0xfc], 9
call fcn.00446020
cmp dword [esp + 0x78], ebx
jb 0x54b1da
mov eax, dword [esp + 0x64]
push eax
call fcn.0062493b
add esp, 4
cmp dword [esp + 0xc0], ebx
mov edi, 0xf
mov dword [esp + 0x78], edi
mov dword [esp + 0x74], esi
mov byte [esp + 0x64], 0
jb 0x54b205
mov ecx, dword [esp + 0xac]
push ecx
call fcn.0062493b
add esp, 4
cmp dword [esp + 0x58], ebx
mov dword [esp + 0xc0], edi
mov dword [esp + 0xbc], esi
mov byte [esp + 0xac], 0
jb 0x54b22e
mov edx, dword [esp + 0x44]
push edx
call fcn.0062493b
add esp, 4
cmp dword [esp + 0x30], ebx
mov dword [esp + 0x58], edi
mov dword [esp + 0x54], esi
mov byte [esp + 0x44], 0
jb 0x54b24e
mov eax, dword [esp + 0x1c]
push eax
call fcn.0062493b
add esp, 4
mov byte [esp + 0xf0], 1
cmp dword [esp + 0x9c], ebx
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], esi
mov byte [esp + 0x1c], 0
jb 0x54b27c
mov ecx, dword [esp + 0x88]
push ecx
call fcn.0062493b
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.004e6e90
mov byte [esp + 0xf0], 0xa
cmp dword [eax + 0x18], ebx
jb 0x54b2ac
mov eax, dword [eax + 4]
jmp 0x54b2af
add eax, 4
push eax
lea edx, [esp + 0x1c]
push str.Texture_Memory:__s_KB_r_n
push edx
call fcn.004e7a20
add esp, 0xc
push 0xffffffffffffffff
push esi
push eax
lea ecx, [esp + 0xd0]
mov byte [esp + 0xfc], 0xb
call fcn.00446020
cmp dword [esp + 0x30], ebx
jb 0x54b2ed
mov eax, dword [esp + 0x1c]
push eax
call fcn.0062493b
add esp, 4
mov byte [esp + 0xf0], 1
cmp dword [esp + 0x9c], ebx
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], esi
mov byte [esp + 0x1c], 0
jb 0x54b31b
mov ecx, dword [esp + 0x88]
push ecx
call fcn.0062493b
add esp, 4
lea ecx, [esp + 0x14]
lea eax, [esp + 0x34]
mov dword [esp + 0x14], 1
call fcn.00552ad0
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.004e6e90
push eax
lea esi, [esp + 0x44]
mov byte [esp + 0xf4], 0xc
call fcn.004e6880
add esp, 4
mov byte [esp + 0xf0], 0xd
cmp dword [eax + 0x18], ebx
jb 0x54b376
mov eax, dword [eax + 4]
jmp 0x54b379
add eax, 4
push eax
push edi
lea edx, [esp + 0x20]
push str.A8R8G8B8:__d____s_KB_r_n
push edx
call fcn.004e7a20
add esp, 0x10
push 0xffffffffffffffff
xor esi, esi
push esi
push eax
lea ecx, [esp + 0xd0]
mov byte [esp + 0xfc], 0xe
call fcn.00446020
cmp dword [esp + 0x30], ebx
jb 0x54b3ba
mov eax, dword [esp + 0x1c]
push eax
call fcn.0062493b
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 0x54b3df
mov ecx, dword [esp + 0x44]
push ecx
call fcn.0062493b
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 0x54b40d
mov edx, dword [esp + 0x88]
push edx
call fcn.0062493b
add esp, 4
lea ecx, [esp + 0x14]
lea eax, [esp + 0x34]
mov dword [esp + 0x14], 2
call fcn.00552ad0
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.004e6e90
push eax
lea esi, [esp + 0x44]
mov byte [esp + 0xf4], 0xf
call fcn.004e6880
add esp, 4
mov byte [esp + 0xf0], bl
cmp dword [eax + 0x18], ebx
jb 0x54b467
mov eax, dword [eax + 4]
jmp 0x54b46a
add eax, 4
push eax
push edi
lea eax, [esp + 0x20]
push str.A4R4G4B4:__d____s_KB_r_n
push eax
call fcn.004e7a20
add esp, 0x10
push 0xffffffffffffffff
xor esi, esi
push esi
push eax
lea ecx, [esp + 0xd0]
mov byte [esp + 0xfc], 0x11
call fcn.00446020
cmp dword [esp + 0x30], ebx
jb 0x54b4ab
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.0062493b
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 0x54b4d0
mov edx, dword [esp + 0x44]
push edx
call fcn.0062493b
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 0x54b4fe
mov eax, dword [esp + 0x88]
push eax
call fcn.0062493b
add esp, 4
lea ecx, [esp + 0x14]
lea eax, [esp + 0x34]
mov dword [esp + 0x14], 4
call fcn.00552ad0
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.004e6e90
push eax
lea esi, [esp + 0x44]
mov byte [esp + 0xf4], 0x12
call fcn.004e6880
add esp, 4
mov byte [esp + 0xf0], 0x13
cmp dword [eax + 0x18], ebx
jb 0x54b559
mov eax, dword [eax + 4]
jmp 0x54b55c
add eax, 4
push eax
push edi
lea ecx, [esp + 0x20]
push str.R5G6B5:__d____s_KB_r_n
push ecx
call fcn.004e7a20
add esp, 0x10
push 0xffffffffffffffff
xor esi, esi
push esi
push eax
lea ecx, [esp + 0xd0]
mov byte [esp + 0xfc], 0x14
call fcn.00446020
cmp dword [esp + 0x30], ebx
jb 0x54b59d
mov edx, dword [esp + 0x1c]
push edx
call fcn.0062493b
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 0x54b5c2
mov eax, dword [esp + 0x44]
push eax
call fcn.0062493b
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 0x54b5f0
mov ecx, dword [esp + 0x88]
push ecx
call fcn.0062493b
add esp, 4
lea ecx, [esp + 0x14]
lea eax, [esp + 0x34]
mov dword [esp + 0x14], 8
call fcn.00552ad0
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.004e6e90
push eax
lea esi, [esp + 0x44]
mov byte [esp + 0xf4], 0x15
call fcn.004e6880
add esp, 4
mov byte [esp + 0xf0], 0x16
cmp dword [eax + 0x18], ebx
jb 0x54b64b
mov eax, dword [eax + 4]
jmp 0x54b64e
add eax, 4
push eax
push edi
lea edx, [esp + 0x20]
push str.Palette8:__d____s_KB_r_n
push edx
call fcn.004e7a20
add esp, 0x10
push 0xffffffffffffffff
xor esi, esi
push esi
push eax
lea ecx, [esp + 0xd0]
mov byte [esp + 0xfc], 0x17
call fcn.00446020
cmp dword [esp + 0x30], ebx
jb 0x54b68f
mov eax, dword [esp + 0x1c]
push eax
call fcn.0062493b
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 0x54b6b4
mov ecx, dword [esp + 0x44]
push ecx
call fcn.0062493b
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 0x54b6e2
mov edx, dword [esp + 0x88]
push edx
call fcn.0062493b
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.00402300
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 0x54b739
mov ecx, dword [esp + 0x64]
push ecx
call fcn.0062493b
add esp, 4
call dword [sym.imp.WINMM.dll_timeGetTime]
cmp dword [esp + 0xdc], ebx
mov dword [esi + 0x474], eax
jb 0x54b75e
mov edx, dword [esp + 0xc8]
push edx
call fcn.0062493b
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.00555950
mov ecx, dword [esp + 0x38]
push ecx
call fcn.0062493b
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.00624940
mov esp, ebp
pop ebp
ret