Function at 0x4345e0
Capabilities:
Print debug messages

Disassembly:
sub esp, 0x84
push ebx
push esi
xor ebx, ebx
push edi
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push str.DDRAW.DLL
mov dword [esp + 0x10], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
call edi
mov esi, eax
cmp esi, ebx
jne 0x434629
push str.Couldnt_LoadLibrary_DDraw_r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x84
ret
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x5211c8
push esi
call ebp
cmp eax, ebx
jne 0x43465b
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push str.Couldnt_GetProcAddress_DirectDrawCreate_r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop ebp
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x84
ret
push ebx
lea ecx, [esp + 0x14]
push ecx
push ebx
call eax
test eax, eax
jge 0x434687
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push str.Couldnt_create_DDraw_r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop ebp
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x84
ret
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
lea ecx, [esp + 0x20]
push ecx
push 0x517978
push eax
call dword [edx]
test eax, eax
jge 0x4346ca
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 ebp
pop edi
pop esi
mov eax, 0x100
pop ebx
add esp, 0x84
ret
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push str.DINPUT.DLL
call edi
mov edi, eax
cmp edi, ebx
jne 0x43470d
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_LoadLibrary_DInput_r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop ebp
pop edi
pop esi
mov eax, 0x200
pop ebx
add esp, 0x84
ret
push str.DirectInputCreateA
push edi
call ebp
test eax, eax
push edi
jne 0x43474a
mov edi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
call edi
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push esi
call edi
push str.Couldnt_GetProcAddress_DInputCreate_r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop ebp
pop edi
pop esi
mov eax, 0x200
pop ebx
add esp, 0x84
ret
mov ebx, dword [sym.imp.KERNEL32.dll_FreeLibrary]
call ebx
xor eax, eax
push 8
mov ecx, 0x1b
lea edi, [esp + 0x2c]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x14]
push 0
mov dword [esp + 0x30], 0x6c
mov dword [esp + 0x34], 1
mov dword [esp + 0x98], 0x200
mov edx, dword [eax]
push eax
call dword [edx + 0x50]
test eax, eax
mov eax, dword [esp + 0x10]
jge 0x4347b1
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 ebp
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x84
ret
mov edx, dword [eax]
push 0
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x30]
push ecx
push eax
call dword [edx + 0x18]
test eax, eax
jge 0x4347ec
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 ebp
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x84
ret
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
lea edx, [esp + 0x18]
push edx
push 0x517958
push eax
call dword [ecx]
test eax, eax
jge 0x434835
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 esi
call ebx
push str.Couldnt_QI_DDS3_r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop ebp
pop edi
pop esi
mov eax, 0x300
pop ebx
add esp, 0x84
ret
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x14]
mov edx, dword [eax]
lea ecx, [esp + 0x1c]
push ecx
push 0x517948
push eax
call dword [edx]
test eax, eax
jge 0x434888
mov eax, dword [esp + 0x14]
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push esi
call ebx
push str.Couldnt_QI_DDS4_r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop ebp
pop edi
pop esi
mov eax, 0x500
pop ebx
add esp, 0x84
ret
mov eax, dword [esp + 0x1c]
mov edx, dword [eax]
push eax
call dword [edx + 8]
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 str.DirectDrawCreateEx
push esi
call ebp
test eax, eax
jne 0x4348d0
push esi
call ebx
push str.Couldnt_GetProcAddress_DirectDrawCreateEx_r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop ebp
pop edi
pop esi
mov eax, 0x600
pop ebx
add esp, 0x84
ret
push 0
push 0x517968
lea ecx, [esp + 0x2c]
push ecx
push 0
call eax
test eax, eax
jge 0x434902
push esi
call ebx
push str.Couldnt_DirectDrawCreateEx_r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop ebp
pop edi
pop esi
mov eax, 0x600
pop ebx
add esp, 0x84
ret
mov eax, dword [esp + 0x24]
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov ebp, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push str.D3D8.DLL
call ebp
mov edi, eax
test edi, edi
jne 0x43493d
push esi
call ebx
push str.Couldnt_LoadLibrary_D3D8.DLL_r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop ebp
pop edi
pop esi
mov eax, 0x700
pop ebx
add esp, 0x84
ret
push str.dpnhpast.dll
call ebp
test eax, eax
jne 0x434966
push eax
call ebx
push str.Couldnt_LoadLibrary_dpnhpast.dll_r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop ebp
pop edi
pop esi
mov eax, 0x800
pop ebx
add esp, 0x84
ret
push esi
call ebx
push edi
call ebx
pop ebp
pop edi
pop esi
mov eax, 0x801
pop ebx
add esp, 0x84
ret