Function at 0x41f6e0
Capabilities:
Open clipboard
Write clipboard data

Disassembly:
push 0xffffffffffffffff
push 0x43cd56
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x30
push ebp
push esi
push edi
mov edi, ecx
xor ebp, ebp
mov eax, dword [edi + 0x124]
mov dword [esp + 0x18], ebp
cmp eax, ebp
jne 0x41fc93
call fcn.00421700
mov ecx, dword [edi + 0x13c]
cmp ecx, ebp
jl 0x41fc93
mov eax, dword [edi + 0x138]
cmp eax, ebp
jl 0x41fc93
cmp eax, ecx
push ebx
jge 0x41f73f
mov ebx, eax
mov dword [esp + 0x24], ebx
jmp 0x41f745
mov dword [esp + 0x24], ecx
mov ebx, ecx
cmp eax, ecx
mov dword [esp + 0x20], ecx
jl 0x41f751
mov dword [esp + 0x20], eax
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [edi + 0x67c]
lea eax, [edi + 0x67c]
mov dword [esp + 0x48], ebp
cmp dword [ecx - 8], ebp
jne 0x41f7ac
mov eax, dword [esp + 0x20]
mov edx, 0
sub eax, ebx
lea ecx, [edi + 0x44]
sets dl
dec edx
and eax, edx
push eax
lea eax, [esp + 0x2c]
push ebx
push eax
call sub.MFC42.DLL_CString::Mid_1
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x4c], 1
call sub.MFC42.DLL_CString::operator
mov byte [esp + 0x48], 0
lea ecx, [esp + 0x28]
jmp 0x41fbd5
push eax
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::CString_2
lea ecx, [edi + 0x44]
mov byte [esp + 0x48], 2
push ecx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::CString_2
mov eax, dword [edi + 0x6a0]
mov byte [esp + 0x48], 3
cmp eax, ebp
je 0x41f971
cmp word [edi + 0xda], bp
je 0x41f971
mov dl, byte [edi + 0x129]
lea ecx, [esp + 0x10]
push edx
call sub.MFC42.DLL_CString::ReverseFind
cmp eax, 0xffffffff
jle 0x41f807
mov ecx, dword [esp + 0x10]
mov ebp, dword [ecx - 8]
sub ebp, eax
dec ebp
mov dl, byte [edi + 0x129]
lea ecx, [esp + 0x18]
push edx
call sub.MFC42.DLL_CString::ReverseFind
test ebp, ebp
mov esi, eax
jg 0x41f85b
cmp esi, 0xffffffff
jle 0x41f853
lea eax, [esp + 0x28]
push esi
push eax
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CString::Left
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x4c], 4
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x28]
mov byte [esp + 0x48], 3
call sub.MFC42.DLL_CString::CString
jmp 0x41f971
test ebp, ebp
jle 0x41f971
cmp esi, 0xffffffff
jle 0x41f8f2
push ebp
push 0x39
lea ecx, [esp + 0x3c]
call fcn.0043a87a
mov ebp, eax
lea ecx, [esp + 0x30]
push esi
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x50], 5
call sub.MFC42.DLL_CString::Left
mov dl, byte [edi + 0x129]
mov byte [esp + 0x48], 6
push edx
push eax
lea eax, [esp + 0x34]
push eax
call sub.MFC42.DLL_operator_3
push ebp
lea ecx, [esp + 0x2c]
mov bl, 7
push eax
push ecx
mov byte [esp + 0x54], bl
call sub.MFC42.DLL_operator_1
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x4c], 8
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x28]
mov byte [esp + 0x48], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x2c]
mov byte [esp + 0x48], 6
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x30]
mov byte [esp + 0x48], 5
call sub.MFC42.DLL_CString::CString
mov byte [esp + 0x48], 3
lea ecx, [esp + 0x34]
jmp 0x41f968
test ebp, ebp
jle 0x41f971
test esi, esi
jge 0x41f971
push ebp
push 0x39
lea ecx, [esp + 0x34]
call fcn.0043a87a
mov esi, eax
mov dl, byte [edi + 0x129]
lea eax, [esp + 0x18]
push edx
lea ecx, [esp + 0x34]
push eax
push ecx
mov byte [esp + 0x54], 9
call sub.MFC42.DLL_operator_3
push esi
lea edx, [esp + 0x38]
mov bl, 0xa
push eax
push edx
mov byte [esp + 0x54], bl
call sub.MFC42.DLL_operator_1
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x4c], 0xb
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x34]
mov byte [esp + 0x48], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x30]
mov byte [esp + 0x48], 9
call sub.MFC42.DLL_CString::CString
mov byte [esp + 0x48], 3
lea ecx, [esp + 0x2c]
call sub.MFC42.DLL_CString::CString
mov ebx, dword [esp + 0x24]
mov ecx, dword [edi + 0x6a0]
mov edx, dword [esp + 0x10]
or eax, 0xffffffff
test ecx, ecx
mov dword [esp + 0x28], eax
je 0x41f9aa
mov ecx, dword [edi + 0x69c]
test ecx, ecx
je 0x41f9aa
mov ecx, dword [edx - 8]
test ecx, ecx
jl 0x41f9a6
mov cl, byte [edx]
mov dword [esp + 0x28], 0
cmp cl, 0x2d
je 0x41f9aa
mov dword [esp + 0x28], eax
mov esi, 2
cmp word [edi + 0x10e], si
je 0x41f9c2
mov eax, dword [edi + 0x690]
test eax, eax
je 0x41fa17
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::MakeReverse
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::MakeReverse
cmp word [edi + 0x10e], si
mov edx, dword [esp + 0x10]
je 0x41f9eb
mov eax, dword [edi + 0x690]
test eax, eax
je 0x41fa04
mov eax, dword [edx - 8]
mov ecx, ebx
mov ebx, dword [esp + 0x20]
mov esi, eax
sub esi, ebx
sub eax, ecx
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], eax
mov ebx, esi
mov ecx, dword [esp + 0x28]
or eax, 0xffffffff
cmp ecx, eax
jle 0x41fa13
mov eax, dword [edx - 8]
dec eax
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0x6a0]
or ebp, 0xffffffff
test eax, eax
je 0x41fa44
cmp word [edi + 0xda], 0
je 0x41fa44
mov al, byte [edi + 0x129]
lea ecx, [esp + 0x10]
push eax
call sub.MFC42.DLL_CString::ReverseFind
mov edx, dword [esp + 0x10]
mov ebp, eax
mov eax, dword [esp + 0x20]
mov esi, ebx
cmp ebx, eax
jge 0x41fba1
jmp 0x41fa5c
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
cmp dword [ecx - 8], esi
jle 0x41fb6e
mov al, byte [esi + edx]
cmp al, 0x2d
jne 0x41fa8d
cmp dword [esp + 0x28], esi
jne 0x41fa8d
mov byte [esp + 0x34], al
mov ecx, dword [esp + 0x34]
push ecx
lea ecx, [esp + 0x18]
call fcn.0043a6be
jmp 0x41fb5f
mov bl, byte [esi + ecx]
mov cl, byte [edi + 0x129]
cmp bl, cl
mov byte [esp + 0x2c], bl
jne 0x41fab9
cmp ebp, esi
jne 0x41fab9
mov byte [esp + 0x30], al
mov edx, dword [esp + 0x30]
push edx
lea ecx, [esp + 0x18]
call fcn.0043a6be
jmp 0x41fb5f
mov eax, dword [esp + 0x2c]
mov ecx, edi
push eax
call fcn.00421310
test eax, eax
je 0x41fb5f
cmp bl, 0x58
jne 0x41faec
push 0x44e678
lea ecx, [esp + 0x40]
call sub.MFC42.DLL_CString::CString_1
or dword [esp + 0x1c], 1
mov byte [esp + 0x48], 0xc
jmp 0x41fb14
mov ecx, dword [esp + 0x10]
push 1
mov dl, byte [esi + ecx]
lea ecx, [esp + 0x3c]
mov byte [esp + 0x28], dl
mov eax, dword [esp + 0x28]
push eax
call fcn.0043a87a
or dword [esp + 0x1c], 2
mov dword [esp + 0x48], 0xd
push eax
lea ecx, [esp + 0x18]
call fcn.0043a6c4
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x48], 0xc
test bl, 2
je 0x41fb3f
and ebx, 0xfffffffd
lea ecx, [esp + 0x38]
mov dword [esp + 0x1c], ebx
call sub.MFC42.DLL_CString::CString
test bl, 1
mov dword [esp + 0x48], 3
je 0x41fb5f
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x3c]
and al, 0xfe
mov dword [esp + 0x1c], eax
call sub.MFC42.DLL_CString::CString
mov eax, dword [esp + 0x20]
inc esi
cmp esi, eax
jl 0x41fa54
jmp 0x41fba1
cmp esi, eax
jge 0x41fba1
sub eax, esi
lea ecx, [esp + 0x3c]
push eax
push esi
push ecx
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::Mid_1
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x4c], 0xe
call fcn.0043a6c4
lea ecx, [esp + 0x3c]
mov byte [esp + 0x48], 3
call sub.MFC42.DLL_CString::CString
cmp word [edi + 0x10e], 2
je 0x41fbb5
mov eax, dword [edi + 0x690]
test eax, eax
je 0x41fbbe
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::MakeReverse
lea ecx, [esp + 0x10]
mov byte [esp + 0x48], 2
call sub.MFC42.DLL_CString::CString
mov byte [esp + 0x48], 0
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::CString
mov edx, dword [edi + 0x20]
push edx
call dword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
pop ebx
je 0x41fc07
call dword [sym.imp.USER32.dll_EmptyClipboard]
test eax, eax
jne 0x41fc2c
call dword [sym.imp.USER32.dll_CloseClipboard]
push 0
push 0
push str.Cannot_empty_the_Clipboard
call sub.MFC42.DLL_AfxMessageBox_1
lea ecx, [esp + 0x10]
mov dword [esp + 0x44], 0xffffffff
call sub.MFC42.DLL_CString::CString
pop edi
pop esi
xor eax, eax
pop ebp
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
add esp, 0x3c
ret
mov eax, dword [esp + 0x10]
mov eax, dword [eax - 8]
inc eax
push eax
push 0x2000
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ebp, eax
push ebp
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov edi, dword [esp + 0x10]
mov edx, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push ebp
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push ebp
push 0xd
call dword [sym.imp.USER32.dll_SetClipboardData]
call dword [sym.imp.USER32.dll_CloseClipboard]
lea ecx, [esp + 0x10]
mov dword [esp + 0x44], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x3c]
pop edi
pop esi
mov eax, 1
pop ebp
mov dword fs:[0], ecx
add esp, 0x3c
ret