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

Disassembly:
push 0xffffffffffffffff
push 0x59071b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x44
push ebx
push ebp
push esi
mov ebp, ecx
mov dword [esp + 0xc], 1
call fcn.004c8580
mov ebx, dword [esp + 0x60]
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
push ebx
mov dword [0x5f55f0], eax
mov dword [0x5f55ec], ecx
mov dword [0x5f5644], ebx
call dword [sym.imp.user32.dll_GetDC]
push 0xdc
mov dword [0x5f5640], eax
call sub.d3d8.dll_Direct3DCreate8
xor esi, esi
cmp eax, esi
mov dword [0x5f565c], eax
jne 0x4c92b1
pop esi
pop ebp
mov eax, 2
pop ebx
mov ecx, dword [esp + 0x44]
mov dword fs:[0], ecx
add esp, 0x50
ret 0x18
push 0x4c8060
push eax
mov ecx, 0x5f5690
call fcn.004dfc10
test eax, eax
jne 0x4c92de
pop esi
pop ebp
mov eax, 0x40
pop ebx
mov ecx, dword [esp + 0x44]
mov dword fs:[0], ecx
add esp, 0x50
ret 0x18
push 0x5f5650
push 0x5f5654
push 0x5f5658
push 1
push 0x10
push 0x258
push 0x320
mov ecx, 0x5f5690
call fcn.004df970
test eax, eax
jne 0x4c9322
pop esi
pop ebp
mov eax, 0x80
pop ebx
mov ecx, dword [esp + 0x44]
mov dword fs:[0], ecx
add esp, 0x50
ret 0x18
push edi
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], esi
mov byte [esp + 0x20], 0
lea edx, [esp + 0x1c]
push edx
mov ecx, 0x5f5690
mov dword [esp + 0x60], esi
call fcn.004dfe70
mov eax, dword [0x5f5650]
push eax
mov ecx, 0x5f5690
call fcn.004df950
mov edi, eax
cmp edi, esi
mov dword [esp + 0x14], edi
jne 0x4c9398
mov ecx, dword [0x5f5650]
push ecx
push str.adapter__d_is_EMPTY
call fcn.004b00f0
add esp, 8
lea ecx, [esp + 0x1c]
call fcn.004e5320
pop edi
pop esi
pop ebp
mov eax, 0x80
pop ebx
mov ecx, dword [esp + 0x44]
mov dword fs:[0], ecx
add esp, 0x50
ret 0x18
push edi
mov ecx, ebp
call fcn.004c80e0
test al, al
je 0x4c93b9
push 0x200
push ebx
mov ecx, ebp
mov dword [esp + 0x18], 0x201
call fcn.004c91d0
mov edx, dword [0x5f5658]
mov eax, dword [0x5f5654]
push edx
push eax
mov ecx, edi
call fcn.004df840
mov esi, eax
test esi, esi
jne 0x4c9411
mov ecx, dword [0x5f5658]
mov edx, dword [0x5f5654]
push ecx
push edx
push str.device__d__mode__d_is_EMPTY
call fcn.004b00f0
add esp, 0xc
lea ecx, [esp + 0x1c]
call fcn.004e5320
pop edi
pop esi
pop ebp
mov eax, 0x80
pop ebx
mov ecx, dword [esp + 0x44]
mov dword fs:[0], ecx
add esp, 0x50
ret 0x18
mov al, byte [esp + 0x70]
test al, al
je 0x4c945d
push 4
push str.3dfx
push edi
call fcn.0047a3c4
add esp, 0xc
test eax, eax
jne 0x4c945d
mov ecx, edi
call fcn.004df830
cmp dword [eax + 0xc], 0x16
jne 0x4c945d
lea ecx, [esp + 0x1c]
call fcn.004e5320
pop edi
pop esi
pop ebp
mov eax, 0x400
pop ebx
mov ecx, dword [esp + 0x44]
mov dword fs:[0], ecx
add esp, 0x50
ret 0x18
cmp dword [esi + 0xc], 0x20
jne 0x4c946b
or dword [esp + 0x10], 0x100
mov dword [esp + 0x50], 0xf
mov dword [esp + 0x4c], 0
mov byte [esp + 0x3c], 0
lea eax, [esp + 0x38]
push eax
mov ecx, esi
mov byte [esp + 0x60], 1
call fcn.004dfc80
movzx ecx, byte [esp + 0x70]
mov edx, dword [esp + 0x78]
mov dword [esp + 0x64], 0
mov dword [esp + 0x18], ecx
jmp 0x4c94b0
xor eax, eax
mov ecx, 0xd
mov edi, 0x5f560c
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x68]
mov dword [0x5f5628], eax
mov eax, dword [esp + 0x6c]
mov edi, 1
mov dword [0x5f5610], eax
mov al, byte [esp + 0x70]
test al, al
mov dword [0x5f5620], edi
mov dword [0x5f560c], ecx
mov dword [0x5f5624], ebx
mov ecx, dword [ebp + 4]
mov dword [0x5f5618], ecx
je 0x4c9510
mov ecx, dword [esp + 0x14]
call fcn.004df830
mov edx, dword [eax + 0xc]
mov dword [0x5f5614], edx
jmp 0x4c951e
mov eax, dword [esi + 0x10]
mov dword [0x5f5614], eax
mov dword [0x5f5638], edx
mov ecx, dword [esi + 0x14]
mov eax, dword [0x5f565c]
push 0x5f5660
mov dword [0x5f5630], ecx
mov dword [0x5f562c], edi
mov edx, dword [esi + 0xc]
push 0x5f560c
mov dword [0x5f5670], edx
mov edx, dword [esi + 0xc]
mov ecx, dword [eax]
push edx
mov edx, dword [0x5f5650]
push ebx
push edi
push edx
push eax
call dword [ecx + 0x3c]
test eax, eax
mov dword [0x5f5668], eax
jge 0x4c95ec
cmp eax, 0x8876017c
je 0x4c9598
cmp eax, 0x8876086a
je 0x4c9591
cmp eax, 0x8876086c
je 0x4c958a
push eax
push str.IDirect3DDevice.CreateDevice___ERROR__d
call fcn.004b00f0
add esp, 8
jmp 0x4c95a5
push str.IDirect3DDevice.CreateDevice___ERROR_D3DERR_INVALIDCALL_nThe_method_call_is_invalid._For_example__a_methods_parameter_may_have_an_invalid_value.
jmp 0x4c959d
push str.IDirect3DDevice.CreateDevice___ERROR_D3DERR_NOTAVAILABLE_nThis_device_does_not_support_the_queried_technique.
jmp 0x4c959d
push str.IDirect3DDevice.CreateDevice___ERROR_D3DERR_OUTOFVIDEOMEMORY_nDirect3D_does_not_have_enough_display_memory_to_perform_the_operation
call fcn.004b00c0
add esp, 4
mov eax, dword [esp + 0x64]
test eax, eax
jne 0x4c95c0
xor edx, edx
mov dword [esp + 0x64], edi
mov dword [esp + 0x10], 0x20
jmp 0x4c94b0
lea ecx, [esp + 0x38]
call fcn.004e5320
lea ecx, [esp + 0x1c]
call fcn.004e5320
pop edi
pop esi
pop ebp
mov eax, 0x10
pop ebx
mov ecx, dword [esp + 0x44]
mov dword fs:[0], ecx
add esp, 0x50
ret 0x18
mov edx, dword [0x5f5614]
mov eax, dword [0x5f565c]
mov ecx, dword [eax]
push 0x31545844
push 3
push 0
push edx
mov edx, dword [0x5f5650]
push edi
push edx
push eax
call dword [ecx + 0x28]
cmp eax, 0x8876086a
jne 0x4c961d
mov byte [0x5d97f8], 0
mov edx, dword [0x5f5614]
mov eax, dword [0x5f565c]
mov ecx, dword [eax]
push 0x33545844
push 3
push 0
push edx
mov edx, dword [0x5f5650]
push edi
push edx
push eax
call dword [ecx + 0x28]
cmp eax, 0x8876086a
jne 0x4c964e
mov byte [0x5d97f8], 0
mov edx, dword [0x5f5614]
mov eax, dword [0x5f565c]
mov ecx, dword [eax]
push 0x35545844
push 3
push 0
push edx
mov edx, dword [0x5f5650]
push edi
push edx
push eax
call dword [ecx + 0x28]
cmp eax, 0x8876086a
jne 0x4c967f
mov byte [0x5d97f8], 0
mov eax, dword [0x5f5660]
mov ecx, dword [eax]
push 0x5f5518
push eax
call dword [ecx + 0x1c]
test eax, eax
mov dword [0x5f5668], eax
jge 0x4c96d2
push eax
push str.IDirect3DDevice.GetDeviceCaps___ERROR__d
call fcn.004b00f0
add esp, 8
lea ecx, [esp + 0x38]
call fcn.004e5320
lea ecx, [esp + 0x1c]
call fcn.004e5320
pop edi
pop esi
pop ebp
mov eax, 8
pop ebx
mov ecx, dword [esp + 0x44]
mov dword fs:[0], ecx
add esp, 0x50
ret 0x18
mov al, byte [esp + 0x70]
test al, al
jne 0x4c96f3
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x68]
push 0x40
push edx
push eax
push 0
push 0
push 0xffffffffffffffff
push ebx
call dword [sym.imp.user32.dll_SetWindowPos]
mov eax, dword [0x5f5660]
mov ecx, dword [eax]
push 0x5f55f4
push eax
call dword [ecx + 0xa4]
push 0x13378
call fcn.00479702
add esp, 4
mov dword [esp + 0x70], eax
test eax, eax
mov byte [esp + 0x5c], 2
je 0x4c9730
mov edx, dword [0x5f5660]
push edx
mov ecx, eax
call fcn.004c24b0
jmp 0x4c9732
xor eax, eax
push 0x5f5664
push 0
mov byte [esp + 0x64], 1
mov dword [ebp + 0x14], eax
call fcn.0055b797
mov eax, dword [0x5f5664]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
mov ecx, ebp
call fcn.004c8000
mov ecx, ebp
mov dword [0x5f5674], eax
call fcn.004c7f40
mov ecx, ebp
mov dword [0x5f5678], eax
call fcn.004c7fa0
mov dword [0x5f567c], eax
mov dword [0x627040], 0
mov dword [0x62703c], 0
mov dword [0x627038], 0
mov dword [0x627034], 0
mov dword [0x62702c], 0
mov dword [0x627028], 0
mov dword [0x627024], 0
mov dword [0x627020], 0
mov dword [0x627018], 0
mov dword [0x627014], 0
mov dword [0x627010], 0
mov dword [0x62700c], 0
mov dword [0x627044], 0x3f800000
mov dword [0x627030], 0x3f800000
mov dword [0x62701c], 0x3f800000
mov dword [0x627008], 0x3f800000
mov dword [0x627080], 0
mov dword [0x62707c], 0
mov dword [0x627078], 0
mov dword [0x627074], 0
mov dword [0x62706c], 0
mov dword [0x627068], 0
mov dword [0x627064], 0
mov dword [0x627060], 0
mov dword [0x627058], 0
mov dword [0x627054], 0
mov dword [0x627050], 0
mov dword [0x62704c], 0
mov dword [0x627084], 0x3f800000
mov dword [0x627070], 0x3f800000
mov dword [0x62705c], 0x3f800000
mov dword [0x627048], 0x3f800000
mov dword [0x6270c0], 0
mov dword [0x6270bc], 0
mov dword [0x6270b8], 0
mov dword [0x6270b4], 0
mov dword [0x6270ac], 0
mov dword [0x6270a8], 0
mov dword [0x6270a4], 0
mov dword [0x6270a0], 0
mov dword [0x627098], 0
mov dword [0x627094], 0
mov dword [0x627090], 0
mov dword [0x62708c], 0
mov dword [0x6270c4], 0x3f800000
mov dword [0x6270b0], 0x3f800000
mov dword [0x62709c], 0x3f800000
mov dword [0x627088], 0x3f800000
mov dword [0x627100], 0
mov dword [0x6270fc], 0
mov dword [0x6270f8], 0
mov dword [0x6270f4], 0
mov dword [0x6270ec], 0
mov dword [0x6270e8], 0
mov dword [0x6270e4], 0
mov dword [0x6270e0], 0
mov dword [0x6270d8], 0
mov dword [0x6270d4], 0
mov dword [0x6270d0], 0
mov dword [0x6270cc], 0
mov dword [0x627104], 0x3f800000
mov dword [0x6270f0], 0x3f800000
mov dword [0x6270dc], 0x3f800000
fild dword [esp + 0x68]
mov edx, dword [0x5f5660]
push 0
push 0x5f5684
fmul dword [0x5999e8]
push 0x20
push 0x20
push 0x3f800000
fstp dword [0x627248]
push edx
fild dword [esp + 0x84]
mov dword [0x6270c8], 0x3f800000
mov dword [0x627140], 0
mov dword [0x62713c], 0
fmul dword [0x5999e8]
mov dword [0x627138], 0
mov dword [0x627134], 0
mov dword [0x62712c], 0
fstp dword [0x62725c]
mov dword [0x627128], 0
mov dword [0x627124], 0
mov dword [0x627120], 0
mov dword [0x627118], 0
mov dword [0x627114], 0
mov dword [0x627110], 0
mov dword [0x62710c], 0
mov dword [0x627144], 0x3f800000
mov dword [0x627130], 0x3f800000
mov dword [0x62711c], 0x3f800000
mov dword [0x627108], 0x3f800000
mov dword [0x627200], 0
mov dword [0x6271fc], 0
mov dword [0x6271f8], 0
mov dword [0x6271f4], 0
mov dword [0x6271ec], 0
mov dword [0x6271e8], 0
mov dword [0x6271e4], 0
mov dword [0x6271e0], 0
mov dword [0x6271d8], 0
mov dword [0x6271d4], 0
mov dword [0x6271d0], 0
mov dword [0x6271cc], 0
mov dword [0x627204], 0x3f800000
mov dword [0x6271f0], 0x3f800000
mov dword [0x627240], 0
mov dword [0x627234], 0
mov dword [0x62722c], 0
mov dword [0x627228], 0
mov dword [0x627224], 0
mov dword [0x627220], 0
mov dword [0x627218], 0
mov dword [0x627214], 0
mov dword [0x627210], 0
mov dword [0x62720c], 0
mov dword [0x627244], 0x3f800000
mov dword [0x627230], 0x3f800000
mov dword [0x62721c], 0x3f800000
mov dword [0x627208], 0x3f800000
mov dword [0x627280], 0
mov dword [0x62727c], 0
mov dword [0x627278], 0
mov dword [0x627274], 0
mov dword [0x62726c], 0
mov dword [0x627268], 0
mov dword [0x627264], 0
mov dword [0x627260], 0
mov dword [0x627258], 0
mov dword [0x627254], 0
mov dword [0x627250], 0
mov dword [0x62724c], 0
mov dword [0x627284], 0x3f800000
mov dword [0x627270], 0x3f800000
mov dword [0x6271c8], 0x3f800000
mov dword [0x6271dc], 0xbf800000
mov dword [0x627238], 0x3f800000
mov dword [0x62723c], 0x3f800000
call fcn.0055af31
push 0
push 0x5f5688
push 8
push 8
mov eax, dword [0x5f5660]
push 0x3f800000
push 0x3f800000
push 0x3f800000
push eax
call fcn.0055aab4
mov eax, dword [0x5f5660]
mov ecx, dword [eax]
push 0
push 0x3f800000
push 0xff000000
push 3
push 0
push 0
push eax
call dword [ecx + 0x90]
mov ecx, ebp
call fcn.004c8310
test al, al
jne 0x4c9d19
lea ecx, [esp + 0x38]
call fcn.004e5320
lea ecx, [esp + 0x1c]
call fcn.004e5320
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x44]
mov dword fs:[0], ecx
add esp, 0x50
ret 0x18
mov ecx, ebp
call fcn.004c8240
test al, al
je 0x4c9cf0
call fcn.004c5d10
mov esi, dword [esp + 0x14]
cmp eax, 0x4000000
mov al, byte [0x5f5564]
setb dl
shr al, 3
push 3
not al
and al, 1
push 0x5abb78
push esi
mov byte [0x5f5680], dl
mov byte [0x627333], al
call fcn.0047a3c4
add esp, 0xc
test eax, eax
jne 0x4c9d69
mov byte [0x627330], 1
jmp 0x4c9d7d
push 4
push str.3dfx
push esi
call fcn.0047a3c4
add esp, 0xc
test eax, eax
jne 0x4c9d92
mov byte [0x627331], 1
mov byte [0x627332], 1
mov byte [0x5f5680], 1
lea ecx, [esp + 0x38]
call fcn.004e5320
lea ecx, [esp + 0x1c]
call fcn.004e5320
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x50
ret 0x18