Function at 0x30001faf
Capabilities:
Open clipboard
Write clipboard data

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x88
push esi
push edi
xor edi, edi
push 4
push dword [ebp + 8]
xor esi, esi
inc esi
mov dword [ebp - 4], edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x14], edi
call dword [sym.imp.USER32.dll_GetWindowLongA]
cmp eax, edi
mov dword [ebp - 0x1c], eax
je 0x30002804
push ebx
push esi
call fcn.30047fcd
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov ebx, eax
mov eax, dword [ebx + 0x4a]
cmp eax, edi
je 0x300027f0
cmp eax, 0x17
jg 0x30002176
je 0x300021ab
cmp eax, 7
jl 0x30002185
cmp eax, 8
jle 0x3000204e
cmp eax, 9
je 0x300021ab
cmp eax, 0xb
jne 0x30002185
push 0
lea eax, [ebp - 0x64]
push eax
push 0
push 1
push ebx
push dword [ebp + 8]
call fcn.30050f06
jmp 0x30002185
push dword [0x300967d0]
mov edi, dword [sym.imp.USER32.dll_OpenClipboard]
call edi
test eax, eax
je 0x300020a3
movzx eax, word [0x30096370]
mov esi, dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
push eax
call esi
test eax, eax
je 0x3000207d
movzx eax, word [0x30096370]
jmp 0x30002092
movzx eax, word [0x30096374]
push eax
call esi
test eax, eax
je 0x30002097
movzx eax, word [0x30096374]
mov dword [ebp - 8], eax
jmp 0x3000209b
and dword [ebp - 8], 0
call dword [sym.imp.USER32.dll_CloseClipboard]
jmp 0x300020a7
and dword [ebp - 8], 0
push dword [ebp + 0xc]
push dword [0x30097120]
call fcn.3003c2cb
test eax, eax
mov dword [ebp - 4], eax
jne 0x300027f0
push eax
push dword [0x30097120]
call fcn.3003af3f
push dword [0x300967d0]
call edi
test eax, eax
mov esi, dword [sym.imp.USER32.dll_SetClipboardData]
je 0x30002113
call dword [sym.imp.USER32.dll_EmptyClipboard]
push 2
push 2
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [ebp - 4], eax
mov eax, dword [0x30097124]
test eax, eax
je 0x3000210d
push dword [ebp - 4]
push eax
call esi
test eax, eax
jne 0x3000210d
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_GlobalFree]
call dword [sym.imp.USER32.dll_CloseClipboard]
cmp dword [0x30097124], 0
jne 0x30002157
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push dword [ebp + 8]
call fcn.3005e2b7
call fcn.3005c85b
push dword [0x300967d0]
call edi
movzx eax, word [0x3009636c]
push dword [ebp - 4]
push eax
call esi
test eax, eax
jne 0x30002151
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_GlobalFree]
call dword [sym.imp.USER32.dll_CloseClipboard]
mov eax, dword [ebp - 8]
mov dword [0x30097124], eax
cmp dword [ebx + 0x4a], 8
jne 0x30002036
and dword [ebp - 0x10], 0
and dword [ebp - 0xc], 0
jmp 0x30002247
cmp eax, 0x21
je 0x300021ab
cmp eax, 0x28
je 0x300021a0
cmp eax, 0x2d
je 0x300021a0
push dword [ebp + 0xc]
push dword [ebx + 0x26]
call fcn.3003c2cb
test eax, eax
mov dword [ebp - 4], eax
jne 0x300027f0
jmp 0x30002247
and dword [ebp - 0xc], edi
and dword [ebp - 0x10], edi
jmp 0x30002247
push dword [ebp + 0xc]
push dword [ebx + 0x26]
call fcn.3003c2cb
test eax, eax
mov dword [ebp - 4], eax
jne 0x300027f0
lea esi, [ebx + 0x1d6]
push esi
push 0x6b
push 0x64
push dword [ebx + 0x26]
call fcn.3003a5eb
test eax, eax
mov dword [ebp - 4], eax
jne 0x300027f0
push dword [esi]
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov edi, eax
lea eax, [edi + 0x50]
push eax
push 0x6c
push 0x64
push dword [ebx + 0x26]
mov dword [ebp - 8], eax
call fcn.3003a5eb
add edi, 0x58
push edi
push 0x6d
push 0x64
push dword [ebx + 0x26]
call fcn.3003a5eb
mov eax, dword [ebp - 8]
push dword [eax]
call fcn.30001f14
push dword [esi]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
cmp dword [ebx + 0x4a], 0x21
jne 0x30002247
xor esi, esi
push esi
push esi
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_InvalidateRect]
push 1
push 0x4000
lea eax, [ebx + 0x22]
push eax
call fcn.30067eb7
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x10], esi
lea eax, [ebx + 0xd6]
push eax
push dword [ebx + 0x19a]
push 0x65
push dword [ebx + 0x26]
call fcn.3003a5eb
test eax, eax
mov dword [ebp - 4], eax
jne 0x300027e3
cmp dword [ebp - 0x10], eax
je 0x30002450
lea eax, [ebx + 0xea]
mov dword [0x300759dc], eax
xor ecx, ecx
inc ecx
mov dword [eax + 4], ecx
lea eax, [ebx + 0x16a]
mov dword [0x300759e0], eax
mov dword [eax], ecx
lea esi, [ebx + 0xd6]
push dword [esi]
push dword [ebx + 0x26]
push ebx
call fcn.30001d44
push dword [esi]
mov dword [ebp - 0x20], eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov ecx, dword [eax + 0x44]
mov dword [ebx + 0x32], ecx
mov eax, dword [eax + 0x48]
mov ecx, dword [ebx + 0xde]
mov dword [ebx + 0x36], eax
mov eax, dword [ebx + 0x6e]
mov dword [ebp - 0x60], eax
mov eax, dword [ebx + 0x72]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebx + 0x22]
mov dword [ebp - 0x54], ecx
mov ecx, dword [ebx + 0x1d2]
mov dword [ebp - 8], eax
and dword [ebp - 8], 0x20
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x38], ecx
je 0x300022eb
mov eax, dword [ebx + 0x2e]
mov dword [ebp - 0x34], eax
test byte [ebx + 0x2a], 4
lea esi, [ebx + 0x7a]
lea edi, [ebp - 0x48]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
je 0x30002355
mov eax, dword [ebx + 0x1f2]
test eax, eax
mov dword [ebp - 4], eax
je 0x30002355
fild dword [ebp - 4]
fild dword [ebx + 0x7a]
fmul st(1)
fld qword [0x300015c8]
fdiv st(1), st(0)
fxch st(1)
call fcn.30071e75
fild dword [ebx + 0x7e]
mov dword [ebp - 0x48], eax
fmul st(2)
fdiv st(1)
call fcn.30071e75
fild dword [ebx + 0x82]
mov dword [ebp - 0x44], eax
fmul st(2)
fdiv st(1)
call fcn.30071e75
fild dword [ebx + 0x86]
mov dword [ebp - 0x40], eax
fmulp st(2)
fdivp st(1)
call fcn.30071e75
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 8], 0
mov eax, dword [ebx + 0x18e]
mov dword [ebx + 0x6e], eax
mov eax, dword [ebx + 0x192]
mov dword [ebx + 0x72], eax
mov eax, dword [ebx + 0x19a]
mov dword [ebx + 0xde], eax
je 0x30002382
mov eax, dword [ebx + 0x1ba]
mov dword [ebx + 0x2e], eax
mov eax, dword [ebx + 0x1b6]
push dword [ebx + 0xd6]
and dword [ebx + 0x1f2], 0
lea esi, [ebx + 0x1a6]
lea edi, [ebx + 0x7a]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [ebx + 0x1d2], eax
movsd dword es:[edi], dword [esi]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
lea esi, [ebx + 0x1d6]
push esi
push 0x6b
push 0x64
push dword [ebx + 0x26]
call fcn.3003a5eb
push dword [esi]
mov dword [ebp - 4], eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
cmp dword [ebp - 4], 0
mov edi, eax
jne 0x300023e7
lea eax, [edi + 0x50]
push eax
push 0x6c
push 0x64
push dword [ebx + 0x26]
call fcn.3003a5eb
mov dword [ebp - 4], eax
push dword [esi]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
cmp dword [ebp - 4], 0
jne 0x300027e3
add edi, 0x58
push edi
push 0x6d
push 0x64
push dword [ebx + 0x26]
call fcn.3003a5eb
test eax, eax
mov dword [ebp - 4], eax
jne 0x300027e3
lea eax, [ebx + 0x1be]
push eax
push 0x68
push 0x64
push dword [ebx + 0x26]
call fcn.3003a5eb
test eax, eax
mov dword [ebp - 4], eax
jne 0x300027e3
lea eax, [ebx + 0xce]
push eax
push 0x67
push 0x64
push dword [ebx + 0x26]
call fcn.3003a5eb
test eax, eax
mov dword [ebp - 4], eax
jne 0x300027e3
xor esi, esi
cmp dword [ebp + 0xc], esi
je 0x30002480
lea ecx, [ebx + 0x22]
mov eax, pe_nt_image_headers32
test dword [ecx], eax
je 0x30002473
push esi
push eax
push ecx
call fcn.30067eb7
xor edi, edi
inc edi
mov dword [ebp - 0x14], edi
jmp 0x30002492
xor edi, edi
inc edi
push edi
push eax
push ecx
call fcn.30067eb7
jmp 0x30002492
push esi
lea eax, [ebx + 0x22]
push pe_nt_image_headers32
push eax
call fcn.30067eb7
xor edi, edi
inc edi
mov eax, dword [ebx + 0x4a]
dec eax
cmp eax, 0x31
ja case.0x300024a6.2
movzx eax, byte [eax + 0x30002829]
jmp dword [eax*4 + 0x3000280d]
mov dword [ebp - 0xc], esi
jmp case.0x300024a6.2
lea esi, [ebx + 0x196]
movzx eax, byte [esi]
shr eax, 1
and eax, edi
push eax
push 2
lea eax, [ebx + 0x22]
push eax
call fcn.30067eb7
movzx eax, byte [esi]
shr eax, 2
and eax, edi
push eax
push 4
lea eax, [ebx + 0x22]
push eax
call fcn.30067eb7
and dword [ebp - 0xc], 0
jmp case.0x300024a6.2
lea ecx, [ebx + 0x1ba]
mov esi, dword [ecx]
lea eax, [ebx + 0xe2]
mov edx, dword [eax]
mov dword [eax], esi
xor eax, eax
push eax
push eax
push dword [ebp + 8]
mov dword [ebp - 0xc], eax
mov dword [ecx], edx
call dword [sym.imp.USER32.dll_InvalidateRect]
push edi
push 0x4000
lea eax, [ebx + 0x22]
push eax
call fcn.30067eb7
jmp case.0x300024a6.2
lea eax, [ebx + 0xc6]
push eax
push 0x66
push 0x64
push dword [ebx + 0x26]
call fcn.3003a5eb
lea eax, [ebx + 0xe2]
mov edx, dword [eax]
lea ecx, [ebx + 0x1ba]
mov esi, dword [ecx]
push ebx
mov dword [eax], esi
mov dword [ecx], edx
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], edi
call fcn.30001e86
cmp dword [ebx + 0x4a], 0x2d
mov ecx, dword [ebx + 0x266]
mov eax, dword [ebx + 0x25e]
mov edx, dword [ebx + 0x262]
mov dword [ebp - 8], ecx
mov ecx, dword [ebx + 0x26a]
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebx + 0x25a]
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebx + 0x286]
mov dword [ebp - 0x28], ecx
push 5
pop ecx
lea esi, [ebx + 0x398]
lea edi, [ebp - 0x88]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebx + 0x3c4]
mov dword [ebx + 0x25e], ecx
mov ecx, dword [ebx + 0x3c8]
lea esi, [ebx + 0x272]
lea edi, [ebp - 0x74]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [ebx + 0x262], ecx
mov ecx, dword [ebx + 0x3cc]
mov dword [ebx + 0x266], ecx
mov ecx, dword [ebx + 0x3d0]
movsd dword es:[edi], dword [esi]
mov dword [ebx + 0x26a], ecx
mov ecx, dword [ebx + 0x3c0]
mov dword [ebx + 0x25a], ecx
push 5
lea esi, [ebx + 0x3ac]
pop ecx
lea edi, [ebx + 0x398]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebx + 0x3d4]
lea esi, [ebx + 0x3d8]
lea edi, [ebx + 0x272]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [ebx + 0x286], ecx
jne 0x3000261a
and dword [ebp - 0xc], 0
push 5
pop ecx
lea esi, [ebp - 0x88]
lea edi, [ebx + 0x3ac]
rep movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x74]
lea edi, [ebx + 0x3d8]
movsd dword es:[edi], dword [esi]
mov dword [ebx + 0x3c4], eax
mov eax, dword [ebp - 8]
mov dword [ebx + 0x3cc], eax
mov eax, dword [ebp - 0x2c]
movsd dword es:[edi], dword [esi]
mov dword [ebx + 0x3d0], eax
mov eax, dword [ebp - 0x30]
push 0
movsd dword es:[edi], dword [esi]
push 0
push dword [ebp + 8]
mov dword [ebx + 0x3c0], eax
mov eax, dword [ebp - 0x28]
mov dword [ebx + 0x3c8], edx
movsd dword es:[edi], dword [esi]
mov dword [ebx + 0x3d4], eax
call dword [sym.imp.USER32.dll_InvalidateRect]
push 1
push 0x4000
lea eax, [ebx + 0x22]
push eax
call fcn.30067eb7
xor edi, edi
inc edi
jmp case.0x300024a6.2
push ebx
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], edi
call fcn.30001e86
push edi
call fcn.30047fcd
cmp dword [ebp - 0x18], 0
je 0x300026bb
push edi
push dword [ebp - 0x14]
push dword [ebx + 0xd6]
push dword [ebx + 0x26]
push dword [ebp + 8]
call fcn.3002403b
mov esi, eax
jmp 0x300026be
mov esi, dword [ebp - 0x24]
cmp dword [ebp - 0xc], 0
je 0x300026ed
cmp dword [ebp - 0x18], 0
jne 0x300026d2
push dword [ebx + 0x26]
call fcn.3000b139
push edi
push edi
push dword [ebx + 0xd6]
push dword [ebx + 0x1d2]
push dword [ebx + 0x26]
push dword [ebp + 8]
call fcn.3001c0fc
jmp 0x300026f0
mov eax, dword [ebp - 0x20]
test esi, esi
je 0x300026f9
mov dword [ebp - 4], esi
jmp 0x30002700
test eax, eax
je 0x30002700
mov dword [ebp - 4], eax
push edi
or esi, 0xffffffff
push esi
push 0x6c
push ebx
push dword [ebp + 8]
call fcn.3003305e
push 0
push esi
push 0x6a
push ebx
push dword [ebp + 8]
call fcn.3003305e
push 0
push esi
push 0x6e
push ebx
push dword [ebp + 8]
call fcn.3003305e
cmp dword [ebp - 0x10], 0
je 0x30002751
cmp dword [ebp - 4], 0
je 0x300027d3
cmp dword [ebp - 4], esi
je 0x300027d3
push edi
push 0x40
lea eax, [ebx + 0x22]
push eax
call fcn.30067eb7
push ebx
call fcn.30054022
push 0x7d00
push 2
call fcn.30063e2d
push 0
push 2
call fcn.30063f5f
cmp dword [ebp - 0x10], 0
je 0x300027f0
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
push ebx
push esi
call fcn.30020b01
push esi
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [ebp - 0x58]
mov dword [ebx + 0x196], eax
mov eax, dword [ebp - 0x60]
lea edi, [ebx + 0x1a6]
lea esi, [ebp - 0x48]
movsd dword es:[edi], dword [esi]
mov dword [ebx + 0x18e], eax
mov eax, dword [ebp - 0x5c]
mov dword [ebx + 0x192], eax
mov eax, dword [ebp - 0x54]
movsd dword es:[edi], dword [esi]
mov dword [ebx + 0x19a], eax
mov eax, dword [ebp - 0x38]
movsd dword es:[edi], dword [esi]
mov dword [ebx + 0x1b6], eax
mov eax, dword [ebp - 0x34]
mov dword [ebx + 0x1ba], eax
movsd dword es:[edi], dword [esi]
jmp 0x300027f0
push 0
push ebx
push dword [ebp + 8]
call fcn.3000aff0
jmp 0x30002757
push 1
push 0x40
lea eax, [ebx + 0x22]
push eax
call fcn.30067eb7
cmp dword [ebp + 0xc], 0
jne 0x300027fa
and dword [ebx + 0x4a], 0
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
pop ebx
mov eax, dword [ebp - 4]
pop edi
pop esi
leave
ret 8