Function at 0x1000bf01
Capabilities:
Open clipboard
Read clipboard data

Disassembly:
push 0x74
mov eax, 0x10027315
call fcn.10015ab5
mov ebx, ecx
mov esi, dword [sym.imp.OLEAUT32.dll_VariantClear]
lea eax, [ebp - 0x60]
xor edi, edi
push eax
mov dword [ebp - 0x34], edi
call esi
mov dword [ebp - 4], edi
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x24], edi
mov byte [ebp - 4], 2
call fcn.10011bd3
push eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x38], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov eax, dword [ebx + 0x44]
push edi
push str.Activate
push eax
lea eax, [ebp - 0x60]
push eax
push 1
push ebx
mov byte [ebp - 4], 3
call fcn.10023fc2
add esp, 0x18
test eax, eax
jns 0x1000b912
push dword [ebp - 0x20]
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
mov eax, dword [ebp - 0x10]
mov byte [ebp - 4], 0
cmp eax, edi
je 0x1000b8fb
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea eax, [ebp - 0x60]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, 0x80004005
call fcn.10015b8d
ret 4
lea eax, [ebp - 0x60]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebx + 0x50]
inc eax
push eax
mov ecx, ebx
call fcn.1000b57b
test eax, eax
js 0x1000b8e1
push edi
push str.Select
push dword [ebp - 0x10]
lea eax, [ebp - 0x60]
push eax
push 1
push ebx
call fcn.10023fc2
add esp, 0x18
test eax, eax
js 0x1000b8e1
lea eax, [ebp - 0x60]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
push edi
push str.Type
push dword [ebp - 0x10]
lea eax, [ebp - 0x60]
push eax
push 2
push ebx
call fcn.10023fc2
add esp, 0x18
test eax, eax
js 0x1000bdbd
cmp dword [ebp - 0x58], 0xffffefb9
jne 0x1000bdbd
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x2c], edi
fldz
xor eax, eax
fst qword [ebp - 0x40]
inc eax
fstp qword [ebp - 0x48]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x30]
push eax
push str.Columns
push dword [ebp - 0x10]
mov ecx, ebx
mov byte [ebp - 4], 5
call fcn.10023fc2
test eax, eax
js 0x1000ba6b
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x1c], edi
mov byte [ebp - 4], 6
cmp dword [ebp - 0x1c], edi
je 0x1000b9d6
push edi
lea eax, [ebp - 0x1c]
push eax
call fcn.10023fc2
lea eax, [ebp - 0x1c]
push eax
push dword [ebp - 0x18]
mov ecx, ebx
push dword [ebp - 0x30]
call fcn.10023fc2
test eax, eax
js 0x1000ba46
lea eax, [ebp - 0x60]
push eax
call esi
push edi
push str.Width
push dword [ebp - 0x1c]
lea eax, [ebp - 0x60]
push eax
push 2
push ebx
call fcn.10023fc2
add esp, 0x18
test eax, eax
js 0x1000ba28
fldz
fcomp qword [ebp - 0x58]
fnstsw ax
test ah, 5
jp 0x1000ba28
fld qword [ebp - 0x58]
mov eax, dword [ebp - 0x18]
fadd qword [ebp - 0x40]
mov dword [ebp - 0x28], eax
fstp qword [ebp - 0x40]
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x28]
cmp eax, 0x14
ja 0x1000ba46
fld qword [0x1002bd00]
fcomp qword [ebp - 0x40]
fnstsw ax
test ah, 0x41
je 0x1000b9c7
cmp dword [ebp - 0x18], 1
jbe 0x1000ba4f
dec dword [ebp - 0x18]
mov eax, dword [ebp - 0x28]
cmp dword [ebp - 0x18], eax
jbe 0x1000ba5a
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x1c]
mov byte [ebp - 4], 5
cmp eax, edi
je 0x1000ba6b
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea eax, [ebp - 0x2c]
push eax
push str.Rows
push dword [ebp - 0x10]
mov ecx, ebx
call fcn.10023fc2
test eax, eax
js 0x1000bb38
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x1c], edi
mov byte [ebp - 4], 7
cmp dword [ebp - 0x1c], edi
je 0x1000baa3
push edi
lea eax, [ebp - 0x1c]
push eax
call fcn.10023fc2
lea eax, [ebp - 0x1c]
push eax
push dword [ebp - 0x14]
mov ecx, ebx
push dword [ebp - 0x2c]
call fcn.10023fc2
test eax, eax
js 0x1000bb13
lea eax, [ebp - 0x60]
push eax
call esi
push edi
push 0x1002bce0
push dword [ebp - 0x1c]
lea eax, [ebp - 0x60]
push eax
push 2
push ebx
call fcn.10023fc2
add esp, 0x18
test eax, eax
js 0x1000baf5
fldz
fcomp qword [ebp - 0x58]
fnstsw ax
test ah, 5
jp 0x1000baf5
fld qword [ebp - 0x58]
mov eax, dword [ebp - 0x14]
fadd qword [ebp - 0x48]
mov dword [ebp - 0x28], eax
fstp qword [ebp - 0x48]
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x28]
cmp eax, 0x14
ja 0x1000bb13
fld qword [0x1002bcd8]
fcomp qword [ebp - 0x48]
fnstsw ax
test ah, 0x41
je 0x1000ba94
cmp dword [ebp - 0x14], 1
jbe 0x1000bb1c
dec dword [ebp - 0x14]
mov eax, dword [ebp - 0x28]
cmp dword [ebp - 0x14], eax
jbe 0x1000bb27
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x1c]
mov byte [ebp - 4], 5
cmp eax, edi
je 0x1000bb38
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x1c], edi
push 3
pop eax
mov word [ebp - 0x70], ax
mov dword [ebp - 0x68], 1
lea eax, [ebp - 0x60]
push eax
mov byte [ebp - 4], 9
call esi
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x70]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
sub esp, 0x10
movsd dword es:[edi], dword [esi]
mov edi, esp
lea esi, [ebp - 0x70]
movsd dword es:[edi], dword [esi]
push 2
push str.Cells
push dword [ebp - 0x10]
movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x60]
push eax
movsd dword es:[edi], dword [esi]
push 2
push ebx
movsd dword es:[edi], dword [esi]
call fcn.10023fc2
add esp, 0x38
test eax, eax
js 0x1000bb9a
cmp dword [ebp - 0x58], 0
je 0x1000bb9a
push dword [ebp - 0x58]
lea eax, [ebp - 0x1c]
push eax
call fcn.10023fc2
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea eax, [ebp - 0x60]
push eax
call esi
and dword [ebp - 0x28], 0
push 0x13
pop eax
mov word [ebp - 0x50], ax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0xb
call fcn.10023fc2
lea eax, [ebp - 0x50]
push eax
call esi
push 0x13
pop eax
mov word [ebp - 0x80], ax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x78], eax
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x80]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
sub esp, 0x10
movsd dword es:[edi], dword [esi]
mov edi, esp
lea esi, [ebp - 0x70]
movsd dword es:[edi], dword [esi]
push 2
push str.Cells
push dword [ebp - 0x10]
movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x60]
push eax
movsd dword es:[edi], dword [esi]
push 2
push ebx
mov byte [ebp - 4], 0xc
movsd dword es:[edi], dword [esi]
call fcn.10023fc2
add esp, 0x38
test eax, eax
js 0x1000bc25
cmp dword [ebp - 0x58], 0
je 0x1000bc25
push dword [ebp - 0x58]
lea eax, [ebp - 0x28]
push eax
call fcn.10023fc2
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea eax, [ebp - 0x60]
push eax
call esi
push 9
pop eax
mov word [ebp - 0x50], ax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x48], eax
test eax, eax
je 0x1000bc48
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0xd
call fcn.10023fc2
lea eax, [ebp - 0x50]
push eax
mov byte [ebp - 4], 0xc
call esi
push 9
pop eax
mov word [ebp - 0x50], ax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x48], eax
test eax, eax
je 0x1000bc79
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 0xe
call fcn.10023fc2
lea eax, [ebp - 0x50]
push eax
mov byte [ebp - 4], 0xc
call esi
lea eax, [ebp - 0x60]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x80]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
sub esp, 0x10
movsd dword es:[edi], dword [esi]
mov edi, esp
lea esi, [ebp - 0x70]
movsd dword es:[edi], dword [esi]
push 2
push str.Range
push dword [ebp - 0x10]
movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x60]
push eax
movsd dword es:[edi], dword [esi]
push 2
push ebx
movsd dword es:[edi], dword [esi]
call fcn.10023fc2
add esp, 0x38
test eax, eax
js 0x1000bce4
cmp dword [ebp - 0x58], 0
je 0x1000bce4
push dword [ebp - 0x58]
lea eax, [ebp - 0x24]
push eax
call fcn.10023fc2
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea eax, [ebp - 0x60]
push eax
call esi
lea eax, [ebp - 0x80]
push eax
call esi
mov eax, dword [ebp - 0x28]
mov byte [ebp - 4], 9
test eax, eax
je 0x1000bd07
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea eax, [ebp - 0x70]
push eax
call esi
mov eax, dword [ebp - 0x1c]
mov byte [ebp - 4], 5
test eax, eax
je 0x1000bd1e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x2c]
mov byte [ebp - 4], 4
test eax, eax
je 0x1000bd2f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x30]
mov byte [ebp - 4], 3
test eax, eax
je 0x1000bd40
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
xor edi, edi
cmp dword [ebp - 0x24], edi
je 0x1000be48
push dword [ebx + 4]
mov esi, dword [sym.imp.USER32.dll_OpenClipboard]
call esi
test eax, eax
je 0x1000bd66
call dword [sym.imp.USER32.dll_EmptyClipboard]
call dword [sym.imp.USER32.dll_CloseClipboard]
push edi
mov edi, dword [ebp - 0x24]
push str.CopyPicture
push edi
lea eax, [ebp - 0x60]
push eax
push 1
push ebx
call fcn.10023fc2
add esp, 0x18
test eax, eax
jns 0x1000bdd7
push dword [ebp - 0x20]
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
mov eax, dword [edi]
push edi
mov byte [ebp - 4], 1
call dword [eax + 8]
mov eax, dword [ebp - 0x10]
mov byte [ebp - 4], 0
test eax, eax
je 0x1000bda7
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov esi, 0x80004005
lea eax, [ebp - 0x60]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, esi
jmp 0x1000b90a
cmp dword [ebp - 0x10], edi
je 0x1000be48
push dword [ebp - 0x10]
lea eax, [ebp - 0x24]
push eax
call fcn.10023fc2
jmp 0x1000bd42
push dword [ebx + 4]
mov dword [ebp - 0x34], 0x80004005
call esi
test eax, eax
je 0x1000be46
push 0xe
call dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
test eax, eax
je 0x1000be40
push 0xe
call dword [sym.imp.USER32.dll_GetClipboardData]
mov esi, eax
test esi, esi
je 0x1000be40
push esi
call dword [sym.imp.kernel32.dll_GlobalLock]
push 0
push dword [ebp + 8]
mov ecx, ebx
push dword [ebx + 0x58]
push dword [ebx + 0x54]
push esi
call fcn.1000f095
mov dword [ebp - 0x34], eax
mov eax, dword [ebx + 0x2c]
test eax, eax
je 0x1000be33
cmp dword [ebx + 0x50], 0
jne 0x1000be33
push eax
push esi
call dword [sym.imp.GDI32.dll_CopyEnhMetaFileW]
push esi
call dword [sym.imp.kernel32.dll_GlobalUnlock]
call dword [sym.imp.USER32.dll_EmptyClipboard]
call dword [sym.imp.USER32.dll_CloseClipboard]
xor edi, edi
push dword [ebp - 0x20]
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
mov eax, dword [ebp - 0x24]
mov byte [ebp - 4], 1
cmp eax, edi
je 0x1000be62
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x10]
mov byte [ebp - 4], 0
cmp eax, edi
je 0x1000be73
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov esi, dword [ebp - 0x34]
jmp 0x1000bdac
push ebp
mov ebp, esp
pop ebp
jmp 0x1000b882