Function at 0x46d9d0
Capabilities:
Open clipboard
Write clipboard data

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x74
push ebx
push esi
push edi
mov edi, ecx
cmp dword [edi], 1
mov dword [ebp - 0x1c], edi
jne 0x46dac5
mov eax, dword [edi + 0x1b2c]
mov edx, dword [ebp + 0x14]
mov esi, dword [edi + 0x1b18]
mov ecx, dword [edi + 0x1b30]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 0x10]
push edx
push eax
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x10], ecx
call fcn.0041f4f0
add esp, 8
cmp dword [edi + 0x1b44], 0
mov dword [ebp + 0x14], eax
je 0x46da57
movsx ecx, word [edi + 0x1af2]
movsx eax, word [ebp + 0x14]
sub eax, ecx
jns 0x46da35
xor edx, edx
mov word [ebp + 0x14], dx
jmp 0x46da39
mov word [ebp + 0x14], ax
movsx ecx, word [edi + 0x1af4]
movsx eax, word [ebp + 0x16]
sub eax, ecx
jns 0x46da50
xor edx, edx
mov word [ebp + 0x16], dx
jmp 0x46da54
mov word [ebp + 0x16], ax
mov eax, dword [ebp + 0x14]
movsx ecx, word [ebp + 0x14]
shr eax, 0x10
movsx edx, ax
mov eax, dword [ebp + 0x1c]
mov dword [ebp + 0x10], ecx
mov ecx, dword [ebp + 0x18]
push eax
push ecx
mov dword [ebp + 0x14], edx
call fcn.0041f4f0
add esp, 8
cmp dword [edi + 0x1b44], 0
mov dword [ebp + 0x18], eax
je 0x46dab6
movsx edx, word [edi + 0x1af2]
movsx eax, word [ebp + 0x18]
sub eax, edx
jns 0x46da94
xor eax, eax
movsx ecx, word [edi + 0x1af4]
mov word [ebp + 0x18], ax
movsx eax, word [ebp + 0x1a]
sub eax, ecx
jns 0x46daaf
xor edx, edx
mov word [ebp + 0x1a], dx
jmp 0x46dab3
mov word [ebp + 0x1a], ax
mov eax, dword [ebp + 0x18]
movsx ecx, word [ebp + 0x18]
shr eax, 0x10
mov dword [ebp + 0x18], ecx
movsx ebx, ax
jmp 0x46daef
mov eax, dword [edi + 0x1b94]
test eax, eax
je 0x46e248
movsx edx, word [edi + 0x1b88]
movsx ecx, word [edi + 0x1b8a]
mov ebx, dword [ebp + 0x1c]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x10], ecx
mov esi, eax
mov dword [ebp - 0x24], eax
test esi, esi
je 0x46e248
cmp dword [ebp - 0x18], 0
je 0x46e261
cmp dword [ebp - 0x10], 0
je 0x46e261
mov ecx, dword [edi + 0x4c]
push 0
call fcn.0047dfd0
mov ecx, dword [0x50b3a0]
push eax
call fcn.004430b0
mov esi, eax
test esi, esi
jne 0x46db4a
push eax
push 0xe6c
push str.RealBuffer.cpp
push str.pApp_NULL
call fcn.004223a0
add esp, 0x10
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov ecx, esi
call fcn.0046ce40
mov ecx, esi
mov byte [ebp - 2], al
call fcn.0046ce10
mov ecx, esi
mov byte [ebp + 0x1f], al
call fcn.0046cdb0
mov ecx, esi
mov byte [ebp - 3], al
call fcn.0046cde0
mov byte [ebp - 1], al
mov edx, 0x2591
mov word [ebp - 0x74], dx
mov eax, 0x2592
mov word [ebp - 0x72], ax
mov ecx, 0x2593
mov word [ebp - 0x70], cx
mov edx, 0x2588
mov word [ebp - 0x6e], dx
mov eax, 0x25b2
mov word [ebp - 0x6c], ax
mov ecx, 0x25bc
mov word [ebp - 0x6a], cx
mov edx, 0x25c4
mov word [ebp - 0x68], dx
mov eax, 0x25ba
mov word [ebp - 0x66], ax
mov ecx, 0x2191
mov word [ebp - 0x64], cx
mov edx, 0x2193
mov word [ebp - 0x62], dx
mov eax, 0xa0
mov word [ebp - 0x60], ax
mov ecx, 0x2551
mov word [ebp - 0x5e], cx
mov edx, 0x2502
mov word [ebp - 0x5c], dx
mov eax, 0x2554
mov word [ebp - 0x5a], ax
mov ecx, 0x2557
mov word [ebp - 0x58], cx
mov edx, 0x255a
mov word [ebp - 0x56], dx
mov eax, 0x255d
mov word [ebp - 0x54], ax
mov ecx, 0x250c
mov word [ebp - 0x52], cx
mov edx, 0x2510
mov word [ebp - 0x50], dx
mov eax, 0x2514
mov word [ebp - 0x4e], ax
mov ecx, 0x2518
mov word [ebp - 0x4c], cx
mov edx, 0x2564
mov word [ebp - 0x4a], dx
mov eax, 0x2567
mov word [ebp - 0x48], ax
mov ecx, 0x2566
mov edx, 0x2569
mov word [ebp - 0x46], cx
mov word [ebp - 0x44], dx
mov eax, 0x252c
mov word [ebp - 0x42], ax
mov ecx, 0x2534
mov edx, 0x2565
mov word [ebp - 0x40], cx
mov word [ebp - 0x3e], dx
mov eax, 0x2568
mov ecx, 0x2560
mov edx, 0x2563
mov word [ebp - 0x3c], ax
mov eax, 0x255f
mov word [ebp - 0x3a], cx
mov word [ebp - 0x38], dx
mov ecx, 0x2562
mov edx, 0x251c
mov word [ebp - 0x36], ax
mov word [ebp - 0x34], cx
mov word [ebp - 0x32], dx
mov eax, 0x2524
mov word [ebp - 0x30], ax
mov ecx, 0x2550
mov word [ebp - 0x2e], cx
xor ecx, ecx
mov edx, 0x2500
mov eax, 0x256c
mov word [ebp - 0x2a], ax
mov word [ebp - 0x28], cx
mov ecx, dword [ebp + 0x18]
mov word [ebp - 0x2c], dx
mov edx, dword [ebp + 0x10]
mov eax, ecx
sub eax, edx
mov dword [ebp - 0xc], eax
mov eax, ebx
sub eax, dword [ebp + 0x14]
mov dword [ebp - 8], eax
imul eax, dword [ebp - 0x18]
add eax, ecx
cmp edx, eax
jle 0x46dd11
push 0
push 0xe8b
push str.RealBuffer.cpp
push str.srSelection_X1____srSelection_X2_srSelection_Y2_srSelection_Y1_nTextWidth_
call fcn.004223a0
add esp, 0x10
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov eax, dword [ebp - 0xc]
mov ebx, dword [ebp - 8]
inc eax
inc ebx
cmp byte [ebp + 0xc], 0
mov dword [ebp - 0xc], eax
jne 0x46dd2d
add eax, 2
imul eax, ebx
sub eax, 2
jmp 0x46dd7f
cmp ebx, 1
je 0x46dd7f
cmp ebx, 2
jne 0x46dd49
mov edx, dword [edi + 0x1b2c]
sub edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x18]
lea eax, [edx + eax + 3]
jmp 0x46dd7f
jg 0x46dd64
push 0
push 0xea3
push str.RealBuffer.cpp
push str.nSelHeight_2
call fcn.004223a0
add esp, 0x10
mov eax, dword [edi + 0x1b2c]
lea ecx, [eax + 2]
lea edx, [ebx - 2]
imul ecx, edx
sub ecx, dword [ebp + 0x10]
add ecx, eax
mov eax, dword [ebp + 0x18]
lea eax, [ecx + eax + 3]
lea ecx, [eax + eax + 2]
push ecx
push 0x42
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x46ddb6
push eax
push 0xeaf
push str.RealBuffer.cpp
push str.hUnicode___NULL
call fcn.004223a0
add esp, 0x10
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov edx, dword [ebp - 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov esi, eax
test esi, esi
jne 0x46dde8
push eax
push 0xeb7
push str.RealBuffer.cpp
push str.pch___NULL
call fcn.004223a0
mov eax, dword [ebp - 0x14]
add esp, 0x10
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp + 0x10]
add ecx, edx
cmp ecx, dword [ebp - 0x18]
jle 0x46de17
push 0
push 0xebe
push str.RealBuffer.cpp
push str._srSelection_X1__nSelWidth____nTextWidth
call fcn.004223a0
mov eax, dword [ebp - 0x18]
add esp, 0x10
sub eax, dword [ebp + 0x10]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 0x14]
lea ecx, [ebx + eax]
cmp ecx, dword [ebp - 0x10]
jle 0x46de41
push 0
push 0xec4
push str.RealBuffer.cpp
push str._srSelection_Y1__nSelHeight____nTextHeight
call fcn.004223a0
mov ebx, dword [ebp - 0x10]
add esp, 0x10
sub ebx, dword [ebp + 0x14]
dec ebx
cmp byte [ebp + 0xc], 0
mov dword [ebp - 8], ebx
jne 0x46df28
xor ecx, ecx
mov dword [ebp + 0xc], ecx
test ebx, ebx
jl 0x46e180
mov ebx, dword [ebp - 0xc]
nop
cmp dword [edi], 1
mov eax, dword [ebp + 0x14]
jne 0x46de7a
lea edx, [ecx + eax]
imul edx, dword [edi + 0x1b2c]
mov eax, dword [edi + 0x1b18]
jmp 0x46de8e
cmp ecx, dword [ebp - 0x10]
jge 0x46ded5
movsx edx, word [edi + 0x1b88]
add eax, ecx
imul edx, eax
mov eax, dword [ebp - 0x24]
add edx, dword [ebp + 0x10]
lea eax, [eax + edx*2]
test eax, eax
je 0x46ded5
lea ecx, [ebx - 1]
mov edx, esi
test ecx, ecx
jl 0x46deb6
inc ecx
mov bx, word [eax]
mov word [esi], bx
add esi, 2
add eax, 2
sub ecx, 1
jne 0x46dea2
mov ebx, dword [ebp - 0xc]
cmp byte [ebp + 0x1f], 1
jne 0x46deea
cmp esi, edx
jbe 0x46deea
cmp word [esi - 2], 0x20
jne 0x46deea
add esi, 0xfffffffe
xor ecx, ecx
mov word [esi], cx
cmp esi, edx
ja 0x46dec0
jmp 0x46deea
cmp byte [ebp + 0x1f], 1
je 0x46deed
push ebx
push 0x20
push esi
call fcn.0044d3b0
add esp, 0xc
lea esi, [esi + ebx*2]
mov ecx, dword [ebp + 0xc]
cmp ecx, dword [ebp - 8]
jge 0x46df16
movzx eax, byte [ebp - 2]
sub eax, 1
je 0x46df0b
mov edx, 0xd
mov word [esi], dx
add esi, 2
sub eax, 1
je 0x46df16
mov eax, 0xa
mov word [esi], ax
add esi, 2
inc ecx
cmp ecx, dword [ebp - 8]
mov dword [ebp + 0xc], ecx
jle 0x46de60
jmp 0x46e180
xor ebx, ebx
cmp dword [ebp - 8], ebx
mov dword [ebp - 0x20], ebx
jl 0x46e180
mov eax, ebx
neg eax
sbb eax, eax
not eax
and eax, dword [ebp + 0x10]
cmp ebx, dword [ebp - 8]
jne 0x46df4b
mov edx, dword [ebp + 0x18]
jmp 0x46df55
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x1b2c]
dec edx
mov edi, dword [ebp - 0x1c]
xor ecx, ecx
cmp dword [edi], 1
mov dword [ebp + 0xc], edx
mov dword [ebp - 0x18], ecx
jne 0x46dfae
lea edx, [ebx + 1]
mov ebx, dword [ebp + 0x14]
mov ecx, edi
mov edi, dword [ecx + 0x1b2c]
mov ecx, dword [ecx + 0x1b18]
lea ebx, [edx + ebx - 1]
imul ebx, edi
add ebx, eax
cmp edx, dword [ebp - 8]
lea ecx, [ecx + ebx*2]
mov ebx, dword [ebp - 0x20]
jg 0x46dfee
mov edx, dword [ebp + 0x14]
lea edx, [ebx + edx + 1]
imul edx, edi
mov edi, dword [ebp - 0x1c]
mov dword [ebp - 0x20], edx
mov edx, dword [edi + 0x1b18]
mov edi, dword [ebp - 0x20]
lea edx, [edx + edi*2]
mov dword [ebp - 0x18], edx
jmp 0x46dff5
cmp ebx, dword [ebp - 0x10]
jge 0x46dff8
mov ecx, edi
movsx edi, word [ecx + 0x1b88]
mov ecx, dword [ebp + 0x14]
lea edx, [ebx + 1]
mov ebx, dword [ebp - 0x24]
lea ecx, [edx + ecx - 1]
imul ecx, edi
add ecx, eax
cmp edx, dword [ebp - 8]
lea ecx, [ebx + ecx*2]
mov ebx, dword [ebp - 0x20]
jg 0x46dfee
mov edx, dword [ebp + 0x14]
lea edx, [ebx + edx + 1]
imul edx, edi
mov edi, dword [ebp - 0x24]
lea edx, [edi + edx*2]
mov dword [ebp - 0x18], edx
jmp 0x46dff5
mov dword [ebp - 0x18], 0
mov edx, dword [ebp + 0xc]
mov edi, esi
mov dword [ebp - 0x20], edi
test ecx, ecx
je 0x46e023
cmp eax, edx
jg 0x46e038
sub edx, eax
inc edx
jmp 0x46e010
mov ax, word [ecx]
mov word [esi], ax
add esi, 2
add ecx, 2
sub edx, 1
jne 0x46e010
jmp 0x46e038
mov edi, dword [ebp - 0xc]
push edi
push 0x20
push esi
call fcn.0044d3b0
lea esi, [esi + edi*2]
mov edi, dword [ebp - 0x20]
add esp, 0xc
cmp ebx, dword [ebp - 8]
jge 0x46e152
cmp byte [ebp - 3], 0
mov byte [ebp + 0xf], 0
je 0x46e0e7
mov edi, dword [ebp - 0x18]
test edi, edi
je 0x46e0e7
cmp word [edi], 0x20
je 0x46e0e7
movzx eax, word [esi - 2]
push eax
lea ecx, [ebp - 0x74]
push ecx
call fcn.004b03ac
add esp, 8
test eax, eax
jne 0x46e0e7
movzx eax, word [edi]
push eax
lea edx, [ebp - 0x74]
push edx
call fcn.004b03ac
add esp, 8
test eax, eax
jne 0x46e0e7
movzx ecx, word [esi - 2]
cmp cx, 0x20
jne 0x46e0c4
lea eax, [esi - 2]
cmp eax, dword [ebp - 0x20]
jbe 0x46e0a5
cmp word [esi - 4], cx
jne 0x46e0c4
cmp byte [ebp - 1], 0
je 0x46e0e7
lea edx, [esi - 4]
cmp edx, dword [ebp - 0x20]
jbe 0x46e0c8
mov eax, 0x20
cmp word [esi - 4], ax
jne 0x46e0c8
cmp word [esi - 6], ax
je 0x46e0c8
mov al, 1
jmp 0x46e0cb
mov al, byte [ebp + 0xf]
cmp byte [ebp - 1], 0
je 0x46e0df
cmp cx, 0x20
jne 0x46e0df
add esi, 0xfffffffe
xor ecx, ecx
mov word [esi], cx
test al, al
jne 0x46e173
cmp byte [ebp + 0x1f], 0
je 0x46e112
mov eax, dword [ebp - 0x20]
cmp esi, eax
jbe 0x46e112
mov ecx, 0x20
lea esp, [esp]
cmp word [esi - 2], cx
jne 0x46e112
add esi, 0xfffffffe
xor edx, edx
mov word [esi], dx
cmp esi, eax
ja 0x46e100
movzx eax, byte [ebp - 2]
sub eax, 1
je 0x46e145
sub eax, 1
je 0x46e138
mov eax, 0xd
mov word [esi], ax
add esi, 2
mov ecx, 0xa
mov word [esi], cx
add esi, 2
jmp 0x46e173
mov edx, 0xd
mov word [esi], dx
add esi, 2
jmp 0x46e173
mov eax, 0xa
mov word [esi], ax
add esi, 2
jmp 0x46e173
cmp byte [ebp + 0x1f], 0
je 0x46e173
cmp esi, edi
jbe 0x46e173
lea esp, [esp]
cmp word [esi - 2], 0x20
jne 0x46e173
add esi, 0xfffffffe
xor ecx, ecx
mov word [esi], cx
cmp esi, edi
ja 0x46e160
inc ebx
cmp ebx, dword [ebp - 8]
mov dword [ebp - 0x20], ebx
jle 0x46df36
mov edx, dword [ebp - 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov eax, dword [0x50b384]
mov edi, dword [sym.imp.USER32.dll_OpenClipboard]
push eax
call edi
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x46e1ce
call esi
push 0
push 0
push 0x15
push eax
push str.OpenClipboard_failed_
call fcn.004200b0
add esp, 0x14
cmp eax, 4
jne 0x46e261
mov ecx, dword [0x50b384]
push ecx
call edi
test eax, eax
je 0x46e1a2
call dword [sym.imp.USER32.dll_EmptyClipboard]
mov edx, dword [ebp - 0x14]
mov edi, dword [sym.imp.USER32.dll_SetClipboardData]
push edx
push 0xd
call edi
test eax, eax
setne bl
test bl, bl
jne 0x46e237
jmp 0x46e1f0
call esi
push 0
push 0
push 0x15
push eax
push str.SetClipboardData_CF_UNICODETEXT__...__failed_
call fcn.004200b0
add esp, 0x14
cmp eax, 4
jne 0x46e22d
mov eax, dword [ebp - 0x14]
push eax
push 0xd
call edi
test eax, eax
setne bl
test bl, bl
je 0x46e1f0
call dword [sym.imp.USER32.dll_CloseClipboard]
pop edi
pop esi
mov al, bl
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov ecx, dword [ebp - 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
call dword [sym.imp.USER32.dll_CloseClipboard]
pop edi
pop esi
mov al, bl
pop ebx
mov esp, ebp
pop ebp
ret 0x18
push 0
push 0xe65
push str.RealBuffer.cpp
push str.pszDataStart___NULL
call fcn.004223a0
add esp, 0x10
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 0x18