Function at 0x45a7b6
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
xorpd xmm0, xmm0
movlpd qword [ebp - 0x28], xmm0
push 0x2d
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
je 0x45a7d4
jmp 0x45a7c5
push 0xd
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
je 0x45a7e3
jmp 0x45a7d4
push 0x20
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
je 0x45a7f2
jmp 0x45a7e3
xor eax, eax
inc eax
je 0x45aa4b
push 1
push 0
push 0
push 0
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x45a827
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
jmp 0x45a7fb
push 0x25
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
je 0x45a841
mov dword [ebp - 0x28], 1
and dword [ebp - 0x24], 0
jmp 0x45a878
push 0x27
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
je 0x45a859
xorpd xmm0, xmm0
movlpd qword [ebp - 0x28], xmm0
jmp 0x45a878
push 0xd
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
jne 0x45a873
push 0x20
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
je 0x45a878
jmp 0x45aa4b
push 0
push ecx
push ecx
movsd xmm0, qword [0x42aac0]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42abe0]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ab28]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ab48]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ab20]
movsd qword [esp], xmm0
push 0
push 0
push 0
push 0xcccccc
push 0
push 0x402020
push 0
push 0
push 0
push 1
push dword [ebp + 8]
push 0
push 0
push 0
call fcn.0042df92
cmp dword [ebp - 0x28], 1
jne 0x45a902
cmp dword [ebp - 0x24], 0
jne 0x45a902
mov dword [ebp - 0x34], 0x88
jmp 0x45a909
mov dword [ebp - 0x34], 1
push 0
push ecx
push ecx
movsd xmm0, qword [0x42aac0]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42acd0]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ab78]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ab48]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ab20]
movsd qword [esp], xmm0
push 0
push 0
push 0
push 0xffff
mov eax, dword [ebp - 0x34]
cdq
push edx
push eax
push 0
push 0
push 0
push 1
push 0x42a958
push 0
push 0
push 0
call fcn.0042df92
mov eax, dword [ebp - 0x28]
or eax, dword [ebp - 0x24]
jne 0x45a990
mov dword [ebp - 0x38], 0x88
jmp 0x45a997
mov dword [ebp - 0x38], 1
push 0
push ecx
push ecx
movsd xmm0, qword [0x42aac0]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42acd0]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ab78]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ab30]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ab20]
movsd qword [esp], xmm0
push 0
push 0
push 0
push 0xffff
mov eax, dword [ebp - 0x38]
cdq
push edx
push eax
push 0
push 0
push 0
push 1
push 0x42a960
push 0
push 0
push 0
call fcn.0042df92
push 0xcc0020
push 0
push 0
push dword [0x45c594]
cvttsd2si eax, qword [0x45c5c0]
push eax
cvttsd2si eax, qword [0x45c5b8]
push eax
push 0
push 0
push dword [0x45c590]
call dword [sym.imp.GDI32.dll_BitBlt]
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x45a7f2
mov eax, dword [ebp - 0x28]
or eax, dword [ebp - 0x24]
je 0x45b13b
push 0x4295bc
push dword [ebp + 8]
call dword [sym.imp.MSVCR100.dll_strcmp]
pop ecx
pop ecx
test eax, eax
jne 0x45ab2c
push 0
push 1
push ecx
push ecx
movsd xmm0, qword [0x42ab60]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ab60]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42aa68]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42aa68]
movsd qword [esp], xmm0
push 0x55d9f0
push 0
push 0
push 0
call fcn.00431135
push 0
push 0
push ecx
push ecx
movsd xmm0, qword [0x42ad48]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ad40]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ab60]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ab60]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42aa68]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42aa68]
movsd qword [esp], xmm0
push 0x55ddf0
call fcn.0042da26
jmp 0x45b13b
push 0x4295a0
push dword [ebp + 8]
call dword [sym.imp.MSVCR100.dll_strcmp]
pop ecx
pop ecx
test eax, eax
jne 0x45abfc
push 0
push 1
push ecx
push ecx
movsd xmm0, qword [0x42ab60]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ab60]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42aa68]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42aa68]
movsd qword [esp], xmm0
push 0
push 0
push 0
call fcn.00448bbe
push 0
push 0
push ecx
push ecx
movsd xmm0, qword [0x42ad48]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ad40]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ab60]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ab60]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42aa68]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42aa68]
movsd qword [esp], xmm0
push 0x55ddf0
call fcn.0042da26
jmp 0x45b13b
push 0x429644
push dword [ebp + 8]
call dword [sym.imp.MSVCR100.dll_strcmp]
pop ecx
pop ecx
test eax, eax
jne 0x45accc
push 0
push 1
push ecx
push ecx
movsd xmm0, qword [0x42ab60]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ab60]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42aa68]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42aa68]
movsd qword [esp], xmm0
push 0
push 0
push 0
call fcn.0044a4e4
push 0
push 0
push ecx
push ecx
movsd xmm0, qword [0x42ad48]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ad40]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ab60]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ab60]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42aa68]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42aa68]
movsd qword [esp], xmm0
push 0x55ddf0
call fcn.0042da26
jmp 0x45b13b
push 0x429660
push dword [ebp + 8]
call dword [sym.imp.MSVCR100.dll_strcmp]
pop ecx
pop ecx
test eax, eax
jne 0x45ad9c
push 0
push 1
push ecx
push ecx
movsd xmm0, qword [0x42ab60]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ab60]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42aa68]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42aa68]
movsd qword [esp], xmm0
push 0
push 0
push 0
call fcn.00449865
push 0
push 0
push ecx
push ecx
movsd xmm0, qword [0x42ad48]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ad40]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ab60]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ab60]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42aa68]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42aa68]
movsd qword [esp], xmm0
push 0x55ddf0
call fcn.0042da26
jmp 0x45b13b
push 0x4295fc
push dword [ebp + 8]
call dword [sym.imp.MSVCR100.dll_strcmp]
pop ecx
pop ecx
test eax, eax
jne 0x45ae6c
push 0
push 1
push ecx
push ecx
movsd xmm0, qword [0x42ab60]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ab60]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42aa68]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42aa68]
movsd qword [esp], xmm0
push 0
push 0
push 0
call fcn.0044b191
push 0
push 0
push ecx
push ecx
movsd xmm0, qword [0x42ad48]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ad40]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ab60]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ab60]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42aa68]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42aa68]
movsd qword [esp], xmm0
push 0x55ddf0
call fcn.0042da26
jmp 0x45b13b
push 0x42970c
push dword [ebp + 8]
call dword [sym.imp.MSVCR100.dll_strcmp]
pop ecx
pop ecx
test eax, eax
jne 0x45af3c
push 0
push 1
push ecx
push ecx
movsd xmm0, qword [0x42ab60]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ab60]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42aa68]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42aa68]
movsd qword [esp], xmm0
push 0
push 0
push 0
call fcn.0044bd9f
push 0
push 0
push ecx
push ecx
movsd xmm0, qword [0x42ad48]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ad40]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ab60]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ab60]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42aa68]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42aa68]
movsd qword [esp], xmm0
push 0x55ddf0
call fcn.0042da26
jmp 0x45b13b
push 0x42a96c
push dword [ebp + 8]
call dword [sym.imp.MSVCR100.dll_strcmp]
pop ecx
pop ecx
test eax, eax
jne 0x45b00c
push 0
push 1
push ecx
push ecx
movsd xmm0, qword [0x42ab60]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ab60]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42aa68]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42aa68]
movsd qword [esp], xmm0
push 0
push 0
push 0
call fcn.0044c8b6
push 0
push 1
push ecx
push ecx
movsd xmm0, qword [0x42ad38]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ad40]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ab60]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ab60]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42aa68]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42aa68]
movsd qword [esp], xmm0
push 0x55ddf0
call fcn.0042da26
jmp 0x45b13b
or dword [ebp - 0x30], 0xffffffff
or dword [ebp - 0x2c], 0xffffffff
or dword [0x55dbf0], 0xffffffff
or dword [0x55dbf4], 0xffffffff
mov eax, dword [ebp - 0x30]
cmp eax, dword [0x55dbf0]
jne 0x45b13b
mov eax, dword [ebp - 0x2c]
cmp eax, dword [0x55dbf4]
jne 0x45b13b
mov eax, dword [0x55dbf0]
add eax, 1
mov ecx, dword [0x55dbf4]
adc ecx, 0
mov dword [0x55dbf0], eax
mov dword [0x55dbf4], ecx
mov eax, dword [ebp - 0x30]
add eax, 1
mov ecx, dword [ebp - 0x2c]
adc ecx, 0
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], ecx
push 0
push 1
push ecx
push ecx
movsd xmm0, qword [0x42ab60]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ab60]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42aa68]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42aa68]
movsd qword [esp], xmm0
push 0x55dbf0
push 0x55d9f0
push 0
push 0
push 0
call fcn.004306c4
push 0
push 1
push ecx
push ecx
movsd xmm0, qword [0x42ad38]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ad40]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ab60]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42ab60]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42aa68]
movsd qword [esp], xmm0
push ecx
push ecx
movsd xmm0, qword [0x42aa68]
movsd qword [esp], xmm0
push 0x55ddf0
call fcn.0042da26
push 0xc8
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x45b022
xorpd xmm0, xmm0
movlpd qword [0x45c630], xmm0
xorpd xmm0, xmm0
movlpd qword [0x45c628], xmm0
call fcn.0045b99b
leave
ret 4