Function at 0x5ef590
Capabilities:
Print debug messages

Disassembly:
sub esp, 0x88
push ebp
push esi
xor ebp, ebp
push edi
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push str.DDRAW.DLL
mov dword [esp + 0x10], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x20], ebp
call edi
mov esi, eax
cmp esi, ebp
jne 0x5ef5ce
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0x88
ret
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x86f5e0
push esi
call ebx
cmp eax, ebp
jne 0x5ef600
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push str.Couldnt_LoadLibrary_DDraw_r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0x88
ret
push ebp
lea ecx, [esp + 0x14]
push ecx
push ebp
call eax
test eax, eax
jge 0x5ef62c
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push str.Couldnt_create_DDraw_r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0x88
ret
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
lea ecx, [esp + 0x1c]
push ecx
push 0x8990d0
push eax
call dword [edx]
test eax, eax
jge 0x5ef66f
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
push eax
call dword [edx + 8]
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push str.Couldnt_QI_DDraw2_r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop ebx
pop edi
pop esi
mov eax, 0x100
pop ebp
add esp, 0x88
ret
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push str.DINPUT.DLL
call edi
mov edi, eax
cmp edi, ebp
jne 0x5ef6ab
push str.Couldnt_LoadLibrary_DInput_r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
push eax
call dword [edx + 8]
pop ebx
pop edi
pop esi
mov eax, 0x200
pop ebp
add esp, 0x88
ret
push 0x86f550
push edi
call ebx
test eax, eax
push edi
jne 0x5ef6e8
mov edi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
call edi
push esi
call edi
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push str.Couldnt_GetProcAddress_DInputCreate_r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop ebx
pop edi
pop esi
mov eax, 0x200
pop ebp
add esp, 0x88
ret
mov ebx, dword [sym.imp.KERNEL32.dll_FreeLibrary]
call ebx
xor eax, eax
push 8
mov ecx, 0x1b
lea edi, [esp + 0x30]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x14]
push ebp
mov dword [esp + 0x34], 0x6c
mov dword [esp + 0x38], 1
mov dword [esp + 0x9c], 0x200
mov edx, dword [eax]
push eax
call dword [edx + 0x50]
test eax, eax
mov eax, dword [esp + 0x10]
jge 0x5ef74e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push esi
call ebx
push str.Couldnt_Set_coop_level_r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0x88
ret
mov edx, dword [eax]
push ebp
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x34]
push ecx
push eax
call dword [edx + 0x18]
test eax, eax
jge 0x5ef788
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
push eax
call dword [edx + 8]
push esi
call ebx
push str.Couldnt_CreateSurface_r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0x88
ret
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
lea edx, [esp + 0x28]
push edx
push 0x8990b0
push eax
call dword [ecx]
test eax, eax
jge 0x5ef7bc
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push esi
call ebx
pop ebx
pop edi
pop esi
mov eax, 0x300
pop ebp
add esp, 0x88
ret
mov eax, dword [esp + 0x14]
mov edx, dword [eax]
lea ecx, [esp + 0x20]
push ecx
push 0x8990a0
push eax
call dword [edx]
test eax, eax
jge 0x5ef7f0
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
push eax
call dword [edx + 8]
push esi
call ebx
pop ebx
pop edi
pop esi
mov eax, 0x500
pop ebp
add esp, 0x88
ret
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
push eax
call dword [edx + 8]
push ebp
mov dword [esp + 0x1c], ebp
call dword [sym.imp.ole32.dll_CoInitialize]
lea eax, [esp + 0x18]
push eax
push 0x898f00
push 1
push ebp
push 0x898f10
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jge 0x5ef849
push str.Couldnt_create_CLSID_DirectMusic_r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push esi
call ebx
pop ebx
pop edi
pop esi
mov eax, 0x600
pop ebp
add esp, 0x88
ret
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
push str.DirectDrawCreateEx
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, ebp
jne 0x5ef87c
push esi
call ebx
pop ebx
pop edi
pop esi
mov eax, 0x601
pop ebp
add esp, 0x88
ret
push ebp
push 0x8990c0
lea edx, [esp + 0x2c]
push edx
push ebp
call eax
test eax, eax
jl 0x5ef869
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push str.D3D8.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
cmp edi, ebp
jne 0x5ef8bc
push esi
call ebx
pop ebx
pop edi
pop esi
mov eax, 0x700
pop ebp
add esp, 0x88
ret
push str.dpnhpast.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
cmp eax, ebp
jne 0x5ef8e9
push ebp
call ebx
push str.Couldnt_LoadLibrary_dpnhpast.dll_r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop ebx
pop edi
pop esi
mov eax, 0x800
pop ebp
add esp, 0x88
ret
push eax
call ebx
push esi
call ebx
push edi
call ebx
pop ebx
pop edi
pop esi
mov eax, 0x801
pop ebp
add esp, 0x88
ret