Function at 0x10006cc4
Capabilities:
Log keystrokes via polling

Disassembly:
push 8
push 0x70
mov eax, 0x1007d23c
call fcn.1007b3eb
mov esi, dword [ebx + 8]
push esi
call fcn.10006819
pop ecx
test al, al
jne 0x10006dfd
cmp dword [0x100e7400], 0
je 0x10006d8d
mov ecx, dword [0x1009dc24]
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
call eax
test al, al
je 0x10006d8d
mov ecx, dword [0x100e7400]
test ecx, ecx
je 0x10006d8d
call fcn.10006717
cmp dword [eax], 0
jle 0x10006d8d
cmp byte [0x1009d038], 0
je 0x10006d8d
cmp dword [0x1009d068], 0
jne 0x10006d8d
mov ecx, dword [0x100e7400]
call fcn.10002d83
mov edi, eax
test edi, edi
je 0x10006db9
mov ecx, edi
call fcn.10006be0
test al, al
jne 0x10006d65
mov ecx, edi
call fcn.100034d7
xor ecx, ecx
inc ecx
cmp dword [eax + 0xc8], ecx
je 0x10006d65
mov ecx, edi
call fcn.10006b13
test al, al
je 0x10006db9
push 0
push dword [0x1009e01c]
add esi, 0xc
push esi
call fcn.10007219
push esi
call fcn.10075e11
mov ecx, dword [0x1009dc24]
add esp, 0x10
mov eax, dword [ecx]
push esi
call dword [eax + 0x4c]
jmp 0x10006db9
sub esp, 0xc
lea ecx, [ebp - 0x3c]
and dword [esp + 8], 0
and dword [esp + 4], 0
and dword [esp], 0
call fcn.1007a286
mov edi, 0x1009dda8
lea esi, [ebp - 0x3c]
lea ecx, [ebp - 0x3c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.1000cddf
xor ecx, ecx
mov byte [0x1009e012], cl
mov byte [0x1009e010], cl
mov byte [0x1009e018], cl
cmp byte [0x1009d03f], cl
je 0x10006deb
movss xmm0, dword [0x1009d074]
comiss xmm0, dword [0x10084650]
jbe 0x10006deb
xor eax, eax
inc eax
jmp 0x10006ded
mov al, cl
mov byte [0x1009e011], al
mov dword [0x1009e01c], ecx
jmp 0x10007213
push dword [esi + 4]
call dword [0x100e6cb4]
pop ecx
mov ecx, dword [0x100e7400]
call fcn.10002d83
test eax, eax
je 0x10007213
mov ecx, eax
call fcn.100034d7
mov dword [ebp - 0x24], eax
test eax, eax
je 0x10007213
lea eax, [esi + 0xc]
mov byte [ebp - 0x1c], 0
mov esi, eax
mov dword [ebp - 0x20], eax
lea edi, [ebp - 0x30]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
and dword [ebp - 4], 0
lea edi, [ebp - 0x48]
mov esi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
cmp byte [0x1009d03c], 0
movss xmm0, dword [0x10084754]
mov byte [ebp - 4], 1
movss dword [ebp - 0x14], xmm0
je 0x10006e89
mov ecx, dword [0x100e7400]
test ecx, ecx
je 0x10006e89
call fcn.10005bee
movss xmm0, dword [eax]
comiss xmm0, dword [0x10084650]
seta al
test al, al
jne 0x100070da
or dword [ebp - 0x18], 0xffffffff
lea eax, [ebp - 0x18]
push eax
push dword [ebx + 8]
call fcn.10005c94
pop ecx
pop ecx
test eax, eax
je 0x100070da
push dword [ebp - 0x18]
mov ecx, dword [0x1009e01c]
lea eax, [ebp - 0x68]
push eax
call fcn.10006321
mov esi, eax
mov ecx, dword [0x100e7400]
lea eax, [ebp - 0x58]
push eax
mov byte [ebp - 4], 2
call fcn.100034ad
push eax
lea eax, [ebp - 0x3c]
mov byte [ebp - 4], 3
push eax
mov ecx, esi
call fcn.100021fc
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 4
push ecx
push eax
call fcn.1007608b
pop ecx
pop ecx
lea ecx, [ebp - 0x3c]
call fcn.1000cddf
lea ecx, [ebp - 0x58]
call fcn.1000cddf
xor ecx, ecx
inc ecx
mov byte [ebp - 4], cl
lea ecx, [ebp - 0x68]
call fcn.1000cddf
lea eax, [ebp - 0x30]
push eax
call fcn.10075e11
cmp dword [0x1009d060], 1
pop ecx
jne 0x10006fa9
mov esi, dword [ebp - 0x20]
lea edi, [ebp - 0x68]
mov ecx, dword [0x100e7400]
lea eax, [ebp - 0x80]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x30]
lea edi, [ebp - 0x58]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.100034ad
mov esi, eax
push dword [ebp - 0x18]
mov ecx, dword [0x1009e01c]
lea eax, [ebp - 0x74]
push eax
mov byte [ebp - 4], 5
call fcn.10006321
push eax
mov ecx, esi
mov byte [ebp - 4], 6
call fcn.1007a2ba
sub esp, 0xc
lea esi, [ebp - 0x68]
mov edi, esp
sub esp, 0xc
fstp dword [ebp - 0x18]
movss xmm0, dword [ebp - 0x18]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, esp
lea esi, [ebp - 0x58]
push ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movss dword [esp], xmm0
call fcn.10005626
add esp, 0x1c
lea ecx, [ebp - 0x74]
fstp dword [ebp - 0x18]
call fcn.1000cddf
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 1
call fcn.1000cddf
jmp 0x10006fca
sub esp, 0xc
lea esi, [ebp - 0x30]
mov edi, esp
sub esp, 0xc
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x20]
mov edi, esp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.100061a1
fstp dword [ebp - 0x18]
add esp, 0x18
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
xor eax, eax
inc eax
cmp byte [0x1009d03f], 0
mov byte [ebp - 0x1c], al
jne 0x1000702c
cmp byte [0x1009e012], 0
jne 0x1000702c
cmp byte [0x1009e010], 0
jne 0x10007035
cmp dword [0x1009d084], 0
jle 0x10007073
mov byte [0x1009e012], al
mov byte [0x1009e010], al
call esi
add eax, dword [0x1009d084]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100847a0]
cvtpd2ps xmm0, xmm0
movss dword [0x1009e00c], xmm0
cmp byte [0x1009e010], 0
je 0x10007073
call esi
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100847a0]
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [0x1009e00c]
jb 0x10007061
xor al, al
mov byte [0x1009e010], al
jmp 0x10007066
mov al, byte [0x1009e010]
mov esi, dword [ebx + 8]
test al, al
je 0x10007076
and dword [esi + 0x30], 0xfffffffe
jmp 0x10007076
mov esi, dword [ebx + 8]
cmp byte [0x1009d040], 0
je 0x100070bd
mov eax, dword [0x1009d050]
test eax, eax
je 0x10007094
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x100070bd
mov eax, dword [ebp - 0x24]
mov edi, dword [esi + 0x30]
cmp byte [eax + 0xec], 0
jne 0x100070b7
mov ecx, dword [esi + 4]
xor edx, edx
mov eax, edi
inc edx
or eax, edx
and edi, 0xfffffffe
and cl, dl
cmovne edi, eax
jmp 0x100070ba
or edi, 1
mov dword [esi + 0x30], edi
cmp byte [0x1009d045], 0
movss xmm0, dword [ebp - 0x18]
movss dword [ebp - 0x14], xmm0
je 0x100070e2
and dword [esi + 0x28], 0
and dword [esi + 0x24], 0
jmp 0x100070e2
movss xmm0, dword [0x10084754]
push ecx
movss dword [esp], xmm0
call fcn.10006a39
pop ecx
test al, al
je 0x10007116
cmp byte [ebp - 0x1c], 0
jne 0x10007101
cmp dword [0x1009d068], 0
jne 0x10007116
push dword [ebp - 0x1c]
lea eax, [ebp - 0x30]
push dword [0x1009e01c]
push eax
call fcn.10007219
add esp, 0xc
cmp dword [0x1009e01c], 0
je 0x10007155
movss xmm0, dword [ebp - 0x14]
push ecx
movss dword [esp], xmm0
call fcn.10006a39
pop ecx
test al, al
je 0x10007155
lea eax, [ebp - 0x30]
push eax
sub esp, 0xc
mov esi, eax
mov edi, esp
sub esp, 0xc
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, esp
lea esi, [ebp - 0x48]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.10007572
add esp, 0x1c
lea eax, [ebp - 0x30]
push eax
call fcn.10075e11
mov edi, dword [ebp - 0x20]
lea esi, [ebp - 0x30]
movss xmm0, dword [ebp - 0x14]
movss dword [esp], xmm0
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.10006a39
pop ecx
test al, al
je 0x1000718a
mov ecx, dword [0x1009dc24]
lea edx, [ebp - 0x30]
push edx
mov eax, dword [ecx]
call dword [eax + 0x4c]
mov ecx, dword [0x100e7400]
mov byte [0x1009e011], 0
call fcn.10002d83
mov ecx, eax
call fcn.100034d7
xor ecx, ecx
inc ecx
cmp dword [eax + 0xc8], ecx
jne 0x10007203
cmp byte [0x1009d03a], 0
je 0x10007203
mov ecx, dword [0x100e7400]
call fcn.100064ee
mov ecx, dword [0x100e7400]
movd xmm0, dword [eax]
mov eax, dword [0x1009dc30]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [eax + 0x20]
movss dword [ebp - 0x24], xmm0
call fcn.10002d83
mov ecx, eax
call fcn.10006c1d
movss xmm0, dword [eax]
subss xmm0, dword [ebp - 0x24]
comiss xmm0, dword [0x10084650]
jbe 0x10007203
mov eax, dword [ebx + 8]
and dword [eax + 0x30], 0xfffffffe
lea ecx, [ebp - 0x48]
call fcn.1000cddf
lea ecx, [ebp - 0x30]
call fcn.1000cddf
call fcn.1007b368
ret