Function at 0x1400578dc
Capabilities:
Open clipboard

Disassembly:
mov qword [rsp + 8], rbx
mov dword [rsp + 0x18], r8d
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
xor edi, edi
mov rbx, rdx
mov r14, rcx
mov esi, edi
mov rcx, rbx
lea ebp, [rdi + 8]
mov edx, ebp
lea r13d, [rdi + 1]
call qword [sym.imp.USER32.dll_GetWindowLongPtrA]
mov qword [rsp + 0x20], rax
mov r12, rax
test rax, rax
je 0x140057d9c
mov rcx, rbx
call qword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x140057b7c
lea edx, [rdi + 5]
mov rcx, rbx
call qword [sym.imp.USER32.dll_GetWindow]
mov r15, rax
test rax, rax
je 0x140057b7c
mov rcx, rax
call qword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x140057aa9
xor edx, edx
mov rcx, r15
call qword [sym.imp.USER32.dll_GetWindowLongPtrA]
mov rcx, rax
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GlobalLock]
mov rcx, rbx
mov ebp, dword [rax + 0x48]
and ebp, 0x20
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rcx, qword [0x1400970d8]
call qword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x1400579c8
movzx ecx, word [0x14009713c]
call qword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
test eax, eax
je 0x1400579ab
mov esi, 0xbb9
jmp 0x1400579c2
mov ecx, r13d
call qword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
mov esi, 0xbb9
mov ecx, edi
test eax, eax
cmovne ecx, esi
mov esi, ecx
call qword [sym.imp.USER32.dll_CloseClipboard]
mov eax, edi
test ebp, ebp
mov rcx, r15
cmove eax, esi
xor edx, edx
mov esi, eax
call qword [sym.imp.USER32.dll_GetWindowLongPtrA]
mov rbx, rax
test rax, rax
jne 0x1400579e9
mov ebp, r13d
jmp 0x140057a1b
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GlobalLock]
mov rcx, rax
test byte [rax + 0x48], 4
je 0x140057a00
mov ebp, r13d
jmp 0x140057a12
mov eax, dword [rax + 0xcc]
mov ebp, edi
cmp dword [rcx + 0xb8], eax
sete bpl
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GlobalLock]
mov rbx, rax
mov rcx, qword [rax + 0xfe]
test rcx, rcx
je 0x140057a46
call qword [sym.imp.KERNEL32.dll_GlobalLock]
mov rcx, qword [rbx + 0xfe]
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
xor edx, edx
mov rcx, r15
call qword [sym.imp.USER32.dll_GetWindowLongPtrA]
mov r12, rax
test rax, rax
jne 0x140057a6e
mov ebx, dword [rsp + 0x88]
mov r15d, edi
jmp 0x140057a8c
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GlobalLock]
mov rcx, r12
mov ebx, dword [rax]
mov r15d, dword [rax + 0x1e8]
and ebx, 8
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
test r15d, r15d
mov r12d, edi
sete r12b
neg ebx
sbb eax, eax
neg eax
add eax, 0x9c4
add r15d, eax
jmp 0x140057ca5
mov rcx, qword [0x1400970d8]
call qword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x140057ae0
mov ecx, 2
call qword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
test eax, eax
jne 0x140057ad5
mov ecx, ebp
call qword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
test eax, eax
je 0x140057ada
mov esi, 0xbbd
call qword [sym.imp.USER32.dll_CloseClipboard]
mov rcx, r12
mov dword [rsp + 0x88], r13d
mov ebp, r13d
mov r15d, 0x9c4
call qword [sym.imp.KERNEL32.dll_GlobalLock]
mov qword [rsp + 0x20], rax
mov rcx, qword [rax + 0xfe]
test rcx, rcx
je 0x140057b74
call qword [sym.imp.KERNEL32.dll_GlobalLock]
mov rbx, rax
mov rcx, qword [rax + 0x14]
call qword [sym.imp.KERNEL32.dll_GlobalLock]
cmp dword [rax + 0x14], 0xffffffff
je 0x140057b58
movsxd rcx, dword [rax + 0x14]
imul rdx, rcx, 0x34
mov rcx, qword [rbx + 0x1c]
mov edx, dword [rdx + rax + 0x44]
call fcn.140078d84
test rax, rax
je 0x140057b4e
cmp dword [rax], r13d
jne 0x140057b4e
movsxd rcx, dword [rax + 8]
cmp dword [rcx + rax + 0x58], edi
cmovge ebp, edi
mov rcx, qword [rbx + 0x1c]
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rcx, qword [rbx + 0x14]
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rcx, qword [rsp + 0x20]
mov rcx, qword [rcx + 0xfe]
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rcx, r12
jmp 0x140057c97
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GlobalLock]
mov rbp, rax
mov edx, edi
mov ecx, dword [rax + 0x4a]
test ecx, ecx
sete dl
test dword [rbp + 0x22], 0x100
mov dword [rsp + 0x88], edx
lea eax, [rcx*2 + 0xdac]
je 0x140057bb0
test ecx, ecx
mov ecx, r13d
jne 0x140057bb2
mov ecx, edi
test ecx, ecx
lea r15d, [rax + 1]
mov rcx, qword [0x1400970d8]
cmove r15d, eax
call qword [sym.imp.USER32.dll_OpenClipboard]
mov ebx, 0xbbc
test eax, eax
je 0x140057c4a
movzx ecx, word [0x140096f14]
call qword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
test eax, eax
je 0x140057be8
lea esi, [rbx - 2]
jmp 0x140057c44
movzx ecx, word [0x140096f1c]
call qword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
test eax, eax
je 0x140057c00
mov esi, 0xbbb
jmp 0x140057c44
movzx ecx, word [0x140096f10]
call qword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
test eax, eax
je 0x140057c15
mov esi, ebx
jmp 0x140057c44
mov ecx, 8
call qword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
test eax, eax
je 0x140057c2b
mov esi, 0xbbd
jmp 0x140057c44
mov ecx, 2
call qword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
mov esi, 0xbbd
mov ecx, edi
test eax, eax
cmovne ecx, esi
mov esi, ecx
call qword [sym.imp.USER32.dll_CloseClipboard]
mov r12d, esi
cmp dword [rbp + 0x32], edi
jle 0x140057c60
cmp esi, ebx
mov ebp, edi
mov r13d, edi
sbb esi, esi
and esi, r12d
jmp 0x140057c92
mov rcx, qword [rbp + 0x1fa]
call qword [sym.imp.KERNEL32.dll_GlobalLock]
mov rcx, qword [rbp + 0x1fa]
mov ebx, dword [rax + 0x6c]
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
test ebx, ebx
mov ebp, edi
mov esi, edi
sete bpl
cmp r12d, 0xbbc
cmovae esi, r12d
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov r12d, dword [rsp + 0x88]
mov eax, 0xbb8
test esi, esi
mov ebx, esi
mov edx, 0xcd
cmove ebx, eax
mov rcx, r14
xor r8d, r8d
call qword [sym.imp.USER32.dll_GetMenuState]
cmp eax, 0xffffffff
je 0x140057cf5
mov r9d, dword [rsp + 0x80]
mov r8d, ebx
mov ebx, 0xcd
mov rcx, r14
mov edx, ebx
call fcn.14007b590
test esi, esi
mov edx, ebx
mov rcx, r14
sete dil
mov r8d, edi
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov ebx, 0xc9
xor r8d, r8d
mov edx, ebx
mov rcx, r14
call qword [sym.imp.USER32.dll_GetMenuState]
or edi, 0xffffffff
cmp eax, edi
je 0x140057d32
mov r9d, dword [rsp + 0x80]
mov r8d, r15d
mov edx, ebx
mov rcx, r14
call fcn.14007b590
mov r8d, r12d
mov edx, ebx
mov rcx, r14
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov r8d, ebp
mov edx, 0xca
mov rcx, r14
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov ebx, 0xcc
xor r8d, r8d
mov edx, ebx
mov rcx, r14
call qword [sym.imp.USER32.dll_GetMenuState]
cmp eax, edi
je 0x140057d77
mov r8d, r13d
mov edx, ebx
mov rcx, r14
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov r8d, ebp
lea edx, [rbx + 7]
mov rcx, r14
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov ebx, 0xcb
xor r8d, r8d
mov edx, ebx
mov rcx, r14
call qword [sym.imp.USER32.dll_GetMenuState]
cmp eax, edi
je 0x140057d9c
mov r8d, ebp
mov edx, ebx
mov rcx, r14
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov rbx, qword [rsp + 0x70]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret