Function at 0x10086d00
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc4
mov eax, dword [0x100bc018]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [0x108f2a28]
push 7
mov eax, 0x861110
call eax
mov edx, 0x85ec20
mov ecx, eax
call edx
test al, al
jne 0x100870b9
push 8
mov eax, 0x861110
call eax
mov edx, 0x85ec20
mov ecx, eax
call edx
test al, al
jne 0x100870b9
push 0xc
mov eax, 0x861110
call eax
mov edx, 0x85ec20
mov ecx, eax
call edx
test al, al
jne 0x100870b9
push 0xe
mov eax, 0x861110
call eax
mov edx, 0x85ec20
mov ecx, eax
call edx
test al, al
jne 0x100870b9
push 0xf
mov eax, 0x861110
call eax
mov edx, 0x85ec20
mov ecx, eax
call edx
test al, al
jne 0x100870b9
push 0x41
mov eax, 0x861110
call eax
mov edx, 0x85ec20
mov ecx, eax
call edx
test al, al
jne 0x100870b9
push 0x4e
mov eax, 0x861110
call eax
mov edx, 0x85ec20
mov ecx, eax
call edx
test al, al
jne 0x100870b9
push ebx
push edi
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 2
call edi
mov ecx, 0x8000
test cx, ax
je 0x10086eaa
push 0x11
call edi
mov edx, 0x8000
test dx, ax
je 0x10086eaa
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [0x108f2858]
add ecx, 0xbb8
cmp eax, ecx
jbe 0x100870b7
xor ebx, ebx
push 0xb3
lea edx, [ebp - 0xb7]
push ebx
push edx
mov byte [ebp - 0xb8], bl
call sub.MSVCR100.dll_memset
mov eax, dword [0x7e452a]
push eax
lea ecx, [ebp - 0xab]
push 0x3c
push ecx
call dword [sym.imp.MSVCR100.dll_strcpy_s]
mov edx, dword [0x8128ac4]
mov edi, dword [sym.imp.MSVCR100.dll_memcpy_s]
push 0xa
push edx
lea eax, [ebp - 0xb5]
push 0xa
push eax
call edi
push 0x6b
push esi
lea ecx, [ebp - 0x6f]
push 0x6b
push ecx
call edi
lea edx, [ebp - 0xb8]
mov ecx, 0xb4
push edx
mov word [ebp - 0xb8], 0xb4c1
mov byte [ebp - 0xb6], 0x78
call fcn.1008c360
add esp, 0x3c
call dword [sym.imp.KERNEL32.dll_GetTickCount]
pop edi
pop ebx
mov dword [0x108f2858], eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100ab6d6
mov esp, ebp
pop ebp
ret
push 2
call edi
mov ecx, 0x8000
test cx, ax
je 0x100870b7
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
mov edx, dword [0x108f286c]
add edx, 0x12c
cmp eax, edx
jb 0x100870b7
xor ebx, ebx
cmp word [esi], bx
jl 0x100870b7
xor eax, eax
mov dword [ebp - 0xbf], eax
mov word [ebp - 0xbb], ax
mov byte [ebp - 0xb9], al
push 9
mov eax, 0x861110
mov dword [ebp - 0xc0], 0x17908c1
call eax
mov edx, 0x85ec20
mov ecx, eax
call edx
test al, al
je 0x10086fda
push 0xd
mov eax, 0x861110
call eax
mov edx, 0x85ec20
mov ecx, eax
call edx
test al, al
je 0x10086fda
cmp dword [0x879340c], 0x1cc
jle 0x10086f5e
mov al, byte [esi + 0x44]
add al, al
add al, al
add al, al
add al, byte [esi + 0x43]
mov word [ebp - 0xbc], 0x300
add al, 0xc
jmp 0x10087090
push 0x4d
mov ecx, 0x861110
call ecx
mov edx, 0x85ec20
mov ecx, eax
call edx
test al, al
je 0x10086fc0
cmp dword [0x879340c], 0x104
jle 0x10086fc0
mov al, byte [esi + 0x44]
add al, al
add al, al
add al, al
add al, byte [esi + 0x43]
mov word [ebp - 0xbc], 0x300
add al, 0x4c
cmp dword [0x8793410], 0x82
mov byte [ebp - 0xb9], bl
mov byte [ebp - 0xba], al
jle 0x1008709c
add al, 0x20
mov byte [ebp - 0xba], al
jmp 0x1008709c
mov al, byte [esi + 0x44]
add al, al
add al, al
add al, al
add al, byte [esi + 0x43]
mov word [ebp - 0xbc], 3
jmp 0x10087090
fldz
push 0x10
mov ecx, 0x861110
fstp dword [ebp - 0xc4]
call ecx
mov edx, 0x85ec20
mov ecx, eax
call edx
test al, al
je 0x10087004
fld dword [0xd24e88]
fstp dword [ebp - 0xc4]
fild dword [0x879340c]
fld dword [ebp - 0xc4]
fsubr qword [0x100b79a0]
fcompp
fnstsw ax
test ah, 5
jp 0x10087036
mov al, byte [esi + 0x44]
add al, al
add al, al
add al, al
add al, byte [esi + 0x43]
mov word [ebp - 0xbc], bx
add al, 0xc
jmp 0x10087090
push 0x4d
mov ecx, 0x861110
call ecx
mov edx, 0x85ec20
mov ecx, eax
call edx
test al, al
je 0x10087096
fild dword [0x879340c]
fld dword [ebp - 0xc4]
fsubr qword [0x100b7998]
fcompp
fnstsw ax
test ah, 5
jp 0x10087096
mov al, byte [esi + 0x44]
add al, al
add al, al
add al, al
add al, byte [esi + 0x43]
mov word [ebp - 0xbc], bx
add al, 0x4c
cmp dword [0x8793410], 0x82
mov byte [ebp - 0xba], al
jle 0x10087096
add al, 0x20
mov byte [ebp - 0xba], al
mov byte [ebp - 0xb9], bl
lea eax, [ebp - 0xc0]
push eax
mov ecx, 8
call fcn.1008c360
add esp, 4
call edi
mov dword [0x108f286c], eax
pop edi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.100ab6d6
mov esp, ebp
pop ebp
ret