Function at 0x7378d82c
Capabilities:
Open clipboard
Write clipboard data

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x880
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 4]
test byte [ecx + 0x1d], 0x20
mov eax, dword [ecx + 4]
mov dword [ebp - 4], eax
je 0x7378d84e
add eax, 0x28
jmp 0x7378d85b
mov eax, dword [ecx]
mov eax, dword [eax + 8]
mov eax, dword [eax + 4]
add eax, 0x3b8
mov edx, dword [eax + 0xc]
push ebx
push esi
mov esi, dword [eax + 0x18]
mov dword [ebp - 0x10], edx
cmp dword [ebp - 0x10], 8
mov edx, dword [eax + 0x10]
push edi
mov edi, dword [eax + 0x14]
je 0x7378d95c
cmp dword [ebp - 0x10], 0x10
je 0x7378d8f7
cmp dword [ebp - 0x10], 0x18
je 0x7378d8df
cmp dword [ebp - 0x10], 0x20
je 0x7378d893
mov eax, 0x88760091
jmp 0x7378db90
mov eax, 0xff
cmp edx, eax
jne 0x7378d8ac
cmp edi, 0xff00
jne 0x7378d889
cmp esi, 0xff0000
jmp 0x7378d90a
mov ebx, 0xff0000
cmp edx, ebx
jne 0x7378d889
mov ecx, 0xff00
cmp edi, ecx
jne 0x7378d889
cmp esi, eax
jne 0x7378d889
push 3
pop edi
mov dword [ebp - 8], edi
mov dword [ebp - 0x480], ebx
mov dword [ebp - 0x47c], ecx
mov dword [ebp - 0x478], eax
jmp 0x7378da15
cmp esi, 0xff
jne 0x7378d889
cmp edi, 0xff00
jne 0x7378d889
cmp edx, 0xff0000
jmp 0x7378d90a
cmp edx, 0x7c00
jne 0x7378d91a
cmp edi, 0x3e0
jne 0x7378d889
cmp esi, 0x1f
jne 0x7378d889
xor edi, edi
mov dword [ebp - 8], edi
jmp 0x7378da15
mov ebx, 0xf800
cmp edx, ebx
jne 0x7378d889
mov eax, 0x7e0
cmp edi, eax
jne 0x7378d889
push 0x1f
pop ecx
cmp esi, ecx
jne 0x7378d889
push 3
pop edi
mov dword [ebp - 8], edi
mov dword [ebp - 0x480], ebx
mov dword [ebp - 0x47c], eax
mov dword [ebp - 0x478], ecx
jmp 0x7378da15
test byte [eax + 4], 0x20
je 0x7378d889
mov eax, dword [ebp + 0x10]
test eax, eax
mov edi, 0x100
mov dword [ebp - 8], edi
jne 0x7378d9cc
mov eax, dword [ecx + 0x24]
test eax, eax
jne 0x7378d9cc
mov eax, dword [ecx]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x24]
test eax, eax
jne 0x7378d9b3
xor ecx, ecx
mov eax, ecx
shl eax, 2
mov byte [ebp + eax - 0x880], cl
mov byte [ebp + eax - 0x87f], cl
mov byte [ebp + eax - 0x87e], cl
inc ecx
cmp ecx, edi
mov byte [ebp + eax - 0x87d], 0
jge 0x7378d9c4
jmp 0x7378d98a
lea ecx, [ebp - 0x880]
push ecx
push edi
push 0
push eax
call dword [sym.imp.GDI32.dll_GetSystemPaletteEntries]
lea ecx, [ebp - 0x880]
jmp 0x7378d9df
mov eax, dword [eax + 4]
mov eax, dword [eax + 4]
test byte [eax + 4], 1
je 0x7378d889
mov ecx, dword [eax + 0x10]
xor esi, esi
mov dl, byte [ecx + 2]
mov eax, esi
shl eax, 2
mov byte [ebp + eax - 0x480], dl
mov dl, byte [ecx + 1]
mov byte [ebp + eax - 0x47f], dl
mov dl, byte [ecx]
add ecx, 4
inc esi
cmp esi, edi
mov byte [ebp + eax - 0x47e], dl
mov byte [ebp + eax - 0x47d], 0
jl 0x7378d9e1
xor edi, edi
mov eax, dword [ebp - 4]
movzx ebx, word [eax + 0x1e]
imul ebx, dword [ebp - 0x10]
movzx eax, word [eax + 0x1c]
mov esi, dword [ebp - 8]
add ebx, 0x1f
shr ebx, 3
and ebx, 0x1ffffffc
imul eax, ebx
lea esi, [esi*4 + 0x28]
add eax, esi
push eax
push 0x2042
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
test eax, eax
mov dword [ebp - 0xc], eax
jne 0x7378da5c
mov eax, 0x8007000e
jmp 0x7378db90
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
test eax, eax
jne 0x7378da71
mov esi, 0x8007000e
jmp 0x7378db52
mov ecx, dword [ebp - 4]
mov dword [eax], 0x28
movzx edx, word [ecx + 0x1e]
mov dword [eax + 4], edx
movzx ecx, word [ecx + 0x1c]
xor edx, edx
inc edx
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0x10]
add esi, eax
cmp ecx, 8
mov dword [ebp - 0x14], esi
mov word [eax + 0xc], dx
mov word [eax + 0xe], cx
mov dword [eax + 0x10], edi
mov dword [eax + 0x18], edx
mov dword [eax + 0x1c], edx
jne 0x7378dab6
mov ecx, 0x100
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], ecx
jmp 0x7378dabe
and dword [eax + 0x20], 0
and dword [eax + 0x24], 0
mov ecx, dword [ebp - 8]
test ecx, ecx
je 0x7378dad0
lea esi, [ebp - 0x480]
lea edi, [eax + 0x28]
rep movsd dword es:[edi], dword [esi]
push 0x1b
pop ecx
xor eax, eax
lea edi, [ebp - 0x80]
rep stosd dword es:[edi], eax
xor edi, edi
push edi
push edx
lea eax, [ebp - 0x80]
push eax
push edi
push dword [ebp + 0xc]
mov dword [ebp - 0x80], 0x6c
call fcn.73763517
mov esi, eax
cmp esi, edi
jge 0x7378db03
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
jmp 0x7378db52
xor eax, eax
cmp dword [ebp - 0x78], edi
jbe 0x7378db39
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 4], ecx
mov esi, dword [ebp - 0x78]
mov edi, dword [ebp - 4]
sub esi, eax
dec esi
imul esi, dword [ebp - 0x70]
add esi, dword [ebp - 0x5c]
add dword [ebp - 4], ebx
mov ecx, ebx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
inc eax
rep movsb byte es:[edi], byte [esi]
cmp eax, dword [ebp - 0x78]
jb 0x7378db10
push 0
push dword [ebp + 0xc]
call fcn.7378a589
push dword [ebp - 0xc]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
test esi, esi
jge 0x7378db5f
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, esi
jmp 0x7378db90
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x7378db8e
call dword [sym.imp.USER32.dll_EmptyClipboard]
push dword [ebp - 0xc]
push 8
call dword [sym.imp.USER32.dll_SetClipboardData]
test eax, eax
jne 0x7378db88
mov eax, 0x80004005
jmp 0x7378db90
call dword [sym.imp.USER32.dll_CloseClipboard]
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret