Function at 0x41be40
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x74
push ebx
push esi
mov esi, ecx
push edi
test esi, esi
je 0x41c06e
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.GetDllInfo
push esi
call edi
lea ecx, [esp + 0x10]
mov dword [0x4af150], eax
push ecx
call eax
add esp, 4
push 0x4a0d0c
push esi
call edi
push str.ControllerCommand
push esi
mov dword [fcn.0040c6a0], eax
call edi
push str.GetKeys
push esi
mov dword [fcn.0040c6a0], eax
call edi
push str.SetKeys
push esi
mov dword [fcn.0040c6a0], eax
call edi
mov ebx, 0x101
mov dword [fcn.0040c6a0], eax
cmp word [esp + 0x10], bx
jne 0x41bec2
push 0x4a0d3c
push esi
call edi
mov dword [fcn.0040c6a0], eax
jmp 0x41becf
push str.InitiateControllers
push esi
call edi
mov dword [0x4b1548], eax
push str.ReadController
push esi
call edi
push 0x4a0d74
push esi
mov dword [fcn.0040c6a0], eax
call edi
push 0x4a0d80
push esi
mov dword [fcn.0040c6a0], eax
call edi
push str.WM_KeyDown
push esi
mov dword [fcn.0040c6a0], eax
call edi
push str.WM_KeyUp
push esi
mov dword [fcn.0040c6a0], eax
call edi
mov ecx, dword [fcn.0040c6a0]
mov edx, eax
test ecx, ecx
movaps xmm0, xmmword [0x4a6b30]
mov edi, fcn.0040c6a0
movaps xmmword [0x4af120], xmm0
cmove ecx, edi
movaps xmm0, xmmword [0x4a6b00]
mov dword [fcn.0040c6a0], ecx
mov eax, fcn.0040c6a0
mov ecx, dword [fcn.0040c6a0]
mov esi, fcn.0040c6a0
test ecx, ecx
movaps xmmword [0x4af130], xmm0
movaps xmm0, xmmword [0x4a6b50]
cmove ecx, eax
mov dword [0x24b1a0c], 1
mov eax, dword [fcn.0040c6a0]
test eax, eax
mov dword [fcn.0040c6a0], ecx
mov ecx, fcn.0040c6a0
cmove eax, ecx
mov dword [0x24b1a14], 0x4af120
mov dword [fcn.0040c6a0], eax
mov ecx, fcn.0040c6a0
mov eax, dword [fcn.0040c6a0]
test eax, eax
movaps xmmword [0x4af140], xmm0
cmove eax, ecx
mov ecx, dword [fcn.0040c6a0]
mov dword [fcn.0040c6a0], eax
test ecx, ecx
mov eax, fcn.0040c6a0
cmove ecx, eax
mov eax, dword [fcn.0040c6a0]
test eax, eax
mov dword [fcn.0040c6a0], ecx
cmove eax, esi
mov esi, fcn.0040c6a0
mov dword [fcn.0040c6a0], eax
mov eax, dword [fcn.0040c6a0]
test eax, eax
cmove eax, edi
mov dword [fcn.0040c6a0], eax
mov eax, dword [fcn.0040c6a0]
test eax, eax
cmove eax, edi
mov dword [fcn.0040c6a0], eax
mov eax, dword [fcn.0040c6a0]
test eax, eax
cmove eax, esi
test edx, edx
mov dword [fcn.0040c6a0], eax
mov eax, fcn.0040c6a0
cmove edx, eax
mov eax, dword [0x4b0dd8]
mov dword [fcn.0040c6a0], edx
mov edx, dword [0x4b09c4]
mov dword [0x24b1a08], eax
mov eax, dword [0x4af158]
mov dword [0x24b1a04], edx
mov dword [0x24b1a10], eax
cmp word [esp + 0x10], bx
jne 0x41c056
movups xmm0, xmmword [0x24b1a04]
sub esp, 0x14
mov eax, esp
movups xmmword [eax], xmm0
mov dword [eax + 0x10], 0x4af120
call ecx
add esp, 0x14
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x4af120
push edx
call dword [0x4b1548]
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov dword [fcn.0040c6a0], 0x40c6a0
xor eax, eax
mov dword [fcn.0040c6a0], 0x40c6a0
mov dword [fcn.0040c6a0], 0x40c6a0
mov dword [fcn.0040c6a0], 0x40c6a0
mov dword [fcn.0040c6a0], 0x40c6a0
mov dword [fcn.0040c6a0], 0x40c6a0
mov dword [fcn.0040c6a0], 0x40c6a0
mov dword [fcn.0040c6a0], 0x40c6a0
mov dword [fcn.0040c6a0], 0x40c6a0
mov dword [fcn.0040c6a0], 0x40c6a0
pop ebx
mov esp, ebp
pop ebp
ret