Function at 0x10001650
Capabilities:
Open clipboard
Write clipboard data

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x26c
mov eax, dword [0x1002bea0]
xor eax, ebp
mov dword [ebp - 4], eax
push dword [0x1002d978]
mov ecx, 0x1002e78c
mov dword [ebp - 0x218], 0
call fcn.100058e0
test eax, eax
je 0x10001e04
cmp dword [eax], 0
jl 0x10001e04
push esi
mov esi, dword [eax + 8]
mov eax, dword [eax + 4]
push edi
push eax
test esi, 0x10000
je 0x100016b7
push dword [0x1002d794]
call fcn.10004320
mov edi, eax
add esp, 8
mov dword [ebp - 0x22c], edi
jmp 0x100016c7
call fcn.1000ec60
add esp, 4
mov dword [ebp - 0x22c], eax
mov edi, eax
push ebx
push edi
push dword [0x1002d794]
call fcn.10004190
add esp, 8
mov dword [0x1002ca94], 0
mov dword [0x1002caa0], 0
mov edx, eax
mov dword [0x1002ca90], edx
test esi, 0x20000000
je 0x10001b9a
cmp dword [0x1002dfa8], 0
lea eax, [ebp - 0x218]
mov ecx, dword [edx]
mov esi, 0xe0
push eax
mov eax, 0x60
cmovne eax, esi
push eax
push 0
push edx
call dword [ecx + 0x10]
mov ecx, dword [ebp - 0x218]
test ecx, ecx
je 0x100018b2
mov eax, dword [ecx]
lea edx, [ebp - 0x230]
push edx
lea edx, [ebp - 0x214]
push edx
push 1
push ecx
call dword [eax + 0xc]
test eax, eax
jne 0x1000189c
mov eax, 0x10
nop dword [eax]
nop dword [eax + eax]
mov ecx, dword [0x1002ca9c]
mov esi, ecx
mov edi, dword [0x1002ca94]
test ecx, ecx
cmove esi, eax
lea eax, [edi + 1]
cmp eax, esi
jle 0x10001786
nop word [eax + eax]
add esi, esi
cmp edi, esi
jge 0x10001780
cmp esi, ecx
je 0x10001852
cmp esi, edi
je 0x10001852
test esi, esi
jg 0x100017cf
mov eax, dword [0x1002ca98]
mov dword [0x1002ca94], 0
mov dword [0x1002ca9c], 0
test eax, eax
je 0x100017c0
push eax
call fcn.1001408b
add esp, 4
mov dword [0x1002ca98], 0
jmp 0x1000186d
lea eax, [esi*4]
push eax
call fcn.10014090
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x1000186d
mov eax, dword [0x1002ca94]
cmp esi, eax
cmovl eax, esi
mov dword [0x1002ca94], eax
shl eax, 2
push eax
push dword [0x1002ca98]
push ebx
call fcn.10011600
mov eax, dword [0x1002ca98]
add esp, 0xc
mov dword [0x1002ca9c], esi
test eax, eax
je 0x10001823
push eax
call fcn.1001408b
add esp, 4
mov ecx, dword [0x1002ca94]
mov dword [0x1002ca98], ebx
cmp ecx, edi
jle 0x10001852
sub ecx, edi
lea esi, [edi*4]
shl ecx, 2
lea eax, [esi + ebx]
push ecx
push eax
add eax, 4
push eax
call fcn.10011b80
add esp, 0xc
jmp 0x10001859
lea esi, [edi*4]
mov eax, dword [0x1002ca98]
mov ecx, dword [ebp - 0x214]
mov dword [esi + eax], ecx
inc dword [0x1002ca94]
mov eax, dword [ebp - 0x218]
lea edx, [ebp - 0x230]
push edx
lea edx, [ebp - 0x214]
push edx
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0xc]
test eax, eax
mov eax, 0x10
je 0x10001760
mov edi, dword [ebp - 0x22c]
mov eax, dword [ebp - 0x218]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov dword [ebp - 0x218], 0
mov ebx, dword [0x1002ca94]
mov ecx, 0x1002caa0
push ebx
mov dword [ebp - 0x228], ebx
call fcn.10001270
xor ecx, ecx
test ebx, ebx
jle 0x10001980
cmp ebx, 0x10
jb 0x1000196f
movaps xmm1, xmmword [0x10022450]
mov eax, ebx
and eax, 0x8000000f
jns 0x100018f1
dec eax
or eax, 0xfffffff0
inc eax
mov esi, ebx
mov edx, 0x20
sub esi, eax
nop word [eax + eax]
mov eax, dword [0x1002caa4]
lea edx, [edx + 0x40]
movd xmm0, ecx
pshufd xmm0, xmm0, 0
paddd xmm0, xmm1
movups xmmword [edx + eax - 0x60], xmm0
lea eax, [ecx + 4]
movd xmm0, eax
mov eax, dword [0x1002caa4]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm1
movups xmmword [edx + eax - 0x50], xmm0
lea eax, [ecx + 8]
movd xmm0, eax
mov eax, dword [0x1002caa4]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm1
movups xmmword [edx + eax - 0x40], xmm0
lea eax, [ecx + 0xc]
add ecx, 0x10
movd xmm0, eax
mov eax, dword [0x1002caa4]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm1
movups xmmword [edx + eax - 0x30], xmm0
cmp ecx, esi
jl 0x10001900
cmp ecx, ebx
jge 0x10001980
mov eax, dword [0x1002caa4]
mov dword [eax + ecx*4], ecx
inc ecx
cmp ecx, ebx
jl 0x10001973
push edi
mov dword [ebp - 0x210], 0
call fcn.1000ec60
mov edi, eax
push edi
call fcn.1000ed00
push 1
mov esi, eax
lea eax, [ebp - 0x108]
push 0x104
push eax
push esi
push dword [0x1002ca90]
call fcn.10004050
add esp, 0x1c
lea eax, [ebp - 0x108]
push eax
push str.CabinetWClass
call dword [sym.imp.USER32.dll_FindWindowA]
test eax, eax
je 0x10001b87
lea ecx, [ebp - 0x210]
push ecx
push 0x10001e20
push eax
call dword [sym.imp.USER32.dll_EnumChildWindows]
test edi, edi
je 0x100019f4
mov eax, dword [0x1002d790]
push edi
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
test esi, esi
je 0x10001a04
mov eax, dword [0x1002d790]
push esi
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov eax, dword [ebp - 0x210]
mov dword [ebp - 0x21c], eax
test eax, eax
je 0x10001b87
mov ecx, dword [0x1002ca94]
push 0
push 0
push 0x1004
push eax
mov dword [ebp - 0x220], ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov ebx, eax
imul ecx, ebx, 0x108
push ecx
call fcn.10014090
mov esi, eax
add esp, 4
mov dword [ebp - 0x224], esi
test esi, esi
je 0x10001b81
xor edi, edi
test ebx, ebx
jle 0x10001ab8
nop dword [eax + eax]
lea eax, [ebp - 0x26c]
mov dword [ebp - 0x264], 0
push eax
push edi
push 0x102d
push dword [ebp - 0x21c]
mov dword [ebp - 0x254], 0x104
mov dword [ebp - 0x258], esi
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10001a98
sub ecx, edx
inc edi
mov dword [esi + 0x104], ecx
add esi, 0x108
cmp edi, ebx
jl 0x10001a60
mov esi, dword [ebp - 0x224]
xor ecx, ecx
mov dword [ebp - 0x210], ecx
cmp dword [ebp - 0x220], ecx
jle 0x10001b44
nop dword [eax]
push 1
push 0x104
lea eax, [ebp - 0x20c]
push eax
mov eax, dword [0x1002ca98]
push dword [eax + ecx*4]
push dword [0x1002ca90]
call fcn.10004050
add esp, 0x14
xor edi, edi
test ebx, ebx
jle 0x10001b2b
nop word [eax + eax]
push dword [esi + 0x104]
lea eax, [ebp - 0x20c]
push esi
push eax
call fcn.1001411e
add esp, 0xc
test eax, eax
je 0x10001b58
inc edi
add esi, 0x108
cmp edi, ebx
jl 0x10001b00
mov esi, dword [ebp - 0x224]
mov ecx, dword [ebp - 0x210]
cmp edi, ebx
je 0x10001b78
inc ecx
mov dword [ebp - 0x210], ecx
cmp ecx, dword [ebp - 0x220]
jl 0x10001ad0
push esi
call fcn.1001408b
mov ebx, dword [ebp - 0x228]
add esp, 4
jmp 0x10001cda
mov eax, dword [0x1002caa4]
mov ecx, dword [ebp - 0x210]
mov esi, dword [ebp - 0x224]
mov dword [eax + edi*4], ecx
imul eax, edi, 0x108
mov byte [eax + esi], 0xff
jmp 0x10001b31
push esi
call fcn.1001408b
add esp, 4
mov ebx, dword [ebp - 0x228]
lea eax, [ebx - 1]
push eax
push 0
call fcn.10001ea0
add esp, 8
jmp 0x10001cda
mov ebx, 1
mov ecx, 0x1002caa0
push ebx
call fcn.10001270
mov eax, dword [0x1002caa4]
push edi
mov dword [eax], 0
call fcn.1000ec60
mov ecx, dword [0x1002ca9c]
add esp, 4
mov edi, dword [0x1002ca94]
test ecx, ecx
mov dword [ebp - 0x214], eax
mov esi, ecx
mov eax, 0x10
cmove esi, eax
lea eax, [edi + 1]
cmp eax, esi
jle 0x10001be9
add esi, esi
cmp edi, esi
jge 0x10001be3
cmp esi, ecx
je 0x10001cbf
cmp esi, edi
je 0x10001cbf
test esi, esi
jg 0x10001c32
mov eax, dword [0x1002ca98]
mov dword [0x1002ca94], 0
mov dword [0x1002ca9c], 0
test eax, eax
je 0x10001c23
push eax
call fcn.1001408b
add esp, 4
mov dword [0x1002ca98], 0
jmp 0x10001cda
lea eax, [esi*4]
push eax
call fcn.10014090
mov ecx, eax
add esp, 4
mov dword [ebp - 0x21c], ecx
test ecx, ecx
je 0x10001cda
mov eax, dword [0x1002ca94]
cmp esi, eax
cmovl eax, esi
mov dword [0x1002ca94], eax
shl eax, 2
push eax
push dword [0x1002ca98]
push ecx
call fcn.10011600
mov eax, dword [0x1002ca98]
add esp, 0xc
mov dword [0x1002ca9c], esi
test eax, eax
je 0x10001c8c
push eax
call fcn.1001408b
add esp, 4
mov ecx, dword [0x1002ca94]
mov eax, dword [ebp - 0x21c]
mov dword [0x1002ca98], eax
cmp ecx, edi
jle 0x10001cbf
sub ecx, edi
lea esi, [edi*4]
shl ecx, 2
add eax, esi
push ecx
push eax
add eax, 4
push eax
call fcn.10011b80
add esp, 0xc
jmp 0x10001cc6
lea esi, [edi*4]
mov eax, dword [0x1002ca98]
mov ecx, dword [ebp - 0x214]
mov dword [esi + eax], ecx
inc dword [0x1002ca94]
imul eax, ebx, 0x208
push eax
push 0x2002
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov esi, eax
mov dword [ebp - 0x220], esi
test esi, esi
je 0x10001dab
push esi
call dword [sym.imp.KERNEL32.dll_GlobalLock]
xor edi, edi
mov esi, eax
test ebx, ebx
jle 0x10001d9e
cmp dword [ebp + 8], edi
mov edx, 0x8000
mov eax, 1
cmove edx, eax
mov dword [ebp - 0x21c], edx
mov eax, dword [0x1002caa4]
push edx
push 0x104
push esi
mov ecx, dword [eax + edi*4]
mov eax, dword [0x1002ca98]
mov eax, dword [eax + ecx*4]
push eax
push dword [0x1002ca90]
mov dword [ebp - 0x214], eax
call fcn.10004050
mov eax, dword [0x1002d790]
add esp, 0x14
push dword [ebp - 0x214]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10001d67
sub ecx, edx
push 0x10022440
push 3
lea eax, [ecx + esi]
push eax
call fcn.10001fc0
mov ecx, esi
add esp, 0xc
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10001d88
sub ecx, edx
inc edi
mov edx, dword [ebp - 0x21c]
add esi, ecx
cmp edi, ebx
jl 0x10001d25
mov esi, dword [ebp - 0x220]
push esi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push 0
call dword [sym.imp.USER32.dll_OpenClipboard]
pop ebx
test eax, eax
je 0x10001dcd
call dword [sym.imp.USER32.dll_EmptyClipboard]
push esi
push 1
call dword [sym.imp.USER32.dll_SetClipboardData]
call dword [sym.imp.USER32.dll_CloseClipboard]
mov eax, dword [0x1002ca90]
mov dword [0x1002ca94], 0
mov dword [0x1002caa0], 0
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov edx, dword [ebp - 0x22c]
pop edi
pop esi
test edx, edx
je 0x10001e04
mov eax, dword [0x1002d790]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1001025d
mov esp, ebp
pop ebp
ret