Function at 0x1001dc80
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 0x100a236d
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x58
push esi
push edi
mov eax, dword [0x10104a40]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, ecx
mov dword [ebp - 0x14], eax
mov edi, dword [ebx + 8]
mov esi, dword [edi + 0x64]
shl esi, 0xa
add esi, eax
cmp byte [esi + 0x3fa], 0
je 0x1001dced
mov eax, dword [esi + 0x3d8]
or word [esi + 0x3d0], 8
mov dword [esi + 0x35c], eax
jmp 0x1001e22a
cmp byte [esi + 0x3fb], 0
je 0x1001dd0f
mov eax, dword [esi + 0x3d8]
or word [esi + 0x3d0], 0x10
mov dword [esi + 0x35c], eax
jmp 0x1001e22a
push edi
lea eax, [ebp - 0x58]
mov ecx, 0x101b54d8
push eax
call fcn.1000c8c0
mov ecx, dword [ebp - 0x54]
mov eax, 0x5e5d422b
sub ecx, dword [ebp - 0x58]
imul ecx
mov dword [ebp - 4], 0
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
jb 0x1001dd73
mov eax, dword [ebp - 0x58]
cmp byte [eax + 0x2b64], 0
jne 0x1001dd73
mov ecx, dword [ebp - 0x14]
push edi
call fcn.1001d830
test al, al
jne 0x1001dd73
mov eax, dword [esi + 0x368]
or word [esi + 0x3d0], 2
mov dword [esi + 0x35c], eax
jmp 0x1001e222
mov ecx, dword [0x101c84fc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [0x101c8500]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
call edx
movss xmm0, dword [0x100a53d0]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x1001def2
mov eax, dword [0x100d298c]
cmp eax, 0xffffffff
je 0x1001def2
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1001deea
mov ecx, dword [0x101c84fc]
lea edx, [ebp - 0x4c]
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x48]
call eax
mov ecx, dword [0x101c866c]
mov eax, dword [ecx + edi + 8]
movq xmm0, qword [ecx + edi]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x18]
movq qword [ebp - 0x30], xmm0
movq xmm0, qword [ecx + eax]
mov eax, dword [ecx + eax + 8]
movq qword [ebp - 0x40], xmm0
movss xmm0, dword [ebp - 0x30]
subss xmm0, dword [ebp - 0x40]
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x64]
mov dword [ebp - 0x24], 0
push eax
movss dword [ebp - 0x64], xmm0
movss xmm0, dword [ebp - 0x2c]
subss xmm0, dword [ebp - 0x3c]
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
movss dword [ebp - 0x60], xmm0
movss xmm0, dword [ebp - 0x28]
subss xmm0, dword [ebp - 0x38]
movss dword [ebp - 0x5c], xmm0
call fcn.1006cd50
movss xmm0, dword [ebp - 0x48]
add esp, 4
subss xmm0, dword [ebp - 0x20]
movss dword [esp], xmm0
call fcn.10009c00
fstp dword [ebp - 0x18]
movss xmm1, dword [ebp - 0x18]
add esp, 4
movaps xmm0, xmm1
andps xmm0, xmmword [0x100a5480]
comiss xmm0, dword [0x100a6038]
jbe 0x1001dea1
movss xmm1, dword [0x100a53d0]
movaps xmm0, xmm1
jmp 0x1001defa
xorps xmm0, xmm0
comiss xmm1, xmm0
movss xmm1, dword [ebp - 0x20]
jbe 0x1001deb8
addss xmm1, dword [0x100a53b8]
jmp 0x1001dec0
subss xmm1, dword [0x100a53b8]
mov eax, dword [0x101c8664]
sub esp, 8
movss xmm0, dword [eax + edi]
movss dword [esp + 4], xmm1
movss dword [esp], xmm0
call fcn.10070e20
fstp dword [ebp - 0x18]
movss xmm0, dword [ebp - 0x18]
add esp, 8
jmp 0x1001def2
movss xmm0, dword [0x100a53d0]
movss xmm1, dword [0x100a53d0]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1001df18
or word [esi + 0x3d0], 1
movss dword [esi + 0x35c], xmm0
jmp 0x1001e222
cmp byte [esi + 0x3fd], 0
jne 0x1001df3b
mov ecx, dword [ebp - 0x14]
push edi
call fcn.1001e240
mov eax, 0x80
or word [esi + 0x3d0], ax
jmp 0x1001e222
mov ecx, dword [edi + 0x64]
mov eax, dword [ebp - 0x14]
shl ecx, 0xa
mov dword [ebp - 0x18], ecx
movss xmm1, dword [ecx + eax + 0x374]
movss xmm0, dword [ecx + eax + 0x370]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
xorps xmm1, xmm1
cvtps2pd xmm0, xmm0
ucomisd xmm1, xmm0
ja 0x1001df77
sqrtsd xmm0, xmm0
jmp 0x1001df7c
call fcn.10079330
cvtsd2ss xmm0, xmm0
comiss xmm0, dword [0x100a53a8]
jbe 0x1001dfbc
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
cmp byte [ecx + eax + 0x3fd], 0
je 0x1001dfbc
cmp byte [ecx + eax + 0x3f6], 0
jne 0x1001dfbc
mov eax, dword [esi + 0x3d8]
or word [esi + 0x3d0], 4
mov dword [esi + 0x35c], eax
jmp 0x1001e222
cmp byte [esi + 0x3f5], 0
je 0x1001e0c1
cmp dword [esi + 0x3c8], 1
jge 0x1001e0c1
mov ecx, dword [0x101c84fc]
movss xmm0, dword [esi + 0x3dc]
movss dword [ebp - 0x18], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [0x101c8500]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
call edx
mov edx, eax
test edx, edx
je 0x1001e0c1
mov eax, dword [0x101c866c]
movq xmm0, qword [eax + edi]
mov ecx, dword [eax + edi + 8]
movq qword [ebp - 0x4c], xmm0
movq xmm0, qword [edx + eax]
mov eax, dword [edx + eax + 8]
movq qword [ebp - 0x40], xmm0
movss xmm0, dword [ebp - 0x4c]
subss xmm0, dword [ebp - 0x40]
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x64]
mov dword [ebp - 0x30], 0
movss dword [ebp - 0x64], xmm0
movss xmm0, dword [ebp - 0x48]
subss xmm0, dword [ebp - 0x3c]
push eax
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
movss dword [ebp - 0x60], xmm0
movss xmm0, dword [ebp - 0x44]
subss xmm0, dword [ebp - 0x38]
movss dword [ebp - 0x5c], xmm0
call fcn.1006cd50
movss xmm0, dword [ebp - 0x2c]
add esp, 4
subss xmm0, dword [ebp - 0x18]
movss dword [esp], xmm0
call fcn.10009c00
fstp dword [ebp - 0x18]
movss xmm1, dword [ebp - 0x18]
add esp, 4
andps xmm1, xmmword [0x100a5480]
comiss xmm1, dword [0x100a53a4]
jbe 0x1001e0c1
movss xmm0, dword [0x100a6130]
comiss xmm0, xmm1
ja 0x1001e203
mov eax, dword [edi + 0x64]
mov ecx, dword [ebp - 0x14]
shl eax, 0xa
movups xmm0, xmmword [eax + ecx + 0x348]
mov ecx, dword [0x101c84fc]
movups xmmword [ebp - 0x34], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [0x101c8500]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
call edx
mov edx, eax
test edx, edx
je 0x1001e1f1
cmp dword [ebp - 0x30], 0x14
jl 0x1001e10b
cmp dword [ebp - 0x34], 0x14
jge 0x1001e1f1
mov ecx, dword [0x101c866c]
movq xmm0, qword [ecx + edi]
mov eax, dword [ecx + edi + 8]
movq qword [ebp - 0x4c], xmm0
movq xmm0, qword [edx + ecx]
movq qword [ebp - 0x40], xmm0
movss xmm0, dword [ebp - 0x4c]
subss xmm0, dword [ebp - 0x40]
mov dword [ebp - 0x44], eax
mov eax, dword [edx + ecx + 8]
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x24]
push eax
movss dword [ebp - 0x64], xmm0
lea eax, [ebp - 0x64]
movss xmm0, dword [ebp - 0x48]
subss xmm0, dword [ebp - 0x3c]
push eax
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
movss dword [ebp - 0x60], xmm0
movss xmm0, dword [ebp - 0x44]
subss xmm0, dword [ebp - 0x38]
movss dword [ebp - 0x5c], xmm0
call fcn.1006cd50
mov ecx, dword [ebp - 0x30]
add esp, 8
mov eax, dword [ebp - 0x34]
test ecx, ecx
jg 0x1001e1b7
test eax, eax
jg 0x1001e1b7
movss xmm0, dword [ebp - 0x28]
comiss xmm0, dword [ebp - 0x2c]
movss xmm0, dword [ebp - 0x20]
jbe 0x1001e1ad
addss xmm0, dword [0x100a603c]
jmp 0x1001e1d2
subss xmm0, dword [0x100a6124]
jmp 0x1001e1d2
movss xmm0, dword [ebp - 0x20]
cmp ecx, eax
jle 0x1001e1ca
addss xmm0, dword [0x100a5454]
jmp 0x1001e1d2
subss xmm0, dword [0x100a5440]
movss dword [esi + 0x35c], xmm0
cmp byte [esi + 0x3fd], 0
je 0x1001e1f1
mov eax, 0x200
or word [esi + 0x3d0], ax
jmp 0x1001e222
cmp byte [esi + 0x3f5], 0
je 0x1001e219
cmp dword [esi + 0x3c8], 1
jge 0x1001e219
mov eax, dword [esi + 0x3dc]
or word [esi + 0x3d0], 0x20
mov dword [esi + 0x35c], eax
jmp 0x1001e222
mov ecx, dword [ebp - 0x14]
push edi
call fcn.1001e240
lea ecx, [ebp - 0x58]
call fcn.10001a50
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4