Function at 0x444389
Capabilities:
Open clipboard
Write clipboard data

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x66c
push ebx
push esi
mov esi, dword [ebp + 0x14]
push edi
xor edi, edi
push edi
push edi
push edi
push edi
push esi
push dword [ebp + 0xc]
push edi
push edi
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ebx, dword [sym.imp.KERNEL32.dll_GlobalAlloc]
add esi, esi
push esi
push 0x2002
mov dword [ebp - 0x1c], eax
call ebx
push dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
push 0x2002
call ebx
cmp dword [ebp - 0x18], edi
mov ebx, dword [sym.imp.KERNEL32.dll_GlobalFree]
mov dword [ebp - 0x14], eax
je 0x444ac3
cmp eax, edi
push dword [ebp - 0x18]
je 0x444ac1
mov ebx, dword [sym.imp.KERNEL32.dll_GlobalLock]
call ebx
cmp eax, edi
mov dword [ebp - 0x30], eax
jne 0x44440b
push dword [ebp - 0x18]
mov esi, dword [sym.imp.KERNEL32.dll_GlobalFree]
call esi
push dword [ebp - 0x14]
call esi
jmp 0x444acd
push dword [ebp - 0x14]
call ebx
cmp eax, edi
mov dword [ebp - 0x28], eax
jne 0x444422
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
jmp 0x4443f6
push esi
push dword [ebp + 0xc]
push dword [ebp - 0x30]
call fcn.004528f0
add esp, 0xc
push edi
push edi
push dword [ebp - 0x1c]
push dword [ebp - 0x28]
push dword [ebp + 0x14]
push dword [ebp + 0xc]
push edi
push edi
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push 0x88
push dword [0x47f55c]
call fcn.00402257
test eax, eax
pop ecx
pop ecx
je 0x444a25
push 0x70
push dword [0x47f55c]
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x38], edi
call fcn.0040262d
mov esi, eax
push edi
lea eax, [ebp - 0x66c]
push eax
push edi
call fcn.004505e0
push dword [esi]
call fcn.004521e0
add eax, 0x64
push 1
push eax
mov dword [ebp - 0x24], eax
call fcn.0040bcdf
mov ebx, eax
mov eax, dword [esi + 8]
shl eax, 1
push eax
push dword [esi]
push str._rtf1_ansideff0_fonttbl_f0_fmodern__s__f0_fs_d
push ebx
call fcn.00452d28
add esp, 0x30
cmp dword [ebp + 0x10], edi
mov esi, eax
je 0x444616
push 0x418
lea eax, [ebp - 0x46c]
push edi
push eax
call fcn.00452e50
mov eax, dword [ebp + 0x14]
add esp, 0xc
dec eax
cmp eax, edi
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x2c], eax
jle 0x44457b
mov esi, 0x1ff
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp + 0x10]
lea eax, [eax + ecx*4]
mov edx, dword [eax]
mov dword [ebp - 4], eax
mov eax, edx
shr eax, 9
mov ecx, edx
and ecx, esi
and eax, esi
test edx, 0x100000
je 0x44451b
mov edx, ecx
mov ecx, eax
mov eax, edx
cmp dword [0x47dcb8], edi
je 0x44453f
mov edx, dword [ebp - 4]
test byte [edx + 2], 4
je 0x44453f
cmp ecx, 8
jge 0x444536
add ecx, 8
jmp 0x44453f
cmp ecx, 0x100
jl 0x44453f
inc ecx
mov edx, dword [ebp - 4]
test byte [edx + 2], 0x20
je 0x44455a
cmp eax, 8
jge 0x444552
add eax, 8
jmp 0x44455a
cmp eax, 0x100
jl 0x44455a
inc eax
lea ecx, [ebp + ecx*4 - 0x46c]
inc dword [ecx]
lea eax, [ebp + eax*4 - 0x46c]
inc dword [eax]
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x2c]
jl 0x4444f4
xor eax, eax
xor edx, edx
lea ecx, [ebp + edx*4 - 0x46c]
cmp dword [ecx], edi
je 0x44458d
inc eax
mov dword [ecx], eax
inc edx
cmp edx, 0x106
jl 0x44457f
imul eax, eax, 0x19
add eax, dword [ebp - 0x24]
push 1
push eax
push ebx
call fcn.0040bd3e
mov ebx, eax
push str.colortbl__
push ebx
call fcn.00453ec0
push ebx
call fcn.004521e0
mov esi, eax
lea eax, [ebp - 0x46c]
add esp, 0x18
mov edi, 0x47ce21
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
cmp dword [eax], 0
je 0x4445f4
movzx eax, byte [edi - 1]
push eax
movzx eax, byte [edi]
push eax
movzx eax, byte [edi + 1]
push eax
lea eax, [esi + ebx]
push str._red_dgreen_d_blue_d_
push eax
call fcn.00452d28
add esp, 0x14
add esi, eax
add dword [ebp - 4], 4
add edi, 3
cmp edi, 0x47d133
jl 0x4445cb
lea eax, [esi + ebx]
push 0x4731a0
push eax
call fcn.00453eb0
pop ecx
inc esi
pop ecx
xor edi, edi
cmp dword [ebp - 0x1c], edi
jle 0x4449db
lea eax, [ebp - 0x66c]
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x20]
cmp ecx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x10]
jge 0x4449db
mov edx, dword [ebp - 0x28]
cmp byte [eax + edx], 0
je 0x4449db
mov edx, dword [ebp - 0x30]
cmp word [edx + ecx*2], di
je 0x4449db
lea edx, [eax + 1]
cmp edx, dword [ebp - 0x1c]
jge 0x444673
mov ecx, dword [ebp - 0x28]
cmp byte [eax + ecx], 0xd
jne 0x444673
cmp byte [eax + ecx + 1], 0xa
jne 0x444673
inc dword [ebp - 0x20]
add dword [ebp - 0xc], 2
mov dword [ebp - 0x10], edx
cmp dword [ebp + 0x10], edi
je 0x444813
lea eax, [esi + 0x40]
cmp dword [ebp - 0x24], eax
jge 0x44469b
lea eax, [esi + 0x200]
push 1
push eax
push ebx
mov dword [ebp - 0x24], eax
call fcn.0040bd3e
add esp, 0xc
mov ebx, eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x10]
lea ecx, [eax + ecx*4]
mov edx, dword [ecx]
mov edi, edx
shr edi, 9
mov eax, edx
and eax, 0x1ff
and edi, 0x1ff
test edx, 0x100000
je 0x4446c6
mov edx, eax
mov eax, edi
mov edi, edx
cmp dword [0x47dcb8], 0
je 0x4446e7
test byte [ecx + 2], 4
je 0x4446e7
cmp eax, 8
jge 0x4446df
add eax, 8
jmp 0x4446e7
cmp eax, 0x100
jl 0x4446e7
inc eax
mov edx, dword [ecx]
test edx, 0x200000
je 0x444704
cmp edi, 8
jge 0x4446fb
add edi, 8
jmp 0x444704
cmp edi, 0x100
jl 0x444704
inc edi
cmp dword [0x47ce18], 0
je 0x444718
and edx, 0x40000
mov dword [ebp - 4], edx
jmp 0x44471c
and dword [ebp - 4], 0
mov ecx, dword [ecx]
mov edx, ecx
and edx, 0x80000
test ecx, 0x100000
mov dword [ebp - 8], edx
jne 0x44475d
mov ecx, pe_nt_image_headers32
cmp edi, ecx
jl 0x44473d
or edi, 0xffffffff
cmp eax, ecx
jl 0x44475d
cmp dword [0x47dcb8], 0
je 0x44475a
test al, 1
je 0x44475a
cmp edi, 0xffffffff
jne 0x44475a
mov dword [ebp - 4], 0x40000
or eax, 0xffffffff
cmp dword [ebp - 0x40], eax
je 0x44478b
test eax, eax
mov dword [ebp - 0x40], eax
jl 0x444772
mov eax, dword [ebp + eax*4 - 0x46c]
jmp 0x444774
xor eax, eax
push eax
lea eax, [esi + ebx]
push str.cf_d
push eax
call fcn.00452d28
mov edx, dword [ebp - 8]
add esp, 0xc
add esi, eax
cmp dword [ebp - 0x3c], edi
je 0x4447b9
test edi, edi
mov dword [ebp - 0x3c], edi
jl 0x4447a0
mov edi, dword [ebp + edi*4 - 0x46c]
jmp 0x4447a2
xor edi, edi
push edi
lea eax, [esi + ebx]
push str.highlight_d
push eax
call fcn.00452d28
mov edx, dword [ebp - 8]
add esp, 0xc
add esi, eax
mov eax, dword [ebp - 4]
cmp dword [ebp - 0x44], eax
je 0x4447e9
mov dword [ebp - 0x44], eax
test eax, eax
mov eax, 0x473184
jne 0x4447d2
mov eax, str._b0
push eax
lea eax, [esi + ebx]
push 0x463914
push eax
call fcn.00452d28
mov edx, dword [ebp - 8]
add esp, 0xc
add esi, eax
cmp dword [ebp - 0x38], edx
je 0x444813
test edx, edx
mov dword [ebp - 0x38], edx
mov eax, str.ul
jne 0x4447ff
mov eax, str.ulnone
push eax
lea eax, [esi + ebx]
push 0x463914
push eax
call fcn.00452d28
add esp, 0xc
add esi, eax
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x20]
add eax, ecx
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x2c], eax
movzx eax, byte [eax]
mov ax, word [ebp + eax*2 - 0x66c]
lea edi, [ecx + edx*2]
cmp ax, word [edi]
jne 0x444849
xor edi, edi
mov dword [ebp - 8], 1
mov byte [ebp - 0x54], 0
mov dword [ebp - 4], edi
jmp 0x4448a9
xor eax, eax
push eax
push eax
push eax
push eax
push 1
push dword [ebp - 0xc]
push eax
push eax
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov dword [ebp - 8], eax
cmp eax, 1
movzx eax, word [edi]
push eax
lea eax, [ebp - 0x54]
je 0x444895
push dword [ebp - 8]
push str.uc_du_d
push eax
call fcn.00452d28
mov edi, eax
lea eax, [ebp - 0x34]
push 0x4731a0
push eax
mov dword [ebp - 4], 1
call fcn.00453eb0
add esp, 0x18
jmp 0x4448ad
push str.u_d
push eax
call fcn.00452d28
add esp, 0xc
and dword [ebp - 4], 0
mov edi, eax
mov byte [ebp - 0x34], 0
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 8]
add eax, ecx
cmp eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
jle 0x4448d4
push 0x144f
push str...windowswindow.c
push str.tindex__multilen___len2
call fcn.00452518
add esp, 0xc
mov eax, dword [ebp - 4]
xor edx, edx
cmp dword [ebp - 8], edx
lea ecx, [eax + edi]
jle 0x444918
mov eax, dword [ebp - 0x2c]
mov al, byte [edx + eax]
cmp al, 0x5c
je 0x444910
cmp al, 0x7b
je 0x444910
cmp al, 0x7d
je 0x444910
cmp al, 0xd
je 0x44490b
cmp al, 0xa
je 0x44490b
cmp al, 0x7e
ja 0x444906
cmp al, 0x20
jb 0x444906
inc ecx
jmp 0x444912
add ecx, 4
jmp 0x444912
add ecx, 6
jmp 0x444912
inc ecx
inc ecx
inc edx
cmp edx, dword [ebp - 8]
jl 0x4448e1
lea eax, [ecx + esi]
lea ecx, [eax + 3]
cmp dword [ebp - 0x24], ecx
jge 0x444939
add eax, 0x200
push 1
push eax
push ebx
mov dword [ebp - 0x24], eax
call fcn.0040bd3e
add esp, 0xc
mov ebx, eax
lea eax, [ebp - 0x54]
push eax
lea eax, [esi + ebx]
push eax
call fcn.00453eb0
add esi, edi
xor edi, edi
cmp dword [ebp - 8], edi
pop ecx
pop ecx
jle 0x4449b1
mov eax, dword [ebp - 0x2c]
lea ecx, [edi + eax]
mov al, byte [ecx]
cmp al, 0x5c
je 0x4449a0
cmp al, 0x7b
je 0x4449a0
cmp al, 0x7d
je 0x4449a0
cmp al, 0xd
je 0x44498c
cmp al, 0xa
je 0x44498c
cmp al, 0x7e
ja 0x444975
cmp al, 0x20
jae 0x4449a7
movzx eax, al
push eax
lea eax, [esi + ebx]
push str._02x
push eax
call fcn.00452d28
add esp, 0xc
jmp 0x44499c
lea eax, [esi + ebx]
push str.par_r_n
push eax
call fcn.00452d28
pop ecx
pop ecx
add esi, eax
jmp 0x4449ab
mov byte [esi + ebx], 0x5c
mov al, byte [ecx]
inc esi
mov byte [esi + ebx], al
inc esi
inc edi
cmp edi, dword [ebp - 8]
jl 0x444951
lea eax, [ebp - 0x34]
push eax
lea eax, [esi + ebx]
push eax
call fcn.00453eb0
add esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
inc dword [ebp - 0x20]
add dword [ebp - 0xc], 2
pop ecx
xor edi, edi
cmp eax, dword [ebp - 0x1c]
pop ecx
mov dword [ebp - 0x10], eax
jl 0x444628
mov byte [esi + ebx], 0x7d
inc esi
mov byte [esi + ebx], 0
inc esi
mov byte [esi + ebx], 0
inc esi
push esi
push 0x2002
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
cmp eax, edi
mov dword [ebp + 0x14], eax
je 0x444a1c
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
cmp eax, edi
je 0x444a1c
push esi
push ebx
push eax
call fcn.004528f0
add esp, 0xc
push dword [ebp + 0x14]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push ebx
call fcn.0040bda9
pop ecx
jmp 0x444a28
mov dword [ebp + 0x14], edi
push dword [ebp - 0x18]
mov esi, dword [sym.imp.KERNEL32.dll_GlobalUnlock]
call esi
push dword [ebp - 0x14]
call esi
cmp dword [ebp + 0x18], edi
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
jne 0x444a53
push edi
push 1
push 0x8002
push dword [0x47f57c]
call ebx
push dword [0x47f57c]
call dword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x444a9b
call dword [sym.imp.USER32.dll_EmptyClipboard]
push dword [ebp - 0x18]
mov esi, dword [sym.imp.USER32.dll_SetClipboardData]
push 0xd
call esi
push dword [ebp - 0x14]
push 1
call esi
cmp dword [ebp + 0x14], edi
je 0x444a93
push dword [ebp + 0x14]
push str.Rich_Text_Format
call dword [sym.imp.USER32.dll_RegisterClipboardFormatA]
push eax
call esi
call dword [sym.imp.USER32.dll_CloseClipboard]
jmp 0x444aab
push dword [ebp - 0x18]
mov esi, dword [sym.imp.KERNEL32.dll_GlobalFree]
call esi
push dword [ebp - 0x14]
call esi
cmp dword [ebp + 0x18], edi
jne 0x444acd
push edi
push edi
push 0x8002
push dword [0x47f57c]
call ebx
jmp 0x444acd
call ebx
cmp dword [ebp - 0x14], edi
je 0x444acd
push dword [ebp - 0x14]
call ebx
pop edi
pop esi
pop ebx
leave
ret