Function at 0x408e20
Capabilities:
Log keystrokes via polling
Open clipboard
Read clipboard data
Write clipboard data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x41be33
mov eax, dword fs:[0]
push eax
sub esp, 0x8e0
mov eax, dword [0x425040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [0x4259d8]
mov edi, dword [ebp + 8]
mov dword [ebp - 0x8e0], edi
test esi, esi
jne 0x4092f6
push 0x78
call fcn.00409ded
add esp, 4
mov dword [ebp - 0x8c4], eax
mov dword [ebp - 4], esi
test eax, eax
je 0x408e84
mov ecx, eax
call fcn.00404280
jmp 0x408e86
xor eax, eax
push 0x11
mov dword [ebp - 4], 0xffffffff
mov dword [0x4259d8], eax
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, dword [0x4259d8]
push 1
push 1
sar ax, 0xf
mov edx, dword [ecx]
push str.test
mov word [ebp - 0x8c2], ax
call dword [edx + 0xc]
mov ecx, dword [0x4259d8]
call fcn.004044a0
mov ecx, dword [0x4259d8]
push 0x402
push edi
call fcn.00403960
mov dword [ebp - 0x8ec], 0
mov dword [ebp - 0x8e8], 0
mov dword [ebp - 0x8e4], 0
mov dword [ebp - 4], 1
mov dword [ebp - 0x8d0], 0
mov dword [ebp - 0x8cc], 0
mov dword [ebp - 0x8c8], 0
mov dword [ebp - 0x8dc], 0
mov dword [ebp - 0x8d8], 0
mov dword [ebp - 0x8d4], 0
mov ecx, dword [0x4259d8]
lea eax, [ebp - 0x8dc]
push eax
lea eax, [ebp - 0x8d0]
mov byte [ebp - 4], 3
push eax
lea eax, [ebp - 0x8ec]
push eax
call fcn.00404f60
push 0xc8
lea eax, [ebp - 0xd8]
push 0
push eax
call fcn.0040b070
add esp, 0xc
mov dword [ebp - 0x8b4], str.Password
lea eax, [ebp - 0xd8]
mov dword [ebp - 0x8b0], str.Enter_Password:
mov dword [ebp - 0x8ac], eax
lea eax, [ebp - 0x8b4]
push eax
push 0x408bc0
push edi
push str.AT_DIALOG_EN
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.USER32.dll_DialogBoxParamW]
mov ecx, dword [0x4259d8]
lea eax, [ebp - 0xd8]
push 3
push str.group
push eax
push 0
call fcn.00405680
test eax, eax
je 0x409060
cmp dword [eax + 0x64], 7
lea esi, [eax + 0x50]
jbe 0x408fdf
mov esi, dword [esi]
push 0
call dword [sym.imp.USER32.dll_OpenClipboard]
call dword [sym.imp.USER32.dll_EmptyClipboard]
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x408ff2
sub ecx, edx
sar ecx, 1
lea eax, [ecx*2 + 0xc8]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov edi, eax
push edi
call dword [sym.imp.KERNEL32.dll_GlobalLock]
sub eax, esi
nop dword [eax]
movzx ecx, word [esi]
lea esi, [esi + 2]
mov word [esi + eax - 2], cx
test cx, cx
jne 0x409020
push edi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push edi
push 0xd
call dword [sym.imp.USER32.dll_SetClipboardData]
push 0
push str.Server
push str.String_copied
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
call dword [sym.imp.USER32.dll_CloseClipboard]
mov edi, dword [ebp - 0x8e0]
cmp word [ebp - 0x8c2], 0
je 0x409188
push 0
push 0x41c5d0
push str.Press_OK_to_take_new_key_from_clipboard.
push edi
call dword [sym.imp.USER32.dll_MessageBoxW]
push 0x7d0
lea eax, [ebp - 0x8a8]
push 0
push eax
call fcn.0040b070
add esp, 0xc
push 0
call dword [sym.imp.USER32.dll_OpenClipboard]
push 0xd
call dword [sym.imp.USER32.dll_GetClipboardData]
mov esi, eax
push esi
call dword [sym.imp.KERNEL32.dll_GlobalSize]
mov edi, eax
test edi, edi
je 0x4090d5
push esi
call dword [sym.imp.KERNEL32.dll_GlobalLock]
push edi
push eax
lea eax, [ebp - 0x8a8]
push eax
call fcn.0040b2c0
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
call dword [sym.imp.USER32.dll_CloseClipboard]
xorps xmm0, xmm0
mov dword [ebp - 0x8b0], 0
lea ecx, [ebp - 0x8a8]
mov dword [ebp - 0x8ac], 0
movups xmmword [ebp - 0x8c0], xmm0
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x409102
sub ecx, edx
lea eax, [ebp - 0x8a8]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x8c0]
call fcn.00406230
cmp dword [ebp - 0x8ac], 7
lea eax, [ebp - 0x8c0]
mov ecx, dword [0x4259d8]
cmova eax, dword [ebp - 0x8c0]
push eax
mov byte [ebp - 4], 4
call fcn.004045c0
mov ecx, dword [ebp - 0x8ac]
cmp ecx, 7
jbe 0x409188
mov edx, dword [ebp - 0x8c0]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40917e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40932d
push ecx
push edx
call fcn.00409e1d
add esp, 8
mov edx, dword [ebp - 0x8dc]
test edx, edx
je 0x4091e3
mov ecx, dword [ebp - 0x8d4]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x4091bb
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409332
push ecx
push edx
call fcn.00409e1d
add esp, 8
mov dword [ebp - 0x8dc], 0
mov dword [ebp - 0x8d8], 0
mov dword [ebp - 0x8d4], 0
mov esi, dword [ebp - 0x8d0]
test esi, esi
je 0x4092be
mov edi, dword [ebp - 0x8cc]
cmp esi, edi
je 0x409259
nop dword [eax + eax]
mov ecx, dword [esi + 0x14]
cmp ecx, 7
jbe 0x409239
mov eax, dword [esi]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x40922f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409332
mov eax, edx
push ecx
push eax
call fcn.00409e1d
add esp, 8
xor eax, eax
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
mov word [esi], ax
add esi, 0x18
cmp esi, edi
jne 0x409200
mov esi, dword [ebp - 0x8d0]
mov ecx, dword [ebp - 0x8c8]
mov eax, 0x2aaaaaab
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
mov eax, esi
shl ecx, 3
cmp ecx, 0x1000
jb 0x409296
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409332
push ecx
push esi
call fcn.00409e1d
add esp, 8
mov dword [ebp - 0x8d0], 0
mov dword [ebp - 0x8cc], 0
mov dword [ebp - 0x8c8], 0
mov edx, dword [ebp - 0x8ec]
test edx, edx
je 0x409312
mov ecx, dword [ebp - 0x8e4]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x4092ed
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409332
push ecx
push edx
call fcn.00409e1d
jmp 0x40930f
mov ecx, esi
call fcn.004043c0
push 0x78
push esi
call fcn.00409e1d
mov dword [0x4259d8], 0
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00409e2b
mov esp, ebp
pop ebp
ret
call fcn.0040d0af
call fcn.0040d0af
int3