Function at 0x52f220
Capabilities:
Hide graphical window

Disassembly:
push ebp
xor eax, eax
mov ecx, 0xa
mov ebp, esp
push edi
push esi
lea edi, [ebp - 0x268]
push ebx
mov ebx, 0xdc
mov esi, dword fs:[0x18]
sub esp, 0x328
mov dword [ebp - 0x2e0], 0
rep stosd dword es:[edi], eax
mov ecx, 0x37
lea edi, [ebp - 0x1c4]
mov dword [ebp - 0x2dc], 0
rep stosd dword es:[edi], eax
mov edi, dword [sym.imp.user32.dll_EnumDisplaySettingsW]
lea eax, [ebp - 0x1c4]
mov word [ebp - 0x180], bx
mov dword [esp + 8], eax
mov dword [esp + 4], 0xffffffff
mov dword [esp], 0
mov dword [ebp - 0x2f4], edi
call edi
sub esp, 0xc
mov ebx, eax
mov eax, 0xc35
call fcn.004e5d30
mov eax, dword [esi + 0x34]
mov dword [esp], ebx
mov dword [esp + 4], str.EnumDisplaySettingsW_failed__error__lu._n
mov dword [esp + 8], eax
call fcn.004e6560
mov eax, 0xc36
call fcn.004e5d30
mov edx, 0x5e83e0
lea eax, [ebp - 0x1c4]
call fcn.004e5160
mov dword [esp + 4], str.Got_a_different_mode._n
mov dword [esp], eax
call fcn.004e6560
lea eax, [ebp - 0x1c4]
mov dword [esp + 4], 0xfffffffe
mov dword [esp + 8], eax
mov dword [esp], 0
call edi
sub esp, 0xc
mov ebx, eax
mov eax, 0xc38
call fcn.004e5d30
mov eax, dword [esi + 0x34]
mov dword [esp], ebx
mov dword [esp + 4], str.EnumDisplaySettingsW_failed__error__lu._n
mov dword [esp + 8], eax
call fcn.004e6560
mov eax, 0xc39
call fcn.004e5d30
mov edx, 0x5e83e0
lea eax, [ebp - 0x1c4]
call fcn.004e5160
mov dword [esp + 4], str.Got_a_different_mode._n
mov dword [esp], eax
call fcn.004e6560
lea edx, [ebp - 0x2dc]
lea eax, [ebp - 0x2e0]
call fcn.004e5a90
mov ebx, eax
mov eax, 0xc3c
call fcn.004e5d30
mov dword [esp], ebx
mov dword [esp + 4], str.Failed_to_save_original_display_modes._n
call fcn.004e6560
call fcn.004e51e0
mov esi, eax
mov eax, 0xc3f
call fcn.004e5d30
xor eax, eax
test esi, esi
mov dword [esp + 4], str.Failed_to_create_a_ddraw_object._n
setne al
mov dword [esp], eax
call fcn.004e6560
lea edx, [ebp - 0x294]
mov dword [ebp - 0x294], 0
mov dword [ebp - 0x290], 0
mov dword [ebp - 0x28c], 0
mov dword [ebp - 0x288], 0
mov eax, dword [esi]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], 0x4e5230
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], esi
call dword [eax + 0x20]
sub esp, 0x14
mov ebx, eax
mov eax, 0xc43
call fcn.004e5d30
mov dword [esp + 8], ebx
not ebx
shr ebx, 0x1f
mov dword [esp + 4], str.Failed_to_enumerate_display_mode__hr__lx._n
mov dword [esp], ebx
call fcn.004e6560
mov eax, dword [esi]
mov dword [esp], esi
call dword [eax + 8]
sub esp, 4
mov ebx, eax
mov eax, 0xc45
call fcn.004e5d30
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_refcount__lu._n
mov dword [esp], eax
call fcn.004e6560
mov edx, dword [ebp - 0x288]
test edx, edx
je 0x534380
mov eax, dword [0x5e8490]
mov ecx, 0x37
mov edi, dword [0x5e8490]
mov dword [ebp - 0x2a8], edx
mov esi, dword [0x5e848c]
mov dword [ebp - 0x2d4], 0
mov dword [ebp - 0x2f0], eax
mov eax, dword [ebp - 0x294]
mov dword [ebp - 0x2c8], edi
lea edi, [ebp - 0x1c4]
mov ebx, dword [0x5e848c]
mov dword [ebp - 0x2bc], eax
mov eax, dword [ebp - 0x290]
mov dword [ebp - 0x2cc], esi
mov esi, dword [ebp - 0x28c]
mov dword [ebp - 0x2b8], eax
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, 0xdc
mov dword [ebp - 0x114], edx
mov word [ebp - 0x180], cx
lea ecx, [ebp - 0x1c4]
mov dword [ebp - 0x2ac], esi
mov dword [ebp - 0x118], esi
mov dword [ebp - 0x2d0], 0
mov dword [ebp - 0x2c4], 0
mov dword [ebp - 0x2c0], 0
mov dword [ebp - 0x2b4], 0
mov dword [ebp - 0x2b0], 0
mov dword [ebp - 0x17c], 0x180000
mov dword [esp], ecx
mov ecx, dword [sym.imp.user32.dll_ChangeDisplaySettingsW]
mov dword [esp + 4], 4
mov dword [ebp - 0x2f8], ecx
call ecx
sub esp, 8
mov esi, eax
mov eax, 0xc58
call fcn.004e5d30
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Failed_to_change_display_mode__ret__lx._n
mov dword [esp], eax
call fcn.004e6560
call fcn.004e51e0
mov edi, eax
mov eax, 0xc5b
call fcn.004e5d30
xor eax, eax
test edi, edi
mov dword [esp + 4], str.Failed_to_create_a_ddraw_object._n
setne al
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xc5f
mov dword [ebp - 0x264], 0x4eebd0
mov dword [ebp - 0x244], str.ddraw_test_wndproc_wc
call fcn.004e5d30
lea ecx, [ebp - 0x268]
mov esi, dword [sym.imp.user32.dll_RegisterClassA]
mov dword [esp], ecx
call esi
sub esp, 4
movzx eax, ax
mov dword [esp], eax
mov dword [esp + 4], str.Failed_to_register_window_class._n
call fcn.004e6560
mov eax, 0xc62
mov dword [ebp - 0x264], 0x4eeb60
mov dword [ebp - 0x244], str.ddraw_test_wndproc_wc2
call fcn.004e5d30
lea ecx, [ebp - 0x268]
mov dword [esp], ecx
call esi
sub esp, 4
movzx eax, ax
mov dword [esp + 4], str.Failed_to_register_window_class._n
mov dword [esp], eax
call fcn.004e6560
mov esi, dword [sym.imp.user32.dll_CreateWindowExA]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0x64
mov dword [esp + 0x18], 0x64
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0xcf0000
mov dword [esp + 8], 0x57df40
mov dword [esp + 4], str.ddraw_test_wndproc_wc
mov dword [esp], 0
call esi
sub esp, 0x30
mov dword [ebp - 0x2e4], eax
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0x64
mov dword [esp + 0x18], 0x64
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0xcf0000
mov dword [esp + 8], 0x57df40
mov dword [esp + 4], str.ddraw_test_wndproc_wc2
mov dword [esp], 0
call esi
sub esp, 0x30
mov dword [ebp - 0x300], eax
mov eax, dword [edi]
mov dword [esp + 8], 0x11
mov ecx, dword [ebp - 0x2e4]
mov dword [esp + 4], ecx
mov dword [ebp - 0x2e8], edi
mov dword [esp], edi
call dword [eax + 0x50]
sub esp, 0xc
mov esi, eax
mov eax, 0xc6a
call fcn.004e5d30
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], str.SetCooperativeLevel_failed__hr__lx._n
mov dword [esp], esi
lea esi, [ebp - 0x2a4]
call fcn.004e6560
mov dword [esp + 4], esi
mov esi, dword [sym.imp.user32.dll_GetWindowRect]
mov ecx, dword [ebp - 0x2e4]
mov dword [esp], ecx
mov dword [ebp - 0x2ec], esi
call esi
mov eax, 0xc6d
sub esp, 8
call fcn.004e5d30
lea edx, [ebp - 0x2a4]
mov eax, edx
call fcn.004e5d90
lea edx, [ebp - 0x2b4]
mov edi, eax
mov eax, edx
call fcn.004e5d90
lea edx, [ebp - 0x2b4]
mov dword [esp + 4], edx
lea edx, [ebp - 0x2a4]
mov esi, eax
mov dword [esp], edx
call fcn.004e5070
sub esp, 8
mov dword [esp + 0xc], edi
lea edi, [ebp - 0x238]
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], str.Expected__s__got__s._n
call fcn.004e6560
xor eax, eax
mov ecx, 0x1d
mov dword [ebp - 0x240], 0x7c
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x2e8]
mov dword [ebp - 0x23c], 1
lea edx, [ebp - 0x2d8]
mov dword [ebp - 0x1d8], 0x200
mov eax, dword [edi]
mov dword [esp + 8], edx
lea edx, [ebp - 0x240]
mov dword [esp + 4], edx
mov dword [esp], edi
lea edi, [ebp - 0x240]
mov dword [esp + 0xc], 0
call dword [eax + 0x18]
sub esp, 0x10
mov esi, eax
mov eax, 0xc76
call fcn.004e5d30
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], str.Failed_to_create_surface__hr__lx._n
mov dword [esp], esi
call fcn.004e6560
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax]
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [edx + 0x58]
sub esp, 8
mov esi, eax
mov eax, 0xc78
call fcn.004e5d30
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], str.Failed_to_get_surface_desc__hr__lx._n
mov dword [esp], esi
call fcn.004e6560
mov eax, 0xc79
call fcn.004e5d30
mov edx, dword [ebp - 0x234]
mov eax, dword [ebp - 0x28c]
mov dword [esp + 4], str.Expected_surface_width__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xc7b
call fcn.004e5d30
mov edx, dword [ebp - 0x238]
mov eax, dword [ebp - 0x288]
mov dword [esp + 4], str.Expected_surface_height__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
lea edx, [ebp - 0x2a4]
mov dword [esp + 4], edx
mov ecx, dword [ebp - 0x2e4]
mov dword [esp], ecx
mov esi, dword [ebp - 0x2ec]
call esi
mov eax, 0xc7f
sub esp, 8
call fcn.004e5d30
lea eax, [ebp - 0x2a4]
call fcn.004e5d90
mov edi, eax
lea eax, [ebp - 0x2b4]
call fcn.004e5d90
lea ecx, [ebp - 0x2b4]
mov dword [esp + 4], ecx
lea ecx, [ebp - 0x2a4]
mov esi, eax
mov dword [esp], ecx
call fcn.004e5070
sub esp, 8
mov dword [esp + 0xc], edi
mov dword [esp + 8], esi
mov dword [esp + 4], str.Expected__s__got__s._n
mov dword [esp], eax
call fcn.004e6560
lea ecx, [ebp - 0x284]
mov dword [esp + 0x10], 0
mov dword [esp], ecx
mov ecx, dword [sym.imp.user32.dll_PeekMessageA]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [ebp - 0x2fc], ecx
call ecx
mov eax, dword [ebp - 0x2d8]
mov dword [0x5e83cc], 0x589a60
mov dword [0x5e83c0], 0
sub esp, 0x14
mov dword [0x5e83c4], 0
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 0x60]
sub esp, 4
mov esi, eax
mov eax, 0xc88
call fcn.004e5d30
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Got_unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004e6560
mov ecx, dword [ebp - 0x290]
mov edx, dword [ebp - 0x294]
mov eax, dword [ebp - 0x2e8]
call fcn.004e57d0
mov esi, eax
mov eax, 0xc8a
call fcn.004e5d30
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], str.Failed_to_set_display_mode__hr__lx._n
mov dword [esp], esi
call fcn.004e6560
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 0x60]
sub esp, 4
mov esi, eax
mov eax, 0xc8c
call fcn.004e5d30
xor eax, eax
cmp esi, 0x887601c2
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Got_unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xc8e
call fcn.004e5d30
mov eax, dword [0x5e83cc]
mov eax, dword [eax]
mov dword [esp + 4], str.Expected_message__x__but_didnt_receive_it._n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xc90
mov dword [0x5e83cc], 0
call fcn.004e5d30
mov edx, dword [0x5e83c0]
xor ecx, ecx
mov eax, dword [ebp - 0x294]
mov edi, dword [0x5e83c4]
mov esi, dword [ebp - 0x290]
cmp edx, eax
je 0x534330
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], edi
lea edi, [ebp - 0x2a4]
mov dword [esp + 0xc], esi
lea esi, [ebp - 0x2c4]
mov dword [esp + 8], eax
mov dword [esp], ecx
mov dword [esp + 4], str.Expected_screen_size__lux_lu__got__lux_lu._n
call fcn.004e6560
lea eax, [ebp - 0x2a4]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2e4]
mov dword [esp], eax
mov ecx, dword [ebp - 0x2ec]
call ecx
mov eax, 0xc95
sub esp, 8
call fcn.004e5d30
mov eax, edi
call fcn.004e5d90
mov edi, eax
mov eax, esi
call fcn.004e5d90
lea edx, [ebp - 0x2c4]
mov dword [esp + 4], edx
lea edx, [ebp - 0x2a4]
mov esi, eax
mov dword [esp], edx
call fcn.004e5070
sub esp, 8
mov dword [esp + 0xc], edi
lea edi, [ebp - 0x240]
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], str.Expected__s__got__s._n
call fcn.004e6560
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax]
mov dword [esp + 4], edi
lea edi, [ebp - 0x238]
mov dword [esp], eax
call dword [edx + 0x58]
sub esp, 8
mov esi, eax
mov eax, 0xc99
call fcn.004e5d30
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], str.Failed_to_get_surface_desc__hr__lx._n
mov dword [esp], esi
lea esi, [ebp - 0x2d8]
call fcn.004e6560
mov eax, 0xc9a
call fcn.004e5d30
mov edx, dword [ebp - 0x234]
mov eax, dword [ebp - 0x28c]
mov dword [esp + 4], str.Expected_surface_width__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xc9c
call fcn.004e5d30
mov edx, dword [ebp - 0x238]
mov eax, dword [ebp - 0x288]
mov dword [esp + 4], str.Expected_surface_height__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
xor eax, eax
mov ecx, 0x1d
mov dword [ebp - 0x240], 0x7c
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x2e8]
sub esp, 4
mov dword [ebp - 0x23c], 1
mov dword [ebp - 0x1d8], 0x200
mov eax, dword [edi]
mov dword [esp + 8], esi
lea esi, [ebp - 0x240]
mov dword [esp + 4], esi
mov dword [esp], edi
lea edi, [ebp - 0x240]
mov dword [esp + 0xc], 0
call dword [eax + 0x18]
sub esp, 0x10
mov esi, eax
mov eax, 0xca6
call fcn.004e5d30
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], str.Failed_to_create_surface__hr__lx._n
mov dword [esp], esi
call fcn.004e6560
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax]
mov dword [esp + 4], edi
lea edi, [ebp - 0x2a4]
mov dword [esp], eax
call dword [edx + 0x58]
sub esp, 8
mov esi, eax
mov eax, 0xca8
call fcn.004e5d30
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], str.Failed_to_get_surface_desc__hr__lx._n
mov dword [esp], esi
call fcn.004e6560
mov eax, 0xca9
call fcn.004e5d30
mov edx, dword [ebp - 0x234]
mov eax, dword [ebp - 0x294]
mov dword [esp + 4], str.Expected_surface_width__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xcab
call fcn.004e5d30
mov edx, dword [ebp - 0x238]
mov eax, dword [ebp - 0x290]
mov dword [esp + 4], str.Expected_surface_height__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov dword [esp + 4], edi
mov eax, dword [ebp - 0x2e4]
mov dword [esp], eax
mov ecx, dword [ebp - 0x2ec]
call ecx
mov eax, 0xcaf
sub esp, 8
call fcn.004e5d30
mov eax, edi
call fcn.004e5d90
mov edi, eax
lea eax, [ebp - 0x2c4]
call fcn.004e5d90
mov esi, eax
lea eax, [ebp - 0x2c4]
mov dword [esp + 4], eax
lea eax, [ebp - 0x2a4]
mov dword [esp], eax
call fcn.004e5070
sub esp, 8
mov dword [esp + 0xc], edi
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], str.Expected__s__got__s._n
call fcn.004e6560
lea eax, [ebp - 0x284]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, dword [ebp - 0x2fc]
call eax
mov eax, dword [ebp - 0x2d8]
mov dword [0x5e83cc], 0x589a60
mov dword [0x5e83c0], 0
sub esp, 0x14
mov dword [0x5e83c4], 0
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 0x60]
sub esp, 4
mov esi, eax
mov eax, 0xcb8
call fcn.004e5d30
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Got_unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004e6560
lea eax, [ebp - 0x1c4]
mov dword [esp + 4], 4
mov dword [esp], eax
mov eax, dword [ebp - 0x2f8]
call eax
sub esp, 8
mov esi, eax
mov eax, 0xcba
call fcn.004e5d30
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Failed_to_change_display_mode__ret__lx._n
mov dword [esp], eax
call fcn.004e6560
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 0x60]
sub esp, 4
mov esi, eax
mov eax, 0xcbc
call fcn.004e5d30
xor eax, eax
cmp esi, 0x887601c2
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Got_unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xcbe
call fcn.004e5d30
mov eax, dword [0x5e83cc]
mov eax, dword [eax]
mov dword [esp + 4], str.Expected_message__x__but_didnt_receive_it._n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xcc0
mov dword [0x5e83cc], 0
call fcn.004e5d30
mov edx, dword [0x5e83c0]
xor ecx, ecx
mov eax, dword [ebp - 0x28c]
mov edi, dword [0x5e83c4]
mov esi, dword [ebp - 0x288]
cmp edx, eax
je 0x534320
mov dword [esp + 0x10], edx
mov dword [esp], ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov dword [esp + 4], str.Expected_screen_size__lux_lu__got__lux_lu._n
call fcn.004e6560
lea eax, [ebp - 0x2a4]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2e4]
mov dword [esp], eax
mov eax, dword [ebp - 0x2ec]
call eax
mov eax, 0xcc5
sub esp, 8
call fcn.004e5d30
lea eax, [ebp - 0x2a4]
call fcn.004e5d90
mov edi, eax
lea eax, [ebp - 0x2b4]
call fcn.004e5d90
mov esi, eax
lea eax, [ebp - 0x2b4]
mov dword [esp + 4], eax
lea eax, [ebp - 0x2a4]
mov dword [esp], eax
call fcn.004e5070
sub esp, 8
mov dword [esp + 0xc], edi
lea edi, [ebp - 0x1c4]
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], str.Expected__s__got__s._n
call fcn.004e6560
mov eax, dword [ebp - 0x2e8]
mov dword [0x5e83cc], 0x5899a0
mov dword [0x5e83c8], eax
call dword [sym.imp.user32.dll_GetDesktopWindow]
mov dword [esp], eax
call dword [sym.imp.user32.dll_SetForegroundWindow]
sub esp, 4
mov esi, eax
mov eax, 0xccb
call fcn.004e5d30
mov dword [esp], esi
mov dword [esp + 4], str.Failed_to_set_foreground_window._n
call fcn.004e6560
mov eax, 0xccc
call fcn.004e5d30
mov eax, dword [0x5e83cc]
mov eax, dword [eax]
mov dword [esp + 4], str.Expected_message__x__but_didnt_receive_it._n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
xor eax, eax
mov ecx, 0x37
mov edx, 0xdc
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x1c4]
mov word [ebp - 0x180], dx
mov dword [0x5e83c8], 0
mov dword [esp + 8], eax
mov dword [esp + 4], 0xffffffff
mov dword [esp], 0
mov eax, dword [ebp - 0x2f4]
call eax
sub esp, 0xc
mov esi, eax
mov eax, 0xcd2
call fcn.004e5d30
mov dword [esp + 4], str.Failed_to_get_display_mode._n
mov dword [esp], esi
call fcn.004e6560
mov eax, 0xcd3
call fcn.004e5d30
mov ecx, dword [ebp - 0x114]
mov eax, dword [ebp - 0x118]
xor edx, edx
cmp eax, dword [0x5e848c]
je 0x534310
mov dword [esp + 0xc], ecx
mov dword [esp], edx
mov dword [esp + 8], eax
mov dword [esp + 4], str.Got_unexpected_screen_size__lux_lu._n
call fcn.004e6560
mov edi, dword [sym.imp.user32.dll_ShowWindow]
mov dword [0x5e83cc], 0x589900
mov dword [esp + 4], 9
mov esi, dword [ebp - 0x2e4]
mov dword [esp], esi
call edi
mov eax, 0xcd9
sub esp, 8
call fcn.004e5d30
mov eax, dword [0x5e83cc]
mov eax, dword [eax]
mov dword [esp + 4], str.Expected_message__x__but_didnt_receive_it._n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
lea eax, [ebp - 0x2a4]
mov dword [esp], esi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2ec]
call eax
mov eax, 0xcdc
sub esp, 8
call fcn.004e5d30
lea eax, [ebp - 0x2a4]
call fcn.004e5d90
mov dword [ebp - 0x304], eax
lea eax, [ebp - 0x2c4]
call fcn.004e5d90
mov esi, eax
lea eax, [ebp - 0x2c4]
mov dword [esp + 4], eax
lea eax, [ebp - 0x2a4]
mov dword [esp], eax
call fcn.004e5070
mov edx, dword [ebp - 0x304]
sub esp, 8
mov dword [esp + 0xc], edx
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], str.Expected__s__got__s._n
call fcn.004e6560
lea eax, [ebp - 0x1c4]
mov dword [esp + 4], 0xffffffff
mov dword [esp + 8], eax
mov dword [esp], 0
mov eax, dword [ebp - 0x2f4]
call eax
sub esp, 0xc
mov esi, eax
mov eax, 0xcdf
call fcn.004e5d30
mov dword [esp + 4], str.Failed_to_get_display_mode._n
mov dword [esp], esi
call fcn.004e6560
mov eax, 0xce0
call fcn.004e5d30
mov ecx, dword [ebp - 0x114]
mov eax, dword [ebp - 0x118]
xor edx, edx
cmp eax, dword [ebp - 0x294]
je 0x5342f8
mov dword [esp], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 8], eax
mov dword [esp + 4], str.Got_unexpected_screen_size__lux_lu._n
call fcn.004e6560
mov ecx, dword [ebp - 0x2e8]
mov eax, dword [ecx]
mov dword [esp + 8], 0x11
mov esi, dword [ebp - 0x2e4]
mov dword [esp], ecx
mov dword [esp + 4], esi
call dword [eax + 0x50]
sub esp, 0xc
mov esi, eax
mov eax, 0xce5
call fcn.004e5d30
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], str.SetCooperativeLevel_failed__hr__lx._n
mov dword [esp], esi
call fcn.004e6560
mov dword [0x5e83cc], 0x5898a0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xf020
mov dword [esp + 4], 0x112
mov esi, dword [ebp - 0x2e4]
mov dword [esp], esi
mov esi, dword [sym.imp.user32.dll_SendMessageA]
call esi
mov eax, 0xced
sub esp, 0x10
call fcn.004e5d30
mov eax, dword [0x5e83cc]
mov eax, dword [eax]
mov dword [esp + 4], str.Expected_message__x__but_didnt_receive_it._n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov dword [0x5e83cc], 0x589840
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xf120
mov dword [esp + 4], 0x112
mov eax, dword [ebp - 0x2e4]
mov dword [esp], eax
call esi
mov eax, 0xcf2
sub esp, 0x10
call fcn.004e5d30
mov eax, dword [0x5e83cc]
mov eax, dword [eax]
mov dword [esp + 4], str.Expected_message__x__but_didnt_receive_it._n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov dword [0x5e83cc], 0x5897e0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xf030
mov dword [esp + 4], 0x112
mov eax, dword [ebp - 0x2e4]
mov dword [esp], eax
call esi
mov eax, 0xcf7
sub esp, 0x10
call fcn.004e5d30
mov eax, dword [0x5e83cc]
mov eax, dword [eax]
mov dword [esp + 4], str.Expected_message__x__but_didnt_receive_it._n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov ecx, dword [ebp - 0x2e8]
mov dword [0x5e83cc], 0
mov eax, dword [ecx]
mov dword [esp + 8], 0x11
mov esi, dword [ebp - 0x2e4]
mov dword [esp], ecx
mov dword [esp + 4], esi
call dword [eax + 0x50]
sub esp, 0xc
mov esi, eax
mov eax, 0xcfb
call fcn.004e5d30
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], str.SetCooperativeLevel_failed__hr__lx._n
mov dword [esp], esi
call fcn.004e6560
lea eax, [ebp - 0x284]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, dword [ebp - 0x2fc]
call eax
mov eax, dword [ebp - 0x2d8]
mov dword [0x5e83cc], 0x589a60
mov dword [0x5e83c0], 0
sub esp, 0x14
mov dword [0x5e83c4], 0
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 0x60]
sub esp, 4
mov esi, eax
mov eax, 0xd03
call fcn.004e5d30
xor eax, eax
cmp esi, 0x887601c2
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Got_unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004e6560
mov ecx, dword [ebp - 0x2e8]
mov eax, dword [ecx]
mov dword [esp], ecx
call dword [eax + 0x4c]
sub esp, 4
mov esi, eax
mov eax, 0xd05
call fcn.004e5d30
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], str.RestoreDisplayMode_failed__hr__lx._n
mov dword [esp], esi
call fcn.004e6560
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 0x60]
sub esp, 4
mov esi, eax
mov eax, 0xd07
call fcn.004e5d30
xor eax, eax
cmp esi, 0x887601c2
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Got_unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004e6560
call fcn.0054f6e0
mov edx, dword [eax + 8]
mov dword [eax + 0xc], 1
lea edx, [edx + edx + 1]
mov dword [eax + 8], edx
jmp 0x53051d
call fcn.0054f6e0
mov dword [eax], 0x57df88
mov dword [eax + 4], 0xd0a
mov eax, dword [0x5e83cc]
mov eax, dword [eax]
mov dword [esp + 4], str.Expected_message__x__but_didnt_receive_it._n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
call fcn.0054f6e0
shr dword [eax + 8], 1
call fcn.0054f6e0
mov edx, dword [eax + 0xc]
mov dword [eax + 0xc], 0
test edx, edx
jne 0x5304e0
mov dword [0x5e83cc], 0
call fcn.0054f6e0
mov dword [ebp - 0x304], ebx
mov edx, dword [eax + 8]
mov dword [eax + 0xc], 1
lea edx, [edx + edx + 1]
mov dword [eax + 8], edx
jmp 0x5305be
call fcn.0054f6e0
mov edx, dword [0x5e83c0]
mov esi, dword [0x5e83c4]
xor ecx, ecx
mov dword [eax], 0x57df88
mov dword [eax + 4], 0xd0d
mov eax, dword [0x5e848c]
mov ebx, dword [0x5e8490]
cmp edx, eax
jne 0x530596
xor ecx, ecx
cmp ebx, esi
sete cl
mov dword [esp + 0x10], edx
mov dword [esp + 8], eax
mov dword [esp], ecx
mov dword [esp + 0x14], esi
mov dword [esp + 0xc], ebx
mov dword [esp + 4], str.Expected_screen_size__lux_lu__got__lux_lu._n
call fcn.004e6560
call fcn.0054f6e0
shr dword [eax + 8], 1
call fcn.0054f6e0
mov edx, dword [eax + 0xc]
mov dword [eax + 0xc], 0
test edx, edx
jne 0x530560
lea eax, [ebp - 0x2a4]
mov ebx, dword [ebp - 0x304]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2e4]
mov dword [esp], eax
mov eax, dword [ebp - 0x2ec]
call eax
sub esp, 8
call fcn.0054f6e0
mov dword [ebp - 0x304], edi
mov esi, dword [ebp - 0x2f0]
mov edx, dword [eax + 8]
mov dword [eax + 0xc], 1
lea edx, [edx + edx + 1]
mov dword [eax + 8], edx
jmp 0x530640
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], edi
mov dword [esp + 4], str.Expected__s__got__s._n
call fcn.004e6560
call fcn.0054f6e0
shr dword [eax + 8], 1
call fcn.0054f6e0
mov edx, dword [eax + 0xc]
mov dword [eax + 0xc], 0
test edx, edx
je 0x5306f0
mov eax, 0xd14
call fcn.004e5d30
mov eax, dword [ebp - 0x298]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x29c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x2a0]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2a4]
mov dword [esp], str.__d__d____d__d_
mov dword [esp + 4], eax
call fcn.004e5d50
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebx
mov edi, eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], str.__d__d____d__d_
call fcn.004e5d50
mov ecx, dword [ebp - 0x2a4]
xor edx, edx
cmp ebx, dword [ebp - 0x29c]
jne 0x530620
or ecx, dword [ebp - 0x2a0]
jne 0x530620
xor edx, edx
cmp dword [ebp - 0x298], esi
sete dl
jmp 0x530620
mov eax, dword [ebp - 0x2d8]
lea ecx, [ebp - 0x240]
mov edi, dword [ebp - 0x304]
mov edx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0x58]
sub esp, 8
mov esi, eax
mov eax, 0xd18
call fcn.004e5d30
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], str.Failed_to_get_surface_desc__hr__lx._n
mov dword [esp], esi
call fcn.004e6560
mov eax, 0xd19
call fcn.004e5d30
mov edx, dword [ebp - 0x234]
mov eax, dword [ebp - 0x294]
mov dword [esp + 4], str.Expected_surface_width__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xd1b
call fcn.004e5d30
mov edx, dword [ebp - 0x238]
mov eax, dword [ebp - 0x290]
mov dword [esp + 4], str.Expected_surface_height__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
mov dword [esp + 4], 4
mov dword [esp], 0
mov eax, dword [ebp - 0x2f8]
call eax
sub esp, 8
mov esi, eax
mov eax, 0xd21
call fcn.004e5d30
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Failed_to_change_display_mode__ret__lx._n
mov dword [esp], eax
call fcn.004e6560
call fcn.004e5660
mov eax, dword [ebp - 0x2e4]
mov dword [esp], eax
call dword [sym.imp.user32.dll_IsIconic]
sub esp, 4
test eax, eax
jne 0x534360
xor eax, eax
mov ecx, 0x1d
lea edi, [ebp - 0x238]
mov dword [ebp - 0x240], 0x7c
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 0x2e8]
mov dword [ebp - 0x23c], 1
lea edi, [ebp - 0x2d8]
mov dword [ebp - 0x1d8], 0x200
mov eax, dword [ecx]
mov dword [esp + 8], edi
lea edi, [ebp - 0x240]
mov dword [esp], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 4], edi
call dword [eax + 0x18]
sub esp, 0x10
mov esi, eax
mov eax, 0xd30
call fcn.004e5d30
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], str.Failed_to_create_surface__hr__lx._n
mov dword [esp], esi
call fcn.004e6560
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax]
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [edx + 0x58]
sub esp, 8
mov esi, eax
mov eax, 0xd32
call fcn.004e5d30
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], str.Failed_to_get_surface_desc__hr__lx._n
mov dword [esp], esi
call fcn.004e6560
mov eax, 0xd33
call fcn.004e5d30
mov edx, dword [ebp - 0x234]
mov eax, dword [0x5e848c]
mov dword [esp + 4], str.Expected_surface_width__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xd35
call fcn.004e5d30
mov edx, dword [ebp - 0x238]
mov eax, dword [0x5e8490]
mov dword [esp + 4], str.Expected_surface_height__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
lea eax, [ebp - 0x2a4]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2e4]
mov dword [esp], eax
mov eax, dword [ebp - 0x2ec]
call eax
sub esp, 8
call fcn.0054f6e0
mov esi, dword [ebp - 0x2f0]
mov edx, dword [eax + 8]
mov dword [eax + 0xc], 1
lea edx, [edx + edx + 1]
mov dword [eax + 8], edx
jmp 0x530998
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], edi
mov dword [esp + 4], str.Expected__s__got__s._n
call fcn.004e6560
call fcn.0054f6e0
shr dword [eax + 8], 1
call fcn.0054f6e0
mov edx, dword [eax + 0xc]
mov dword [eax + 0xc], 0
test edx, edx
je 0x530a50
call fcn.0054f6e0
mov dword [eax], 0x57df88
mov dword [eax + 4], 0xd3a
mov eax, dword [ebp - 0x298]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x29c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x2a0]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2a4]
mov dword [esp], str.__d__d____d__d_
mov dword [esp + 4], eax
call fcn.004e5d50
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebx
mov edi, eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], str.__d__d____d__d_
call fcn.004e5d50
mov ecx, dword [ebp - 0x2a4]
xor edx, edx
cmp ebx, dword [ebp - 0x29c]
jne 0x530978
or ecx, dword [ebp - 0x2a0]
jne 0x530978
xor edx, edx
cmp dword [ebp - 0x298], esi
sete dl
jmp 0x530978
mov ecx, dword [ebp - 0x2e8]
mov eax, dword [ecx]
mov dword [esp + 8], 8
mov edi, dword [ebp - 0x2e4]
mov dword [esp], ecx
mov dword [esp + 4], edi
call dword [eax + 0x50]
sub esp, 0xc
mov esi, eax
mov eax, 0xd3e
call fcn.004e5d30
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], str.SetCooperativeLevel_failed__hr__lx._n
mov dword [esp], esi
call fcn.004e6560
lea eax, [ebp - 0x2a4]
mov dword [esp], edi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2ec]
call eax
sub esp, 8
call fcn.0054f6e0
mov edi, dword [ebp - 0x2f0]
mov edx, dword [eax + 8]
mov dword [eax + 0xc], 1
lea edx, [edx + edx + 1]
mov dword [eax + 8], edx
jmp 0x530af0
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], esi
mov dword [esp + 4], str.Expected__s__got__s._n
call fcn.004e6560
call fcn.0054f6e0
shr dword [eax + 8], 1
call fcn.0054f6e0
mov esi, dword [eax + 0xc]
mov dword [eax + 0xc], 0
test esi, esi
je 0x530ba0
mov eax, 0xd42
call fcn.004e5d30
mov eax, dword [ebp - 0x298]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x29c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x2a0]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2a4]
mov dword [esp], str.__d__d____d__d_
mov dword [esp + 4], eax
call fcn.004e5d50
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], ebx
mov esi, eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], str.__d__d____d__d_
call fcn.004e5d50
mov ecx, dword [ebp - 0x2a4]
xor edx, edx
cmp ebx, dword [ebp - 0x29c]
jne 0x530ad0
or ecx, dword [ebp - 0x2a0]
jne 0x530ad0
xor edx, edx
cmp dword [ebp - 0x298], edi
sete dl
jmp 0x530ad0
mov eax, dword [ebp - 0x2d8]
lea ecx, [ebp - 0x240]
mov edx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0x58]
sub esp, 8
mov edi, eax
mov eax, 0xd46
call fcn.004e5d30
mov dword [esp + 8], edi
not edi
shr edi, 0x1f
mov dword [esp + 4], str.Failed_to_get_surface_desc__hr__lx._n
mov dword [esp], edi
lea edi, [ebp - 0x238]
call fcn.004e6560
mov eax, 0xd47
call fcn.004e5d30
mov edx, dword [ebp - 0x234]
mov eax, dword [0x5e848c]
mov dword [esp + 4], str.Expected_surface_width__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xd49
call fcn.004e5d30
mov edx, dword [ebp - 0x238]
mov eax, dword [0x5e8490]
mov dword [esp + 4], str.Expected_surface_height__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, esi
mov ecx, 0x1d
mov dword [ebp - 0x240], 0x7c
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 0x2e8]
sub esp, 4
mov dword [ebp - 0x23c], 1
mov dword [ebp - 0x1d8], 0x200
lea edi, [ebp - 0x2d8]
mov eax, dword [ecx]
mov dword [esp + 8], edi
lea edi, [ebp - 0x240]
mov dword [esp], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 4], edi
call dword [eax + 0x18]
sub esp, 0x10
mov esi, eax
mov eax, 0xd53
call fcn.004e5d30
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], str.Failed_to_create_surface__hr__lx._n
mov dword [esp], esi
call fcn.004e6560
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax]
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [edx + 0x58]
sub esp, 8
mov esi, eax
mov eax, 0xd55
call fcn.004e5d30
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], str.Failed_to_get_surface_desc__hr__lx._n
mov dword [esp], esi
call fcn.004e6560
mov eax, 0xd56
call fcn.004e5d30
mov edx, dword [ebp - 0x234]
mov eax, dword [0x5e848c]
mov dword [esp + 4], str.Expected_surface_width__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xd58
call fcn.004e5d30
mov edx, dword [ebp - 0x238]
mov eax, dword [0x5e8490]
mov dword [esp + 4], str.Expected_surface_height__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
lea eax, [ebp - 0x2a4]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2e4]
mov dword [esp], eax
mov eax, dword [ebp - 0x2ec]
call eax
sub esp, 8
call fcn.0054f6e0
mov esi, dword [ebp - 0x2f0]
mov edx, dword [eax + 8]
mov dword [eax + 0xc], 1
lea edx, [edx + edx + 1]
mov dword [eax + 8], edx
jmp 0x530de0
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], edi
mov dword [esp + 4], str.Expected__s__got__s._n
call fcn.004e6560
call fcn.0054f6e0
shr dword [eax + 8], 1
call fcn.0054f6e0
mov edx, dword [eax + 0xc]
mov dword [eax + 0xc], 0
test edx, edx
je 0x530e90
mov eax, 0xd5d
call fcn.004e5d30
mov eax, dword [ebp - 0x298]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x29c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x2a0]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2a4]
mov dword [esp], str.__d__d____d__d_
mov dword [esp + 4], eax
call fcn.004e5d50
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebx
mov edi, eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], str.__d__d____d__d_
call fcn.004e5d50
mov ecx, dword [ebp - 0x2a4]
xor edx, edx
cmp ebx, dword [ebp - 0x29c]
jne 0x530dc0
or ecx, dword [ebp - 0x2a0]
jne 0x530dc0
xor edx, edx
cmp dword [ebp - 0x298], esi
sete dl
jmp 0x530dc0
lea eax, [ebp - 0x284]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, dword [ebp - 0x2fc]
call eax
mov eax, dword [ebp - 0x2d8]
mov dword [0x5e83cc], 0x5897c0
mov dword [0x5e83c0], 0
sub esp, 0x14
mov dword [0x5e83c4], 0
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 0x60]
sub esp, 4
mov esi, eax
mov eax, 0xd66
call fcn.004e5d30
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Got_unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004e6560
mov eax, dword [ebp - 0x28c]
mov dword [ebp - 0x17c], 0x180000
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x288]
mov dword [ebp - 0x114], eax
lea eax, [ebp - 0x1c4]
mov dword [esp + 4], 4
mov dword [esp], eax
mov eax, dword [ebp - 0x2f8]
call eax
sub esp, 8
mov esi, eax
mov eax, 0xd6b
call fcn.004e5d30
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Failed_to_change_display_mode__ret__lx._n
mov dword [esp], eax
call fcn.004e6560
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 0x60]
mov esi, eax
mov eax, dword [0x628750]
sub esp, 4
call fcn.004e54e0
jmp 0x530fd1
mov eax, 0xd6d
call fcn.004e5d30
xor eax, eax
cmp esi, 0x887601c2
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Got_unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004e6560
call fcn.0054f6e0
shr dword [eax + 0x10], 1
call fcn.0054f6e0
mov edx, dword [eax + 0x14]
mov dword [eax + 0x14], 0
test edx, edx
jne 0x530fa0
mov eax, 0xd6f
call fcn.004e5d30
mov eax, dword [0x5e83cc]
mov eax, dword [eax]
mov dword [esp + 4], str.Expected_message__x__but_didnt_receive_it._n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xd71
mov dword [0x5e83cc], 0
call fcn.004e5d30
mov edx, dword [0x5e83c0]
mov eax, dword [0x5e83c4]
mov dword [esp + 4], str.Got_unexpected_screen_size__lux_lu._n
mov dword [esp + 0xc], eax
or eax, edx
sete al
mov dword [esp + 8], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
lea eax, [ebp - 0x2a4]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2e4]
mov dword [esp], eax
mov eax, dword [ebp - 0x2ec]
call eax
sub esp, 8
call fcn.0054f6e0
mov esi, dword [ebp - 0x2f0]
mov edx, dword [eax + 8]
mov dword [eax + 0xc], 1
lea edx, [edx + edx + 1]
mov dword [eax + 8], edx
jmp 0x5310b0
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], edi
mov dword [esp + 4], str.Expected__s__got__s._n
call fcn.004e6560
call fcn.0054f6e0
shr dword [eax + 8], 1
call fcn.0054f6e0
mov edx, dword [eax + 0xc]
mov dword [eax + 0xc], 0
test edx, edx
je 0x531168
call fcn.0054f6e0
mov dword [eax], 0x57df88
mov dword [eax + 4], 0xd75
mov eax, dword [ebp - 0x298]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x29c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x2a0]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2a4]
mov dword [esp], str.__d__d____d__d_
mov dword [esp + 4], eax
call fcn.004e5d50
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebx
mov edi, eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], str.__d__d____d__d_
call fcn.004e5d50
mov ecx, dword [ebp - 0x2a4]
xor edx, edx
cmp ebx, dword [ebp - 0x29c]
jne 0x531090
or ecx, dword [ebp - 0x2a0]
jne 0x531090
xor edx, edx
cmp dword [ebp - 0x298], esi
sete dl
jmp 0x531090
lea eax, [ebp - 0x284]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, dword [ebp - 0x2fc]
call eax
mov eax, dword [ebp - 0x2d8]
mov dword [0x5e83cc], 0x5897c0
mov dword [0x5e83c0], 0
sub esp, 0x14
mov dword [0x5e83c4], 0
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 0x6c]
sub esp, 4
mov esi, eax
mov eax, 0xd7e
call fcn.004e5d30
xor eax, eax
cmp esi, 0x8876024b
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Got_unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004e6560
mov ecx, dword [ebp - 0x290]
mov edx, dword [ebp - 0x294]
mov eax, dword [ebp - 0x2e8]
call fcn.004e57d0
mov esi, eax
mov eax, 0xd80
call fcn.004e5d30
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], str.Failed_to_set_display_mode__hr__lx._n
mov dword [esp], esi
call fcn.004e6560
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 0x6c]
sub esp, 4
mov esi, eax
mov eax, 0xd82
call fcn.004e5d30
xor eax, eax
cmp esi, 0x8876024b
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Got_unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004e6560
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 0x60]
sub esp, 4
mov esi, eax
mov eax, 0xd84
call fcn.004e5d30
xor eax, eax
cmp esi, 0x887601c2
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Got_unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xd86
call fcn.004e5d30
mov eax, dword [0x5e83cc]
mov eax, dword [eax]
mov dword [esp + 4], str.Expected_message__x__but_didnt_receive_it._n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xd88
mov dword [0x5e83cc], 0
call fcn.004e5d30
mov edx, dword [0x5e83c0]
mov eax, dword [0x5e83c4]
mov dword [esp + 4], str.Got_unexpected_screen_size__lux_lu._n
mov dword [esp + 0xc], eax
or eax, edx
sete al
mov dword [esp + 8], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
lea eax, [ebp - 0x2a4]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2e4]
mov dword [esp], eax
mov eax, dword [ebp - 0x2ec]
call eax
sub esp, 8
call fcn.0054f6e0
mov edi, dword [ebp - 0x2f0]
mov edx, dword [eax + 8]
mov dword [eax + 0xc], 1
lea edx, [edx + edx + 1]
mov dword [eax + 8], edx
jmp 0x531378
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], esi
mov dword [esp + 4], str.Expected__s__got__s._n
call fcn.004e6560
call fcn.0054f6e0
shr dword [eax + 8], 1
call fcn.0054f6e0
mov esi, dword [eax + 0xc]
mov dword [eax + 0xc], 0
test esi, esi
je 0x531430
call fcn.0054f6e0
mov dword [eax], 0x57df88
mov dword [eax + 4], 0xd8c
mov eax, dword [ebp - 0x298]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x29c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x2a0]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2a4]
mov dword [esp], str.__d__d____d__d_
mov dword [esp + 4], eax
call fcn.004e5d50
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], ebx
mov esi, eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], str.__d__d____d__d_
call fcn.004e5d50
mov ecx, dword [ebp - 0x2a4]
xor edx, edx
cmp ebx, dword [ebp - 0x29c]
jne 0x531358
or ecx, dword [ebp - 0x2a0]
jne 0x531358
xor edx, edx
cmp dword [ebp - 0x298], edi
sete dl
jmp 0x531358
mov eax, dword [ebp - 0x2d8]
lea ecx, [ebp - 0x240]
mov edx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0x58]
sub esp, 8
mov edi, eax
mov eax, 0xd90
call fcn.004e5d30
mov dword [esp + 8], edi
not edi
shr edi, 0x1f
mov dword [esp + 4], str.Failed_to_get_surface_desc__hr__lx._n
mov dword [esp], edi
lea edi, [ebp - 0x238]
call fcn.004e6560
mov eax, 0xd91
call fcn.004e5d30
mov edx, dword [ebp - 0x234]
mov eax, dword [0x5e848c]
mov dword [esp + 4], str.Expected_surface_width__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xd93
call fcn.004e5d30
mov edx, dword [ebp - 0x238]
mov eax, dword [0x5e8490]
mov dword [esp + 4], str.Expected_surface_height__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, esi
mov ecx, 0x1d
mov dword [ebp - 0x240], 0x7c
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 0x2e8]
sub esp, 4
mov dword [ebp - 0x23c], 1
mov dword [ebp - 0x1d8], 0x200
lea edi, [ebp - 0x2d8]
mov eax, dword [ecx]
mov dword [esp + 8], edi
lea edi, [ebp - 0x240]
mov dword [esp], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 4], edi
call dword [eax + 0x18]
sub esp, 0x10
mov esi, eax
mov eax, 0xd9d
call fcn.004e5d30
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], str.Failed_to_create_surface__hr__lx._n
mov dword [esp], esi
call fcn.004e6560
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax]
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [edx + 0x58]
sub esp, 8
mov esi, eax
mov eax, 0xd9f
call fcn.004e5d30
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], str.Failed_to_get_surface_desc__hr__lx._n
mov dword [esp], esi
call fcn.004e6560
mov eax, 0xda0
call fcn.004e5d30
mov edx, dword [ebp - 0x234]
mov eax, dword [ebp - 0x294]
mov dword [esp + 4], str.Expected_surface_width__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xda2
call fcn.004e5d30
mov edx, dword [ebp - 0x238]
mov eax, dword [ebp - 0x290]
mov dword [esp + 4], str.Expected_surface_height__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
lea eax, [ebp - 0x2a4]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2e4]
mov dword [esp], eax
mov eax, dword [ebp - 0x2ec]
call eax
sub esp, 8
call fcn.0054f6e0
mov esi, dword [ebp - 0x2f0]
mov edx, dword [eax + 8]
mov dword [eax + 0xc], 1
lea edx, [edx + edx + 1]
mov dword [eax + 8], edx
jmp 0x531670
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], edi
mov dword [esp + 4], str.Expected__s__got__s._n
call fcn.004e6560
call fcn.0054f6e0
shr dword [eax + 8], 1
call fcn.0054f6e0
mov edx, dword [eax + 0xc]
mov dword [eax + 0xc], 0
test edx, edx
je 0x531720
mov eax, 0xda7
call fcn.004e5d30
mov eax, dword [ebp - 0x298]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x29c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x2a0]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2a4]
mov dword [esp], str.__d__d____d__d_
mov dword [esp + 4], eax
call fcn.004e5d50
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebx
mov edi, eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], str.__d__d____d__d_
call fcn.004e5d50
mov ecx, dword [ebp - 0x2a4]
xor edx, edx
cmp ebx, dword [ebp - 0x29c]
jne 0x531650
or ecx, dword [ebp - 0x2a0]
jne 0x531650
xor edx, edx
cmp dword [ebp - 0x298], esi
sete dl
jmp 0x531650
lea eax, [ebp - 0x284]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, dword [ebp - 0x2fc]
call eax
mov eax, dword [ebp - 0x2d8]
mov dword [0x5e83cc], 0x5897c0
mov dword [0x5e83c0], 0
sub esp, 0x14
mov dword [0x5e83c4], 0
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 0x60]
sub esp, 4
mov esi, eax
mov eax, 0xdb0
call fcn.004e5d30
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Got_unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004e6560
mov ecx, dword [ebp - 0x2e8]
mov eax, dword [ecx]
mov dword [esp], ecx
call dword [eax + 0x4c]
sub esp, 4
mov esi, eax
mov eax, 0xdb2
call fcn.004e5d30
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], str.RestoreDisplayMode_failed__hr__lx._n
mov dword [esp], esi
call fcn.004e6560
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 0x60]
sub esp, 4
mov esi, eax
mov eax, 0xdb4
call fcn.004e5d30
xor eax, eax
cmp esi, 0x887601c2
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Got_unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xdb6
call fcn.004e5d30
mov eax, dword [0x5e83cc]
mov eax, dword [eax]
mov dword [esp + 4], str.Expected_message__x__but_didnt_receive_it._n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xdb8
mov dword [0x5e83cc], 0
call fcn.004e5d30
mov edx, dword [0x5e83c0]
mov eax, dword [0x5e83c4]
mov dword [esp + 4], str.Got_unexpected_screen_size__lux_lu._n
mov dword [esp + 0xc], eax
or eax, edx
sete al
mov dword [esp + 8], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
lea eax, [ebp - 0x2a4]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2e4]
mov dword [esp], eax
mov eax, dword [ebp - 0x2ec]
call eax
sub esp, 8
call fcn.0054f6e0
mov edi, dword [ebp - 0x2f0]
mov edx, dword [eax + 8]
mov dword [eax + 0xc], 1
lea edx, [edx + edx + 1]
mov dword [eax + 8], edx
jmp 0x5318e8
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], esi
mov dword [esp + 4], str.Expected__s__got__s._n
call fcn.004e6560
call fcn.0054f6e0
shr dword [eax + 8], 1
call fcn.0054f6e0
mov esi, dword [eax + 0xc]
mov dword [eax + 0xc], 0
test esi, esi
je 0x531998
mov eax, 0xdbc
call fcn.004e5d30
mov eax, dword [ebp - 0x298]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x29c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x2a0]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2a4]
mov dword [esp], str.__d__d____d__d_
mov dword [esp + 4], eax
call fcn.004e5d50
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], ebx
mov esi, eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], str.__d__d____d__d_
call fcn.004e5d50
mov ecx, dword [ebp - 0x2a4]
xor edx, edx
cmp ebx, dword [ebp - 0x29c]
jne 0x5318c8
or ecx, dword [ebp - 0x2a0]
jne 0x5318c8
xor edx, edx
cmp dword [ebp - 0x298], edi
sete dl
jmp 0x5318c8
mov eax, dword [ebp - 0x2d8]
lea ecx, [ebp - 0x240]
mov edx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0x58]
sub esp, 8
mov edi, eax
mov eax, 0xdc0
call fcn.004e5d30
mov dword [esp + 8], edi
not edi
shr edi, 0x1f
mov dword [esp + 4], str.Failed_to_get_surface_desc__hr__lx._n
mov dword [esp], edi
call fcn.004e6560
mov eax, 0xdc1
call fcn.004e5d30
mov edx, dword [ebp - 0x234]
mov eax, dword [ebp - 0x294]
mov dword [esp + 4], str.Expected_surface_width__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xdc3
call fcn.004e5d30
mov edx, dword [ebp - 0x238]
mov eax, dword [ebp - 0x290]
mov dword [esp + 4], str.Expected_surface_height__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
lea eax, [ebp - 0x1c4]
sub esp, 4
mov dword [esp + 8], eax
mov dword [esp + 4], 0xffffffff
mov dword [esp], 0
mov eax, dword [ebp - 0x2f4]
call eax
sub esp, 0xc
mov edi, eax
mov eax, 0xdc8
call fcn.004e5d30
mov dword [esp], edi
mov dword [esp + 4], str.Failed_to_get_display_mode._n
call fcn.004e6560
mov eax, 0xdc9
call fcn.004e5d30
mov edi, dword [ebp - 0x114]
mov ecx, dword [0x5e8490]
mov edx, dword [ebp - 0x118]
mov eax, dword [0x5e848c]
mov dword [esp + 4], str.Expected_resolution__lux_lu__got__lux_lu._n
cmp edi, ecx
mov dword [esp + 0xc], ecx
sete cl
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0x10], edx
movzx eax, al
mov dword [esp + 0x14], edi
and eax, ecx
mov dword [esp], eax
call fcn.004e6560
mov dword [esp + 4], 4
mov dword [esp], 0
mov eax, dword [ebp - 0x2f8]
call eax
sub esp, 8
mov edi, eax
mov eax, 0xdcf
call fcn.004e5d30
xor eax, eax
test edi, edi
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Failed_to_change_display_mode__ret__lx._n
lea edi, [ebp - 0x238]
mov dword [esp], eax
call fcn.004e6560
mov eax, esi
mov ecx, 0x1d
mov dword [ebp - 0x240], 0x7c
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 0x2e8]
mov dword [ebp - 0x23c], 1
lea edi, [ebp - 0x2d8]
mov dword [ebp - 0x1d8], 0x200
mov eax, dword [ecx]
mov dword [esp + 8], edi
lea edi, [ebp - 0x240]
mov dword [esp], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 4], edi
call dword [eax + 0x18]
sub esp, 0x10
mov esi, eax
mov eax, 0xdd7
call fcn.004e5d30
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], str.Failed_to_create_surface__hr__lx._n
mov dword [esp], esi
call fcn.004e6560
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax]
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [edx + 0x58]
sub esp, 8
mov esi, eax
mov eax, 0xdd9
call fcn.004e5d30
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], str.Failed_to_get_surface_desc__hr__lx._n
mov dword [esp], esi
call fcn.004e6560
mov eax, 0xdda
call fcn.004e5d30
mov edx, dword [ebp - 0x234]
mov eax, dword [0x5e848c]
mov dword [esp + 4], str.Expected_surface_width__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xddc
call fcn.004e5d30
mov edx, dword [ebp - 0x238]
mov eax, dword [0x5e8490]
mov dword [esp + 4], str.Expected_surface_height__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
lea eax, [ebp - 0x2a4]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2e4]
mov dword [esp], eax
mov eax, dword [ebp - 0x2ec]
call eax
sub esp, 8
call fcn.0054f6e0
mov esi, dword [ebp - 0x2f0]
mov edx, dword [eax + 8]
mov dword [eax + 0xc], 1
lea edx, [edx + edx + 1]
mov dword [eax + 8], edx
jmp 0x531ca8
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], edi
mov dword [esp + 4], str.Expected__s__got__s._n
call fcn.004e6560
call fcn.0054f6e0
shr dword [eax + 8], 1
call fcn.0054f6e0
mov edx, dword [eax + 0xc]
mov dword [eax + 0xc], 0
test edx, edx
je 0x531d60
call fcn.0054f6e0
mov dword [eax], 0x57df88
mov dword [eax + 4], 0xde1
mov eax, dword [ebp - 0x298]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x29c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x2a0]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2a4]
mov dword [esp], str.__d__d____d__d_
mov dword [esp + 4], eax
call fcn.004e5d50
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebx
mov edi, eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], str.__d__d____d__d_
call fcn.004e5d50
mov ecx, dword [ebp - 0x2a4]
xor edx, edx
cmp ebx, dword [ebp - 0x29c]
jne 0x531c88
or ecx, dword [ebp - 0x2a0]
jne 0x531c88
xor edx, edx
cmp dword [ebp - 0x298], esi
sete dl
jmp 0x531c88
mov ecx, dword [ebp - 0x2e8]
mov eax, dword [ecx]
mov dword [esp + 8], 9
mov edi, dword [ebp - 0x2e4]
mov dword [esp], ecx
mov dword [esp + 4], edi
call dword [eax + 0x50]
sub esp, 0xc
mov esi, eax
mov eax, 0xde8
call fcn.004e5d30
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], str.SetCooperativeLevel_failed__hr__lx._n
mov dword [esp], esi
call fcn.004e6560
lea eax, [ebp - 0x2a4]
mov dword [esp], edi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2ec]
call eax
sub esp, 8
call fcn.0054f6e0
mov edi, dword [ebp - 0x2f0]
mov edx, dword [eax + 8]
mov dword [eax + 0xc], 1
lea edx, [edx + edx + 1]
mov dword [eax + 8], edx
jmp 0x531e00
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], esi
mov dword [esp + 4], str.Expected__s__got__s._n
call fcn.004e6560
call fcn.0054f6e0
shr dword [eax + 8], 1
call fcn.0054f6e0
mov esi, dword [eax + 0xc]
mov dword [eax + 0xc], 0
test esi, esi
je 0x531eb8
call fcn.0054f6e0
mov dword [eax], 0x57df88
mov dword [eax + 4], 0xdec
mov eax, dword [ebp - 0x298]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x29c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x2a0]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2a4]
mov dword [esp], str.__d__d____d__d_
mov dword [esp + 4], eax
call fcn.004e5d50
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], ebx
mov esi, eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], str.__d__d____d__d_
call fcn.004e5d50
mov ecx, dword [ebp - 0x2a4]
xor edx, edx
cmp ebx, dword [ebp - 0x29c]
jne 0x531de0
or ecx, dword [ebp - 0x2a0]
jne 0x531de0
xor edx, edx
cmp dword [ebp - 0x298], edi
sete dl
jmp 0x531de0
mov eax, dword [ebp - 0x2d8]
lea ecx, [ebp - 0x240]
mov edx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0x58]
sub esp, 8
mov edi, eax
mov eax, 0xdf0
call fcn.004e5d30
mov dword [esp + 8], edi
not edi
shr edi, 0x1f
mov dword [esp + 4], str.Failed_to_get_surface_desc__hr__lx._n
mov dword [esp], edi
lea edi, [ebp - 0x238]
call fcn.004e6560
mov eax, 0xdf1
call fcn.004e5d30
mov edx, dword [ebp - 0x234]
mov eax, dword [0x5e848c]
mov dword [esp + 4], str.Expected_surface_width__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xdf3
call fcn.004e5d30
mov edx, dword [ebp - 0x238]
mov eax, dword [0x5e8490]
mov dword [esp + 4], str.Expected_surface_height__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, esi
mov ecx, 0x1d
mov dword [ebp - 0x240], 0x7c
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 0x2e8]
sub esp, 4
mov dword [ebp - 0x23c], 1
mov dword [ebp - 0x1d8], 0x200
lea edi, [ebp - 0x2d8]
mov eax, dword [ecx]
mov dword [esp + 8], edi
lea edi, [ebp - 0x240]
mov dword [esp], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 4], edi
call dword [eax + 0x18]
sub esp, 0x10
mov esi, eax
mov eax, 0xdfd
call fcn.004e5d30
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], str.Failed_to_create_surface__hr__lx._n
mov dword [esp], esi
call fcn.004e6560
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax]
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [edx + 0x58]
sub esp, 8
mov esi, eax
mov eax, 0xdff
call fcn.004e5d30
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], str.Failed_to_get_surface_desc__hr__lx._n
mov dword [esp], esi
call fcn.004e6560
mov eax, 0xe00
call fcn.004e5d30
mov edx, dword [ebp - 0x234]
mov eax, dword [0x5e848c]
mov dword [esp + 4], str.Expected_surface_width__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xe02
call fcn.004e5d30
mov edx, dword [ebp - 0x238]
mov eax, dword [0x5e8490]
mov dword [esp + 4], str.Expected_surface_height__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
lea eax, [ebp - 0x2a4]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2e4]
mov dword [esp], eax
mov eax, dword [ebp - 0x2ec]
call eax
sub esp, 8
call fcn.0054f6e0
mov esi, dword [ebp - 0x2f0]
mov edx, dword [eax + 8]
mov dword [eax + 0xc], 1
lea edx, [edx + edx + 1]
mov dword [eax + 8], edx
jmp 0x5320f8
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], edi
mov dword [esp + 4], str.Expected__s__got__s._n
call fcn.004e6560
call fcn.0054f6e0
shr dword [eax + 8], 1
call fcn.0054f6e0
mov edx, dword [eax + 0xc]
mov dword [eax + 0xc], 0
test edx, edx
je 0x5321a8
mov eax, 0xe07
call fcn.004e5d30
mov eax, dword [ebp - 0x298]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x29c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x2a0]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2a4]
mov dword [esp], str.__d__d____d__d_
mov dword [esp + 4], eax
call fcn.004e5d50
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebx
mov edi, eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], str.__d__d____d__d_
call fcn.004e5d50
mov ecx, dword [ebp - 0x2a4]
xor edx, edx
cmp ebx, dword [ebp - 0x29c]
jne 0x5320d8
or ecx, dword [ebp - 0x2a0]
jne 0x5320d8
xor edx, edx
cmp dword [ebp - 0x298], esi
sete dl
jmp 0x5320d8
lea eax, [ebp - 0x284]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, dword [ebp - 0x2fc]
call eax
mov eax, dword [ebp - 0x2d8]
mov dword [0x5e83cc], 0x5897c0
mov dword [0x5e83c0], 0
sub esp, 0x14
mov dword [0x5e83c4], 0
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 0x60]
sub esp, 4
mov esi, eax
mov eax, 0xe10
call fcn.004e5d30
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Got_unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004e6560
mov eax, dword [ebp - 0x28c]
mov dword [ebp - 0x17c], 0x180000
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x288]
mov dword [ebp - 0x114], eax
lea eax, [ebp - 0x1c4]
mov dword [esp + 4], 4
mov dword [esp], eax
mov eax, dword [ebp - 0x2f8]
call eax
sub esp, 8
mov esi, eax
mov eax, 0xe15
call fcn.004e5d30
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Failed_to_change_display_mode__ret__lx._n
mov dword [esp], eax
call fcn.004e6560
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 0x60]
mov esi, eax
mov eax, dword [0x628750]
sub esp, 4
call fcn.004e54e0
jmp 0x5322f9
call fcn.0054f6e0
mov dword [eax], 0x57df88
mov dword [eax + 4], 0xe17
xor eax, eax
cmp esi, 0x887601c2
sete al
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], str.Got_unexpected_hr__lx._n
call fcn.004e6560
call fcn.0054f6e0
shr dword [eax + 0x10], 1
call fcn.0054f6e0
mov edx, dword [eax + 0x14]
mov dword [eax + 0x14], 0
test edx, edx
jne 0x5322c0
mov eax, 0xe19
call fcn.004e5d30
mov eax, dword [0x5e83cc]
mov eax, dword [eax]
mov dword [esp + 4], str.Expected_message__x__but_didnt_receive_it._n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xe1b
mov dword [0x5e83cc], 0
call fcn.004e5d30
mov edx, dword [0x5e83c0]
mov eax, dword [0x5e83c4]
mov dword [esp + 4], str.Got_unexpected_screen_size__lux_lu._n
mov dword [esp + 0xc], eax
or eax, edx
sete al
mov dword [esp + 8], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
lea eax, [ebp - 0x2a4]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2e4]
mov dword [esp], eax
mov eax, dword [ebp - 0x2ec]
call eax
sub esp, 8
call fcn.0054f6e0
mov esi, dword [ebp - 0x2f0]
mov edx, dword [eax + 8]
mov dword [eax + 0xc], 1
lea edx, [edx + edx + 1]
mov dword [eax + 8], edx
jmp 0x5323d8
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], edi
mov dword [esp + 4], str.Expected__s__got__s._n
call fcn.004e6560
call fcn.0054f6e0
shr dword [eax + 8], 1
call fcn.0054f6e0
mov edx, dword [eax + 0xc]
mov dword [eax + 0xc], 0
test edx, edx
je 0x532488
mov eax, 0xe1f
call fcn.004e5d30
mov eax, dword [ebp - 0x298]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x29c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x2a0]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2a4]
mov dword [esp], str.__d__d____d__d_
mov dword [esp + 4], eax
call fcn.004e5d50
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebx
mov edi, eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], str.__d__d____d__d_
call fcn.004e5d50
mov ecx, dword [ebp - 0x2a4]
xor edx, edx
cmp ebx, dword [ebp - 0x29c]
jne 0x5323b8
or ecx, dword [ebp - 0x2a0]
jne 0x5323b8
xor edx, edx
cmp dword [ebp - 0x298], esi
sete dl
jmp 0x5323b8
lea eax, [ebp - 0x284]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, dword [ebp - 0x2fc]
call eax
mov eax, dword [ebp - 0x2d8]
mov dword [0x5e83cc], 0x5897c0
mov dword [0x5e83c0], 0
sub esp, 0x14
mov dword [0x5e83c4], 0
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 0x6c]
sub esp, 4
mov esi, eax
mov eax, 0xe28
call fcn.004e5d30
xor eax, eax
cmp esi, 0x8876024b
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Got_unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004e6560
mov ecx, dword [ebp - 0x290]
mov edx, dword [ebp - 0x294]
mov eax, dword [ebp - 0x2e8]
call fcn.004e57d0
mov esi, eax
mov eax, 0xe2a
call fcn.004e5d30
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], str.Failed_to_set_display_mode__hr__lx._n
mov dword [esp], esi
call fcn.004e6560
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 0x6c]
sub esp, 4
mov esi, eax
mov eax, 0xe2c
call fcn.004e5d30
xor eax, eax
cmp esi, 0x8876024b
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Got_unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004e6560
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 0x60]
sub esp, 4
mov esi, eax
mov eax, 0xe2e
call fcn.004e5d30
xor eax, eax
cmp esi, 0x887601c2
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Got_unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xe30
call fcn.004e5d30
mov eax, dword [0x5e83cc]
mov eax, dword [eax]
mov dword [esp + 4], str.Expected_message__x__but_didnt_receive_it._n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xe32
mov dword [0x5e83cc], 0
call fcn.004e5d30
mov edx, dword [0x5e83c0]
mov eax, dword [0x5e83c4]
mov dword [esp + 4], str.Got_unexpected_screen_size__lux_lu._n
mov dword [esp + 0xc], eax
or eax, edx
sete al
mov dword [esp + 8], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
lea eax, [ebp - 0x2a4]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2e4]
mov dword [esp], eax
mov eax, dword [ebp - 0x2ec]
call eax
sub esp, 8
call fcn.0054f6e0
mov edi, dword [ebp - 0x2f0]
mov edx, dword [eax + 8]
mov dword [eax + 0xc], 1
lea edx, [edx + edx + 1]
mov dword [eax + 8], edx
jmp 0x532698
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], esi
mov dword [esp + 4], str.Expected__s__got__s._n
call fcn.004e6560
call fcn.0054f6e0
shr dword [eax + 8], 1
call fcn.0054f6e0
mov esi, dword [eax + 0xc]
mov dword [eax + 0xc], 0
test esi, esi
je 0x532748
mov eax, 0xe36
call fcn.004e5d30
mov eax, dword [ebp - 0x298]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x29c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x2a0]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2a4]
mov dword [esp], str.__d__d____d__d_
mov dword [esp + 4], eax
call fcn.004e5d50
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], ebx
mov esi, eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], str.__d__d____d__d_
call fcn.004e5d50
mov ecx, dword [ebp - 0x2a4]
xor edx, edx
cmp ebx, dword [ebp - 0x29c]
jne 0x532678
or ecx, dword [ebp - 0x2a0]
jne 0x532678
xor edx, edx
cmp dword [ebp - 0x298], edi
sete dl
jmp 0x532678
mov eax, dword [ebp - 0x2d8]
lea ecx, [ebp - 0x240]
mov edx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0x58]
sub esp, 8
mov edi, eax
mov eax, 0xe3a
call fcn.004e5d30
mov dword [esp + 8], edi
not edi
shr edi, 0x1f
mov dword [esp + 4], str.Failed_to_get_surface_desc__hr__lx._n
mov dword [esp], edi
lea edi, [ebp - 0x238]
call fcn.004e6560
mov eax, 0xe3b
call fcn.004e5d30
mov edx, dword [ebp - 0x234]
mov eax, dword [0x5e848c]
mov dword [esp + 4], str.Expected_surface_width__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xe3d
call fcn.004e5d30
mov edx, dword [ebp - 0x238]
mov eax, dword [0x5e8490]
mov dword [esp + 4], str.Expected_surface_height__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, esi
mov ecx, 0x1d
mov dword [ebp - 0x240], 0x7c
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 0x2e8]
sub esp, 4
mov dword [ebp - 0x23c], 1
mov dword [ebp - 0x1d8], 0x200
lea edi, [ebp - 0x2d8]
mov eax, dword [ecx]
mov dword [esp + 8], edi
lea edi, [ebp - 0x240]
mov dword [esp], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 4], edi
call dword [eax + 0x18]
sub esp, 0x10
mov esi, eax
mov eax, 0xe47
call fcn.004e5d30
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], str.Failed_to_create_surface__hr__lx._n
mov dword [esp], esi
call fcn.004e6560
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax]
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [edx + 0x58]
sub esp, 8
mov esi, eax
mov eax, 0xe49
call fcn.004e5d30
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], str.Failed_to_get_surface_desc__hr__lx._n
mov dword [esp], esi
call fcn.004e6560
mov eax, 0xe4a
call fcn.004e5d30
mov edx, dword [ebp - 0x234]
mov eax, dword [ebp - 0x294]
mov dword [esp + 4], str.Expected_surface_width__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xe4c
call fcn.004e5d30
mov edx, dword [ebp - 0x238]
mov eax, dword [ebp - 0x290]
mov dword [esp + 4], str.Expected_surface_height__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
lea eax, [ebp - 0x2a4]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2e4]
mov dword [esp], eax
mov eax, dword [ebp - 0x2ec]
call eax
sub esp, 8
call fcn.0054f6e0
mov esi, dword [ebp - 0x2f0]
mov edx, dword [eax + 8]
mov dword [eax + 0xc], 1
lea edx, [edx + edx + 1]
mov dword [eax + 8], edx
jmp 0x532988
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], edi
mov dword [esp + 4], str.Expected__s__got__s._n
call fcn.004e6560
call fcn.0054f6e0
shr dword [eax + 8], 1
call fcn.0054f6e0
mov edx, dword [eax + 0xc]
mov dword [eax + 0xc], 0
test edx, edx
je 0x532a40
call fcn.0054f6e0
mov dword [eax], 0x57df88
mov dword [eax + 4], 0xe51
mov eax, dword [ebp - 0x298]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x29c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x2a0]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2a4]
mov dword [esp], str.__d__d____d__d_
mov dword [esp + 4], eax
call fcn.004e5d50
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebx
mov edi, eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], str.__d__d____d__d_
call fcn.004e5d50
mov ecx, dword [ebp - 0x2a4]
xor edx, edx
cmp ebx, dword [ebp - 0x29c]
jne 0x532968
or ecx, dword [ebp - 0x2a0]
jne 0x532968
xor edx, edx
cmp dword [ebp - 0x298], esi
sete dl
jmp 0x532968
lea eax, [ebp - 0x284]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, dword [ebp - 0x2fc]
call eax
mov eax, dword [ebp - 0x2d8]
mov dword [0x5e83cc], 0x5897c0
mov dword [0x5e83c0], 0
sub esp, 0x14
mov dword [0x5e83c4], 0
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 0x60]
sub esp, 4
mov esi, eax
mov eax, 0xe5a
call fcn.004e5d30
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Got_unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004e6560
mov ecx, dword [ebp - 0x2e8]
mov eax, dword [ecx]
mov dword [esp], ecx
call dword [eax + 0x4c]
sub esp, 4
mov esi, eax
mov eax, 0xe5c
call fcn.004e5d30
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], str.RestoreDisplayMode_failed__hr__lx._n
mov dword [esp], esi
call fcn.004e6560
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 0x60]
sub esp, 4
mov esi, eax
mov eax, 0xe5e
call fcn.004e5d30
xor eax, eax
cmp esi, 0x887601c2
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Got_unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xe60
call fcn.004e5d30
mov eax, dword [0x5e83cc]
mov eax, dword [eax]
mov dword [esp + 4], str.Expected_message__x__but_didnt_receive_it._n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xe62
mov dword [0x5e83cc], 0
call fcn.004e5d30
mov edx, dword [0x5e83c0]
mov eax, dword [0x5e83c4]
mov dword [esp + 4], str.Got_unexpected_screen_size__lux_lu._n
mov dword [esp + 0xc], eax
or eax, edx
sete al
mov dword [esp + 8], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
lea eax, [ebp - 0x2a4]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2e4]
mov dword [esp], eax
mov eax, dword [ebp - 0x2ec]
call eax
sub esp, 8
call fcn.0054f6e0
mov edi, dword [ebp - 0x2f0]
mov edx, dword [eax + 8]
mov dword [eax + 0xc], 1
lea edx, [edx + edx + 1]
mov dword [eax + 8], edx
jmp 0x532c08
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], esi
mov dword [esp + 4], str.Expected__s__got__s._n
call fcn.004e6560
call fcn.0054f6e0
shr dword [eax + 8], 1
call fcn.0054f6e0
mov esi, dword [eax + 0xc]
mov dword [eax + 0xc], 0
test esi, esi
je 0x532cb8
mov eax, 0xe66
call fcn.004e5d30
mov eax, dword [ebp - 0x298]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x29c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x2a0]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2a4]
mov dword [esp], str.__d__d____d__d_
mov dword [esp + 4], eax
call fcn.004e5d50
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], ebx
mov esi, eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], str.__d__d____d__d_
call fcn.004e5d50
mov ecx, dword [ebp - 0x2a4]
xor edx, edx
cmp ebx, dword [ebp - 0x29c]
jne 0x532be8
or ecx, dword [ebp - 0x2a0]
jne 0x532be8
xor edx, edx
cmp dword [ebp - 0x298], edi
sete dl
jmp 0x532be8
mov eax, dword [ebp - 0x2d8]
lea ecx, [ebp - 0x240]
mov edx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0x58]
sub esp, 8
mov edi, eax
mov eax, 0xe6a
call fcn.004e5d30
mov dword [esp + 8], edi
not edi
shr edi, 0x1f
mov dword [esp + 4], str.Failed_to_get_surface_desc__hr__lx._n
mov dword [esp], edi
call fcn.004e6560
mov eax, 0xe6b
call fcn.004e5d30
mov edx, dword [ebp - 0x234]
mov eax, dword [ebp - 0x294]
mov dword [esp + 4], str.Expected_surface_width__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xe6d
call fcn.004e5d30
mov edx, dword [ebp - 0x238]
mov eax, dword [ebp - 0x290]
mov dword [esp + 4], str.Expected_surface_height__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
lea eax, [ebp - 0x1c4]
sub esp, 4
mov dword [esp + 8], eax
mov dword [esp + 4], 0xffffffff
mov dword [esp], 0
mov eax, dword [ebp - 0x2f4]
call eax
sub esp, 0xc
mov edi, eax
mov eax, 0xe72
call fcn.004e5d30
mov dword [esp], edi
mov dword [esp + 4], str.Failed_to_get_display_mode._n
call fcn.004e6560
mov eax, 0xe73
call fcn.004e5d30
mov edi, dword [ebp - 0x118]
mov ecx, dword [0x5e848c]
mov edx, dword [ebp - 0x114]
mov eax, dword [0x5e8490]
mov dword [esp + 4], str.Expected_resolution__lux_lu__got__lux_lu._n
cmp edi, ecx
mov dword [esp + 8], ecx
sete cl
cmp edx, eax
mov dword [esp + 0xc], eax
sete al
mov dword [esp + 0x14], edx
movzx eax, al
mov dword [esp + 0x10], edi
and eax, ecx
mov dword [esp], eax
call fcn.004e6560
mov dword [esp + 4], 4
mov dword [esp], 0
mov eax, dword [ebp - 0x2f8]
call eax
sub esp, 8
mov edi, eax
mov eax, 0xe79
call fcn.004e5d30
xor eax, eax
test edi, edi
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Failed_to_change_display_mode__ret__lx._n
lea edi, [ebp - 0x238]
mov dword [esp], eax
call fcn.004e6560
mov eax, esi
mov ecx, 0x1d
mov dword [ebp - 0x240], 0x7c
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 0x2e8]
mov dword [ebp - 0x23c], 1
lea edi, [ebp - 0x2d8]
mov dword [ebp - 0x1d8], 0x200
mov eax, dword [ecx]
mov dword [esp + 8], edi
lea edi, [ebp - 0x240]
mov dword [esp], ecx
mov dword [esp + 4], edi
mov dword [esp + 0xc], 0
call dword [eax + 0x18]
sub esp, 0x10
mov esi, eax
mov eax, 0xe81
call fcn.004e5d30
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], str.Failed_to_create_surface__hr__lx._n
mov dword [esp], esi
call fcn.004e6560
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax]
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [edx + 0x58]
sub esp, 8
mov esi, eax
mov eax, 0xe83
call fcn.004e5d30
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], str.Failed_to_get_surface_desc__hr__lx._n
mov dword [esp], esi
call fcn.004e6560
mov eax, 0xe84
call fcn.004e5d30
mov edx, dword [ebp - 0x234]
mov eax, dword [0x5e848c]
mov dword [esp + 4], str.Expected_surface_width__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xe86
call fcn.004e5d30
mov edx, dword [ebp - 0x238]
mov eax, dword [0x5e8490]
mov dword [esp + 4], str.Expected_surface_height__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
lea eax, [ebp - 0x2a4]
sub esp, 4
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2e4]
mov dword [esp], eax
mov eax, dword [ebp - 0x2ec]
call eax
sub esp, 8
call fcn.0054f6e0
mov edi, dword [ebp - 0x2f0]
mov edx, dword [eax + 8]
mov dword [eax + 0xc], 1
lea edx, [edx + edx + 1]
mov dword [eax + 8], edx
jmp 0x532fe0
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], esi
mov dword [esp + 4], str.Expected__s__got__s._n
call fcn.004e6560
call fcn.0054f6e0
shr dword [eax + 8], 1
call fcn.0054f6e0
mov esi, dword [eax + 0xc]
mov dword [eax + 0xc], 0
test esi, esi
je 0x533098
call fcn.0054f6e0
mov dword [eax], 0x57df88
mov dword [eax + 4], 0xe8c
mov eax, dword [ebp - 0x298]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x29c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x2a0]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2a4]
mov dword [esp], str.__d__d____d__d_
mov dword [esp + 4], eax
call fcn.004e5d50
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], ebx
mov esi, eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], str.__d__d____d__d_
call fcn.004e5d50
mov ecx, dword [ebp - 0x2a4]
xor edx, edx
cmp ebx, dword [ebp - 0x29c]
jne 0x532fc0
or ecx, dword [ebp - 0x2a0]
jne 0x532fc0
xor edx, edx
cmp dword [ebp - 0x298], edi
sete dl
jmp 0x532fc0
mov edi, dword [ebp - 0x2e8]
mov eax, dword [edi]
mov dword [esp + 8], 0x11
mov ecx, dword [ebp - 0x2e4]
mov dword [esp], edi
mov dword [esp + 4], ecx
call dword [eax + 0x50]
sub esp, 0xc
mov ebx, eax
mov eax, 0xe91
call fcn.004e5d30
mov dword [esp + 8], ebx
not ebx
shr ebx, 0x1f
mov dword [esp + 4], str.SetCooperativeLevel_failed__hr__lx._n
mov dword [esp], ebx
call fcn.004e6560
mov edx, dword [ebp - 0x294]
mov ecx, dword [ebp - 0x290]
mov eax, edi
call fcn.004e57d0
mov ebx, eax
mov eax, 0xe93
call fcn.004e5d30
mov dword [esp + 8], ebx
not ebx
shr ebx, 0x1f
mov dword [esp + 4], str.Failed_to_set_display_mode__hr__lx._n
mov dword [esp], ebx
call fcn.004e6560
lea eax, [ebp - 0x284]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, dword [ebp - 0x2fc]
call eax
mov eax, dword [edi]
mov dword [0x5e83cc], 0x589a60
mov dword [0x5e83c0], 0
sub esp, 0x14
mov dword [0x5e83c4], 0
mov dword [esp + 8], 8
mov ecx, dword [ebp - 0x2e4]
mov dword [esp], edi
mov dword [esp + 4], ecx
call dword [eax + 0x50]
sub esp, 0xc
mov ebx, eax
mov eax, 0xe9b
call fcn.004e5d30
mov dword [esp + 8], ebx
not ebx
shr ebx, 0x1f
mov dword [esp + 4], str.SetCooperativeLevel_failed__hr__lx._n
mov dword [esp], ebx
call fcn.004e6560
mov eax, 0xe9d
call fcn.004e5d30
mov eax, dword [0x5e83cc]
mov eax, dword [eax]
mov dword [esp + 4], str.Expected_message__x__but_didnt_receive_it._n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xe9f
mov dword [0x5e83cc], 0
call fcn.004e5d30
mov edx, dword [0x5e83c0]
xor ecx, ecx
mov eax, dword [0x5e848c]
mov edi, dword [0x5e83c4]
mov ebx, dword [0x5e8490]
cmp edx, eax
je 0x534350
mov dword [esp], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], edi
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
mov dword [esp + 4], str.Expected_screen_size__lux_lu__got__lux_lu._n
call fcn.004e6560
lea eax, [ebp - 0x2a4]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2e4]
mov dword [esp], eax
mov ebx, dword [ebp - 0x2ec]
call ebx
mov eax, 0xea6
sub esp, 8
call fcn.004e5d30
lea eax, [ebp - 0x2a4]
call fcn.004e5d90
mov edi, eax
lea eax, [ebp - 0x2d4]
call fcn.004e5d90
lea edx, [ebp - 0x2d4]
mov dword [esp + 4], edx
lea edx, [ebp - 0x2a4]
mov ebx, eax
mov dword [esp], edx
call fcn.004e5070
sub esp, 8
mov dword [esp + 0xc], edi
lea edi, [ebp - 0x238]
mov dword [esp + 8], ebx
xor ebx, ebx
mov dword [esp], eax
mov dword [esp + 4], str.Expected__s__got__s._n
call fcn.004e6560
mov eax, ebx
mov ecx, 0x1d
mov dword [ebp - 0x240], 0x7c
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x2e8]
mov dword [ebp - 0x23c], 1
lea edx, [ebp - 0x2d8]
mov dword [ebp - 0x1d8], 0x200
mov eax, dword [edi]
mov dword [esp + 8], edx
lea edx, [ebp - 0x240]
mov dword [esp + 4], edx
mov dword [esp], edi
mov dword [esp + 0xc], 0
call dword [eax + 0x18]
sub esp, 0x10
mov edi, eax
mov eax, 0xeaf
call fcn.004e5d30
mov dword [esp + 8], edi
not edi
shr edi, 0x1f
mov dword [esp + 4], str.Failed_to_create_surface__hr__lx._n
mov dword [esp], edi
call fcn.004e6560
mov eax, dword [ebp - 0x2d8]
lea ecx, [ebp - 0x240]
mov edx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0x58]
sub esp, 8
mov edi, eax
mov eax, 0xeb1
call fcn.004e5d30
mov dword [esp + 8], edi
not edi
shr edi, 0x1f
mov dword [esp + 4], str.Failed_to_get_surface_desc__hr__lx._n
mov dword [esp], edi
call fcn.004e6560
mov eax, 0xeb2
call fcn.004e5d30
mov edx, dword [ebp - 0x234]
mov eax, dword [0x5e848c]
mov dword [esp + 4], str.Expected_surface_width__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xeb4
call fcn.004e5d30
mov edx, dword [ebp - 0x238]
mov eax, dword [0x5e8490]
mov dword [esp + 4], str.Expected_surface_height__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov edi, dword [ebp - 0x2e8]
sub esp, 4
mov eax, dword [edi]
mov dword [esp + 8], 9
mov ecx, dword [ebp - 0x2e4]
mov dword [esp], edi
mov dword [esp + 4], ecx
call dword [eax + 0x50]
sub esp, 0xc
mov edi, eax
mov eax, 0xeba
call fcn.004e5d30
mov dword [esp + 8], edi
not edi
shr edi, 0x1f
mov dword [esp + 4], str.SetCooperativeLevel_failed__hr__lx._n
mov dword [esp], edi
call fcn.004e6560
mov edx, dword [ebp - 0x294]
mov ecx, dword [ebp - 0x290]
mov eax, dword [ebp - 0x2e8]
call fcn.004e57d0
mov edi, eax
mov eax, 0xebc
call fcn.004e5d30
mov dword [esp + 8], edi
not edi
shr edi, 0x1f
mov dword [esp + 4], str.Failed_to_set_display_mode__hr__lx._n
mov dword [esp], edi
call fcn.004e6560
mov edi, dword [ebp - 0x2e8]
mov eax, dword [edi]
mov dword [esp + 8], 8
mov ecx, dword [ebp - 0x2e4]
mov dword [esp], edi
mov dword [esp + 4], ecx
call dword [eax + 0x50]
sub esp, 0xc
mov edi, eax
mov eax, 0xebf
call fcn.004e5d30
mov dword [esp + 8], edi
not edi
shr edi, 0x1f
mov dword [esp + 4], str.SetCooperativeLevel_failed__hr__lx._n
mov dword [esp], edi
lea edi, [ebp - 0x238]
call fcn.004e6560
mov eax, ebx
mov ecx, 0x1d
mov dword [ebp - 0x240], 0x7c
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x2e8]
mov dword [ebp - 0x23c], 1
lea ebx, [ebp - 0x2d8]
mov dword [ebp - 0x1d8], 0x200
mov eax, dword [edi]
mov dword [esp + 8], ebx
lea ebx, [ebp - 0x240]
mov dword [esp + 4], ebx
mov dword [esp], edi
mov dword [esp + 0xc], 0
call dword [eax + 0x18]
sub esp, 0x10
mov ebx, eax
mov eax, 0xec7
call fcn.004e5d30
mov dword [esp + 8], ebx
not ebx
shr ebx, 0x1f
mov dword [esp + 4], str.Failed_to_create_surface__hr__lx._n
mov dword [esp], ebx
lea ebx, [ebp - 0x240]
call fcn.004e6560
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax]
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [edx + 0x58]
sub esp, 8
mov ebx, eax
mov eax, 0xec9
call fcn.004e5d30
mov dword [esp + 8], ebx
not ebx
shr ebx, 0x1f
mov dword [esp + 4], str.Failed_to_get_surface_desc__hr__lx._n
mov dword [esp], ebx
call fcn.004e6560
mov eax, 0xeca
call fcn.004e5d30
mov edx, dword [ebp - 0x234]
mov eax, dword [ebp - 0x294]
mov dword [esp + 4], str.Expected_surface_width__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xecc
call fcn.004e5d30
mov edx, dword [ebp - 0x238]
mov eax, dword [ebp - 0x290]
mov dword [esp + 4], str.Expected_surface_height__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, dword [edi]
sub esp, 4
mov dword [esp], edi
call dword [eax + 0x4c]
sub esp, 4
mov ebx, eax
mov eax, 0xed1
call fcn.004e5d30
mov dword [esp + 8], ebx
not ebx
shr ebx, 0x1f
mov dword [esp + 4], str.RestoreDisplayMode_failed__hr__lx._n
mov dword [esp], ebx
call fcn.004e6560
call fcn.004e5660
mov eax, dword [edi]
mov dword [esp + 8], 0x11
mov ecx, dword [ebp - 0x2e4]
mov dword [esp], edi
mov dword [esp + 4], ecx
call dword [eax + 0x50]
sub esp, 0xc
mov ebx, eax
mov eax, 0xed7
call fcn.004e5d30
mov dword [esp + 8], ebx
not ebx
shr ebx, 0x1f
mov dword [esp + 4], str.SetCooperativeLevel_failed__hr__lx._n
mov dword [esp], ebx
call fcn.004e6560
mov edx, dword [ebp - 0x294]
mov ecx, dword [ebp - 0x290]
mov eax, edi
call fcn.004e57d0
mov ebx, eax
mov eax, 0xed9
call fcn.004e5d30
mov dword [esp + 8], ebx
not ebx
shr ebx, 0x1f
mov dword [esp + 4], str.Failed_to_set_display_mode__hr__lx._n
mov dword [esp], ebx
call fcn.004e6560
lea eax, [ebp - 0x284]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, dword [ebp - 0x2fc]
call eax
mov eax, dword [edi]
mov dword [0x5e83cc], 0x589a60
mov dword [0x5e83c0], 0
sub esp, 0x14
mov dword [0x5e83c4], 0
mov dword [0x5e83b8], 0
mov dword [0x5e83bc], 0
mov dword [esp + 8], 8
mov ecx, dword [ebp - 0x300]
mov dword [esp], edi
mov dword [esp + 4], ecx
call dword [eax + 0x50]
sub esp, 0xc
mov ebx, eax
mov eax, 0xee3
call fcn.004e5d30
mov dword [esp + 8], ebx
not ebx
shr ebx, 0x1f
mov dword [esp + 4], str.SetCooperativeLevel_failed__hr__lx._n
mov dword [esp], ebx
call fcn.004e6560
mov eax, 0xee5
call fcn.004e5d30
mov eax, dword [0x5e83cc]
mov eax, dword [eax]
mov dword [esp + 4], str.Expected_message__x__but_didnt_receive_it._n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xee7
mov dword [0x5e83cc], 0
call fcn.004e5d30
mov edx, dword [0x5e83c0]
mov eax, dword [0x5e83c4]
mov dword [esp + 4], str.Got_unexpected_screen_size__lux_lu._n
mov dword [esp + 0xc], eax
or eax, edx
sete al
mov dword [esp + 8], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xee9
call fcn.004e5d30
mov edx, dword [0x5e83b8]
mov eax, dword [0x5e848c]
mov ebx, dword [0x5e83bc]
mov edi, dword [0x5e8490]
cmp edx, eax
je 0x534340
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ebx
mov dword [esp + 0xc], edi
mov dword [esp + 8], eax
mov dword [esp], esi
mov dword [esp + 4], str.Expected_screen_size_2__lux_lu__got__lux_lu._n
call fcn.004e6560
lea eax, [ebp - 0x2a4]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2e4]
mov dword [esp], eax
mov edi, dword [ebp - 0x2ec]
call edi
mov eax, 0xeee
sub esp, 8
call fcn.004e5d30
lea ecx, [ebp - 0x2a4]
mov eax, ecx
call fcn.004e5d90
lea ecx, [ebp - 0x2c4]
mov esi, eax
mov eax, ecx
call fcn.004e5d90
lea ecx, [ebp - 0x2c4]
mov dword [esp + 4], ecx
lea ecx, [ebp - 0x2a4]
mov ebx, eax
mov dword [esp], ecx
call fcn.004e5070
sub esp, 8
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebx
lea ebx, [ebp - 0x2a4]
mov dword [esp + 4], str.Expected__s__got__s._n
mov dword [esp], eax
call fcn.004e6560
lea ecx, [ebp - 0x2a4]
mov dword [esp + 4], ecx
mov ecx, dword [ebp - 0x300]
mov dword [esp], ecx
mov dword [ebp - 0x2ec], edi
call edi
mov eax, 0xef1
lea edi, [ebp - 0x238]
sub esp, 8
call fcn.004e5d30
mov eax, ebx
lea ebx, [ebp - 0x2d4]
call fcn.004e5d90
mov esi, eax
mov eax, ebx
call fcn.004e5d90
lea edx, [ebp - 0x2d4]
mov dword [esp + 4], edx
lea edx, [ebp - 0x2a4]
mov ebx, eax
mov dword [esp], edx
call fcn.004e5070
sub esp, 8
mov dword [esp + 0xc], esi
xor esi, esi
mov dword [esp + 8], ebx
lea ebx, [ebp - 0x2d8]
mov dword [esp], eax
mov dword [esp + 4], str.Expected__s__got__s._n
call fcn.004e6560
mov eax, esi
mov ecx, 0x1d
mov dword [ebp - 0x240], 0x7c
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x2e8]
mov dword [ebp - 0x23c], 1
mov dword [ebp - 0x1d8], 0x200
mov eax, dword [edi]
mov dword [esp + 8], ebx
lea ebx, [ebp - 0x240]
mov dword [esp + 4], ebx
mov dword [esp], edi
mov dword [esp + 0xc], 0
call dword [eax + 0x18]
sub esp, 0x10
mov ebx, eax
mov eax, 0xefa
call fcn.004e5d30
mov dword [esp + 8], ebx
not ebx
shr ebx, 0x1f
mov dword [esp + 4], str.Failed_to_create_surface__hr__lx._n
mov dword [esp], ebx
lea ebx, [ebp - 0x240]
call fcn.004e6560
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax]
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [edx + 0x58]
sub esp, 8
mov ebx, eax
mov eax, 0xefc
call fcn.004e5d30
mov dword [esp + 8], ebx
not ebx
shr ebx, 0x1f
mov dword [esp + 4], str.Failed_to_get_surface_desc__hr__lx._n
mov dword [esp], ebx
call fcn.004e6560
mov eax, 0xefd
call fcn.004e5d30
mov edx, dword [ebp - 0x234]
mov eax, dword [0x5e848c]
mov dword [esp + 4], str.Expected_surface_width__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, 0xeff
call fcn.004e5d30
mov edx, dword [ebp - 0x238]
mov eax, dword [0x5e8490]
mov dword [esp + 4], str.Expected_surface_height__lu__got__lu._n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.004e6560
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, dword [edi]
sub esp, 4
mov dword [esp], edi
call dword [eax + 8]
sub esp, 4
mov ebx, eax
mov eax, 0xf04
call fcn.004e5d30
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_refcount__lu._n
lea ebx, [ebp - 0x2a4]
mov dword [esp], eax
call fcn.004e6560
mov dword [esp + 4], ebx
mov eax, dword [ebp - 0x2e4]
mov dword [esp], eax
mov edi, dword [ebp - 0x2ec]
call edi
mov eax, 0xf07
sub esp, 8
call fcn.004e5d30
mov eax, ebx
lea ebx, [ebp - 0x2c4]
call fcn.004e5d90
mov edi, eax
mov eax, ebx
call fcn.004e5d90
lea edx, [ebp - 0x2c4]
mov dword [esp + 4], edx
lea edx, [ebp - 0x2a4]
mov ebx, eax
mov dword [esp], edx
call fcn.004e5070
sub esp, 8
mov dword [esp + 0xc], edi
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], str.Expected__s__got__s._n
call fcn.004e6560
mov ecx, dword [ebp - 0x2dc]
mov edi, dword [ebp - 0x2e0]
mov edx, ecx
mov eax, edi
mov dword [ebp - 0x2e8], ecx
mov dword [ebp - 0x2ec], edi
call fcn.004e59e0
mov ebx, eax
mov eax, 0xf0b
call fcn.004e5d30
mov dword [esp], ebx
lea ebx, [ebp - 0x1c4]
mov dword [esp + 4], str.Failed_to_restore_display_modes._n
call fcn.004e6560
mov eax, dword [ebp - 0x28c]
mov dword [ebp - 0x17c], 0x180000
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x288]
mov dword [ebp - 0x114], eax
mov dword [esp + 4], 0x10000001
mov dword [esp], ebx
mov ebx, dword [ebp - 0x2f8]
call ebx
sub esp, 8
mov ebx, eax
mov eax, 0xf12
call fcn.004e5d30
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.ChangeDisplaySettingsW_failed_with__ld._n
mov dword [esp], eax
call fcn.004e6560
call fcn.004e51e0
mov ebx, eax
mov eax, 0xf15
call fcn.004e5d30
xor eax, eax
test ebx, ebx
mov dword [esp + 4], str.Failed_to_create_a_ddraw_object._n
setne al
mov dword [esp], eax
call fcn.004e6560
mov eax, dword [ebx]
mov dword [esp], ebx
call dword [eax + 8]
sub esp, 4
mov ebx, eax
mov eax, 0xf17
call fcn.004e5d30
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_refcount__lu._n
lea ebx, [ebp - 0xe8]
mov dword [esp], eax
mov edi, ebx
call fcn.004e6560
mov eax, esi
mov ecx, 0x37
rep stosd dword es:[edi], eax
mov eax, 0xdc
mov word [ebp - 0xa4], ax
mov dword [esp + 8], ebx
mov dword [esp + 4], 0xffffffff
mov dword [esp], 0
mov ecx, dword [ebp - 0x2f4]
call ecx
sub esp, 0xc
mov esi, eax
mov eax, 0xf1c
call fcn.004e5d30
mov edi, dword fs:[0x18]
mov eax, dword [edi + 0x34]
mov dword [esp], esi
mov dword [esp + 4], str.EnumDisplaySettingsW_failed__error__lu._n
mov dword [esp + 8], eax
call fcn.004e6560
mov eax, 0xf1d
call fcn.004e5d30
mov edx, 0x5e83e0
mov eax, ebx
call fcn.004e5160
mov dword [esp + 4], str.Got_a_different_mode._n
mov dword [esp], eax
call fcn.004e6560
mov edx, dword [ebp - 0x2e8]
mov eax, dword [ebp - 0x2ec]
call fcn.004e59e0
mov esi, eax
mov eax, 0xf1f
call fcn.004e5d30
mov dword [esp], esi
lea esi, [ebp - 0x1c4]
mov dword [esp + 4], str.Failed_to_restore_display_modes._n
call fcn.004e6560
mov dword [esp + 4], 0x10000001
mov dword [esp], esi
mov esi, dword [ebp - 0x2f8]
call esi
sub esp, 8
mov esi, eax
mov eax, 0xf23
call fcn.004e5d30
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.ChangeDisplaySettingsW_failed_with__ld._n
mov dword [esp], eax
call fcn.004e6560
call fcn.004e51e0
mov esi, eax
mov eax, 0xf26
call fcn.004e5d30
xor eax, eax
test esi, esi
mov dword [esp + 4], str.Failed_to_create_a_ddraw_object._n
setne al
mov dword [esp], eax
call fcn.004e6560
mov eax, dword [esi]
mov dword [esp + 8], 0x11
mov edx, dword [ebp - 0x2e4]
mov dword [esp], esi
mov dword [esp + 4], edx
call dword [eax + 0x50]
sub esp, 0xc
mov dword [ebp - 0x2f0], eax
mov eax, 0xf28
call fcn.004e5d30
mov edx, dword [ebp - 0x2f0]
xor eax, eax
mov dword [esp + 4], str.SetCooperativeLevel_failed__hr__lx._n
test edx, edx
mov dword [esp + 8], edx
sete al
mov dword [esp], eax
call fcn.004e6560
mov eax, dword [esi]
mov dword [esp + 8], 8
mov edx, dword [ebp - 0x2e4]
mov dword [esp], esi
mov dword [esp + 4], edx
call dword [eax + 0x50]
sub esp, 0xc
mov dword [ebp - 0x2f0], eax
mov eax, 0xf2a
call fcn.004e5d30
mov edx, dword [ebp - 0x2f0]
xor eax, eax
mov dword [esp + 4], str.SetCooperativeLevel_failed__hr__lx._n
test edx, edx
mov dword [esp + 8], edx
sete al
mov dword [esp], eax
call fcn.004e6560
mov eax, dword [esi]
mov dword [esp], esi
call dword [eax + 8]
sub esp, 4
mov esi, eax
mov eax, 0xf2c
call fcn.004e5d30
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Unexpected_refcount__lu._n
mov dword [esp], eax
call fcn.004e6560
mov dword [esp + 8], ebx
mov dword [esp + 4], 0xffffffff
mov dword [esp], 0
mov ecx, dword [ebp - 0x2f4]
call ecx
sub esp, 0xc
mov esi, eax
mov eax, 0xf2f
call fcn.004e5d30
mov eax, dword [edi + 0x34]
mov dword [esp], esi
mov dword [esp + 4], str.EnumDisplaySettingsW_failed__error__lu._n
mov dword [esp + 8], eax
call fcn.004e6560
mov eax, 0xf30
call fcn.004e5d30
mov edx, 0x5e83e0
mov eax, ebx
call fcn.004e5160
mov dword [esp + 4], str.Got_a_different_mode._n
mov dword [esp], eax
call fcn.004e6560
mov edx, dword [ebp - 0x2e8]
mov eax, dword [ebp - 0x2ec]
call fcn.004e59e0
mov esi, eax
mov eax, 0xf32
call fcn.004e5d30
mov dword [esp], esi
mov dword [esp + 4], str.Failed_to_restore_display_modes._n
call fcn.004e6560
call fcn.004e51e0
mov esi, eax
mov eax, 0xf37
call fcn.004e5d30
xor eax, eax
test esi, esi
mov dword [esp + 4], str.Failed_to_create_a_ddraw_object._n
setne al
mov dword [esp], eax
call fcn.004e6560
mov ecx, dword [0x5e8490]
mov edx, dword [0x5e848c]
mov eax, esi
call fcn.004e57d0
mov dword [ebp - 0x2f0], eax
mov eax, 0xf39
call fcn.004e5d30
mov edx, dword [ebp - 0x2f0]
xor eax, eax
mov dword [esp + 4], str.Failed_to_set_display_mode__hr__lx._n
test edx, edx
mov dword [esp + 8], edx
sete al
mov dword [esp], eax
call fcn.004e6560
lea eax, [ebp - 0x1c4]
mov dword [esp + 4], 0x10000001
mov dword [esp], eax
mov eax, dword [ebp - 0x2f8]
call eax
sub esp, 8
mov dword [ebp - 0x2f0], eax
mov eax, 0xf3c
call fcn.004e5d30
mov edx, dword [ebp - 0x2f0]
xor eax, eax
mov dword [esp + 4], str.ChangeDisplaySettingsW_failed_with__ld._n
test edx, edx
mov dword [esp + 8], edx
sete al
mov dword [esp], eax
call fcn.004e6560
mov eax, dword [esi]
mov dword [esp], esi
call dword [eax + 8]
sub esp, 4
mov esi, eax
mov eax, 0xf3f
call fcn.004e5d30
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Unexpected_refcount__lu._n
mov dword [esp], eax
call fcn.004e6560
mov dword [esp + 8], ebx
mov dword [esp + 4], 0xffffffff
mov dword [esp], 0
mov ecx, dword [ebp - 0x2f4]
call ecx
sub esp, 0xc
mov esi, eax
mov eax, 0xf42
call fcn.004e5d30
mov eax, dword [edi + 0x34]
mov dword [esp], esi
lea esi, [ebp - 0x1c4]
mov dword [esp + 4], str.EnumDisplaySettingsW_failed__error__lu._n
mov dword [esp + 8], eax
call fcn.004e6560
mov eax, 0xf43
call fcn.004e5d30
mov edx, esi
mov eax, ebx
call fcn.004e5160
mov dword [esp + 4], str.Got_a_different_mode._n
mov dword [esp], eax
call fcn.004e6560
mov dword [esp + 8], ebx
mov dword [esp + 4], 0xfffffffe
mov dword [esp], 0
mov ecx, dword [ebp - 0x2f4]
call ecx
sub esp, 0xc
mov esi, eax
mov eax, 0xf45
call fcn.004e5d30
mov eax, dword [edi + 0x34]
mov dword [esp], esi
lea esi, [ebp - 0x1c4]
mov dword [esp + 4], str.EnumDisplaySettingsW_failed__error__lu._n
mov dword [esp + 8], eax
call fcn.004e6560
mov eax, 0xf46
call fcn.004e5d30
mov edx, esi
mov eax, ebx
call fcn.004e5160
mov dword [esp + 4], str.Got_a_different_mode._n
mov dword [esp], eax
call fcn.004e6560
mov edx, dword [ebp - 0x2e8]
mov eax, dword [ebp - 0x2ec]
call fcn.004e59e0
mov esi, eax
mov eax, 0xf48
call fcn.004e5d30
mov dword [esp], esi
mov dword [esp + 4], str.Failed_to_restore_display_modes._n
call fcn.004e6560
call fcn.004e51e0
mov esi, eax
mov eax, 0xf4c
call fcn.004e5d30
xor eax, eax
test esi, esi
mov dword [esp + 4], str.Failed_to_create_a_ddraw_object._n
setne al
mov dword [esp], eax
call fcn.004e6560
mov ecx, dword [ebp - 0x290]
mov edx, dword [ebp - 0x294]
mov eax, esi
call fcn.004e57d0
mov dword [ebp - 0x2f0], eax
mov eax, 0xf4e
call fcn.004e5d30
mov edx, dword [ebp - 0x2f0]
xor eax, eax
mov dword [esp + 4], str.Failed_to_set_display_mode__hr__lx._n
test edx, edx
mov dword [esp + 8], edx
sete al
mov dword [esp], eax
call fcn.004e6560
lea eax, [ebp - 0x1c4]
mov dword [esp + 4], 0x10000001
mov dword [esp], eax
mov eax, dword [ebp - 0x2f8]
call eax
sub esp, 8
mov dword [ebp - 0x2f0], eax
mov eax, 0xf51
call fcn.004e5d30
mov edx, dword [ebp - 0x2f0]
xor eax, eax
mov dword [esp + 4], str.ChangeDisplaySettingsW_failed_with__ld._n
test edx, edx
mov dword [esp + 8], edx
sete al
mov dword [esp], eax
call fcn.004e6560
mov eax, dword [esi]
mov dword [esp], esi
call dword [eax + 0x4c]
sub esp, 4
mov dword [ebp - 0x2f0], eax
mov eax, 0xf54
call fcn.004e5d30
mov edx, dword [ebp - 0x2f0]
xor eax, eax
mov dword [esp + 4], str.RestoreDisplayMode_failed__hr__lx._n
test edx, edx
mov dword [esp + 8], edx
sete al
mov dword [esp], eax
call fcn.004e6560
mov dword [esp + 8], ebx
mov dword [esp + 4], 0xffffffff
mov dword [esp], 0
mov ecx, dword [ebp - 0x2f4]
call ecx
sub esp, 0xc
mov dword [ebp - 0x2f0], eax
mov eax, 0xf57
call fcn.004e5d30
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.EnumDisplaySettingsW_failed__error__lu._n
mov dword [esp + 8], eax
mov edx, dword [ebp - 0x2f0]
mov dword [esp], edx
call fcn.004e6560
mov eax, 0xf58
call fcn.004e5d30
lea eax, [ebp - 0x1c4]
mov edx, eax
mov eax, ebx
call fcn.004e5160
mov dword [esp + 4], str.Got_a_different_mode._n
mov dword [esp], eax
call fcn.004e6560
mov dword [esp + 8], ebx
mov dword [esp + 4], 0xfffffffe
mov dword [esp], 0
mov ecx, dword [ebp - 0x2f4]
call ecx
sub esp, 0xc
mov dword [ebp - 0x2f0], eax
mov eax, 0xf5a
call fcn.004e5d30
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.EnumDisplaySettingsW_failed__error__lu._n
mov dword [esp + 8], eax
mov edx, dword [ebp - 0x2f0]
mov dword [esp], edx
call fcn.004e6560
mov eax, 0xf5b
call fcn.004e5d30
lea eax, [ebp - 0x1c4]
mov edx, eax
mov eax, ebx
call fcn.004e5160
mov dword [esp + 4], str.Got_a_different_mode._n
mov dword [esp], eax
call fcn.004e6560
mov eax, dword [esi]
mov dword [esp], esi
call dword [eax + 8]
sub esp, 4
mov ebx, eax
mov eax, 0xf5e
call fcn.004e5d30
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_refcount__lu._n
mov dword [esp], eax
call fcn.004e6560
mov ecx, dword [ebp - 0x2e4]
mov ebx, dword [sym.imp.user32.dll_DestroyWindow]
mov dword [0x5e83cc], 0
mov dword [esp], ecx
call ebx
mov ecx, dword [ebp - 0x300]
sub esp, 4
mov dword [esp], ecx
call ebx
mov esi, dword [sym.imp.kernel32.dll_GetModuleHandleA]
sub esp, 4
mov dword [esp], 0
call esi
mov ebx, dword [sym.imp.user32.dll_UnregisterClassA]
sub esp, 4
mov dword [esp + 4], eax
mov dword [esp], str.ddraw_test_wndproc_wc
call ebx
sub esp, 8
mov dword [esp], 0
call esi
sub esp, 4
mov dword [esp + 4], eax
mov dword [esp], str.ddraw_test_wndproc_wc2
call ebx
mov edi, dword [ebp - 0x2ec]
mov edx, dword [ebp - 0x2e8]
sub esp, 8
mov eax, edi
call fcn.004e59e0
mov ebx, eax
mov eax, 0xf66
call fcn.004e5d30
mov dword [esp], ebx
mov dword [esp + 4], str.Failed_to_restore_display_modes._n
call fcn.004e6560
mov dword [esp], edi
call dword [sym.imp.msvcrt.dll_free]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
xor edx, edx
cmp dword [ebp - 0x290], ecx
sete dl
jmp 0x5301f5
xor edx, edx
cmp dword [0x5e8490], ecx
sete dl
jmp 0x5300ad
xor ecx, ecx
cmp esi, edi
sete cl
jmp 0x52ff1f
xor ecx, ecx
cmp esi, edi
sete cl
jmp 0x52fac1
xor ecx, ecx
cmp edi, ebx
sete cl
mov esi, ecx
jmp 0x5337d3
xor ecx, ecx
cmp ebx, edi
sete cl
jmp 0x53320e
mov dword [esp + 4], 9
mov eax, dword [ebp - 0x2e4]
mov dword [esp], eax
call edi
sub esp, 8
call fcn.004e5660
jmp 0x530813
mov eax, 0xc49
call fcn.004e5d30
mov dword [esp], str.Fewer_than_3_different_modes_supported__skipping_mode_restore_test._n
call fcn.004e5ff0
mov eax, dword [ebp - 0x2e0]
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll_free]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret