Function at 0x445060
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x168
mov eax, dword [0x4fc00c]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
push esi
mov esi, ecx
push edi
mov edi, dword [ebp + 8]
mov ecx, dword [esi]
test ecx, ecx
je 0x44509a
mov eax, dword [ecx]
push 0x4ca588
push ecx
call dword [eax + 0x2c]
test eax, eax
je 0x4450af
mov ecx, str.DI_CreateDevice_JoyStick_:_SetDataFormat_Failed
call fcn.0044cef0
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0047d312
mov esp, ebp
pop ebp
ret 0xc
mov bl, byte [ebp + 0x10]
mov eax, 0xa
test bl, bl
mov byte [esi + 0x204], bl
mov edx, 5
cmove edx, eax
mov eax, dword [esi]
push edx
push edi
push eax
mov ecx, dword [eax]
call dword [ecx + 0x34]
test eax, eax
je 0x4450f4
mov ecx, 0x4f132c
call fcn.0044cef0
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0047d312
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [esi]
lea edx, [ebp - 0x138]
push edx
mov dword [ebp - 0x138], 0x18
mov dword [ebp - 0x134], 0x10
mov dword [ebp - 0x130], 0
mov dword [ebp - 0x12c], 1
mov dword [ebp - 0x128], 0xfffffc18
mov dword [ebp - 0x124], 0x3e8
mov ecx, dword [eax]
push 4
push eax
call dword [ecx + 0x18]
mov eax, dword [esi]
lea edx, [ebp - 0x138]
push edx
mov dword [ebp - 0x130], 4
push 4
mov ecx, dword [eax]
push eax
call dword [ecx + 0x18]
mov ecx, str.DirectInput_JoyStick_:_Device_Create_OK_
call fcn.0044cef0
test bl, bl
je 0x4451bb
mov eax, dword [esi]
lea edx, [ebp - 0x120]
push edx
mov dword [ebp - 0x120], 0x14
mov dword [ebp - 0x11c], 0x10
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x114], 0
mov dword [ebp - 0x110], 1
mov ecx, dword [eax]
push 9
push eax
call dword [ecx + 0x18]
test eax, eax
je 0x4451bb
mov ecx, str.DI_JoyStick_:_AutoCenter_Failed
call fcn.0044cef0
mov eax, dword [esi]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
test eax, eax
je 0x4451e6
mov ecx, str.DirectInputDevice_JoyStick
call fcn.0044cef0
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0047d312
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [esi]
lea edx, [ebp - 0x164]
xorps xmm0, xmm0
mov dword [ebp - 0x164], 0x2c
movlpd qword [ebp - 0x160], xmm0
movlpd qword [ebp - 0x158], xmm0
movlpd qword [ebp - 0x150], xmm0
movlpd qword [ebp - 0x148], xmm0
movlpd qword [ebp - 0x140], xmm0
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0xc]
cmp byte [esi + 0x114], 0
movzx eax, byte [ebp - 0x158]
mov byte [esi + 0xc], al
movzx eax, byte [ebp - 0x154]
mov byte [esi + 0xd], al
mov byte [esi + 8], 1
je 0x445459
mov al, byte [0x502534]
xorps xmm0, xmm0
mov byte [esi + 0x115], al
inc al
mov byte [0x502534], al
lea eax, [ebp - 0x120]
push eax
movzx eax, byte [esi + 0x115]
push 1
push eax
movups xmmword [ebp - 0x120], xmm0
mov dword [ebp - 0x110], 0
call dword [sym.imp.XINPUT1_4.dll_Ordinal_4]
xor dl, dl
mov byte [esi + 0xd], 0
test dword [ebp - 0x11c], 0x1000
je 0x4452ae
mov dword [esi + 0x118], 0
mov dl, 1
mov byte [esi + 0xd], 1
test dword [ebp - 0x11c], 0x2000
je 0x4452ce
movzx eax, dl
mov dword [esi + eax*4 + 0x118], 1
inc byte [esi + 0xd]
mov dl, byte [esi + 0xd]
test dword [ebp - 0x11c], 0x4000
je 0x4452ee
movzx eax, dl
mov dword [esi + eax*4 + 0x118], 2
inc byte [esi + 0xd]
mov dl, byte [esi + 0xd]
test dword [ebp - 0x11c], 0x8000
je 0x44530e
movzx eax, dl
mov dword [esi + eax*4 + 0x118], 3
inc byte [esi + 0xd]
mov dl, byte [esi + 0xd]
test dword [ebp - 0x11c], 0x100
je 0x44532e
movzx eax, dl
mov dword [esi + eax*4 + 0x118], 4
inc byte [esi + 0xd]
mov dl, byte [esi + 0xd]
test dword [ebp - 0x11c], 0x200
je 0x44534e
movzx eax, dl
mov dword [esi + eax*4 + 0x118], 5
inc byte [esi + 0xd]
mov dl, byte [esi + 0xd]
test byte [ebp - 0x11c], 0x10
je 0x44536b
movzx eax, dl
mov dword [esi + eax*4 + 0x118], 6
inc byte [esi + 0xd]
mov dl, byte [esi + 0xd]
test byte [ebp - 0x11c], 0x20
je 0x445388
movzx eax, dl
mov dword [esi + eax*4 + 0x118], 7
inc byte [esi + 0xd]
mov dl, byte [esi + 0xd]
test byte [ebp - 0x11c], 0x40
je 0x4453a5
movzx eax, dl
mov dword [esi + eax*4 + 0x118], 8
inc byte [esi + 0xd]
mov dl, byte [esi + 0xd]
test byte [ebp - 0x11c], 0x80
je 0x4453c2
movzx eax, dl
mov dword [esi + eax*4 + 0x118], 9
inc byte [esi + 0xd]
mov dl, byte [esi + 0xd]
cmp byte [ebp - 0x11a], 0xff
jne 0x4453df
movzx eax, dl
mov dword [esi + eax*4 + 0x118], 0xc
inc byte [esi + 0xd]
mov dl, byte [esi + 0xd]
cmp byte [ebp - 0x119], 0xff
jne 0x4453fc
movzx eax, dl
mov dword [esi + eax*4 + 0x118], 0xd
inc byte [esi + 0xd]
mov dl, byte [esi + 0xd]
mov eax, dword [ebp + 0xc]
mov dword [esi + 4], eax
test eax, eax
je 0x44541a
movzx eax, dl
mov dword [esi + eax*4 + 0x118], 0xa
inc byte [esi + 0xd]
mov dl, byte [esi + 0xd]
movzx eax, byte [ebp - 0x119]
movzx ecx, word [ebp - 0x11c]
push eax
movzx eax, byte [ebp - 0x11a]
push eax
push ecx
push ecx
movzx eax, dl
push eax
lea eax, [ebp - 0x10c]
push str.capability_DIbuttons:_d___button:_d__X____LT:_d___RT:_d_n
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x1c
lea eax, [ebp - 0x10c]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov ecx, dword [ebp - 8]
mov al, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0047d312
mov esp, ebp
pop ebp
ret 0xc