Function at 0x14004ebb0
Capabilities:
Get common file path
Open clipboard
Read clipboard data
Write file on windows

Disassembly:
push rbp
push rdi
push r12
push r13
push r15
lea rbp, [rsp - 0x6e0]
sub rsp, 0x7e0
mov rax, qword [0x1401f7280]
xor rax, rsp
mov qword [rbp + 0x670], rax
xor r13d, r13d
mov r15, r8
mov r12d, edx
mov edi, r13d
call qword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x14004f211
mov qword [rsp + 0x818], rbx
mov qword [rsp + 0x7d8], rsi
lea ecx, [r13 + 8]
mov qword [rsp + 0x7d0], r14
movaps xmmword [rsp + 0x780], xmm10
call qword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
movss xmm10, dword [0x14018334c]
test eax, eax
je 0x14004ec65
lea ecx, [r13 + 8]
call qword [sym.imp.USER32.dll_GetClipboardData]
lea r14d, [r13 + 1]
mov rsi, rax
test rax, rax
jne 0x14004eea5
lea ecx, [rax + 2]
call qword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
test eax, eax
je 0x14004f1ea
lea ecx, [rsi + 2]
call qword [sym.imp.USER32.dll_GetClipboardData]
lea r14d, [r13 + 4]
jmp 0x14004eccd
mov ecx, InitCommonControls
call qword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
test eax, eax
je 0x14004ec87
mov ecx, InitCommonControls
call qword [sym.imp.USER32.dll_GetClipboardData]
mov r14d, 2
jmp 0x14004eccd
mov ecx, InitCommonControls
call qword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
test eax, eax
je 0x14004eca9
mov ecx, InitCommonControls
call qword [sym.imp.USER32.dll_GetClipboardData]
mov r14d, 5
jmp 0x14004eccd
mov ecx, 1
call qword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
test eax, eax
je 0x14004f1ea
mov ecx, 1
call qword [sym.imp.USER32.dll_GetClipboardData]
mov r14d, 3
mov rsi, rax
test rax, rax
je 0x14004f1ea
cmp r14d, 2
jne 0x14004ee9f
lea r8d, [r14 + 0x6a]
lea rcx, [rsp + 0x50]
xor edx, edx
call fcn.1400f9ab0
lea r8, [rsp + 0x50]
lea edx, [r14 + 0x6a]
mov rcx, rsi
mov dword [rsp + 0x54], 0x6c
call qword [sym.imp.GDI32.dll_GetEnhMetaFileHeader]
test eax, eax
je 0x14004f1ea
movaps xmmword [rsp + 0x7c0], xmm6
movaps xmmword [rsp + 0x7b0], xmm7
lea rcx, str.DISPLAY
xor r9d, r9d
xor r8d, r8d
xor edx, edx
movaps xmmword [rsp + 0x7a0], xmm8
movaps xmmword [rsp + 0x790], xmm9
call qword [sym.imp.GDI32.dll_CreateDCW]
lea edx, [r14 + 6]
mov rcx, rax
mov rbx, rax
call qword [sym.imp.GDI32.dll_GetDeviceCaps]
lea edx, [r14 + 8]
mov rcx, rbx
movd xmm8, eax
cvtdq2ps xmm8, xmm8
call qword [sym.imp.GDI32.dll_GetDeviceCaps]
lea edx, [r14 + 2]
mov rcx, rbx
movd xmm9, eax
cvtdq2ps xmm9, xmm9
call qword [sym.imp.GDI32.dll_GetDeviceCaps]
lea edx, [r14 + 4]
mov rcx, rbx
movd xmm6, eax
cvtdq2ps xmm6, xmm6
call qword [sym.imp.GDI32.dll_GetDeviceCaps]
mov rcx, rbx
movd xmm7, eax
cvtdq2ps xmm7, xmm7
call qword [sym.imp.GDI32.dll_DeleteDC]
movd xmm0, dword [rsp + 0x6c]
movd xmm1, dword [rsp + 0x70]
mulss xmm7, xmm10
mulss xmm6, xmm10
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
mulss xmm0, xmm9
divss xmm0, xmm7
mulss xmm1, xmm8
cvttss2si r9d, xmm0
movd xmm0, dword [rsp + 0x68]
divss xmm1, xmm6
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm8
cvttss2si eax, xmm1
divss xmm0, xmm6
cvttss2si ecx, xmm0
movd xmm0, dword [rsp + 0x74]
cvtdq2ps xmm0, xmm0
sub eax, ecx
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
mov dword [rsp + 0x30], ecx
mulss xmm0, xmm9
divss xmm0, xmm7
cvttss2si r8d, xmm0
sub r8d, r9d
mov eax, r8d
cdq
xor eax, edx
sub eax, edx
mov edx, ecx
mov rcx, rsi
mov r8d, eax
mov dword [rsp + 0x34], eax
call fcn.140073190
mov rdi, rax
movaps xmm9, xmmword [rsp + 0x790]
movaps xmm8, xmmword [rsp + 0x7a0]
movaps xmm7, xmmword [rsp + 0x7b0]
movaps xmm6, xmmword [rsp + 0x7c0]
test rax, rax
jne 0x14004ef63
mov r8d, dword [rsp + 0x34]
mov edx, dword [rsp + 0x30]
lea rax, [rsp + 0x34]
lea r9, [rsp + 0x30]
xor ecx, ecx
mov qword [rsp + 0x20], rax
call fcn.1400ea220
mov r8d, dword [rsp + 0x34]
mov edx, dword [rsp + 0x30]
mov rcx, rsi
call fcn.140073190
mov rdi, rax
jmp 0x14004ef5a
cmp r14d, 1
jne 0x14004eed5
xor edx, edx
mov rcx, rsi
call fcn.1400eb510
xor edx, edx
mov rcx, rsi
mov ebx, eax
call fcn.14004e7c0
mov rdi, rax
test ebx, ebx
jns 0x14004ef5a
xor edx, edx
mov rcx, rax
call fcn.1400439d0
jmp 0x14004ef5a
cmp r14d, 4
jne 0x14004eeea
xor edx, edx
mov rcx, rsi
call fcn.14004d600
mov rdi, rax
jmp 0x14004ef5a
cmp r14d, 3
jne 0x14004ef0f
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GlobalLock]
mov rbx, rax
test rax, rax
je 0x14004ef51
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GlobalSize]
xor r8d, r8d
jmp 0x14004ef37
cmp r14d, 5
jne 0x14004f1ea
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GlobalLock]
mov rbx, rax
test rax, rax
je 0x14004ef51
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GlobalSize]
lea r8d, [r14 - 4]
lea r9, [0x140208860]
mov rdx, rax
mov rcx, rbx
mov qword [rsp + 0x20], r15
call fcn.140041f70
mov rdi, rax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
test rdi, rdi
je 0x14004f1ea
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GlobalLock]
mov rcx, rax
movzx ebx, word [rax + 0xe]
mov r15d, dword [rax + 0x10]
cmp dword [rax + 0x20], r13d
jne 0x14004efa1
cmp ebx, 1
jne 0x14004ef89
mov dword [rax + 0x20], 2
cmp ebx, 4
jne 0x14004ef95
mov dword [rax + 0x20], InitCommonControls
cmp ebx, 8
jne 0x14004efa4
mov dword [rax + 0x20], 0x100
cmp ebx, 8
jbe 0x14004efaa
mov dword [rax + 0x20], r13d
cmp r14d, 1
jne 0x14004effe
movd xmm0, dword [rax + 0x18]
cvtdq2ps xmm0, xmm0
divss xmm0, dword [0x1401833a0]
mulss xmm0, xmm10
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x140183398]
cvttsd2si eax, xmm0
movd xmm0, dword [rcx + 0x1c]
cvtdq2ps xmm0, xmm0
mov dword [rcx + 0x18], eax
divss xmm0, dword [0x1401833a0]
mulss xmm0, xmm10
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x140183398]
cvttsd2si eax, xmm0
mov dword [rcx + 0x1c], eax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
lea eax, [r15 - 1]
cmp eax, 1
ja 0x14004f171
lea rdx, [rbp - 0x40]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
lea rcx, [rbp - 0x40]
or rax, 0xffffffffffffffff
nop dword [rax + rax]
cmp word [rcx + rax*2 + 2], r13w
lea rax, [rax + 1]
jne 0x14004f030
cmp word [rbp + rax*2 - 0x42], 0x5c
je 0x14004f063
lea rcx, [rbp - 0x40]
sub rcx, 2
nop dword [rax]
cmp word [rcx + 2], r13w
lea rcx, [rcx + 2]
jne 0x14004f050
mov eax, dword [0x140181e84]
mov dword [rcx], eax
lea rcx, [rbp - 0x40]
sub rcx, 2
nop dword [rax + rax]
cmp word [rcx + 2], r13w
lea rcx, [rcx + 2]
jne 0x14004f070
movups xmm0, xmmword [str.IrfanView.tmp]
movsd xmm1, qword [0x140187878]
mov eax, dword [0x140187880]
lea rdx, [0x140183390]
movups xmmword [rcx], xmm0
movsd qword [rcx + 0x10], xmm1
mov dword [rcx + 0x18], eax
lea rcx, [rbp - 0x40]
call fcn.1400fafe4
mov r14, rax
test rax, rax
je 0x14004f139
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GlobalLock]
mov ecx, 0x4d42
mov dword [rsp + 0x3e], r13d
mov word [rsp + 0x38], cx
mov ecx, dword [rax]
mov edx, dword [rax + 0x20]
lea eax, [rdx*4 + 0xe]
add eax, ecx
mov rcx, rsi
mov dword [rsp + 0x42], eax
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov edx, 1
lea rcx, [rsp + 0x38]
lea r8d, [rdx + 0xd]
mov r9, r14
call fcn.1400faf54
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GlobalLock]
mov rcx, rsi
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GlobalSize]
mov r9, r14
mov edx, 1
mov rcx, rbx
mov r8, rax
call fcn.1400faf54
mov rcx, r14
call fcn.1400fa904
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GlobalFree]
lea r9, [rbp + 0x460]
lea r8, [rbp + 0x250]
lea rcx, [rbp - 0x40]
xor edx, edx
call fcn.14001a9c0
lea rcx, [rbp - 0x40]
mov rdi, rax
call fcn.1400fa630
mov rcx, rdi
call fcn.1400eb4c0
mov ebx, eax
lea ecx, [rbx - 0x10]
test ecx, 0xffffffef
jne 0x14004f1ad
mov edx, ebx
mov rcx, rdi
call fcn.14009b810
mov rsi, rax
test rax, rax
je 0x14004f1ad
test rdi, rdi
je 0x14004f1a5
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GlobalFree]
mov rdi, rsi
mov ebx, 0x18
test r12d, r12d
je 0x14004f1ea
cmp ebx, 0x18
jne 0x14004f1ea
lea r8d, [rbx - 0x17]
mov edx, 0x100
mov rcx, rdi
call fcn.14009e180
mov rbx, rax
test rax, rax
je 0x14004f1ea
test rdi, rdi
je 0x14004f1e7
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GlobalFree]
mov rdi, rbx
call qword [sym.imp.USER32.dll_CloseClipboard]
movaps xmm10, xmmword [rsp + 0x780]
mov r14, qword [rsp + 0x7d0]
mov rsi, qword [rsp + 0x7d8]
mov rbx, qword [rsp + 0x818]
mov rax, rdi
mov rcx, qword [rbp + 0x670]
xor rcx, rsp
call fcn.1400f9a80
add rsp, 0x7e0
pop r15
pop r13
pop r12
pop rdi
pop rbp
ret