Function at 0x10083860
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10c
mov dword [ebp - 0xb8], ecx
cmp dword [ebp + 8], 0
je 0x10084162
movzx eax, byte [0x106b1e89]
test eax, eax
je 0x10084162
cmp dword [0x106b1e8c], 0
je 0x1008389e
cmp dword [0x106b1e8c], 1
jne 0x10084162
movzx ecx, byte [0x106a5b34]
test ecx, ecx
je 0x100838c0
mov edx, dword [0x106b3500]
push edx
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
jne 0x100838c0
jmp 0x10084162
movss xmm0, dword [0x102a983c]
movss dword [ebp - 0x3c], xmm0
mov dword [ebp - 0x24], 0
mov ecx, dword [0x106a7be0]
call fcn.100e00a0
push eax
lea ecx, [ebp - 0xc4]
call fcn.1005be00
mov ecx, dword [0x106a7be0]
movzx edx, byte [ecx + 0x59]
imul eax, edx, 0x238
mov ecx, dword [0x106a7be0]
lea edx, [ecx + eax + 0x304]
push edx
lea ecx, [ebp - 0xd0]
call fcn.1005be00
mov eax, dword [0xc17044]
mov dword [ebp - 0x4c], eax
mov ecx, dword [0xc17048]
mov dword [ebp - 0x50], ecx
mov byte [ebp - 2], 1
jmp 0x10083934
mov dl, byte [ebp - 2]
add dl, 1
mov byte [ebp - 2], dl
movzx eax, byte [ebp - 2]
cmp eax, 0x8c
jge 0x10083b13
mov ecx, dword [0x1031b7dc]
mov edx, dword [ecx]
mov dword [ebp - 0x8c], edx
movzx eax, byte [ebp - 2]
push eax
mov ecx, dword [ebp - 0x8c]
call fcn.10084170
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jne 0x1008396c
jmp 0x1008392b
mov ecx, dword [ebp - 0x20]
xorps xmm0, xmm0
comiss xmm0, dword [ecx + 0x540]
jb 0x1008397d
jmp 0x1008392b
lea edx, [ebp - 0x98]
push edx
push 8
mov eax, dword [ebp - 0x20]
push eax
call fcn.1005be40
add esp, 0xc
push eax
lea ecx, [ebp - 0x98]
call fcn.1005be00
nop
movzx ecx, byte [0x106a5b3d]
test ecx, ecx
je 0x100839d8
push 0
push 1
push 1
push 1
push 0
push 1
push 1
lea edx, [ebp - 0x98]
lea ecx, [ebp - 0xc4]
call fcn.100e00e0
add esp, 0x1c
movzx edx, al
test edx, edx
jne 0x100839d8
jmp 0x1008392b
lea ecx, [ebp - 0xa4]
call fcn.100e0150
lea eax, [ebp - 0xa4]
push eax
lea ecx, [ebp - 0x98]
push ecx
mov ecx, 0x106a6eea
call fcn.1005bfd0
cvtsi2ss xmm0, dword [ebp - 0x4c]
divss xmm0, dword [0x102a9670]
movss dword [ebp - 0x54], xmm0
cvtsi2ss xmm0, dword [ebp - 0x50]
divss xmm0, dword [0x102a9690]
movss dword [ebp - 0x58], xmm0
movss xmm0, dword [ebp - 0xa4]
subss xmm0, dword [ebp - 0x54]
movss dword [ebp - 0x30], xmm0
movss xmm0, dword [ebp - 0xa0]
subss xmm0, dword [ebp - 0x58]
movss dword [ebp - 0x34], xmm0
movss xmm0, dword [ebp - 0x30]
mulss xmm0, dword [ebp - 0x30]
movss xmm1, dword [ebp - 0x34]
mulss xmm1, dword [ebp - 0x34]
addss xmm0, xmm1
push ecx
movss dword [esp], xmm0
call fcn.1005bde0
add esp, 4
fstp dword [ebp - 0x5c]
cvtsi2ss xmm0, dword [0x106a5b1c]
movss xmm1, dword [ebp - 0x5c]
comiss xmm1, xmm0
jbe 0x10083a83
jmp 0x1008392b
lea edx, [ebp - 0xc4]
push edx
lea eax, [ebp - 0x98]
push eax
lea ecx, [ebp - 0xdc]
push ecx
call fcn.10083110
add esp, 0xc
lea edx, [ebp - 0xd0]
push edx
lea ecx, [ebp - 0xdc]
call fcn.100830c0
push ecx
fstp dword [esp]
lea eax, [ebp - 0xd0]
push eax
lea ecx, [ebp - 0x10c]
push ecx
call fcn.10083190
add esp, 0xc
push eax
lea edx, [ebp - 0xdc]
push edx
lea eax, [ebp - 0xf4]
push eax
call fcn.10083110
add esp, 0xc
lea ecx, [ebp - 0xf4]
call fcn.100e0190
movss dword [ebp - 0x38], xmm0
movss xmm0, dword [ebp - 0x3c]
comiss xmm0, dword [ebp - 0x38]
jbe 0x10083b0e
movss xmm0, dword [ebp - 0x38]
movss dword [ebp - 0x3c], xmm0
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x24], ecx
jmp 0x1008392b
cmp dword [ebp - 0x24], 0
je 0x10084162
mov ecx, dword [0x106a7be0]
call fcn.100e00a0
push eax
lea ecx, [ebp - 0x100]
call fcn.1005be00
lea edx, [ebp - 0xe8]
push edx
push 8
mov eax, dword [ebp - 0x24]
push eax
call fcn.1005be40
add esp, 0xc
push eax
lea ecx, [ebp - 0xe8]
call fcn.1005be00
lea ecx, [ebp - 0xe8]
push ecx
lea edx, [ebp - 0x100]
push edx
lea eax, [ebp - 0x14]
push eax
call fcn.10083110
add esp, 0xc
xorps xmm0, xmm0
movss dword [ebp - 0x18], xmm0
xorps xmm0, xmm0
movss dword [ebp - 8], xmm0
xorps xmm0, xmm0
movss dword [ebp - 0x1c], xmm0
xorps xmm0, xmm0
movss dword [ebp - 0x44], xmm0
mov ecx, 0x238
imul edx, ecx, 0
mov eax, dword [0x106a7be0]
movzx ecx, word [eax + edx + 0x180]
cmp ecx, 0x35
je 0x10083bc8
mov edx, 0x238
imul eax, edx, 0
mov ecx, dword [0x106a7be0]
movzx edx, word [ecx + eax + 0x180]
cmp edx, 0x37
jne 0x10083ccb
mov ecx, dword [0x106a7be0]
call fcn.100e0080
fstp dword [ebp - 0x60]
movss xmm0, dword [ebp - 0x60]
divss xmm0, dword [0x102a9674]
mulss xmm0, dword [0x102a9594]
push ecx
movss dword [esp], xmm0
call fcn.100830a0
add esp, 4
fstp dword [ebp - 0x40]
mov eax, dword [0x106a7be4]
movss xmm0, dword [eax]
mulss xmm0, dword [0x102a9674]
movss xmm1, dword [0x102a9634]
subss xmm1, xmm0
mov ecx, dword [0x10658ad8]
movss xmm0, dword [0x102a9634]
divss xmm0, dword [ecx]
mulss xmm1, xmm0
mulss xmm1, dword [ebp - 0x40]
push ecx
movss dword [esp], xmm1
push ecx
movss xmm0, dword [0x102a9634]
movss dword [esp], xmm0
call fcn.10083070
add esp, 8
fstp qword [ebp - 0xac]
movsd xmm0, qword [0x102a9680]
subsd xmm0, qword [ebp - 0xac]
cvtsd2ss xmm0, xmm0
movss dword [ebp - 0x1c], xmm0
mov edx, dword [0x106a7bd0]
movss xmm0, dword [edx]
mulss xmm0, dword [0x102a9674]
subss xmm0, dword [0x102a9634]
mulss xmm0, dword [ebp - 0x40]
push ecx
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x102a9634]
movss dword [esp], xmm0
call fcn.10083070
add esp, 8
fstp qword [ebp - 0xb4]
movsd xmm0, qword [0x102a9680]
subsd xmm0, qword [ebp - 0xb4]
cvtsd2ss xmm0, xmm0
movss dword [ebp - 0x44], xmm0
jmp 0x10083ce2
movss xmm0, dword [0x102a965c]
movss dword [ebp - 0x1c], xmm0
movss xmm0, dword [ebp - 0x1c]
movss dword [ebp - 0x44], xmm0
or ecx, 0xffffffff
call fcn.100dfd10
add eax, 0x5a0
mov dword [ebp - 0x64], eax
or ecx, 0xffffffff
call fcn.100dfd10
movzx eax, byte [eax + 0x718]
imul ecx, eax, 0x1c
mov dword [ebp - 0x68], ecx
mov edx, dword [ebp - 0x64]
add edx, dword [ebp - 0x68]
mov al, byte [edx]
mov byte [ebp - 1], al
movzx ecx, byte [ebp - 1]
cmp ecx, 0x16
jl 0x10083d24
movzx edx, byte [ebp - 1]
cmp edx, 0x1d
jle 0x10083d2d
movzx eax, byte [ebp - 1]
cmp eax, 0x20
jne 0x10083d3c
movss xmm0, dword [0x102a95a4]
movss dword [ebp - 0x18], xmm0
jmp 0x10083d73
movzx ecx, byte [ebp - 1]
cmp ecx, 0x1e
je 0x10083d4e
movzx edx, byte [ebp - 1]
cmp edx, 0x1f
jne 0x10083d5d
movss xmm0, dword [0x102a959c]
movss dword [ebp - 0x18], xmm0
jmp 0x10083d73
movzx eax, byte [ebp - 1]
cmp eax, 0x21
jne 0x10083d73
movss xmm0, dword [0x102a9598]
movss dword [ebp - 0x18], xmm0
movss xmm0, dword [ebp - 0x14]
mulss xmm0, dword [ebp - 0x14]
movss xmm1, dword [ebp - 0x10]
mulss xmm1, dword [ebp - 0x10]
addss xmm0, xmm1
push ecx
movss dword [esp], xmm0
call fcn.1005bde0
add esp, 4
fstp dword [ebp - 0x48]
cvtss2sd xmm0, dword [ebp - 0x14]
xorps xmm1, xmm1
comisd xmm1, xmm0
jb 0x10083db9
cvtss2sd xmm0, dword [ebp - 0x10]
comisd xmm0, xmmword [0x102a9568]
jae 0x10083dd7
cvtss2sd xmm0, dword [ebp - 0x14]
comisd xmm0, xmmword [0x102a9568]
jb 0x10083e17
cvtss2sd xmm0, dword [ebp - 0x10]
comisd xmm0, xmmword [0x102a9568]
jb 0x10083e17
movss xmm0, dword [ebp - 0x14]
divss xmm0, dword [ebp - 0x48]
push ecx
movss dword [esp], xmm0
call fcn.10082ff0
add esp, 4
fstp dword [ebp - 0x6c]
movss xmm0, dword [ebp - 0x6c]
addss xmm0, dword [ebp - 0x18]
mov ecx, 0x238
imul edx, ecx, 0
mov eax, dword [0x106a7be0]
subss xmm0, dword [eax + edx + 0x230]
movss dword [ebp - 8], xmm0
cvtss2sd xmm0, dword [ebp - 0x14]
comisd xmm0, xmmword [0x102a9568]
jb 0x10083e34
cvtss2sd xmm0, dword [ebp - 0x10]
xorps xmm1, xmm1
comisd xmm1, xmm0
jae 0x10083e50
cvtss2sd xmm0, dword [ebp - 0x14]
xorps xmm1, xmm1
comisd xmm1, xmm0
jb 0x10083e97
cvtss2sd xmm0, dword [ebp - 0x10]
xorps xmm1, xmm1
comisd xmm1, xmm0
jb 0x10083e97
movss xmm0, dword [ebp - 0x14]
divss xmm0, dword [ebp - 0x48]
push ecx
movss dword [esp], xmm0
call fcn.10082ff0
add esp, 4
fstp dword [ebp - 0x70]
movss xmm0, dword [ebp - 0x70]
xorps xmm0, xmmword [0x102a98e0]
addss xmm0, dword [ebp - 0x18]
mov ecx, 0x238
imul edx, ecx, 0
mov eax, dword [0x106a7be0]
subss xmm0, dword [eax + edx + 0x230]
movss dword [ebp - 8], xmm0
cmp dword [0x106b1e8c], 0
jne 0x10083f3a
mov ecx, dword [0x106a5b38]
shl ecx, 1
cvtsi2ss xmm0, ecx
movss xmm1, dword [ebp - 8]
divss xmm1, xmm0
movss dword [ebp - 0x28], xmm1
cvtss2sd xmm0, dword [ebp - 0x28]
comisd xmm0, xmmword [0x102a9868]
jbe 0x10083f35
cvtss2sd xmm0, dword [ebp - 0x28]
movsd xmm1, qword [0x102a9660]
comisd xmm1, xmm0
jbe 0x10083f35
cvtss2sd xmm0, dword [ebp - 8]
comisd xmm0, xmmword [0x102a9870]
jbe 0x10083f35
cvtss2sd xmm0, dword [ebp - 8]
movsd xmm1, qword [0x102a9678]
comisd xmm1, xmm0
jbe 0x10083f35
mov edx, 0x238
imul eax, edx, 0
mov ecx, dword [0x106a7be0]
movss xmm0, dword [ecx + eax + 0x230]
addss xmm0, dword [ebp - 0x28]
mov edx, 0x238
imul eax, edx, 0
mov ecx, dword [0x106a7be0]
movss dword [ecx + eax + 0x230], xmm0
jmp 0x10083fd0
cmp dword [0x106b1e8c], 1
jne 0x10083fd0
movss xmm0, dword [ebp - 8]
divss xmm0, dword [0x102a9634]
movss dword [ebp - 0x2c], xmm0
cvtss2sd xmm0, dword [ebp - 0x2c]
comisd xmm0, xmmword [0x102a9868]
jbe 0x10083fd0
cvtss2sd xmm0, dword [ebp - 0x2c]
movsd xmm1, qword [0x102a9660]
comisd xmm1, xmm0
jbe 0x10083fd0
cvtss2sd xmm0, dword [ebp - 8]
comisd xmm0, xmmword [0x102a9870]
jbe 0x10083fd0
cvtss2sd xmm0, dword [ebp - 8]
movsd xmm1, qword [0x102a9678]
comisd xmm1, xmm0
jbe 0x10083fd0
mov edx, 0x238
imul eax, edx, 0
mov ecx, dword [0x106a7be0]
movss xmm0, dword [ecx + eax + 0x230]
addss xmm0, dword [ebp - 0x2c]
mov edx, 0x238
imul eax, edx, 0
mov ecx, dword [0x106a7be0]
movss dword [ecx + eax + 0x230], xmm0
movzx edx, byte [0x106a5b3c]
test edx, edx
je 0x10084162
cmp dword [0x106b1e8c], 0
jne 0x100840a1
movss xmm0, dword [ebp - 0x14]
mulss xmm0, dword [ebp - 0x14]
movss xmm1, dword [ebp - 0x10]
mulss xmm1, dword [ebp - 0x10]
addss xmm0, xmm1
push ecx
movss dword [esp], xmm0
call fcn.1005bde0
add esp, 4
fstp dword [ebp - 0x74]
push ecx
movss xmm0, dword [ebp - 0xc]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [ebp - 0x74]
movss dword [esp], xmm0
call fcn.10083010
add esp, 8
fstp dword [ebp - 0x78]
movss xmm0, dword [ebp - 0x78]
subss xmm0, dword [ebp - 0x1c]
mov eax, 0x238
imul ecx, eax, 0
mov edx, dword [0x106a7be0]
subss xmm0, dword [edx + ecx + 0x220]
mov eax, dword [0x106a5b38]
shl eax, 1
cvtsi2ss xmm1, eax
divss xmm0, xmm1
movss dword [ebp - 0x7c], xmm0
mov ecx, 0x238
imul edx, ecx, 0
mov eax, dword [0x106a7be0]
movss xmm0, dword [eax + edx + 0x220]
addss xmm0, dword [ebp - 0x7c]
mov ecx, 0x238
imul edx, ecx, 0
mov eax, dword [0x106a7be0]
movss dword [eax + edx + 0x220], xmm0
jmp 0x10084162
cmp dword [0x106b1e8c], 1
jne 0x10084162
movss xmm0, dword [ebp - 0x14]
mulss xmm0, dword [ebp - 0x14]
movss xmm1, dword [ebp - 0x10]
mulss xmm1, dword [ebp - 0x10]
addss xmm0, xmm1
push ecx
movss dword [esp], xmm0
call fcn.1005bde0
add esp, 4
fstp dword [ebp - 0x80]
push ecx
movss xmm0, dword [ebp - 0xc]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [ebp - 0x80]
movss dword [esp], xmm0
call fcn.10083010
add esp, 8
fstp dword [ebp - 0x84]
movss xmm0, dword [ebp - 0x84]
subss xmm0, dword [ebp - 0x1c]
mov ecx, 0x238
imul edx, ecx, 0
mov eax, dword [0x106a7be0]
subss xmm0, dword [eax + edx + 0x220]
divss xmm0, dword [0x102a9634]
movss dword [ebp - 0x88], xmm0
mov ecx, 0x238
imul edx, ecx, 0
mov eax, dword [0x106a7be0]
movss xmm0, dword [eax + edx + 0x220]
addss xmm0, dword [ebp - 0x88]
mov ecx, 0x238
imul edx, ecx, 0
mov eax, dword [0x106a7be0]
movss dword [eax + edx + 0x220], xmm0
mov esp, ebp
pop ebp
ret 4