Function at 0x736fd82c
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 0x736fd84e
add eax, 0x28
jmp 0x736fd85b
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 0x736fd95c
cmp dword [ebp - 0x10], 0x10
je 0x736fd8f7
cmp dword [ebp - 0x10], 0x18
je 0x736fd8df
cmp dword [ebp - 0x10], 0x20
je 0x736fd893
mov eax, 0x88760091
jmp 0x736fdb90
mov eax, 0xff
cmp edx, eax
jne 0x736fd8ac
cmp edi, 0xff00
jne 0x736fd889
cmp esi, 0xff0000
jmp 0x736fd90a
mov ebx, 0xff0000
cmp edx, ebx
jne 0x736fd889
mov ecx, 0xff00
cmp edi, ecx
jne 0x736fd889
cmp esi, eax
jne 0x736fd889
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 0x736fda15
cmp esi, 0xff
jne 0x736fd889
cmp edi, 0xff00
jne 0x736fd889
cmp edx, 0xff0000
jmp 0x736fd90a
cmp edx, 0x7c00
jne 0x736fd91a
cmp edi, 0x3e0
jne 0x736fd889
cmp esi, 0x1f
jne 0x736fd889
xor edi, edi
mov dword [ebp - 8], edi
jmp 0x736fda15
mov ebx, 0xf800
cmp edx, ebx
jne 0x736fd889
mov eax, 0x7e0
cmp edi, eax
jne 0x736fd889
push 0x1f
pop ecx
cmp esi, ecx
jne 0x736fd889
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 0x736fda15
test byte [eax + 4], 0x20
je 0x736fd889
mov eax, dword [ebp + 0x10]
test eax, eax
mov edi, 0x100
mov dword [ebp - 8], edi
jne 0x736fd9cc
mov eax, dword [ecx + 0x24]
test eax, eax
jne 0x736fd9cc
mov eax, dword [ecx]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x24]
test eax, eax
jne 0x736fd9b3
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 0x736fd9c4
jmp 0x736fd98a
lea ecx, [ebp - 0x880]
push ecx
push edi
push 0
push eax
call dword [sym.imp.GDI32.dll_GetSystemPaletteEntries]
lea ecx, [ebp - 0x880]
jmp 0x736fd9df
mov eax, dword [eax + 4]
mov eax, dword [eax + 4]
test byte [eax + 4], 1
je 0x736fd889
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 0x736fd9e1
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 0x736fda5c
mov eax, 0x8007000e
jmp 0x736fdb90
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
test eax, eax
jne 0x736fda71
mov esi, 0x8007000e
jmp 0x736fdb52
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 0x736fdab6
mov ecx, 0x100
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], ecx
jmp 0x736fdabe
and dword [eax + 0x20], 0
and dword [eax + 0x24], 0
mov ecx, dword [ebp - 8]
test ecx, ecx
je 0x736fdad0
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.736d3517
mov esi, eax
cmp esi, edi
jge 0x736fdb03
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
jmp 0x736fdb52
xor eax, eax
cmp dword [ebp - 0x78], edi
jbe 0x736fdb39
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 0x736fdb10
push 0
push dword [ebp + 0xc]
call fcn.736fa589
push dword [ebp - 0xc]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
test esi, esi
jge 0x736fdb5f
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, esi
jmp 0x736fdb90
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x736fdb8e
call dword [sym.imp.USER32.dll_EmptyClipboard]
push dword [ebp - 0xc]
push 8
call dword [sym.imp.USER32.dll_SetClipboardData]
test eax, eax
jne 0x736fdb88
mov eax, 0x80004005
jmp 0x736fdb90
call dword [sym.imp.USER32.dll_CloseClipboard]
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret