Function at 0x4200d0
Capabilities:
Set current directory
Set file attributes
Write file on windows

Disassembly:
push r15
mov eax, 0x120d8
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
call fcn.00427c70
sub rsp, rax
mov eax, dword [rsp + 0x12158]
mov r13d, dword [rsp + 0x12150]
mov dword [rsp + 0x5c], eax
mov ebp, r8d
mov rdi, rdx
mov rbx, rcx
mov byte [rsp + 0x5b], al
lea r14, [rcx + 0x30]
mov r12, r9
lea rax, str.Extracting
mov qword [rsp + 0xa0], rax
lea rax, str.Testing
mov qword [rsp + 0xa8], rax
lea rsi, [rsp + 0xd0]
call fcn.0041a790
mov r9d, 1
mov rcx, rdi
mov rdx, rax
call fcn.0041bd20
mov rcx, rsi
mov rdx, rax
call sub.msvcrt.dll_wcscpy
xor r9d, r9d
xor edx, edx
mov rcx, r14
mov r8, rax
call fcn.0041fdc0
test al, al
mov byte [rsp + 0x5a], al
jne 0x4201b0
mov rdi, qword [sym.imp.WINMM.dll_timeGetTime]
call rdi
sub eax, dword [rbx + 0xf4]
cmp eax, 0x3e7
ja 0x4207d0
movzx eax, byte [rsp + 0x5a]
add rsp, 0x120d8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea r15, str._none_
mov rcx, rbx
call fcn.0041e280
mov rax, qword [rsp + 0x12140]
mov edx, ebp
mov rcx, rdi
cmp word [rax], 0
cmovne r15, rax
call fcn.0041bce0
mov edx, dword [0x00434680]
mov rbp, qword [rax + 0x208]
lea r8, str.__s_archive__s
mov eax, dword [rbx + 0x100]
lea rcx, [0x004347c0]
mov edi, dword [rbx + 0x104]
mov dword [rsp + 0x60], edx
mov edx, 0x1000
sar eax, 0xa
mov dword [rsp + 0x50], eax
xor eax, eax
cmp dword [rbx + 0xf8], 4
sete al
mov r9, qword [rsp + rax*8 + 0xa0]
mov qword [rsp + 0x20], rsi
call fcn.0041b170
mov ecx, dword [rsp + 0x60]
call fcn.0041b1a0
mov edx, dword [0x00434680]
mov qword [rsp + 0x30], rbp
xor r8d, r8d
mov qword [rsp + 0x38], r15
mov r9, rax
mov eax, dword [rsp + 0x50]
mov dword [rsp + 0x28], edi
lea rcx, str._r_c_r_s_n_Window_:__iK_n_Header_:__i_n_Size___:__I64i_n_Target_:__s_n_n
lea rbp, [rbx + 0xa0]
mov dword [rsp + 0x20], eax
call sub.msvcrt.dll_wprintf
cmp dword [rbx + 0xf8], 4
je 0x420820
mov rcx, rbp
call fcn.0041dbb0
cmp dword [rsp + 0x12148], 1
je 0x42032d
mov eax, dword [rsp + 0x12148]
lea rsi, [r12 + 8]
movzx r13d, r13b
sub eax, 2
lea r15, [r12 + rax*8 + 0x10]
jmp 0x4202be
call fcn.0041c970
add rsi, 8
cmp r15, rsi
je 0x42032d
mov rdi, qword [rsi]
lea r8, str._Collecting__s
mov edx, 0x1000
mov r12d, dword [0x00434680]
lea rcx, [0x004347c0]
mov r9, rdi
call fcn.0041b170
mov ecx, r12d
call fcn.0041b1a0
mov edx, dword [0x00434680]
xor r8d, r8d
lea rcx, str._r_c_r_s_n
mov r9, rax
call sub.msvcrt.dll_wprintf
mov rcx, rdi
call fcn.0041a7d0
mov r9d, r13d
mov rdx, rdi
mov rcx, rbp
test al, al
mov r8d, dword [rbx + 0xc8]
je 0x4202b0
call fcn.0041ca60
add rsi, 8
cmp r15, rsi
jne 0x4202be
lea rax, [rsp + 0x70]
mov rdx, rbp
mov rcx, rax
mov qword [rsp + 0x68], rax
call fcn.0041c520
mov rax, qword [rsp + 0x70]
mov qword [rbx + 0xd0], rax
mov rax, qword [rsp + 0x78]
mov qword [rbx + 0xd8], rax
mov rax, qword [rsp + 0x80]
mov qword [rbx + 0xe0], rax
mov rdx, qword [rsp + 0x88]
shr rax, 0x20
mov qword [rbx + 0xe8], rdx
shr rdx, 0x20
add edx, eax
je 0x420880
mov rsi, qword [rsp + 0x12140]
cmp word [rsi], 0
jne 0x420830
test eax, eax
je 0x4203a9
cmp byte [rsp + 0x5c], 0
jne 0x420891
mov rcx, qword [rsp + 0x68]
mov rdx, rbp
call fcn.0041c520
mov rcx, qword [rsp + 0x70]
xor r8d, r8d
mov qword [rbx + 0xd0], rcx
mov rdx, qword [rsp + 0x78]
mov qword [rbx + 0xd8], rdx
mov r9, qword [rsp + 0x80]
mov qword [rbx + 0xe0], r9
mov rax, qword [rsp + 0x88]
mov qword [rbx + 0xe8], rax
mov qword [rsp + 0x38], rdx
mov edx, dword [0x00434680]
mov dword [rsp + 0x30], eax
shr rax, 0x20
mov qword [rsp + 0x40], rcx
lea rcx, str._r_c_r_Selected__i__i_dirs___i__i_files___I64i__I64i_bytes._n
mov dword [rsp + 0x20], r9d
shr r9, 0x20
mov dword [rsp + 0x28], eax
call sub.msvcrt.dll_printf
xor edx, edx
mov r8, r14
mov rcx, rbx
mov dword [rbx + 0x98], 1
mov dword [rsp + 0x20], 0
mov r9d, dword [rbx + 0x100]
call fcn.0040ec30
call qword [sym.imp.WINMM.dll_timeGetTime]
mov edx, dword [rbx + 0xc0]
sub eax, 1
mov dword [rbx + 0xf0], eax
test edx, edx
jle 0x420646
xor r12d, r12d
mov qword [rsp + 0x50], rbp
jmp 0x420481
add r12d, 1
cmp dword [rbx + 0xc0], r12d
jle 0x420641
mov rcx, qword [rsp + 0x50]
mov edx, r12d
call fcn.0041bce0
test byte [rax + 0x220], 0x10
jne 0x420470
mov rcx, qword [rsp + 0x50]
mov edx, r12d
call fcn.0041bce0
cmp byte [rsp + 0x5b], 0
mov rdi, rax
mov qword [rsp + 0x60], rax
jne 0x4207a0
cmp byte [0x00432660], 0
mov esi, dword [rdi + 0x220]
je 0x420780
cmp byte [rdi + 0x230], 0
mov dword [rsp + 0x90], 0xffffffff
mov qword [rsp + 0xb8], 0xffffffffffffffff
mov qword [rsp + 0xb0], 0
jne 0x4206e0
lea r13, [rsp + 0x20d0]
xor esi, esi
lea r15, [rsp + 0x90]
mov rbp, qword [rdi + 0x208]
cmp rbp, rsi
jle 0x4205bf
sub rbp, rsi
mov eax, 0x10000
mov rdx, r13
cmp rbp, 0x10000
mov rcx, rbx
cmovg rbp, rax
mov r8d, ebp
call fcn.00401560
mov r8d, ebp
mov rdx, r13
mov rcx, r15
call fcn.00417e60
movsxd rax, ebp
mov r8d, r12d
mov rdx, rdi
add rsi, rax
mov rcx, rbx
mov r9, rsi
call fcn.0041c150
cmp byte [rdi + 0x230], 0
je 0x42050c
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x94]
mov r8d, ebp
mov rdx, r13
mov rcx, qword [rsp + 0xb8]
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x4208a7
cmp ebp, dword [rsp + 0x94]
jne 0x4208a7
mov ebp, ebp
add qword [rsp + 0xc0], rbp
mov rbp, qword [rdi + 0x208]
cmp rbp, rsi
jg 0x42051c
test rbp, rbp
je 0x4205d9
mov eax, dword [rsp + 0x90]
not eax
cmp eax, dword [rdi + 0x218]
jne 0x4208d3
cmp byte [rdi + 0x230], 0
je 0x420623
mov rax, qword [rdi + 0x210]
lea r9, [rsp + 0x98]
xor r8d, r8d
mov rcx, qword [rsp + 0xb8]
imul edx, eax, 0x989680
imul rax, rax, 0x989680
mov dword [rsp + 0x98], edx
xor edx, edx
sar rax, 0x20
mov dword [rsp + 0x9c], eax
call qword [sym.imp.KERNEL32.dll_SetFileTime]
lea rcx, [rsp + 0xb0]
add r12d, 1
call fcn.00417bb0
cmp dword [rbx + 0xc0], r12d
jg 0x420481
mov rbp, qword [rsp + 0x50]
xor edx, edx
mov rcx, rbx
call fcn.004015c0
mov eax, dword [rbx + 0xe4]
test eax, eax
je 0x420665
cmp byte [rsp + 0x5c], 0
jne 0x420860
mov rcx, qword [rsp + 0x68]
mov rdx, rbp
call fcn.0041c520
mov rax, qword [rsp + 0x70]
xor r8d, r8d
lea rcx, str._r_c_r_Archive_ok._Extracted__i_dirs___i_files___I64i_bytes._n_n
mov qword [rbx + 0xd0], rax
mov rdx, qword [rsp + 0x78]
mov qword [rbx + 0xd8], rdx
mov r9, qword [rsp + 0x80]
mov qword [rbx + 0xe0], r9
mov rax, qword [rsp + 0x88]
shr r9, 0x20
mov qword [rbx + 0xe8], rax
shr rax, 0x20
mov qword [rsp + 0x28], rdx
mov edx, dword [0x00434680]
mov dword [rsp + 0x20], eax
call sub.msvcrt.dll_printf
jmp 0x420189
mov rdx, qword [rsp + 0x60]
lea r13, [rsp + 0xb0]
xor r9d, r9d
mov dword [rsp + 0x20], esi
mov r8d, 2
mov rcx, r13
call fcn.00417c10
test al, al
jne 0x4204fa
mov rdx, qword [rsp + 0x60]
mov rcx, rbx
call fcn.0041b260
test al, al
mov byte [rdi + 0x230], al
je 0x4204fa
mov rdx, qword [rsp + 0x60]
xor r9d, r9d
mov dword [rsp + 0x20], esi
mov rcx, r13
mov r8d, 1
call fcn.00417c10
test al, al
jne 0x4204fa
mov r14, qword [rsp + 0x60]
mov edx, pe_nt_image_headers64
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov dword [rsp + 0x20], esi
mov rdx, r14
mov rcx, r13
mov r9d, 1
mov r8d, 1
call fcn.00417c10
jmp 0x4204fa
mov byte [0x00432660], 1
call fcn.0041b4f0
jmp 0x4204ca
call fcn.0041a790
mov rcx, qword [rsp + 0x50]
xor r9d, r9d
mov r8d, r12d
mov rdx, rax
call fcn.0041bd20
mov qword [rsp + 0x60], rax
jmp 0x4204b7
call rdi
mov r9, rsi
mov edx, 0x1000
lea r8, str._No_archive:__s
sub eax, 1
mov dword [rbx + 0xf4], eax
mov ebx, dword [0x00434680]
lea rcx, [0x004347c0]
call fcn.0041b170
mov ecx, ebx
call fcn.0041b1a0
mov edx, dword [0x00434680]
xor r8d, r8d
lea rcx, str._r_c_r_s
mov r9, rax
call sub.msvcrt.dll_wprintf
jmp 0x420189
lea rax, [rsp + 0x70]
mov qword [rsp + 0x68], rax
jmp 0x4203a9
mov rdx, rsi
mov rcx, rbx
call fcn.0041a8a0
mov rcx, qword [rsp + 0x12140]
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
test eax, eax
je 0x4208ac
mov eax, dword [rbx + 0xe4]
jmp 0x42039a
mov edx, dword [rbx + 0xc8]
mov r8d, 1
mov rcx, rbx
call fcn.0041bfc0
jmp 0x420665
lea rcx, str.____No_files_selected._n
call sub.msvcrt.dll_puts
jmp 0x420189
mov edx, dword [rbx + 0xc8]
xor r8d, r8d
mov rcx, rbx
call fcn.0041bfc0
jmp 0x4203a9
call fcn.00428990
mov edx, dword [0x00434680]
lea rcx, str._r_c_r__ERROR__Cant_find__s__n
xor r8d, r8d
mov r9, qword [rsp + 0x12140]
call sub.msvcrt.dll_wprintf
mov ecx, 1
call sub.msvcrt.dll_exit
mov r9, qword [rsp + 0x60]
lea rcx, str._r_c_r__ERROR__File_corrupt__s__n
xor r8d, r8d
mov edx, dword [0x00434680]
call sub.msvcrt.dll_wprintf
mov ecx, 1
call sub.msvcrt.dll_exit
nop
nop dword [rax + rax]