Function at 0x1000775e
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push ecx
cmp byte [0x100785a6], 0
mov ecx, dword [0x38433d1c]
push ebx
mov ebx, dword [0x384035dc]
mov dword [ebp - 4], ebx
je 0x10007785
movss xmm0, dword [0x1004c760]
jmp 0x1000778d
movss xmm0, dword [0x1004c6fc]
xor edx, edx
movss dword [0x383abd04], xmm0
push esi
push edi
cmp byte [0x100785a5], dl
jne 0x10007917
test ecx, ecx
je 0x10007910
mov esi, edx
cmp dword [ecx + 0x15e4], edx
jle 0x10007910
mov ebx, dword [ecx + 0x15e0]
sub ebx, 0x10051498
mov edi, dword [ebx + esi*4 + 0x10051498]
test edi, edi
je 0x10007900
movd xmm0, dword [edi + 0x2b8]
cvtdq2ps xmm0, xmm0
mov eax, dword [edi + 0x2a4]
mov dword [esi*4 + 0x10051498], eax
mov eax, dword [edi + 0x2a8]
mov dword [esi*4 + 0x100533d8], eax
mov eax, dword [edi + 0x2b0]
movss dword [esi*4 + 0x10057258], xmm0
movd xmm0, dword [edi + 0x2bc]
cvtdq2ps xmm0, xmm0
mov dword [esi*4 + 0x10055318], eax
mov eax, dword [edi + 0x328]
mov dword [esi*4 + 0x1009f6b0], eax
mov eax, dword [edi + 0x30c]
mov dword [esi*4 + 0x1007a4e8], eax
movss dword [esi*4 + 0x10059198], xmm0
movd xmm0, dword [edi + 0x2c0]
cvtdq2ps xmm0, xmm0
mov eax, dword [edi + 0x2b4]
mov dword [esi*4 + 0x1007c428], eax
movss dword [esi*4 + 0x1005b0d8], xmm0
movd xmm0, dword [edi + 0x2c4]
cvtdq2ps xmm0, xmm0
movss dword [esi*4 + 0x1005d018], xmm0
movd xmm0, dword [edi + 0x2c8]
cvtdq2ps xmm0, xmm0
movss dword [esi*4 + 0x1005ef58], xmm0
movd xmm0, dword [edi + 0x2cc]
cvtdq2ps xmm0, xmm0
movss dword [esi*4 + 0x10060e98], xmm0
movd xmm0, dword [edi + 0x364]
cvtdq2ps xmm0, xmm0
movss dword [esi*4 + 0x10062dd8], xmm0
movd xmm0, dword [edi + 0x368]
cvtdq2ps xmm0, xmm0
movss dword [esi*4 + 0x10064d18], xmm0
movd xmm0, dword [edi + 0x36c]
cvtdq2ps xmm0, xmm0
movss dword [esi*4 + 0x10066c58], xmm0
movd xmm0, dword [edi + 0x370]
cvtdq2ps xmm0, xmm0
movss dword [esi*4 + 0x10068b98], xmm0
movd xmm0, dword [edi + 0x258]
cvtdq2ps xmm0, xmm0
movss dword [esi*4 + 0x100785a8], xmm0
inc esi
cmp esi, dword [ecx + 0x15e4]
jl 0x100077c7
mov ebx, dword [ebp - 4]
mov byte [0x100785a5], 1
cmp byte [0x10051496], dl
je 0x100079ac
cmp byte [0x10051495], dl
je 0x10007ab0
test ecx, ecx
je 0x100079a1
mov esi, edx
cmp dword [ecx + 0x15e4], edx
jle 0x100079a1
mov eax, dword [ecx + 0x15e0]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x10007998
and dword [eax + 0x2a4], edx
and dword [eax + 0x2a8], edx
and dword [eax + 0x2b0], edx
mov dword [eax + 0x2b8], edx
mov dword [eax + 0x2bc], edx
mov dword [eax + 0x2c0], edx
mov dword [eax + 0x2c4], edx
mov dword [eax + 0x2c8], edx
mov dword [eax + 0x2cc], edx
mov dword [eax + 0x364], edx
mov dword [eax + 0x368], edx
mov dword [eax + 0x36c], edx
mov dword [eax + 0x370], edx
inc esi
cmp esi, dword [ecx + 0x15e4]
jl 0x1000793d
mov byte [0x10051495], dl
jmp 0x10007ab0
cmp byte [0x10051495], dl
jne 0x10007ab0
test ecx, ecx
je 0x10007aa9
mov esi, edx
cmp dword [ecx + 0x15e4], edx
jle 0x10007aa9
mov eax, dword [ecx + 0x15e0]
mov edi, dword [eax + esi*4]
test edi, edi
je 0x10007a9c
mov eax, dword [esi*4 + 0x10051498]
mov dword [edi + 0x2a4], eax
mov eax, dword [esi*4 + 0x100533d8]
mov dword [edi + 0x2a8], eax
mov eax, dword [esi*4 + 0x10055318]
mov dword [edi + 0x2b0], eax
cvttss2si eax, dword [esi*4 + 0x10057258]
mov dword [edi + 0x2b8], eax
cvttss2si eax, dword [esi*4 + 0x10059198]
mov dword [edi + 0x2bc], eax
cvttss2si eax, dword [esi*4 + 0x1005b0d8]
mov dword [edi + 0x2c0], eax
cvttss2si eax, dword [esi*4 + 0x1005d018]
mov dword [edi + 0x2c4], eax
cvttss2si eax, dword [esi*4 + 0x1005ef58]
mov dword [edi + 0x2c8], eax
cvttss2si eax, dword [esi*4 + 0x10060e98]
mov dword [edi + 0x2cc], eax
cvttss2si eax, dword [esi*4 + 0x10062dd8]
mov dword [edi + 0x364], eax
cvttss2si eax, dword [esi*4 + 0x10064d18]
mov dword [edi + 0x368], eax
cvttss2si eax, dword [esi*4 + 0x10066c58]
mov dword [edi + 0x36c], eax
cvttss2si eax, dword [esi*4 + 0x10068b98]
mov dword [edi + 0x370], eax
inc esi
cmp esi, dword [ecx + 0x15e4]
jl 0x100079ce
mov byte [0x10051495], 1
cmp byte [0x10051492], dl
je 0x10007af2
cmp byte [0x10051493], dl
je 0x10007b32
test ecx, ecx
je 0x10007aea
mov esi, edx
cmp dword [ecx + 0x15e4], edx
jle 0x10007aea
mov eax, dword [ecx + 0x15e0]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x10007ae1
and dword [eax + 0x328], edx
inc esi
cmp esi, dword [ecx + 0x15e4]
jl 0x10007ace
mov byte [0x10051493], dl
jmp 0x10007b32
cmp byte [0x10051493], dl
jne 0x10007b32
test ecx, ecx
je 0x10007b2b
mov esi, edx
cmp dword [ecx + 0x15e4], edx
jle 0x10007b2b
mov eax, dword [ecx + 0x15e0]
mov edi, dword [eax + esi*4]
test edi, edi
je 0x10007b22
mov eax, dword [esi*4 + 0x1009f6b0]
mov dword [edi + 0x328], eax
inc esi
cmp esi, dword [ecx + 0x15e4]
jl 0x10007b08
mov byte [0x10051493], 1
cmp byte [0x100785a7], dl
je 0x10007b78
cmp byte [0x1009f6a8], dl
je 0x10007bba
test ecx, ecx
je 0x10007b70
mov esi, edx
cmp dword [ecx + 0x15e4], edx
jle 0x10007b70
mov eax, dword [ecx + 0x15e0]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x10007b67
mov dword [eax + 0x258], 1
inc esi
cmp esi, dword [ecx + 0x15e4]
jl 0x10007b50
mov byte [0x1009f6a8], dl
jmp 0x10007bba
cmp byte [0x1009f6a8], dl
jne 0x10007bba
test ecx, ecx
je 0x10007bb3
mov esi, edx
cmp dword [ecx + 0x15e4], edx
jle 0x10007bb3
mov eax, dword [ecx + 0x15e0]
mov edi, dword [eax + esi*4]
test edi, edi
je 0x10007baa
cvttss2si eax, dword [esi*4 + 0x100785a8]
mov dword [edi + 0x258], eax
inc esi
cmp esi, dword [ecx + 0x15e4]
jl 0x10007b8e
mov byte [0x1009f6a8], 1
cmp byte [0x10051497], dl
je 0x10007bfc
cmp byte [0x1009f6a9], dl
je 0x10007c3c
test ecx, ecx
je 0x10007bf4
mov esi, edx
cmp dword [ecx + 0x15e4], edx
jle 0x10007bf4
mov eax, dword [ecx + 0x15e0]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x10007beb
and dword [eax + 0x2b4], edx
inc esi
cmp esi, dword [ecx + 0x15e4]
jl 0x10007bd8
mov byte [0x1009f6a9], dl
jmp 0x10007c3c
cmp byte [0x1009f6a9], dl
jne 0x10007c3c
test ecx, ecx
je 0x10007c35
mov esi, edx
cmp dword [ecx + 0x15e4], edx
jle 0x10007c35
mov eax, dword [ecx + 0x15e0]
mov edi, dword [eax + esi*4]
test edi, edi
je 0x10007c2c
mov eax, dword [esi*4 + 0x1007c428]
mov dword [edi + 0x2b4], eax
inc esi
cmp esi, dword [ecx + 0x15e4]
jl 0x10007c12
mov byte [0x1009f6a9], 1
cmp byte [0x1009f6aa], dl
je 0x10007c7e
cmp byte [0x1009f6ab], dl
je 0x10007cbe
test ecx, ecx
je 0x10007c76
mov esi, edx
cmp dword [ecx + 0x15e4], edx
jle 0x10007c76
mov eax, dword [ecx + 0x15e0]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x10007c6d
and dword [eax + 0x30c], edx
inc esi
cmp esi, dword [ecx + 0x15e4]
jl 0x10007c5a
mov byte [0x1009f6ab], dl
jmp 0x10007cbe
cmp byte [0x1009f6ab], dl
jne 0x10007cbe
test ecx, ecx
je 0x10007cb7
mov esi, edx
cmp dword [ecx + 0x15e4], edx
jle 0x10007cb7
mov eax, dword [ecx + 0x15e0]
mov edi, dword [eax + esi*4]
test edi, edi
je 0x10007cae
mov eax, dword [esi*4 + 0x1007a4e8]
mov dword [edi + 0x30c], eax
inc esi
cmp esi, dword [ecx + 0x15e4]
jl 0x10007c94
mov byte [0x1009f6ab], 1
test ecx, ecx
je 0x10007ce8
mov esi, edx
cmp dword [ecx + 0x15e4], edx
jle 0x10007ce8
mov eax, dword [ecx + 0x15e0]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x10007cdf
and dword [eax + 0x35c], edx
inc esi
cmp esi, dword [ecx + 0x15e4]
jl 0x10007ccc
mov eax, dword [0x100c680c]
pop edi
pop esi
test eax, eax
jne 0x10007d1e
test ecx, ecx
je 0x10007d73
cmp dword [ecx + 0x15e4], edx
jle 0x10007d73
mov eax, dword [ecx + 0x15e0]
mov eax, dword [eax + edx*4]
test eax, eax
je 0x10007d13
and dword [eax + 0x308], 0
inc edx
cmp edx, dword [ecx + 0x15e4]
jl 0x10007cff
jmp 0x10007d73
cmp eax, 1
jne 0x10007d51
test ecx, ecx
je 0x10007d73
cmp dword [ecx + 0x15e4], edx
jle 0x10007d73
mov eax, dword [ecx + 0x15e0]
mov eax, dword [eax + edx*4]
test eax, eax
je 0x10007d46
mov dword [eax + 0x308], 0x3f800000
inc edx
cmp edx, dword [ecx + 0x15e4]
jl 0x10007d2f
jmp 0x10007d73
cmp eax, 2
jne 0x10007d73
push 1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x10007d73
mov eax, dword [ebx + 0x18]
mov eax, dword [eax + 0x10]
mov dword [eax + 0x138], 1
cmp byte [0x10051494], 0
jne 0x10007da0
test ebx, ebx
je 0x10007d99
mov eax, dword [ebx + 0x18]
mov eax, dword [eax + 0x10]
movd xmm0, dword [eax + 0x148]
cvtdq2ps xmm0, xmm0
movss dword [0x100c67b4], xmm0
mov byte [0x10051494], 1
cmp byte [0x100785a4], 0
mov eax, dword [ebx + 0x18]
pop ebx
mov ecx, dword [eax + 0x10]
je 0x10007db9
or dword [ecx + 0x148], 0xffffffff
leave
ret
cvttss2si eax, dword [0x100c67b4]
mov dword [ecx + 0x148], eax
leave
ret