Function at 0x100a8110
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [0x10233f04]
mov ecx, 0x168
mov dword [0x102343d0], eax
sub esp, 0x14
mov dword [0x10233e84], eax
cvttss2si eax, dword [0x10234854]
mov byte [0x102ee3a6], 0
push esi
mov esi, dword [ebp + 8]
mov word [0x102ee3a4], 0
movq xmm0, qword [0x10233efc]
cdq
idiv ecx
cvttss2si eax, dword [0x10234858]
movq qword [0x102343c8], xmm0
movq qword [0x10233e7c], xmm0
movd xmm0, edx
cdq
idiv ecx
cmp byte [0x10236f3a], 0
cvtdq2ps xmm0, xmm0
movss dword [0x10234854], xmm0
movd xmm0, edx
cvtdq2ps xmm0, xmm0
movss dword [0x10234858], xmm0
je 0x100a8203
cmp dword [0x10237050], 1
jne 0x100a8203
cmp byte [0x102f2a0c], 0
je 0x100a8203
movss xmm2, dword [esi + 0xc]
lea eax, [ebp - 0x14]
movss xmm0, dword [esi + 0x10]
movss dword [ebp - 0x14], xmm2
xorps xmm2, xmmword [0x1021ef40]
subss xmm2, dword [0x1021eb98]
movss dword [ebp - 0x10], xmm0
movss xmm0, dword [esi + 0x14]
movss dword [ebp - 0xc], xmm0
movss xmm0, dword [esi + 0x10]
addss xmm2, dword [0x1021eb2c]
addss xmm0, dword [0x1021eb2c]
push ecx
push eax
push esi
mov byte [0x102ee3a0], 0
movss dword [esi + 0xc], xmm2
movss dword [esi + 0x10], xmm0
call fcn.100a70d0
cmp byte [0x1023477c], 0
jne 0x100a89c1
cmp byte [0x1023477b], 0
jne 0x100a89c1
mov eax, dword fs:[0x2c]
mov ecx, dword [0x10236a90]
push edi
mov edi, dword [eax + ecx*4]
mov eax, dword [0x102f6e08]
cmp eax, dword [edi + 4]
jle 0x100a8271
push 0x102f6e08
call fcn.1017dd04
add esp, 4
cmp dword [0x102f6e08], 0xffffffff
jne 0x100a8271
push 0x102f6e08
mov dword [0x102f6df8], 0
mov dword [0x102f6df4], 0x102f2ae4
call fcn.1017dcb3
add esp, 4
mov eax, dword [0x102f6df4]
cmp dword [0x102f6df8], 0
sete byte [ebp + 0xb]
mov eax, dword [eax]
test eax, eax
jne 0x100a828e
mov dword [0x102f6df8], eax
jmp 0x100a82b8
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
movzx eax, al
mov dword [0x102f6df8], eax
je 0x100a82b8
cmp byte [ebp + 0xb], 0
je 0x100a82b8
cmp byte [0x102f2a54], 0
sete byte [0x102f2a54]
mov eax, dword [0x102f6df0]
cmp eax, dword [edi + 4]
jle 0x100a82fc
push 0x102f6df0
call fcn.1017dd04
add esp, 4
cmp dword [0x102f6df0], 0xffffffff
jne 0x100a82fc
push 0x102f6df0
mov dword [0x102f6e04], 0
mov dword [0x102f6e00], 0x102f29c4
call fcn.1017dcb3
add esp, 4
mov eax, dword [0x102f6e00]
cmp dword [0x102f6e04], 0
sete byte [ebp + 0xb]
mov eax, dword [eax]
test eax, eax
jne 0x100a84e5
mov dword [0x102f6e04], eax
mov al, byte [0x10234864]
mov byte [0x10234864], al
mov eax, dword [0x102f6e10]
cmp eax, dword [edi + 4]
jle 0x100a8369
push 0x102f6e10
call fcn.1017dd04
add esp, 4
cmp dword [0x102f6e10], 0xffffffff
jne 0x100a8369
push 0x102f6e10
mov dword [0x102f6dec], 0
mov dword [0x102f6de8], 0x102f297c
call fcn.1017dcb3
add esp, 4
mov eax, dword [0x102f6de8]
mov eax, dword [eax]
test eax, eax
jne 0x100a8518
mov dword [0x102f6dec], eax
xor al, al
cmp byte [0x102f2a54], 0
mov byte [0x10234865], al
je 0x100a89c0
cmp byte [0x102ee3a1], 0
jne 0x100a89c0
cmp byte [0x102ee3a2], 0
jne 0x100a89c0
cmp byte [0x10236f14], 0
jne 0x100a89c0
mov edi, dword [0x10234298]
test edi, edi
je 0x100a89b9
mov ecx, edi
call fcn.10066980
test al, al
jne 0x100a89c0
mov ecx, edi
call fcn.10074310
shr eax, 7
test al, 1
jne 0x100a89c0
mov ecx, edi
call fcn.100743b0
shr eax, 0x12
test al, 1
jne 0x100a89c0
mov ecx, edi
call fcn.100743b0
shr eax, 0xd
test al, 1
jne 0x100a89c0
mov eax, dword [edi + 0x1a4]
cmp eax, 8
je 0x100a89c0
cmp eax, 9
je 0x100a89c0
cmp eax, 0xa
je 0x100a89c0
mov ecx, edi
call fcn.100a7030
test al, al
jne 0x100a89c0
cmp byte [0x10236f3a], al
jne 0x100a89c0
cmp byte [0x10234865], al
je 0x100a85b5
cmp byte [0x10234866], al
jne 0x100a84af
mov ecx, dword [0x10236ddc]
lea edx, [ebp - 0x14]
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x14], 0
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x4c]
call eax
movss xmm0, dword [ebp - 0x14]
movss dword [0x10234868], xmm0
movss xmm0, dword [ebp - 0x10]
movss dword [0x1023486c], xmm0
movss xmm0, dword [ebp - 0xc]
movss dword [0x10234870], xmm0
mov byte [0x10234866], 1
movzx eax, word [esi + 0x38]
cwde
cdq
mov ecx, eax
movzx eax, word [esi + 0x3a]
xor ecx, edx
cwde
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
cmp ecx, eax
jle 0x100a8566
movzx eax, word [esi + 0x38]
cmp ax, 0x19
jle 0x100a854f
mov word [0x10234876], 0
jmp 0x100a8590
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
movzx eax, al
mov dword [0x102f6e04], eax
je 0x100a831b
cmp byte [ebp + 0xb], 0
je 0x100a831b
cmp byte [0x10234864], 0
sete al
jmp 0x100a8320
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
movzx eax, al
mov dword [0x102f6dec], eax
je 0x100a837d
cmp dword [0x102f29e8], 0xe
je 0x100a8548
cmp dword [0x102f2958], 0xe
jne 0x100a837d
mov al, 1
jmp 0x100a837f
cmp ax, 0xffe7
jge 0x100a85a1
mov word [ebp + 8], 1
mov word [0x10234876], 0x100
jmp 0x100a8596
movzx eax, word [esi + 0x3a]
cmp ax, 0x19
jle 0x100a8581
mov word [ebp + 8], pe_nt_image_headers32
mov word [0x10234876], 1
jmp 0x100a8596
cmp ax, 0xffe7
jge 0x100a85a1
mov word [0x10234876], 1
mov word [ebp + 8], 0
mov eax, dword [ebp + 8]
shr eax, 8
mov byte [0x10234878], al
mov ecx, dword [0x10236ddc]
push 0x10234868
mov eax, dword [ecx]
mov eax, dword [eax + 0x50]
call eax
jmp 0x100a85f5
cmp byte [0x10234866], 0
je 0x100a85f5
mov ecx, dword [0x10236ddc]
push 0x10234868
mov eax, dword [ecx]
mov eax, dword [eax + 0x50]
call eax
mov byte [0x10234866], 0
mov dword [0x10234868], 0
mov dword [0x1023486c], 0
mov dword [0x10234870], 0
cmp dword [0x102f2a9c], 0
setne byte [ebp - 1]
cmp dword [0x102f2958], 0
jne 0x100a8619
cmp dword [0x102f29e8], 0
jne 0x100a8619
xor al, al
mov byte [ebp + 0xb], al
jmp 0x100a861d
mov byte [ebp + 0xb], 1
movss xmm0, dword [esi + 0xc]
movss dword [ebp - 0x14], xmm0
movss xmm0, dword [esi + 0x10]
push esi
push edi
push dword [0x102f2a78]
movss dword [ebp - 0x10], xmm0
movss xmm0, dword [esi + 0x14]
movss dword [ebp - 0xc], xmm0
call fcn.100a7f10
mov ecx, dword [0x102f2a9c]
movss xmm1, dword [0x1021eaf8]
movss dword [0x10234850], xmm0
lea eax, [ecx - 1]
cmp eax, 9
ja case.default.0x100a866a
jmp dword [eax*4 + 0x100a89c8]
mov dword [esi + 0xc], 0
mov dword [0x10233e7c], 0
jmp case.default.0x100a866a
mov dword [esi + 0xc], 0xc2b20000
jmp 0x100a87e6
mov dword [esi + 0xc], 0x42b20000
mov dword [0x10233e7c], 0x42b20000
jmp case.default.0x100a866a
mov dword [esi + 0xc], 0xc3878000
jmp 0x100a87e6
mov dword [esi + 0xc], 0x43878000
mov dword [0x10233e7c], 0x42b20000
jmp case.default.0x100a866a
mov eax, dword [0x102f2838]
mov ecx, 0x10234880
lea eax, [eax + eax*4]
add eax, eax
push eax
call fcn.10078600
test al, al
je 0x100a872f
mov ecx, 0x1024e290
call fcn.10078390
xorps xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1021eef0]
cvtpd2ps xmm0, xmm0
subss xmm0, xmm1
addss xmm0, xmm1
movss xmm1, dword [0x1021eaf8]
mulss xmm0, dword [0x1021e858]
mulss xmm0, dword [0x1021eb28]
subss xmm0, xmm1
jmp 0x100a873f
movss xmm0, dword [0x1023485c]
movss xmm1, dword [0x1021eaf8]
movss dword [0x1023485c], xmm0
movss dword [esi + 0xc], xmm0
movss xmm0, dword [0x1023485c]
movss dword [0x10233e7c], xmm0
jmp case.default.0x100a866a
mov dword [esi + 0xc], 0xc2340000
mov dword [0x10233e7c], 0xc2340000
jmp case.default.0x100a866a
cmp byte [0x10234863], 0
movss xmm0, dword [0x1021ec64]
je 0x100a8788
movaps xmm0, xmm1
movss dword [esi + 0xc], xmm0
mov al, byte [0x10234863]
mov dword [0x10233e7c], 0x42b20000
test al, al
jne 0x100a87aa
mov dword [0x10233e7c], 0xc2b20000
sete byte [0x10234863]
jmp case.default.0x100a866a
movss xmm0, dword [0x102f28c8]
cmp ecx, 0xa
jne 0x100a87d9
addss xmm0, dword [0x1021eb98]
movss dword [esi + 0xc], xmm0
mov dword [0x10233e7c], 0x42b20000
jmp case.default.0x100a866a
subss xmm0, dword [0x1021eb98]
movss dword [esi + 0xc], xmm0
mov dword [0x10233e7c], 0xc2b20000
mov eax, dword [0x102f2958]
cmp eax, 7
je 0x100a8803
cmp dword [0x102f29e8], 7
jne 0x100a883a
movss xmm0, dword [0x102343c8]
push dword [0x10234298]
ucomiss xmm0, xmm1
movss xmm1, dword [0x10234850]
lahf
test ah, 0x44
jp 0x100a882b
call fcn.100a79a0
xor al, 1
jmp 0x100a8830
call fcn.100a79a0
mov byte [0x10234862], al
mov eax, dword [0x102f2958]
cmp byte [0x10234860], 0
je 0x100a8914
test eax, eax
je 0x100a8914
cmp byte [0x10234874], 0
push eax
sete byte [0x10234874]
call fcn.100a7a60
addss xmm0, dword [0x10234850]
movss dword [esi + 0x10], xmm0
cmp dword [0x102f29e8], 0
je 0x100a88fe
cmp byte [0x102f285c], 0
je 0x100a88fe
push dword [0x102f2958]
call fcn.100a7a60
push dword [0x102f29e8]
movss dword [ebp - 8], xmm0
call fcn.100a7a60
movss xmm1, dword [ebp - 8]
subss xmm1, xmm0
movaps xmm0, xmm1
call fcn.10063f00
movss xmm1, dword [0x1021eac4]
movss xmm2, dword [esi + 0x10]
comiss xmm1, xmm0
seta al
test al, al
je 0x100a88fe
movss xmm0, dword [0x102f2910]
xorps xmm3, xmm3
ucomiss xmm0, xmm3
lahf
test ah, 0x44
jp 0x100a88e5
movss xmm1, dword [0x1021ec60]
addss xmm2, xmm1
movss dword [esi + 0x10], xmm2
addss xmm1, dword [0x10234858]
movss dword [0x10234858], xmm1
movss xmm0, dword [esi + 0x10]
movss dword [0x102343cc], xmm0
mov byte [0x102ee3a4], 1
jmp 0x100a896c
mov eax, dword [0x102f29e8]
test eax, eax
je 0x100a896c
cmp byte [0x10234875], 0
push eax
sete byte [0x10234875]
call fcn.100a7a60
addss xmm0, dword [0x10234850]
movss dword [esi + 0x10], xmm0
movss xmm0, dword [esi + 0xc]
movss dword [0x10233e7c], xmm0
movss xmm0, dword [esi + 0x10]
movss dword [0x10233e80], xmm0
movss xmm0, dword [esi + 0x14]
movss dword [0x10233e84], xmm0
mov byte [0x102ee3a5], 1
mov al, byte [ebp + 0xb]
mov ecx, dword [ebp + 0xc]
test al, al
je 0x100a898a
cmp byte [0x10234860], 0
sete al
mov byte [0x10234860], al
mov byte [ecx], al
mov al, byte [ebp + 0xb]
cmp dword [0x102f29e8], 0
jne 0x100a899d
mov byte [0x10234860], 1
mov byte [ecx], 1
cmp byte [ebp - 1], 0
jne 0x100a89a7
test al, al
je 0x100a89a9
mov al, 1
mov byte [0x102ee3a6], al
lea eax, [ebp - 0x14]
push ecx
push eax
push esi
call fcn.100a70d0
mov byte [0x10234861], 0
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8