Function at 0x1002f460
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100c3898
mov eax, dword fs:[0]
push eax
sub esp, 0x70
mov eax, dword [0x100f03c8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov ecx, dword [edi + 0x1c]
lea eax, [ebp - 0x7c]
push eax
call fcn.10021cf0
mov eax, dword [ebp - 0x7c]
add eax, dword [edi + 4]
mov ecx, dword [edi + 0xc]
mov edx, dword [edi + 0x10]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x78]
add eax, dword [edi + 8]
lea esi, [ecx - 0x16]
mov dword [ebp - 0x14], eax
lea eax, [ecx - 8]
movd xmm2, eax
lea eax, [edx + 2]
movd xmm1, eax
lea eax, [ecx + 0x14]
movd xmm3, eax
mov eax, dword [ebp - 0x14]
add eax, 0x1b
mov dword [ebp - 0x28], edx
cvtdq2ps xmm1, xmm1
add eax, edx
cvtdq2ps xmm3, xmm3
movd xmm0, eax
subss xmm3, xmm1
movss dword [ebp - 0x24], xmm1
cvtdq2ps xmm0, xmm0
subss xmm3, dword [0x100e0b94]
cvtdq2ps xmm2, xmm2
addss xmm0, xmm3
movss dword [ebp - 0x18], xmm3
movss dword [ebp - 0x20], xmm2
addss xmm0, dword [0x100e0b64]
cvttss2si eax, xmm0
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x1c]
add eax, 0xffffffed
add eax, ecx
mov ecx, dword [ebp - 0x14]
inc ecx
mov dword [ebp - 0x48], eax
cmp byte [0x10118649], 0
je 0x1002f554
mov edx, dword [0x10119230]
cmp edx, eax
jle 0x1002f554
cmp dword [0x10119234], ecx
jle 0x1002f554
add eax, 0xc
cmp edx, eax
jge 0x1002f554
lea eax, [ecx + 0xc]
cmp dword [0x10119234], eax
jge 0x1002f554
mov byte [edi + 0xb2], 1
cmp byte [edi + 0x6c], 0
je 0x1002f7c9
cvttss2si eax, xmm2
push 1
mov dword [ebp - 0x68], eax
cvttss2si eax, xmm1
mov dword [ebp - 0x70], eax
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, dword [0x10119230]
test ax, ax
je 0x1002f5b1
cmp ecx, dword [ebp - 0x48]
jle 0x1002f5b1
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x48]
inc edx
cmp dword [0x10119234], edx
jle 0x1002f5b1
add eax, dword [ebp - 0x68]
cmp ecx, eax
jge 0x1002f5b1
mov eax, dword [ebp - 0x70]
add eax, edx
cmp dword [0x10119234], eax
jge 0x1002f5b1
mov byte [edi + 0x6c], 1
mov ecx, dword [0x10119230]
cmp byte [edi + 0xb1], 0
je 0x1002f5d0
cmp byte [edi + 0xb0], 0
je 0x1002f5d0
cmp byte [edi + 0xb3], 0
jne 0x1002f731
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x14]
add eax, 2
movd xmm2, ecx
cvtdq2ps xmm2, xmm2
movd xmm1, eax
mov eax, dword [ebp - 0x28]
add eax, 0x11
cvtdq2ps xmm1, xmm1
add eax, edx
movd xmm0, eax
comiss xmm2, xmm1
cvtdq2ps xmm0, xmm0
jbe 0x1002f647
movd xmm3, esi
cvtdq2ps xmm3, xmm3
addss xmm1, xmm3
movss xmm3, dword [ebp - 0x24]
comiss xmm1, xmm2
jbe 0x1002f64c
movd xmm1, dword [0x10119234]
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm0
jbe 0x1002f64c
addss xmm0, xmm3
comiss xmm0, xmm1
jbe 0x1002f64c
mov eax, dword [edi + 0x1c]
mov word [edi + 0xb0], 1
mov byte [edi + 0xb3], 0
mov dword [eax + 0x34], edi
mov ecx, dword [0x10119230]
jmp 0x1002f64c
movss xmm3, dword [ebp - 0x24]
mov eax, dword [edi + 0x10]
movss xmm5, dword [ebp - 0x20]
add eax, 0x10
movss xmm6, dword [ebp - 0x18]
add eax, edx
movd xmm4, ecx
cvtdq2ps xmm4, xmm4
movd xmm0, eax
mov eax, dword [ebp - 0x1c]
add eax, 4
cvtdq2ps xmm0, xmm0
movd xmm2, eax
cvtdq2ps xmm2, xmm2
addss xmm0, xmm3
comiss xmm4, xmm2
addss xmm0, dword [0x100e0b84]
jbe 0x1002f6cd
movaps xmm1, xmm2
addss xmm1, xmm5
comiss xmm1, xmm4
jbe 0x1002f6cd
movd xmm4, dword [0x10119234]
cvtdq2ps xmm4, xmm4
comiss xmm4, xmm0
jbe 0x1002f6cd
addss xmm0, xmm6
comiss xmm0, xmm4
jbe 0x1002f6cd
mov eax, dword [edi + 0x1c]
mov word [edi + 0xb0], pe_nt_image_headers32
mov byte [edi + 0xb3], 0
mov dword [eax + 0x34], edi
mov ecx, dword [0x10119230]
jmp 0x1002f6d4
movaps xmm1, xmm5
addss xmm1, xmm2
mov eax, dword [ebp - 0x2c]
subss xmm3, dword [0x100e0b40]
movd xmm4, ecx
add eax, 0xffffffec
cvtdq2ps xmm4, xmm4
movd xmm0, eax
comiss xmm4, xmm2
cvtdq2ps xmm0, xmm0
jbe 0x1002f739
comiss xmm1, xmm4
jbe 0x1002f739
movd xmm1, dword [0x10119234]
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm0
jbe 0x1002f739
addss xmm0, xmm3
comiss xmm0, xmm1
jbe 0x1002f739
mov eax, dword [edi + 0x1c]
mov word [edi + 0xb0], 0
mov byte [edi + 0xb3], 1
mov dword [eax + 0x34], edi
mov ecx, dword [0x10119230]
jmp 0x1002f739
movss xmm6, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
mov eax, dword [edi + 0xc]
add eax, 0x28
movd xmm4, ecx
cvtdq2ps xmm4, xmm4
movd xmm2, eax
mov eax, dword [edi + 0x10]
add eax, eax
movd xmm0, edx
cvtdq2ps xmm2, xmm2
movd xmm1, eax
mov eax, dword [ebp - 0x1c]
add eax, 0xffffffec
cvtdq2ps xmm1, xmm1
movd xmm3, eax
cvtdq2ps xmm3, xmm3
addss xmm1, xmm6
comiss xmm4, xmm3
addss xmm1, dword [0x100e0bf4]
cvtdq2ps xmm0, xmm0
jbe 0x1002f7a0
addss xmm2, xmm3
comiss xmm2, xmm4
jbe 0x1002f7a0
movd xmm2, dword [0x10119234]
cvtdq2ps xmm2, xmm2
comiss xmm2, xmm0
jbe 0x1002f7a0
addss xmm0, xmm1
comiss xmm0, xmm2
ja 0x1002f7bd
mov eax, dword [edi + 0x64]
mov word [edi + 0xb0], 0
mov byte [edi + 0xb3], 0
mov byte [edi + 0x6c], 0
test eax, eax
je 0x1002f7bd
call eax
mov eax, dword [edi + 0x1c]
cmp dword [eax + 0x34], edi
je 0x1002f7c9
mov byte [edi + 0x6c], 0
cmp byte [edi + 0xb2], 0
je 0x1002f9e7
xor esi, esi
nop dword [eax + eax]
push 4
push str.copy
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
call fcn.1001fe30
lea eax, [ebp - 0x44]
mov dword [ebp - 4], 0
push eax
lea eax, [ebp - 0x74]
mov ecx, 0x1011f66c
push eax
call fcn.10085eb0
mov ecx, dword [eax]
mov eax, dword [edi + 0xc]
inc ecx
imul ecx, esi
add eax, 0xffffffed
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x30]
add ecx, dword [ebp - 0x1c]
add eax, ecx
mov dword [ebp - 0x20], eax
cmp edx, 0x10
jb 0x1002f869
mov ecx, dword [ebp - 0x44]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1002f85f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1002fa14
push edx
push ecx
call fcn.10099e4f
add esp, 8
push 5
push str.paste
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
call fcn.1001fe30
lea eax, [ebp - 0x44]
mov dword [ebp - 4], 1
push eax
lea eax, [ebp - 0x6c]
mov ecx, 0x1011f66c
push eax
call fcn.10085eb0
mov eax, dword [eax]
add eax, 5
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x2c], eax
cmp edx, 0x10
jb 0x1002f8e6
mov ecx, dword [ebp - 0x44]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1002f8dc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1002fa14
push edx
push ecx
call fcn.10099e4f
add esp, 8
push 4
push str.copy
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0xf
mov byte [ebp - 0x64], 0
call fcn.1001fe30
lea eax, [ebp - 0x64]
mov dword [ebp - 4], 2
push eax
lea eax, [ebp - 0x4c]
mov ecx, 0x1011f66c
push eax
call fcn.10085eb0
mov eax, dword [eax]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0x28], eax
cmp edx, 0x10
jb 0x1002f960
mov ecx, dword [ebp - 0x64]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1002f956
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1002fa14
push edx
push ecx
call fcn.10099e4f
add esp, 8
mov edx, dword [0x10119230]
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0xf
mov byte [ebp - 0x64], 0
cmp edx, dword [ebp - 0x20]
jle 0x1002f9d7
mov eax, dword [ebp - 0x14]
add eax, 2
cmp dword [0x10119234], eax
jle 0x1002f9d7
mov eax, dword [ebp - 0x2c]
add eax, dword [ebp - 0x20]
cmp edx, eax
jge 0x1002f9d7
mov eax, dword [ebp - 0x14]
add eax, 2
add eax, dword [ebp - 0x28]
cmp dword [0x10119234], eax
jge 0x1002f9d7
cmp byte [0x1011863d], 0
je 0x1002f9d7
test esi, esi
jne 0x1002f9c0
mov eax, dword [edi + 0x88]
mov dword [0x1011b2a8], eax
jmp 0x1002f9d0
cmp esi, 1
jne 0x1002f9d0
mov eax, dword [0x1011b2a8]
mov dword [edi + 0x88], eax
mov byte [edi + 0xb2], 0
inc esi
cmp esi, 2
jl 0x1002f7e0
mov eax, dword [edi + 0x1c]
mov dword [eax + 0x34], edi
mov ecx, dword [edi + 0xa0]
test ecx, ecx
je 0x1002f9f9
mov eax, dword [edi + 0x88]
mov dword [ecx], eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1009999a
mov esp, ebp
pop ebp
ret
call fcn.100a1274
int3