Function at 0x425c38
Capabilities:
Open clipboard
Read clipboard data
Write clipboard data

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x26c
cmp byte [0x497ed2], 0
push esi
push edi
je 0x425c87
mov ecx, 0x477178
call fcn.0042e783
push 0x477174
push eax
call fcn.0044f330
pop ecx
pop ecx
test eax, eax
je 0x425c87
mov ecx, 0x3fc
mov esi, 0x4753e0
mov edi, 0x4809b0
rep movsd dword es:[edi], dword [esi]
push 0xf
pop ecx
mov esi, 0x4753a0
mov edi, 0x480970
rep movsd dword es:[edi], dword [esi]
xor eax, eax
mov dword [ebp - 8], eax
mov byte [0x497ed2], al
cmp byte [0x497033], al
je 0x42650e
mov cl, byte [0x4aa031]
cmp cl, 0x52
je 0x425cad
cmp cl, 0x53
jne 0x425ce8
mov dl, byte [0x15d4648]
test dl, dl
jne 0x425cee
movzx ecx, word [0x4aa040]
add ecx, dword [0x4aa068]
call fcn.00434770
mov ecx, 0x952
cmp ax, cx
mov cl, byte [0x4aa031]
jne 0x425ce8
xor eax, eax
inc eax
xor cl, al
mov dl, al
mov byte [0x4aa031], cl
jmp 0x425cee
mov dl, byte [0x15d4648]
mov si, word [0x4aa034]
mov eax, 0x200
cmp si, ax
setne al
dec al
and al, dl
mov byte [0x15d4648], al
movzx eax, cl
cmp eax, 0x54
ja 0x4264ce
je 0x426300
cmp eax, 0x35
je 0x426257
cmp eax, 0x50
je 0x42623b
cmp eax, 0x51
je 0x4261a4
xor edx, edx
add eax, 0xffffffae
inc edx
cmp eax, edx
ja 0x42650e
cmp byte [0x4aa03c], 4
jne 0x426507
mov eax, dword [0x15d464c]
test si, si
jne 0x425d63
test eax, eax
je 0x425f88
mov edi, dword [sym.imp.KERNEL32.dll_GlobalAlloc]
cmp cl, 0x53
jne 0x425e37
test eax, eax
jne 0x425e72
push dword [0x4a9f4c]
xor esi, esi
mov dword [0x15d463c], esi
call dword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x425e1b
push 0xd
call dword [sym.imp.USER32.dll_GetClipboardData]
mov esi, eax
test esi, esi
je 0x425e13
push esi
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov dword [ebp - 4], eax
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, word [ebp - 8]
jne 0x425db1
sub eax, edx
sar eax, 1
mov dword [0x15d4630], eax
lea eax, [eax*2 + 0x20000]
push eax
push 2
mov dword [0x15d4624], eax
call edi
mov dword [0x15d464c], eax
test eax, eax
je 0x425e0c
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
test eax, eax
je 0x425e00
mov ecx, dword [0x15d4630]
add ecx, ecx
push ecx
push dword [ebp - 4]
push eax
call fcn.0044fb30
add esp, 0xc
push dword [0x15d464c]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push esi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
call dword [sym.imp.USER32.dll_CloseClipboard]
xor esi, esi
cmp dword [0x15d464c], 0
jne 0x425e72
mov eax, 0x20000
mov dword [0x15d4630], esi
mov dword [0x15d4624], eax
push eax
jmp 0x425e69
xor ecx, ecx
mov dword [0x15d4630], ecx
mov dword [0x15d463c], ecx
mov ecx, 0x20000
mov dword [0x15d4624], ecx
test eax, eax
je 0x425e68
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov ecx, dword [0x15d4624]
xor eax, eax
mov dword [0x15d464c], eax
push ecx
push 2
call edi
mov dword [0x15d464c], eax
mov ecx, dword [0x15d4638]
mov esi, 0x10000
test ecx, ecx
jne 0x425ea0
push esi
push 2
call edi
mov ecx, eax
mov dword [0x15d4638], ecx
test ecx, ecx
je 0x425f88
mov edx, esi
mov dword [0x15d4640], edx
jmp 0x425ea6
mov edx, dword [0x15d4640]
movzx eax, word [0x4aa034]
add eax, dword [0x15d463c]
mov esi, dword [sym.imp.KERNEL32.dll_GlobalReAlloc]
cmp eax, edx
jbe 0x425ee4
xor eax, eax
push eax
lea eax, [edx + 0x10000]
push eax
push ecx
call esi
mov ecx, eax
test ecx, ecx
je 0x425f88
add dword [0x15d4640], 0x10000
mov dword [0x15d4638], ecx
mov edi, dword [sym.imp.KERNEL32.dll_GlobalLock]
push ecx
call edi
movzx ecx, word [0x4aa034]
mov edx, dword [0x15d463c]
push ecx
movzx ecx, word [0x4aa048]
add ecx, dword [0x4aa06c]
lea edx, [edx + eax]
call fcn.00434dd0
pop ecx
push dword [0x15d4638]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov dx, word [0x4aa034]
mov eax, 0x100
movzx ecx, dx
add ecx, dword [0x15d463c]
mov dword [0x15d463c], ecx
cmp dx, ax
je 0x4264f2
mov eax, 0x200
cmp dx, ax
je 0x4264f2
mov eax, dword [0x15d4630]
add eax, ecx
lea eax, [eax*2 + 2]
cmp dword [0x15d4624], eax
jae 0x425f95
xor ecx, ecx
push ecx
push eax
push dword [0x15d464c]
call esi
test eax, eax
jne 0x425f90
push dword [0x15d464c]
call dword [sym.imp.KERNEL32.dll_GlobalFree]
xor eax, eax
mov dword [0x15d464c], eax
xor eax, eax
inc eax
jmp 0x4264f4
mov dword [0x15d464c], eax
push dword [0x4a9f4c]
call dword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x425f88
call dword [sym.imp.USER32.dll_EmptyClipboard]
test eax, eax
je 0x426199
push dword [0x15d464c]
call edi
push dword [0x15d4638]
mov esi, eax
mov dword [ebp - 0x10], esi
call edi
mov ecx, dword [0x15d4630]
mov edi, eax
xor eax, eax
mov dword [ebp - 0xc], eax
cmp dword [0x15d463c], eax
jbe 0x42615d
lea edx, [ecx + ecx]
mov dword [ebp - 0x14], 3
mov ah, byte [edi]
inc edi
cmp ah, 0x8c
jne 0x42600f
push 0xd
pop eax
mov word [edx + esi], ax
add ecx, 2
lea eax, [edx + 2]
push 0xa
pop edx
mov word [eax + esi], dx
lea edx, [eax + 2]
jmp 0x426144
cmp ah, 0xa0
jne 0x42601e
mov eax, 0xa0
jmp 0x42613c
mov al, ah
add al, 0x57
cmp al, 5
ja 0x426030
mov eax, 0x2011
jmp 0x42613c
mov al, ah
add al, 0x40
cmp al, 0xf
ja 0x4260fd
cmp ah, 0xc0
jne 0x4260cb
mov al, byte [edi + 1]
cmp al, 0xf
jae 0x4260ec
movzx ecx, byte [edi]
movzx esi, al
mov dword [ebp - 8], esi
mov dword [ebp - 4], ecx
cmp ecx, dword [esi*4 + 0x480970]
mov ecx, dword [0x15d4630]
mov esi, dword [ebp - 0x10]
jge 0x4260ec
xor esi, esi
cmp dword [ebp - 8], esi
mov dword [ebp - 0x18], esi
mov esi, dword [ebp - 0x10]
jbe 0x426094
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp - 4]
add ecx, dword [esi*4 + 0x480970]
inc esi
cmp esi, dword [ebp - 8]
jl 0x426081
mov esi, dword [ebp - 0x10]
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 4]
movzx ecx, word [ecx*2 + 0x4809b0]
mov dword [ebp - 8], ecx
lea ecx, [esi + edx]
add edx, 2
mov dword [ebp - 4], ecx
cmp word [ebp - 8], 0
mov esi, ecx
je 0x4260c6
mov ecx, dword [ebp - 8]
mov word [esi], cx
mov ecx, dword [0x15d4630]
mov esi, dword [ebp - 0x10]
inc ecx
jmp 0x4260e6
xor ecx, ecx
inc ecx
jmp 0x4260b7
cmp ah, 0xc1
jne 0x4260ec
test byte [edi], 0xe0
jne 0x4260ec
push 9
pop ecx
mov word [edx + esi], cx
mov ecx, dword [0x15d4630]
inc ecx
add edx, 2
mov dword [0x15d4630], ecx
movzx eax, ah
mov eax, dword [eax*4 + 0x475060]
add edi, eax
add dword [ebp - 0xc], eax
jmp 0x42614a
cmp ah, 0xd0
jb 0x426114
mov ax, word [edi + 1]
add ax, word [ebp - 0x14]
movzx eax, ax
add dword [ebp - 0xc], eax
add edi, eax
jmp 0x42614a
cmp ah, 0x7f
jae 0x42614a
cmp ah, 0xa
je 0x425ff3
cmp ah, 0xd
jne 0x42612c
push 0x20
pop eax
jmp 0x42613c
cmp ah, 0x20
jb 0x42614a
movzx eax, ah
mov ax, word [eax*2 + 0x48ec30]
inc ecx
mov word [edx + esi], ax
add edx, 2
mov dword [0x15d4630], ecx
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [0x15d463c]
jb 0x425feb
push dword [0x15d464c]
xor eax, eax
push 0xd
mov word [esi + ecx*2], ax
call dword [sym.imp.USER32.dll_SetClipboardData]
push dword [0x15d464c]
mov esi, dword [sym.imp.KERNEL32.dll_GlobalUnlock]
call esi
call dword [sym.imp.USER32.dll_CloseClipboard]
push dword [0x15d4638]
xor eax, eax
mov dword [0x15d464c], eax
call esi
jmp 0x4264f2
call dword [sym.imp.USER32.dll_CloseClipboard]
jmp 0x425f88
movzx eax, byte [0x15b3296]
lea edx, [ebp - 0x26c]
mov esi, dword [eax*4 + 0x15c3340]
lea ecx, [esi + 4]
sub edx, ecx
mov al, byte [ecx]
mov byte [edx + ecx], al
inc ecx
test al, al
jne 0x4261bd
lea edx, [esi + 0x408]
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x4261cf
lea edi, [ebp - 0x26c]
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4261df
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, str.GOTOCMD
call fcn.0042e76d
test al, al
jne 0x426212
mov eax, 0x476c8d
lea edx, [ebp - 0x26c]
mov ecx, eax
jmp 0x426228
push str.comspec
call fcn.004582f9
pop ecx
mov edx, 0x477194
lea ecx, [ebp - 0x26c]
lea esi, [ebp - 0xc]
push esi
push ecx
mov ecx, eax
call fcn.0043abab
pop ecx
pop ecx
jmp 0x42650e
cmp word [0x15d4654], 0
je 0x42650e
xor eax, eax
inc eax
mov word [0x4aa030], ax
jmp 0x42650e
mov ax, word [0x4aa040]
mov ecx, 0x1cd8
cmp ax, cx
je 0x4262a1
mov ecx, 0x842
cmp ax, cx
je 0x4262a1
add ecx, 4
cmp ax, cx
je 0x4262a1
mov ecx, 0x7e0
cmp ax, cx
jb 0x42628b
add ecx, 0xf
cmp ax, cx
jbe 0x4262a1
mov ecx, 0x9ca
cmp ax, cx
je 0x4262a1
xor eax, eax
mov byte [0x497033], al
jmp 0x42650e
mov ax, word [0x15d4654]
test ax, ax
jne 0x4262e3
xor eax, eax
lea ecx, [eax + 1]
call fcn.004417e5
movzx ecx, ax
mov edx, 0x47717c
push 0xd
shl ecx, 4
mov word [0x15d4654], ax
call fcn.00434cc0
pop ecx
push 9
pop ecx
call fcn.004417e5
mov word [0x15d4650], ax
mov ax, word [0x15d4654]
movzx eax, ax
mov dword [0x4aa080], eax
shl eax, 4
mov dword [0x4aa060], eax
xor eax, eax
mov word [0x4aa03c], ax
jmp 0x42650e
mov al, byte [0x4aa03c]
xor ecx, ecx
inc ecx
cmp al, cl
je 0x426314
cmp al, 4
jne 0x426507
cmp dword [0x15d4634], 0
jne 0x426351
xor edx, edx
mov ecx, 0x15d4628
call fcn.0043a897
mov dword [0x15d4634], eax
test eax, eax
je 0x425f88
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov edi, eax
xor eax, eax
mov edx, eax
mov dword [0x15d4644], edi
mov dword [0x15d462c], edx
jmp 0x42635f
mov edi, dword [0x15d4644]
xor eax, eax
mov edx, dword [0x15d462c]
cmp edx, dword [0x15d4628]
jne 0x426379
mov dword [0x15d4634], eax
xor eax, eax
mov word [0x4aa034], ax
jmp 0x4264f2
push 9
mov ecx, eax
mov dword [ebp - 0x14], 0xd
pop esi
cmp edx, dword [0x15d4628]
je 0x426480
movzx eax, word [edi + edx*2]
inc edx
mov dword [ebp - 4], eax
add eax, 0xffffffe0
cmp ax, 0x5e
mov dword [0x15d462c], edx
mov eax, dword [ebp - 4]
ja 0x4263b8
mov byte [ebp + ecx - 0xa4], al
inc ecx
jmp 0x426474
cmp ax, si
jne 0x4263e8
mov word [ebp + ecx - 0xa4], 0x2c1
xor eax, eax
mov dword [ebp + ecx - 0xa2], eax
mov word [ebp + ecx - 0x9e], ax
mov byte [ebp + ecx - 0x9c], 0xc1
add ecx, 9
jmp 0x426474
cmp ax, word [ebp - 0x14]
jne 0x426400
mov byte [ebp + ecx - 0xa4], 0xa
inc ecx
inc edx
mov dword [0x15d462c], edx
jmp 0x426474
push 0xa
pop esi
cmp ax, si
jne 0x426413
mov byte [ebp + ecx - 0xa4], 0xa
inc ecx
jmp 0x426471
mov esi, dword [ebp - 4]
xor eax, eax
cmp si, word [eax*2 + 0x4809b0]
je 0x42642c
inc eax
cmp eax, 0x1298
jb 0x426418
jmp 0x426471
xor esi, esi
inc esi
mov dword [ebp - 8], esi
cmp eax, dword [esi*4 + 0x480970]
jl 0x42644d
sub eax, dword [esi*4 + 0x480970]
inc esi
mov dword [ebp - 8], esi
cmp esi, 0xf
jl 0x426432
jmp 0x426471
mov byte [ebp + ecx - 0xa4], 0xc0
mov byte [ebp + ecx - 0xa3], al
mov eax, dword [ebp - 8]
mov byte [ebp + ecx - 0xa2], al
mov byte [ebp + ecx - 0xa1], 0xc0
add ecx, 4
push 9
pop esi
cmp ecx, 0x80
jl 0x426385
xor eax, eax
mov word [0x4aa034], cx
mov byte [0x4aa031], al
test ecx, ecx
jne 0x426499
mov dword [0x15d4634], eax
jmp 0x42650e
push ecx
movzx ecx, word [0x15d4650]
lea edx, [ebp - 0xa4]
shl ecx, 4
call fcn.00434cc0
movzx eax, word [0x15d4650]
mov dword [0x4aa080], eax
shl eax, 4
mov dword [0x4aa060], eax
xor eax, eax
pop ecx
mov word [0x4aa04c], ax
jmp 0x42650e
sub eax, 0x56
je 0x4264fb
sub eax, 1
je 0x4264df
sub eax, 1
je 0x4264f2
jmp 0x42650e
xor eax, eax
inc eax
cmp byte [0x4aa030], al
jne 0x4264f2
xor eax, eax
mov word [0x4aa030], ax
xor eax, eax
mov byte [0x4aa031], al
jmp 0x42650e
push 0xd
call dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
test eax, eax
je 0x42650e
mov byte [0x4aa031], 2
pop edi
pop esi
leave
ret