Function at 0x140016060
Capabilities:
Print debug messages

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0x90
mov r13, r8
mov r14, rdx
mov rbx, rcx
xor edi, edi
mov qword [rbp - 0x31], rdi
mov rdx, r9
lea rcx, [rbp - 0x31]
call fcn.1400175a0
test al, al
jne 0x1400160ba
lea rcx, str.Cannot_load_7_zip_library
call qword [sym.imp.KERNEL32.DLL_OutputDebugStringW]
mov edi, 0x485
jmp 0x140016483
lea rdx, str.CreateObject
mov rcx, qword [rbp - 0x31]
call qword [sym.imp.KERNEL32.DLL_GetProcAddress]
mov rsi, rax
test rax, rax
jne 0x1400160e8
lea rcx, str.Cannot_get_CreateObject
call qword [sym.imp.KERNEL32.DLL_OutputDebugStringW]
lea edi, [rsi + 0x7f]
jmp 0x140016483
mov rdx, r14
lea rcx, [rbp - 0x19]
call fcn.1400169b0
cmp word [r14], di
setne r12b
mov qword [rbp - 0x41], rdi
lea r8, [rbp - 0x41]
lea rdx, [0x1400426b0]
lea rcx, [0x140042790]
call rsi
test eax, eax
je 0x14001612f
lea rcx, str.Cannot_get_class_object
call qword [sym.imp.KERNEL32.DLL_OutputDebugStringW]
mov edi, 0x3e3
jmp 0x14001646a
mov ecx, 0x88
call fcn.14001a098
test rax, rax
je 0x140016159
mov rcx, rax
call fcn.1400194b0
mov r14, rax
test rax, rax
je 0x14001615c
mov rax, qword [rax]
mov rcx, r14
call qword [rax + VariantCopy]
jmp 0x14001615c
mov r14, rdi
mov byte [r14 + 0x74], dil
lea rcx, [r14 + 0x30]
mov rdx, rbx
call fcn.140017c30
test al, al
jne 0x140016189
mov rdx, rbx
lea rcx, str.Cannot_open_file_as_archive__s
call fcn.1400164b0
mov edi, 2
jmp 0x140016460
mov ecx, 0x28
call fcn.14001a098
mov r15, rax
test rax, rax
je 0x1400161cb
mov dword [rax + 0x10], edi
lea rax, vtable.CArchiveOpenCallback.0
mov qword [r15], rax
lea rax, vtable.CArchiveOpenCallback.1.0
mov qword [r15 + 8], rax
mov byte [r15 + 0x14], dil
lea rcx, [r15 + 0x18]
call fcn.140016a30
mov rax, qword [r15]
mov rcx, r15
call qword [rax + VariantCopy]
jmp 0x1400161ce
mov r15, rdi
mov byte [r15 + 0x14], r12b
lea rcx, [r15 + 0x18]
lea rdx, [rbp - 0x19]
call fcn.140016a70
mov qword [rbp - 0x29], 0x800000
mov rcx, qword [rbp - 0x41]
mov rax, qword [rcx]
mov r9, r15
lea r8, [rbp - 0x29]
mov rdx, r14
call qword [rax + 0x18]
test eax, eax
je 0x140016218
mov rdx, rbx
lea rcx, str.Cannot_open_file_as_archive__s
call fcn.1400164b0
mov edi, 0x570
jmp 0x140016416
mov ecx, 0xa8
call fcn.14001a098
mov rsi, rax
test rax, rax
je 0x140016295
mov dword [rax + 0x10], edi
lea rax, vtable.CArchiveExtractCallback.0
mov qword [rsi], rax
lea rax, vtable.CArchiveExtractCallback.1.0
mov qword [rsi + 8], rax
mov qword [rsi + 0x18], rdi
lea rcx, [rsi + 0x20]
call fcn.140016a30
lea rcx, [rsi + 0x30]
call fcn.140016a30
lea rcx, [rsi + 0x40]
call fcn.140016a30
mov qword [rsi + 0x54], rdi
mov dword [rsi + 0x5c], edi
mov qword [rsi + 0x70], rdi
mov qword [rsi + 0x78], rdi
mov qword [rsi + 0x80], rdi
mov byte [rsi + 0x90], dil
lea rcx, [rsi + 0x98]
call fcn.140016a30
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + VariantCopy]
jmp 0x140016298
mov rsi, rdi
mov rdx, r13
lea rcx, [rbp + 0xf]
call fcn.1400169b0
mov rbx, qword [rbp - 0x41]
mov qword [rsi + 0x88], rdi
test rbx, rbx
je 0x1400162bd
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + VariantCopy]
mov rcx, qword [rsi + 0x18]
test rcx, rcx
je 0x1400162cc
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [rsi + 0x18], rbx
lea rdx, [rbp + 0xf]
lea rcx, [rsi + 0x20]
call fcn.140016a70
lea rcx, [rsi + 0x20]
call fcn.140019450
mov rcx, qword [rbp + 0xf]
call fcn.14001a090
mov byte [rsi + 0x90], r12b
lea rcx, [rsi + 0x98]
lea rdx, [rbp - 0x19]
call fcn.140016a70
call qword [sym.imp.KERNEL32.DLL_GetLastError]
mov ebx, eax
mov rdx, qword [rbp + 0x6f]
test rdx, rdx
je 0x14001634d
mov rcx, qword [rbp + 0x77]
test rcx, rcx
je 0x14001634d
mov qword [rsi + 0x78], rdx
mov qword [rsi + 0x80], rcx
call qword [sym.imp.KERNEL32.DLL_GetLastError]
cmp ebx, eax
je 0x14001634d
mov edx, eax
lea rcx, str.InitCallback_failed__d
call fcn.1400164b0
mov edi, 0x57
jmp 0x14001640c
lea rax, [0x140042cd4]
mov qword [rbp - 0x21], rax
mov dword [rbp - 9], 0x13
mov eax, dword [rbp + 0x7f]
mov dword [rbp - 1], eax
mov qword [rbp - 0x39], rdi
mov rcx, qword [rbp - 0x41]
mov rax, qword [rcx]
lea r8, [rbp - 0x39]
lea rdx, [0x140042740]
call qword [rax]
mov rcx, qword [rbp - 0x39]
test rcx, rcx
je 0x1400163b2
mov rax, qword [rcx]
mov r9d, 1
lea r8, [rbp - 9]
lea rdx, [rbp - 0x21]
call qword [rax + 0x18]
test eax, eax
je 0x1400163b2
lea rcx, str.SetProperties___error
call qword [sym.imp.KERNEL32.DLL_OutputDebugStringW]
mov edi, 0xa0
jmp 0x1400163e2
mov rcx, qword [rbp - 0x41]
mov rax, qword [rcx]
mov qword [rsp + 0x20], rsi
xor r9d, r9d
xor edx, edx
mov r8d, 0xffffffff
call qword [rax + 0x38]
test eax, eax
je 0x140016422
lea rcx, str.Extract_Error
call qword [sym.imp.KERNEL32.DLL_OutputDebugStringW]
mov edi, 0x65b
mov rcx, qword [rbp - 0x39]
test rcx, rcx
je 0x1400163f2
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
lea r9, [fcn.1400176a0]
mov edx, 0x18
lea r8d, [rdx - 0x17]
lea rcx, [rbp - 9]
call fcn.14001a0d4
nop
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x10]
nop
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 0x10]
nop
jmp 0x140016460
mov rcx, qword [rbp - 0x39]
test rcx, rcx
je 0x140016432
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
lea r9, [fcn.1400176a0]
mov edx, 0x18
lea r8d, [rdx - 0x17]
lea rcx, [rbp - 9]
call fcn.14001a0d4
nop
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x10]
nop
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 0x10]
nop
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x10]
nop
mov rcx, qword [rbp - 0x41]
test rcx, rcx
je 0x14001647a
mov rdx, qword [rcx]
call qword [rdx + 0x10]
nop
mov rcx, qword [rbp - 0x19]
call fcn.14001a090
lea rcx, [rbp - 0x31]
call fcn.140017570
mov eax, edi
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret