Function at 0x246eb80
Capabilities:
Open clipboard
Write clipboard data

Disassembly:
sub esp, 0xc
push ebx
push ebp
push esi
push edi
mov edi, edx
xor ebx, ebx
cmp edi, ebx
mov dword [esp + 0x14], edi
mov esi, ecx
je 0x246edaa
mov ebp, dword [esp + 0x20]
cmp ebp, ebx
je 0x246edaa
push 0x24dd0bc
call dword [sym.imp.user32.dll_RegisterClipboardFormatA_1]
cmp eax, ebx
mov dword [esp + 0x18], eax
je 0x246edaa
push esi
call dword [sym.imp.user32.dll_OpenClipboard]
test eax, eax
je 0x246edaa
call dword [sym.imp.user32.dll_EmptyClipboard]
lea eax, [esp + 0x10]
push eax
push 0x30000000
mov edx, ebp
mov ecx, edi
mov dword [esp + 0x18], ebx
call fcn.0247c610
mov esi, eax
cmp esi, ebx
je 0x246ec56
mov eax, dword [esp + 0x10]
cmp eax, 1
jb 0x246ec56
push eax
push 0x2002
call dword [sym.imp.kernel32.dll_GlobalAlloc]
mov ebp, eax
cmp ebp, ebx
je 0x246eda4
push ebp
call dword [sym.imp.kernel32.dll_GlobalLock]
cmp eax, ebx
je 0x246ed9d
mov ecx, dword [esp + 0x10]
mov edx, ecx
shr ecx, 2
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x10]
push ebp
mov byte [eax + ecx - 1], bl
call dword [sym.imp.kernel32.dll_GlobalUnlock]
mov edx, dword [esp + 0x18]
push ebp
push edx
call dword [sym.imp.user32.dll_SetClipboardData]
test eax, eax
jne 0x246ec56
push ebp
call dword [sym.imp.kernel32.dll_GlobalFree]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x10]
push eax
push 0x20000000
call fcn.0247c610
mov esi, eax
cmp esi, ebx
je 0x246ed0e
mov eax, dword [esp + 0x10]
cmp eax, 2
jb 0x246ed0e
push eax
push 0x2002
call dword [sym.imp.kernel32.dll_GlobalAlloc]
mov ebp, eax
cmp ebp, ebx
je 0x246eda4
push ebp
call dword [sym.imp.kernel32.dll_GlobalLock]
cmp eax, ebx
je 0x246ed9d
mov ecx, dword [esp + 0x10]
mov edx, ecx
shr ecx, 2
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x10]
xor esi, esi
test ecx, 0xfffffffe
jbe 0x246ecec
mov edx, eax
mov cx, word [edx]
xor ebx, ebx
mov bl, ch
inc esi
add edx, 2
mov bh, cl
mov word [edx - 2], bx
mov ecx, dword [esp + 0x10]
mov edi, ecx
shr edi, 1
cmp esi, edi
jb 0x246eccd
xor ebx, ebx
shr ecx, 1
push ebp
mov word [eax + ecx*2 - 2], bx
call dword [sym.imp.kernel32.dll_GlobalUnlock]
push ebp
push 0xd
call dword [sym.imp.user32.dll_SetClipboardData]
test eax, eax
jne 0x246ed0e
push ebp
call dword [sym.imp.kernel32.dll_GlobalFree]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x10]
push eax
push 0x10000000
call fcn.0247c610
mov esi, eax
cmp esi, ebx
je 0x246ed88
mov eax, dword [esp + 0x10]
cmp eax, 1
jb 0x246ed88
push eax
push 0x2002
call dword [sym.imp.kernel32.dll_GlobalAlloc]
mov ebp, eax
cmp ebp, ebx
je 0x246eda4
push ebp
call dword [sym.imp.kernel32.dll_GlobalLock]
cmp eax, ebx
je 0x246ed9d
mov ecx, dword [esp + 0x10]
mov edx, ecx
shr ecx, 2
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x10]
push ebp
mov byte [eax + ecx - 1], bl
call dword [sym.imp.kernel32.dll_GlobalUnlock]
push ebp
push 1
call dword [sym.imp.user32.dll_SetClipboardData]
test eax, eax
jne 0x246ed88
push ebp
call dword [sym.imp.kernel32.dll_GlobalFree]
call dword [sym.imp.user32.dll_CloseClipboard]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xc
ret 4
push ebp
call dword [sym.imp.kernel32.dll_GlobalFree]
call dword [sym.imp.user32.dll_CloseClipboard]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xc
ret 4