Function at 0x420ac0
Capabilities:
Check if file exists
Get file attributes
Set file attributes
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x1b8
lea rax, fcn.004015c0
mov r13, 0xffffffffffffffff
mov rbp, qword [sym.imp.WINMM.dll_timeGetTime]
mov qword [rsp + 0xa0], rax
mov edi, ecx
mov r15, rdx
movabs rax, 0x100000000
mov qword [rsp + 0xd8], r13
mov qword [rsp + 0xd0], 0
mov dword [rsp + 0xf0], 0
mov qword [rsp + 0xf8], 0
mov dword [rsp + 0x148], 0
mov dword [rsp + 0x158], 0
mov qword [rsp + 0x160], rax
call rbp
sub eax, 1
mov dword [rsp + 0x190], eax
call rbp
lea rcx, str._n__RAZOR_Archiver_1.00__2017_09_08____DEMO_TEST_version__n___c__Christian_Martelock__christian.martelock_web.de___n
sub eax, 1
mov dword [rsp + 0x194], eax
call sub.msvcrt.dll_puts
test edi, edi
movabs rax, 0x400000000000000
mov dword [rsp + 0x198], 0
mov qword [rsp + 0x19c], rax
jle 0x420c0c
mov qword [rsp + 0x40], 0
xor eax, eax
xor r12d, r12d
xor ebx, ebx
movsxd rsi, ebx
shl rsi, 3
test eax, eax
lea r14, [r15 + rsi]
mov rcx, qword [r14]
je 0x420c90
cmp word [rcx], 0x2d
jne 0x420d6c
call sub.msvcrt.dll_wcslen
cmp rax, 2
jne 0x420d6c
mov rax, qword [r14]
movzx eax, word [rax + 2]
cmp ax, 0x72
je 0x420ca3
cmp ax, 0x79
je 0x420cc0
cmp ax, 0x6e
je 0x420d12
add ebx, 1
cmp edi, ebx
jle 0x420c0c
cmp ax, 0x64
je 0x420d28
cmp ax, 0x6f
je 0x420d1c
mov r9d, 0x40
mov r8d, 0x3ff
mov edx, 1
lea rcx, str._Syntax:_rz____option_...___command___archives____files_...__n_n_Commands..._n_tl_tList____archive_n_te_tExtract_archives_using_no___paths_n_tx_tExtract_archives_using_full_paths_n_tt_tVerify__archives__checksums__n_ta_tCreate__archive___ignores_junctions__sym__or_hard_links__n_t__t_________file_is_treated_as_a_listfile__UTF_8__n_n_Options..._n_td_N_tWindow___iM.._iM___default__iM__decoder_uses_1.66N_memory__n_to_DIR_tTarget_directory_n_tr_tScan_collect_files_recursively__except_archives__n_tn_tNo__to_all_queries_n_ty_tYes_to_all_queries_n_n_Examples..._n_trz_a__d_1111k_archive.rz_.dll_c:dir.__list_n_trz_e__r__y__o_dir___.rz_.dll_n_n_For_compression__a_window_size_of__1_64_512_M_uses__55_900_6500_M_of_memory._n_DO_NOT_directly_or_indirectly_modify__decompile_or_otherwise_reverse_engineer_n_this_software._Use_this_demo_at_your_own_risk._n
call sub.msvcrt.dll_printf
lea rbx, [rsp + 0xa0]
lea rcx, [rbx + 0xa0]
call fcn.0041b630
mov rcx, qword [rsp + 0xf8]
call fcn.0041b590
mov eax, dword [rsp + 0xf0]
test eax, eax
je 0x420c6d
mov rcx, qword [rsp + 0xe8]
mov dword [rsp + 0xf0], 0
call fcn.0041b590
lea rcx, [rbx + 0x30]
call fcn.00417bb0
nop
add rsp, 0x1b8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
call sub.msvcrt.dll_wcslen
cmp rax, 1
je 0x420ccd
mov rcx, qword [r14]
jmp 0x420bb3
mov r12d, 1
add ebx, 1
cmp edi, ebx
jle 0x420c0c
mov eax, dword [rsp + 0x198]
jmp 0x420b9d
mov dword [rsp + 0x19c], 1
jmp 0x420ca9
mov rax, qword [r14]
movzx eax, word [rax]
cmp ax, 0x61
je 0x420e99
cmp ax, 0x6c
je 0x420ea9
cmp ax, 0x74
je 0x420ee0
cmp ax, 0x65
je 0x420ef0
cmp ax, 0x78
jne 0x420c0c
mov dword [rsp + 0x198], 5
jmp 0x420ca9
mov dword [rsp + 0x19c], r13d
jmp 0x420ca9
mov rax, qword [r15 + rsi + 8]
mov qword [rsp + 0x40], rax
jmp 0x420ca9
mov rcx, qword [r15 + rsi + 8]
xor edx, edx
movzx eax, word [rcx]
cmp ax, 0x4d
je 0x420e89
ja 0x420e79
test ax, ax
je 0x420d60
cmp ax, 0x4b
jne 0x420ec0
cmp word [rcx + 2], 0
jne 0x420eb9
shl rdx, 0xa
mov dword [rsp + 0x1a0], edx
jmp 0x420ca9
mov eax, dword [rsp + 0x1a0]
sub eax, 0x100000
cmp eax, 0x3fe00000
ja 0x420c0c
call rbp
sub edi, ebx
mov dword [rsp + 0x4c], eax
mov eax, dword [rsp + 0x198]
cmp eax, 3
je 0x420f00
cmp eax, 1
je 0x420fff
cmp eax, 4
je 0x4214a0
cmp eax, 2
je 0x4214c6
cmp eax, 5
jne 0x420c0c
lea rbx, [rsp + 0xa0]
mov dword [rsp + 0x28], 1
mov r8, qword [rsp + 0x40]
mov dword [rsp + 0x20], r12d
mov r9d, edi
mov rdx, r14
mov rcx, rbx
call fcn.00420900
lea rdi, [rsp + 0x78]
lea rsi, [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov qword [rsp + 0x20], rdi
mov r9, rsi
mov r8, rsi
mov rdx, rsi
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcessTimes]
test eax, eax
je 0x420c31
call rbp
sub eax, dword [rsp + 0x4c]
pxor xmm1, xmm1
mov edx, dword [rsp + 0x78]
add eax, 1
cvtsi2sd xmm1, rax
mov eax, dword [rsp + 0x7c]
mulsd xmm1, qword [0x0042b950]
shl rax, 0x20
add rax, rdx
js 0x4214db
pxor xmm0, xmm0
cvtsi2sd xmm0, rax
lea rcx, str._CPU_time___0.3fs___wall_time___0.3fs_n
movapd xmm2, xmm1
movq r8, xmm1
mulsd xmm0, qword [0x0042b958]
movapd xmm1, xmm0
movq rdx, xmm0
call sub.msvcrt.dll_printf
jmp 0x420c31
cmp ax, 0x6b
je 0x420d51
cmp ax, 0x6d
jne 0x420ec0
cmp word [rcx + 2], 0
jne 0x420eb9
shl rdx, 0x14
jmp 0x420d60
mov dword [rsp + 0x198], 1
jmp 0x420ca9
mov dword [rsp + 0x198], 3
jmp 0x420ca9
xor edx, edx
jmp 0x420d60
lea r8d, [rax - 0x30]
cmp r8w, 9
ja 0x420eb9
imul rdx, rdx, 0xa
sub eax, 0x30
add rcx, 2
cdqe
add rdx, rax
jmp 0x420d2f
mov dword [rsp + 0x198], 4
jmp 0x420ca9
mov dword [rsp + 0x198], 2
jmp 0x420ca9
mov r8, qword [r14]
lea rbx, [rsp + 0xa0]
mov r9d, 1
xor edx, edx
lea rcx, [rbx + 0x30]
lea rdi, [rbx + 0xa0]
lea rsi, [rsp + 0x80]
call fcn.0041fdc0
mov rcx, rbx
call fcn.0041e280
lea rdx, [0x0041be30]
mov rcx, rdi
call fcn.0041dd40
mov rcx, rdi
call fcn.0041dbb0
mov edx, dword [rsp + 0x168]
mov rcx, rdi
call fcn.0041c610
mov rdx, rdi
mov rcx, rsi
call fcn.0041c520
mov r9, qword [r14]
lea rdi, [rsp + 0x170]
mov ecx, 8
rep movsd dword [rdi], dword [rsi]
mov eax, dword [rsp + 0x1a0]
lea r8, str._Archive_:__s
mov edx, 0x1000
mov r13d, dword [0x00434680]
lea rcx, [0x004347c0]
mov rsi, qword [rsp + 0x170]
mov edi, dword [rsp + 0x1a4]
sar eax, 0xa
mov r15d, dword [rsp + 0x188]
mov r12d, dword [rsp + 0x180]
mov dword [rsp + 0x40], eax
call fcn.0041b170
mov ecx, r13d
call fcn.0041b1a0
mov r8d, dword [rsp + 0x40]
mov r9d, edi
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], r15d
lea rcx, str._n_s_n_Window__:__iK_n_Header__:__i_n_n_Listed__i_dirs___i_files___I64i_bytes._n
mov rdx, rax
mov dword [rsp + 0x20], r12d
lea rdi, [rsp + 0x78]
lea rsi, [rsp + 0x70]
call sub.msvcrt.dll_wprintf
jmp 0x420df1
lea rbx, [rsp + 0xa0]
mov esi, 1
lea r13, [rbx + 0xa0]
jmp 0x42102a
mov r9d, 1
mov r8d, r12d
mov rcx, r13
call fcn.0041d180
add rsi, 1
cmp edi, esi
jle 0x421049
mov rdx, qword [r14 + rsi*8]
cmp word [rdx], 0x40
jne 0x421015
add rdx, 2
mov r8d, r12d
mov rcx, rbx
call fcn.0041d3e0
jmp 0x421026
lea r12, [rsp + 0x50]
lea rdx, [rbx + 0xa0]
mov rcx, r12
mov rsi, r12
call fcn.0041dfc0
mov ecx, 8
mov edx, 0x100000
movsxd rax, dword [rsp + 0x1a0]
lea r15, [rsp + 0x170]
mov rdi, r15
rep movsd dword [rdi], dword [rsi]
mov rcx, qword [r14]
cmp qword [rsp + 0x170], rax
cmovle rax, qword [rsp + 0x170]
cmp eax, 0x100000
cmovl eax, edx
add eax, 0x3ff
and eax, 0xfffffc00
mov dword [rsp + 0x1a0], eax
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4210bf
test al, 0x10
je 0x4214f9
mov r8, qword [r14]
lea rsi, [rbx + 0x30]
mov r9d, 1
mov edx, 1
mov rcx, rsi
call fcn.0041fdc0
mov r8, rsi
mov edx, 1
mov rcx, rbx
mov r9d, dword [rsp + 0x1a0]
mov dword [rsp + 0x20], 0x63
mov dword [rsp + 0x138], 1
call fcn.0040ec30
mov edi, dword [0x00434680]
lea r8, str._Creating_archive__s
mov edx, 0x1000
mov rax, qword [rsp + 0xb0]
lea rcx, [0x004347c0]
mov r9, qword [r14]
mov r13d, dword [rsp + 0x1a0]
mov esi, dword [rax + 0x48]
call fcn.0041b170
mov ecx, edi
call fcn.0041b1a0
mov edx, 1
sar r13d, 0xa
mov r9, qword [rsp + 0x170]
mov edi, edx
mov r8d, dword [rsp + 0x188]
mov dword [rsp + 0x28], r13d
lea ecx, [rsi - 4]
mov qword [rsp + 0x20], rax
shl edi, cl
mov ecx, edi
lea rdi, [rbx + 0xa0]
sar ecx, 0xa
mov dword [rsp + 0x38], ecx
lea ecx, [rsi - 0xc]
xor esi, esi
shl edx, cl
mov dword [rsp + 0x30], edx
mov edx, dword [rsp + 0x180]
lea rcx, str._Found__i_dirs___i_files___I64i_bytes._n_n_s_n_Window_:__iK___iM.._iG__n
call sub.msvcrt.dll_wprintf
jmp 0x4211ba
mov edx, esi
mov rcx, rdi
call fcn.0041bce0
cmp qword [rax + 0x208], 0
jle 0x4211b7
mov edx, esi
mov rcx, rbx
call fcn.0041c350
add esi, 1
cmp dword [rsp + 0x160], esi
jg 0x421199
mov edx, 1
mov rcx, rbx
mov rdi, r15
call fcn.004015c0
mov rdx, rbx
mov rcx, r12
mov rsi, r12
call fcn.0041d870
lea rdx, [rbx + 0x70]
mov ecx, 8
mov rax, qword [rsp + 0xe0]
rep movsd dword [rdi], dword [rsi]
lea rsi, [rbx + 0x30]
mov ecx, 8
mov rdi, rdx
mov dword [rsp + 0x70], 0x5284d43
mov dword [rsp + 0x134], 0
mov qword [rsp + 0x80], rax
xor eax, eax
rep stosd dword [rdi], eax
mov edi, dword [rsp + 0x130]
mov eax, dword [rsp + 0x134]
lea rdx, [rdi + rdi]
lea ecx, [rax + 1]
add rax, qword [rsp + 0xf8]
cmp rdx, 0xff
mov dword [rsp + 0x134], ecx
jbe 0x421294
mov ecx, edx
shr rdx, 8
or ecx, 1
mov rdi, rdx
mov byte [rax], cl
cmp dword [rsp + 0x134], 0x1000
jne 0x421226
mov rdx, qword [rsp + 0xf8]
mov r8d, 0x1000
mov rcx, rsi
call fcn.004184f0
mov dword [rsp + 0x134], 0
mov eax, eax
add qword [rsp + 0x108], rax
jmp 0x421226
mov byte [rax], dl
mov esi, dword [rsp + 0x130]
lea rax, [rbx + 0x30]
lea rdi, [rbx + 0x48]
mov qword [rsp + 0x40], rax
test esi, esi
je 0x4213b9
lea r14d, [rsi - 1]
mov edx, esi
mov rcx, rdi
call fcn.0041fd80
mov edx, r14d
mov rcx, rdi
mov r12, qword [rax + 8]
call fcn.0041fd80
mov edx, esi
mov rcx, rdi
mov r15, qword [rax + 8]
call fcn.0041fd80
mov edx, esi
mov rcx, rdi
sub r12, r15
mov qword [rax + 0x10], r12
call fcn.0041fd80
mov edx, esi
mov rcx, rdi
movzx r12d, byte [rax]
call fcn.0041fd80
mov rcx, rdi
mov r13, qword [rax + 0x10]
mov r15, r12
mov r12d, r12d
mov edx, dword [rsp + r12*4 + 0x110]
call fcn.0041fd80
mov rdx, r13
sub rdx, qword [rax + 0x10]
lea rax, [rdx + rdx]
test rdx, rdx
lea rcx, [rdx + rdx]
not rax
cmovns rax, rcx
shl rax, 3
or r15, rax
jmp 0x42136b
mov edx, dword [rsp + 0x134]
lea rax, [r15 + r15]
lea ecx, [rdx + 1]
add rdx, qword [rsp + 0xf8]
cmp rax, 0xff
mov dword [rsp + 0x134], ecx
jbe 0x4213a7
mov ecx, eax
shr rax, 8
or ecx, 1
mov r15, rax
mov byte [rdx], cl
cmp dword [rsp + 0x134], 0x1000
jne 0x421338
mov rdx, qword [rsp + 0xf8]
mov r8d, 0x1000
mov rcx, qword [rsp + 0x40]
call fcn.004184f0
mov dword [rsp + 0x134], 0
mov eax, eax
add qword [rsp + 0x108], rax
jmp 0x421338
mov byte [rdx], al
mov dword [rsp + r12*4 + 0x110], esi
mov esi, r14d
jmp 0x4212aa
mov r8d, dword [rsp + 0x134]
lea r12, [rbx + 0x30]
mov rdx, qword [rsp + 0xf8]
lea rdi, [rsp + 0x78]
mov rcx, r12
lea rsi, [rsp + 0x70]
call fcn.004184f0
xor edx, edx
mov rcx, r12
mov r14d, eax
call fcn.004153c0
mov r9, rdi
mov rdx, rsi
mov qword [rsp + 0x20], 0
mov r8d, 4
mov rcx, qword [rsp + 0xd8]
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x42151f
cmp dword [rsp + 0x78], 4
jne 0x42151f
lea rdx, [rsp + 0x80]
mov rcx, r12
mov r8d, 6
add qword [rsp + 0xe0], 4
call fcn.004184f0
mov rdx, qword [rsp + 0x170]
xor r8d, r8d
lea eax, [r14 + rax + 4]
add rax, qword [rsp + 0x108]
mov r9d, dword [rsp + 0x1a4]
lea rcx, str._r_c_r_Header_:__i_n_Size___:__I64i_n_n_Archive_ok._Added__i_dirs___i_files___I64i_bytes._n
mov qword [rsp + 0x38], rdx
mov edx, dword [rsp + 0x188]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x108], rax
mov dword [rsp + 0x30], edx
mov edx, dword [rsp + 0x180]
mov dword [rsp + 0x28], edx
mov edx, dword [0x00434680]
call sub.msvcrt.dll_printf
jmp 0x420df1
lea rbx, [rsp + 0xa0]
mov r9d, 1
xor r8d, r8d
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
jmp 0x420ddc
lea rbx, [rsp + 0xa0]
mov dword [rsp + 0x28], 0
jmp 0x420dcf
mov rdx, rax
and eax, 1
pxor xmm0, xmm0
shr rdx, 1
or rdx, rax
cvtsi2sd xmm0, rdx
addsd xmm0, xmm0
jmp 0x420e4e
mov rdx, qword [r14]
mov rcx, rbx
call fcn.0041b260
test al, al
je 0x420de7
mov edx, pe_nt_image_headers64
mov rcx, qword [r14]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
jmp 0x4210bf
call fcn.00428990
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp qword [sym.imp.WINMM.dll_timeGetTime]