Function at 0x10afd87
Capabilities:
Log keystrokes via polling

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xd8
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, ecx
mov ecx, dword [ebp + 8]
mov eax, 0x101
cmp ecx, eax
push edi
mov edi, dword [ebp + 0x10]
ja 0x10b006d
je 0x10b0038
mov eax, ecx
sub eax, 5
je 0x10b0001
sub eax, 0x1f
je 0x10affa3
sub eax, 0x57
je 0x10aff81
sub eax, 7
je 0x10aff3c
dec eax
dec eax
je 0x10aff0b
sub eax, 0x7c
jne 0x10affed
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
call edi
push 0
pop ebx
and eax, 0x8000
jne 0x10afe04
mov dword [esi + 0x2f60], ebx
cmp dword [ebp + 0xc], 0xd
jne 0x10affed
cmp eax, ebx
jne 0x10affed
push 0x10
call edi
test ah, ah
jns 0x10afe3d
cmp dword [esi + 0x2dcc], ebx
mov eax, 0x1018ffc
jne 0x10afe30
mov eax, 0x1018ff8
push eax
push 1
push 0xc2
jmp 0x10b01f1
mov dword [esi + 0x2dac], ebx
mov dword [esi + 0x2db0], ebx
mov dword [esi + 0x2db4], 1
mov dword [ebp + 0xc], ebx
mov dword [ebp + 0x10], ebx
call fcn.010980e8
mov ecx, eax
cmp ecx, ebx
mov dword [ebp + 8], ecx
je 0x10afec2
mov di, word [esi + 0x2e92]
lea eax, [esi + 0x2e88]
push eax
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp + 0x10]
push eax
push dword [esi + 0x2dcc]
push dword [esi + 0x2618]
call fcn.01096e32
test eax, eax
jl 0x10afeb9
cmp di, word [esi + 0x2e92]
je 0x10afea2
mov ecx, esi
call fcn.010a0298
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
jle 0x10afeb9
push dword [ebp + 0x10]
mov ecx, esi
call fcn.010afb63
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
push 0xffffffffffffffff
push ebx
push 0xb1
push dword [esi + 0x2618]
call edi
push ebx
push ebx
push 0x303
push dword [esi + 0x2618]
call edi
push ebx
push ebx
push 0xcd
push dword [esi + 0x2618]
call edi
mov ecx, esi
call fcn.010a7660
push dword [ebp + 0x10]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
pop ecx
jmp 0x10b0320
movsx eax, di
mov dword [ebp - 8], eax
shr edi, 0x10
movsx eax, di
mov dword [ebp - 4], eax
lea eax, [ebp - 8]
push eax
push dword [esi + 0x2618]
call dword [sym.imp.USER32.dll_ScreenToClient]
cmp dword [ebp - 4], 3
jge 0x10affed
push 0xc
pop eax
jmp 0x10b0430
xor ebx, ebx
push ebx
push 0xffffffffffffffeb
push dword [esi + 0x2618]
call dword [sym.imp.USER32.dll_SetWindowLongW]
lea edi, [esi + 0x2b20]
push dword [edi]
push 0xfffffffffffffffc
push dword [esi + 0x2618]
call dword [sym.imp.USER32.dll_SetWindowLongW]
push dword [ebp + 0x10]
mov dword [edi], ebx
push dword [ebp + 0xc]
push 0x82
push dword [esi + 0x2618]
call dword [sym.imp.USER32.dll_DefWindowProcW]
jmp 0x10b0430
mov eax, dword [ebp + 0x10]
movsx ecx, ax
shr eax, 0x10
movsx eax, ax
mov dword [ebp - 4], eax
lea eax, [ebp - 8]
mov dword [ebp - 8], ecx
push eax
mov ecx, esi
call fcn.010a99db
jmp 0x10b0320
lea eax, [ebp - 0x10]
push eax
push dword [esi + 0x2614]
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [esi + 0x2b28]
shl eax, 1
cdq
push 8
pop ecx
idiv ecx
mov ecx, dword [0x11142a8]
add ecx, eax
mov eax, dword [ebp - 4]
sub eax, dword [ebp - 0xc]
mov dword [edi + 0x1c], ecx
sub eax, dword [0x11142a0]
sub eax, dword [0x11142a4]
sub eax, dword [0x11142ac]
cmp ecx, eax
jle 0x10affea
mov eax, ecx
mov dword [edi + 0x24], eax
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [esi + 0x2618]
jmp 0x10b0424
lea eax, [ebp - 0x10]
push eax
push dword [esi + 0x2618]
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [ebp - 4]
sub eax, dword [ebp - 0xc]
lea ecx, [esi + 0x2f98]
cmp eax, dword [ecx]
je 0x10affed
add eax, 0xfffffffb
mov dword [ecx], eax
add eax, 0xfffffffb
mov ecx, esi
mov dword [esi + 0x2c90], eax
call fcn.010a6edd
jmp 0x10affed
cmp dword [esi + 0x2f60], 0
jne 0x10b0061
mov eax, dword [esi + 0x2618]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x1c]
push eax
mov dword [ebp - 0x18], 0x100
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x10], edi
call dword [sym.imp.USER32.dll_TranslateMessage]
mov dword [esi + 0x2f60], 1
jmp 0x10affed
mov eax, ecx
mov edi, 0x102
sub eax, edi
je 0x10b0354
sub eax, 4
je 0x10b0310
sub eax, 0xb
je 0x10b01c6
sub eax, 0xf4
je 0x10b0176
sub eax, 0xfd
jne 0x10affed
push dword [ebp + 0x10]
xor ebx, ebx
cmp byte [esi + 0x3008], bl
push dword [ebp + 0xc]
push 0x302
je 0x10b00ca
push dword [esi + 0x2fe4]
push dword [esi + 0x2fec]
jmp 0x10b042a
push dword [esi + 0x2618]
push dword [esi + 0x2b20]
call dword [sym.imp.USER32.dll_CallWindowProcW]
cmp eax, ebx
mov dword [ebp + 0x10], eax
je 0x10b016e
cmp dword [esi + 0x2dcc], ebx
je 0x10b016e
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
lea eax, [ebp - 8]
push eax
push ebx
push 0x434
push dword [esi + 0x2618]
call edi
push 0xffffffffffffffff
push ebx
push 0xb1
push dword [esi + 0x2618]
call edi
lea eax, [ebp - 0xb8]
push eax
push ebx
push 0x447
push dword [esi + 0x2618]
mov dword [ebp - 0xb4], 1
mov dword [ebp - 0xac], ebx
mov dword [ebp - 0xb8], 0x9c
call edi
lea eax, [ebp - 8]
push eax
push ebx
push 0x437
push dword [esi + 0x2618]
call edi
lea eax, [esi + 0x2dd0]
push eax
push 4
push 0x444
push dword [esi + 0x2618]
call edi
mov eax, dword [ebp + 0x10]
jmp 0x10b0430
xor ebx, ebx
cmp dword [esi + 0x2dcc], ebx
jne 0x10b0188
cmp dword [esi + 0x2ff8], ebx
je 0x10b01b6
movsx eax, word [ebp + 0x10]
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0x10]
shr eax, 0x10
movsx eax, ax
mov dword [ebp - 4], eax
lea eax, [ebp - 8]
push eax
push dword [esi + 0x2618]
call dword [sym.imp.USER32.dll_ClientToScreen]
lea eax, [ebp - 8]
push eax
mov ecx, esi
call fcn.010a99db
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push 0x205
jmp 0x10afff6
movzx ecx, word [ebp + 0xc]
mov eax, 0xa016
cmp ecx, eax
jg 0x10b022e
je 0x10b0223
sub ecx, 0xa00e
je 0x10b0218
dec ecx
je 0x10b020d
dec ecx
je 0x10b0202
sub ecx, 5
jne 0x10b0244
xor ebx, ebx
push ebx
push ebx
push 0x304
push dword [esi + 0x2618]
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x10b0320
xor ebx, ebx
push ebx
push ebx
push 0x302
jmp 0x10b01f1
xor ebx, ebx
push ebx
push ebx
push 0x301
jmp 0x10b01f1
xor ebx, ebx
push ebx
push ebx
push 0x300
jmp 0x10b01f1
push 0xffffffffffffffff
push 0
push 0xb1
jmp 0x10b01f1
sub ecx, 0xa019
je 0x10b0302
sub ecx, 3
je 0x10b0268
sub ecx, 0x37
je 0x10b0254
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push 0x111
jmp 0x10afff6
push 0
push 0xa053
push 0x111
push dword [esi + 0x2614]
jmp 0x10b01f7
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
lea eax, [ebp - 0xd8]
push eax
xor ebx, ebx
push ebx
push 0x43d
push dword [esi + 0x2618]
mov dword [ebp - 0xd8], 0xbc
mov dword [ebp - 0xd4], 0x10000
call edi
xor eax, eax
mov al, byte [ebp - 0xce]
not al
mov dword [ebp - 0xd4], 0x10000
and eax, 1
mov word [ebp - 0xce], ax
lea eax, [ebp - 8]
push eax
push ebx
push 0x434
push dword [esi + 0x2618]
call edi
push 0xffffffffffffffff
push ebx
push 0xb1
push dword [esi + 0x2618]
call edi
lea eax, [ebp - 0xd8]
push eax
push ebx
push 0x447
push dword [esi + 0x2618]
call edi
lea eax, [ebp - 8]
push eax
push ebx
push 0x437
push dword [esi + 0x2618]
call edi
jmp 0x10b0320
xor ebx, ebx
push ebx
push ebx
push 0x303
jmp 0x10b01f1
push ebx
lea ecx, [esi + 0x292c]
call fcn.010b2cfd
test eax, eax
je 0x10b0327
xor eax, eax
jmp 0x10b0430
push dword [esi + 0x2618]
call dword [sym.imp.USER32.dll_GetParent]
cmp dword [esi + 0x2614], eax
je 0x10affed
push dword [ebp + 0x10]
push ebx
push 0x106
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x10b0430
cmp dword [ebp + 0xc], 9
mov dword [esi + 0x2f60], 1
jne 0x10b0384
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, ah
js 0x10b0384
push dword [ebp + 0x10]
push 9
push edi
push dword [esi + 0x2618]
call dword [sym.imp.USER32.dll_GetParent]
jmp 0x10b0348
xor ebx, ebx
cmp byte [esi + 0x3008], bl
je 0x10b03a6
cmp dword [ebp + 0xc], 0xd
jne 0x10b03a6
mov ecx, esi
call fcn.010a757f
test al, al
je 0x10b03a6
mov ecx, esi
call fcn.010aee67
push dword [esi + 0x2618]
mov edi, dword [sym.imp.USER32.dll_IsWindowEnabled]
call edi
test eax, eax
jne 0x10b03c8
push dword [esi + 0x2fe4]
call edi
test eax, eax
je 0x10b0320
mov edi, dword [ebp + 0xc]
cmp edi, 1
jne 0x10b03f6
cmp byte [esi + 0x3008], bl
push 0xffffffffffffffff
push ebx
push 0xb1
je 0x10b03eb
push dword [esi + 0x2fe4]
jmp 0x10b01f7
push dword [esi + 0x2618]
jmp 0x10b01f7
cmp edi, 0xd
jne 0x10b040c
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, ah
js 0x10b0415
jmp 0x10b0320
cmp edi, 0x1b
je 0x10b0320
push dword [ebp + 0x10]
push edi
push 0x102
push dword [esi + 0x2618]
push dword [esi + 0x2b20]
call dword [sym.imp.USER32.dll_CallWindowProcW]
pop edi
pop esi
pop ebx
leave
ret 0xc