Function at 0x443ae0
Capabilities:
Create thread
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov eax, dword [0x4fc00c]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, ecx
push 0x828
push 0
lea eax, [edi + 0x134]
push eax
call fcn.0047ebc0
mov eax, dword [ebp + 8]
add esp, 0xc
mov dword [edi + 0x974], eax
mov dword [edi + 0x978], esi
mov dword [edi + 0x11c], 0
push 0
push edi
push 0x4ca498
push 0x800
push esi
call dword [sym.imp.DINPUT8.dll_DirectInput8Create]
test eax, eax
je 0x443b63
mov ecx, str.DirectInput
call fcn.0044cef0
mov ecx, edi
call fcn.00443df0
pop edi
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0047d312
mov esp, ebp
pop ebp
ret 0x14
mov ecx, dword [edi]
lea esi, [edi + 4]
push 0
push esi
push 0x4ca548
mov eax, dword [ecx]
push ecx
call dword [eax + 0xc]
test eax, eax
je 0x443b81
mov ecx, 0x4f0bb0
jmp 0x443bc5
mov eax, dword [esi]
push 0x4ca558
push eax
mov ecx, dword [eax]
call dword [ecx + 0x2c]
test eax, eax
je 0x443b99
mov ecx, 0x4f0bd8
jmp 0x443bc5
mov eax, dword [esi]
push 0xa
push dword [edi + 0x974]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x34]
test eax, eax
je 0x443bb4
mov ecx, 0x4f0c00
jmp 0x443bc5
mov eax, dword [esi]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
test eax, eax
je 0x443bef
mov ecx, str.DirectInputDevice
call fcn.0044cef0
mov ecx, str.DirectInput_Key_Device
call fcn.0044cef0
mov ecx, edi
call fcn.00443df0
pop edi
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0047d312
mov esp, ebp
pop ebp
ret 0x14
mov ecx, str.DirectInput_Key___:_Device_Create_OK_
call fcn.0044cef0
mov ecx, dword [edi]
lea esi, [edi + 0x108]
push 0
push esi
push 0x4ca538
mov eax, dword [ecx]
push ecx
call dword [eax + 0xc]
test eax, eax
je 0x443c1d
mov ecx, 0x4f0cec
jmp 0x443ca7
mov eax, dword [esi]
push 0x4ca570
push eax
mov ecx, dword [eax]
call dword [ecx + 0x2c]
test eax, eax
je 0x443c35
mov ecx, 0x4f0d1c
jmp 0x443ca7
mov eax, dword [esi]
push 0xa
push dword [edi + 0x974]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x34]
test eax, eax
je 0x443c50
mov ecx, 0x4f0d4c
jmp 0x443ca7
mov ecx, str.DirectInput_Mouse_:_REL_Mode
mov dword [ebp - 0x18], 0x14
mov dword [ebp - 0x14], 0x10
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 1
call fcn.0044cef0
mov eax, dword [esi]
lea edx, [ebp - 0x18]
push edx
push 2
push eax
mov ecx, dword [eax]
call dword [ecx + 0x18]
test eax, eax
je 0x443c96
mov ecx, 0x4f0d9c
jmp 0x443ca7
mov eax, dword [esi]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
test eax, eax
je 0x443cd1
mov ecx, 0x4f0dd0
call fcn.0044cef0
mov ecx, str.DirectInput_Mouse_Device
call fcn.0044cef0
mov ecx, edi
call fcn.00443df0
pop edi
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0047d312
mov esp, ebp
pop ebp
ret 0x14
lea eax, [ebp - 0x20]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
mov eax, dword [ebp - 0x20]
mov ecx, str.DI_Mouse_:_Device_Create_OK__
mov dword [0x502ca0], eax
mov eax, dword [ebp - 0x1c]
mov dword [0x502ca4], eax
call fcn.0044cef0
push 0x4f1078
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [edi + 0x964], eax
test eax, eax
je 0x443d32
push str.XInputGetStateEx
push eax
call esi
mov dword [edi + 0x968], eax
test eax, eax
jne 0x443d32
push 0x64
push dword [edi + 0x964]
call esi
mov dword [edi + 0x968], eax
push str.XInput1_4.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [edi + 0x96c], eax
test eax, eax
je 0x443d65
push str.XInput1_4.DLL_Find_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push str.XInputGetAudioDeviceIds
push dword [edi + 0x96c]
call esi
mov dword [edi + 0x970], eax
cmp dword [edi], 0
mov byte [edi + 0x95e], 0
je 0x443d94
mov ecx, edi
call fcn.00444630
lea eax, [ebp - 0x1c]
push eax
push 0
push edi
push 0x444af0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [edi + 0x960], eax
call fcn.00448980
push 4
push 0x3000
push 0x168
push 0
mov esi, eax
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov dword [esi + 8], eax
test eax, eax
je 0x443dbf
mov eax, 0x1e
mov word [esi + 4], ax
mov ecx, str.DI_Initialize_OK_
mov dword [edi + 0x138], 8
call fcn.0044cef0
mov ecx, dword [ebp - 4]
mov al, 1
pop edi
xor ecx, ebp
pop esi
call fcn.0047d312
mov esp, ebp
pop ebp
ret 0x14