Function at 0x44b190
Capabilities:
Print debug messages

Disassembly:
sub esp, 0x88
push ebx
push ebp
push esi
push edi
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
xor ebp, ebp
push str.DDRAW.DLL
mov dword [esp + 0x14], ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x28], ebp
call edi
mov esi, eax
cmp esi, ebp
jne 0x44b1db
push str.Couldnt_LoadLibrary_DDraw_r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x88
ret
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.DirectDrawCreate
push esi
call ebx
cmp eax, ebp
jne 0x44b20c
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push str.Couldnt_GetProcAddress_DirectDrawCreate_r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x88
ret
lea ecx, [esp + 0x10]
push ebp
push ecx
push ebp
call eax
test eax, eax
jge 0x44b238
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push str.Couldnt_create_DDraw_r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x88
ret
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x20]
push ecx
push 0x49b100
mov edx, dword [eax]
push eax
call dword [edx]
test eax, eax
jge 0x44b27b
mov eax, dword [esp + 0x10]
push eax
mov edx, dword [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 edi
pop esi
pop ebp
mov eax, 0x100
pop ebx
add esp, 0x88
ret
mov eax, dword [esp + 0x20]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
push str.DINPUT.DLL
call edi
mov edi, eax
cmp edi, ebp
jne 0x44b2be
mov eax, dword [esp + 0x10]
push eax
mov edx, dword [eax]
call dword [edx + 8]
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push str.Couldnt_LoadLibrary_DInput_r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop edi
pop esi
pop ebp
mov eax, 0x200
pop ebx
add esp, 0x88
ret
push str.DirectInputCreateA
push edi
call ebx
test eax, eax
push edi
jne 0x44b2fb
mov edi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
call edi
mov eax, dword [esp + 0x10]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
push esi
call edi
push str.Couldnt_GetProcAddress_DInputCreate_r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop edi
pop esi
pop ebp
mov eax, 0x200
pop ebx
add esp, 0x88
ret
mov ebx, dword [sym.imp.KERNEL32.dll_FreeLibrary]
call ebx
mov ecx, 0x1b
xor eax, eax
lea edi, [esp + 0x2c]
push 8
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x30], 0x6c
mov dword [esp + 0x34], 1
mov dword [esp + 0x98], 0x200
mov edx, dword [eax]
push ebp
push eax
call dword [edx + 0x50]
test eax, eax
mov eax, dword [esp + 0x10]
jge 0x44b361
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 edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x88
ret
mov edx, dword [eax]
lea ecx, [esp + 0x14]
push ebp
push ecx
lea ecx, [esp + 0x34]
push ecx
push eax
call dword [edx + 0x18]
test eax, eax
jge 0x44b39b
mov eax, dword [esp + 0x10]
push eax
mov edx, dword [eax]
call dword [edx + 8]
push esi
call ebx
push str.Couldnt_CreateSurface_r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x88
ret
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x18]
push edx
push 0x49b0e0
mov ecx, dword [eax]
push eax
call dword [ecx]
test eax, eax
jge 0x44b3e4
mov eax, dword [esp + 0x14]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [esp + 0x10]
push eax
mov edx, dword [eax]
call dword [edx + 8]
push esi
call ebx
push str.Couldnt_QI_DDS3_r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop edi
pop esi
pop ebp
mov eax, 0x300
pop ebx
add esp, 0x88
ret
mov eax, dword [esp + 0x18]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x24]
push ecx
push 0x49b0d0
mov edx, dword [eax]
push eax
call dword [edx]
test eax, eax
jge 0x44b437
mov eax, dword [esp + 0x14]
push eax
mov edx, dword [eax]
call dword [edx + 8]
mov eax, dword [esp + 0x10]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
push esi
call ebx
push str.Couldnt_QI_DDS4_r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop edi
pop esi
pop ebp
mov eax, 0x500
pop ebx
add esp, 0x88
ret
mov eax, dword [esp + 0x24]
push eax
mov edx, dword [eax]
call dword [edx + 8]
mov eax, dword [esp + 0x14]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [esp + 0x10]
push eax
mov edx, dword [eax]
call dword [edx + 8]
push ebp
mov dword [esp + 0x20], ebp
call dword [sym.imp.ole32.dll_CoInitialize]
lea eax, [esp + 0x1c]
push eax
push 0x49aff0
push 1
push ebp
push 0x49b000
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jge 0x44b49a
push esi
call ebx
push str.Couldnt_create_CLSID_DirectMusic_r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop edi
pop esi
pop ebp
mov eax, 0x600
pop ebx
add esp, 0x88
ret
mov eax, dword [esp + 0x1c]
push eax
mov ecx, dword [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 0x44b4d8
push esi
call ebx
push str.Couldnt_GetProcAddress_DirectDrawCreateEx_r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop edi
pop esi
pop ebp
mov eax, 0x601
pop ebx
add esp, 0x88
ret
push ebp
lea edx, [esp + 0x2c]
push 0x49b0f0
push edx
push ebp
call eax
test eax, eax
jge 0x44b508
push esi
call ebx
push str.Couldnt_DirectDrawCreateEx_r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop edi
pop esi
pop ebp
mov eax, 0x601
pop ebx
add esp, 0x88
ret
mov eax, dword [esp + 0x28]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
push str.D3D8.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
cmp edi, ebp
jne 0x44b541
push esi
call ebx
push str.Couldnt_LoadLibrary_D3D8.DLL_r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop edi
pop esi
pop ebp
mov eax, 0x700
pop ebx
add esp, 0x88
ret
push str.dpnhpast.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
cmp eax, ebp
jne 0x44b56e
push ebp
call ebx
push str.Couldnt_LoadLibrary_dpnhpast.dll_r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop edi
pop esi
pop ebp
mov eax, 0x800
pop ebx
add esp, 0x88
ret
push esi
call ebx
push edi
call ebx
pop edi
pop esi
pop ebp
mov eax, 0x801
pop ebx
add esp, 0x88
ret