Function at 0x423789
Capabilities:
Write clipboard data

Disassembly:
sub esp, 0xc
push ebp
push edi
push esi
push ebx
mov edi, dword [esp + 0x20]
add esp, 0xfffffff4
push dword [0x4dff70]
call sub.USER32.dll_OpenClipboard
add esp, 0xc
test eax, eax
jne 0x4235f7
xor eax, eax
jmp 0x4237ea
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
add ebx, eax
xor esi, esi
mov eax, edi
cmp esi, edi
jge 0x42369d
mov edx, edi
and edx, 3
test edi, edi
jle 0x423642
test edx, edx
je 0x423655
cmp edx, 1
jle 0x423642
cmp edx, 2
jle 0x423633
cmp byte [ebx], 0xd
jne 0x423632
cmp byte [ebx + 1], 0xa
je 0x423632
lea eax, [edi + 1]
inc esi
cmp byte [esi + ebx], 0xd
jne 0x423641
cmp byte [ebx + esi + 1], 0xa
je 0x423641
inc eax
inc esi
cmp byte [esi + ebx], 0xd
jne 0x423650
cmp byte [ebx + esi + 1], 0xa
je 0x423650
inc eax
inc esi
cmp esi, edi
jge 0x42369d
cmp byte [esi + ebx], 0xd
jne 0x423663
cmp byte [ebx + esi + 1], 0xa
je 0x423663
inc eax
lea edx, [esi + 1]
cmp byte [edx + ebx], 0xd
jne 0x423674
cmp byte [ebx + edx + 1], 0xa
je 0x423674
inc eax
lea edx, [esi + 2]
cmp byte [edx + ebx], 0xd
jne 0x423685
cmp byte [ebx + edx + 1], 0xa
je 0x423685
inc eax
lea edx, [esi + 3]
cmp byte [edx + ebx], 0xd
jne 0x423696
cmp byte [ebx + edx + 1], 0xa
je 0x423696
inc eax
add esi, 4
cmp esi, edi
jl 0x423655
add esp, 0xfffffff4
inc eax
push eax
call sub.crtdll.dll_malloc
mov ebp, eax
mov edx, ebp
add esp, 0x10
test edi, edi
jle 0x42377c
mov esi, edi
mov eax, esi
neg eax
and eax, 3
je 0x423713
cmp eax, 3
jge 0x4236fb
cmp eax, 2
jge 0x4236e5
mov al, byte [ebx]
mov byte [ebp], al
cmp byte [ebx], 0xd
jne 0x4236e2
cmp byte [ebx + 1], 0xa
je 0x4236e2
lea edx, [ebp + 1]
mov byte [ebp + 1], 0xa
dec esi
inc edx
inc ebx
mov al, byte [ebx]
mov byte [edx], al
cmp byte [ebx], 0xd
jne 0x4236f8
cmp byte [ebx + 1], 0xa
je 0x4236f8
inc edx
mov byte [edx], 0xa
dec esi
inc edx
inc ebx
mov al, byte [ebx]
mov byte [edx], al
cmp byte [ebx], 0xd
jne 0x42370e
cmp byte [ebx + 1], 0xa
je 0x42370e
inc edx
mov byte [edx], 0xa
inc edx
inc ebx
dec esi
je 0x42377c
mov al, byte [ebx]
mov byte [edx], al
cmp byte [ebx], 0xd
jne 0x423726
cmp byte [ebx + 1], 0xa
je 0x423726
inc edx
mov byte [edx], 0xa
inc edx
lea ecx, [ebx + 1]
mov al, byte [ebx + 1]
mov byte [edx], al
cmp byte [ebx + 1], 0xd
jne 0x42373f
cmp byte [ecx + 1], 0xa
je 0x42373f
inc edx
mov byte [edx], 0xa
inc edx
lea ecx, [ebx + 2]
mov al, byte [ebx + 2]
mov byte [edx], al
cmp byte [ebx + 2], 0xd
jne 0x423758
cmp byte [ecx + 1], 0xa
je 0x423758
inc edx
mov byte [edx], 0xa
inc edx
lea ecx, [ebx + 3]
mov al, byte [ebx + 3]
mov byte [edx], al
cmp byte [ebx + 3], 0xd
jne 0x423771
cmp byte [ecx + 1], 0xa
je 0x423771
inc edx
mov byte [edx], 0xa
add esi, 0xfffffffc
inc edx
add ebx, 4
test esi, esi
jne 0x423713
mov byte [edx], 0
add esp, 0xfffffff8
push 0
push 0
push 0xffffffffffffffff
push ebp
push 0
push 0xfde9
call sub.KERNEL32.dll_MultiByteToWideChar
mov ebx, eax
lea eax, [ebx + ebx]
push eax
push 0x2002
call sub.KERNEL32.dll_GlobalAlloc
mov esi, eax
add esp, 0xfffffffc
push esi
call sub.KERNEL32.dll_GlobalLock
add esp, 0xfffffff4
push ebx
push eax
push 0xffffffffffffffff
push ebp
push 0
push 0xfde9
call sub.KERNEL32.dll_MultiByteToWideChar
add esp, 0xfffffff8
call sub.USER32.dll_EmptyClipboard
add esp, 0x20
add esp, 0xfffffff8
push esi
push 0xd
call sub.USER32.dll_SetClipboardData
add esp, 0xfffffff8
call sub.USER32.dll_CloseClipboard
mov eax, 1
add esp, 0x10
pop ebx
pop esi
pop edi
pop ebp
add esp, 0xc
ret