Function at 0x1000f750
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, dword [0x10126b68]
push ebx
push esi
push edi
mov eax, dword [ecx]
call dword [eax + 0xd0]
cmp byte [0x10126994], 0
mov esi, dword [0x3844504c]
mov dword [ebp - 4], eax
mov dword [0x10126bac], eax
je 0x1000f786
movss xmm0, dword [0x10067558]
jmp 0x1000f78e
movss xmm0, dword [0x100674cc]
movss dword [0x383b3084], xmm0
cmp byte [0x100ff83a], 0
jne 0x1000f968
test esi, esi
je 0x1000f961
mov ebx, dword [esi + 0x15e4]
xor ecx, ecx
test ebx, ebx
jle 0x1000f961
mov edi, dword [esi + 0x15e0]
sub edi, 0x100b1630
nop word [eax + eax]
mov edx, dword [edi + ecx*4 + 0x100b1630]
test edx, edx
je 0x1000f958
movd xmm0, dword [edx + 0x2b8]
cvtdq2ps xmm0, xmm0
mov eax, dword [edx + 0x2a4]
mov dword [ecx*4 + 0x100b1630], eax
mov eax, dword [edx + 0x2a8]
mov dword [ecx*4 + 0x100b3570], eax
mov eax, dword [edx + 0x2b0]
movss dword [ecx*4 + 0x100b73f0], xmm0
movd xmm0, dword [edx + 0x2bc]
cvtdq2ps xmm0, xmm0
mov dword [ecx*4 + 0x100b54b0], eax
mov eax, dword [edx + 0x328]
mov dword [ecx*4 + 0x100ff840], eax
mov eax, dword [edx + 0x30c]
mov dword [ecx*4 + 0x100da678], eax
movss dword [ecx*4 + 0x100b9330], xmm0
movd xmm0, dword [edx + 0x2c0]
cvtdq2ps xmm0, xmm0
mov eax, dword [edx + 0x2b4]
mov dword [ecx*4 + 0x100dc5b8], eax
mov eax, dword [edx + 0x254]
movss dword [ecx*4 + 0x100bb270], xmm0
movd xmm0, dword [edx + 0x2c4]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x100bd1b0], xmm0
movd xmm0, dword [edx + 0x2c8]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x100bf0f0], xmm0
movd xmm0, dword [edx + 0x2cc]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x100c1030], xmm0
movd xmm0, dword [edx + 0x364]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x100c2f70], xmm0
movd xmm0, dword [edx + 0x368]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x100c4eb0], xmm0
movd xmm0, dword [edx + 0x36c]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x100c6df0], xmm0
movd xmm0, dword [edx + 0x370]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x100c8d30], xmm0
movd xmm0, dword [edx + 0x258]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x100d8738], xmm0
movd xmm0, dword [edx + 0x2d0]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x100de4f8], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10067930]
cvtpd2ps xmm0, xmm0
movss dword [ecx*4 + 0x100e0438], xmm0
movd xmm0, dword [edx + 0x4f4]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x100e2378], xmm0
inc ecx
cmp ecx, ebx
jl 0x1000f7d0
mov byte [0x100ff83a], 1
cmp byte [0x100d8730], 0
je 0x1000fa4c
cmp byte [0x100b162f], 0
je 0x1000fb41
test esi, esi
je 0x1000fa40
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x1000fa40
nop dword [eax + eax]
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1000fa33
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 0x1000f9a0
mov byte [0x100b162f], 0
jmp 0x1000fb41
cmp byte [0x100b162f], 0
jne 0x1000fb41
test esi, esi
je 0x1000fb3a
xor edi, edi
cmp dword [esi + 0x15e4], edi
jle 0x1000fb3a
nop
mov eax, dword [esi + 0x15e0]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x1000fb2d
mov eax, dword [edi*4 + 0x100b1630]
lea edx, [edi*4 + 0x100c2f70]
mov dword [ecx + 0x2a4], eax
mov ebx, 4
mov eax, dword [edi*4 + 0x100b3570]
mov dword [ecx + 0x2a8], eax
mov eax, dword [edi*4 + 0x100b54b0]
mov dword [ecx + 0x2b0], eax
cvttss2si eax, dword [edi*4 + 0x100b73f0]
mov dword [ecx + 0x2b8], eax
cvttss2si eax, dword [edi*4 + 0x100b9330]
mov dword [ecx + 0x2bc], eax
cvttss2si eax, dword [edi*4 + 0x100bb270]
mov dword [ecx + 0x2c0], eax
cvttss2si eax, dword [edi*4 + 0x100bd1b0]
mov dword [ecx + 0x2c4], eax
cvttss2si eax, dword [edi*4 + 0x100bf0f0]
mov dword [ecx + 0x2c8], eax
cvttss2si eax, dword [edi*4 + 0x100c1030]
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 0x1000fb14
inc edi
cmp edi, dword [esi + 0x15e4]
jl 0x1000fa70
mov byte [0x100b162f], 1
cmp byte [0x100b1629], 0
je 0x1000fb8a
cmp byte [0x100b162c], 0
je 0x1000fbcb
test esi, esi
je 0x1000fb81
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x1000fb81
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1000fb78
mov dword [eax + 0x328], 0
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000fb61
mov byte [0x100b162c], 0
jmp 0x1000fbcb
cmp byte [0x100b162c], 0
jne 0x1000fbcb
test esi, esi
je 0x1000fbc4
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x1000fbc4
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1000fbbb
mov eax, dword [ecx*4 + 0x100ff840]
mov dword [edx + 0x328], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000fba1
mov byte [0x100b162c], 1
cmp byte [0x100ff838], 0
je 0x1000fc19
cmp byte [0x100ff839], 0
je 0x1000fc5c
test esi, esi
je 0x1000fc10
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x1000fc10
nop
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1000fc07
mov dword [eax + 0x258], 1
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000fbf0
mov byte [0x100ff839], 0
jmp 0x1000fc5c
cmp byte [0x100ff839], 0
jne 0x1000fc5c
test esi, esi
je 0x1000fc55
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x1000fc55
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1000fc4c
cvttss2si eax, dword [ecx*4 + 0x100d8738]
mov dword [edx + 0x258], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000fc30
mov byte [0x100ff839], 1
cmp byte [0x100d8732], 0
je 0x1000fca9
cmp byte [0x100ff83b], 0
je 0x1000fcea
test esi, esi
je 0x1000fca0
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x1000fca0
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1000fc97
mov dword [eax + 0x2b4], 0
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000fc80
mov byte [0x100ff83b], 0
jmp 0x1000fcea
cmp byte [0x100ff83b], 0
jne 0x1000fcea
test esi, esi
je 0x1000fce3
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x1000fce3
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1000fcda
mov eax, dword [ecx*4 + 0x100dc5b8]
mov dword [edx + 0x2b4], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000fcc0
mov byte [0x100ff83b], 1
cmp byte [0x10126995], 0
je 0x1000fd39
cmp byte [0x10126996], 0
je 0x1000fd7a
test esi, esi
je 0x1000fd30
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x1000fd30
nop
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1000fd27
mov dword [eax + 0x30c], 0
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000fd10
mov byte [0x10126996], 0
jmp 0x1000fd7a
cmp byte [0x10126996], 0
jne 0x1000fd7a
test esi, esi
je 0x1000fd73
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x1000fd73
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1000fd6a
mov eax, dword [ecx*4 + 0x100da678]
mov dword [edx + 0x30c], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000fd50
mov byte [0x10126996], 1
test esi, esi
je 0x1000fdb0
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x1000fdb0
nop dword [eax + eax]
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1000fda7
mov dword [eax + 0x35c], 0
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000fd90
mov eax, dword [0x10126990]
test eax, eax
jne 0x1000fe56
test esi, esi
je 0x1000fdf0
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x1000fdf0
nop dword [eax + eax]
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1000fde7
mov dword [eax + 0x308], 0
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000fdd0
mov edx, dword [ebp - 4]
cmp byte [0x100b162e], 0
jne 0x1000fe2a
test edx, edx
je 0x1000fe23
mov eax, dword [edx + 0x18]
test eax, eax
je 0x1000fe0e
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x1000fe10
xor eax, eax
movd xmm0, dword [eax + 0x148]
cvtdq2ps xmm0, xmm0
movss dword [0x10126944], xmm0
mov byte [0x100b162e], 1
cmp byte [0x100d8733], 0
mov eax, dword [edx + 0x18]
je 0x1000fed0
test eax, eax
je 0x1000fe45
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x1000fe47
xor eax, eax
mov dword [eax + 0x148], 0xffffffff
jmp 0x1000feeb
cmp eax, 1
jne 0x1000fe9b
test esi, esi
je 0x1000fdf0
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x1000fdf0
nop dword [eax]
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1000fe8d
movss xmm0, dword [0x100ff83c]
movss dword [eax + 0x308], xmm0
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000fe70
jmp 0x1000fdf0
cmp eax, 2
jne 0x1000fdf0
push 1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov edx, dword [0x10126bac]
test ax, ax
jns 0x1000fdf3
mov eax, dword [edx + 0x18]
mov eax, dword [eax + 0x10]
mov dword [eax + 0x138], 1
jmp 0x1000fdf3
cvttss2si ecx, dword [0x10126944]
test eax, eax
je 0x1000fee3
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x1000fee5
xor eax, eax
mov dword [eax + 0x148], ecx
test esi, esi
je 0x10010035
xor ecx, ecx
cmp byte [0x100d8731], cl
je 0x1000ff27
cmp dword [esi + 0x15e4], ecx
jle 0x1000ff55
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1000ff1c
mov dword [eax + 0x2d0], 0x3b9ac9ff
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000ff05
jmp 0x1000ff55
cmp dword [esi + 0x15e4], ecx
jle 0x1000ff55
nop
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1000ff4c
cvttss2si eax, dword [ecx*4 + 0x100de4f8]
mov dword [edx + 0x2d0], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000ff30
xor edi, edi
cmp byte [0x100b162b], 0
je 0x1000ff98
cmp dword [esi + 0x15e4], edi
jle 0x1000ffca
nop dword [eax + eax]
mov eax, dword [esi + 0x15e0]
mov ebx, dword [eax + edi*4]
test ebx, ebx
je 0x1000ff8d
mov ecx, 0x10073524
call fcn.1000a1a0
mov dword [ebx + 0x254], eax
inc edi
cmp edi, dword [esi + 0x15e4]
jl 0x1000ff70
jmp 0x1000ffca
cmp dword [esi + 0x15e4], edi
jle 0x1000ffca
mov eax, dword [esi + 0x15e0]
mov ebx, dword [eax + edi*4]
test ebx, ebx
je 0x1000ffc1
movss xmm0, dword [edi*4 + 0x100e0438]
call fcn.1005c870
mov dword [ebx + 0x254], eax
inc edi
cmp edi, dword [esi + 0x15e4]
jl 0x1000ffa0
xor ecx, ecx
cmp byte [0x100b162a], cl
je 0x10010008
cmp dword [esi + 0x15e4], ecx
jle 0x10010035
nop dword [eax]
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1000fff8
mov eax, dword [0x100d8734]
mov dword [edx + 0x4f4], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1000ffe0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x15e4], ecx
jle 0x10010035
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1001002c
cvttss2si eax, dword [ecx*4 + 0x100e2378]
mov dword [edx + 0x4f4], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x10010010
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret