Function at 0x41c950
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x56343e
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push esi
mov eax, dword [0x661850]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x1c], ecx
push str.Wed_Sep_30_22:04:02_2015
push 0xfd9
push str.CGameProcess::OnRButtonDown
push str.GameProcessGameProc.cpp
lea ecx, [ebp - 0xd]
call fcn.004024e0
mov dword [ebp - 4], 0
mov eax, dword [ebp + 0xc]
and eax, 0xffff
movzx ecx, ax
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x100b2c], ecx
mov eax, dword [ebp + 0xc]
shr eax, 0x10
and eax, 0xffff
movzx ecx, ax
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x100b30], ecx
mov eax, dword [ebp - 0x1c]
movsx ecx, word [eax + 0x41b42]
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x100b2c]
add eax, 0xc8
cdq
mov esi, 0x30
idiv esi
add ecx, eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x100b34], ecx
mov ecx, dword [ebp - 0x1c]
movsx ecx, word [ecx + 0x41b44]
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x100b30]
add eax, 0x9d
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
add ecx, eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x100b38], ecx
mov ecx, dword [ebp - 0x1c]
mov byte [ecx + 0xa4d], 1
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0xff720]
push eax
mov ecx, dword [ebp - 0x1c]
call fcn.00420900
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x41ca69
push str.CActor
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x14]
mov eax, dword [edx + 0xc]
call eax
movzx ecx, al
test ecx, ecx
je 0x41ca69
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0xff720], 0
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 8
and eax, 0xff
movzx ecx, al
test ecx, ecx
je 0x41cb4b
mov edx, dword [ebp - 0x1c]
cmp dword [edx + 0x10f304], 0
je 0x41cb46
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x10f304]
movzx edx, byte [ecx + 0x12c]
test edx, edx
je 0x41cabe
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x10f304]
movzx edx, byte [ecx + 0x12c]
cmp edx, 1
jne 0x41cb27
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x10f304]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ecx + 4]
cmp eax, dword [edx + 0xfb10c]
je 0x41cb25
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x10f304]
movzx eax, word [edx + 0x1a2]
push eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x10f304]
movzx eax, word [edx + 0x1a0]
push eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x10f304]
mov eax, dword [edx + 4]
push eax
mov ecx, 0x7c46b0
call fcn.00508c30
mov ecx, dword [ebp - 0x1c]
mov byte [ecx + 0xa4d], 0
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0xc9a4c], 0xffffffff
jmp 0x41cb46
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x100b30]
push ecx
mov edx, dword [eax + 0x100b2c]
push edx
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfb108
call fcn.004cc990
jmp 0x41cca3
push 0x12
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 8
and eax, 0xff
movzx ecx, al
test ecx, ecx
je 0x41cc49
mov edx, dword [ebp - 0x1c]
cmp dword [edx + 0x10f304], 0
je 0x41cc47
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x10f304]
movzx edx, byte [ecx + 0x12c]
test edx, edx
je 0x41cba4
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x10f304]
movzx edx, byte [ecx + 0x12c]
cmp edx, 1
jne 0x41cc47
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x10f304]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ecx + 4]
cmp eax, dword [edx + 0xfb10c]
je 0x41cc33
mov ecx, dword [ebp - 0x1c]
movzx edx, byte [ecx + 0xff734]
test edx, edx
je 0x41cc1a
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x10f304]
add ecx, 8
push ecx
mov ecx, dword [ebp - 0x1c]
add ecx, 0xdfd24
call fcn.00477c90
test eax, eax
je 0x41cc01
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x10f304]
add eax, 8
push eax
mov ecx, 0x7c46b0
call fcn.00508460
jmp 0x41cc18
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x10f304]
add edx, 8
push edx
mov ecx, 0x7c46b0
call fcn.005083c0
jmp 0x41cc31
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x10f304]
add ecx, 8
push ecx
mov ecx, 0x7c46b0
call fcn.00508260
jmp 0x41cc47
mov edx, dword [ebp - 0x1c]
add edx, 0xfb110
push edx
mov ecx, 0x7c46b0
call fcn.00508460
jmp 0x41cca3
mov ecx, dword [ebp - 0x1c]
add ecx, 0x10d17c
call fcn.0043b430
movzx eax, al
test eax, eax
jne 0x41cca3
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x100b30]
push edx
mov eax, dword [ecx + 0x100b2c]
push eax
mov ecx, dword [ebp - 0x1c]
add ecx, 0x41fe0
call fcn.00499e60
movzx ecx, al
test ecx, ecx
jne 0x41cca3
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x100b30]
push eax
mov ecx, dword [edx + 0x100b2c]
push ecx
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfb108
call fcn.004cc990
mov dword [ebp - 0x18], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xd]
call fcn.00402620
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret 8