Function at 0x140015330
Capabilities:
Check if file exists
Get file attributes
Print debug messages

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0xd0]
sub rsp, 0x1d0
mov rax, qword [0x140054040]
xor rax, rsp
mov qword [rbp + 0xc0], rax
mov rsi, r8
mov r14, rdx
mov rdi, rcx
xor ebx, ebx
mov qword [rsp + 0x38], rbx
mov rdx, r9
lea rcx, [rsp + 0x38]
call fcn.1400175a0
test al, al
jne 0x140015393
lea rcx, str.Cannot_load_7_zip_library
call qword [sym.imp.KERNEL32.DLL_OutputDebugStringW]
mov ebx, 0x485
jmp 0x140015904
lea rdx, str.CreateObject
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.KERNEL32.DLL_GetProcAddress]
mov r15, rax
test rax, rax
jne 0x1400153c3
lea rcx, str.Cannot_get_CreateObject
call qword [sym.imp.KERNEL32.DLL_OutputDebugStringW]
lea ebx, [r15 + 0x7f]
jmp 0x140015904
mov rdx, r14
lea rcx, [rsp + 0x70]
call fcn.1400169b0
cmp word [r14], bx
setne r12b
mov rcx, rsi
call qword [sym.imp.KERNEL32.DLL_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x1400153ff
mov rdx, rsi
lea rcx, str.Directory__s_not_exists
call fcn.1400164b0
mov ebx, 3
jmp 0x1400158fa
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x48], rbx
cmp byte [rbp + 0x140], bl
jne 0x14001547f
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x80], xmm0
movups xmmword [rbp - 0x70], xmm0
movups xmmword [rbp - 0x60], xmm0
mov qword [rbp - 0x50], rax
mov rdx, rsi
lea rcx, [rsp + 0x20]
call fcn.1400169b0
lea rcx, [rbp - 0x80]
call fcn.140018450
lea rcx, [rbp - 0x58]
call fcn.140016a30
lea rcx, [rsp + 0x50]
call fcn.140016a30
mov rcx, rax
lea r9, [rsp + 0x40]
lea r8, [rbp - 0x80]
lea rdx, [rsp + 0x20]
call fcn.140013d60
mov rcx, qword [rsp + 0x50]
call fcn.14001a090
mov rcx, qword [rbp - 0x58]
call fcn.14001a090
mov rcx, qword [rsp + 0x20]
jmp 0x1400154d7
lea rdx, [0x140042bf0]
lea rcx, [rsp + 0x50]
call fcn.1400169b0
mov rdx, rsi
lea rcx, [rsp + 0x20]
call fcn.1400169b0
lea rcx, [rsp + 0x60]
call fcn.140016a30
mov rcx, rax
lea r9, [rsp + 0x40]
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x20]
call fcn.140014000
mov rcx, qword [rsp + 0x60]
call fcn.14001a090
mov rcx, qword [rsp + 0x20]
call fcn.14001a090
mov rcx, qword [rsp + 0x50]
call fcn.14001a090
mov rcx, rdi
call qword [sym.imp.KERNEL32.DLL_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140015503
mov rdx, rdi
lea rcx, str.File__s_already_exists
call fcn.1400164b0
mov ebx, 0x50
jmp 0x1400158f0
mov ecx, 0x28
call fcn.14001a098
mov r14, rax
test rax, rax
je 0x140015536
mov dword [rax + 8], ebx
lea rax, vtable.COutFileStream.0
mov qword [r14], rax
mov qword [r14 + 0x10], 0xffffffffffffffff
mov byte [r14 + 0x18], bl
mov rcx, r14
call qword [rax + VariantCopy]
jmp 0x140015539
mov r14, rbx
mov qword [r14 + 0x20], rbx
lea rcx, [r14 + 0x10]
xor r8d, r8d
mov rdx, rdi
call fcn.140017b00
test al, al
jne 0x140015569
mov rdx, rdi
lea rcx, str.cant_create_archive_file__s
call fcn.1400164b0
mov ebx, 0x65f
jmp 0x1400158e6
mov qword [rsp + 0x30], rbx
lea r8, [rsp + 0x30]
lea rdx, [0x140042730]
lea rcx, [0x140042790]
call r15
test eax, eax
je 0x14001559f
lea rcx, str.Cannot_get_class_object
call qword [sym.imp.KERNEL32.DLL_OutputDebugStringW]
mov ebx, 0x3e3
jmp 0x1400158d5
mov ecx, 0xb0
call fcn.14001a098
test rax, rax
je 0x1400155c9
mov rcx, rax
call fcn.140013b40
mov rdi, rax
test rax, rax
je 0x1400155cc
mov rax, qword [rax]
mov rcx, rdi
call qword [rax + VariantCopy]
jmp 0x1400155cc
mov rdi, rbx
lea rdx, [rsp + 0x40]
mov rcx, rdi
call fcn.140014b80
mov byte [rdi + 0x70], r12b
lea rcx, [rdi + 0x78]
lea rdx, [rsp + 0x70]
call fcn.140016a70
call qword [sym.imp.KERNEL32.DLL_GetLastError]
mov esi, eax
mov rdx, qword [rbp + 0x130]
test rdx, rdx
je 0x140015635
mov rcx, qword [rbp + 0x138]
test rcx, rcx
je 0x140015635
mov qword [rdi + 0x18], rdx
mov qword [rdi + 0x20], rcx
call qword [sym.imp.KERNEL32.DLL_GetLastError]
cmp esi, eax
je 0x140015635
mov edx, eax
lea rcx, str.InitCallback_failed__d
call fcn.1400164b0
mov ebx, 0x57
jmp 0x1400158cb
lea rax, [0x140042cc8]
mov qword [rbp - 0x80], rax
lea rax, [0x140042ccc]
mov qword [rbp - 0x78], rax
lea rax, [0x140042cd0]
mov qword [rbp - 0x70], rax
lea rax, [0x140042cd4]
mov qword [rbp - 0x68], rax
lea rax, [0x140042cdc]
mov qword [rbp - 0x60], rax
lea rax, [0x140042ce4]
mov qword [rbp - 0x58], rax
lea rax, [0x140042cec]
mov qword [rbp - 0x50], rax
lea rax, [0x140042cf4]
mov qword [rbp - 0x48], rax
lea rax, [0x140042cfc]
mov qword [rbp - 0x40], rax
lea rax, [0x140042d04]
mov qword [rbp - 0x38], rax
lea rdx, str.lzma2
lea rcx, [rbp - 0x30]
call fcn.140017640
mov dword [rbp - 0x18], 0xb
movzx eax, byte [rbp + 0x148]
xor al, 1
movzx ecx, al
dec cx
mov word [rbp - 0x10], cx
mov dword [rbp], 0x13
mov eax, dword [rbp + 0x150]
mov dword [rbp + 8], eax
mov dword [rbp + 0x18], 0x13
mov eax, dword [rbp + 0x158]
mov dword [rbp + 0x20], eax
mov dword [rbp + 0x30], 0xb
movzx eax, byte [rbp + 0x160]
xor al, 1
movzx ecx, al
dec cx
mov word [rbp + 0x38], cx
mov dword [rbp + 0x48], 0xb
movzx eax, byte [rbp + 0x168]
xor al, 1
movzx ecx, al
dec cx
mov word [rbp + 0x50], cx
mov dword [rbp + 0x60], 0xb
movzx eax, byte [rbp + 0x170]
xor al, 1
movzx ecx, al
dec cx
mov word [rbp + 0x68], cx
mov dword [rbp + 0x78], 0xb
movzx eax, byte [rbp + 0x178]
xor al, 1
movzx ecx, al
dec cx
mov word [rbp + 0x80], cx
mov dword [rbp + 0x90], 0xb
movzx eax, byte [rbp + 0x180]
xor al, 1
movzx ecx, al
dec cx
mov word [rbp + 0x98], cx
mov dword [rbp + 0xa8], 0xb
movzx eax, byte [rbp + 0x188]
xor al, 1
movzx ecx, al
dec cx
mov word [rbp + 0xb0], cx
mov qword [rsp + 0x20], rbx
mov rcx, qword [rsp + 0x30]
mov rax, qword [rcx]
lea r8, [rsp + 0x20]
lea rdx, [0x140042740]
call qword [rax]
mov rcx, qword [rsp + 0x20]
test rcx, rcx
jne 0x1400157d1
lea rcx, str.ISetProperties_unsupported
call qword [sym.imp.KERNEL32.DLL_OutputDebugStringW]
mov ebx, 0x32
jmp 0x1400157fb
mov rax, qword [rcx]
mov r9d, 0xa
lea r8, [rbp - 0x30]
lea rdx, [rbp - 0x80]
call qword [rax + 0x18]
test eax, eax
je 0x14001582a
lea rcx, str.SetProperties___error
call qword [sym.imp.KERNEL32.DLL_OutputDebugStringW]
mov ebx, 0xa0
mov rcx, qword [rsp + 0x20]
test rcx, rcx
je 0x14001580c
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
lea r9, [fcn.1400176a0]
mov edx, 0x18
lea r8d, [rdx - 0xe]
lea rcx, [rbp - 0x30]
call fcn.14001a0d4
jmp 0x1400158cb
mov rcx, qword [rsp + 0x20]
test rcx, rcx
je 0x14001583b
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
lea r9, [fcn.1400176a0]
mov edx, 0x18
lea r8d, [rdx - 0xe]
lea rcx, [rbp - 0x30]
call fcn.14001a0d4
mov rcx, qword [rsp + 0x30]
mov rax, qword [rcx]
mov r9, rdi
mov r8d, dword [rsp + 0x48]
mov rdx, r14
call qword [rax + 0x18]
test eax, eax
je 0x14001587d
lea rcx, str.Update_Error
call qword [sym.imp.KERNEL32.DLL_OutputDebugStringW]
jmp 0x1400158c6
mov esi, ebx
mov eax, dword [rdi + 0x98]
test eax, eax
je 0x1400158cb
nop dword [rax]
mov ecx, esi
mov rax, qword [rdi + 0x90]
mov rdx, qword [rax + rcx*8]
movups xmm0, xmmword [rdx]
movaps xmmword [rsp + 0x60], xmm0
lea rdx, [rsp + 0x60]
lea rcx, str.Error_for_file__s
call fcn.1400164b0
inc esi
mov eax, dword [rdi + 0x98]
cmp esi, eax
jb 0x140015890
test eax, eax
je 0x1400158cb
mov ebx, 0x65b
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x10]
nop
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x1400158e6
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x10]
nop
lea rcx, [rsp + 0x40]
call fcn.140013be0
mov rcx, qword [rsp + 0x70]
call fcn.14001a090
lea rcx, [rsp + 0x38]
call fcn.140017570
mov eax, ebx
mov rcx, qword [rbp + 0xc0]
xor rcx, rsp
call fcn.14001a070
add rsp, 0x1d0
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret