Function at 0x10007312
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push ecx
cmp byte [0x100785be], 0
mov ecx, dword [0x38433d1c]
push ebx
mov ebx, dword [0x384035dc]
mov dword [ebp - 4], ebx
je 0x10007339
movss xmm0, dword [0x1004c840]
jmp 0x10007341
movss xmm0, dword [0x1004c7dc]
xor edx, edx
movss dword [0x383abd04], xmm0
push esi
push edi
cmp byte [0x100785bd], dl
jne 0x100074cb
test ecx, ecx
je 0x100074c4
mov esi, edx
cmp dword [ecx + 0x15e4], edx
jle 0x100074c4
mov ebx, dword [ecx + 0x15e0]
sub ebx, 0x100514b0
mov edi, dword [ebx + esi*4 + 0x100514b0]
test edi, edi
je 0x100074b4
movd xmm0, dword [edi + 0x2b8]
cvtdq2ps xmm0, xmm0
mov eax, dword [edi + 0x2a4]
mov dword [esi*4 + 0x100514b0], eax
mov eax, dword [edi + 0x2a8]
mov dword [esi*4 + 0x100533f0], eax
mov eax, dword [edi + 0x2b0]
movss dword [esi*4 + 0x10057270], xmm0
movd xmm0, dword [edi + 0x2bc]
cvtdq2ps xmm0, xmm0
mov dword [esi*4 + 0x10055330], eax
mov eax, dword [edi + 0x328]
mov dword [esi*4 + 0x1009f6c8], eax
mov eax, dword [edi + 0x30c]
mov dword [esi*4 + 0x1007a500], eax
movss dword [esi*4 + 0x100591b0], xmm0
movd xmm0, dword [edi + 0x2c0]
cvtdq2ps xmm0, xmm0
mov eax, dword [edi + 0x2b4]
mov dword [esi*4 + 0x1007c440], eax
movss dword [esi*4 + 0x1005b0f0], xmm0
movd xmm0, dword [edi + 0x2c4]
cvtdq2ps xmm0, xmm0
movss dword [esi*4 + 0x1005d030], xmm0
movd xmm0, dword [edi + 0x2c8]
cvtdq2ps xmm0, xmm0
movss dword [esi*4 + 0x1005ef70], xmm0
movd xmm0, dword [edi + 0x2cc]
cvtdq2ps xmm0, xmm0
movss dword [esi*4 + 0x10060eb0], xmm0
movd xmm0, dword [edi + 0x364]
cvtdq2ps xmm0, xmm0
movss dword [esi*4 + 0x10062df0], xmm0
movd xmm0, dword [edi + 0x368]
cvtdq2ps xmm0, xmm0
movss dword [esi*4 + 0x10064d30], xmm0
movd xmm0, dword [edi + 0x36c]
cvtdq2ps xmm0, xmm0
movss dword [esi*4 + 0x10066c70], xmm0
movd xmm0, dword [edi + 0x370]
cvtdq2ps xmm0, xmm0
movss dword [esi*4 + 0x10068bb0], xmm0
movd xmm0, dword [edi + 0x258]
cvtdq2ps xmm0, xmm0
movss dword [esi*4 + 0x100785c0], xmm0
inc esi
cmp esi, dword [ecx + 0x15e4]
jl 0x1000737b
mov ebx, dword [ebp - 4]
mov byte [0x100785bd], 1
cmp byte [0x100514ae], dl
je 0x10007560
cmp byte [0x100514ad], dl
je 0x10007664
test ecx, ecx
je 0x10007555
mov esi, edx
cmp dword [ecx + 0x15e4], edx
jle 0x10007555
mov eax, dword [ecx + 0x15e0]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x1000754c
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 0x100074f1
mov byte [0x100514ad], dl
jmp 0x10007664
cmp byte [0x100514ad], dl
jne 0x10007664
test ecx, ecx
je 0x1000765d
mov esi, edx
cmp dword [ecx + 0x15e4], edx
jle 0x1000765d
mov eax, dword [ecx + 0x15e0]
mov edi, dword [eax + esi*4]
test edi, edi
je 0x10007650
mov eax, dword [esi*4 + 0x100514b0]
mov dword [edi + 0x2a4], eax
mov eax, dword [esi*4 + 0x100533f0]
mov dword [edi + 0x2a8], eax
mov eax, dword [esi*4 + 0x10055330]
mov dword [edi + 0x2b0], eax
cvttss2si eax, dword [esi*4 + 0x10057270]
mov dword [edi + 0x2b8], eax
cvttss2si eax, dword [esi*4 + 0x100591b0]
mov dword [edi + 0x2bc], eax
cvttss2si eax, dword [esi*4 + 0x1005b0f0]
mov dword [edi + 0x2c0], eax
cvttss2si eax, dword [esi*4 + 0x1005d030]
mov dword [edi + 0x2c4], eax
cvttss2si eax, dword [esi*4 + 0x1005ef70]
mov dword [edi + 0x2c8], eax
cvttss2si eax, dword [esi*4 + 0x10060eb0]
mov dword [edi + 0x2cc], eax
cvttss2si eax, dword [esi*4 + 0x10062df0]
mov dword [edi + 0x364], eax
cvttss2si eax, dword [esi*4 + 0x10064d30]
mov dword [edi + 0x368], eax
cvttss2si eax, dword [esi*4 + 0x10066c70]
mov dword [edi + 0x36c], eax
cvttss2si eax, dword [esi*4 + 0x10068bb0]
mov dword [edi + 0x370], eax
inc esi
cmp esi, dword [ecx + 0x15e4]
jl 0x10007582
mov byte [0x100514ad], 1
cmp byte [0x100514aa], dl
je 0x100076a6
cmp byte [0x100514ab], dl
je 0x100076e6
test ecx, ecx
je 0x1000769e
mov esi, edx
cmp dword [ecx + 0x15e4], edx
jle 0x1000769e
mov eax, dword [ecx + 0x15e0]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x10007695
and dword [eax + 0x328], edx
inc esi
cmp esi, dword [ecx + 0x15e4]
jl 0x10007682
mov byte [0x100514ab], dl
jmp 0x100076e6
cmp byte [0x100514ab], dl
jne 0x100076e6
test ecx, ecx
je 0x100076df
mov esi, edx
cmp dword [ecx + 0x15e4], edx
jle 0x100076df
mov eax, dword [ecx + 0x15e0]
mov edi, dword [eax + esi*4]
test edi, edi
je 0x100076d6
mov eax, dword [esi*4 + 0x1009f6c8]
mov dword [edi + 0x328], eax
inc esi
cmp esi, dword [ecx + 0x15e4]
jl 0x100076bc
mov byte [0x100514ab], 1
cmp byte [0x100785bf], dl
je 0x1000772c
cmp byte [0x1009f6c0], dl
je 0x1000776e
test ecx, ecx
je 0x10007724
mov esi, edx
cmp dword [ecx + 0x15e4], edx
jle 0x10007724
mov eax, dword [ecx + 0x15e0]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x1000771b
mov dword [eax + 0x258], 1
inc esi
cmp esi, dword [ecx + 0x15e4]
jl 0x10007704
mov byte [0x1009f6c0], dl
jmp 0x1000776e
cmp byte [0x1009f6c0], dl
jne 0x1000776e
test ecx, ecx
je 0x10007767
mov esi, edx
cmp dword [ecx + 0x15e4], edx
jle 0x10007767
mov eax, dword [ecx + 0x15e0]
mov edi, dword [eax + esi*4]
test edi, edi
je 0x1000775e
cvttss2si eax, dword [esi*4 + 0x100785c0]
mov dword [edi + 0x258], eax
inc esi
cmp esi, dword [ecx + 0x15e4]
jl 0x10007742
mov byte [0x1009f6c0], 1
cmp byte [0x100514af], dl
je 0x100077b0
cmp byte [0x1009f6c1], dl
je 0x100077f0
test ecx, ecx
je 0x100077a8
mov esi, edx
cmp dword [ecx + 0x15e4], edx
jle 0x100077a8
mov eax, dword [ecx + 0x15e0]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x1000779f
and dword [eax + 0x2b4], edx
inc esi
cmp esi, dword [ecx + 0x15e4]
jl 0x1000778c
mov byte [0x1009f6c1], dl
jmp 0x100077f0
cmp byte [0x1009f6c1], dl
jne 0x100077f0
test ecx, ecx
je 0x100077e9
mov esi, edx
cmp dword [ecx + 0x15e4], edx
jle 0x100077e9
mov eax, dword [ecx + 0x15e0]
mov edi, dword [eax + esi*4]
test edi, edi
je 0x100077e0
mov eax, dword [esi*4 + 0x1007c440]
mov dword [edi + 0x2b4], eax
inc esi
cmp esi, dword [ecx + 0x15e4]
jl 0x100077c6
mov byte [0x1009f6c1], 1
cmp byte [0x1009f6c2], dl
je 0x10007832
cmp byte [0x1009f6c3], dl
je 0x10007872
test ecx, ecx
je 0x1000782a
mov esi, edx
cmp dword [ecx + 0x15e4], edx
jle 0x1000782a
mov eax, dword [ecx + 0x15e0]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x10007821
and dword [eax + 0x30c], edx
inc esi
cmp esi, dword [ecx + 0x15e4]
jl 0x1000780e
mov byte [0x1009f6c3], dl
jmp 0x10007872
cmp byte [0x1009f6c3], dl
jne 0x10007872
test ecx, ecx
je 0x1000786b
mov esi, edx
cmp dword [ecx + 0x15e4], edx
jle 0x1000786b
mov eax, dword [ecx + 0x15e0]
mov edi, dword [eax + esi*4]
test edi, edi
je 0x10007862
mov eax, dword [esi*4 + 0x1007a500]
mov dword [edi + 0x30c], eax
inc esi
cmp esi, dword [ecx + 0x15e4]
jl 0x10007848
mov byte [0x1009f6c3], 1
test ecx, ecx
je 0x1000789c
mov esi, edx
cmp dword [ecx + 0x15e4], edx
jle 0x1000789c
mov eax, dword [ecx + 0x15e0]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x10007893
and dword [eax + 0x35c], edx
inc esi
cmp esi, dword [ecx + 0x15e4]
jl 0x10007880
mov eax, dword [0x100c6828]
pop edi
pop esi
test eax, eax
jne 0x100078d2
test ecx, ecx
je 0x10007927
cmp dword [ecx + 0x15e4], edx
jle 0x10007927
mov eax, dword [ecx + 0x15e0]
mov eax, dword [eax + edx*4]
test eax, eax
je 0x100078c7
and dword [eax + 0x308], 0
inc edx
cmp edx, dword [ecx + 0x15e4]
jl 0x100078b3
jmp 0x10007927
cmp eax, 1
jne 0x10007905
test ecx, ecx
je 0x10007927
cmp dword [ecx + 0x15e4], edx
jle 0x10007927
mov eax, dword [ecx + 0x15e0]
mov eax, dword [eax + edx*4]
test eax, eax
je 0x100078fa
mov dword [eax + 0x308], 0x3f800000
inc edx
cmp edx, dword [ecx + 0x15e4]
jl 0x100078e3
jmp 0x10007927
cmp eax, 2
jne 0x10007927
push 1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x10007927
mov eax, dword [ebx + 0x18]
mov eax, dword [eax + 0x10]
mov dword [eax + 0x138], 1
cmp byte [0x100514ac], 0
jne 0x10007954
test ebx, ebx
je 0x1000794d
mov eax, dword [ebx + 0x18]
mov eax, dword [eax + 0x10]
movd xmm0, dword [eax + 0x148]
cvtdq2ps xmm0, xmm0
movss dword [0x100c67dc], xmm0
mov byte [0x100514ac], 1
cmp byte [0x100785bc], 0
mov eax, dword [ebx + 0x18]
pop ebx
mov ecx, dword [eax + 0x10]
je 0x1000796d
or dword [ecx + 0x148], 0xffffffff
leave
ret
cvttss2si eax, dword [0x100c67dc]
mov dword [ecx + 0x148], eax
leave
ret