Function at 0x446950
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5714df
mov eax, dword fs:[0]
push eax
sub esp, 0xa8
mov eax, dword [0x5fc150]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ecx, dword [ebp + 0xc]
mov eax, ecx
mov edi, dword [ebp + 8]
mov ebx, dword [ebp + 0x10]
sub eax, 0x14
je 0x446db0
sub eax, 0xfd
je 0x446a41
sub eax, 0x22
je 0x4469b5
push dword [ebp + 0x14]
push ebx
push ecx
push dword [edi + 0xc]
call dword [sym.imp.USER32.dll_DefWindowProcW]
jmp 0x446e35
mov eax, dword fs:[0x2c]
mov ecx, dword [0x611b70]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x60fce4]
cmp eax, dword [ecx + 4]
jle 0x446a12
push 0x60fce4
call fcn.0052c12f
add esp, 4
cmp dword [0x60fce4], 0xffffffff
jne 0x446a12
mov dword [ebp - 4], 0
push 0x6666ff
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov dword [0x60fce0], eax
mov dword [ebp - 4], 0xffffffff
push 0x60fce4
call fcn.0052c0f0
add esp, 4
cmp dword [edi + 0x28], 1
je 0x446a1f
xor eax, eax
jmp 0x446e35
push 0xffffff
push ebx
call dword [sym.imp.GDI32.dll_SetTextColor]
push 0x6666ff
push ebx
call dword [sym.imp.GDI32.dll_SetBkColor]
mov eax, dword [0x60fce0]
jmp 0x446e35
mov esi, dword [sym.imp.USER32.dll_GetDlgItem]
movzx eax, bx
mov byte [ebp - 0x9d], 0
mov byte [ebp - 0xa0], 1
mov byte [ebp - 0x9e], 0
mov byte [ebp - 0xa1], 0
mov byte [ebp - 0x9f], 0
cmp eax, 0x695
ja 0x446b2e
je 0x446b1e
cmp eax, 0x692
ja 0x446b0a
je 0x446ad6
sub eax, 1
je 0x446bb4
sub eax, 1
jne 0x446b5b
mov eax, dword [edi + 0x24]
push 0x1c
mov ecx, dword [eax + 0xac]
mov ecx, dword [ecx]
call fcn.00440260
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0xac]
mov eax, dword [eax]
push dword [eax + 0xc]
call dword [sym.imp.USER32.dll_SetFocus]
mov eax, dword [edi]
mov ecx, edi
push 0
call dword [eax + 0xc]
mov eax, 1
jmp 0x446e35
mov eax, ebx
shr eax, 0x10
cmp eax, 0x300
jne 0x446b5b
push 0x69a
mov ecx, edi
mov byte [ebp - 0x9d], 1
call fcn.004443c0
push 0x695
mov ecx, edi
mov bl, al
call fcn.004443c0
mov bh, al
jmp 0x446c10
cmp eax, 0x693
jb 0x446b5b
cmp eax, 0x694
jbe 0x446bb4
jmp 0x446b5b
mov bh, 1
mov byte [ebp - 0x9d], 1
mov bl, bh
jmp 0x446c10
cmp eax, 0xa802
ja 0x446b54
je 0x446bb4
cmp eax, 0x69a
je 0x446b47
cmp eax, 0xa7fa
je 0x446bb4
jmp 0x446b5b
mov bh, byte [ebp - 0x9f]
mov bl, 1
jmp 0x446c10
cmp eax, 0xa803
je 0x446b72
push dword [ebp + 0x14]
push ebx
push 0x111
push dword [edi + 0xc]
call dword [sym.imp.USER32.dll_DefWindowProcW]
jmp 0x446e35
push 0x692
push dword [edi + 0xc]
call esi
mov esi, eax
call dword [sym.imp.USER32.dll_GetFocus]
cmp eax, esi
je 0x446bae
push 0x692
push dword [edi + 0xc]
call dword [sym.imp.USER32.dll_GetDlgItem]
push 1
push eax
push 0x28
push dword [edi + 0xc]
call dword [sym.imp.USER32.dll_PostMessageW]
mov eax, 1
jmp 0x446e35
mov esi, dword [sym.imp.USER32.dll_GetDlgItem]
mov eax, 0x694
mov byte [ebp - 0x9d], 1
mov byte [ebp - 0x9e], 1
cmp bx, ax
je 0x446c01
mov eax, 0xa7fa
cmp bx, ax
je 0x446c01
mov eax, 0xa803
cmp bx, ax
je 0x446c01
cmp bx, 1
jne 0x446bf8
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
je 0x446c01
mov byte [ebp - 0xa0], 0
jmp 0x446c08
mov byte [ebp - 0xa0], 1
mov bl, byte [ebp - 0xa1]
mov bh, bl
lea ecx, [ebp - 0x9c]
call fcn.0043dc20
mov dword [ebp - 4], 1
xor eax, eax
cmp byte [ebp - 0x9e], al
push 0
push 0
setne al
mov byte [ebp - 0x9c], 0
push 0xf0
inc eax
push 0x695
push dword [edi + 0xc]
mov dword [ebp - 0x98], eax
mov al, byte [ebp - 0xa0]
mov byte [ebp - 0x99], al
call dword [sym.imp.USER32.dll_SendDlgItemMessageW]
dec eax
neg eax
push 0x692
push dword [edi + 0xc]
sbb eax, eax
inc eax
mov byte [ebp - 0x9b], al
call esi
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00443be0
add esp, 8
mov byte [ebp - 4], 2
cmp byte [ebp - 0x9d], 0
je 0x446d40
cmp dword [ebp - 0x14], 8
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0xa8], 0
jae 0x446ca8
lea eax, [ebp - 0x28]
push 0
lea ecx, [ebp - 0xa8]
push ecx
lea ecx, [ebp - 0x9c]
push ecx
mov ecx, dword [edi + 0x24]
push eax
call fcn.00444f50
push 0xffffffffffffffff
mov byte [ebp - 0x9e], al
lea ecx, [ebp - 0x8c]
push 0
lea eax, [ebp - 0x28]
push eax
call fcn.00406ac0
mov ecx, dword [edi + 0x24]
lea eax, [ebp - 0x9c]
push 0xffffffffffffffff
push 0
push 0
push eax
push 2
call fcn.00444d70
push eax
push dword [ebp - 0xa8]
mov ecx, edi
call fcn.0044a360
test bh, bh
je 0x446d40
cmp byte [ebp - 0x9e], 0
jne 0x446d40
lea eax, [ebp - 0xb4]
push eax
mov eax, dword [edi + 0x24]
mov ecx, dword [eax + 0xac]
mov ecx, dword [ecx]
call fcn.00443b40
mov eax, dword [edi + 0x24]
push dword [ebp - 0xb4]
push 0xffffffffffffffff
mov ecx, dword [eax + 0xac]
push 0x870
mov ecx, dword [ecx]
call fcn.0040d9f0
test bl, bl
je 0x446d88
cmp dword [ebp - 0x18], 0
je 0x446d6d
push 0
push 0
push 0xf0
push 0x69a
push dword [edi + 0xc]
call dword [sym.imp.USER32.dll_SendDlgItemMessageW]
mov byte [ebp - 0xa8], 1
cmp eax, 1
je 0x446d74
mov byte [ebp - 0xa8], 0
lea eax, [ebp - 0x9c]
mov ecx, edi
push eax
push dword [ebp - 0xa8]
call fcn.00444630
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x28]
call fcn.004038c0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x9c]
call fcn.0043e780
mov eax, 1
jmp 0x446e35
push dword [edi + 0xc]
call dword [sym.imp.USER32.dll_GetParent]
mov esi, eax
mov dword [ebp - 0xac], 0
push 1
lea eax, [ebp - 0xac]
mov dword [ebp - 0xa8], 0
push eax
push esi
push dword [edi + 0xc]
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0xb0], 0
call dword [sym.imp.USER32.dll_MapWindowPoints]
lea eax, [ebp - 0xb4]
push eax
push dword [ebp - 0xa8]
push dword [ebp - 0xac]
push ebx
call dword [sym.imp.GDI32.dll_OffsetWindowOrgEx]
push 0
push ebx
push 0x14
push esi
call dword [sym.imp.USER32.dll_SendMessageW]
push 0
push dword [ebp - 0xb0]
mov esi, eax
push dword [ebp - 0xb4]
push ebx
call dword [sym.imp.GDI32.dll_SetWindowOrgEx]
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0052c233
mov esp, ebp
pop ebp
ret 0x10