Function at 0x405776
Capabilities:
Open clipboard
Read clipboard data
Write clipboard data

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push edi
push 0xd
call dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
xor edi, edi
test eax, eax
jne 0x4057a3
push edi
push edi
push 0x882
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_SendMessageW]
xor eax, eax
inc eax
jmp 0x405986
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
push edi
push 0x7d8
push ebx
call dword [sym.imp.USER32.dll_SendMessageW]
push edi
push edi
push 0x7d9
push ebx
mov esi, eax
call dword [sym.imp.USER32.dll_SendMessageW]
push edi
cmp esi, eax
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push edi
je 0x40582b
push 0x977
push ebx
call esi
cmp eax, 1
jne 0x4057f1
push 0xc356
push eax
call fcn.004024f0
pop ecx
pop ecx
jmp 0x405903
push edi
push edi
push 0x861
push ebx
call esi
push edi
push edi
push 0x85f
push ebx
mov esi, eax
call dword [sym.imp.USER32.dll_SendMessageW]
sub esi, eax
lea eax, [esi + 1]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push eax
push edi
mov dword [ebp - 4], eax
push 0x871
jmp 0x40584e
push 0x7d6
push ebx
call esi
inc eax
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
push eax
push eax
mov dword [ebp - 4], eax
call dword [sym.imp.KERNEL32.dll_LocalSize]
push eax
push 0x886
push ebx
call esi
push edi
push edi
push 0x859
push ebx
call esi
mov esi, dword [ebp - 4]
mov edx, 0xfde9
push edi
push edi
push 0xffffffffffffffff
xor ecx, ecx
cmp eax, edx
push esi
cmove ecx, edx
push edi
push ecx
mov dword [ebp - 8], ecx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov dword [ebp - 4], eax
test eax, eax
jle 0x4058dd
push str._r_n_r_n
call dword [sym.imp.KERNEL32.dll_lstrlenW]
add eax, dword [ebp - 4]
lea eax, [eax*2 + 2]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
push str._r_n_r_n
push eax
mov dword [ebp - 4], eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_LocalSize]
shr eax, 1
push eax
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ecx, dword [ebp - 4]
lea eax, [ecx + eax*2]
push eax
push 0xffffffffffffffff
push esi
push edi
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov edi, dword [ebp - 4]
jmp 0x4058e5
mov edi, 0x5b7824
mov dword [ebp - 4], edi
push esi
mov esi, dword [sym.imp.KERNEL32.dll_LocalFree]
call esi
push ebx
call dword [sym.imp.USER32.dll_GetParent]
push eax
call dword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
jne 0x405907
push edi
call esi
xor eax, eax
jmp 0x405984
push 0xd
call dword [sym.imp.USER32.dll_GetClipboardData]
mov edi, dword [sym.imp.KERNEL32.dll_GlobalLock]
push eax
mov dword [ebp - 0xc], eax
call edi
mov ebx, eax
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push dword [ebp - 4]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
add esi, eax
lea ecx, [esi*2 + 2]
push ecx
push 0x42
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push eax
mov dword [ebp - 8], eax
call edi
mov esi, eax
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push dword [ebp - 4]
push esi
call dword [sym.imp.KERNEL32.dll_lstrcatW]
mov edi, dword [ebp - 8]
mov esi, dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push edi
call esi
push dword [ebp - 0xc]
call esi
call dword [sym.imp.USER32.dll_EmptyClipboard]
push edi
push 0xd
call dword [sym.imp.USER32.dll_SetClipboardData]
call dword [sym.imp.USER32.dll_CloseClipboard]
xor eax, eax
inc eax
pop esi
pop ebx
pop edi
leave
ret