Function at 0x1003a410
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x1018e23d
push eax
mov dword fs:[0], esp
sub esp, 8
test byte [0x113202ec], 1
push esi
je 0x1003a43c
mov byte [0x113202f1], 0
mov eax, dword [0x113200e8]
movss xmm0, dword [eax + 0x10]
comiss xmm0, dword [0x1132087c]
jbe 0x1003a456
mov byte [0x113202f1], 0
cmp byte [0x1131f58f], 0
je 0x1003a5a3
cmp byte [0x113202f0], 0
jne 0x1003a5a3
mov eax, dword [0x1131f3ec]
mov ecx, dword [eax]
call fcn.1003aca0
movss xmm0, dword [eax + 8]
comiss xmm0, dword [0x11320224]
jbe 0x1003a5a3
test byte [0x113202ec], 1
jne 0x1003a5a3
mov eax, dword [0x1131f3ec]
mov ecx, dword [eax]
call fcn.1003a980
test byte [eax], 1
jne 0x1003a5a3
mov eax, dword [0x1131f3ec]
mov ecx, dword [eax]
call fcn.100cec00
cmp eax, 9
je 0x1003a5a3
mov eax, dword [0x1131f3ec]
mov ecx, dword [eax]
call fcn.100cec00
cmp eax, 8
je 0x1003a5a3
mov eax, dword [0x1131f3ec]
mov ecx, dword [eax]
call fcn.100cec00
cmp eax, 0xa
je 0x1003a5a3
cmp byte [0x1131f435], 0
mov eax, dword [0x113200e8]
movss xmm0, dword [eax + 0x10]
addss xmm0, dword [0x1019b9c4]
mov byte [0x113202f1], 1
movss dword [0x1132087c], xmm0
je 0x1003a5a3
push 1
push 1
push 1
sub esp, 0x18
xorps xmm0, xmm0
mov ecx, esp
mov dword [ebp - 0x14], esp
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0xf
mov dword [ecx + 0x14], 0xf
movq xmm0, qword [0x110da4b0]
movq qword [ecx], xmm0
mov eax, dword [0x110da4b8]
mov dword [ecx + 8], eax
mov ax, word [0x110da4bc]
mov word [ecx + 0xc], ax
mov al, byte [0x110da4be]
mov byte [ecx + 0xe], al
mov byte [ecx + 0xf], 0
sub esp, 0x18
mov dword [ebp - 4], 0
mov ecx, esp
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 1
mov dword [ecx + 0x14], 0xf
mov al, byte [0x110da4c0]
mov byte [ecx], al
mov byte [ecx + 1], 0
mov dword [ebp - 4], 0xffffffff
call fcn.10050b60
add esp, 0x3c
cmp dword [0x1131f438], 0
mov esi, dword [ebp + 8]
jne 0x1003a6a4
cmp byte [0x1131f58f], 0
je 0x1003a5cd
push dword [0x1131f5b0]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x1003a5da
cmp byte [0x113202f9], 0
je 0x1003a6a4
mov ecx, dword [0x1131f3ec]
mov ecx, dword [ecx]
call fcn.10039d80
mov eax, dword [0x11320304]
mov eax, dword [eax + 0x1c]
dec eax
mov dword [ebp - 0x10], eax
mov eax, dword [0x1131f3ec]
mov ecx, dword [eax]
test ecx, ecx
jne 0x1003a604
mov dword [0x1132087c], ecx
call fcn.1003a980
test byte [eax], 2
je 0x1003a677
xorps xmm0, xmm0
comiss xmm0, dword [0x11320224]
jbe 0x1003a6a4
mov eax, dword [esi + 0x30]
push dword [ebp - 0x10]
and eax, 0xfffffffd
mov dword [ebp - 0x14], eax
mov dword [esi + 0x30], eax
mov eax, dword [0x1118f47c]
push 0
mov eax, dword [eax]
call eax
mov ecx, dword [0x11320294]
push esi
call fcn.10063e60
mov ecx, dword [0x11320294]
push esi
call fcn.10063e60
mov eax, dword [0x1131f3ec]
mov ecx, dword [eax]
call fcn.1003a980
test byte [eax], 1
je 0x1003a66f
mov eax, dword [esi + 0x30]
or eax, 2
and eax, 0xfffffffb
mov dword [esi + 0x30], eax
jmp 0x1003a6a4
mov eax, dword [ebp - 0x14]
mov dword [esi + 0x30], eax
jmp 0x1003a6a4
mov eax, dword [0x1131f3ec]
mov ecx, dword [eax]
call fcn.1003a980
test byte [eax], 1
je 0x1003a6a4
test byte [0x113202ec], 1
jne 0x1003a6a4
mov eax, dword [esi + 0x30]
and eax, 0xfffffffd
or eax, 4
mov dword [esi + 0x30], eax
mov byte [0x11320216], 1
cmp dword [0x1131f438], 1
jne 0x1003a8cc
cmp byte [0x113202f9], 0
jne 0x1003a6dc
cmp byte [0x1131f58f], 0
je 0x1003a8be
push dword [0x1131f5b0]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1003a8be
mov ecx, dword [0x113200e0]
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
call eax
test al, al
je 0x1003a8be
mov ecx, dword [0x113200e0]
mov eax, dword [ecx]
mov eax, dword [eax + 0x6c]
call eax
test al, al
je 0x1003a8be
mov eax, dword [0x1131f3ec]
mov ecx, dword [eax]
test ecx, ecx
je 0x1003a8be
call fcn.100ce2c0
test al, al
je 0x1003a8be
mov eax, dword [0x1131f3ec]
mov ecx, dword [eax]
call fcn.100cec00
cmp eax, 8
je 0x1003a8be
mov eax, dword [0x1131f3ec]
mov ecx, dword [eax]
call fcn.100cec00
cmp eax, 9
je 0x1003a8be
mov eax, dword [0x1131f3ec]
mov ecx, dword [eax]
call fcn.100cec00
cmp eax, 0xa
je 0x1003a8be
test byte [0x113202ec], 1
jne 0x1003a7fe
mov eax, dword [0x1131f3ec]
mov ecx, dword [eax]
call fcn.1003a980
test byte [eax], 1
je 0x1003a78b
mov eax, dword [esi + 0x30]
or eax, 4
and eax, 0xfffffffd
mov dword [esi + 0x30], eax
test byte [0x113202ec], 1
jne 0x1003a7fe
mov eax, dword [0x1131f3ec]
mov ecx, dword [eax]
call fcn.1003a980
test byte [eax], 1
jne 0x1003a7fe
mov eax, dword [0x1131f3ec]
mov ecx, dword [eax]
call fcn.1003aca0
movss xmm0, dword [eax + 8]
comiss xmm0, dword [0x11320224]
jbe 0x1003a7fe
mov eax, dword [0x1131f3ec]
mov ecx, dword [eax]
call fcn.100cec00
cmp eax, 8
jne 0x1003a8cc
mov eax, dword [0x1131f3ec]
mov ecx, dword [eax]
call fcn.100cec00
cmp eax, 9
jne 0x1003a8cc
mov eax, dword [0x1131f3ec]
mov ecx, dword [eax]
call fcn.100cec00
cmp eax, 0xa
jne 0x1003a8cc
cmp byte [0x11320880], 0
jne 0x1003a88e
test byte [0x113202ec], 1
jne 0x1003a8cc
mov eax, dword [0x1131f3ec]
mov ecx, dword [eax]
call fcn.1003a980
test byte [eax], 1
je 0x1003a8cc
mov ecx, dword [esi + 0x30]
test cl, 4
je 0x1003a872
mov eax, dword [0x1131f3ec]
mov ecx, dword [eax]
call fcn.1003a980
mov ecx, dword [esi + 0x30]
test byte [eax], 2
je 0x1003a86f
and ecx, 0xfffffffb
mov byte [0x11320881], 1
and ecx, 0xfffffffd
mov byte [0x11320880], 1
mov dword [esi + 0x30], ecx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
ret
or ecx, 4
and ecx, 0xfffffffd
mov byte [0x11320880], 1
mov dword [esi + 0x30], ecx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
ret
cmp byte [0x11320881], 0
mov eax, dword [esi + 0x30]
je 0x1003a8a2
and eax, 0xfffffffb
mov dword [esi + 0x30], eax
jmp 0x1003a8c5
or eax, 4
mov byte [0x11320880], 0
mov dword [esi + 0x30], eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
ret
mov byte [0x11320880], 0
mov byte [0x11320881], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
ret