Function at 0x1000fe60
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, dword [0x10127b10]
push ebx
push esi
push edi
mov eax, dword [ecx]
call dword [eax + 0xd0]
cmp byte [0x10100845], 0
mov ecx, dword [0x100b2524]
mov dword [ebp - 4], eax
mov dword [0x10127b7c], eax
mov esi, dword [ecx]
je 0x1000fe98
movss xmm0, dword [0x10068608]
jmp 0x1000fea0
movss xmm0, dword [0x1006857c]
movss dword [0x383abd04], xmm0
cmp byte [0x100d973b], 0
jne 0x10010078
test esi, esi
je 0x10010071
mov ebx, dword [esi + 0x15e4]
xor ecx, ecx
test ebx, ebx
jle 0x10010071
mov edi, dword [esi + 0x15e0]
sub edi, 0x100b2630
nop dword [eax]
mov edx, dword [edi + ecx*4 + 0x100b2630]
test edx, edx
je 0x10010068
movd xmm0, dword [edx + 0x2b8]
cvtdq2ps xmm0, xmm0
mov eax, dword [edx + 0x2a4]
mov dword [ecx*4 + 0x100b2630], eax
mov eax, dword [edx + 0x2a8]
mov dword [ecx*4 + 0x100b4570], eax
mov eax, dword [edx + 0x2b0]
movss dword [ecx*4 + 0x100b83f0], xmm0
movd xmm0, dword [edx + 0x2bc]
cvtdq2ps xmm0, xmm0
mov dword [ecx*4 + 0x100b64b0], eax
mov eax, dword [edx + 0x328]
mov dword [ecx*4 + 0x10100848], eax
mov eax, dword [edx + 0x30c]
mov dword [ecx*4 + 0x100db680], eax
movss dword [ecx*4 + 0x100ba330], xmm0
movd xmm0, dword [edx + 0x2c0]
cvtdq2ps xmm0, xmm0
mov eax, dword [edx + 0x2b4]
mov dword [ecx*4 + 0x100dd5c0], eax
mov eax, dword [edx + 0x254]
movss dword [ecx*4 + 0x100bc270], xmm0
movd xmm0, dword [edx + 0x2c4]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x100be1b0], xmm0
movd xmm0, dword [edx + 0x2c8]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x100c00f0], xmm0
movd xmm0, dword [edx + 0x2cc]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x100c2030], xmm0
movd xmm0, dword [edx + 0x364]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x100c3f70], xmm0
movd xmm0, dword [edx + 0x368]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x100c5eb0], xmm0
movd xmm0, dword [edx + 0x36c]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x100c7df0], xmm0
movd xmm0, dword [edx + 0x370]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x100c9d30], xmm0
movd xmm0, dword [edx + 0x258]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x100d9740], xmm0
movd xmm0, dword [edx + 0x2d0]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x100df500], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10068d10]
cvtpd2ps xmm0, xmm0
movss dword [ecx*4 + 0x100e1440], xmm0
movd xmm0, dword [edx + 0x4f4]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x100e3380], xmm0
inc ecx
cmp ecx, ebx
jl 0x1000fee0
mov byte [0x100d973b], 1
cmp byte [0x100d9735], 0
je 0x1001015c
cmp byte [0x100d9734], 0
je 0x10010251
test esi, esi
je 0x10010150
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x10010150
nop dword [eax + eax]
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x10010143
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 0x100100b0
mov byte [0x100d9734], 0
jmp 0x10010251
cmp byte [0x100d9734], 0
jne 0x10010251
test esi, esi
je 0x1001024a
xor edi, edi
cmp dword [esi + 0x15e4], edi
jle 0x1001024a
nop
mov eax, dword [esi + 0x15e0]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x1001023d
mov eax, dword [edi*4 + 0x100b2630]
lea edx, [edi*4 + 0x100c3f70]
mov dword [ecx + 0x2a4], eax
mov ebx, 4
mov eax, dword [edi*4 + 0x100b4570]
mov dword [ecx + 0x2a8], eax
mov eax, dword [edi*4 + 0x100b64b0]
mov dword [ecx + 0x2b0], eax
cvttss2si eax, dword [edi*4 + 0x100b83f0]
mov dword [ecx + 0x2b8], eax
cvttss2si eax, dword [edi*4 + 0x100ba330]
mov dword [ecx + 0x2bc], eax
cvttss2si eax, dword [edi*4 + 0x100bc270]
mov dword [ecx + 0x2c0], eax
cvttss2si eax, dword [edi*4 + 0x100be1b0]
mov dword [ecx + 0x2c4], eax
cvttss2si eax, dword [edi*4 + 0x100c00f0]
mov dword [ecx + 0x2c8], eax
cvttss2si eax, dword [edi*4 + 0x100c2030]
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 0x10010224
inc edi
cmp edi, dword [esi + 0x15e4]
jl 0x10010180
mov byte [0x100d9734], 1
cmp byte [0x100b262e], 0
je 0x1001029a
cmp byte [0x100d9731], 0
je 0x100102db
test esi, esi
je 0x10010291
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x10010291
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x10010288
mov dword [eax + 0x328], 0
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x10010271
mov byte [0x100d9731], 0
jmp 0x100102db
cmp byte [0x100d9731], 0
jne 0x100102db
test esi, esi
je 0x100102d4
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x100102d4
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x100102cb
mov eax, dword [ecx*4 + 0x10100848]
mov dword [edx + 0x328], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x100102b1
mov byte [0x100d9731], 1
cmp byte [0x100d9739], 0
je 0x10010329
cmp byte [0x100d973a], 0
je 0x1001036c
test esi, esi
je 0x10010320
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x10010320
nop
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x10010317
mov dword [eax + 0x258], 1
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x10010300
mov byte [0x100d973a], 0
jmp 0x1001036c
cmp byte [0x100d973a], 0
jne 0x1001036c
test esi, esi
je 0x10010365
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x10010365
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1001035c
cvttss2si eax, dword [ecx*4 + 0x100d9740]
mov dword [edx + 0x258], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x10010340
mov byte [0x100d973a], 1
cmp byte [0x100d9737], 0
je 0x100103b9
cmp byte [0x10100844], 0
je 0x100103fa
test esi, esi
je 0x100103b0
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x100103b0
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x100103a7
mov dword [eax + 0x2b4], 0
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x10010390
mov byte [0x10100844], 0
jmp 0x100103fa
cmp byte [0x10100844], 0
jne 0x100103fa
test esi, esi
je 0x100103f3
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x100103f3
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x100103ea
mov eax, dword [ecx*4 + 0x100dd5c0]
mov dword [edx + 0x2b4], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x100103d0
mov byte [0x10100844], 1
cmp byte [0x10100846], 0
je 0x10010449
cmp byte [0x10100847], 0
je 0x1001048a
test esi, esi
je 0x10010440
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x10010440
nop
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x10010437
mov dword [eax + 0x30c], 0
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x10010420
mov byte [0x10100847], 0
jmp 0x1001048a
cmp byte [0x10100847], 0
jne 0x1001048a
test esi, esi
je 0x10010483
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x10010483
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1001047a
mov eax, dword [ecx*4 + 0x100db680]
mov dword [edx + 0x30c], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x10010460
mov byte [0x10100847], 1
test esi, esi
je 0x100104c0
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x100104c0
nop dword [eax + eax]
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x100104b7
mov dword [eax + 0x35c], 0
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x100104a0
mov eax, dword [0x10127998]
test eax, eax
jne 0x10010566
test esi, esi
je 0x10010500
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x10010500
nop dword [eax + eax]
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x100104f7
mov dword [eax + 0x308], 0
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x100104e0
mov edx, dword [ebp - 4]
cmp byte [0x100d9733], 0
jne 0x1001053a
test edx, edx
je 0x10010533
mov eax, dword [edx + 0x18]
test eax, eax
je 0x1001051e
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x10010520
xor eax, eax
movd xmm0, dword [eax + 0x148]
cvtdq2ps xmm0, xmm0
movss dword [0x1012794c], xmm0
mov byte [0x100d9733], 1
cmp byte [0x100d9738], 0
mov eax, dword [edx + 0x18]
je 0x100105e0
test eax, eax
je 0x10010555
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x10010557
xor eax, eax
mov dword [eax + 0x148], 0xffffffff
jmp 0x100105fb
cmp eax, 1
jne 0x100105ab
test esi, esi
je 0x10010500
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x10010500
nop dword [eax]
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1001059d
movss xmm0, dword [0x10100840]
movss dword [eax + 0x308], xmm0
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x10010580
jmp 0x10010500
cmp eax, 2
jne 0x10010500
push 1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov edx, dword [0x10127b7c]
test ax, ax
jns 0x10010503
mov eax, dword [edx + 0x18]
mov eax, dword [eax + 0x10]
mov dword [eax + 0x138], 1
jmp 0x10010503
cvttss2si ecx, dword [0x1012794c]
test eax, eax
je 0x100105f3
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x100105f5
xor eax, eax
mov dword [eax + 0x148], ecx
test esi, esi
je 0x10010745
xor ecx, ecx
cmp byte [0x100d9736], cl
je 0x10010637
cmp dword [esi + 0x15e4], ecx
jle 0x10010665
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1001062c
mov dword [eax + 0x2d0], 0x3b9ac9ff
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x10010615
jmp 0x10010665
cmp dword [esi + 0x15e4], ecx
jle 0x10010665
nop
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1001065c
cvttss2si eax, dword [ecx*4 + 0x100df500]
mov dword [edx + 0x2d0], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x10010640
cmp byte [0x100d9730], 0
je 0x100106a2
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x100106da
nop dword [eax + eax]
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x10010697
mov dword [eax + 0x254], 0x10074524
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x10010680
jmp 0x100106da
xor edi, edi
cmp dword [esi + 0x15e4], edi
jle 0x100106da
nop dword [eax]
mov eax, dword [esi + 0x15e0]
mov ebx, dword [eax + edi*4]
test ebx, ebx
je 0x100106d1
movss xmm0, dword [edi*4 + 0x100e1440]
call fcn.1005dbe0
mov dword [ebx + 0x254], eax
inc edi
cmp edi, dword [esi + 0x15e4]
jl 0x100106b0
xor ecx, ecx
cmp byte [0x100b262f], cl
je 0x10010718
cmp dword [esi + 0x15e4], ecx
jle 0x10010745
nop dword [eax]
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x10010708
mov eax, dword [0x100d973c]
mov dword [edx + 0x4f4], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x100106f0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x15e4], ecx
jle 0x10010745
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1001073c
cvttss2si eax, dword [ecx*4 + 0x100e3380]
mov dword [edx + 0x4f4], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x10010720
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret