Function at 0x10b4a260
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x2c
add eax, 0xfffffff3
push ebx
push ebp
push esi
mov esi, ecx
push edi
cmp eax, 0x1b
mov edi, dword [esi + 0xc8]
ja case.0x10b4a287.23
xor ecx, ecx
mov cl, byte [eax + 0x10b4aa74]
jmp dword [ecx*4 + 0x10b4aa48]
push 0xfffffffffffffffc
mov ecx, esi
call fcn.10b46ce0
jmp case.0x10b4a287.23
push 0x100
push edi
mov ecx, esi
call fcn.10b48480
mov edi, eax
jmp case.0x10b4a287.23
push 0x200
push edi
mov ecx, esi
call fcn.10b48480
mov edi, eax
jmp case.0x10b4a287.23
push 0x400
push edi
mov ecx, esi
call fcn.10b48480
mov edi, eax
jmp case.0x10b4a287.23
push 0x800
push edi
mov ecx, esi
call fcn.10b48480
mov edi, eax
jmp case.0x10b4a287.23
cmp edi, 0xffffffff
mov eax, edi
je 0x10b4a307
push 0x400
push eax
mov ecx, esi
mov edi, eax
call fcn.10b48480
cmp eax, 0xffffffff
jne 0x10b4a2f3
cmp edi, 0xffffffff
mov eax, edi
je case.0x10b4a287.23
push 0x100
push eax
mov ecx, esi
mov edi, eax
call fcn.10b48480
cmp eax, 0xffffffff
jne 0x10b4a312
jmp case.0x10b4a287.23
cmp edi, 0xffffffff
mov eax, edi
je 0x10b4a346
push 0x800
push eax
mov ecx, esi
mov edi, eax
call fcn.10b48480
cmp eax, 0xffffffff
jne 0x10b4a332
cmp edi, 0xffffffff
mov eax, edi
je case.0x10b4a287.23
push 0x200
push eax
mov ecx, esi
mov edi, eax
call fcn.10b48480
cmp eax, 0xffffffff
jne 0x10b4a351
jmp case.0x10b4a287.23
mov eax, dword [esi + 0xd4]
lea edx, [edi + edi*2]
shl edx, 3
sub edx, edi
push 0x100
push edi
lea ecx, [eax + edx*4]
mov dword [esp + 0x18], ecx
mov ecx, esi
call fcn.10b48480
mov edi, eax
cmp edi, 0xffffffff
je case.0x10b4a287.23
mov eax, dword [esi + 0xd4]
lea edx, [edi + edi*2]
shl edx, 3
mov ecx, dword [esi + 0xac]
sub edx, edi
mov ebx, dword [eax + edx*4 + 0x2c]
lea eax, [eax + edx*4]
mov edx, dword [esi + 0x9c]
sub ebx, ecx
cmp ebx, edx
jl 0x10b4a51a
mov ebx, dword [eax + 0x34]
mov edx, dword [esi + 0xa4]
sub ebx, ecx
cmp ebx, edx
jg 0x10b4a51a
mov edx, dword [esi + 0xb0]
mov ebp, dword [eax + 0x30]
mov ebx, dword [esi + 0xa0]
sub ebp, edx
cmp ebp, ebx
jl 0x10b4a51a
mov ebp, dword [eax + 0x38]
mov ebx, dword [esi + 0xa8]
sub ebp, edx
cmp ebp, ebx
jg 0x10b4a51a
mov ebx, dword [eax + 0x3c]
mov ebp, dword [esi + 0x9c]
sub ebx, ecx
cmp ebx, ebp
jl 0x10b4a51a
mov ebx, dword [eax + 0x44]
sub ebx, ecx
mov ecx, dword [esi + 0xa4]
cmp ebx, ecx
jg 0x10b4a51a
mov ecx, dword [eax + 0x40]
mov ebx, dword [esi + 0xa0]
sub ecx, edx
cmp ecx, ebx
jl 0x10b4a51a
mov eax, dword [eax + 0x48]
mov ecx, dword [esi + 0xa8]
sub eax, edx
cmp eax, ecx
jg 0x10b4a51a
push 0x100
push edi
mov ecx, esi
call fcn.10b48480
cmp eax, 0xffffffff
je case.0x10b4a287.23
mov edx, dword [esi + 0xd4]
lea ecx, [eax + eax*2]
shl ecx, 3
sub ecx, eax
mov ebx, dword [esi + 0x9c]
mov ebp, dword [edx + ecx*4 + 0x2c]
lea ecx, [edx + ecx*4]
mov edx, dword [esi + 0xac]
sub ebp, edx
cmp ebp, ebx
jl 0x10b4a509
mov ebp, dword [ecx + 0x34]
mov ebx, dword [esi + 0xa4]
sub ebp, edx
cmp ebp, ebx
jg 0x10b4a509
mov ebx, dword [esi + 0xb0]
mov ebp, dword [ecx + 0x30]
sub ebp, ebx
mov ebx, dword [esi + 0xa0]
cmp ebp, ebx
jl 0x10b4a509
mov ebx, dword [ecx + 0x38]
mov ebp, dword [esi + 0xb0]
sub ebx, ebp
mov ebp, dword [esi + 0xa8]
cmp ebx, ebp
jg 0x10b4a509
mov ebx, dword [ecx + 0x3c]
mov ebp, dword [esi + 0x9c]
sub ebx, edx
cmp ebx, ebp
jl 0x10b4a509
mov ebx, dword [ecx + 0x44]
sub ebx, edx
mov edx, dword [esi + 0xa4]
cmp ebx, edx
jg 0x10b4a509
mov ebx, dword [ecx + 0x40]
mov edx, dword [esi + 0xb0]
mov ebp, dword [esi + 0xa0]
sub ebx, edx
cmp ebx, ebp
jl 0x10b4a509
mov ecx, dword [ecx + 0x48]
sub ecx, edx
mov edx, dword [esi + 0xa8]
cmp ecx, edx
jg 0x10b4a509
mov edi, eax
jmp 0x10b4a50c
or eax, 0xffffffff
cmp eax, 0xffffffff
jne 0x10b4a44d
jmp case.0x10b4a287.23
mov ebp, dword [esp + 0x10]
push 0x100
push edi
mov ecx, esi
call fcn.10b48480
cmp eax, 0xffffffff
je case.0x10b4a287.23
mov ecx, dword [esi + 0xd4]
lea edx, [eax + eax*2]
mov ebx, dword [esi + 0x9c]
shl edx, 3
sub edx, eax
lea edx, [ecx + edx*4]
mov ecx, dword [esi + 0xa4]
sub ecx, ebx
mov ebx, dword [ebp + 0x2c]
sub ebx, dword [edx + 0x2c]
cmp ebx, ecx
jg 0x10b4a593
mov ebx, dword [esi + 0xa8]
mov ebp, dword [ebp + 0x30]
sub ebx, dword [esi + 0xa0]
sub ebp, dword [edx + 0x30]
cmp ebp, ebx
jg 0x10b4a593
mov ebp, dword [esp + 0x10]
mov ebp, dword [ebp + 0x3c]
sub ebp, dword [edx + 0x3c]
cmp ebp, ecx
jg 0x10b4a593
mov ebp, dword [esp + 0x10]
mov ecx, dword [ebp + 0x40]
sub ecx, dword [edx + 0x40]
cmp ecx, ebx
jg 0x10b4a593
mov edi, eax
jmp 0x10b4a59a
mov ebp, dword [esp + 0x10]
or eax, 0xffffffff
cmp eax, 0xffffffff
jne 0x10b4a51e
jmp case.0x10b4a287.23
mov eax, dword [esi + 0xd4]
lea edx, [edi + edi*2]
shl edx, 3
sub edx, edi
push 0x200
push edi
mov ecx, esi
lea ebp, [eax + edx*4]
mov dword [esp + 0x18], ebp
call fcn.10b48480
mov edi, eax
cmp edi, 0xffffffff
je case.0x10b4a287.23
mov edx, dword [esi + 0xd4]
lea ecx, [edi + edi*2]
shl ecx, 3
sub ecx, edi
mov ebx, dword [edx + ecx*4 + 0x2c]
lea eax, [edx + ecx*4]
mov ecx, dword [esi + 0xac]
mov edx, dword [esi + 0x9c]
sub ebx, ecx
cmp ebx, edx
jl 0x10b4a75c
mov ebx, dword [eax + 0x34]
mov edx, dword [esi + 0xa4]
sub ebx, ecx
cmp ebx, edx
jg 0x10b4a75c
mov edx, dword [esi + 0xb0]
mov ebp, dword [eax + 0x30]
mov ebx, dword [esi + 0xa0]
sub ebp, edx
cmp ebp, ebx
jl 0x10b4a758
mov ebp, dword [eax + 0x38]
mov ebx, dword [esi + 0xa8]
sub ebp, edx
cmp ebp, ebx
jg 0x10b4a758
mov ebx, dword [eax + 0x3c]
mov ebp, dword [esi + 0x9c]
sub ebx, ecx
cmp ebx, ebp
jl 0x10b4a758
mov ebx, dword [eax + 0x44]
sub ebx, ecx
mov ecx, dword [esi + 0xa4]
cmp ebx, ecx
jg 0x10b4a758
mov ecx, dword [eax + 0x40]
mov ebx, dword [esi + 0xa0]
sub ecx, edx
cmp ecx, ebx
jl 0x10b4a758
mov eax, dword [eax + 0x48]
mov ecx, dword [esi + 0xa8]
sub eax, edx
cmp eax, ecx
jg 0x10b4a758
push 0x200
push edi
mov ecx, esi
call fcn.10b48480
cmp eax, 0xffffffff
je case.0x10b4a287.23
mov edx, dword [esi + 0xd4]
lea ecx, [eax + eax*2]
shl ecx, 3
sub ecx, eax
mov ebx, dword [esi + 0x9c]
mov ebp, dword [edx + ecx*4 + 0x2c]
lea ecx, [edx + ecx*4]
mov edx, dword [esi + 0xac]
sub ebp, edx
cmp ebp, ebx
jl 0x10b4a747
mov ebp, dword [ecx + 0x34]
mov ebx, dword [esi + 0xa4]
sub ebp, edx
cmp ebp, ebx
jg 0x10b4a747
mov ebx, dword [esi + 0xb0]
mov ebp, dword [ecx + 0x30]
sub ebp, ebx
mov ebx, dword [esi + 0xa0]
cmp ebp, ebx
jl 0x10b4a747
mov ebx, dword [ecx + 0x38]
mov ebp, dword [esi + 0xb0]
sub ebx, ebp
mov ebp, dword [esi + 0xa8]
cmp ebx, ebp
jg 0x10b4a747
mov ebx, dword [ecx + 0x3c]
mov ebp, dword [esi + 0x9c]
sub ebx, edx
cmp ebx, ebp
jl 0x10b4a747
mov ebx, dword [ecx + 0x44]
sub ebx, edx
mov edx, dword [esi + 0xa4]
cmp ebx, edx
jg 0x10b4a747
mov ebx, dword [ecx + 0x40]
mov edx, dword [esi + 0xb0]
mov ebp, dword [esi + 0xa0]
sub ebx, edx
cmp ebx, ebp
jl 0x10b4a747
mov ecx, dword [ecx + 0x48]
sub ecx, edx
mov edx, dword [esi + 0xa8]
cmp ecx, edx
jg 0x10b4a747
mov edi, eax
jmp 0x10b4a74a
or eax, 0xffffffff
cmp eax, 0xffffffff
jne 0x10b4a68b
jmp case.0x10b4a287.23
mov ebp, dword [esp + 0x10]
push 0x200
push edi
mov ecx, esi
call fcn.10b48480
cmp eax, 0xffffffff
je case.0x10b4a287.23
mov ecx, dword [esi + 0xd4]
lea edx, [eax + eax*2]
mov ebx, dword [esi + 0x9c]
shl edx, 3
sub edx, eax
lea edx, [ecx + edx*4]
mov ecx, dword [esi + 0xa4]
sub ecx, ebx
mov ebx, dword [edx + 0x2c]
sub ebx, dword [ebp + 0x2c]
cmp ebx, ecx
jg 0x10b4a7df
mov ebx, dword [esi + 0xa8]
sub ebx, dword [esi + 0xa0]
mov dword [esp + 0x14], ebx
mov ebx, dword [edx + 0x30]
sub ebx, dword [ebp + 0x30]
mov ebp, dword [esp + 0x14]
cmp ebx, ebp
jg 0x10b4a7db
mov ebp, dword [esp + 0x10]
mov ebx, dword [edx + 0x3c]
sub ebx, dword [ebp + 0x3c]
cmp ebx, ecx
jg 0x10b4a7df
mov edx, dword [edx + 0x40]
mov ebx, dword [ebp + 0x40]
mov ecx, dword [esp + 0x14]
sub edx, ebx
cmp edx, ecx
jg 0x10b4a7df
mov edi, eax
jmp 0x10b4a7e2
mov ebp, dword [esp + 0x10]
or eax, 0xffffffff
cmp eax, 0xffffffff
jne 0x10b4a75c
jmp case.0x10b4a287.23
push 2
push 2
push edi
mov ecx, esi
call fcn.10b46d70
cmp edi, dword [esi + 0xc8]
je 0x10b4aa18
cmp edi, 0xffffffff
je 0x10b4aa18
mov ebp, dword [sym.imp.USER32.dll_GetKeyState]
push 0x10
call ebp
and eax, 0xffff8000
mov bl, 4
test ax, ax
je 0x10b4a9d8
test byte [esi + 4], bl
jne 0x10b4a9d8
mov ecx, dword [esi + 0xcc]
or eax, 0xffffffff
cmp ecx, eax
jne 0x10b4a854
mov ecx, dword [esi + 0xc8]
cmp ecx, eax
mov dword [esi + 0xcc], ecx
jne 0x10b4a854
mov dword [esi + 0xcc], edi
push 1
push 1
push edi
mov ecx, esi
call fcn.10b46d70
mov eax, dword [esi + 4]
and eax, 3
cmp eax, 1
je 0x10b4a970
cmp eax, 3
je 0x10b4a970
mov eax, dword [esi + 0xcc]
mov ecx, dword [esi + 0xd4]
lea edx, [edi + edi*2]
mov ebx, dword [sym.imp.USER32.dll_UnionRect]
shl edx, 3
sub edx, edi
lea edi, [eax + eax*2]
shl edi, 3
lea edx, [ecx + edx*4]
sub edi, eax
lea eax, [edx + 0x3c]
lea edi, [ecx + edi*4]
add edx, 0x2c
push eax
lea ecx, [esp + 0x1c]
push edx
push ecx
call ebx
lea edx, [edi + 0x2c]
lea eax, [esp + 0x18]
push edx
lea ecx, [esp + 0x1c]
push eax
push ecx
call ebx
add edi, 0x3c
lea edx, [esp + 0x18]
push edi
lea eax, [esp + 0x1c]
push edx
push eax
call ebx
mov eax, dword [esi + 0xd8]
xor edi, edi
test eax, eax
jle 0x10b4aa18
xor ebx, ebx
mov ebp, dword [esi + 0xd4]
mov ecx, dword [esp + 0x24]
mov eax, ebx
add eax, ebp
cmp dword [eax + 0x30], ecx
jge 0x10b4a915
mov edx, dword [eax + 0x38]
mov ebp, dword [esp + 0x1c]
cmp edx, ebp
jle 0x10b4a915
mov edx, dword [eax + 0x2c]
mov ebp, dword [esp + 0x20]
cmp edx, ebp
jge 0x10b4a915
mov edx, dword [eax + 0x34]
mov ebp, dword [esp + 0x18]
cmp edx, ebp
jg 0x10b4a93b
cmp dword [eax + 0x40], ecx
jge 0x10b4a947
mov ecx, dword [esp + 0x1c]
mov edx, dword [eax + 0x48]
cmp edx, ecx
jle 0x10b4a947
mov edx, dword [esp + 0x20]
mov ecx, dword [eax + 0x3c]
cmp ecx, edx
jge 0x10b4a947
mov ecx, dword [esp + 0x18]
mov edx, dword [eax + 0x44]
cmp edx, ecx
jle 0x10b4a947
test byte [eax + 0xc], 2
jne 0x10b4a959
push 2
push 2
jmp 0x10b4a951
test byte [eax + 0xc], 2
je 0x10b4a959
push 2
push 0
push edi
mov ecx, esi
call fcn.10b46d70
mov eax, dword [esi + 0xd8]
inc edi
add ebx, 0x5c
cmp edi, eax
jl 0x10b4a8e1
jmp 0x10b4aa18
mov eax, dword [esi + 0xd8]
xor edi, edi
test eax, eax
jle 0x10b4aa18
xor ebx, ebx
mov ebp, dword [esi + 0xd4]
mov ecx, dword [esi + 0xcc]
mov eax, ebx
add eax, ebp
cmp ecx, edi
jg 0x10b4a99e
cmp edi, dword [esi + 0xc8]
jle 0x10b4a9aa
cmp dword [esi + 0xc8], edi
jg 0x10b4a9b6
cmp edi, ecx
jg 0x10b4a9b6
test byte [eax + 0xc], 2
jne 0x10b4a9c8
push 2
push 2
jmp 0x10b4a9c0
test byte [eax + 0xc], 2
je 0x10b4a9c8
push 2
push 0
push edi
mov ecx, esi
call fcn.10b46d70
mov eax, dword [esi + 0xd8]
inc edi
add ebx, 0x5c
cmp edi, eax
jl 0x10b4a982
jmp 0x10b4aa18
push 0x11
call ebp
and eax, 0xffff8000
test ax, ax
je 0x10b4a9fb
test byte [esi + 4], bl
jne 0x10b4a9fb
push 1
mov dword [esi + 0xcc], 0xffffffff
push 1
jmp 0x10b4aa10
mov ecx, esi
mov dword [esi + 0xcc], 0xffffffff
call fcn.10b47470
push 3
push 3
push edi
mov ecx, esi
call fcn.10b46d70
mov dx, word [esp + 0x40]
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0x28]
push 0xffffff65
push ecx
mov ecx, esi
mov word [esp + 0x3c], dx
mov dword [esp + 0x3e], eax
call fcn.10b46ca0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x2c
ret 8