Function at 0x1000cc7c
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push ecx
cmp byte [0x100a98e4], 0
push ebx
push esi
mov esi, dword [0x38433d1c]
push edi
mov edi, dword [0x384035dc]
mov dword [ebp - 4], edi
je 0x1000cca5
movss xmm0, dword [0x10055718]
jmp 0x1000ccad
movss xmm0, dword [0x100556b8]
xor ebx, ebx
movss dword [0x383abd04], xmm0
cmp byte [0x100827df], bl
jne 0x1000ce5d
test esi, esi
je 0x1000ce56
mov ecx, ebx
cmp dword [esi + 0x15e4], ecx
jle 0x1000ce56
mov edi, dword [esi + 0x15e0]
sub edi, 0x1005b6d0
mov edx, dword [edi + ecx*4 + 0x1005b6d0]
test edx, edx
je 0x1000ce46
movd xmm0, dword [edx + 0x2b8]
cvtdq2ps xmm0, xmm0
mov eax, dword [edx + 0x2a4]
mov dword [ecx*4 + 0x1005b6d0], eax
mov eax, dword [edx + 0x2a8]
mov dword [ecx*4 + 0x1005d610], eax
mov eax, dword [edx + 0x2b0]
movss dword [ecx*4 + 0x10061490], xmm0
movd xmm0, dword [edx + 0x2bc]
cvtdq2ps xmm0, xmm0
mov dword [ecx*4 + 0x1005f550], eax
mov eax, dword [edx + 0x328]
mov dword [ecx*4 + 0x100a98e8], eax
mov eax, dword [edx + 0x30c]
mov dword [ecx*4 + 0x10084720], eax
movss dword [ecx*4 + 0x100633d0], xmm0
movd xmm0, dword [edx + 0x2c0]
cvtdq2ps xmm0, xmm0
mov eax, dword [edx + 0x2b4]
mov dword [ecx*4 + 0x10086660], eax
movss dword [ecx*4 + 0x10065310], xmm0
movd xmm0, dword [edx + 0x2c4]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x10067250], xmm0
movd xmm0, dword [edx + 0x2c8]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x10069190], xmm0
movd xmm0, dword [edx + 0x2cc]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x1006b0d0], xmm0
movd xmm0, dword [edx + 0x364]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x1006d010], xmm0
movd xmm0, dword [edx + 0x368]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x1006ef50], xmm0
movd xmm0, dword [edx + 0x36c]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x10070e90], xmm0
movd xmm0, dword [edx + 0x370]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x10072dd0], xmm0
movd xmm0, dword [edx + 0x258]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x100827e0], xmm0
movd xmm0, dword [edx + 0x2d0]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x100885a0], xmm0
movd xmm0, dword [edx + 0x2e0]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x1008a4e0], xmm0
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000cce5
mov edi, dword [ebp - 4]
mov byte [0x100827df], 1
cmp byte [0x1005b6cf], bl
je 0x1000cef2
cmp byte [0x1005b6ce], bl
je 0x1000cff6
test esi, esi
je 0x1000cee7
mov ecx, ebx
cmp dword [esi + 0x15e4], ebx
jle 0x1000cee7
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1000cede
and dword [eax + 0x2a4], ebx
and dword [eax + 0x2a8], ebx
and dword [eax + 0x2b0], ebx
mov dword [eax + 0x2b8], ebx
mov dword [eax + 0x2bc], ebx
mov dword [eax + 0x2c0], ebx
mov dword [eax + 0x2c4], ebx
mov dword [eax + 0x2c8], ebx
mov dword [eax + 0x2cc], ebx
mov dword [eax + 0x364], ebx
mov dword [eax + 0x368], ebx
mov dword [eax + 0x36c], ebx
mov dword [eax + 0x370], ebx
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000ce83
mov byte [0x1005b6ce], bl
jmp 0x1000cff6
cmp byte [0x1005b6ce], bl
jne 0x1000cff6
test esi, esi
je 0x1000cfef
mov ecx, ebx
cmp dword [esi + 0x15e4], ebx
jle 0x1000cfef
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1000cfe2
mov eax, dword [ecx*4 + 0x1005b6d0]
mov dword [edx + 0x2a4], eax
mov eax, dword [ecx*4 + 0x1005d610]
mov dword [edx + 0x2a8], eax
mov eax, dword [ecx*4 + 0x1005f550]
mov dword [edx + 0x2b0], eax
cvttss2si eax, dword [ecx*4 + 0x10061490]
mov dword [edx + 0x2b8], eax
cvttss2si eax, dword [ecx*4 + 0x100633d0]
mov dword [edx + 0x2bc], eax
cvttss2si eax, dword [ecx*4 + 0x10065310]
mov dword [edx + 0x2c0], eax
cvttss2si eax, dword [ecx*4 + 0x10067250]
mov dword [edx + 0x2c4], eax
cvttss2si eax, dword [ecx*4 + 0x10069190]
mov dword [edx + 0x2c8], eax
cvttss2si eax, dword [ecx*4 + 0x1006b0d0]
mov dword [edx + 0x2cc], eax
cvttss2si eax, dword [ecx*4 + 0x1006d010]
mov dword [edx + 0x364], eax
cvttss2si eax, dword [ecx*4 + 0x1006ef50]
mov dword [edx + 0x368], eax
cvttss2si eax, dword [ecx*4 + 0x10070e90]
mov dword [edx + 0x36c], eax
cvttss2si eax, dword [ecx*4 + 0x10072dd0]
mov dword [edx + 0x370], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000cf14
mov byte [0x1005b6ce], 1
cmp byte [0x1005b6cb], bl
je 0x1000d038
cmp byte [0x1005b6cc], bl
je 0x1000d078
test esi, esi
je 0x1000d030
mov ecx, ebx
cmp dword [esi + 0x15e4], ebx
jle 0x1000d030
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1000d027
and dword [eax + 0x328], ebx
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000d014
mov byte [0x1005b6cc], bl
jmp 0x1000d078
cmp byte [0x1005b6cc], bl
jne 0x1000d078
test esi, esi
je 0x1000d071
mov ecx, ebx
cmp dword [esi + 0x15e4], ebx
jle 0x1000d071
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1000d068
mov eax, dword [ecx*4 + 0x100a98e8]
mov dword [edx + 0x328], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000d04e
mov byte [0x1005b6cc], 1
cmp byte [0x100a98e0], bl
je 0x1000d0be
cmp byte [0x100a98e1], bl
je 0x1000d100
test esi, esi
je 0x1000d0b6
mov ecx, ebx
cmp dword [esi + 0x15e4], ebx
jle 0x1000d0b6
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1000d0ad
mov dword [eax + 0x258], 1
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000d096
mov byte [0x100a98e1], bl
jmp 0x1000d100
cmp byte [0x100a98e1], bl
jne 0x1000d100
test esi, esi
je 0x1000d0f9
mov ecx, ebx
cmp dword [esi + 0x15e4], ebx
jle 0x1000d0f9
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1000d0f0
cvttss2si eax, dword [ecx*4 + 0x100827e0]
mov dword [edx + 0x258], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000d0d4
mov byte [0x100a98e1], 1
cmp byte [0x100827dd], bl
je 0x1000d142
cmp byte [0x100a98e2], bl
je 0x1000d182
test esi, esi
je 0x1000d13a
mov ecx, ebx
cmp dword [esi + 0x15e4], ebx
jle 0x1000d13a
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1000d131
and dword [eax + 0x2b4], ebx
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000d11e
mov byte [0x100a98e2], bl
jmp 0x1000d182
cmp byte [0x100a98e2], bl
jne 0x1000d182
test esi, esi
je 0x1000d17b
mov ecx, ebx
cmp dword [esi + 0x15e4], ebx
jle 0x1000d17b
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1000d172
mov eax, dword [ecx*4 + 0x10086660]
mov dword [edx + 0x2b4], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000d158
mov byte [0x100a98e2], 1
cmp byte [0x100a98e5], bl
je 0x1000d1c4
cmp byte [0x100a98e6], bl
je 0x1000d204
test esi, esi
je 0x1000d1bc
mov ecx, ebx
cmp dword [esi + 0x15e4], ebx
jle 0x1000d1bc
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1000d1b3
and dword [eax + 0x30c], ebx
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000d1a0
mov byte [0x100a98e6], bl
jmp 0x1000d204
cmp byte [0x100a98e6], bl
jne 0x1000d204
test esi, esi
je 0x1000d1fd
mov ecx, ebx
cmp dword [esi + 0x15e4], ebx
jle 0x1000d1fd
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1000d1f4
mov eax, dword [ecx*4 + 0x10084720]
mov dword [edx + 0x30c], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000d1da
mov byte [0x100a98e6], 1
test esi, esi
je 0x1000d22e
mov ecx, ebx
cmp dword [esi + 0x15e4], ebx
jle 0x1000d22e
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1000d225
and dword [eax + 0x35c], ebx
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000d212
mov eax, dword [0x100d0a44]
test eax, eax
jne 0x1000d263
test esi, esi
je 0x1000d2ba
mov ecx, ebx
cmp dword [esi + 0x15e4], ebx
jle 0x1000d2ba
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1000d258
and dword [eax + 0x308], ebx
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000d245
jmp 0x1000d2ba
cmp eax, 1
jne 0x1000d298
test esi, esi
je 0x1000d2ba
mov ecx, ebx
cmp dword [esi + 0x15e4], ebx
jle 0x1000d2ba
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1000d28d
mov dword [eax + 0x308], 0x3f800000
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000d276
jmp 0x1000d2ba
cmp eax, 2
jne 0x1000d2ba
push 1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1000d2ba
mov eax, dword [edi + 0x18]
mov eax, dword [eax + 0x10]
mov dword [eax + 0x138], 1
cmp byte [0x1005b6cd], bl
jne 0x1000d2e6
test edi, edi
je 0x1000d2df
mov eax, dword [edi + 0x18]
mov eax, dword [eax + 0x10]
movd xmm0, dword [eax + 0x148]
cvtdq2ps xmm0, xmm0
movss dword [0x100d09ec], xmm0
mov byte [0x1005b6cd], 1
mov eax, dword [edi + 0x18]
mov ecx, dword [eax + 0x10]
cmp byte [0x100827de], bl
je 0x1000d2fd
or dword [ecx + 0x148], 0xffffffff
jmp 0x1000d30b
cvttss2si eax, dword [0x100d09ec]
mov dword [ecx + 0x148], eax
test esi, esi
je 0x1000d36e
cmp byte [0x100827dc], bl
je 0x1000d341
cmp dword [esi + 0x15e4], ebx
jle 0x1000d36e
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ebx*4]
test eax, eax
je 0x1000d336
mov dword [eax + 0x2d0], 0x3b9ac9ff
inc ebx
cmp ebx, dword [esi + 0x15e4]
jl 0x1000d31f
jmp 0x1000d36e
cmp dword [esi + 0x15e4], ebx
jle 0x1000d36e
mov eax, dword [esi + 0x15e0]
mov ecx, dword [eax + ebx*4]
test ecx, ecx
je 0x1000d365
cvttss2si eax, dword [ebx*4 + 0x100885a0]
mov dword [ecx + 0x2d0], eax
inc ebx
cmp ebx, dword [esi + 0x15e4]
jl 0x1000d349
cmp byte [0x100a98e3], 0
mov eax, 0x1005092c
mov esi, 0x10050924
mov ecx, 0x374a685b
cmove esi, eax
push 6
mov edx, esi
call fcn.1000c586
push 6
mov edx, esi
mov ecx, 0x374a6bdb
call fcn.1000c586
pop ecx
pop ecx
pop edi
pop esi
pop ebx
leave
ret