Function at 0x10009280
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push ecx
cmp byte [0x100e1804], 0
mov eax, dword [0x3845ce7c]
push esi
mov esi, dword [0x3848e1ac]
mov dword [ebp - 4], eax
je 0x100092a6
movss xmm0, dword [0x10066d88]
jmp 0x100092ae
movss xmm0, dword [0x10066d28]
push ebx
movss dword [0x384a6ebc], xmm0
cmp byte [0x100935a8], 0
push edi
jne 0x10009475
test esi, esi
je 0x1000946e
mov ebx, dword [esi + 0x15e4]
xor ecx, ecx
test ebx, ebx
jle 0x1000946e
mov edi, dword [esi + 0x15e0]
sub edi, 0x1006c478
nop dword [eax]
mov edx, dword [edi + ecx*4 + 0x1006c478]
test edx, edx
je 0x10009465
movd xmm0, dword [edx + 0x2b8]
cvtdq2ps xmm0, xmm0
mov eax, dword [edx + 0x2a4]
mov dword [ecx*4 + 0x1006c478], eax
mov eax, dword [edx + 0x2a8]
mov dword [ecx*4 + 0x1006e3b8], eax
mov eax, dword [edx + 0x2b0]
movss dword [ecx*4 + 0x10072238], xmm0
movd xmm0, dword [edx + 0x2bc]
cvtdq2ps xmm0, xmm0
mov dword [ecx*4 + 0x100702f8], eax
mov eax, dword [edx + 0x328]
mov dword [ecx*4 + 0x100ba6b0], eax
mov eax, dword [edx + 0x30c]
mov dword [ecx*4 + 0x100954f0], eax
movss dword [ecx*4 + 0x10074178], xmm0
movd xmm0, dword [edx + 0x2c0]
cvtdq2ps xmm0, xmm0
mov eax, dword [edx + 0x2b4]
mov dword [ecx*4 + 0x10097430], eax
movss dword [ecx*4 + 0x100760b8], xmm0
movd xmm0, dword [edx + 0x2c4]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x10077ff8], xmm0
movd xmm0, dword [edx + 0x2c8]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x10079f38], xmm0
movd xmm0, dword [edx + 0x2cc]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x1007be78], xmm0
movd xmm0, dword [edx + 0x364]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x1007ddb8], xmm0
movd xmm0, dword [edx + 0x368]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x1007fcf8], xmm0
movd xmm0, dword [edx + 0x36c]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x10081c38], xmm0
movd xmm0, dword [edx + 0x370]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x10083b78], xmm0
movd xmm0, dword [edx + 0x258]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x100935b0], xmm0
movd xmm0, dword [edx + 0x2d0]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x10099370], xmm0
movd xmm0, dword [edx + 0x254]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x1009b2b0], xmm0
movd xmm0, dword [edx + 0x4f4]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x1009d1f0], xmm0
inc ecx
cmp ecx, ebx
jl 0x100092f0
mov byte [0x100935a8], 1
cmp byte [0x100935a4], 0
je 0x10009551
cmp byte [0x1009357b], 0
je 0x1000964d
test esi, esi
je 0x10009545
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x10009545
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x10009538
mov dword [eax + 0x2a4], 0
mov dword [eax + 0x2a8], 0
mov dword [eax + 0x2b0], 0
mov dword [eax + 0x2b8], 0
mov dword [eax + 0x2bc], 0
mov dword [eax + 0x2c0], 0
mov dword [eax + 0x2c4], 0
mov dword [eax + 0x2c8], 0
mov dword [eax + 0x2cc], 0
mov dword [eax + 0x364], 0
mov dword [eax + 0x368], 0
mov dword [eax + 0x36c], 0
mov dword [eax + 0x370], 0
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x100094a5
mov byte [0x1009357b], 0
jmp 0x1000964d
cmp byte [0x1009357b], 0
jne 0x1000964d
test esi, esi
je 0x10009646
xor edi, edi
cmp dword [esi + 0x15e4], edi
jle 0x10009646
mov eax, dword [esi + 0x15e0]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x10009639
mov eax, dword [edi*4 + 0x1006c478]
lea edx, [edi*4 + 0x1007ddb8]
mov dword [ecx + 0x2a4], eax
mov ebx, 4
mov eax, dword [edi*4 + 0x1006e3b8]
mov dword [ecx + 0x2a8], eax
mov eax, dword [edi*4 + 0x100702f8]
mov dword [ecx + 0x2b0], eax
cvttss2si eax, dword [edi*4 + 0x10072238]
mov dword [ecx + 0x2b8], eax
cvttss2si eax, dword [edi*4 + 0x10074178]
mov dword [ecx + 0x2bc], eax
cvttss2si eax, dword [edi*4 + 0x100760b8]
mov dword [ecx + 0x2c0], eax
cvttss2si eax, dword [edi*4 + 0x10077ff8]
mov dword [ecx + 0x2c4], eax
cvttss2si eax, dword [edi*4 + 0x10079f38]
mov dword [ecx + 0x2c8], eax
cvttss2si eax, dword [edi*4 + 0x1007be78]
mov dword [ecx + 0x2cc], eax
add ecx, 0x364
nop dword [eax + eax]
lea ecx, [ecx + 4]
lea edx, [edx + 0x1f40]
cvttss2si eax, dword [edx - 0x1f40]
mov dword [ecx - 4], eax
sub ebx, 1
jne 0x10009620
inc edi
cmp edi, dword [esi + 0x15e4]
jl 0x10009574
mov byte [0x1009357b], 1
cmp byte [0x1006c476], 0
pop edi
pop ebx
je 0x10009699
cmp byte [0x10093579], 0
je 0x100096da
test esi, esi
je 0x10009690
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x10009690
nop
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x10009687
mov dword [eax + 0x328], 0
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x10009670
mov byte [0x10093579], 0
jmp 0x100096da
cmp byte [0x10093579], 0
jne 0x100096da
test esi, esi
je 0x100096d3
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x100096d3
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x100096ca
mov eax, dword [ecx*4 + 0x100ba6b0]
mov dword [edx + 0x328], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x100096b0
mov byte [0x10093579], 1
cmp byte [0x100935a9], 0
je 0x10009729
cmp byte [0x100935aa], 0
je 0x1000976c
test esi, esi
je 0x10009720
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x10009720
nop
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x10009717
mov dword [eax + 0x258], 1
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x10009700
mov byte [0x100935aa], 0
jmp 0x1000976c
cmp byte [0x100935aa], 0
jne 0x1000976c
test esi, esi
je 0x10009765
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x10009765
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1000975c
cvttss2si eax, dword [ecx*4 + 0x100935b0]
mov dword [edx + 0x258], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x10009740
mov byte [0x100935aa], 1
cmp byte [0x100935a6], 0
je 0x100097b9
cmp byte [0x100935ab], 0
je 0x100097fa
test esi, esi
je 0x100097b0
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x100097b0
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x100097a7
mov dword [eax + 0x2b4], 0
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x10009790
mov byte [0x100935ab], 0
jmp 0x100097fa
cmp byte [0x100935ab], 0
jne 0x100097fa
test esi, esi
je 0x100097f3
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x100097f3
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x100097ea
mov eax, dword [ecx*4 + 0x10097430]
mov dword [edx + 0x2b4], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x100097d0
mov byte [0x100935ab], 1
cmp byte [0x100e1805], 0
je 0x10009849
cmp byte [0x100e1806], 0
je 0x1000988a
test esi, esi
je 0x10009840
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x10009840
nop
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x10009837
mov dword [eax + 0x30c], 0
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x10009820
mov byte [0x100e1806], 0
jmp 0x1000988a
cmp byte [0x100e1806], 0
jne 0x1000988a
test esi, esi
je 0x10009883
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x10009883
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1000987a
mov eax, dword [ecx*4 + 0x100954f0]
mov dword [edx + 0x30c], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x10009860
mov byte [0x100e1806], 1
test esi, esi
je 0x100098c0
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x100098c0
nop dword [eax + eax]
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x100098b7
mov dword [eax + 0x35c], 0
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x100098a0
mov eax, dword [0x100e1800]
test eax, eax
jne 0x1000994b
test esi, esi
je 0x10009900
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x10009900
nop dword [eax + eax]
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x100098f7
mov dword [eax + 0x308], 0
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x100098e0
mov ecx, dword [ebp - 4]
cmp byte [0x1009357a], 0
jne 0x10009930
test ecx, ecx
je 0x10009929
mov eax, dword [ecx + 0x18]
mov eax, dword [eax + 0x10]
movd xmm0, dword [eax + 0x148]
cvtdq2ps xmm0, xmm0
movss dword [0x100e17b4], xmm0
mov byte [0x1009357a], 1
cmp byte [0x100935a7], 0
mov eax, dword [ecx + 0x18]
mov ecx, dword [eax + 0x10]
je 0x100099b7
mov dword [ecx + 0x148], 0xffffffff
jmp 0x100099c5
cmp eax, 1
jne 0x10009985
test esi, esi
je 0x10009900
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x10009900
nop
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x10009977
mov dword [eax + 0x308], 0x3f800000
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x10009960
jmp 0x10009900
cmp eax, 2
jne 0x10009900
push 1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, dword [ebp - 4]
test ax, ax
jns 0x10009903
mov eax, dword [ecx + 0x18]
mov eax, dword [eax + 0x10]
mov dword [eax + 0x138], 1
jmp 0x10009903
cvttss2si eax, dword [0x100e17b4]
mov dword [ecx + 0x148], eax
test esi, esi
je 0x10009b15
xor ecx, ecx
cmp byte [0x100935a5], cl
je 0x10009a02
cmp dword [esi + 0x15e4], ecx
jle 0x10009a35
nop
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x100099f7
mov dword [eax + 0x2d0], 0x3b9ac9ff
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x100099e0
jmp 0x10009a35
cmp dword [esi + 0x15e4], ecx
jle 0x10009a35
nop word [eax + eax]
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x10009a2c
cvttss2si eax, dword [ecx*4 + 0x10099370]
mov dword [edx + 0x2d0], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x10009a10
xor ecx, ecx
cmp byte [0x10093578], cl
je 0x10009a72
cmp dword [esi + 0x15e4], ecx
jle 0x10009aa5
nop word [eax + eax]
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x10009a67
mov dword [eax + 0x254], 0x1006b0c8
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x10009a50
jmp 0x10009aa5
cmp dword [esi + 0x15e4], ecx
jle 0x10009aa5
nop word [eax + eax]
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x10009a9c
cvttss2si eax, dword [ecx*4 + 0x1009b2b0]
mov dword [edx + 0x254], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x10009a80
xor ecx, ecx
cmp byte [0x1006c477], cl
je 0x10009ae6
cmp dword [esi + 0x15e4], ecx
jle 0x10009b15
nop word [eax + eax]
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x10009ad8
mov eax, dword [0x100935ac]
mov dword [edx + 0x4f4], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x10009ac0
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x15e4], ecx
jle 0x10009b15
nop
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x10009b0c
cvttss2si eax, dword [ecx*4 + 0x1009d1f0]
mov dword [edx + 0x4f4], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x10009af0
pop esi
mov esp, ebp
pop ebp
ret