Function at 0x43bd49
Capabilities:
Check for time delay via gettickcount
Log keystrokes via polling

Disassembly:
push 0xa4
mov eax, 0x50e5f0
call fcn.004f41e2
mov edi, ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 0xa0], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
xor ebx, ebx
cmp dword [ebp + 0xc], 1
mov dword [ebp - 0x90], eax
jne 0x43bd91
push 0x12
call esi
mov ecx, 0x8000
test cx, ax
je 0x43bd91
mov byte [ebp - 0x6f], 1
jmp 0x43bd9a
cmp dword [ebp + 0xc], 1
mov byte [ebp - 0x6f], bl
jne 0x43bdae
push 0x11
call esi
mov ecx, 0x8000
test cx, ax
je 0x43bdae
mov byte [ebp - 0x6e], 1
jmp 0x43bdb7
cmp dword [ebp + 0xc], 1
mov byte [ebp - 0x6e], bl
jne 0x43bdc9
push 0x10
call esi
mov ecx, 0x8000
mov byte [ebp - 0x6d], 1
test cx, ax
jne 0x43bdcc
mov byte [ebp - 0x6d], bl
lea ecx, [ebp - 0xb0]
mov byte [ebp - 0x70], bl
call fcn.004d840a
lea eax, [ebp - 0xb0]
mov dword [ebp - 4], ebx
push ebx
push eax
call fcn.004d3e20
pop ecx
pop ecx
test eax, eax
js case.default.0x43bf35
mov ecx, dword [ebp - 0xac]
test ecx, ecx
je case.default.0x43bf35
call fcn.004de78b
mov esi, eax
mov dword [ebp - 0x78], esi
test esi, esi
je case.default.0x43bf35
mov ecx, dword [edi + 0x20]
mov dword [ebp - 0x8c], ebx
mov byte [ebp - 0x71], bl
mov byte [ebp - 0x72], bl
mov edi, dword [ecx + 0x28]
mov dword [ebp - 0x80], edi
test edi, edi
jne 0x43bf6f
mov eax, dword [0x5a23ec]
cmp byte [eax + 0x10ffc], 0
je 0x43bf8f
push 1
mov ecx, esi
call fcn.0049715d
test al, al
je 0x43bf8f
call dword [sym.imp.USER32.dll_CreatePopupMenu]
mov esi, dword [sym.imp.USER32.dll_AppendMenuW]
mov edi, eax
push str.Paste__Enter
push 5
push ebx
push edi
call esi
xor ebx, ebx
cmp dword [ebp + 0xc], 1
push str.Goto__Enter
push 6
setne bl
push ebx
push edi
call esi
push str.Edit__Enter
push 7
push ebx
push edi
call esi
push str.View__Enter
push 8
push ebx
push edi
call esi
push str.Paste_no_prefix
push 1
push 0x40
push edi
call esi
push str.Goto_prefix
push 2
push ebx
push edi
call esi
push str.Edit_prefix
push 3
push ebx
push edi
call esi
push str.View_prefix
push 4
push ebx
push edi
call esi
lea eax, [ebp - 0x98]
xor ebx, ebx
push eax
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0x94], ebx
call dword [sym.imp.USER32.dll_GetCursorPos]
push dword [0x5a22a4]
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov ecx, dword [0x5a22a0]
push ebx
push dword [0x5a22a4]
push dword [ebp - 0x94]
mov ecx, dword [ecx + 0x3e60]
push dword [ebp - 0x98]
push 0x120
push edi
push 7
call fcn.0045ccbd
push edi
mov esi, eax
call dword [sym.imp.USER32.dll_DestroyMenu]
lea eax, [esi - 1]
mov byte [ebp - 0x6d], bl
mov byte [ebp - 0x6e], bl
mov byte [ebp - 0x6f], bl
cmp eax, 7
ja case.default.0x43bf35
jmp dword [eax*4 + 0x43c379]
cmp esi, 5
jmp 0x43bf5a
mov byte [ebp - 0x6f], 1
cmp esi, 6
jmp 0x43bf5a
mov byte [ebp - 0x6e], 1
cmp esi, 7
jmp 0x43bf5a
mov byte [ebp - 0x6d], 1
cmp esi, 8
sete byte [ebp - 0x70]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [ebp - 0x78]
mov dword [ebp - 0x90], eax
jmp 0x43bf8f
push 1
mov ecx, esi
call fcn.0049715d
test al, al
je 0x43bf8b
mov edi, ebx
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x8c], 1
test edi, edi
jne 0x43bf9b
mov ecx, esi
call fcn.00489780
mov byte [ebp - 0x71], al
jmp 0x43bfa5
mov ecx, esi
call fcn.00497abb
mov byte [ebp - 0x72], al
push 0x20a0
call fcn.004e1c0a
mov edi, eax
mov dword [esp], 0x2014
mov dword [ebp - 0x7c], edi
call fcn.004e1c0a
mov esi, eax
mov dword [ebp - 0x84], esi
pop ecx
test edi, edi
je 0x43c34c
test esi, esi
je 0x43c345
cmp dword [ebp + 0xc], 0
mov dword [ebp - 0x88], ebx
jle 0x43c30c
cmp dword [ebp - 0x80], 0
jne 0x43c00c
cmp byte [ebp - 0x71], 0
mov ecx, str._Text__
mov eax, str.print__
cmove eax, ecx
push eax
push 0x1050
push edi
call fcn.00401a0b
push 0x531a28
push 0x100a
push esi
call fcn.00401a0b
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, bx
jne 0x43c021
sub ecx, edx
sar ecx, 1
push 0x800
lea esi, [esi + ecx*2]
push esi
push dword [ebp - 0x88]
push dword [ebp - 0xa0]
call dword [sym.imp.SHELL32.dll_DragQueryFileW]
cmp eax, 0x800
jae 0x43c2ea
mov edi, esi
mov ecx, esi
mov dword [ebp - 0x9c], ecx
lea edx, [edi + 2]
mov ax, word [edi]
add edi, 2
cmp ax, bx
jne 0x43c063
sub edi, edx
mov byte [ebp - 0x73], 1
sar edi, 1
cmp dword [ebp - 0x80], 0
je 0x43c147
cmp byte [ebp - 0x72], 0
je 0x43c14b
lea ecx, [ebp - 0x6c]
call fcn.004e25a1
mov edi, dword [ebp - 0x78]
lea eax, [ebp - 0x6c]
push eax
mov ecx, edi
mov byte [ebp - 4], 1
call fcn.00487e6b
push eax
push ebx
push esi
call fcn.00420bf7
add esp, 0x10
test eax, eax
je 0x43c0ca
lea ecx, [ebp - 0x6c]
call fcn.0044612f
push eax
push 0x800
push esi
call fcn.00401a0b
mov byte [ebp - 0x73], bl
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], bl
call fcn.004e25e0
cmp byte [ebp - 0x73], 0
je 0x43c1b6
jmp 0x43c14e
movzx eax, word [ecx]
test ax, ax
je 0x43c14b
push 0x22
pop edx
cmp ax, dx
je 0x43c0f9
push 0x5c
pop edx
cmp ax, dx
jne 0x43c13d
lea edx, [ecx + 2]
lea eax, [edi + 1]
mov dword [ebp - 0x94], edx
push eax
push ecx
sub ecx, dword [ebp - 0x84]
mov eax, 0x100a
add ecx, 2
sar ecx, 1
sub eax, ecx
push eax
push edx
call fcn.004ff951
mov eax, dword [ebp - 0x9c]
add esp, 0x10
push 0x22
pop ecx
cmp word [eax], cx
jne 0x43c137
push 0x5c
pop ecx
mov word [eax], cx
mov ecx, dword [ebp - 0x94]
add ecx, 2
dec edi
mov dword [ebp - 0x9c], ecx
test edi, edi
jg 0x43c0e1
mov edi, dword [ebp - 0x78]
push 0x20
push esi
call fcn.004f5617
pop ecx
pop ecx
test eax, eax
je 0x43c1b6
add esi, 0xfffffffe
cmp dword [ebp - 0x80], 0
push 0x22
pop eax
mov word [esi], ax
jne 0x43c196
sub esi, 2
push 0x5c
pop eax
mov ecx, esi
sub ecx, dword [ebp - 0x84]
mov word [esi], ax
mov eax, 0x100a
sar ecx, 1
push 0x531a3c
sub eax, ecx
push eax
push esi
call fcn.004ff878
add esp, 0xc
jmp 0x43c1c0
mov ecx, esi
mov eax, 0x100a
sub ecx, dword [ebp - 0x84]
sar ecx, 1
push 0x524d9c
sub eax, ecx
push eax
push esi
call fcn.004ff878
add esp, 0xc
cmp dword [ebp - 0x80], 0
jne 0x43c272
cmp byte [ebp - 0x6f], 0
jne 0x43c1d8
cmp byte [ebp - 0x6e], 0
jne 0x43c1f3
mov al, byte [ebp - 0x6d]
test al, al
je 0x43c226
mov edi, dword [ebp - 0x7c]
jmp 0x43c209
mov edi, dword [ebp - 0x7c]
push str.goto:
push 0x1050
push edi
call fcn.004019cd
cmp byte [ebp - 0x6e], 0
je 0x43c206
jmp 0x43c1f6
mov edi, dword [ebp - 0x7c]
push str.edit:
push 0x1050
push edi
call fcn.004019cd
mov al, byte [ebp - 0x6d]
test al, al
je 0x43c21d
push str.view:
push 0x1050
push edi
call fcn.004019cd
mov byte [ebp - 0x6d], bl
mov byte [ebp - 0x6e], bl
mov byte [ebp - 0x6f], bl
mov edi, dword [ebp - 0x7c]
push esi
mov esi, 0x1050
push esi
push edi
call fcn.004019cd
cmp dword [ebp - 0x8c], 0
mov ecx, 0x52eea8
mov eax, 0x524d9c
cmove eax, ecx
push eax
push esi
push edi
call fcn.004019cd
cmp byte [ebp - 0x71], 0
je 0x43c264
push 0x521a98
push esi
push edi
call fcn.004019cd
mov ecx, dword [0x5a22a0]
push edi
call fcn.00418561
jmp 0x43c29a
push ebx
push 1
push esi
push ebx
mov ecx, edi
call fcn.0048cb64
cmp dword [ebp - 0x8c], 0
jne 0x43c297
push ebx
push 1
push 0x5225e4
push ebx
mov ecx, edi
call fcn.0048cb64
mov edi, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x88]
inc eax
cmp eax, dword [ebp + 0xc]
jge 0x43c2ea
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
sub eax, dword [ebp - 0x90]
cmp eax, 0x1388
jb 0x43c2ea
mov ecx, dword [0x5a22a0]
push ebx
push dword [0x5a22a4]
call fcn.0040eff3
push eax
push 0x34
push str.Drop_operation_is_too_long._Continue_
call fcn.00421ef1
add esp, 0x14
cmp eax, 6
jne 0x43c306
call esi
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x88]
mov esi, dword [ebp - 0x84]
inc eax
mov dword [ebp - 0x88], eax
cmp eax, dword [ebp + 0xc]
jl 0x43bfe9
mov esi, dword [ebp - 0x84]
cmp dword [ebp - 0x80], 0
jne 0x43c335
cmp byte [ebp - 0x70], 0
je 0x43c335
cmp byte [ebp - 0x71], 0
mov ecx, 0x531ad0
mov eax, str.Keys__Enter__
cmove eax, ecx
mov ecx, dword [0x5a22a0]
push eax
call fcn.00418561
push edi
call fcn.004e1bea
push esi
call fcn.004e1bea
pop ecx
pop ecx
jmp 0x43c361
push edi
call fcn.004e1bea
pop ecx
test esi, esi
je 0x43c357
push esi
call fcn.004e1bea
pop ecx
mov ebx, 0x8000ffff
jmp 0x43c361
xor ebx, ebx
inc ebx
lea ecx, [ebp - 0xb0]
call fcn.004d84a5
mov eax, ebx
call fcn.004f418c
ret 0xc