Function at 0x10002660
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [0x1001000c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [0x1001085c]
push edi
mov edi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x48
call edi
test al, 1
je 0x10002698
cmp byte [0x10010038], 0
sete al
mov byte [0x10010038], al
jmp 0x1000269d
mov al, byte [0x10010038]
test al, al
je 0x10002b72
mov eax, dword [esi]
push 0
push 7
push esi
call dword [eax + 0xe4]
xor eax, eax
cmp byte [eax + 0x100108e0], 0
je 0x100026c6
cmp eax, 2
jne 0x100027a1
add eax, 2
cmp eax, 0x10
jl 0x100026b4
lea eax, [ebp - 0xc]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
lea eax, [ebp - 0xc]
push eax
call dword [sym.imp.USER32.dll_GetForegroundWindow]
push eax
call dword [sym.imp.USER32.dll_ScreenToClient]
push 1
call edi
test ax, ax
jns 0x10002763
mov ecx, dword [ebp - 0xc]
mov ebx, dword [0x10010048]
mov edx, dword [ebp - 8]
cmp ecx, ebx
jbe 0x10002724
lea eax, [ebx + 0x190]
cmp ecx, eax
jae 0x10002724
mov eax, dword [0x10010028]
add eax, 0xffffffe9
cmp edx, eax
jbe 0x10002724
mov eax, dword [0x10010028]
add eax, 0xc
cmp edx, eax
jb 0x1000272d
cmp byte [0x100108e2], 0
je 0x1000275a
cmp byte [0x100108e3], 0
mov byte [0x100108e2], 1
jne 0x10002763
sub ecx, ebx
mov byte [0x100108e3], 1
sub edx, dword [0x10010028]
mov dword [0x10010824], ecx
mov dword [0x10010828], edx
jmp 0x10002763
mov word [0x100108e2], 0
push 1
call edi
test ax, ax
jne 0x1000277c
cmp byte [0x100108e2], al
je 0x100027a1
mov word [0x100108e2], ax
jmp 0x100027a1
cmp byte [0x100108e2], 0
je 0x100027a1
mov eax, dword [ebp - 0xc]
sub eax, dword [0x10010824]
mov dword [0x10010048], eax
mov eax, dword [ebp - 8]
sub eax, dword [0x10010828]
mov dword [0x10010028], eax
mov eax, dword [0x10010028]
mov edx, 0xff232323
add eax, 9
movss xmm3, dword [0x1000d510]
push ecx
mov dword [esp], 0x43480000
mov ecx, esi
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1000d6a0]
mov eax, dword [0x10010048]
cvtpd2ps xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1000d6a0]
cvtpd2ps xmm1, xmm0
call fcn.10001a50
mov eax, dword [0x10010028]
mov edx, 0xff383838
add eax, 0xffffffe8
movss xmm3, dword [0x1000d510]
mov dword [esp], 0x420c0000
mov ecx, esi
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1000d6a0]
mov eax, dword [0x10010048]
cvtpd2ps xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1000d6a0]
cvtpd2ps xmm1, xmm0
call fcn.10001a50
mov edx, dword [0x10010028]
add esp, 4
mov ecx, dword [0x10010048]
push esi
push 0xff383838
push 7
push 0xeb
push 0x15e
lea edx, [edx - 0x18]
call fcn.100016b0
mov eax, dword [0x10010028]
add esp, 0x14
add eax, 0xfffffff1
push 0x1000c388
push 0xffff0000
push eax
mov eax, dword [0x10010048]
add eax, 0x8a
push eax
call fcn.10002010
add esp, 0x10
cmp dword [0x10010034], 0
je 0x100028be
mov byte [0x1001068c], 1
mov dword [0x10010034], 0
mov edx, dword [0x10010028]
mov ecx, dword [0x10010048]
push esi
sub esp, 0x10
lea edx, [edx - 0x17]
lea ecx, [ecx + 0x12f]
call fcn.100020d0
mov edx, dword [0x10010028]
add esp, 0x14
mov ecx, dword [0x10010048]
push esi
push 0x1000c398
push 0x10010694
lea edx, [edx + 0x1a]
lea ecx, [ecx + 0xf]
call fcn.10002220
mov edx, dword [0x10010028]
add esp, 0xc
mov ecx, dword [0x10010048]
push esi
push 0x1000c3ac
push 0x1001069c
lea edx, [edx + 0x29]
lea ecx, [ecx + 0xf]
call fcn.10002220
mov edx, dword [0x10010028]
add esp, 0xc
mov ecx, dword [0x10010048]
push esi
push 0x1000c3b8
push 0x10010730
lea edx, [edx + 0x47]
lea ecx, [ecx + 0xf]
call fcn.10002220
mov edx, dword [0x10010028]
add esp, 0xc
mov ecx, dword [0x10010048]
push esi
push 0x1000c3c8
push 0x10010734
lea edx, [edx + 0x56]
lea ecx, [ecx + 0xf]
call fcn.10002220
mov edx, dword [0x10010028]
add esp, 0xc
mov ecx, dword [0x10010048]
push esi
push 0x1000c3d8
push 0x10010738
lea edx, [edx + 0x65]
lea ecx, [ecx + 0xf]
call fcn.10002220
mov edx, dword [0x10010028]
add esp, 0xc
mov ecx, dword [0x10010048]
push esi
push 0x1000c3e4
push 0x1001073c
lea edx, [edx + 0x74]
lea ecx, [ecx + 0xf]
call fcn.10002220
mov edx, dword [0x10010028]
add esp, 0xc
mov ecx, dword [0x10010048]
push esi
push 0x1000c3f4
push 0x10010708
lea edx, [edx + 0x92]
lea ecx, [ecx + 0xf]
call fcn.10002220
mov edx, dword [0x10010028]
add esp, 0xc
mov ecx, dword [0x10010048]
push esi
push 0x1000c400
push 0x100106b8
lea edx, [edx + 0x1a]
lea ecx, [ecx + 0x8d]
call fcn.10002220
add esp, 0xc
push esi
mov edx, dword [0x10010028]
mov ecx, dword [0x10010048]
push 0x1000c40c
push 0x100106bc
lea edx, [edx + 0x29]
lea ecx, [ecx + 0x8d]
call fcn.10002220
mov edx, dword [0x10010028]
add esp, 0xc
mov ecx, dword [0x10010048]
push esi
push 0x1000c420
push 0x100106c0
lea edx, [edx + 0x38]
lea ecx, [ecx + 0x8d]
call fcn.10002220
mov edx, dword [0x10010028]
add esp, 0xc
mov ecx, dword [0x10010048]
push esi
push 0x1000c434
push 0x100106c4
lea edx, [edx + 0x47]
lea ecx, [ecx + 0x8d]
call fcn.10002220
mov edx, dword [0x10010028]
add esp, 0xc
mov ecx, dword [0x10010048]
push esi
push 0x1000c444
push 0x100106e0
lea edx, [edx + 0x65]
lea ecx, [ecx + 0x8d]
call fcn.10002220
mov edx, dword [0x10010028]
add esp, 0xc
mov ecx, dword [0x10010048]
push esi
push 0x1000c450
push 0x100106e4
lea edx, [edx + 0x74]
lea ecx, [ecx + 0x8d]
call fcn.10002220
mov edx, dword [0x10010028]
add esp, 0xc
mov ecx, dword [0x10010048]
push esi
push 0x1001003c
push 0x100106e8
push 2
push 0x1000c464
lea edx, [edx + 0x92]
lea ecx, [ecx + 0x8d]
call fcn.100023b0
mov edx, dword [0x10010028]
add esp, 0x14
mov ecx, dword [0x10010048]
push esi
push 0x1001002c
push 0x10010a0c
push 1
push 0x1000c474
lea edx, [edx + 0xa1]
lea ecx, [ecx + 0x8d]
call fcn.100023b0
mov edx, dword [0x10010028]
add esp, 0x14
mov ecx, dword [0x10010048]
push esi
push 0x1001004c
push 0x100106f0
push 1
push 0x1000c484
lea edx, [edx + 0xb0]
lea ecx, [ecx + 0x8d]
call fcn.100023b0
add esp, 0x14
mov edx, esi
call fcn.10001cb0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10009c39
mov esp, ebp
pop ebp
ret