Function at 0x14001bae0
Capabilities:
Get common file path

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x610
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov rax, qword [0x14014c228]
xor rax, rsp
mov qword [rsp + 0x600], rax
mov rsi, rcx
mov qword [rsp + 0x60], rcx
lea rcx, [rsp + 0x50]
call fcn.14001d590
nop
lea rcx, [rsp + 0x58]
call fcn.14001b6b0
mov rdx, rax
lea rcx, [rsp + 0x48]
call fcn.14001b800
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
mov r12, 0xffffffffffffffff
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001bb67
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rdx, str.https:__updaterv.winzip.com_api_update
lea rcx, [rsp + 0x100]
call fcn.140019200
nop
lea rdx, str.WZSN
lea rcx, [rsp + 0xc0]
call fcn.140019200
nop
mov rdx, qword [rsp + 0x48]
lea rcx, [rsp + 0xa0]
call fcn.140019200
nop
mov rdx, qword [rsp + 0x50]
lea rcx, [rsp + 0x80]
call fcn.140019200
nop
lea rdx, [0x1400f5dc0]
lea rcx, [rsp + 0xe0]
call fcn.140019200
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x100]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0xc0]
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x80]
lea rcx, [rsp + 0x140]
call fcn.140028f80
nop
mov rdx, qword [rsp + 0xf8]
cmp rdx, 8
jb 0x14001bc4b
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0xe0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001bc46
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001c242
call fcn.1400a7308
movdqa xmm0, xmmword [0x1400f5620]
movdqu xmmword [rsp + 0xf0], xmm0
xor r14d, r14d
mov word [rsp + 0xe0], r14w
mov rdx, qword [rsp + 0x98]
cmp rdx, 8
jb 0x14001bcb0
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001bcab
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001c248
call fcn.1400a7308
movdqa xmm0, xmmword [0x1400f5620]
movdqu xmmword [rsp + 0x90], xmm0
mov word [rsp + 0x80], r14w
mov rdx, qword [rsp + 0xb8]
cmp rdx, 8
jb 0x14001bd12
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0xa0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001bd0d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001c24e
call fcn.1400a7308
movdqa xmm0, xmmword [0x1400f5620]
movdqu xmmword [rsp + 0xb0], xmm0
mov word [rsp + 0xa0], r14w
mov rdx, qword [rsp + 0xd8]
cmp rdx, 8
jb 0x14001bd74
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0xc0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001bd6f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001c254
call fcn.1400a7308
movdqa xmm0, xmmword [0x1400f5620]
movdqu xmmword [rsp + 0xd0], xmm0
mov word [rsp + 0xc0], r14w
mov rdx, qword [rsp + 0x118]
cmp rdx, 8
jb 0x14001bdd6
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x100]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001bdd1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001c25a
call fcn.1400a7308
lea rdx, [rsp + 0x140]
lea rcx, [rsp + 0x40]
call fcn.14002e1b0
nop
lea rdi, str.Updates
movabs r15, 0x4e94914f0000
nop word [rax + rax]
call fcn.1400a61e0
lea r13, [rsi + 0x20]
mov rcx, qword [r13]
mov qword [r13], r14
test rcx, rcx
je 0x14001be21
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
nop
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx]
mov rdx, r13
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test eax, eax
je 0x14001c0bf
cmp qword [r13], 0
je 0x14001c0bf
call fcn.14000ce10
mov rcx, rax
test rax, rax
je 0x14001c260
mov rax, qword [rax]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x30], rbx
call fcn.14000ce10
mov rcx, rax
test rax, rax
je 0x14001c26b
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x38], rax
lea rcx, [rsp + 0x38]
cmp rdi, 0x10000
jae 0x14001be9a
movzx edx, di
call fcn.14000d4c0
jmp 0x14001bea9
mov r8d, 7
mov rdx, rdi
call fcn.14000fd40
nop
mov rdi, qword [rsp + 0x38]
cmp dword [rdi - 0x10], 0
jne 0x14001bebb
mov bl, 1
jmp 0x14001c07b
xor edx, edx
mov r8d, 0x20c
lea rcx, [rsp + 0x3f0]
call fcn.1400aeef0
xor edx, edx
mov r8d, 0x20c
lea rcx, [rsp + 0x1e0]
call fcn.1400aeef0
lea rdx, [rsp + 0x3f0]
mov ecx, 0x105
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jne 0x14001bf03
mov bl, 1
jmp 0x14001c07b
lea r9, [rsp + 0x1e0]
xor r8d, r8d
mov rdx, rdi
lea rcx, [rsp + 0x3f0]
call qword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
jne 0x14001bf2a
mov bl, 1
jmp 0x14001c07b
lea rax, [rsp + 0x1e0]
mov rsi, r12
inc rsi
cmp word [rax + rsi*2], 0
jne 0x14001bf35
test esi, esi
jne 0x14001bfa3
lea rdx, [rbx - 0x18]
mov rsi, qword [rdx]
cmp dword [rdx + 8], 0
je 0x14001c074
cmp dword [rdx + 0x10], 0
jge 0x14001bf71
cmp dword [rbx - 0xc], 0
jl 0x14001c276
mov dword [rbx - 0x10], r14d
mov word [rbx], r14w
jmp 0x14001c074
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001bf87
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x30], rax
mov rdi, qword [rsp + 0x38]
jmp 0x14001c074
mov r15d, dword [rbx - 0x10]
lea r14, [rsp + 0x1e0]
sub r14, rbx
sar r14, 1
test esi, esi
js 0x14001c281
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, esi
or eax, ecx
jge 0x14001bfdf
mov edx, esi
lea rcx, [rsp + 0x30]
call fcn.14000e630
mov rbx, qword [rsp + 0x30]
movsxd rax, esi
cmp r14, r15
ja 0x14001c036
lea rdx, [rbx + r14*2]
lea r14, [rax + rax]
test r14, r14
je 0x14001c054
test rdx, rdx
jne 0x14001c00b
call fcn.1400b7a94
mov dword [rax], 0x16
call fcn.1400b7944
jmp 0x14001c054
movsxd rax, dword [rbx - 0xc]
add rax, rax
cmp rax, r14
jae 0x14001c029
call fcn.1400b7a94
mov dword [rax], 0x22
call fcn.1400b7944
jmp 0x14001c054
mov r8, r14
mov rcx, rbx
call fcn.1400aea90
jmp 0x14001c054
lea r14, [rax + rax]
movsxd rdx, dword [rbx - 0xc]
add rdx, rdx
mov r9, r14
lea r8, [rsp + 0x1e0]
mov rcx, rbx
call fcn.140018b60
cmp esi, dword [rbx - 0xc]
jg 0x14001c292
mov dword [rbx - 0x10], esi
xor eax, eax
mov word [r14 + rbx], ax
xor r14d, r14d
movabs r15, 0x4e94914f0000
xor bl, bl
mov rsi, qword [rsp + 0x60]
lea rdx, [rdi - 0x18]
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001c095
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test bl, bl
je 0x14001c0e6
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001c0b8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdi, str.Updates
lea rcx, [rsp + 0x78]
call fcn.14001b190
mov rax, qword [rax]
add rax, r15
mov qword [rsp + 0x68], rax
lea rdx, [rsp + 0x68]
mov rcx, r12
call fcn.1400a5d90
jmp 0x14001be00
lea rdi, [rsi + 0x10]
test rsi, rsi
cmove rdi, r14
mov rbx, qword [rsp + 0x30]
mov rdx, rbx
lea rcx, [rsp + 0x120]
call fcn.140019200
nop
mov rcx, qword [r13]
mov rax, qword [rcx]
mov r8, rdi
lea rdx, [rsp + 0x120]
call qword [rax + 0x10]
nop
mov rdx, qword [rsp + 0x138]
cmp rdx, 8
jb 0x14001c165
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x120]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001c160
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001c28c
call fcn.1400a7308
mov rcx, qword [r13]
mov rax, qword [rcx]
call qword [rax + 0x18]
nop
lea rdx, [rbx - 0x18]
jmp 0x14001c0a2
call fcn.1400b7964
nop
call fcn.1400b7964
nop
call fcn.1400b7964
nop
call fcn.1400b7964
nop
call fcn.1400b7964
nop
mov ecx, 0x80004005
call fcn.14000c310
nop
mov ecx, 0x80004005
call fcn.14000c310
nop
mov ecx, 0x80070057
call fcn.14000c310
int3
mov ecx, 0x80070057
call fcn.14000c310
nop
call fcn.1400b7964
nop
mov ecx, 0x80070057
call fcn.14000c310
int3