Function at 0x4c2640
Capabilities:
Open clipboard
Write clipboard data

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov eax, dword [ebp + 0xc]
imul eax, eax, 0x238
cmp dword [eax + 0x5a899c], 0
jge 0x4c265d
jmp 0x4c292e
mov ecx, dword [ebp + 0xc]
imul ecx, ecx, 0x238
mov edx, dword [ecx + 0x5a899c]
mov dword [ebp - 8], edx
mov eax, dword [ebp + 0xc]
imul eax, eax, 0x238
mov ecx, dword [eax + 0x5a89a0]
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
sub edx, dword [ebp - 8]
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0xc]
lea ecx, [eax + eax + 2]
push ecx
push 0x42
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x4c26b0
push 0
call dword [sym.imp.USER32.dll_MessageBeep]
jmp 0x4c292e
mov edx, dword [ebp - 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jne 0x4c26da
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
push 0
call dword [sym.imp.USER32.dll_MessageBeep]
jmp 0x4c292e
mov ecx, dword [ebp - 0xc]
push ecx
mov edx, dword [ebp + 0xc]
imul edx, edx, 0x238
mov eax, dword [ebp - 8]
lea ecx, [edx + eax*2 + 0x5a878c]
push ecx
mov edx, dword [ebp - 0x18]
push edx
call fcn.00509a15
add esp, 0xc
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x18]
mov word [edx + ecx*2], ax
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov dword [ebp - 0x24], 0
mov ecx, dword [ebp + 0xc]
imul ecx, ecx, 0x238
mov edx, dword [ecx + 0x5a89b0]
movzx eax, byte [edx + 0x17]
cmp eax, 0x86
jne 0x4c273c
mov dword [ebp - 0x24], 0x3a8
mov ecx, dword [ebp + 0xc]
imul ecx, ecx, 0x238
mov edx, dword [ecx + 0x5a89b0]
movzx eax, byte [edx + 0x17]
cmp eax, 0x88
jne 0x4c275d
mov dword [ebp - 0x24], 0x3b6
mov ecx, dword [ebp + 0xc]
imul ecx, ecx, 0x238
mov edx, dword [ecx + 0x5a89b0]
movzx eax, byte [edx + 0x17]
cmp eax, 0x81
jne 0x4c277e
mov dword [ebp - 0x24], 0x3b5
mov ecx, dword [ebp + 0xc]
imul ecx, ecx, 0x238
mov edx, dword [ecx + 0x5a89b0]
movzx eax, byte [edx + 0x17]
cmp eax, 0x80
jne 0x4c279f
mov dword [ebp - 0x24], 0x3a4
cmp dword [ebp - 0x24], 0
je 0x4c28ac
mov ecx, dword [ebp - 0xc]
add ecx, 2
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0xc]
shl edx, 1
push edx
push 0x42
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jne 0x4c27e0
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
push 0
call dword [sym.imp.USER32.dll_MessageBeep]
jmp 0x4c292e
mov ecx, dword [ebp - 0x20]
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0
jne 0x4c2814
mov edx, dword [ebp - 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, dword [ebp - 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
push 0
call dword [sym.imp.USER32.dll_MessageBeep]
jmp 0x4c292e
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x2c]
cmp edx, dword [ebp - 4]
jge 0x4c289a
mov eax, dword [ebp + 0xc]
imul eax, eax, 0x238
mov ecx, dword [ebp - 0x2c]
movzx edx, word [eax + ecx*2 + 0x5a878c]
and edx, 0x80
je 0x4c2847
mov dword [ebp - 0x1c], 2
jmp 0x4c284e
mov dword [ebp - 0x1c], 1
mov eax, dword [ebp - 0xc]
push eax
mov ecx, dword [ebp - 0x28]
push ecx
mov edx, dword [ebp - 0x1c]
push edx
mov eax, dword [ebp + 0xc]
imul eax, eax, 0x238
mov ecx, dword [ebp - 0x2c]
lea edx, [eax + ecx*2 + 0x5a878c]
push edx
push 0
mov eax, dword [ebp - 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x28]
add ecx, 2
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp - 0xc]
sub edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x2c]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x2c], eax
jmp 0x4c281a
xor ecx, ecx
mov edx, dword [ebp - 0x28]
mov word [edx], cx
mov eax, dword [ebp - 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
jne 0x4c28de
mov edx, dword [ebp - 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
cmp dword [ebp - 0x24], 0
je 0x4c28d4
mov eax, dword [ebp - 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
push 0
call dword [sym.imp.USER32.dll_MessageBeep]
jmp 0x4c292e
call dword [sym.imp.USER32.dll_EmptyClipboard]
test eax, eax
jne 0x4c290a
call dword [sym.imp.USER32.dll_CloseClipboard]
mov ecx, dword [ebp - 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
cmp dword [ebp - 0x24], 0
je 0x4c2908
mov edx, dword [ebp - 0x20]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
jmp 0x4c292e
mov eax, dword [ebp - 0x10]
push eax
push 1
call dword [sym.imp.USER32.dll_SetClipboardData]
cmp dword [ebp - 0x24], 0
je 0x4c2928
mov ecx, dword [ebp - 0x20]
push ecx
push 0xd
call dword [sym.imp.USER32.dll_SetClipboardData]
call dword [sym.imp.USER32.dll_CloseClipboard]
mov esp, ebp
pop ebp
ret