Function at 0x10067730
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1007f4bd
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x70
mov eax, dword [0x100b1040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ecx, dword [0x100b23e0]
call fcn.10021df0
mov eax, dword fs:[0x2c]
mov ecx, dword [0x100b2098]
mov esi, dword [eax + ecx*4]
mov eax, dword [0x100b2898]
cmp eax, dword [esi + 4]
jle 0x100677c2
push 0x100b2898
call fcn.1007c6b8
add esp, 4
cmp dword [0x100b2898], 0xffffffff
jne 0x100677c2
mov eax, dword [0x100b2508]
push 0x100b2898
mov dword [0x100b28b0], eax
call fcn.1007c667
add esp, 4
mov eax, dword [0x100b28dc]
cmp eax, dword [esi + 4]
jle 0x100677fc
push 0x100b28dc
call fcn.1007c6b8
add esp, 4
cmp dword [0x100b28dc], 0xffffffff
jne 0x100677fc
mov eax, dword [0x100b24f8]
push 0x100b28dc
mov dword [0x100b2840], eax
call fcn.1007c667
add esp, 4
mov eax, dword [0x100b2840]
cdq
sub eax, edx
sar eax, 1
movd xmm1, eax
mov eax, dword [0x100b28b0]
cdq
sub eax, edx
sar eax, 1
cvtdq2ps xmm1, xmm1
movd xmm0, eax
mov eax, dword [0x100b28e0]
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x1c], xmm1
movss dword [ebp - 0x18], xmm0
cmp eax, dword [esi + 4]
jle 0x10067865
push 0x100b28e0
call fcn.1007c6b8
add esp, 4
cmp dword [0x100b28e0], 0xffffffff
jne 0x10067865
push 0x10080190
call fcn.1007c4ce
add esp, 4
push 0x100b28e0
call fcn.1007c667
add esp, 4
push dword [0x100b2370]
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
call esi
push dword [0x100b2388]
shr eax, 0xf
and al, 1
mov byte [0x100b22db], al
call esi
push dword [0x100b238c]
shr eax, 0xf
and al, 1
mov byte [0x100b22d8], al
call esi
shr eax, 0xf
and al, 1
cmp byte [0x100b22db], 0
mov byte [0x100b22cb], al
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x20], eax
je 0x1006793a
push 2
xorps xmm0, xmm0
mov dword [ebp - 0x38], 0
push 0x100a63e0
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x34], 0
movups xmmword [ebp - 0x48], xmm0
call fcn.1000f7a0
lea eax, [ebp - 0x48]
mov dword [ebp - 4], 0
push eax
lea ecx, [ebp - 0x20]
call fcn.10067d60
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x34]
cmp ecx, 0xf
jbe 0x10067928
mov edx, dword [ebp - 0x48]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1006791e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1006791e
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1007c4e8
add esp, 8
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0xf
mov byte [ebp - 0x48], 0
cmp byte [0x100b22d8], 0
je 0x100679cd
push 2
xorps xmm0, xmm0
mov dword [ebp - 0x50], 0
push 0x100a63e4
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x4c], 0
movups xmmword [ebp - 0x60], xmm0
call fcn.1000f7a0
lea eax, [ebp - 0x60]
mov dword [ebp - 4], 1
push eax
lea ecx, [ebp - 0x20]
call fcn.10067d60
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x4c]
cmp ecx, 0xf
jbe 0x100679bb
mov edx, dword [ebp - 0x60]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100679b1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100679b1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1007c4e8
add esp, 8
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0xf
mov byte [ebp - 0x60], 0
cmp byte [0x100b22cb], 0
je 0x10067a60
push 2
xorps xmm0, xmm0
mov dword [ebp - 0x68], 0
push 0x100a63e8
lea ecx, [ebp - 0x78]
mov dword [ebp - 0x64], 0
movups xmmword [ebp - 0x78], xmm0
call fcn.1000f7a0
lea eax, [ebp - 0x78]
mov dword [ebp - 4], 2
push eax
lea ecx, [ebp - 0x20]
call fcn.10067d60
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x64]
cmp ecx, 0xf
jbe 0x10067a4e
mov edx, dword [ebp - 0x78]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10067a44
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10067a44
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1007c4e8
add esp, 8
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0xf
mov byte [ebp - 0x78], 0
mov eax, dword [0x100b2684]
xor ecx, ecx
mov esi, dword [0x100b2680]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], ecx
mov ecx, eax
sub ecx, esi
mov eax, 0x38e38e39
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x10067c02
xor edi, edi
mov eax, dword [ebp - 0x20]
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100ab6a0]
cvtpd2ps xmm1, xmm0
xorps xmm0, xmm0
mulss xmm1, dword [0x100ab114]
cvtsi2ss xmm0, dword [0x100b23a4]
addss xmm1, xmm0
subss xmm1, dword [edi + esi + 0x18]
divss xmm1, dword [0x100ab09c]
addss xmm1, dword [edi + esi + 0x18]
movss dword [edi + esi + 0x18], xmm1
mov eax, dword [0x100b2680]
cmp byte [edi + eax + 0x20], 0
movss xmm1, dword [edi + eax + 0x1c]
je 0x10067b03
addss xmm1, dword [0x100aaf94]
movss xmm0, dword [0x100ab010]
minss xmm0, xmm1
jmp 0x10067b12
subss xmm1, dword [0x100aaf94]
xorps xmm0, xmm0
maxss xmm0, xmm1
movss dword [edi + eax + 0x1c], xmm0
mov eax, dword [0x100b2680]
add eax, edi
cmp dword [eax + 0x14], 0xf
jbe 0x10067b27
mov eax, dword [eax]
movd xmm0, dword [0x100b11f8]
movss xmm3, dword [0x100ab1c8]
push ecx
push 0
push eax
push ecx
mov ecx, dword [0x100b23d4]
lea eax, [ebp - 0x80]
cvtdq2ps xmm2, xmm0
mov dword [esp], 0
push eax
call fcn.1003d560
movss xmm0, dword [ebp - 0x80]
mulss xmm0, dword [0x100aafcc]
mov eax, dword [0x100b2680]
movss xmm1, dword [ebp - 0x1c]
add eax, edi
mov ecx, eax
subss xmm1, xmm0
cmp dword [eax + 0x14], 0xf
movss xmm0, dword [eax + 0x18]
movss dword [ebp - 0x2c], xmm0
movss dword [ebp - 0x30], xmm1
jbe 0x10067b8b
mov ecx, dword [eax]
movss xmm0, dword [eax + 0x1c]
push dword [ebp - 0x2c]
mulss xmm0, dword [0x100ab17c]
push dword [ebp - 0x30]
movd xmm2, dword [0x100b11f8]
push dword [0x100b23d8]
cvttss2si eax, xmm0
push dword [0x100b2400]
shl eax, 0x18
push ecx
or eax, 0xffffff
cvtdq2ps xmm2, xmm2
push eax
push dword [0x100b23d4]
call fcn.10039430
mov eax, dword [0x100b2684]
add edi, 0x24
mov esi, dword [0x100b2680]
mov ecx, eax
inc dword [ebp - 0x20]
sub ecx, esi
mov dword [ebp - 0x24], eax
mov eax, 0x38e38e39
imul ecx
mov ecx, dword [ebp - 0x20]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jb 0x10067a90
mov eax, dword [ebp - 0x24]
mov edi, eax
cmp esi, edi
je 0x10067cd3
nop
push esi
call fcn.10067eb0
test al, al
jne 0x10067c21
add esi, 0x24
cmp esi, edi
jne 0x10067c10
mov eax, dword [0x100b2684]
mov dword [ebp - 0x24], eax
cmp esi, edi
je 0x10067cd3
lea ecx, [esi + 0x24]
mov dword [ebp - 0x20], ecx
cmp ecx, edi
je 0x10067c83
nop dword [eax + eax]
push ecx
call fcn.10067eb0
test al, al
jne 0x10067c6e
push dword [ebp - 0x20]
mov ecx, esi
call fcn.1005d500
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx + 0x18]
mov dword [esi + 0x18], eax
mov eax, dword [ecx + 0x1c]
mov dword [esi + 0x1c], eax
mov al, byte [ecx + 0x20]
mov byte [esi + 0x20], al
add esi, 0x24
jmp 0x10067c71
mov ecx, dword [ebp - 0x20]
add ecx, 0x24
mov dword [ebp - 0x20], ecx
cmp ecx, edi
jne 0x10067c40
mov eax, dword [0x100b2684]
mov dword [ebp - 0x24], eax
cmp esi, edi
je 0x10067cd3
cmp edi, eax
je 0x10067cc0
mov eax, edi
sub eax, esi
mov dword [ebp - 0x20], eax
push edi
mov ecx, esi
call fcn.1005d500
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx + esi + 0x18]
mov dword [esi + 0x18], eax
mov eax, dword [edi + 0x1c]
mov dword [esi + 0x1c], eax
mov al, byte [edi + 0x20]
add edi, 0x24
mov byte [esi + 0x20], al
add esi, 0x24
cmp edi, dword [ebp - 0x24]
jne 0x10067c92
mov eax, dword [0x100b2684]
push ecx
mov edx, eax
mov ecx, esi
call fcn.1006d440
add esp, 4
mov dword [0x100b2684], esi
mov esi, dword [0x100b2110]
mov eax, dword [esi + 0x3f8c]
mov ecx, dword [eax + 0x270]
mov edx, dword [ecx + 0x48]
sub edx, 1
mov dword [ecx + 0x48], edx
jne 0x10067cf4
xor eax, eax
jmp 0x10067cfb
mov eax, dword [ecx + 0x50]
mov eax, dword [eax + edx*4 - 4]
mov dword [ecx + 0x70], eax
call fcn.10036b50
mov ecx, dword [esi + 0x49d8]
sub ecx, 1
mov dword [esi + 0x49d8], ecx
jne 0x10067d2a
mov eax, dword [0x100b2110]
mov ecx, dword [eax + 0x38]
test ecx, ecx
jne 0x10067d34
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0x44]
mov ecx, dword [eax]
jmp 0x10067d34
mov eax, dword [esi + 0x49e0]
mov ecx, dword [eax + ecx*4 - 4]
call fcn.10021d50
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.1007c18b
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret