Function at 0x41d780
Capabilities:
Get graphical window text
Hide graphical window
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5634fa
mov eax, dword fs:[0]
push eax
sub esp, 0x324
mov eax, dword [0x661850]
xor eax, ebp
mov dword [ebp - 0x2c], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x2f0], ecx
push str.Wed_Sep_30_22:04:02_2015
push 0x1150
push str.CGameProcess::OnKeyDown
push str.GameProcessGameProc.cpp
lea ecx, [ebp - 0x16]
call fcn.004024e0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x24]
call fcn.0043b030
fldz
fstp dword [ebp - 0xb8]
push ecx
fldz
fstp dword [esp]
push ecx
fldz
fstp dword [esp]
push ecx
fldz
fstp dword [esp]
lea ecx, [ebp - 0x108]
call fcn.0043af00
push ecx
fldz
fstp dword [esp]
push ecx
fldz
fstp dword [esp]
push ecx
fldz
fstp dword [esp]
lea ecx, [ebp - 0x1a4]
call fcn.0043af00
push ecx
fld1
fstp dword [esp]
push ecx
fld1
fstp dword [esp]
push ecx
fld1
fstp dword [esp]
lea ecx, [ebp - 0x198]
call fcn.0043af00
mov ecx, 0x69ec08
call fcn.0040ceb0
mov dword [ebp - 0x2f4], eax
lea eax, [ebp - 0x14c]
push eax
push 2
mov ecx, dword [ebp - 0x2f4]
push ecx
mov edx, dword [ebp - 0x2f4]
mov eax, dword [edx]
mov ecx, dword [eax + 0xb4]
call ecx
mov ecx, 0x7d27e8
call fcn.00444cd0
mov edx, dword [0x7ada48]
push edx
mov eax, dword [0x7ada44]
push eax
mov ecx, 0x6eeef8
call fcn.00495b70
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0xffffffff
je 0x41d8e7
cmp dword [ebp - 0x28], 0x16
jne 0x41d8e7
mov ecx, dword [0x7ada48]
push ecx
mov edx, dword [0x7ada44]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
mov ecx, 0x79566c
call fcn.004ba6f0
movzx edx, al
test edx, edx
je 0x41d8e7
mov dword [ebp - 0x2e4], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x16]
call fcn.00402620
mov eax, dword [ebp - 0x2e4]
jmp 0x41e2ff
mov byte [ebp - 0x15], 0
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
mov word [ebp - 0x10], ax
movzx eax, word [ebp - 0x10]
shr eax, 8
and eax, 0xff
movzx ecx, al
test ecx, ecx
je 0x41d926
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x41fe0
call fcn.0049d6a0
mov byte [ebp - 0x15], al
movzx ecx, byte [ebp - 0x15]
test ecx, ecx
jne 0x41db6d
push 0x577500
push 0x7ac4d1
call fcn.004372c0
add esp, 8
test eax, eax
jne 0x41d9a4
push 0x5774f8
push 0x7ac4d1
call fcn.004372c0
add esp, 8
test eax, eax
jne 0x41d9a4
push 0x5774ec
push 0x7ac4d1
call fcn.004372c0
add esp, 8
test eax, eax
jne 0x41d9a4
push 0x5774e4
push 0x7ac4d1
call fcn.004372c0
add esp, 8
test eax, eax
jne 0x41d9a4
push 0x5774d8
push 0x7ac4d1
call fcn.004372c0
add esp, 8
test eax, eax
je 0x41da4e
mov edx, dword [ebp - 0x2f0]
cmp dword [edx + 0x10f304], 0
je 0x41da1e
mov eax, dword [ebp - 0x2f0]
mov ecx, dword [eax + 0x10f304]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x2f0]
mov ecx, dword [eax + 0x10f304]
movzx edx, word [ecx + 0x1a0]
mov dword [ebp - 0xb4], edx
mov eax, dword [ebp - 0x2f0]
mov ecx, dword [eax + 0x10f304]
movzx edx, word [ecx + 0x1a2]
mov dword [ebp - 0xb0], edx
mov eax, dword [ebp - 0x2f0]
mov ecx, dword [eax + 0x10f304]
add ecx, 0x12c
mov edx, dword [ecx]
mov dword [ebp - 0x24], edx
mov eax, dword [ecx + 4]
mov dword [ebp - 0x20], eax
mov cx, word [ecx + 8]
mov word [ebp - 0x1c], cx
jmp 0x41da49
mov dword [ebp - 0x14], 0
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0xb0], 0
push 4
push 0
lea edx, [ebp - 0x24]
push edx
call fcn.005454d0
add esp, 0xc
jmp 0x41db11
mov eax, dword [ebp - 0x2f0]
cmp dword [eax + 0x10f304], 0
je 0x41dae6
mov ecx, dword [ebp - 0x2f0]
add ecx, 0xfb108
mov edx, dword [ebp - 0x2f0]
cmp dword [edx + 0x10f304], ecx
je 0x41dae6
mov eax, dword [ebp - 0x2f0]
mov ecx, dword [eax + 0x10f304]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x2f0]
mov ecx, dword [eax + 0x10f304]
movzx edx, word [ecx + 0x1a0]
mov dword [ebp - 0xb4], edx
mov eax, dword [ebp - 0x2f0]
mov ecx, dword [eax + 0x10f304]
movzx edx, word [ecx + 0x1a2]
mov dword [ebp - 0xb0], edx
mov eax, dword [ebp - 0x2f0]
mov ecx, dword [eax + 0x10f304]
add ecx, 0x12c
mov edx, dword [ecx]
mov dword [ebp - 0x24], edx
mov eax, dword [ecx + 4]
mov dword [ebp - 0x20], eax
mov cx, word [ecx + 8]
mov word [ebp - 0x1c], cx
jmp 0x41db11
mov dword [ebp - 0x14], 0
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0xb0], 0
push 4
push 0
lea edx, [ebp - 0x24]
push edx
call fcn.005454d0
add esp, 0xc
movzx eax, byte [ebp + 0x10]
push eax
sub esp, 0xc
mov ecx, esp
mov edx, dword [ebp - 0x24]
mov dword [ecx], edx
mov eax, dword [ebp - 0x20]
mov dword [ecx + 4], eax
mov dx, word [ebp - 0x1c]
mov word [ecx + 8], dx
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0xb0]
push ecx
mov edx, dword [ebp - 0xb4]
push edx
mov eax, dword [ebp - 0x2f0]
mov ecx, dword [eax + 0x100b30]
push ecx
mov edx, dword [eax + 0x100b2c]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
mov ecx, dword [ebp - 0x2f0]
add ecx, 0xfb108
call fcn.004cdd40
mov edx, dword [ebp + 8]
mov dword [ebp - 0x2f8], edx
mov eax, dword [ebp - 0x2f8]
sub eax, 9
mov dword [ebp - 0x2f8], eax
cmp dword [ebp - 0x2f8], 0xb6
ja case.0x41dba2.1
mov ecx, dword [ebp - 0x2f8]
movzx edx, byte [ecx + 0x41e344]
jmp dword [edx*4 + 0x41e31c]
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
mov word [ebp - 0x10], ax
movzx eax, word [ebp - 0x10]
shr eax, 8
and eax, 0xff
movzx ecx, al
test ecx, ecx
je 0x41dbd9
push 7
mov ecx, 0x7c46b0
call fcn.00505bd0
jmp case.0x41dba2.1
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
mov word [ebp - 0x10], ax
movzx edx, word [ebp - 0x10]
shr edx, 8
and edx, 0xff
movzx eax, dl
test eax, eax
je 0x41dc0a
push 8
mov ecx, 0x7c46b0
call fcn.00505bd0
jmp case.0x41dba2.1
mov ecx, dword [ebp - 0x2f0]
movzx edx, byte [ecx + 0xff59b]
test edx, edx
je 0x41dcb9
movzx eax, byte [0x7d5199]
neg eax
sbb eax, eax
add eax, 1
mov byte [0x7d5199], al
push 7
call fcn.004764c0
add esp, 4
mov dword [ebp - 0x1a8], eax
push 2
call fcn.004764c0
add esp, 4
mov dword [ebp - 0x1ac], eax
movzx ecx, byte [0x7d5199]
test ecx, ecx
je 0x41dc8c
push 0
push 0
push 0x5774ac
mov edx, dword [ebp - 0x1a8]
push edx
mov eax, dword [ebp - 0x1ac]
push eax
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x41fe0
call fcn.0048ce80
jmp 0x41dcb4
push 0
push 0
push 0x577480
mov ecx, dword [ebp - 0x1a8]
push ecx
mov edx, dword [ebp - 0x1ac]
push edx
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x41fe0
call fcn.0048ce80
jmp 0x41dd53
movzx eax, byte [0x7d62bb]
neg eax
sbb eax, eax
add eax, 1
mov byte [0x7d62bb], al
push 7
call fcn.004764c0
add esp, 4
mov dword [ebp - 0x1b0], eax
push 2
call fcn.004764c0
add esp, 4
mov dword [ebp - 0x1b4], eax
movzx ecx, byte [0x7d62bb]
test ecx, ecx
je 0x41dd21
push 0
push 0
push 0x57745c
mov edx, dword [ebp - 0x1b0]
push edx
mov eax, dword [ebp - 0x1b4]
push eax
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x41fe0
call fcn.0048ce80
jmp 0x41dd49
push 0
push 0
push 0x577438
mov ecx, dword [ebp - 0x1b0]
push ecx
mov edx, dword [ebp - 0x1b4]
push edx
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x41fe0
call fcn.0048ce80
mov ecx, 0x7d27e8
call fcn.00446ed0
jmp case.0x41dba2.1
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x10d17c
call fcn.0043b430
movzx eax, al
test eax, eax
jne 0x41de66
mov ecx, dword [ebp - 0x2f0]
movzx edx, byte [ecx + 0x100b3c]
test edx, edx
je 0x41de66
mov ecx, dword [ebp - 0x2f0]
call fcn.0041d5f0
cmp dword [0x6658cc], 0
jne 0x41dde0
mov ecx, dword [ebp - 0x2f0]
add ecx, 0xe0524
call fcn.0043b9f0
movzx eax, al
test eax, eax
jne 0x41dde0
mov ecx, dword [ebp - 0x2f0]
add ecx, 0xe8574
call fcn.0043b9f0
movzx ecx, al
test ecx, ecx
jne 0x41dde0
push 0x15
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x41fe0
call fcn.00496ec0
push 5
mov ecx, 0x7c0e48
call fcn.0043b450
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov ecx, 0x7c0e48
call fcn.0043b450
push eax
call dword [sym.imp.USER32.dll_SetFocus]
mov edx, dword [ebp - 0x2f0]
add edx, 0x1123e4
push edx
push 0x577430
lea eax, [ebp - 0x2bc]
push eax
call fcn.00439720
add esp, 0xc
lea ecx, [ebp - 0x2bc]
push ecx
mov ecx, 0x7c0e48
call fcn.0043b450
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
push 0xffffffffffffffff
push 0xfffffffffffffffe
push 0xb1
mov ecx, 0x7c0e48
call fcn.0043b450
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
push 0
push 0
mov ecx, dword [ebp - 0x2f0]
call fcn.0041e430
jmp case.0x41dba2.1
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x10d17c
call fcn.0043b430
movzx edx, al
test edx, edx
je 0x41dedb
mov ecx, 0x7c46b0
call fcn.00506f80
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x10d17c
mov eax, dword [ebp - 0x2f0]
mov edx, dword [eax + 0x10d17c]
mov eax, dword [edx + 0xc]
call eax
push 0
mov ecx, dword [ebp - 0x2f0]
call fcn.00539990
mov dword [ebp - 0x2e8], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x16]
call fcn.00402620
mov eax, dword [ebp - 0x2e8]
jmp 0x41e2ff
mov ecx, dword [ebp - 0x2f0]
movzx edx, byte [ecx + 0x100b3c]
test edx, edx
je 0x41e0a2
mov eax, dword [0x6658cc]
mov dword [ebp - 0x2fc], eax
cmp dword [ebp - 0x2fc], 0
je 0x41df06
jmp 0x41df49
mov ecx, dword [ebp - 0x2f0]
add ecx, 0xe0524
call fcn.0043b9f0
movzx ecx, al
test ecx, ecx
jne 0x41df49
mov ecx, dword [ebp - 0x2f0]
add ecx, 0xe8574
call fcn.0043b9f0
movzx edx, al
test edx, edx
jne 0x41df49
push 0x15
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x41fe0
call fcn.00496ec0
mov ecx, 0x7c0e48
call fcn.0043b470
mov byte [ebp - 0x2bd], al
movzx eax, byte [ebp - 0x2bd]
test eax, eax
je 0x41dfad
push 0x104
push 0x7c0e68
mov ecx, 0x7c0e48
call fcn.0043b450
push eax
call dword [sym.imp.USER32.dll_GetWindowTextA]
push 0x574a9b
mov ecx, 0x7c0e48
call fcn.0043b450
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
push 0
mov ecx, 0x7c0e48
call fcn.0043b450
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x41e093
mov ecx, dword [ebp - 0x2f0]
call fcn.0041d5f0
push 5
mov ecx, 0x7c0e48
call fcn.0043b450
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov ecx, 0x7c0e48
call fcn.0043b450
push eax
call dword [sym.imp.USER32.dll_SetFocus]
movzx ecx, byte [0x66aa50]
mov dword [ebp - 0x300], ecx
cmp dword [ebp - 0x300], 4
ja case.default.0x41dffc
mov edx, dword [ebp - 0x300]
jmp dword [edx*4 + 0x41e3fc]
push 0x574a9b
mov ecx, 0x7c0e48
call fcn.0043b450
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
jmp case.default.0x41dffc
push 0x57742c
mov ecx, 0x7c0e48
call fcn.0043b450
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
jmp case.default.0x41dffc
push 0x577428
mov ecx, 0x7c0e48
call fcn.0043b450
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
jmp case.default.0x41dffc
push 0x577424
mov ecx, 0x7c0e48
call fcn.0043b450
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
jmp case.default.0x41dffc
push 0x577420
mov ecx, 0x7c0e48
call fcn.0043b450
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
push 0xffffffffffffffff
push 0xfffffffffffffffe
push 0xb1
mov ecx, 0x7c0e48
call fcn.0043b450
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
push 0
push 0
mov ecx, dword [ebp - 0x2f0]
call fcn.0041e430
jmp case.0x41dba2.1
push 1
call fcn.004111f0
jmp case.0x41dba2.1
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x41fe0
call fcn.00496db0
jmp case.0x41dba2.1
movzx eax, byte [0x78d470]
test eax, eax
je 0x41e158
mov ecx, 0x78e1d8
call fcn.004f67e0
mov dword [ebp - 0x2c4], eax
mov ecx, dword [0x78e1fc]
add ecx, 1
cmp ecx, dword [ebp - 0x2c4]
jge 0x41e109
mov edx, dword [0x78e1fc]
add edx, 1
mov dword [0x78e1fc], edx
fild dword [0x78e1fc]
fidiv dword [ebp - 0x2c4]
mov ecx, 0x78eb90
fstp qword [ebp - 0x308]
call fcn.0043ba10
mov dword [ebp - 0x30c], eax
fild dword [ebp - 0x30c]
fmul qword [ebp - 0x308]
call fcn.005480d0
mov dword [ebp - 0x2c8], eax
mov eax, dword [ebp - 0x2c8]
push eax
mov ecx, 0x78eb90
call fcn.004d0da0
jmp 0x41e1d8
mov esi, dword [0x6ef64c]
add esi, 1
mov ecx, 0x6ef650
call fcn.00515120
cmp esi, eax
jge 0x41e17e
mov ecx, dword [0x6ef64c]
add ecx, 1
mov dword [0x6ef64c], ecx
mov ecx, 0x6ef650
call fcn.00515120
mov dword [ebp - 0x2cc], eax
fild dword [0x6ef64c]
fidiv dword [ebp - 0x2cc]
mov ecx, 0x6f098c
fstp qword [ebp - 0x314]
call fcn.0043ba10
mov dword [ebp - 0x318], eax
fild dword [ebp - 0x318]
fmul qword [ebp - 0x314]
call fcn.005480d0
mov dword [ebp - 0x2d0], eax
mov edx, dword [ebp - 0x2d0]
push edx
mov ecx, 0x6f098c
call fcn.004d0da0
jmp case.0x41dba2.1
movzx eax, byte [0x78d470]
test eax, eax
je 0x41e266
mov ecx, dword [0x78e1fc]
sub ecx, 1
mov dword [0x78e1fc], ecx
cmp dword [0x78e1fc], 0
jg 0x41e20a
mov dword [0x78e1fc], 0
mov ecx, 0x78e1d8
call fcn.004f67e0
mov dword [ebp - 0x2d4], eax
fild dword [0x78e1fc]
fidiv dword [ebp - 0x2d4]
mov ecx, 0x78eb90
fstp qword [ebp - 0x320]
call fcn.0043ba10
mov dword [ebp - 0x324], eax
fild dword [ebp - 0x324]
fmul qword [ebp - 0x320]
call fcn.005480d0
mov dword [ebp - 0x2d8], eax
mov edx, dword [ebp - 0x2d8]
push edx
mov ecx, 0x78eb90
call fcn.004d0da0
jmp case.0x41dba2.1
mov eax, dword [0x6ef64c]
sub eax, 1
mov dword [0x6ef64c], eax
cmp dword [0x6ef64c], 0
jg 0x41e286
mov dword [0x6ef64c], 0
mov ecx, 0x6ef650
call fcn.00515120
mov dword [ebp - 0x2dc], eax
fild dword [0x6ef64c]
fidiv dword [ebp - 0x2dc]
mov ecx, 0x6f098c
fstp qword [ebp - 0x32c]
call fcn.0043ba10
mov dword [ebp - 0x330], eax
fild dword [ebp - 0x330]
fmul qword [ebp - 0x32c]
call fcn.005480d0
mov dword [ebp - 0x2e0], eax
mov ecx, dword [ebp - 0x2e0]
push ecx
mov ecx, 0x6f098c
call fcn.004d0da0
mov dword [ebp - 0x2ec], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x16]
call fcn.00402620
mov eax, dword [ebp - 0x2ec]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x2c]
xor ecx, ebp
call fcn.0054514c
mov esp, ebp
pop ebp
ret 0xc