Function at 0x427040
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x44166c
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x134
mov eax, dword [0x45a264]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x5c], 0
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
lea ecx, [ebp - 0x2c]
call fcn.00414dd0
movss xmm0, dword [0x45a224]
movss dword [ebp - 0x6c], xmm0
call fcn.0041a6c0
mov eax, dword [eax]
add eax, dword [0x45ad18]
push eax
mov ecx, 0x45ae1c
call fcn.00409470
mov byte [ebp - 0x52], al
mov ecx, dword [0x45a240]
push ecx
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
movsx edx, ax
test edx, edx
je 0x427138
movzx eax, byte [ebp - 0x52]
and eax, 1
je 0x427138
push 0x44802c
lea ecx, [ebp - 0x144]
push ecx
call fcn.0041a270
add esp, 4
mov dword [ebp - 0x70], eax
mov edx, dword [ebp - 0x70]
mov dword [ebp - 0x74], edx
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x5c]
or eax, 1
mov dword [ebp - 0x5c], eax
mov ecx, dword [ebp - 0x74]
push ecx
call fcn.00401650
add esp, 8
movzx edx, al
test edx, edx
je 0x427138
mov dword [ebp - 0x64], 1
jmp 0x42713f
mov dword [ebp - 0x64], 0
mov al, byte [ebp - 0x64]
mov byte [ebp - 0x51], al
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x5c]
and ecx, 1
je 0x427163
and dword [ebp - 0x5c], 0xfffffffe
lea ecx, [ebp - 0x144]
call fcn.00403ff0
movzx edx, byte [ebp - 0x51]
test edx, edx
je 0x427557
mov dword [ebp - 0x60], 0
jmp 0x427181
mov eax, dword [ebp - 0x60]
add eax, 1
mov dword [ebp - 0x60], eax
cmp dword [ebp - 0x60], 0x40
jge 0x4273c0
mov ecx, dword [ebp - 0x60]
push ecx
call fcn.0042b3e0
add esp, 4
mov dword [ebp - 0x58], eax
mov edx, dword [ebp - 0x58]
push edx
call fcn.0042b540
add esp, 4
mov esi, eax
call fcn.0042b700
cmp esi, eax
jne 0x4271c1
call fcn.0042cdc0
movzx eax, al
test eax, eax
je 0x4273bb
call fcn.0042cdc0
movzx ecx, al
test ecx, ecx
je 0x4271f0
call fcn.0041a850
cmp eax, 0xffffffff
je 0x4271f0
call fcn.0041a850
mov esi, eax
mov edx, dword [ebp - 0x60]
push edx
call fcn.0041a810
add esp, 4
cmp esi, eax
jne 0x4271f0
jmp 0x427178
mov eax, dword [ebp - 0x58]
push eax
call fcn.0042ce10
add esp, 4
movzx ecx, al
test ecx, ecx
je 0x4273bb
mov edx, dword [ebp - 0x58]
push edx
call fcn.0042b500
add esp, 4
movzx eax, al
test eax, eax
jne 0x4273bb
call fcn.0042ce60
movzx ecx, al
test ecx, ecx
je 0x4273bb
call fcn.0041aa50
push eax
mov edx, dword [ebp - 0x58]
push edx
call fcn.00419f60
add esp, 8
movzx eax, al
test eax, eax
jne 0x427262
movzx ecx, byte [0x45a228]
test ecx, ecx
je 0x427262
call fcn.0042cdc0
movzx edx, al
test edx, edx
je 0x4273bb
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
lea ecx, [ebp - 0x38]
call fcn.00414dd0
lea eax, [ebp - 0xc0]
push eax
call fcn.0042b6a0
add esp, 4
mov dword [ebp - 0x7c], eax
call fcn.0041aa50
add eax, dword [0x45a124]
push eax
lea ecx, [ebp - 0xcc]
push ecx
mov ecx, 0x45ae1c
call fcn.00409680
mov dword [ebp - 0x78], eax
mov edx, dword [ebp - 0x78]
push edx
lea eax, [ebp - 0x44]
push eax
mov ecx, dword [ebp - 0x7c]
call fcn.00417cc0
mov ecx, dword [0x45a20c]
push ecx
mov edx, dword [ebp - 0x58]
push edx
lea eax, [ebp - 0xd8]
push eax
call fcn.0042b430
add esp, 0xc
mov ecx, dword [eax]
mov dword [ebp - 0x98], ecx
mov edx, dword [eax + 4]
mov dword [ebp - 0x94], edx
mov eax, dword [eax + 8]
mov dword [ebp - 0x90], eax
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0xa8], ecx
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0xa4], edx
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0xa0], eax
lea ecx, [ebp - 0x38]
push ecx
sub esp, 0xc
mov edx, esp
mov eax, dword [ebp - 0x98]
mov dword [edx], eax
mov ecx, dword [ebp - 0x94]
mov dword [edx + 4], ecx
mov eax, dword [ebp - 0x90]
mov dword [edx + 8], eax
sub esp, 0xc
mov ecx, esp
mov edx, dword [ebp - 0xa8]
mov dword [ecx], edx
mov eax, dword [ebp - 0xa4]
mov dword [ecx + 4], eax
mov edx, dword [ebp - 0xa0]
mov dword [ecx + 8], edx
call fcn.00418fd0
add esp, 0x1c
lea eax, [ebp - 0x38]
push eax
call fcn.004192e0
add esp, 4
lea ecx, [ebp - 0x38]
push ecx
lea edx, [ebp - 0xe4]
push edx
call fcn.0041b4d0
add esp, 4
push eax
call fcn.0041a970
add esp, 8
fstp dword [ebp - 0x68]
movss xmm0, dword [ebp - 0x6c]
comiss xmm0, dword [ebp - 0x68]
jbe 0x4273bb
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x24], edx
movss xmm0, dword [ebp - 0x68]
movss dword [ebp - 0x6c], xmm0
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0xb4], eax
jmp 0x427178
lea ecx, [ebp - 0x2c]
call fcn.0041b710
movzx ecx, al
test ecx, ecx
jne 0x427557
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
lea ecx, [ebp - 0x20]
call fcn.00414dd0
lea edx, [ebp - 0x2c]
push edx
call fcn.004192e0
add esp, 4
lea eax, [ebp - 0xf0]
push eax
call fcn.0041b4d0
add esp, 4
mov dword [ebp - 0x80], eax
lea ecx, [ebp - 0x2c]
push ecx
lea edx, [ebp - 0x50]
push edx
mov ecx, dword [ebp - 0x80]
call fcn.00417b90
lea eax, [ebp - 0x50]
push eax
call fcn.004192e0
add esp, 4
lea ecx, [ebp - 0xfc]
push ecx
call fcn.0041b4d0
add esp, 4
mov dword [ebp - 0x84], eax
cvtsi2ss xmm0, dword [0x45a220]
movss dword [ebp - 0xb0], xmm0
lea edx, [ebp - 0xb0]
push edx
lea eax, [ebp - 0x108]
push eax
lea ecx, [ebp - 0x50]
call fcn.00417d50
mov dword [ebp - 0xac], eax
mov ecx, dword [ebp - 0xac]
push ecx
lea edx, [ebp - 0x114]
push edx
mov ecx, dword [ebp - 0x84]
call fcn.00417b90
mov ecx, dword [eax]
mov dword [ebp - 0x20], ecx
mov edx, dword [eax + 4]
mov dword [ebp - 0x1c], edx
mov eax, dword [eax + 8]
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x20]
push ecx
call fcn.004192e0
add esp, 4
lea edx, [ebp - 0x120]
push edx
call fcn.0042b6d0
add esp, 4
cvtss2sd xmm0, dword [eax]
mulsd xmm0, qword [0x451538]
cvtsi2sd xmm1, dword [0x45a220]
divsd xmm0, xmm1
cvtss2sd xmm1, dword [ebp - 0x20]
subsd xmm1, xmm0
cvtsd2ss xmm0, xmm1
movss dword [ebp - 0x20], xmm0
lea eax, [ebp - 0x12c]
push eax
call fcn.0042b6d0
add esp, 4
cvtss2sd xmm0, dword [eax + 4]
mulsd xmm0, qword [0x451538]
cvtsi2sd xmm1, dword [0x45a220]
divsd xmm0, xmm1
cvtss2sd xmm1, dword [ebp - 0x1c]
subsd xmm1, xmm0
cvtsd2ss xmm0, xmm1
movss dword [ebp - 0x1c], xmm0
lea ecx, [ebp - 0x20]
push ecx
call fcn.004192e0
add esp, 4
lea edx, [ebp - 0x20]
push edx
call fcn.004192e0
add esp, 4
movzx eax, al
test eax, eax
je 0x427557
sub esp, 0xc
mov ecx, esp
mov edx, dword [ebp - 0x20]
mov dword [ecx], edx
mov eax, dword [ebp - 0x1c]
mov dword [ecx + 4], eax
mov edx, dword [ebp - 0x18]
mov dword [ecx + 8], edx
call fcn.0041c900
add esp, 0xc
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0043de0e
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret