Function at 0x1000cbec
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push ecx
cmp byte [0x100865ed], 0
push ebx
push esi
mov esi, dword [0x38433d1c]
push edi
mov edi, dword [0x384035dc]
mov dword [ebp - 4], edi
je 0x1000cc15
movss xmm0, dword [0x10059910]
jmp 0x1000cc1d
movss xmm0, dword [0x100598a4]
xor ebx, ebx
movss dword [0x383abd04], xmm0
cmp byte [0x100865e9], bl
jne 0x1000cdcd
test esi, esi
je 0x1000cdc6
mov ecx, ebx
cmp dword [esi + 0x15e4], ecx
jle 0x1000cdc6
mov edi, dword [esi + 0x15e0]
sub edi, 0x1005f4d8
mov edx, dword [edi + ecx*4 + 0x1005f4d8]
test edx, edx
je 0x1000cdb6
movd xmm0, dword [edx + 0x2b8]
cvtdq2ps xmm0, xmm0
mov eax, dword [edx + 0x2a4]
mov dword [ecx*4 + 0x1005f4d8], eax
mov eax, dword [edx + 0x2a8]
mov dword [ecx*4 + 0x10061418], eax
mov eax, dword [edx + 0x2b0]
movss dword [ecx*4 + 0x10065298], xmm0
movd xmm0, dword [edx + 0x2bc]
cvtdq2ps xmm0, xmm0
mov dword [ecx*4 + 0x10063358], eax
mov eax, dword [edx + 0x328]
mov dword [ecx*4 + 0x100ad6f8], eax
mov eax, dword [edx + 0x30c]
mov dword [ecx*4 + 0x10088530], eax
movss dword [ecx*4 + 0x100671d8], xmm0
movd xmm0, dword [edx + 0x2c0]
cvtdq2ps xmm0, xmm0
mov eax, dword [edx + 0x2b4]
mov dword [ecx*4 + 0x1008a470], eax
movss dword [ecx*4 + 0x10069118], xmm0
movd xmm0, dword [edx + 0x2c4]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x1006b058], xmm0
movd xmm0, dword [edx + 0x2c8]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x1006cf98], xmm0
movd xmm0, dword [edx + 0x2cc]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x1006eed8], xmm0
movd xmm0, dword [edx + 0x364]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x10070e18], xmm0
movd xmm0, dword [edx + 0x368]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x10072d58], xmm0
movd xmm0, dword [edx + 0x36c]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x10074c98], xmm0
movd xmm0, dword [edx + 0x370]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x10076bd8], xmm0
movd xmm0, dword [edx + 0x258]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x100865f0], xmm0
movd xmm0, dword [edx + 0x2d0]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x1008c3b0], xmm0
movd xmm0, dword [edx + 0x2e0]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x1008e2f0], xmm0
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000cc55
mov edi, dword [ebp - 4]
mov byte [0x100865e9], 1
cmp byte [0x100865e1], bl
je 0x1000ce62
cmp byte [0x100865e0], bl
je 0x1000cf66
test esi, esi
je 0x1000ce57
mov ecx, ebx
cmp dword [esi + 0x15e4], ebx
jle 0x1000ce57
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1000ce4e
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 0x1000cdf3
mov byte [0x100865e0], bl
jmp 0x1000cf66
cmp byte [0x100865e0], bl
jne 0x1000cf66
test esi, esi
je 0x1000cf5f
mov ecx, ebx
cmp dword [esi + 0x15e4], ebx
jle 0x1000cf5f
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1000cf52
mov eax, dword [ecx*4 + 0x1005f4d8]
mov dword [edx + 0x2a4], eax
mov eax, dword [ecx*4 + 0x10061418]
mov dword [edx + 0x2a8], eax
mov eax, dword [ecx*4 + 0x10063358]
mov dword [edx + 0x2b0], eax
cvttss2si eax, dword [ecx*4 + 0x10065298]
mov dword [edx + 0x2b8], eax
cvttss2si eax, dword [ecx*4 + 0x100671d8]
mov dword [edx + 0x2bc], eax
cvttss2si eax, dword [ecx*4 + 0x10069118]
mov dword [edx + 0x2c0], eax
cvttss2si eax, dword [ecx*4 + 0x1006b058]
mov dword [edx + 0x2c4], eax
cvttss2si eax, dword [ecx*4 + 0x1006cf98]
mov dword [edx + 0x2c8], eax
cvttss2si eax, dword [ecx*4 + 0x1006eed8]
mov dword [edx + 0x2cc], eax
cvttss2si eax, dword [ecx*4 + 0x10070e18]
mov dword [edx + 0x364], eax
cvttss2si eax, dword [ecx*4 + 0x10072d58]
mov dword [edx + 0x368], eax
cvttss2si eax, dword [ecx*4 + 0x10074c98]
mov dword [edx + 0x36c], eax
cvttss2si eax, dword [ecx*4 + 0x10076bd8]
mov dword [edx + 0x370], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000ce84
mov byte [0x100865e0], 1
cmp byte [0x1005f4d4], bl
je 0x1000cfa8
cmp byte [0x1005f4d5], bl
je 0x1000cfe8
test esi, esi
je 0x1000cfa0
mov ecx, ebx
cmp dword [esi + 0x15e4], ebx
jle 0x1000cfa0
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1000cf97
and dword [eax + 0x328], ebx
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000cf84
mov byte [0x1005f4d5], bl
jmp 0x1000cfe8
cmp byte [0x1005f4d5], bl
jne 0x1000cfe8
test esi, esi
je 0x1000cfe1
mov ecx, ebx
cmp dword [esi + 0x15e4], ebx
jle 0x1000cfe1
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1000cfd8
mov eax, dword [ecx*4 + 0x100ad6f8]
mov dword [edx + 0x328], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000cfbe
mov byte [0x1005f4d5], 1
cmp byte [0x100865ea], bl
je 0x1000d02e
cmp byte [0x100865eb], bl
je 0x1000d070
test esi, esi
je 0x1000d026
mov ecx, ebx
cmp dword [esi + 0x15e4], ebx
jle 0x1000d026
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1000d01d
mov dword [eax + 0x258], 1
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000d006
mov byte [0x100865eb], bl
jmp 0x1000d070
cmp byte [0x100865eb], bl
jne 0x1000d070
test esi, esi
je 0x1000d069
mov ecx, ebx
cmp dword [esi + 0x15e4], ebx
jle 0x1000d069
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1000d060
cvttss2si eax, dword [ecx*4 + 0x100865f0]
mov dword [edx + 0x258], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000d044
mov byte [0x100865eb], 1
cmp byte [0x100865e3], bl
je 0x1000d0b2
cmp byte [0x100865ec], bl
je 0x1000d0f2
test esi, esi
je 0x1000d0aa
mov ecx, ebx
cmp dword [esi + 0x15e4], ebx
jle 0x1000d0aa
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1000d0a1
and dword [eax + 0x2b4], ebx
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000d08e
mov byte [0x100865ec], bl
jmp 0x1000d0f2
cmp byte [0x100865ec], bl
jne 0x1000d0f2
test esi, esi
je 0x1000d0eb
mov ecx, ebx
cmp dword [esi + 0x15e4], ebx
jle 0x1000d0eb
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1000d0e2
mov eax, dword [ecx*4 + 0x1008a470]
mov dword [edx + 0x2b4], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000d0c8
mov byte [0x100865ec], 1
cmp byte [0x100865ee], bl
je 0x1000d134
cmp byte [0x100865ef], bl
je 0x1000d174
test esi, esi
je 0x1000d12c
mov ecx, ebx
cmp dword [esi + 0x15e4], ebx
jle 0x1000d12c
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1000d123
and dword [eax + 0x30c], ebx
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000d110
mov byte [0x100865ef], bl
jmp 0x1000d174
cmp byte [0x100865ef], bl
jne 0x1000d174
test esi, esi
je 0x1000d16d
mov ecx, ebx
cmp dword [esi + 0x15e4], ebx
jle 0x1000d16d
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1000d164
mov eax, dword [ecx*4 + 0x10088530]
mov dword [edx + 0x30c], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000d14a
mov byte [0x100865ef], 1
test esi, esi
je 0x1000d19e
mov ecx, ebx
cmp dword [esi + 0x15e4], ebx
jle 0x1000d19e
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1000d195
and dword [eax + 0x35c], ebx
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000d182
mov eax, dword [0x100d4854]
test eax, eax
jne 0x1000d1d7
test esi, esi
je 0x1000d234
mov ecx, ebx
cmp dword [esi + 0x15e4], ebx
jle 0x1000d234
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1000d1cc
and dword [eax + 0x308], ebx
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000d1b9
jmp 0x1000d234
cmp eax, 1
jne 0x1000d212
test esi, esi
je 0x1000d234
mov ecx, ebx
cmp dword [esi + 0x15e4], ebx
jle 0x1000d234
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1000d207
movss xmm0, dword [0x100ad6f0]
movss dword [eax + 0x308], xmm0
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000d1ea
jmp 0x1000d234
cmp eax, 2
jne 0x1000d234
push 1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1000d234
mov eax, dword [edi + 0x18]
mov eax, dword [eax + 0x10]
mov dword [eax + 0x138], 1
cmp byte [0x1005f4d7], bl
jne 0x1000d260
test edi, edi
je 0x1000d259
mov eax, dword [edi + 0x18]
mov eax, dword [eax + 0x10]
movd xmm0, dword [eax + 0x148]
cvtdq2ps xmm0, xmm0
movss dword [0x100d47fc], xmm0
mov byte [0x1005f4d7], 1
mov eax, dword [edi + 0x18]
mov ecx, dword [eax + 0x10]
cmp byte [0x100865e8], bl
je 0x1000d277
or dword [ecx + 0x148], 0xffffffff
jmp 0x1000d285
cvttss2si eax, dword [0x100d47fc]
mov dword [ecx + 0x148], eax
test esi, esi
je 0x1000d2e8
cmp byte [0x100865e2], bl
je 0x1000d2bb
cmp dword [esi + 0x15e4], ebx
jle 0x1000d2e8
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ebx*4]
test eax, eax
je 0x1000d2b0
mov dword [eax + 0x2d0], 0x3b9ac9ff
inc ebx
cmp ebx, dword [esi + 0x15e4]
jl 0x1000d299
jmp 0x1000d2e8
cmp dword [esi + 0x15e4], ebx
jle 0x1000d2e8
mov eax, dword [esi + 0x15e0]
mov ecx, dword [eax + ebx*4]
test ecx, ecx
je 0x1000d2df
cvttss2si eax, dword [ebx*4 + 0x1008c3b0]
mov dword [ecx + 0x2d0], eax
inc ebx
cmp ebx, dword [esi + 0x15e4]
jl 0x1000d2c3
pop edi
pop esi
pop ebx
leave
ret