Function at 0x4623f0
Capabilities:
Print debug messages

Disassembly:
push ebp
lea ebp, [esp - 0x48]
sub esp, 0x48
push 0xffffffffffffffff
push 0x540358
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x894
push edi
mov edi, ecx
push str.Creating_global_palette_n
mov dword [ebp + 0x30], edi
call fcn.00453cc0
push 0x400
lea eax, [ebp - 0x8a0]
push 0
push eax
call fcn.004e4d50
mov edx, dword [edi + 4]
add esp, 0x10
mov eax, dword [edx]
push 0
mov ecx, dword [eax + 0x14]
lea eax, [edi + 0x6c4]
push eax
lea eax, [ebp - 0x8a0]
push eax
push 4
push edx
call ecx
test eax, eax
jne 0x463227
push ebx
push esi
cmp dword [edi + 0x514], eax
je 0x4630a7
push str.Creating_3d_device
call fcn.00453cc0
mov ecx, dword [edi + 0x648]
lea ebx, [edi + 0x64c]
add esp, 4
mov eax, dword [ecx]
push ebx
push dword [0x6ccd60]
push dword [edi + 0x51c]
push ecx
call dword [eax + 0x20]
mov esi, eax
test esi, esi
js 0x4631f4
push str....Passed_n
call fcn.00453cc0
mov eax, dword [ebx]
mov dword [ebp + 0x38], eax
mov dword [edi + 0x644], 0
mov eax, dword [0xad0ce8]
push 0x6c
push 0
mov esi, dword [eax + 4]
lea eax, [ebp - 0x78]
push eax
call fcn.004e4d50
mov eax, dword [esi]
lea ecx, [ebp + 0x44]
add esp, 0x10
mov dword [ebp - 0x78], 0x6c
mov dword [ebp - 0x74], 0x1007
mov dword [ebp - 0x70], 2
mov dword [ebp - 0x6c], 2
push 0
push ecx
lea ecx, [ebp - 0x78]
mov dword [ebp - 0x10], 0x1000
push ecx
push esi
mov dword [ebp - 0x30], 0x20
mov dword [ebp - 0x2c], 4
mov dword [ebp - 0x28], 0x43525650
call dword [eax + 0x18]
test eax, eax
js 0x46256f
mov ecx, dword [ebp + 0x44]
lea edx, [ebp - 0x78]
push 0
push 1
push edx
mov eax, dword [ecx]
push 0
push ecx
call dword [eax + 0x64]
mov ecx, dword [ebp + 0x44]
test eax, eax
jne 0x462565
mov eax, dword [ecx]
lea edx, [ebp - 0x78]
mov esi, dword [ebp - 0x54]
push edx
push ecx
call dword [eax + 0x80]
mov ecx, dword [ebp + 0x44]
lea edx, [ebp + 0x40]
push edx
push 0x56fec4
push ecx
mov eax, dword [ecx]
call dword [eax]
test eax, eax
je 0x46263b
mov ecx, dword [ebp + 0x44]
test ecx, ecx
je 0x46256f
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
push str.Not_detected_PowerVR_PCX1_or_2_n
call fcn.00453cc0
add esp, 4
mov ecx, dword [edi + 4]
lea edx, [ebp + 0x3c]
mov esi, dword [edi + 0x1218]
push edx
push 0x570324
mov eax, dword [ecx]
push ecx
mov dword [ebp + 0x40], esi
call dword [eax]
test eax, eax
js 0x462975
mov edx, dword [ebp + 0x3c]
mov eax, dword [edx]
mov ecx, dword [eax + 0x6c]
xor eax, eax
cmp dword [edi + 0x644], 1
setne al
push eax
lea eax, [ebp - 0x4a0]
push eax
push edx
call ecx
test eax, eax
js 0x462952
push str.Driver_information_:__n
call fcn.00453cc0
lea eax, [ebp - 0x4a0]
push eax
push str.Driver_name_:__s_n
call fcn.00453cc0
lea eax, [ebp - 0x2a0]
push eax
push str.Driver_description_:__s_n
call fcn.00453cc0
mov ecx, dword [ebp - 0xa0]
movzx eax, cx
push eax
shr ecx, 0x10
push ecx
mov ecx, dword [ebp - 0x9c]
movzx eax, cx
push eax
shr ecx, 0x10
push ecx
push str.Driver_version_:__d._d._d._d_n
call fcn.00453cc0
mov eax, dword [ebp - 0x98]
add esp, 0x28
test eax, eax
je 0x4626e2
push eax
push str.Driver_vendor_ID_:_0x_x_n
call fcn.00453cc0
add esp, 8
jmp 0x4626ef
mov ecx, dword [ebp + 0x40]
lea edx, [ebp]
push edx
push dword [ebp + 0x38]
mov eax, dword [ecx]
push ecx
call dword [eax + 0xc]
mov ecx, dword [ebp + 0x40]
test ecx, ecx
je 0x46265f
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp + 0x40], 0
mov ecx, dword [ebp + 0x44]
test ecx, ecx
je 0x462673
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp + 0x44], 0
cmp dword [esi + 4], 0
je 0x46256f
push str.Detected_PowerVR_PCX1_or_2_n
mov dword [edi + 0x644], 1
call fcn.00453cc0
add esp, 4
lea ecx, [ebp + 0x44]
call fcn.00406270
push str.HKEY_LOCAL_MACHINESOFTWAREPowerVRPCX12App_hintsD3DPopTB.exe
lea ecx, [ebp + 0x44]
mov dword [ebp - 4], 0
call fcn.00405bb0
test eax, eax
jne 0x4626ce
push 0x55fd4c
push str.SglTransSort
lea ecx, [ebp + 0x44]
call fcn.00405fa0
lea ecx, [ebp + 0x44]
call fcn.00405c70
lea ecx, [ebp + 0x44]
mov dword [ebp - 4], 0xffffffff
call fcn.00405c60
jmp 0x46257c
push str.Driver_vendor_ID_unknown_n
call fcn.00453cc0
add esp, 4
mov eax, dword [ebp - 0x94]
test eax, eax
je 0x462709
push eax
push str.Driver_chipset_ID_:_0x_x_n
call fcn.00453cc0
add esp, 8
jmp 0x462716
push str.Driver_chipset_ID_unknown_n
call fcn.00453cc0
add esp, 4
mov eax, dword [ebp - 0x90]
test eax, eax
je 0x462730
push eax
push str.Driver_subsystem_ID_:_0x_x_n
call fcn.00453cc0
add esp, 8
jmp 0x46273d
push str.Driver_subsystem_ID_unknown_n
call fcn.00453cc0
add esp, 4
mov eax, dword [ebp - 0x8c]
test eax, eax
je 0x462757
push eax
push str.Driver_chipset_revision_ID_:_0x_x_n
call fcn.00453cc0
add esp, 8
jmp 0x462764
push str.Driver_chipset_revision_ID_unknown_n
call fcn.00453cc0
add esp, 4
movzx eax, byte [ebp - 0x79]
mov ecx, dword [ebp - 0x7c]
push eax
movzx eax, byte [ebp - 0x7a]
push eax
movzx eax, ch
push eax
movzx eax, cl
push eax
movzx eax, byte [ebp - 0x7d]
push eax
movzx eax, byte [ebp - 0x7e]
push eax
movzx eax, byte [ebp - 0x7f]
push eax
movzx eax, byte [ebp - 0x80]
push eax
movzx eax, word [ebp - 0x82]
push eax
movzx eax, word [ebp - 0x84]
push eax
push dword [ebp - 0x88]
push 0x55ff28
push 0xad0d10
call fcn.0043fb40
push 0xad0d10
push str.Driver_GUID_:__s_n
call fcn.00453cc0
mov ecx, dword [ebp - 0x98]
add esp, 0x3c
cmp ecx, 0x12d2
jne 0x4627fa
mov eax, dword [ebp - 0x94]
cmp eax, 0x18
jne 0x46283a
push str.Riva_128_detected_n
call fcn.00453cc0
mov ecx, dword [ebp - 0x98]
add esp, 4
mov dword [edi + 0x644], 2
mov eax, dword [ebp - 0x94]
cmp ecx, 0x10de
jne 0x46283a
cmp eax, 0x20
je 0x462817
cmp eax, 0x28
je 0x462817
cmp eax, 0x2c
jne 0x46283a
push str.Riva_TNT_detected_n
call fcn.00453cc0
mov eax, dword [ebp - 0x94]
add esp, 4
mov ecx, dword [ebp - 0x98]
mov dword [edi + 0x644], 3
mov edx, dword [esi + 0x8c]
and edx, 8
mov dword [edi + 0xd0c], edx
mov esi, dword [esi + 0x8c]
and esi, 4
mov dword [edi + 0xd10], esi
cmp ecx, 0x1002
jne 0x462893
test esi, esi
je 0x46295f
test edx, edx
jne 0x46295f
push str.Rage_Pro_detected_n
call fcn.00453cc0
mov eax, dword [ebp - 0x94]
add esp, 4
mov ecx, dword [ebp - 0x98]
mov dword [edi + 0x644], 4
cmp ecx, 0x121a
jne 0x4628c7
cmp eax, 2
jne 0x462937
push str.Voodoo2_detected_n
call fcn.00453cc0
mov eax, dword [ebp - 0x94]
add esp, 4
mov ecx, dword [ebp - 0x98]
mov dword [edi + 0x644], 5
cmp ecx, 0x102b
jne 0x4628fd
cmp eax, 0x521
jne 0x46295f
push str.G200_detected_n
call fcn.00453cc0
mov eax, dword [ebp - 0x94]
add esp, 4
mov ecx, dword [ebp - 0x98]
mov dword [edi + 0x644], 7
cmp ecx, 0x104c
jne 0x46292f
cmp eax, 0x3d07
jne 0x46295f
push str.Permedia2_detected_n
call fcn.00453cc0
mov eax, dword [ebp - 0x94]
add esp, 4
mov ecx, dword [ebp - 0x98]
mov dword [edi + 0x644], 8
cmp ecx, 0x121a
jne 0x46295f
cmp eax, 3
jne 0x46295f
push str.Banshee_detected_n
call fcn.00453cc0
mov dword [edi + 0x644], 9
jmp 0x46295c
push str.Driver_information_query_failed_n
call fcn.00453cc0
add esp, 4
mov ecx, dword [ebp + 0x3c]
test ecx, ecx
je 0x462982
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp + 0x3c], 0
jmp 0x462982
push str.No_DDraw4_interface___cant_get_driver_information_n
call fcn.00453cc0
add esp, 4
push dword [ebx]
call fcn.00469600
add esp, 4
test eax, eax
jne 0x463225
push str.Enumerating_texture_formats
mov dword [edi + 0x1220], eax
call fcn.00453cc0
mov ecx, dword [ebx]
add esp, 4
mov eax, dword [ecx]
push edi
push 0x461ea0
push ecx
call dword [eax + 0x24]
mov esi, eax
test esi, esi
js 0x4631f4
push str....Passed_n
call fcn.00453cc0
mov ecx, dword [edi + 0x648]
lea ebx, [edi + 0xd24]
add esp, 4
mov eax, dword [ecx]
push 0
push ebx
push ecx
call dword [eax + 0x14]
test eax, eax
jne 0x463225
cmp dword [0x58b068], eax
je 0x462a46
mov ecx, dword [ebx]
lea edx, [ebp - 0x5c]
xorps xmm0, xmm0
mov dword [ebp - 0x5c], 0x50
movlpd qword [ebp - 0x3c], xmm0
movlpd qword [ebp - 0x34], xmm0
movlpd qword [ebp - 0x2c], xmm0
movlpd qword [ebp - 0x24], xmm0
movlpd qword [ebp - 0x1c], xmm0
movaps xmm0, xmmword [0x55cfe0]
movups xmmword [ebp - 0x58], xmm0
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], 1
mov eax, dword [ecx]
push edx
push ecx
call dword [eax + 0xc]
test eax, eax
jne 0x463225
push str.Setting_up_viewport
call fcn.00453cc0
push dword [edi + 0xbc]
push dword [edi + 0xb8]
push str.Setting_up_viewport_for__d_x__d_resolution_n
call fcn.00453cc0
mov ecx, dword [edi + 0x648]
lea ebx, [edi + 0x650]
add esp, 0x10
mov eax, dword [ecx]
push 0
push ebx
push ecx
call dword [eax + 0x18]
mov esi, eax
test esi, esi
jne 0x462b3a
mov ecx, dword [edi + 0x64c]
push dword [ebx]
push ecx
mov eax, dword [ecx]
call dword [eax + 0x18]
mov esi, eax
test esi, esi
jne 0x462b3a
mov ecx, dword [edi + 0xbc]
lea edx, [ebp + 4]
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], eax
mov eax, dword [edi + 0xb8]
mov dword [ebp + 0x14], ecx
mov dword [ebp + 4], 0x2c
mov dword [ebp + 0x10], eax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov dword [ebp + 0x18], esi
mov dword [ebp + 0x1c], esi
mov dword [ebp + 0x28], esi
mov dword [ebp + 0x2c], 0x3f800000
push edx
movss dword [ebp + 0x20], xmm0
movd xmm0, ecx
mov ecx, dword [ebx]
cvtdq2ps xmm0, xmm0
push ecx
movss dword [ebp + 0x24], xmm0
mov eax, dword [ecx]
call dword [eax + 0x44]
mov esi, eax
test esi, esi
jne 0x462b3a
mov ecx, dword [edi + 0x64c]
push dword [ebx]
push ecx
mov eax, dword [ecx]
call dword [eax + 0x34]
mov esi, eax
test esi, esi
jne 0x462b3a
mov ecx, dword [edi + 0xd24]
lea edx, [ebp + 0x34]
push edx
push dword [edi + 0x64c]
mov eax, dword [ecx]
push ecx
call dword [eax + 0x14]
mov esi, eax
test esi, esi
jne 0x462b3a
mov ecx, dword [ebx]
push dword [ebp + 0x34]
push ecx
mov eax, dword [ecx]
call dword [eax + 0x20]
mov esi, eax
test esi, esi
je 0x462b40
js 0x4631f4
push str....Passed_n
call fcn.00453cc0
push str.Setting_current_viewport
call fcn.00453cc0
mov ecx, dword [edi + 0x64c]
add esp, 8
push dword [ebx]
mov eax, dword [ecx]
push ecx
call dword [eax + 0x34]
mov esi, eax
test esi, esi
js 0x4631f4
push str....Passed_n
call fcn.00453cc0
xor ebx, ebx
xor eax, eax
xor esi, esi
mov dword [0xad0cfc], ebx
xor edx, edx
mov dword [0xad0d00], esi
add esp, 4
mov dword [0xad0d04], ebx
mov dword [0xad0d08], eax
mov dword [0xad0d0c], edx
cmp dword [edi + 0x1220], eax
je 0x462c00
lea ecx, [edi + 0x1224]
lea eax, [edi + 0x1634]
mov edi, dword [edi + 0x1220]
nop dword [eax + eax]
cmp dword [eax - 0xc], 8
mov esi, dword [eax - 4]
cmove ebx, ecx
cmp esi, 5
jne 0x462c33
cmp dword [eax + 4], esi
jne 0x462be1
mov esi, dword [eax]
cmp esi, 6
jne 0x462c16
mov dword [0xad0d08], ecx
mov esi, dword [0xad0d00]
add eax, 0x3c
add ecx, 0x20
sub edi, 1
jne 0x462bc0
mov edi, dword [ebp + 0x30]
mov eax, dword [0xad0d08]
mov dword [0xad0cfc], ebx
mov dword [edi + 0x1da4], 0
test eax, eax
je 0x462c57
mov dword [edi + 0x1da4], eax
jmp 0x462c61
cmp esi, 5
jne 0x462be1
cmp dword [eax + 8], 1
jne 0x462c29
mov dword [0xad0d04], ecx
jmp 0x462be1
mov esi, ecx
mov dword [0xad0d00], esi
jmp 0x462be7
cmp esi, 4
jne 0x462be1
cmp dword [eax], esi
jne 0x462be1
cmp dword [eax + 4], 4
mov esi, dword [0xad0d00]
jne 0x462be7
cmp dword [eax + 8], 4
cmove edx, ecx
mov dword [0xad0d0c], edx
jmp 0x462be7
test esi, esi
je 0x462c61
mov dword [edi + 0x1da4], esi
mov dword [edi + 0x1da8], 0
test eax, eax
je 0x462c77
mov dword [edi + 0x1da8], eax
jmp 0x462c81
test esi, esi
je 0x462c81
mov dword [edi + 0x1da8], esi
mov esi, dword [edi + 0x1218]
xor eax, eax
test dword [edi + 0xd2c], 0x400000
mov ebx, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov dword [edi + 0x6cc], 0
je 0x462cd7
test dword [edi + 0xd34], 0x200
je 0x462cd7
test byte [esi + 0x84], 8
je 0x462cd7
push str.SetupTranspMode___:_Colorkeying_detected_n
mov dword [edi + 0x6cc], 1
call ebx
mov eax, dword [edi + 0x6cc]
mov edx, dword [0xad0d0c]
test dword [esi + 0x80], 0x1000
mov ecx, eax
je 0x462d0a
test byte [esi + 0x84], 4
je 0x462d0a
or eax, 2
push str.SetupTranspMode___:_Alpha_blend_detected_n
mov dword [edi + 0x6cc], eax
call ebx
mov ecx, dword [edi + 0x6cc]
mov edx, dword [0xad0d0c]
test byte [esi + 0x7c], 0x10
je 0x462d2c
or ecx, 4
push str.SetupTranspMode___:_Alpha_test_detected_n
mov dword [edi + 0x6cc], ecx
call ebx
mov ecx, dword [edi + 0x6cc]
mov edx, dword [0xad0d0c]
mov ebx, ecx
and ebx, 4
je 0x462d44
mov dword [edi + 0x6d0], 4
mov esi, 4
jmp 0x462d7c
test cl, 2
je 0x462d5a
mov dword [edi + 0x6d0], 2
mov esi, 2
jmp 0x462d7c
test cl, 1
je 0x462d70
mov dword [edi + 0x6d0], 1
mov esi, 1
jmp 0x462d7c
mov dword [edi + 0x6d0], 0
xor esi, esi
mov eax, dword [0xad0ce8]
cmp dword [eax + 0xd0c], 0
jne 0x462d9e
test cl, 1
je 0x462d9e
mov dword [edi + 0x6d0], 1
mov esi, 1
cmp esi, 4
je 0x462da8
cmp esi, 2
jne 0x462dd1
mov eax, dword [0xad0d04]
test eax, eax
je 0x462db9
mov dword [edi + 0x1db0], eax
jmp 0x462de2
test edx, edx
je 0x462dc5
mov dword [edi + 0x1db0], edx
jmp 0x462de2
movzx eax, cl
and eax, 1
mov dword [edi + 0x6d0], eax
mov eax, dword [edi + 0x1da4]
mov dword [edi + 0x1db0], eax
mov eax, dword [0xad0d04]
test cl, 2
je 0x462df3
mov dword [edi + 0x6d4], 2
jmp 0x462e01
test ebx, ebx
je 0x462e11
mov dword [edi + 0x6d4], 4
test edx, edx
je 0x462e0d
mov dword [edi + 0x1dac], edx
jmp 0x462e29
test eax, eax
jne 0x462e23
movzx eax, cl
and eax, 1
mov dword [edi + 0x6d4], eax
mov eax, dword [edi + 0x1da4]
mov dword [edi + 0x1dac], eax
mov ebx, dword [ebp + 0x40]
mov eax, dword [ebx + 0x90]
shr eax, 2
and eax, 1
mov dword [edi + 0x6d8], eax
je 0x462e4d
push str.Device_can_clamp_n
call fcn.00453cc0
add esp, 4
mov eax, dword [ebx + 0x80]
shr eax, 9
and eax, 1
cmp dword [edi + 0x644], 1
mov dword [edi + 0x6e0], eax
jne 0x462e74
mov dword [edi + 0x6e0], 0
jmp 0x462e85
test eax, eax
je 0x462e85
push str.Device_can_gouraud_shade_specular_n
call fcn.00453cc0
add esp, 4
mov eax, dword [ebx + 0x80]
shr eax, 3
and eax, 1
mov dword [edi + 0x6e4], eax
je 0x462ea6
push str.Device_can_gouraud_shade_colour_n
call fcn.00453cc0
add esp, 4
mov eax, dword [ebx + 0x80]
shr eax, 0xe
and eax, 1
cmp dword [edi + 0x644], 2
mov dword [edi + 0x6e8], eax
jne 0x462ecd
mov dword [edi + 0x6e8], 0
jmp 0x462ede
test eax, eax
je 0x462ede
push str.Device_can_gouraud_shade_alpha_n
call fcn.00453cc0
add esp, 4
mov eax, dword [ebx + 0x6c]
test eax, 0x20000
je 0x462ef8
push str.Device_can_do_anisotropic_filtering_n
call fcn.00453cc0
mov eax, dword [ebx + 0x6c]
add esp, 4
test eax, 0x400
je 0x462f0f
push str.Device_can_antialias_tris__sort_dependent__n
call fcn.00453cc0
mov eax, dword [ebx + 0x6c]
add esp, 4
test eax, 0x800
je 0x462f23
push str.Device_can_antialias_tris__sort_independent___n
call fcn.00453cc0
add esp, 4
mov eax, dword [ebx + 0x88]
and eax, 0x10
mov dword [edi + 0x6dc], eax
je 0x462f3b
push str.Device_supports_mipmapping_n
jmp 0x462f40
push str.Device_does_NOT_support_mipmapping_n
call fcn.00453cc0
add esp, 4
cmp dword [edi + 0x644], 2
jne 0x462f65
mov eax, 0x10
mov dword [edi + 0xcfc], 4
lea ecx, [eax - 0xf]
jmp 0x462fb2
mov eax, dword [ebx + 0x6c]
test al, 0x20
je 0x462f89
mov eax, 0x10
mov dword [edi + 0xcfc], 4
mov dword [edi + 0xd00], 4
mov ecx, eax
jmp 0x462fbc
test al, 0x40
je 0x462fa1
mov eax, 0x10
mov dword [edi + 0xcfc], 4
lea ecx, [eax - 0xf]
jmp 0x462fb2
mov eax, 1
mov dword [edi + 0xcfc], 0
mov ecx, eax
mov dword [edi + 0xd00], 0
movss xmm2, dword [0x55cfb8]
movd xmm0, eax
movaps xmm1, xmm2
cvtdq2ps xmm0, xmm0
push ecx
push eax
push str.Device_subpixel_resolution_:__1__d_in_X__1__d_in_Y__n
divss xmm1, xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss dword [edi + 0xd04], xmm1
divss xmm2, xmm0
movss dword [edi + 0xd08], xmm2
call fcn.00453cc0
add esp, 0xc
cmp dword [edi + 0x1da4], 0
je 0x463159
cmp dword [edi + 0x1dac], 0
je 0x463159
cmp dword [edi + 0x1db0], 0
je 0x463159
cmp dword [edi + 0x1da8], 0
je 0x463159
mov edx, dword [0x6ccd64]
mov eax, dword [edx]
mov ecx, dword [eax]
lea eax, [edi + 0x6f4]
push eax
push 0x570224
push edx
call ecx
test eax, eax
jns 0x46305a
push str.Could_not_query_colour_control_n
call fcn.00453cc0
add esp, 4
mov dword [edi + 0xd14], 0
mov eax, dword [0xad0ce8]
cmp dword [eax + 0x644], 8
jne 0x4630d3
mov dword [0x58acac], 1
push str.Gamma_ramp_not_supported_n
call fcn.00453cc0
mov dword [edi + 0x6f8], 0
add esp, 4
push str.Setting_up_renderstates_n
call fcn.00453cc0
add esp, 4
mov ecx, edi
call fcn.00463d70
test dword [edi + 0xd30], 0x800
jne 0x46317d
push str.Device_requires_page_locking_for_DMA_n
call fcn.00453cc0
add esp, 4
mov dword [0x58aca8], 1
jmp 0x463187
cmp dword [0x58acac], 0
jne 0x46307c
test dword [edi + 0xd30], 0x20000
je 0x46307c
mov edx, dword [0x6ccd64]
mov eax, dword [edx]
mov ecx, dword [eax]
lea eax, [edi + 0x6f8]
push eax
push 0x570214
push edx
call ecx
test eax, eax
js 0x46307c
push str.Gamma_ramp_detected_and_utilised_n
call fcn.00453cc0
mov eax, dword [0xad0ce8]
add esp, 4
mov ecx, dword [eax + 0x6f8]
lea eax, [edi + 0x6fc]
push eax
push 0
push ecx
mov edx, dword [ecx]
call dword [edx + 0xc]
test dword [edi + 0xd30], 0x100000
je 0x463093
push str.Colorific___Device_has_gamma_calibration_n
call fcn.00453cc0
mov dword [edi + 0xd14], 1
jmp 0x463090
push str.Fatal_error___device_does_not_support_appropriate_texture_formats_n
call fcn.00453cc0
add esp, 4
mov eax, 1
pop esi
pop ebx
pop edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
lea esp, [ebp + 0x48]
pop ebp
ret
mov dword [0x58aca8], 0
mov eax, dword [edi + 0x644]
cmp eax, 4
je 0x4631b2
cmp eax, 1
je 0x4631b2
cmp eax, 6
je 0x4631b2
push str.Assuming_Device_can_filter_alpha_n
call fcn.00453cc0
mov dword [edi + 0xd18], 1
jmp 0x4631c6
push str.Device_cannot_filter_alpha_n
call fcn.00453cc0
mov dword [edi + 0xd18], 0
add esp, 4
cmp dword [edi + 0x644], 8
jne 0x4631dc
or dword [0x5c958d], 0x80000000
push str.Creating_mouse_surface
call fcn.00453cc0
add esp, 4
call fcn.004606d0
mov esi, eax
test esi, esi
jns 0x463216
push esi
push str....Failed_with_code__x_n
call fcn.00453cc0
add esp, 8
mov eax, esi
pop esi
pop ebx
pop edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
lea esp, [ebp + 0x48]
pop ebp
ret
push str....Passed_n
call fcn.00453cc0
add esp, 4
xor eax, eax
pop esi
pop ebx
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
lea esp, [ebp + 0x48]
pop ebp
ret