Function at 0x46d8a0
Capabilities:
Open clipboard
Read clipboard data

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffffe0
mov byte [esp], dl
mov edi, eax
xor eax, eax
mov dword [esp + 4], eax
mov eax, dword [0x48d6b4]
mov word [eax], 0xffff
mov eax, dword [0x48d7c4]
cmp byte [eax], 0
je 0x46d8f9
call sub.user32.dll_CountClipboardFormats
test eax, eax
jle 0x46d8f9
mov eax, dword [0x48d2f8]
mov byte [eax], 1
mov ax, 0x29
call fcn.0040bc04
mov edx, 0x12
call fcn.00411d74
cmp al, 3
je 0x46dd81
cmp al, 1
sete bl
jmp 0x46d901
mov ebx, dword [0x48d7c4]
mov bl, byte [ebx]
test bl, bl
jne 0x46da54
mov eax, dword [0x48d858]
mov eax, dword [eax]
push eax
call sub.user32.dll_OpenClipboard
cmp eax, 1
sbb eax, eax
inc eax
test al, al
jne 0x46d938
mov ax, 0x22
call fcn.0040bc04
mov edx, 1
call fcn.00411d74
jmp 0x46dd81
mov eax, dword [0x48dab4]
mov byte [eax], 0
mov eax, dword [0x48d8d0]
mov eax, dword [eax]
push eax
call sub.user32.dll_IsClipboardFormatAvailable
test eax, eax
je 0x46d982
mov eax, dword [0x48d8d0]
mov eax, dword [eax]
mov edx, dword [0x48d7b8]
mov dword [edx], eax
mov esi, dword [0x48d4a8]
mov esi, dword [esi]
mov eax, dword [0x48d7b8]
mov eax, dword [eax]
push eax
call sub.user32.dll_GetClipboardData
mov edx, dword [0x48d86c]
mov dword [edx], eax
jmp 0x46da5c
mov dl, 0x28
mov ax, 4
call fcn.0042d52c
test eax, eax
jne 0x46d99b
call sub.user32.dll_CloseClipboard
jmp 0x46dd81
mov eax, dword [0x48d7b8]
mov eax, dword [eax]
push eax
call sub.user32.dll_GetClipboardData
mov edx, dword [0x48d86c]
mov dword [edx], eax
mov eax, dword [0x48d86c]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_GlobalLock
mov edx, dword [0x48d438]
mov dword [edx], eax
mov eax, dword [0x48d86c]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_GlobalSize
mov esi, eax
mov eax, dword [0x48d438]
cmp dword [eax], 0
je 0x46d9e2
test esi, esi
jne 0x46da11
mov eax, dword [0x48d438]
cmp dword [eax], 0
je 0x46d9f9
mov eax, dword [0x48d86c]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_GlobalUnlock
mov ax, 0x23
call fcn.0040bc04
mov edx, 1
call fcn.00411d74
jmp 0x46d982
mov eax, dword [0x48d7b8]
cmp dword [eax], 1
je 0x46da25
mov eax, dword [0x48d7b8]
cmp dword [eax], 7
jne 0x46da45
mov edx, dword [0x48d438]
mov edx, dword [edx]
mov eax, 1
cmp esi, eax
jle 0x46da45
inc edx
cmp byte [edx], 0
jne 0x46da40
mov esi, eax
jmp 0x46da45
inc eax
cmp esi, eax
jg 0x46da36
mov eax, dword [0x48d86c]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_GlobalUnlock
jmp 0x46da5c
mov esi, dword [0x48d4a8]
mov esi, dword [esi]
cmp byte [edi + 0x55d], 0
jne 0x46dac9
cmp byte [esp], 0
je 0x46dac9
mov eax, dword [0x48db64]
cmp byte [eax], 0
jne 0x46dac9
mov dword [esp + 0x1c], esi
fild dword [esp + 0x1c]
mov eax, dword [0x48d39c]
fild qword [eax]
faddp st(1)
fild qword [edi + 0x18]
fcompp
fnstsw ax
sahf
jae 0x46dac9
cmp dword [edi + 0x4c], 0
je 0x46daae
mov ax, 0x25
call fcn.0040bc04
mov edx, 3
call fcn.00411d74
jmp 0x46dd78
mov ax, 0x24
call fcn.0040bc04
mov edx, 2
call fcn.00411d74
test al, al
je 0x46dd78
cmp byte [edi + 0x55d], 0
je 0x46db05
mov dword [esp + 0x1c], esi
fild dword [esp + 0x1c]
mov eax, dword [0x48d39c]
fild qword [eax]
faddp st(1)
fild qword [edi + 0x18]
fcompp
fnstsw ax
sahf
jae 0x46db05
mov ax, 0x28
call fcn.0040bc04
mov edx, 3
call fcn.00411d74
jmp 0x46dd78
mov eax, dword [0x48db64]
cmp byte [eax], 0
jne 0x46db56
cmp byte [esp], 0
je 0x46db1c
mov byte [esp + 0x18], 5
jmp 0x46db21
mov byte [esp + 0x18], 4
push 0
push 0
mov ax, word [edi + 0x534]
xor ecx, ecx
mov dl, byte [esp + 0x20]
call fcn.0044f244
test al, al
jne 0x46db56
mov ax, 0x14e
call fcn.0040bc04
mov edx, 2
call fcn.00411d74
test al, al
je 0x46dd78
test bl, bl
jne 0x46db6f
mov eax, dword [0x48d86c]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_GlobalLock
mov edx, dword [0x48d438]
mov dword [edx], eax
lea eax, [edi + 0xc]
call fcn.00428760
test al, al
je 0x46dd60
mov dword [esp + 4], esi
xor eax, eax
mov al, byte [esp]
add ax, 0x26
call fcn.0040bc04
mov dl, 3
call fcn.0040e810
push 0x7f02
push 0
call sub.user32.dll_LoadCursorA
push eax
call sub.user32.dll_SetCursor
mov eax, dword [0x48d39c]
mov edx, dword [eax]
mov dword [esp + 0x10], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x14], edx
mov eax, dword [0x48dab4]
cmp byte [eax], 0
je 0x46dc08
mov ebp, esi
sar ebp, 1
jns 0x46dbcf
adc ebp, 0
push ebp
push 0x40
call sub.kernel32.dll_GlobalAlloc
mov dword [esp + 8], eax
push ebp
push 1
push 0
mov eax, dword [0x48d438]
mov eax, dword [eax]
or ecx, 0xffffffff
mov edx, dword [esp + 0x14]
call fcn.00411fbc
mov ebp, eax
test ebp, ebp
jge 0x46dbfb
xor ebp, ebp
mov eax, dword [0x48d438]
mov edx, dword [esp + 8]
mov dword [eax], edx
jmp 0x46dc0a
mov ebp, esi
push ebp
mov ecx, dword [0x48d438]
mov ecx, dword [ecx]
lea edx, [esp + 0x14]
lea eax, [edi + 0xc]
call fcn.00426720
mov edx, dword [0x48d44c]
mov dword [edx], eax
mov eax, dword [0x48d44c]
cmp ebp, dword [eax]
je 0x46dc32
xor ebp, ebp
mov eax, dword [0x48dab4]
cmp byte [eax], 0
je 0x46dc46
mov eax, dword [esp + 8]
push eax
call sub.kernel32.dll_GlobalFree
cmp byte [esp], 0
jne 0x46dc7a
mov eax, dword [0x48d39c]
push dword [eax + 4]
push dword [eax]
mov dword [esp + 0x24], ebp
fild dword [esp + 0x24]
fild qword [edi + 0x18]
faddp st(1)
fsub dword [0x46dd90]
add esp, 0xfffffff8
fistp qword [esp]
wait
lea eax, [edi + 0xc]
call fcn.00423bdc
jmp 0x46dcaa
mov eax, dword [0x48d39c]
push dword [eax + 4]
push dword [eax]
mov dword [esp + 0x24], ebp
fild dword [esp + 0x24]
mov eax, dword [0x48d39c]
fild qword [eax]
faddp st(1)
fsub dword [0x46dd90]
add esp, 0xfffffff8
fistp qword [esp]
wait
lea eax, [edi + 0xc]
call fcn.00423bdc
lea eax, [edi + 0xc]
call fcn.00428820
call fcn.0040eb04
push 0x7f00
push 0
call sub.user32.dll_LoadCursorA
push eax
call sub.user32.dll_SetCursor
mov eax, edi
call fcn.0047d4c8
fild qword [edi + 0x494]
fcomp dword [0x46dd94]
fnstsw ax
sahf
jne 0x46dd21
mov eax, dword [0x48db64]
cmp byte [eax], 0
jne 0x46dd21
mov eax, dword [0x48d39c]
mov edx, dword [eax]
mov dword [edi + 0x48c], edx
mov edx, dword [eax + 4]
mov dword [edi + 0x490], edx
mov dword [esp + 0x1c], ebp
fild dword [esp + 0x1c]
mov eax, dword [0x48d39c]
fild qword [eax]
faddp st(1)
fsub dword [0x46dd90]
fistp qword [edi + 0x494]
wait
jmp 0x46dd60
cmp byte [esp], 0
jne 0x46dd60
mov eax, dword [0x48d44c]
cmp esi, dword [eax]
jne 0x46dd60
mov cl, 1
lea edx, [edi + 0x48c]
fild qword [edx]
mov eax, dword [0x48d39c]
fild qword [eax]
fcompp
fnstsw ax
sahf
ja 0x46dd57
mov dword [esp + 0x1c], ebp
fild dword [esp + 0x1c]
fild qword [edx]
faddp st(1)
fistp qword [edx]
wait
inc ecx
add edx, 8
cmp cl, 3
jne 0x46dd38
test bl, bl
jne 0x46dd81
mov eax, dword [0x48d86c]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_GlobalUnlock
call sub.user32.dll_CloseClipboard
jmp 0x46dd81
test bl, bl
jne 0x46dd81
call sub.user32.dll_CloseClipboard
mov eax, dword [esp + 4]
add esp, 0x20
pop ebp
pop edi
pop esi
pop ebx
ret