Function at 0x10b4aac0
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x20
push ebx
push ebp
push esi
push edi
mov esi, ecx
call fcn.10b49b00
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
lea edx, [esp + 0x20]
mov dword [esp + 0x24], ecx
push edx
mov ecx, esi
mov dword [esi + 0x38], 0
mov dword [esp + 0x24], eax
call fcn.10b48820
mov ebx, dword [sym.imp.USER32.dll_GetKeyState]
push 0x10
call ebx
mov di, ax
push 0x11
sar edi, 0xf
and edi, 1
call ebx
mov ebx, dword [esi]
mov bp, ax
sar ebp, 0xf
and ebp, 1
call dword [sym.imp.USER32.dll_GetFocus]
cmp eax, ebx
je 0x10b4ab2e
push ebx
call dword [sym.imp.USER32.dll_SetFocus]
mov ebx, 1
mov dword [esi + 0x38], ebx
jmp 0x10b4ab33
mov ebx, 1
mov cl, byte [esp + 0x28]
test cl, 0xe
je 0x10b4ad78
mov eax, dword [esp + 0x2c]
or edx, 0xffffffff
cmp eax, edx
je 0x10b4ad78
test edi, edi
mov cl, 4
je 0x10b4ad07
test byte [esi + 4], cl
jne 0x10b4ad07
cmp dword [esi + 0xcc], edx
jne 0x10b4ab80
mov ecx, dword [esi + 0xc8]
cmp ecx, edx
mov dword [esi + 0xcc], ecx
jne 0x10b4ab80
mov dword [esi + 0xcc], eax
push ebx
push ebx
push eax
mov ecx, esi
call fcn.10b46d70
mov eax, dword [esi + 4]
and eax, 3
cmp eax, ebx
je 0x10b4ac9b
cmp eax, 3
je 0x10b4ac9b
mov eax, dword [esp + 0x2c]
mov ecx, dword [esi + 0xd4]
mov ebp, dword [sym.imp.USER32.dll_UnionRect]
lea edx, [eax + eax*2]
shl edx, 3
sub edx, eax
mov eax, dword [esi + 0xcc]
lea edi, [eax + eax*2]
lea edx, [ecx + edx*4]
shl edi, 3
sub edi, eax
lea eax, [edx + 0x3c]
add edx, 0x2c
push eax
lea edi, [ecx + edi*4]
lea ecx, [esp + 0x14]
push edx
push ecx
call ebp
lea edx, [edi + 0x2c]
lea eax, [esp + 0x10]
push edx
lea ecx, [esp + 0x14]
push eax
push ecx
call ebp
add edi, 0x3c
lea edx, [esp + 0x10]
push edi
lea eax, [esp + 0x14]
push edx
push eax
call ebp
mov eax, dword [esi + 0xd8]
xor edi, edi
test eax, eax
jle 0x10b4ad19
xor ebp, ebp
mov ebx, 2
mov ecx, dword [esi + 0xd4]
mov eax, ebp
add eax, ecx
mov ecx, dword [esp + 0x1c]
cmp dword [eax + 0x30], ecx
jge 0x10b4ac41
mov edx, dword [eax + 0x38]
cmp edx, dword [esp + 0x14]
jle 0x10b4ac41
mov edx, dword [eax + 0x2c]
cmp edx, dword [esp + 0x18]
jge 0x10b4ac41
mov edx, dword [eax + 0x34]
cmp edx, dword [esp + 0x10]
jg 0x10b4ac67
cmp dword [eax + 0x40], ecx
jge 0x10b4ac70
mov ecx, dword [esp + 0x14]
mov edx, dword [eax + 0x48]
cmp edx, ecx
jle 0x10b4ac70
mov edx, dword [esp + 0x18]
mov ecx, dword [eax + 0x3c]
cmp ecx, edx
jge 0x10b4ac70
mov ecx, dword [esp + 0x10]
mov edx, dword [eax + 0x44]
cmp edx, ecx
jle 0x10b4ac70
test byte [eax + 0xc], bl
jne 0x10b4ac80
push ebx
push ebx
jmp 0x10b4ac78
test byte [eax + 0xc], bl
je 0x10b4ac80
push ebx
push 0
push edi
mov ecx, esi
call fcn.10b46d70
mov eax, dword [esi + 0xd8]
inc edi
add ebp, 0x5c
cmp edi, eax
jl 0x10b4ac13
mov ebx, 1
mov dword [esi + 0x38], ebx
jmp 0x10b4ad5c
mov eax, dword [esi + 0xd8]
xor edi, edi
test eax, eax
jle 0x10b4ad19
xor ebp, ebp
mov ebx, 2
mov ecx, dword [esi + 0xd4]
mov eax, ebp
add eax, ecx
mov ecx, dword [esi + 0xcc]
cmp ecx, edi
jg 0x10b4acca
cmp edi, dword [esi + 0xc8]
jle 0x10b4acd6
cmp dword [esi + 0xc8], edi
jg 0x10b4acdf
cmp edi, ecx
jg 0x10b4acdf
test byte [eax + 0xc], bl
jne 0x10b4acef
push ebx
push ebx
jmp 0x10b4ace7
test byte [eax + 0xc], bl
je 0x10b4acef
push ebx
push 0
push edi
mov ecx, esi
call fcn.10b46d70
mov eax, dword [esi + 0xd8]
inc edi
add ebp, 0x5c
cmp edi, eax
jl 0x10b4acae
mov ebx, 1
mov dword [esi + 0x38], ebx
jmp 0x10b4ad5c
test ebp, ebp
je 0x10b4ad1e
test byte [esi + 4], cl
jne 0x10b4ad1e
mov dword [esi + 0xcc], edx
mov dword [esi + 0x54], ebx
mov dword [esi + 0x38], ebx
jmp 0x10b4ad5c
mov ecx, dword [esi + 0xc8]
mov dword [esi + 0xcc], edx
cmp eax, ecx
je 0x10b4ad31
mov dword [esi + 0x38], ebx
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x10b4ad45
push eax
mov ecx, esi
call fcn.10b474c0
test eax, eax
jne 0x10b4ad4c
mov ecx, esi
call fcn.10b47470
mov edx, dword [esp + 0x2c]
push 3
push 3
push edx
mov ecx, esi
call fcn.10b46d70
mov eax, dword [esi]
push eax
call dword [sym.imp.USER32.dll_SetCapture]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [esi + 0x50], ebx
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x40], edx
jmp 0x10b4adaf
test cl, 1
je 0x10b4adaf
test byte [esi + 4], 4
jne 0x10b4adaf
mov ecx, esi
call fcn.10b47470
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
push ecx
push eax
push ecx
push eax
lea eax, [esi + 0x3c]
push eax
call dword [sym.imp.USER32.dll_SetRect]
mov ecx, dword [esi]
push ecx
call dword [sym.imp.USER32.dll_SetCapture]
mov dword [esi + 0x4c], ebx
mov dword [esi + 0x38], ebx
mov eax, dword [esp + 0x40]
test eax, eax
je 0x10b4adca
push 0xfffffffffffffffb
mov ecx, esi
call fcn.10b46ce0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0x10
push 0xfffffffffffffffe
mov ecx, esi
call fcn.10b46ce0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0x10