Function at 0x44d93f
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x60
mov eax, dword [0x478b78]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
xor eax, eax
push edi
push 0x10
mov dword [ebp - 0x40], esi
mov ebx, eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x2c], eax
call dword [sym.imp.USER32.dll_GetKeyState]
mov edi, dword [sym.imp.USER32.dll_GetWindowLongA]
shr eax, 8
push 4
movzx eax, al
push esi
mov dword [ebp - 0x54], eax
call edi
mov dword [ebp - 0x5c], eax
test eax, eax
jne 0x44d98f
xor eax, eax
jmp 0x44e027
push 0
push esi
call edi
mov edi, eax
test edi, edi
je 0x44d988
push edi
call dword [sym.imp.KERNEL32.dll_GlobalLock]
push edi
mov eax, dword [eax + 8]
mov dword [ebp - 0x34], eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x44d9c4
mov eax, 0x3e80
cdq
idiv ecx
mov dword [0x49d618], eax
jmp 0x44d9ce
mov dword [0x49d618], 0x10
mov eax, dword [ebp + 0x10]
push dword [ebp - 0x5c]
movsx ecx, ax
shr eax, 0x10
cwde
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x24], eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
push esi
mov edi, eax
call dword [sym.imp.USER32.dll_GetDC]
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x18], ecx
lea ecx, [ebp - 0x1c]
push 1
push ecx
push eax
mov dword [ebp - 0x28], eax
call dword [sym.imp.GDI32.dll_DPtoLP]
cmp dword [ebp + 0x14], ebx
je 0x44da72
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push edi
push esi
call fcn.00459ccc
test eax, eax
jne 0x44da64
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x60]
push eax
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push dword [edi + 0x1d6]
call fcn.0042dd14
test eax, eax
je 0x44da72
mov ecx, dword [ebp - 0x4c]
or eax, 0xffffffff
cmp ecx, eax
je 0x44da72
cmp ecx, 2
jle 0x44da61
push 5
pop eax
cmp ecx, eax
jle 0x44da64
push 7
pop eax
cmp ecx, eax
je 0x44da6e
cmp ecx, 8
je 0x44da64
push 3
pop eax
mov dword [0x49cd94], eax
jmp 0x44e008
push 6
jmp 0x44da63
mov eax, dword [0x49de80]
cmp eax, 0xbbb
jne 0x44daa9
push dword [ebp - 0x24]
push dword [ebp - 0x44]
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push dword [ebp - 0x34]
push dword [ebp - 0x28]
push esi
call fcn.00451128
push 1
push 0
push 0xbb9
call fcn.0046245e
jmp 0x44dff0
test dword [edi + 0x22], 0x400
jne 0x44daf1
push dword [ebp - 0x24]
push dword [ebp - 0x44]
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push dword [ebp - 0x28]
push esi
call fcn.0044ee45
mov ecx, eax
mov dword [ebp - 0x30], ecx
test ecx, ecx
je 0x44daea
cmp dword [edi + 0xe6], ebx
je 0x44e008
push 1
push edi
push esi
call fcn.0045377b
jmp 0x44e008
mov eax, dword [0x49de80]
jmp 0x44daf3
mov ecx, ebx
push 2
pop edx
cmp eax, 0xbbc
jl 0x44db61
cmp eax, 0xbc0
jle 0x44db5a
cmp eax, 0xbc2
jle 0x44db14
add eax, 0xfffff43c
cmp eax, edx
ja 0x44db61
cmp dword [edi + 0xe6], ebx
je 0x44db37
push 1
push edi
push esi
call fcn.0045377b
test eax, eax
je 0x44db35
cmp eax, 0xffffffff
je 0x44db35
xor ebx, ebx
jmp 0x44e008
xor ebx, ebx
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push 0
push 0
push 0
push 0x10
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push edi
push esi
call fcn.0044e693
xor ecx, ecx
inc ecx
mov dword [ebp - 0x30], ecx
jmp 0x44db61
mov dword [ebp - 0x2c], 1
mov eax, dword [edi + 0xe6]
test eax, eax
je 0x44dc2f
and dword [ebp - 0x44], 0
xor ebx, ebx
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
push 2
pop edx
mov dword [ebp - 0x50], eax
mov ecx, dword [eax + 0x44]
mov dword [ebp - 0x24], ecx
cmp ecx, edx
jne 0x44dbc6
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x44dbb7
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
sub eax, dword [edx + 4]
sub ecx, dword [edx]
push eax
push ecx
push dword [edx + 0x14]
call fcn.00439654
jmp 0x44dbba
mov eax, dword [ebp - 0x44]
cmp dword [ebp - 0x2c], ebx
push 0xffffffffffffffff
pop ecx
cmovne eax, ecx
mov dword [ebp - 0x44], eax
push dword [edi + 0xe6]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
cmp dword [ebp - 0x44], ebx
jl 0x44dc80
push 0
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push dword [edi + 0xe6]
call fcn.00439e62
mov ebx, eax
or eax, 0xffffffff
cmp ebx, eax
je 0x44dc0a
test ebx, ebx
je 0x44dc80
push ebx
call fcn.00453811
jmp 0x44e008
push 2
pop eax
sub dword [ebp - 0x24], eax
je 0x44dc2a
push 1
push edi
push esi
call fcn.0045377b
test eax, eax
je 0x44dc2a
or ecx, 0xffffffff
cmp eax, ecx
jne 0x44db2e
mov ecx, dword [ebp - 0x30]
xor ebx, ebx
test ecx, ecx
jne 0x44dff0
push dword [ebp + 0x14]
lea eax, [ebp - 0x38]
push ecx
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x3c]
push eax
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push edi
push dword [ebp - 0x34]
push dword [ebp - 0x28]
push esi
call fcn.0041eb1d
push 1
push edi
push esi
mov dword [ebp - 0x50], eax
call fcn.0045377b
mov ebx, eax
or eax, 0xffffffff
mov dword [ebp - 0x2c], ebx
cmp ebx, eax
jne 0x44dca3
xor ebx, ebx
mov dword [ebp - 0x58], 1
mov dword [ebp - 0x2c], ebx
jmp 0x44dcab
mov ecx, dword [0x49de80]
lea eax, [ecx - 0xbbc]
cmp eax, 4
ja 0x44e008
push ecx
push esi
call fcn.00405798
push 2
jmp 0x44da63
test ebx, ebx
jne 0x44db2e
mov ecx, dword [ebp - 0x50]
mov eax, ecx
sub eax, 1
je 0x44df7d
sub eax, 1
je 0x44df25
sub eax, 3
je 0x44df7d
mov eax, dword [0x49de80]
cmp eax, 0xbb9
je 0x44dd04
cmp eax, 0xbbb
jle 0x44dd7d
cmp eax, 0xbc0
jle 0x44dd00
cmp eax, 0xbc3
jne 0x44dd7d
push 0x28
call fcn.0044af27
jmp 0x44dff0
push 0x1f
jmp 0x44dcf6
cmp dword [ebp - 0x54], 0
jne 0x44dd2d
push 0
push 1
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x3c]
push eax
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push edi
push dword [ebp - 0x34]
push dword [ebp - 0x28]
push esi
call fcn.0041eb1d
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x20]
push eax
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push dword [edi + 0x1d6]
call fcn.0042dd14
test eax, eax
je 0x44dd6a
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push 0
push 0
push dword [ebp - 0x20]
push eax
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push edi
push esi
call fcn.0044e693
jmp 0x44dff0
cmp dword [ebp - 0x54], 0
jne 0x44dd7d
push 1
push dword [edi + 0x1d6]
call fcn.0042dbb7
cmp dword [edi + 0xe6], 0
jne 0x44ddca
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push dword [edi + 0xbe]
call fcn.00439654
test eax, eax
js 0x44ddca
push edi
push esi
call fcn.0046750f
test eax, eax
jne 0x44deca
push 1
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push dword [edi + 0xe6]
call fcn.00439e62
test eax, eax
je 0x44df02
jmp 0x44deca
cmp dword [0x49de80], 0xbba
jne 0x44df09
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x20]
push eax
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push dword [edi + 0x1d6]
call fcn.0042dd14
cmp eax, 0x11
jne 0x44de3a
push dword [edi + 0x1d6]
mov ebx, dword [sym.imp.KERNEL32.dll_GlobalLock]
call ebx
mov esi, eax
push dword [esi + 0x50]
call ebx
imul ecx, dword [ebp - 0x20], 0xd0
xor ebx, ebx
push 2
pop edx
push dword [esi + 0x50]
mov esi, dword [sym.imp.KERNEL32.dll_GlobalUnlock]
cmp dword [ecx + eax + 0x18], edx
sete bl
call esi
push dword [edi + 0x1d6]
call esi
test ebx, ebx
jne 0x44de82
mov esi, dword [ebp - 0x40]
mov eax, dword [edi + 0x5a]
sub eax, dword [edi + 0x86]
sub eax, 0x48
push eax
mov eax, dword [edi + 0x56]
sub eax, dword [edi + 0x82]
sub eax, 0x48
push eax
push dword [edi + 0x7e]
lea eax, [ebp - 0x14]
push dword [edi + 0x7a]
push eax
call dword [sym.imp.USER32.dll_SetRect]
push dword [ebp - 0x18]
lea eax, [ebp - 0x14]
push dword [ebp - 0x1c]
push eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x44df09
or eax, 0xffffffff
mov dword [ebp - 0x20], eax
push 1
push dword [edi + 0x1d6]
call fcn.0042dbb7
mov ebx, dword [ebp - 0x40]
push ebx
call dword [sym.imp.USER32.dll_UpdateWindow]
push dword [ebp - 0x20]
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push edi
push ebx
call fcn.0043e5f2
mov ebx, eax
test ebx, ebx
jne 0x44dff0
push 1
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push dword [edi + 0xe6]
call fcn.00439e62
test eax, eax
je 0x44ded2
push eax
call fcn.00453811
jmp 0x44df02
push dword [edi + 0xe6]
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov esi, eax
push 0
push 0
push dword [esi + 0x1c]
call dword [sym.imp.USER32.dll_InvalidateRect]
push dword [esi + 0x1c]
call dword [sym.imp.USER32.dll_UpdateWindow]
push dword [edi + 0xe6]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
xor ebx, ebx
jmp 0x44dff0
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push edi
push esi
call fcn.0044ec87
and dword [0x49cd94], 0
mov ebx, dword [ebp - 0x2c]
jmp 0x44dff0
cmp dword [ebp + 0x14], 0
jne 0x44e008
mov ecx, dword [ebp - 0x38]
mov eax, ecx
shr eax, 0x10
movsx edx, ax
movsx eax, cx
mov ecx, dword [ebp - 0x58]
push ecx
push ecx
push eax
push edx
push dword [ebp - 0x20]
push dword [ebp - 0x3c]
push edi
push esi
call fcn.00420f5d
mov ebx, eax
test ebx, ebx
jne 0x44e008
push 1
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push dword [edi + 0xe6]
call fcn.00439e62
mov ebx, eax
test ebx, ebx
je 0x44e008
jmp 0x44dbff
mov eax, dword [0x49cd94]
cmp eax, 4
push 2
pop edx
cmovne eax, edx
mov dword [0x49cd94], eax
mov eax, dword [0x49de80]
cmp eax, 0xbb9
je 0x44dfd9
cmp eax, 0xbbb
jle 0x44dff0
cmp eax, 0xbc0
jle 0x44dfd0
cmp eax, 0xbc3
jne 0x44dff0
mov ecx, dword [ebp - 0x38]
mov eax, ecx
shr eax, 0x10
movsx edx, ax
movsx eax, cx
push eax
push edx
push dword [ebp - 0x20]
push dword [ebp - 0x3c]
push 0
push 0x10
jmp 0x44dd58
push eax
push esi
call fcn.00405798
jmp 0x44dff0
push ecx
push dword [ebp - 0x38]
push dword [ebp - 0x20]
push dword [ebp - 0x3c]
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push edi
push esi
call fcn.0044e9d6
push dword [ebp - 0x40]
mov esi, dword [0x49cd8c]
call dword [sym.imp.USER32.dll_UpdateWindow]
push esi
call fcn.0044bc76
mov esi, dword [ebp - 0x40]
push dword [ebp - 0x5c]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push dword [ebp - 0x28]
push esi
call dword [sym.imp.USER32.dll_ReleaseDC]
test ebx, ebx
je 0x44e025
push ebx
call fcn.00453659
mov eax, ebx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00475d95
mov esp, ebp
pop ebp
ret 0x10