Function at 0x41b4ab
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [0x436038]
sub esp, 0x28
push ebx
push esi
mov esi, dword [0x43b21c]
mov ebx, edx
push edi
mov edi, ecx
mov cl, byte [0x43b8ac]
test ebx, ebx
je 0x41b515
cmp dword [0x438fe8], 3
jl 0x41b515
test cl, 3
je 0x41b515
test ebx, ebx
jle 0x41b4fe
cmp ebx, esi
jge 0x41b4fc
mov edx, dword [0x43cb34]
sub edx, esi
cmp dword [eax + 4], edx
jne 0x41b4fc
push 1
call fcn.0041a841
jmp 0x41b849
test ebx, ebx
jge 0x41b515
neg esi
cmp ebx, esi
jle 0x41b515
mov edx, dword [eax + 4]
cmp edx, dword [0x43cb44]
jne 0x41b515
push 0xffffffffffffffff
jmp 0x41b4f2
add edi, dword [eax]
add ebx, dword [eax + 4]
mov dword [ebp - 4], edi
test cl, 1
je 0x41b56d
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x13
call esi
cmp dword [0x43ca44], 0
je 0x41b568
lea edi, [ebx + 0x3e8]
mov eax, dword [0x436038]
cmp edi, dword [eax + 0x1c]
jl 0x41b56d
push 0x3e8
push 1
call fcn.004123ad
push 0x13
call esi
mov ecx, 0x8001
test cx, ax
jne 0x41b568
cmp dword [0x43ca44], 0
jne 0x41b53b
mov eax, dword [0x436038]
mov ecx, dword [0x43b560]
sub ecx, dword [0x43b23c]
cmp ecx, dword [ebp - 4]
jg 0x41b581
mov dword [ebp - 4], ecx
mov ecx, dword [0x43b214]
cmp ecx, dword [ebp - 4]
jle 0x41b58f
mov dword [ebp - 4], ecx
mov ecx, dword [0x43cb34]
sub ecx, dword [0x43b21c]
cmp ecx, ebx
cmovle ebx, ecx
mov ecx, dword [0x43cb44]
cmp ecx, ebx
cmovg ebx, ecx
mov ecx, dword [ebp - 4]
cmp ecx, dword [eax]
jne 0x41b5bb
cmp ebx, dword [eax + 4]
je 0x41b849
mov ecx, dword [0x43b8ac]
mov esi, 0x43cb50
lea edi, [ebp - 0x18]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor edi, edi
cmp ecx, 8
je 0x41b820
cmp dword [0x43cab4], edi
je 0x41b5ed
cmp dword [0x43cab8], 1
ja 0x41b820
test cl, 0x14
mov ecx, dword [0x4368a0]
je 0x41b69c
sub ecx, edi
je 0x41b80d
dec ecx
je 0x41b669
dec ecx
jne 0x41b83f
push dword [0x43b52c]
call dword [sym.imp.USER32.dll_GetDC]
mov esi, dword [ebp - 4]
mov dword [ebp - 8], eax
lea eax, [ebp - 0x28]
push eax
push edi
lea eax, [ebp - 0x18]
push eax
push eax
mov eax, dword [0x436038]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
sub ecx, ebx
push ecx
sub eax, esi
push eax
push dword [ebp - 8]
call dword [sym.imp.USER32.dll_ScrollDC]
push dword [ebp - 8]
push dword [0x43b52c]
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [0x436038]
mov dword [eax], esi
mov eax, dword [0x436038]
mov dword [eax + 4], ebx
lea eax, [ebp - 0x28]
jmp 0x41b830
mov esi, dword [ebp - 4]
lea ecx, [ebp - 0x18]
push ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax]
push edi
sub ecx, ebx
push ecx
sub eax, esi
push eax
push dword [0x43b52c]
call dword [sym.imp.USER32.dll_ScrollWindow]
mov eax, dword [0x436038]
mov dword [eax], esi
mov eax, dword [0x436038]
mov dword [eax + 4], ebx
jmp 0x41b83f
sub ecx, edi
je 0x41b80a
dec ecx
je 0x41b76d
dec ecx
jne 0x41b83f
cmp dword [0x436088], edi
je 0x41b6c6
push dword [0x43b52c]
call dword [sym.imp.USER32.dll_HideCaret]
push dword [0x43b52c]
call dword [sym.imp.USER32.dll_GetDC]
mov esi, dword [ebp - 4]
mov dword [ebp - 8], eax
lea eax, [ebp - 0x28]
push eax
push edi
lea eax, [ebp - 0x18]
push eax
push eax
mov eax, dword [0x436038]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
sub ecx, ebx
imul ecx, dword [0x436024]
sub eax, esi
imul eax, dword [0x43601c]
push ecx
push eax
push dword [ebp - 8]
call dword [sym.imp.USER32.dll_ScrollDC]
push dword [ebp - 8]
push dword [0x43b52c]
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [0x436038]
mov dword [eax], esi
mov eax, dword [0x436038]
mov esi, dword [sym.imp.USER32.dll_InvalidateRect]
mov dword [eax + 4], ebx
push 1
lea eax, [ebp - 0x28]
push eax
push dword [0x43b52c]
call esi
push dword [0x43b52c]
mov ebx, dword [sym.imp.USER32.dll_UpdateWindow]
call ebx
mov eax, dword [ebp - 0x14]
dec eax
mov dword [ebp - 0xc], eax
push edi
lea eax, [ebp - 0x18]
push eax
push dword [0x43b52c]
mov dword [ebp - 0x14], edi
call esi
push dword [0x43b52c]
call ebx
jmp 0x41b7f4
cmp dword [0x436088], edi
je 0x41b786
push dword [0x43b52c]
call dword [sym.imp.USER32.dll_HideCaret]
mov eax, dword [0x436038]
mov esi, dword [ebp - 4]
lea ecx, [ebp - 0x18]
push ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax]
sub ecx, ebx
imul ecx, dword [0x436024]
sub eax, esi
imul eax, dword [0x43601c]
push edi
push ecx
push eax
push dword [0x43b52c]
call dword [sym.imp.USER32.dll_ScrollWindow]
mov eax, dword [0x436038]
mov dword [eax], esi
mov eax, dword [0x436038]
mov esi, dword [sym.imp.USER32.dll_UpdateWindow]
mov dword [eax + 4], ebx
push dword [0x43b52c]
call esi
mov eax, dword [ebp - 0x14]
dec eax
mov dword [ebp - 0xc], eax
push 1
lea eax, [ebp - 0x18]
push eax
push dword [0x43b52c]
mov dword [ebp - 0x14], edi
call dword [sym.imp.USER32.dll_InvalidateRect]
push dword [0x43b52c]
call esi
cmp dword [0x436088], edi
je 0x41b83f
push dword [0x43b52c]
call dword [sym.imp.USER32.dll_ShowCaret]
jmp 0x41b83f
mov dword [ebp - 0x14], edi
mov ecx, dword [ebp - 4]
mov dword [eax], ecx
mov eax, dword [0x436038]
mov dword [eax + 4], ebx
push edi
lea eax, [ebp - 0x18]
jmp 0x41b832
mov ecx, dword [ebp - 4]
mov dword [eax], ecx
mov eax, dword [0x436038]
mov dword [eax + 4], ebx
lea eax, [ebp - 0x18]
push 1
push eax
push dword [0x43b52c]
call dword [sym.imp.USER32.dll_InvalidateRect]
cmp dword [ebp + 8], edi
jne 0x41b849
call fcn.0041864a
pop edi
pop esi
pop ebx
leave
ret 4