Function at 0x10010110
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, dword [0x10127ba4]
push ebx
push esi
push edi
mov eax, dword [ecx]
call dword [eax + 0xd0]
cmp byte [0x1010096b], 0
mov ecx, dword [0x100b2534]
mov dword [ebp - 4], eax
mov dword [0x10127c0c], eax
mov esi, dword [ecx]
je 0x10010148
movss xmm0, dword [0x10067f70]
jmp 0x10010150
movss xmm0, dword [0x10067ee4]
movss dword [0x383abd04], xmm0
cmp byte [0x100d9863], 0
jne 0x10010328
test esi, esi
je 0x10010321
mov ebx, dword [esi + 0x15e4]
xor ecx, ecx
test ebx, ebx
jle 0x10010321
mov edi, dword [esi + 0x15e0]
sub edi, 0x100b2758
nop dword [eax]
mov edx, dword [edi + ecx*4 + 0x100b2758]
test edx, edx
je 0x10010318
movd xmm0, dword [edx + 0x2b8]
cvtdq2ps xmm0, xmm0
mov eax, dword [edx + 0x2a4]
mov dword [ecx*4 + 0x100b2758], eax
mov eax, dword [edx + 0x2a8]
mov dword [ecx*4 + 0x100b4698], eax
mov eax, dword [edx + 0x2b0]
movss dword [ecx*4 + 0x100b8518], xmm0
movd xmm0, dword [edx + 0x2bc]
cvtdq2ps xmm0, xmm0
mov dword [ecx*4 + 0x100b65d8], eax
mov eax, dword [edx + 0x328]
mov dword [ecx*4 + 0x10100970], eax
mov eax, dword [edx + 0x30c]
mov dword [ecx*4 + 0x100db7a8], eax
movss dword [ecx*4 + 0x100ba458], xmm0
movd xmm0, dword [edx + 0x2c0]
cvtdq2ps xmm0, xmm0
mov eax, dword [edx + 0x2b4]
mov dword [ecx*4 + 0x100dd6e8], eax
mov eax, dword [edx + 0x254]
movss dword [ecx*4 + 0x100bc398], xmm0
movd xmm0, dword [edx + 0x2c4]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x100be2d8], xmm0
movd xmm0, dword [edx + 0x2c8]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x100c0218], xmm0
movd xmm0, dword [edx + 0x2cc]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x100c2158], xmm0
movd xmm0, dword [edx + 0x364]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x100c4098], xmm0
movd xmm0, dword [edx + 0x368]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x100c5fd8], xmm0
movd xmm0, dword [edx + 0x36c]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x100c7f18], xmm0
movd xmm0, dword [edx + 0x370]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x100c9e58], xmm0
movd xmm0, dword [edx + 0x258]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x100d9868], xmm0
movd xmm0, dword [edx + 0x2d0]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x100df628], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100683c0]
cvtpd2ps xmm0, xmm0
movss dword [ecx*4 + 0x100e1568], xmm0
movd xmm0, dword [edx + 0x4f4]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x100e34a8], xmm0
inc ecx
cmp ecx, ebx
jl 0x10010190
mov byte [0x100d9863], 1
cmp byte [0x100d985f], 0
je 0x1001040c
cmp byte [0x100d985e], 0
je 0x10010501
test esi, esi
je 0x10010400
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x10010400
nop dword [eax + eax]
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x100103f3
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 0x10010360
mov byte [0x100d985e], 0
jmp 0x10010501
cmp byte [0x100d985e], 0
jne 0x10010501
test esi, esi
je 0x100104fa
xor edi, edi
cmp dword [esi + 0x15e4], edi
jle 0x100104fa
nop
mov eax, dword [esi + 0x15e0]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x100104ed
mov eax, dword [edi*4 + 0x100b2758]
lea edx, [edi*4 + 0x100c4098]
mov dword [ecx + 0x2a4], eax
mov ebx, 4
mov eax, dword [edi*4 + 0x100b4698]
mov dword [ecx + 0x2a8], eax
mov eax, dword [edi*4 + 0x100b65d8]
mov dword [ecx + 0x2b0], eax
cvttss2si eax, dword [edi*4 + 0x100b8518]
mov dword [ecx + 0x2b8], eax
cvttss2si eax, dword [edi*4 + 0x100ba458]
mov dword [ecx + 0x2bc], eax
cvttss2si eax, dword [edi*4 + 0x100bc398]
mov dword [ecx + 0x2c0], eax
cvttss2si eax, dword [edi*4 + 0x100be2d8]
mov dword [ecx + 0x2c4], eax
cvttss2si eax, dword [edi*4 + 0x100c0218]
mov dword [ecx + 0x2c8], eax
cvttss2si eax, dword [edi*4 + 0x100c2158]
mov dword [ecx + 0x2cc], eax
add ecx, 0x364
lea ecx, [ecx + 4]
lea edx, [edx + 0x1f40]
cvttss2si eax, dword [edx - 0x1f40]
mov dword [ecx - 4], eax
sub ebx, 1
jne 0x100104d4
inc edi
cmp edi, dword [esi + 0x15e4]
jl 0x10010430
mov byte [0x100d985e], 1
cmp byte [0x100d9858], 0
je 0x1001054a
cmp byte [0x100d985b], 0
je 0x1001058b
test esi, esi
je 0x10010541
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x10010541
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x10010538
mov dword [eax + 0x328], 0
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x10010521
mov byte [0x100d985b], 0
jmp 0x1001058b
cmp byte [0x100d985b], 0
jne 0x1001058b
test esi, esi
je 0x10010584
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x10010584
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1001057b
mov eax, dword [ecx*4 + 0x10100970]
mov dword [edx + 0x328], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x10010561
mov byte [0x100d985b], 1
cmp byte [0x10100968], 0
je 0x100105d9
cmp byte [0x10100969], 0
je 0x1001061c
test esi, esi
je 0x100105d0
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x100105d0
nop
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x100105c7
mov dword [eax + 0x258], 1
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x100105b0
mov byte [0x10100969], 0
jmp 0x1001061c
cmp byte [0x10100969], 0
jne 0x1001061c
test esi, esi
je 0x10010615
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x10010615
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1001060c
cvttss2si eax, dword [ecx*4 + 0x100d9868]
mov dword [edx + 0x258], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x100105f0
mov byte [0x10100969], 1
cmp byte [0x100d9861], 0
je 0x10010669
cmp byte [0x1010096a], 0
je 0x100106aa
test esi, esi
je 0x10010660
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x10010660
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x10010657
mov dword [eax + 0x2b4], 0
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x10010640
mov byte [0x1010096a], 0
jmp 0x100106aa
cmp byte [0x1010096a], 0
jne 0x100106aa
test esi, esi
je 0x100106a3
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x100106a3
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1001069a
mov eax, dword [ecx*4 + 0x100dd6e8]
mov dword [edx + 0x2b4], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x10010680
mov byte [0x1010096a], 1
cmp byte [0x10127ac4], 0
je 0x100106f9
cmp byte [0x10127ac5], 0
je 0x1001073a
test esi, esi
je 0x100106f0
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x100106f0
nop
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x100106e7
mov dword [eax + 0x30c], 0
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x100106d0
mov byte [0x10127ac5], 0
jmp 0x1001073a
cmp byte [0x10127ac5], 0
jne 0x1001073a
test esi, esi
je 0x10010733
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x10010733
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1001072a
mov eax, dword [ecx*4 + 0x100db7a8]
mov dword [edx + 0x30c], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x10010710
mov byte [0x10127ac5], 1
test esi, esi
je 0x10010770
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x10010770
nop dword [eax + eax]
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x10010767
mov dword [eax + 0x35c], 0
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x10010750
mov eax, dword [0x10127ac0]
test eax, eax
jne 0x10010816
test esi, esi
je 0x100107b0
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x100107b0
nop dword [eax + eax]
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x100107a7
mov dword [eax + 0x308], 0
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x10010790
mov edx, dword [ebp - 4]
cmp byte [0x100d985d], 0
jne 0x100107ea
test edx, edx
je 0x100107e3
mov eax, dword [edx + 0x18]
test eax, eax
je 0x100107ce
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x100107d0
xor eax, eax
movd xmm0, dword [eax + 0x148]
cvtdq2ps xmm0, xmm0
movss dword [0x10127a74], xmm0
mov byte [0x100d985d], 1
cmp byte [0x100d9862], 0
mov eax, dword [edx + 0x18]
je 0x10010890
test eax, eax
je 0x10010805
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x10010807
xor eax, eax
mov dword [eax + 0x148], 0xffffffff
jmp 0x100108ab
cmp eax, 1
jne 0x1001085b
test esi, esi
je 0x100107b0
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x100107b0
nop dword [eax]
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1001084d
movss xmm0, dword [0x1010096c]
movss dword [eax + 0x308], xmm0
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x10010830
jmp 0x100107b0
cmp eax, 2
jne 0x100107b0
push 1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov edx, dword [0x10127c0c]
test ax, ax
jns 0x100107b3
mov eax, dword [edx + 0x18]
mov eax, dword [eax + 0x10]
mov dword [eax + 0x138], 1
jmp 0x100107b3
cvttss2si ecx, dword [0x10127a74]
test eax, eax
je 0x100108a3
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x100108a5
xor eax, eax
mov dword [eax + 0x148], ecx
test esi, esi
je 0x100109f5
xor ecx, ecx
cmp byte [0x100d9860], cl
je 0x100108e7
cmp dword [esi + 0x15e4], ecx
jle 0x10010915
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x100108dc
mov dword [eax + 0x2d0], 0x3b9ac9ff
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x100108c5
jmp 0x10010915
cmp dword [esi + 0x15e4], ecx
jle 0x10010915
nop
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1001090c
cvttss2si eax, dword [ecx*4 + 0x100df628]
mov dword [edx + 0x2d0], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x100108f0
cmp byte [0x100d985a], 0
je 0x10010952
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x1001098a
nop dword [eax + eax]
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x10010947
mov dword [eax + 0x254], 0x10074524
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x10010930
jmp 0x1001098a
xor edi, edi
cmp dword [esi + 0x15e4], edi
jle 0x1001098a
nop dword [eax]
mov eax, dword [esi + 0x15e0]
mov ebx, dword [eax + edi*4]
test ebx, ebx
je 0x10010981
movss xmm0, dword [edi*4 + 0x100e1568]
call fcn.1005e7f0
mov dword [ebx + 0x254], eax
inc edi
cmp edi, dword [esi + 0x15e4]
jl 0x10010960
xor ecx, ecx
cmp byte [0x100d9859], cl
je 0x100109c8
cmp dword [esi + 0x15e4], ecx
jle 0x100109f5
nop dword [eax]
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x100109b8
mov eax, dword [0x100d9864]
mov dword [edx + 0x4f4], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x100109a0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x15e4], ecx
jle 0x100109f5
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x100109ec
cvttss2si eax, dword [ecx*4 + 0x100e34a8]
mov dword [edx + 0x4f4], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x100109d0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret