Function at 0x44046c
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0xc
pushal
mov edi, eax
mov dword [esp + 0x20], edi
mov ebp, ebx
mov eax, dword [edi + 0xc]
and eax, 0x800
cmp eax, 0
je 0x44050f
mov ebx, 0
mov eax, ebp
cmp eax, 0x24
jne 0x44049c
mov ebx, 0x1407
jmp 0x4404fe
cmp eax, 0x23
jne 0x4404a8
mov ebx, 0x1408
jmp 0x4404fe
cmp eax, 0x26
jne 0x4404b4
mov ebx, 0x1403
jmp 0x4404fe
cmp eax, 0x28
jne 0x4404c0
mov ebx, 0x1404
jmp 0x4404fe
cmp eax, 0x21
jne 0x4404e0
push 0x11
call sub.USER32.dll_GetKeyState
cmp ax, 0
jge 0x4404d9
mov ebx, 0x1407
jmp 0x4404de
mov ebx, 0x1405
jmp 0x4404fe
cmp eax, 0x22
jne 0x4404fe
push 0x11
call sub.USER32.dll_GetKeyState
cmp ax, 0
jge 0x4404f9
mov ebx, 0x1408
jmp 0x4404fe
mov ebx, 0x1406
cmp ebx, 0
je 0x44050f
mov eax, edi
call fcn.0044219c
jmp 0x4409ec
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
push 0x11
call sub.USER32.dll_GetKeyState
cmp ax, 0
setl al
movzx eax, al
cmp ebp, 0x24
jne 0x440562
mov eax, edi
mov ebx, 6
mov ecx, 0
call fcn.0044338c
mov eax, edi
mov ecx, dword [eax + 0x127]
mov ebx, 0
mov edx, 0
call fcn.00443620
jmp 0x4409ec
cmp ebp, 0x23
jne 0x4405a3
mov eax, edi
mov ebx, 7
mov ecx, 0
call fcn.0044338c
mov eax, dword [edi + 0x10b]
mov eax, dword [edi + 0x10b]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov ebx, eax
mov eax, edi
dec ebx
mov ecx, dword [eax + 0x127]
mov edx, 0
call fcn.00443620
jmp 0x4409ec
cmp ebp, 0x25
pushfd
lea ecx, [esp + 0x28]
popfd
jne 0x440656
mov ebx, dword [edi + 0x14f]
and ebx, 2
cmp ebx, 0
je 0x44062c
cmp eax, 0
je 0x4405d3
mov eax, dword [edi + 0x127]
neg eax
mov dword [esp + 0x24], eax
jmp 0x4405eb
mov eax, edi
mov ebx, dword [edi + 0x127]
mov edx, ecx
mov eax, dword [esp + 0x20]
mov ecx, 0xffffffff
call fcn.004402a8
cmp dword [esp + 0x24], 0
je 0x4409ec
mov eax, edi
mov ebx, dword [edi + 0x127]
add ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
call fcn.00448494
mov eax, edi
mov ebx, dword [eax + 0x123]
mov ecx, dword [eax + 0x127]
add ecx, dword [esp + 0x24]
mov edx, 0
call fcn.00443620
jmp 0x4409ec
cmp eax, 0
je 0x440638
mov eax, 6
jmp 0x44063d
mov eax, 0
push 0
movzx eax, ax
push eax
push 0x114
mov eax, dword [edi + 0x5b]
push eax
call sub.USER32.dll_SendMessageA
jmp 0x4409ec
cmp ebp, 0x27
jne 0x44070d
mov ebx, dword [edi + 0x14f]
and ebx, 2
cmp ebx, 0
je 0x4406e3
cmp eax, 0
je 0x44068a
lea eax, [edi + 0x1a1]
mov ebx, dword [eax + 4]
mov eax, dword [edi + 0x127]
sub ebx, eax
dec ebx
mov dword [esp + 0x24], ebx
jmp 0x4406a2
mov eax, edi
mov ebx, dword [edi + 0x127]
mov edx, ecx
mov eax, dword [esp + 0x20]
mov ecx, 1
call fcn.004402a8
cmp dword [esp + 0x24], 0
je 0x4409ec
mov eax, edi
mov ebx, dword [edi + 0x127]
add ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
call fcn.00448494
mov eax, edi
mov ebx, dword [eax + 0x123]
mov ecx, dword [eax + 0x127]
add ecx, dword [esp + 0x24]
mov edx, 0
call fcn.00443620
jmp 0x4409ec
cmp eax, 0
je 0x4406ef
mov eax, 7
jmp 0x4406f4
mov eax, 1
push 0
movzx eax, ax
push eax
push 0x114
mov eax, dword [edi + 0x5b]
push eax
call sub.USER32.dll_SendMessageA
jmp 0x4409ec
cmp ebp, 0x26
pushfd
lea edx, [esp + 0x2c]
popfd
jne 0x440790
mov eax, dword [edi + 0x14f]
and eax, 2
cmp eax, 0
je 0x44073f
push ecx
mov eax, edi
mov ebx, dword [edi + 0x127]
mov eax, dword [esp + 0x24]
mov ecx, 0xffffffff
call fcn.0044012c
jmp 0x440743
dec dword [esp + 0x28]
mov eax, edi
mov ebx, dword [edi + 0x123]
mov eax, dword [esp + 0x28]
add ebx, eax
mov ecx, dword [edi + 0x127]
add ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov edx, 0
call fcn.00443620
mov eax, edi
call fcn.00443548
cmp eax, 0
je 0x4409ec
mov eax, edi
mov ecx, dword [eax + 0x123]
mov ebx, 4
call fcn.0044338c
jmp 0x4409ec
cmp ebp, 0x28
jne 0x44081a
mov eax, dword [edi + 0x14f]
and eax, 2
cmp eax, 0
je 0x4407c0
push ecx
mov eax, edi
mov ebx, dword [edi + 0x127]
mov eax, dword [esp + 0x24]
mov ecx, 1
call fcn.0044012c
jmp 0x4407c4
inc dword [esp + 0x28]
mov eax, edi
mov ebx, dword [edi + 0x123]
mov eax, dword [esp + 0x28]
add ebx, eax
mov ecx, dword [edi + 0x127]
add ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov edx, 0
call fcn.00443620
mov eax, edi
call fcn.00443548
cmp eax, 0
je 0x4409ec
mov eax, edi
mov ecx, dword [eax + 0x123]
mov ebx, dword [eax + 0x11b]
sub ecx, ebx
inc ecx
mov ebx, 4
call fcn.0044338c
jmp 0x4409ec
cmp ebp, 0x21
jne 0x44086b
mov eax, edi
mov ebx, dword [edi + 0x123]
mov eax, dword [edi + 0x11b]
dec eax
sub ebx, eax
mov ecx, dword [edi + 0x127]
mov eax, dword [esp + 0x20]
mov edx, 0
call fcn.00443620
mov eax, edi
call fcn.00443548
cmp eax, 0
je 0x4409ec
mov eax, edi
mov ecx, dword [eax + 0x123]
mov ebx, 4
call fcn.0044338c
jmp 0x4409ec
cmp ebp, 0x22
jne 0x4408fd
cmp dword [edi + 0x123], 0xffffffff
je 0x4408a4
mov eax, edi
mov ebx, dword [edi + 0x123]
mov eax, dword [edi + 0x11b]
add ebx, eax
dec ebx
mov ecx, dword [edi + 0x127]
mov eax, dword [esp + 0x20]
mov edx, 0
call fcn.00443620
jmp 0x4408bf
mov eax, edi
mov ecx, dword [edi + 0x127]
mov eax, dword [esp + 0x20]
mov ebx, 0
mov edx, 0
call fcn.00443620
mov eax, edi
call fcn.00443548
cmp eax, 0
je 0x4409ec
mov eax, edi
mov ecx, dword [eax + 0x123]
mov ebx, dword [eax + 0x11b]
sub ecx, ebx
inc ecx
mov ebx, 4
call fcn.0044338c
jmp 0x4409ec
cmp esi, 0
je 0x44098d
jmp 0x4409a9
cmp ebp, 0x20
jne 0x4409ec
cmp dword [edi + 0xb7], 0
je 0x4409d7
mov eax, dword [edi + 0xb7]
mov eax, dword [edi + 0xb7]
mov ecx, dword [eax]
mov ebx, 1
call dword [ecx + 0xc]
mov edx, eax
cmp dword [edi + 0x160], 0
je 0x440952
mov eax, dword [edi + 0x160]
mov eax, dword [edi + 0x160]
mov esi, dword [eax + 8]
mov ebx, 1
mov ecx, 0
call dword [esi + 0xc]
mov esi, eax
lea ecx, [edi + 0x10f]
mov eax, ecx
mov ebx, dword [edi + 0x123]
call fcn.0042dbe4
mov eax, dword [edi + 0xb7]
mov ebx, ecx
mov ecx, dword [edi + 0x123]
mov eax, dword [edi + 0xb7]
mov ebp, dword [eax]
call dword [ebp + 4]
cmp dword [edi + 0x160], 0
jne 0x4408ef
jmp 0x4409a9
mov eax, dword [edi + 0x160]
mov eax, dword [edi + 0x160]
mov esi, dword [eax + 8]
mov ebx, 0
mov ecx, 0
call dword [esi + 0xc]
mov eax, edi
mov ebx, dword [edi + 0x123]
mov eax, dword [esp + 0x20]
call fcn.004483e8
cmp edx, 0
jne 0x4409ec
mov eax, dword [edi + 0xb7]
mov eax, dword [edi + 0xb7]
mov ecx, dword [eax]
mov ebx, 0
call dword [ecx + 0xc]
jmp 0x4409ec
cmp dword [edi + 0x123], 0xffffffff
jne 0x4409ec
mov eax, edi
mov ebx, 0
call fcn.004483a4
popal
add esp, 0xc
ret