Function at 0x10067cb0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x20
cmp byte [0x101dd250], 0
push esi
push edi
mov esi, ecx
je 0x100684a3
mov eax, dword [0x101e0948]
mov ecx, dword [0x101e14f0]
mov dword [esp + 0x14], eax
mov eax, dword fs:[0x2c]
mov edi, dword [eax + ecx*4]
mov eax, dword [0x101e2744]
cmp eax, dword [edi + 4]
jle 0x10067d1c
push 0x101e2744
call fcn.100b5535
add esp, 4
cmp dword [0x101e2744], 0xffffffff
jne 0x10067d1c
mov eax, dword [0x101e2734]
push 0x101e2744
mov dword [0x101e271c], eax
call fcn.100b54eb
add esp, 4
mov eax, dword [0x101e271c]
mov ecx, dword [esp + 0x14]
test byte [eax + ecx], 0x40
jne 0x100684a3
mov eax, dword [0x101e0948]
mov dword [esp + 0x14], eax
mov eax, dword [0x101e29cc]
cmp eax, dword [edi + 4]
jle 0x10067d72
push 0x101e29cc
call fcn.100b5535
add esp, 4
cmp dword [0x101e29cc], 0xffffffff
jne 0x10067d72
mov eax, dword [0x101e287c]
push 0x101e29cc
mov dword [0x101e29b8], eax
call fcn.100b54eb
add esp, 4
mov eax, dword [0x101e29b8]
mov ecx, dword [esp + 0x14]
cmp byte [eax + ecx], 0
jne 0x100684a3
mov eax, dword [0x101e0948]
mov eax, dword [eax + 0x3874]
test eax, eax
mov dword [esp + 0xc], eax
mov eax, dword [0x101e2534]
mov byte [eax + 0xa], 0
je 0x100684ac
mov ecx, dword [0x101e253c]
call fcn.1007aa00
test al, al
je 0x10067dbf
mov eax, dword [0x101e07bc]
mov eax, dword [eax + 4]
mov dword [esi + 0x20], eax
mov ecx, dword [0x101e0948]
mov dword [esp + 0x14], ecx
mov eax, dword [ecx + 0x258]
cmp eax, 9
je 0x100684ac
cmp eax, 8
je 0x100684ac
mov eax, dword [0x101dfe74]
inc eax
cmp eax, 3
ja case.default.0x10067dec
jmp dword [eax*4 + 0x100684b4]
push dword [0x101dfe70]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
jmp 0x10067e0d
push dword [0x101dfe70]
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
setne al
test al, al
jne case.0x10067dec.0
mov eax, dword [0x101e0948]
mov dword [esp + 0x14], eax
mov eax, dword [0x101e2528]
cmp byte [eax + 0x64767], 0
jne 0x10067ec1
mov ecx, dword [0x101e29e0]
cmp ecx, dword [edi + 4]
jle 0x10067e76
push 0x101e29e0
call fcn.100b5535
add esp, 4
cmp dword [0x101e29e0], 0xffffffff
jne 0x10067e71
mov eax, dword [0x101e2878]
push 0x101e29e0
mov dword [0x101e29d0], eax
call fcn.100b54eb
add esp, 4
mov eax, dword [0x101e2528]
mov ecx, dword [0x101e29d0]
mov edx, dword [esp + 0x14]
movq xmm0, qword [ecx + edx]
movq qword [esp + 0x1c], xmm0
movss xmm0, dword [esp + 0x20]
movss xmm1, dword [esp + 0x1c]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm1, xmm0
movss xmm0, dword [0x1016d700]
comiss xmm0, xmm1
ja 0x10067ec1
mov byte [esp + 0xb], 0
mov byte [esp + 9], 0
jmp 0x10067f23
mov eax, dword [0x101e2528]
mov ecx, dword [0x101e1d50]
mov byte [esp + 0xb], 1
mov edx, dword [ecx + 0x4cb0]
mov ecx, dword [0x101e2548]
test edx, edx
jne 0x10067ef8
mov eax, dword [0x101e1d20]
movss xmm0, dword [eax + 0x10]
comiss xmm0, dword [ecx + 0x14]
mov eax, dword [0x101e2528]
jb 0x10067ef8
mov byte [esp + 9], 1
jmp 0x10067f01
mov byte [esp + 9], 0
test edx, edx
jne 0x10067f23
movss xmm1, dword [ecx + 0x14]
mov ecx, dword [0x101e1d20]
subss xmm1, dword [0x1016d528]
mov byte [esp + 0xa], 1
movss xmm0, dword [ecx + 0x10]
comiss xmm0, xmm1
jae 0x10067f28
mov byte [esp + 0xa], 0
mov ecx, dword [0x101e07bc]
test byte [ecx + 0x30], 0x20
je 0x100680cc
mov ecx, dword [0x101e29c4]
inc ecx
cmp byte [0x101dd251], 0
mov dword [0x101e29c4], ecx
je 0x100684ac
cmp ecx, 3
jle 0x100684ac
cmp byte [eax + 0x64765], 0
jne 0x100684ac
cmp byte [eax + 0x64766], 0
jne 0x100684ac
cmp dword [eax + 0x6476c], 0
jne 0x100684ac
mov ecx, dword [0x101e094c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x280]
call eax
test al, al
je 0x100684ac
mov eax, dword [0x101e274c]
mov esi, dword [0x101e094c]
cmp eax, dword [edi + 4]
jle 0x10067fda
push 0x101e274c
call fcn.100b5535
add esp, 4
cmp dword [0x101e274c], 0xffffffff
jne 0x10067fda
mov eax, dword [0x101e2758]
push 0x101e274c
mov dword [0x101e2750], eax
call fcn.100b54eb
add esp, 4
mov eax, dword [0x101e2750]
movzx eax, word [esi + eax]
add eax, 0xffffffd5
cmp ax, 5
jbe 0x100684ac
mov eax, dword [0x101e07c0]
cmp byte [eax], 0
jne 0x1006806c
cmp byte [esp + 0xa], 0
je 0x1006805e
cmp byte [esp + 9], 0
jne 0x1006805e
mov eax, dword [0x101e29dc]
mov esi, dword [0x101e0948]
cmp eax, dword [edi + 4]
jle 0x10068048
push 0x101e29dc
call fcn.100b5535
add esp, 4
cmp dword [0x101e29dc], 0xffffffff
jne 0x10068048
mov eax, dword [0x101e292c]
push 0x101e29dc
mov dword [0x101e29d8], eax
call fcn.100b54eb
add esp, 4
mov eax, dword [0x101e29d8]
mov ecx, dword [esi + eax]
mov eax, dword [0x101e07bc]
mov dword [eax + 0x10], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
sub esp, 8
call fcn.10065ac0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [0x101e29dc]
mov esi, dword [0x101e0948]
cmp eax, dword [edi + 4]
jle 0x100680ac
push 0x101e29dc
call fcn.100b5535
add esp, 4
cmp dword [0x101e29dc], 0xffffffff
jne 0x100680ac
mov eax, dword [0x101e292c]
push 0x101e29dc
mov dword [0x101e29d8], eax
call fcn.100b54eb
add esp, 4
mov eax, dword [0x101e29d8]
mov ecx, dword [0x101e07bc]
movss xmm0, dword [esi + eax]
addss xmm0, dword [ecx + 0x10]
movss dword [ecx + 0x10], xmm0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x20]
mov dword [0x101e29c4], 0
cmp eax, dword [ecx + 4]
je 0x100684ac
call fcn.10066110
mov dword [esp + 0x18], eax
test eax, eax
je 0x100684ac
mov eax, dword [eax]
sub eax, 1
je 0x10068155
sub eax, 1
je 0x10068136
sub eax, 1
jne 0x10068167
cmp byte [esp + 0xb], al
je 0x10068155
movss xmm1, dword [0x1016d63c]
xorps xmm0, xmm0
call fcn.10059de0
mov ecx, dword [esp + 0xc]
mov eax, dword [0x101e07bc]
movss xmm1, dword [ecx + 0x33c]
subss xmm1, xmm0
movss dword [eax + 0xc], xmm1
jmp 0x10068167
mov ecx, dword [esp + 0xc]
mov eax, dword [0x101e07bc]
movss xmm0, dword [ecx + 0x338]
xorps xmm0, xmmword [0x1016ddc0]
movss dword [eax + 0xc], xmm0
jmp 0x10068167
mov ecx, dword [esp + 0xc]
mov eax, dword [0x101e07bc]
mov ecx, dword [ecx + 0x33c]
mov dword [eax + 0xc], ecx
lea eax, [esp + 0x18]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], eax
mov eax, dword [0x101e07c0]
cmp byte [eax], 0
je 0x1006818c
cmp byte [esi + 2], 0
sete al
mov byte [esi + 2], al
mov eax, dword [0x101e07c0]
cmp byte [0x101dd2d0], 0
je 0x10068494
cmp byte [eax], 0
mov eax, dword [0x101e0948]
jne 0x100683e6
mov dword [esp + 0x14], eax
mov eax, dword [0x101e27e0]
cmp eax, dword [edi + 4]
jle 0x100681e5
push 0x101e27e0
call fcn.100b5535
add esp, 4
cmp dword [0x101e27e0], 0xffffffff
jne 0x100681e5
mov eax, dword [0x101e2810]
push 0x101e27e0
mov dword [0x101e27e8], eax
call fcn.100b54eb
add esp, 4
mov eax, dword [0x101e27e8]
xorps xmm1, xmm1
mov ecx, dword [esp + 0x14]
mov byte [esp + 0xb], 0
movss xmm0, dword [ecx + eax]
comiss xmm0, xmm1
seta byte [esp + 0xa]
call fcn.10069810
lea ecx, [eax + 1]
mov eax, dword [0x101e1d20]
mov edi, dword [eax + 0x1c]
mov eax, dword [0x101e29b4]
sub eax, edi
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
jle 0x1006822d
mov cl, 1
mov dword [0x101e29b4], edi
jmp 0x10068231
mov cl, byte [esp + 0xb]
mov eax, dword [0x101dd2d4]
sub eax, 0
je 0x1006836f
sub eax, 1
je 0x1006824d
sub eax, 1
jne 0x100683b8
mov al, byte [esp + 0xa]
test al, al
jne 0x1006825f
cmp byte [esp + 9], al
je 0x1006837a
movss xmm0, dword [esi + 0x18]
ucomiss xmm0, dword [esi + 0x1c]
lahf
test ah, 0x44
jnp 0x10068298
mov ecx, edi
call fcn.10059cd0
movss xmm1, dword [0x1016d700]
movss xmm0, dword [0x1016d58c]
call fcn.10059de0
mov al, byte [esp + 0xa]
movss dword [esi + 0x1c], xmm0
movss dword [esi + 0x18], xmm0
test al, al
jne 0x100683b8
cmp dword [0x101dd2d4], 2
jne 0x100682b3
xor ecx, ecx
cmp byte [esi + 1], cl
setne cl
jmp 0x100682fa
mov eax, dword [0x101dff14]
inc eax
cmp eax, 3
ja case.default.0x100682be
jmp dword [eax*4 + 0x100684c4]
xor ecx, ecx
jmp 0x100682fa
push dword [0x101dff10]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
xor ecx, ecx
test ax, ax
sete cl
jmp 0x100682fa
push dword [0x101dff10]
call dword [sym.imp.USER32.dll_GetKeyState]
xor ecx, ecx
test ax, ax
sete cl
jmp 0x100682fa
mov ecx, 1
lea ecx, [ecx*2 - 1]
mov dword [esi + 8], ecx
mov eax, dword [0x101e07c0]
movss xmm2, dword [0x1016d858]
movss xmm1, dword [0x1016d768]
mov byte [eax], 1
mov eax, dword [esi + 8]
imul eax, dword [0x101dd2d8]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, dword [esi + 0x14]
comiss xmm2, xmm0
jbe 0x10068340
addss xmm0, xmm1
comiss xmm2, xmm0
ja 0x10068337
movss xmm2, dword [0x1016d73c]
comiss xmm0, xmm2
jbe 0x10068359
nop dword [eax]
subss xmm0, xmm1
comiss xmm0, xmm2
ja 0x10068350
mov eax, dword [0x101e07bc]
movss dword [eax + 0x10], xmm0
cmp byte [esi + 1], 0
sete al
mov byte [esi + 1], al
jmp 0x100683b8
cmp byte [esp + 0xa], 0
jne 0x10068383
test cl, cl
jne 0x10068383
mov dword [esi + 0x18], 0xbf800000
jmp 0x100683b8
movss xmm0, dword [esi + 0x18]
ucomiss xmm0, dword [esi + 0x1c]
lahf
test ah, 0x44
jnp 0x100683cc
mov ecx, edi
call fcn.10059cd0
movss xmm1, dword [0x1016d700]
movss xmm0, dword [0x1016d58c]
call fcn.10059de0
movss dword [esi + 0x1c], xmm0
movss dword [esi + 0x18], xmm0
cmp dword [0x101dd2d4], 0
je 0x100683cc
cmp byte [esp + 9], 0
jne 0x100684ac
lea ecx, [esp + 0xc]
call fcn.100684e0
mov eax, dword [0x101e07bc]
mov eax, dword [eax + 0x10]
mov dword [esi + 0x14], eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [eax + 0x3874], 0
je 0x100684ac
call fcn.10069810
cmp eax, 8
jge 0x1006844d
call fcn.1011b211
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x1016d47c]
call fcn.10132d1c
mov cl, byte [0x101e29c0]
mulss xmm0, dword [0x1016d73c]
test cl, cl
jne 0x1006842f
xorps xmm0, xmmword [0x1016ddc0]
mov eax, dword [0x101e07bc]
test cl, cl
sete byte [0x101e29c0]
addss xmm0, dword [eax + 0x10]
movss dword [eax + 0x10], xmm0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
movss xmm1, dword [esi + 0x14]
addss xmm1, dword [0x1016d73c]
movss xmm0, dword [0x1016d63c]
movss dword [esp + 0x14], xmm1
movss xmm1, dword [0x1016d698]
call fcn.10059de0
movss xmm1, dword [esp + 0x14]
mov eax, dword [0x101e07bc]
subss xmm1, xmm0
addss xmm1, dword [eax + 0x10]
movss dword [eax + 0x10], xmm1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0xc]
call fcn.100684e0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [0x101e2534]
mov byte [eax + 0xa], 0
pop edi
pop esi
mov esp, ebp
pop ebp
ret