Function at 0x14001cf90
Capabilities:
Delete file
Get common file path

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x3d0]
sub rsp, 0x4d0
mov rbx, rdx
mov r12, rcx
xor r14d, r14d
mov dword [rbp + 0x420], r14d
cmp byte [0x140229771], r14b
je 0x14001cfcf
xor eax, eax
jmp 0x14001d720
mov byte [0x140229771], 1
xor r13b, r13b
call fcn.140121d48
mov rcx, rax
test rax, rax
je 0x14001d746
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x428], rax
mov r15, 0xffffffffffffffff
test rbx, rbx
je 0x14001d031
cmp rbx, 0x10000
jae 0x14001d021
movzx edx, bx
lea rcx, [rbp + 0x428]
call fcn.140017950
jmp 0x14001d044
mov r8, r15
inc r8
cmp word [rbx + r8*2], 0
jne 0x14001d024
jmp 0x14001d034
mov r8d, r14d
mov rdx, rbx
lea rcx, [rbp + 0x428]
call fcn.140017f80
nop
call fcn.140121d48
mov rcx, rax
test rax, rax
je 0x14001d751
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x60], rax
mov rdx, qword [rbp + 0x428]
lea rcx, [rbp - 0x78]
call fcn.14000a4d0
nop
lea rax, vtable.JRPropertyMap.0
mov qword [rbp - 0x70], rax
mov qword [rbp - 0x68], r14
mov byte [rbp - 0x60], 1
xor edx, edx
lea rcx, [rbp - 0x78]
call fcn.14004d810
nop
lea rdx, [rbp - 0x58]
lea rcx, [rbp - 0x78]
call fcn.14004f6f0
mov rbx, rax
lea rdi, [0x1401b2fe0]
cmp qword [rax], rdi
jne 0x14001d0b5
mov ebx, r14d
jmp 0x14001d101
cmp dword [0x14021c658], 0xb23a8c33
je 0x14001d0ea
mov ecx, 0x6c0
call fcn.140111d34
mov qword [rbp - 0x80], rax
test rax, rax
je 0x14001d0de
mov rcx, rax
call fcn.140036570
jmp 0x14001d0e1
mov rax, r14
mov qword [0x140229e08], rax
jmp 0x14001d0f1
mov rax, qword [0x140229e08]
mov r8, rdi
mov rdx, qword [rbx]
mov rcx, rax
call fcn.140014c90
mov ebx, eax
mov rdx, qword [rbp - 0x58]
add rdx, 0xffffffffffffffe8
mov ecx, dword [rdx + 0x10]
cmp ecx, 0x7ffffc17
je 0x14001d133
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x14001d129
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001d133
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
test ebx, ebx
jne 0x14001d162
lea r9d, [rbx + 0x10]
lea r8, str.M01_Files_Unsupported
lea rdx, str.M01_files_can_not_be_edited...
mov rcx, qword [0x140229768]
mov rcx, qword [rcx + 0x40]
call qword [sym.imp.USER32.dll_MessageBoxW]
mov ebx, r14d
jmp 0x14001d683
lea rdx, [rbp - 0x80]
lea rcx, [rbp - 0x78]
call fcn.14004f6f0
mov rbx, rax
lea rdi, [0x1401b3058]
cmp qword [rax], rdi
jne 0x14001d183
mov ebx, r14d
jmp 0x14001d1cf
cmp dword [0x14021c658], 0xb23a8c33
je 0x14001d1b8
mov ecx, 0x6c0
call fcn.140111d34
mov qword [rbp - 0x50], rax
test rax, rax
je 0x14001d1ac
mov rcx, rax
call fcn.140036570
jmp 0x14001d1af
mov rax, r14
mov qword [0x140229e08], rax
jmp 0x14001d1bf
mov rax, qword [0x140229e08]
mov r8, rdi
mov rdx, qword [rbx]
mov rcx, rax
call fcn.140014c90
mov ebx, eax
mov rdx, qword [rbp - 0x80]
add rdx, 0xffffffffffffffe8
mov ecx, dword [rdx + 0x10]
cmp ecx, 0x7ffffc17
je 0x14001d201
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x14001d1f7
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001d201
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
test ebx, ebx
je 0x14001d4a8
mov r13b, 1
mov rbx, qword [rsp + 0x60]
mov edx, 1
sub edx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, 0x104
or eax, edx
jge 0x14001d239
mov edx, 0x104
lea rcx, [rsp + 0x60]
call fcn.140017f20
mov rbx, qword [rsp + 0x60]
mov rdx, rbx
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
call fcn.14015d120
test eax, eax
js 0x14001d73b
cmp eax, dword [rbx - 0xc]
jg 0x14001d73b
mov dword [rbx - 0x10], eax
cdqe
mov word [rbx + rax*2], r14w
lea rcx, [rsp + 0x70]
call fcn.14000a680
mov dword [rbp + 0x420], 1
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r14
lea r9, [rsp + 0x70]
xor r8d, r8d
xor edx, edx
lea rcx, [rbp - 0x78]
call fcn.14004e980
mov rdx, qword [rsp + 0x70]
test rdx, rdx
jne 0x14001d2cc
mov r8d, r14d
jmp 0x14001d2db
mov r8, r15
nop
inc r8
cmp word [rdx + r8*2], 0
jne 0x14001d2d0
lea rcx, [rsp + 0x60]
call fcn.140020020
nop
mov rdx, qword [rsp + 0x70]
add rdx, 0xffffffffffffffe8
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x14001d318
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x14001d30e
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001d318
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rdx, str.__decompressed_.wav
mov r8, r15
inc r8
cmp word [rdx + r8*2], 0
jne 0x14001d322
lea rcx, [rsp + 0x60]
call fcn.140020020
lea rax, [rsp + 0x68]
mov qword [rbp - 0x50], rax
call fcn.140121d48
mov rcx, rax
test rax, rax
je 0x14001d75c
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x68], rax
lea rdx, str.Decoding...
cmp rdx, 0x10000
jae 0x14001d37f
movzx edx, dx
lea rcx, [rsp + 0x68]
call fcn.140017950
jmp 0x14001d398
mov r8, r15
inc r8
cmp word [rdx + r8*2], 0
jne 0x14001d382
lea rcx, [rsp + 0x68]
call fcn.140017f80
nop
mov byte [rsp + 0x20], 0
mov r8b, 1
lea rdx, [rsp + 0x68]
lea rcx, [rbp - 0x40]
call fcn.140035f80
lea rax, vtable.CDecoderDialog.0
mov qword [rbp - 0x40], rax
mov dword [rbp + 0x3c0], r14d
mov rdi, qword [rsp + 0x60]
mov r8, rdi
mov rbx, qword [rbp + 0x428]
mov rdx, rbx
lea rcx, [rbp - 0x40]
call fcn.140034140
test eax, eax
jne 0x14001d45a
lea rcx, [rdi - 0x18]
lea rsi, [rbx - 0x18]
cmp rcx, rsi
je 0x14001d442
cmp dword [rsi + 0x10], eax
jl 0x14001d428
mov rax, qword [rsi]
cmp qword [rcx], rax
jne 0x14001d428
call fcn.140018d10
mov rbx, rax
mov ecx, r15d
lock xadd dword [rsi + 0x10], ecx
sub ecx, 1
jg 0x14001d41b
mov rcx, qword [rsi]
mov r8, qword [rcx]
mov rdx, rsi
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
add rbx, 0x18
mov qword [rbp + 0x428], rbx
jmp 0x14001d442
mov r8d, dword [rdi - 0x10]
mov rdx, rdi
lea rcx, [rbp + 0x428]
call fcn.140017f80
mov rbx, qword [rbp + 0x428]
lea rcx, [rbp - 0x40]
call fcn.140036110
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
or eax, ecx
jmp 0x14001d4ba
cmp eax, 0x3e8
je 0x14001d486
mov r9d, 0x10
lea r8, str.Decoder_Error
lea rdx, str.Error_decoding_file...
mov rcx, qword [0x140229768]
mov rcx, qword [rcx + 0x40]
call qword [sym.imp.USER32.dll_MessageBoxW]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
nop
mov byte [0x140229771], 0
lea rcx, [rbp - 0x40]
call fcn.140036110
mov ebx, r14d
jmp 0x14001d68a
mov rbx, qword [rbp + 0x428]
mov eax, 1
sub eax, dword [rbx - 8]
or eax, dword [rbx - 0xc]
jge 0x14001d4d1
xor edx, edx
lea rcx, [rbp + 0x428]
call fcn.140017f20
mov rbx, qword [rbp + 0x428]
lea rdi, [r12 + 0x180]
mov rdx, rbx
mov rcx, rdi
call fcn.140032d80
mov esi, eax
test eax, eax
je 0x14001d520
test r13b, r13b
je 0x14001d4f8
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp esi, 0x3e8
je 0x14001d56d
xor r8d, r8d
xor edx, edx
lea rcx, str.Error_opening_file.
call fcn.14012189c
mov byte [0x140229771], 0
mov ebx, r14d
jmp 0x14001d68a
mov rcx, qword [r12 + 0x210]
mov rax, qword [rcx]
mov r9b, 1
movzx r8d, r9b
lea rdx, [r12 + 0x200]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test eax, eax
je 0x14001d57c
xor r8d, r8d
xor edx, edx
lea rcx, str.Error_retrieving_file_information...
call fcn.14012189c
mov rcx, rdi
call fcn.1400331b0
mov rax, qword [r12 + 0x200]
lea rcx, [r12 + 0x200]
call qword [rax + 0x20]
mov byte [0x140229771], 0
mov ebx, r14d
jmp 0x14001d68a
mov rax, qword [r12]
mov rcx, r12
call qword [rax + 0xd0]
mov qword [rsp + 0x78], rax
test rax, rax
je 0x14001d670
xor r15d, r15d
nop word [rax + rax]
mov rax, qword [r12]
lea rdx, [rsp + 0x78]
mov rcx, r12
call qword [rax + 0xd8]
mov r14, rax
mov rdi, qword [r12 + 0x210]
mov rdx, qword [rdi]
mov rcx, rdi
call qword [rdx + 0x48]
mov rsi, rax
mov rdx, qword [rdi]
mov rcx, rdi
call qword [rdx + 0x48]
mov rcx, rax
cmp rsi, rax
cmovl rcx, rsi
cmp qword [r14 + 0x8168], r15
jne 0x14001d5ee
cmp qword [r14 + 0x8170], rcx
je 0x14001d604
mov byte [r14 + 0x81a8], 1
mov qword [r14 + 0x8168], r15
mov qword [r14 + 0x8170], rcx
mov qword [r14 + 0x8178], rax
mov rax, qword [r14 + 0x8188]
cmp qword [r14 + 0x8190], rax
jge 0x14001d620
mov rax, r15
jmp 0x14001d626
mov rax, rcx
mov rcx, r15
mov qword [r14 + 0x8188], rcx
mov qword [r14 + 0x8190], rax
mov qword [r14 + 0x8198], r15
mov byte [r14 + 0x81a8], 1
mov dword [r14 + 0x8558], 1
xor r8d, r8d
xor edx, edx
mov rcx, r14
call fcn.140020d60
cmp qword [rsp + 0x78], r15
jne 0x14001d5a0
mov r15, 0xffffffffffffffff
xor r14d, r14d
test r13b, r13b
je 0x14001d67e
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ebx, 1
mov byte [0x140229771], 0
lea rax, vtable.JRPropertyMap.0
mov qword [rbp - 0x70], rax
mov rcx, qword [rbp - 0x68]
test rcx, rcx
je 0x14001d6ac
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov qword [rbp - 0x68], r14
mov rdx, qword [rbp - 0x78]
add rdx, 0xffffffffffffffe8
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x14001d6dd
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x14001d6d3
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001d6dd
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001d6fd
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x428]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r15d
sub r15d, 1
jg 0x14001d71e
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov eax, ebx
mov rbx, qword [rsp + 0x510]
add rsp, 0x4d0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ecx, 0x80070057
call fcn.1400180c0
nop
mov ecx, 0x80004005
call fcn.1400180c0
nop
mov ecx, 0x80004005
call fcn.1400180c0
nop
mov ecx, 0x80004005
call fcn.1400180c0
int3