Function at 0x455e30
Capabilities:
Log keystrokes via polling
Open clipboard
Read clipboard data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x607f8d
mov eax, dword fs:[0]
push eax
sub esp, 0x498
mov eax, dword [0x6f7f90]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0xff
push 0
push 0
push 0
lea ecx, [ebp - 0x224]
call fcn.00457f50
fld dword [ebp + 8]
fadd qword [0x61b5e0]
fstp dword [ebp + 8]
mov dword [ebp - 0x434], 0
jmp 0x455e98
mov eax, dword [ebp - 0x434]
add eax, 1
mov dword [ebp - 0x434], eax
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.005e45a0
add esp, 4
cmp dword [ebp - 0x434], eax
jae 0x455ebc
mov edx, dword [ebp - 0x434]
mov byte [ebp + edx - 0x214], 0x2a
jmp 0x455e89
mov eax, dword [ebp + 0x10]
push eax
call fcn.005e45a0
add esp, 4
mov byte [ebp + eax - 0x214], 0
cmp dword [ebp + 0x18], 1
jne 0x455ee4
lea ecx, [ebp - 0x214]
mov dword [ebp - 0x488], ecx
jmp 0x455eed
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x488], edx
mov eax, dword [ebp - 0x488]
mov dword [ebp - 0x218], eax
mov ecx, dword [ebp - 0x218]
push ecx
push 0x61b27c
lea edx, [ebp - 0x224]
push edx
mov eax, dword [ebp + 0x18]
sub eax, 1
neg eax
sbb eax, eax
and eax, 0xfffffffc
add eax, 4
mov dword [ebp - 0x48c], eax
fild dword [ebp - 0x48c]
fadd dword [ebp + 0xc]
fstp dword [ebp - 0x490]
fld dword [ebp - 0x490]
push ecx
fstp dword [esp]
push ecx
fld dword [ebp + 8]
fstp dword [esp]
mov ecx, dword [0x8357a8]
push ecx
call fcn.005cc1c0
add esp, 0x18
movzx edx, byte [ebp + 0x14]
test edx, edx
jne 0x455f60
xor eax, eax
jmp 0x45643e
mov eax, dword [0x837260]
and eax, 1
jne 0x455fa1
mov ecx, dword [0x837260]
or ecx, 1
mov dword [0x837260], ecx
call dword [sym.imp.USER32.dll_GetCaretBlinkTime]
mov dword [ebp - 0x498], eax
mov dword [ebp - 0x494], 0
fild qword [ebp - 0x498]
fdiv qword [0x6c97f8]
fstp dword [0x83725c]
mov edx, dword [0x837260]
and edx, 2
jne 0x455fd2
mov eax, dword [0x837260]
or eax, 2
mov dword [0x837260], eax
mov dword [ebp - 4], 0
call fcn.005be790
fstp dword [0x837258]
mov dword [ebp - 4], 0xffffffff
call fcn.005be790
fld dword [0x837258]
fcompp
fnstsw ax
test ah, 5
jp 0x45600a
fld dword [0x837258]
fadd dword [0x83725c]
fstp dword [0x837258]
xor ecx, ecx
cmp dword [0x837254], 0
sete cl
mov dword [0x837254], ecx
mov edx, dword [ebp - 0x218]
push edx
push 0x61b280
lea eax, [ebp - 0x424]
push eax
call fcn.00458340
add esp, 0xc
lea ecx, [ebp - 0x424]
push ecx
mov edx, dword [0x8357a8]
push edx
call fcn.00456460
add esp, 8
mov dword [ebp - 0x464], eax
mov dword [ebp - 0x460], edx
mov eax, dword [ebp - 0x464]
mov dword [ebp - 0x430], eax
mov ecx, dword [ebp - 0x460]
mov dword [ebp - 0x42c], ecx
push 0x61b284
mov edx, dword [0x8357a8]
push edx
call fcn.00456460
add esp, 8
mov dword [ebp - 0x46c], eax
mov dword [ebp - 0x468], edx
mov eax, dword [ebp - 0x46c]
mov dword [ebp - 0x220], eax
mov ecx, dword [ebp - 0x468]
mov dword [ebp - 0x21c], ecx
cmp dword [0x837254], 0
je 0x456117
push 0
push 0
push 0xff
push 0
push 0
push 0
lea ecx, [ebp - 0x470]
call fcn.00457f50
push eax
push ecx
fld dword [0x61b5d8]
fstp dword [esp]
push ecx
fld1
fstp dword [esp]
fld dword [ebp + 0xc]
fadd qword [0x6c9798]
fstp dword [ebp - 0x49c]
fld dword [ebp - 0x49c]
push ecx
fstp dword [esp]
mov edx, dword [ebp - 0x430]
sub edx, dword [ebp - 0x220]
mov dword [ebp - 0x4a0], edx
fild dword [ebp - 0x4a0]
fadd dword [ebp + 8]
fstp dword [ebp - 0x4a4]
fld dword [ebp - 0x4a4]
push ecx
fstp dword [esp]
call fcn.005cc2d0
add esp, 0x1c
call dword [sym.imp.USER32.dll_GetFocus]
cmp eax, dword [0x83b328]
jne 0x45621b
push 0x56
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
and eax, 0x80
je 0x45621b
movzx ecx, byte [0x837250]
test ecx, ecx
jne 0x45621b
mov byte [0x837250], 1
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
movsx edx, ax
and edx, 0x80
je 0x456219
push 0
call dword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x456219
push 1
call dword [sym.imp.USER32.dll_GetClipboardData]
mov dword [ebp - 0x43c], eax
mov eax, dword [ebp - 0x43c]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov dword [ebp - 0x438], eax
cmp dword [ebp - 0x438], 0
je 0x456206
mov ecx, dword [ebp - 0x438]
push ecx
lea ecx, [ebp - 0x458]
call fcn.0040b800
mov dword [ebp - 4], 1
lea edx, [ebp - 0x458]
push edx
call fcn.004564e0
add esp, 4
push eax
lea ecx, [ebp - 0x458]
call fcn.0040b8a0
lea ecx, [ebp - 0x458]
call fcn.0040c220
push eax
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.004532d0
add esp, 0xc
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x458]
call fcn.0040b870
mov edx, dword [ebp - 0x43c]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
call dword [sym.imp.USER32.dll_CloseClipboard]
jmp 0x456222
mov byte [0x837250], 0
call fcn.00461e20
mov dword [ebp - 0x428], eax
cmp dword [ebp - 0x428], 0
jne 0x45623d
xor eax, eax
jmp 0x45643e
cmp dword [ebp - 0x428], 8
jne 0x456264
mov eax, dword [ebp + 0x10]
movsx ecx, byte [eax]
test ecx, ecx
je 0x456264
mov edx, dword [ebp + 0x10]
push edx
call fcn.005e45a0
add esp, 4
mov ecx, dword [ebp + 0x10]
mov byte [ecx + eax - 1], 0
mov edx, dword [ebp + 0x10]
push edx
call fcn.005e45a0
add esp, 4
cmp eax, dword [ebp + 0x1c]
jb 0x45627c
xor eax, eax
jmp 0x45643e
cmp dword [ebp + 0x18], 2
jne 0x4563f3
mov eax, dword [ebp + 0x10]
push eax
call fcn.005e45a0
add esp, 4
mov dword [ebp - 0x45c], eax
cmp dword [ebp - 0x45c], 0x13
jl 0x4562a8
xor eax, eax
jmp 0x45643e
cmp dword [ebp - 0x45c], 4
je 0x4562c3
cmp dword [ebp - 0x45c], 9
je 0x4562c3
cmp dword [ebp - 0x45c], 0xe
jne 0x456303
cmp dword [ebp - 0x428], 0x2d
jne 0x4562fc
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.005e45a0
add esp, 4
add eax, dword [ebp + 0x10]
mov dword [ebp - 0x474], eax
mov edx, dword [ebp - 0x428]
push edx
push 0x61b288
lea eax, [ebp - 0x474]
push eax
call fcn.00458470
add esp, 0xc
xor eax, eax
jmp 0x45643e
cmp dword [ebp - 0x428], 0x30
jl 0x45634a
cmp dword [ebp - 0x428], 0x39
jg 0x45634a
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.005e45a0
add esp, 4
add eax, dword [ebp + 0x10]
mov dword [ebp - 0x478], eax
mov edx, dword [ebp - 0x428]
push edx
push 0x61b28c
lea eax, [ebp - 0x478]
push eax
call fcn.00458470
add esp, 0xc
jmp 0x4563ef
cmp dword [ebp - 0x428], 0x61
jl 0x456391
cmp dword [ebp - 0x428], 0x7a
jg 0x456391
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.005e45a0
add esp, 4
add eax, dword [ebp + 0x10]
mov dword [ebp - 0x47c], eax
mov edx, dword [ebp - 0x428]
sub edx, 0x20
push edx
push 0x61b290
lea eax, [ebp - 0x47c]
push eax
call fcn.00458470
add esp, 0xc
jmp 0x4563ef
cmp dword [ebp - 0x428], 0x41
jl 0x4563d5
cmp dword [ebp - 0x428], 0x5a
jg 0x4563d5
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.005e45a0
add esp, 4
add eax, dword [ebp + 0x10]
mov dword [ebp - 0x480], eax
mov edx, dword [ebp - 0x428]
push edx
push 0x61b294
lea eax, [ebp - 0x480]
push eax
call fcn.00458470
add esp, 0xc
jmp 0x4563ef
cmp dword [ebp - 0x428], 9
je 0x4563e7
cmp dword [ebp - 0x428], 0xd
jne 0x4563ef
mov eax, dword [ebp - 0x428]
jmp 0x45643e
xor eax, eax
jmp 0x45643e
cmp dword [ebp - 0x428], 0x20
jl 0x456438
cmp dword [ebp - 0x428], 0x80
jge 0x456438
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.005e45a0
add esp, 4
add eax, dword [ebp + 0x10]
mov dword [ebp - 0x484], eax
mov edx, dword [ebp - 0x428]
push edx
push 0x61b298
lea eax, [ebp - 0x484]
push eax
call fcn.00458470
add esp, 0xc
mov eax, dword [ebp - 0x428]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005e4a11
mov esp, ebp
pop ebp
ret