Function at 0x41f1e0
Capabilities:
Read file on windows
Set console window title
Set current directory
Set file attributes
Write file on windows

Disassembly:
push r15
mov eax, 0x191a8
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
call fcn.004282b0
sub rsp, rax
movaps xmmword [rsp + 0x19180], xmm6
movaps xmmword [rsp + 0x19190], xmm7
movzx eax, byte [rsp + 0x19210]
mov byte [rsp + 0xbf], al
movzx eax, byte [rsp + 0x19218]
mov r14, rcx
mov qword [rsp + 0x191f8], rdx
mov rdx, qword [rdx]
lea rdi, [rsp + 0x5150]
mov qword [rsp + 0x19200], r8
mov rcx, rdi
xor r8d, r8d
mov dword [rsp + 0x19208], r9d
mov r9d, 1
mov byte [rsp + 0xbe], al
movabs rax, 0x100000000
mov qword [rsp + 0x9170], rax
mov dword [rsp + 0x5158], 0
mov dword [rsp + 0x5168], 0
mov qword [rsp + 0x78], rdi
call fcn.0041d370
lea rdx, [0x0041c5f0]
mov rcx, rdi
call fcn.0041c230
lea rax, [rsp + 0x130]
mov rdx, rdi
mov rcx, rax
mov qword [rsp + 0xa8], rax
call fcn.0041c980
mov r8, qword [rsp + 0x130]
lea rcx, str._Found__i_files___I64i_bytes._n_n
mov edx, dword [rsp + 0x148]
call sub.msvcrt.dll_printf
mov r8d, dword [rsp + 0x9170]
test r8d, r8d
jle 0x41f4ac
cmp qword [rsp + 0x19200], 0
lea r15, [rsp + 0x3150]
mov dword [rsp + 0x5c], 0
mov rdi, qword [rsp + 0x191f8]
lea rax, [0x0042baed]
movsd xmm7, qword [0x0042c690]
cmovne rax, r15
mov qword [rsp + 0xb0], rax
mov eax, dword [rsp + 0x19208]
sub eax, 2
lea rax, [rdi + rax*8 + 0x10]
mov qword [rsp + 0x88], rax
jmp 0x41f356
add dword [rsp + 0x5c], 1
mov eax, dword [rsp + 0x5c]
cmp dword [rsp + 0x9170], eax
jle 0x41f4ac
mov edx, dword [rsp + 0x5c]
mov rcx, qword [rsp + 0x78]
call fcn.0041bae0
mov eax, dword [rax + 0x220]
and eax, 0x10
mov dword [rsp + 0x84], eax
jne 0x41f340
mov ebx, dword [rsp + 0x5c]
lea rsi, [r14 + 0x30]
mov rdi, qword [rsp + 0x78]
mov edx, ebx
mov rcx, rdi
call fcn.0041bae0
mov r8d, ebx
mov rcx, rdi
mov r9d, 1
mov qword [rsp + 0x90], rax
lea rax, str.Extracting
mov qword [rsp + 0xf0], rax
lea rax, str.Testing
mov qword [rsp + 0xf8], rax
mov eax, dword [0x00436a94]
lea rbx, [rsp + 0x1150]
mov qword [rsp + 0xa0], rsi
add eax, 1
mov dword [0x00436a94], eax
and eax, 1
shl rax, 0xd
lea rdx, [rdi + rax + 0x20]
call fcn.0041c510
mov rcx, rbx
mov rdx, rax
call sub.msvcrt.dll_wcscpy
xor r9d, r9d
xor edx, edx
mov rcx, rsi
mov r8, rax
call fcn.0041ee30
test al, al
mov byte [rsp + 0xbd], al
jne 0x41f519
mov rsi, qword [sym.imp.WINMM.dll_timeGetTime]
call rsi
sub eax, dword [r14 + 0x40f4]
cmp eax, 0x3e7
jbe 0x41f490
call rsi
lea rsi, [rsp + 0x9180]
or r9d, 0xffffffff
xor edx, edx
sub eax, 1
mov r8, rbx
mov ecx, dword [0x00434680]
mov dword [r14 + 0x40f4], eax
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x1000
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov edx, dword [0x0043266c]
mov r9, rsi
xor r8d, r8d
lea rcx, str._r_c_r_No_archive:__s
call sub.msvcrt.dll_printf
mov rax, qword [rsp + 0x90]
movzx edi, byte [rsp + 0xbd]
mov byte [rax + 0x230], dil
jmp 0x41f340
mov rdi, qword [rsp + 0x78]
mov rcx, qword [rsp + 0xa8]
mov rdx, rdi
call fcn.0041be00
mov r9d, dword [rsp + 0x14c]
xor r8d, r8d
mov eax, dword [rsp + 0x148]
lea rcx, str._r_c_r_Done._Processed__i_archives__checked__i_non_archives._n
mov edx, dword [0x0043266c]
sub eax, r9d
mov dword [rsp + 0x20], eax
call sub.msvcrt.dll_printf
mov rcx, rdi
call fcn.0041b460
nop
movaps xmm6, xmmword [rsp + 0x19180]
movaps xmm7, xmmword [rsp + 0x19190]
add rsp, 0x191a8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, r14
call fcn.0041d550
cmp qword [rsp + 0x19200], 0
je 0x41f565
mov qword [rsp + 0x38], 0
or r9d, 0xffffffff
xor edx, edx
mov r8, qword [rsp + 0x19200]
mov qword [rsp + 0x30], 0
mov ecx, dword [0x00434680]
mov dword [rsp + 0x28], 0x1000
mov qword [rsp + 0x20], r15
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov edx, dword [rsp + 0x5c]
lea r12, [rsp + 0x9180]
mov rcx, qword [rsp + 0x78]
lea r13, [r14 + 0xa0]
call fcn.0041bae0
xor edx, edx
mov r9d, 0xffffffff
mov r8, rbx
mov esi, dword [r14 + 0x4100]
mov rbp, qword [rax + 0x208]
mov edi, dword [r14 + 0x4104]
mov dword [rsp + 0x28], 0x1000
mov ecx, dword [0x00434680]
mov qword [rsp + 0x20], r12
mov qword [rsp + 0x38], 0
sar esi, 0xa
mov qword [rsp + 0x30], 0
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
xor eax, eax
cmp dword [r14 + 0x40f8], 4
mov edx, dword [0x0043266c]
lea rcx, str._r_c_r__s_archive__s_n_Window_:__iK_n_Header_:__i_n_Size___:__I64i_n_Target_:__s_n_n
sete al
xor r8d, r8d
mov r9, qword [rsp + rax*8 + 0xf0]
mov qword [rsp + 0x38], rbp
mov rax, qword [rsp + 0xb0]
mov dword [rsp + 0x30], edi
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], r12
mov qword [rsp + 0x40], rax
call sub.msvcrt.dll_printf
cmp dword [r14 + 0x40f8], 4
je 0x420529
mov rcx, r13
call fcn.0041bc50
cmp dword [rsp + 0x19208], 1
je 0x41fe52
movzx eax, byte [rsp + 0xbf]
mov dword [rsp + 0xb8], eax
mov rax, qword [rsp + 0x191f8]
add rax, 8
mov qword [rsp + 0x68], rax
mov rax, qword [sym.imp.KERNEL32.dll_ReadFile]
mov qword [rsp + 0x98], rax
jmp 0x41f708
mov r9d, 0xffffffff
mov r8, rsi
xor edx, edx
mov qword [rsp + 0x20], r12
mov ecx, dword [0x00434680]
mov dword [rsp + 0x28], 0x1000
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea rcx, str._Collecting__s_n
mov rdx, r12
call sub.msvcrt.dll_printf
mov rcx, rsi
call fcn.0041a8a0
mov r9d, dword [rsp + 0xb8]
mov rdx, rsi
mov rcx, r13
test al, al
mov r8d, dword [r14 + 0x40c8]
jne 0x41fe3b
call fcn.0041bef0
add qword [rsp + 0x68], 8
mov rax, qword [rsp + 0x68]
cmp qword [rsp + 0x88], rax
je 0x41fe52
mov rax, qword [rsp + 0x68]
mov rsi, qword [rax]
cmp word [rsi], 0x40
jne 0x41f680
bsr eax, dword [r14 + 0x40c0]
mov ecx, 0x1f
mov edx, 1
mov dword [rsp + 0x108], 0
lea rbp, [rsi + 2]
xor eax, 0x1f
sub ecx, eax
lea rax, [rsp + 0x100]
shl edx, cl
lea edi, [rdx - 1]
mov rcx, rax
mov qword [rsp + 0x70], rax
mov dword [rsp + 0x80], edi
mov ebx, edi
xor edi, edi
call fcn.0041ba10
mov edx, dword [r14 + 0x40c0]
lea rax, [rsp + 0x110]
mov dword [rsp + 0x118], 0
mov rcx, rax
mov qword [rsp + 0x50], rax
call fcn.0041ba10
xor edx, edx
mov r8, rbp
mov ecx, dword [0x00434680]
mov r9, 0xffffffffffffffff
mov qword [rsp + 0x20], r12
mov qword [rsp + 0x4160], r9
mov qword [rsp + 0x4158], 0
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x1000
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea rcx, str._Collecting___s_n
mov rdx, r12
call sub.msvcrt.dll_printf
mov rax, rbx
add rbx, 1
mov rsi, qword [rsp + 0x70]
test eax, eax
js 0x41f835
nop word cs:[rax + rax]
mov eax, dword [rsp + 0x108]
lea edx, [rdi + 1]
cmp eax, edi
ja 0x41f81d
add eax, eax
mov rcx, rsi
cmp eax, edx
cmovge edx, eax
call fcn.0041ba10
mov rax, qword [rsp + 0x100]
mov dword [rax + rdi*4], 0xffffffff
add rdi, 1
cmp rbx, rdi
jne 0x41f800
mov ecx, dword [r14 + 0x40c0]
xor ebx, ebx
test ecx, ecx
jg 0x41f860
jmp 0x41f8ea
add ebx, 1
cmp dword [r14 + 0x40c0], ebx
jle 0x41f8ea
mov edx, ebx
mov rcx, r13
call fcn.0041bae0
test byte [rax + 0x220], 0x10
jne 0x41f850
mov eax, dword [0x00436a94]
xor r9d, r9d
mov r8d, ebx
mov rcx, r13
add eax, 1
mov dword [0x00436a94], eax
and eax, 1
shl rax, 0xd
lea rdx, [r13 + rax + 0x20]
call fcn.0041c510
mov rcx, rax
call fcn.0041b350
and eax, dword [rsp + 0x80]
mov rcx, qword [rsp + 0x70]
mov edx, eax
mov edi, eax
call fcn.0041ba60
mov rcx, qword [rsp + 0x50]
mov edx, ebx
mov rsi, rax
call fcn.0041ba60
mov edx, dword [rsi]
mov rcx, qword [rsp + 0x70]
mov dword [rax], edx
mov edx, edi
call fcn.0041ba60
mov dword [rax], ebx
add ebx, 1
cmp dword [r14 + 0x40c0], ebx
jg 0x41f860
xor r8d, r8d
mov r9d, 1
mov rdx, rbp
mov dword [rsp + 0x20], 0
lea rcx, [r15 + 0x1008]
call fcn.00417780
test al, al
je 0x41f920
mov qword [rsp + 0x4170], 0
nop word [rax + rax]
mov ebx, dword [rsp + 0x4170]
lea rsi, [rsp + 0xe0]
jmp 0x41f95b
movsxd rdx, ebx
cmp byte [rsp + rdx + 0x3150], 0
jne 0x41fab0
add ebx, 1
mov dword [rsp + 0x4170], ebx
cmp dword [rsp + 0x4174], ebx
jg 0x41f940
mov qword [rsp + 0x20], 0
mov r9, rsi
mov r8d, 0x1000
mov rdx, r15
mov rcx, qword [rsp + 0x4160]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x420561
mov eax, dword [rsp + 0xe0]
add qword [rsp + 0x4168], rax
test eax, eax
mov rdx, rax
mov dword [rsp + 0x4174], eax
je 0x41fa40
mov dword [rsp + 0x4170], 0
cdqe
cmp edx, 3
mov byte [rsp + rax + 0x3150], 0
jle 0x41fa90
mov eax, dword [rsp + 0x3150]
xor ebx, ebx
shl eax, 8
cmp eax, 0xbfbbef00
jne 0x41f9f1
mov dword [rsp + 0x4170], 3
mov ebx, 3
lea rax, [r15 + 1]
mov rcx, r15
lea r8d, [rdx - 1]
add r8, rax
jmp 0x41fa25
cmp dl, 0x22
je 0x41fa2d
cmp r8, rax
mov rcx, rax
je 0x41f940
add rax, 1
movzx edx, byte [rcx]
cmp dl, 0x1f
ja 0x41fa10
mov byte [rcx], 0
jmp 0x41fa15
lea rcx, [r15 + 0x1008]
call fcn.00417730
mov eax, dword [rsp + 0x118]
test eax, eax
jne 0x42050c
mov edx, dword [rsp + 0x108]
test edx, edx
je 0x41f6ef
mov rcx, qword [rsp + 0x100]
mov dword [rsp + 0x108], 0
call fcn.0041b3c0
jmp 0x41f6ef
xor ebx, ebx
test edx, edx
jg 0x41f9f1
movsxd rdx, ebx
cmp byte [rsp + rdx + 0x3150], 0
je 0x41f951
nop dword [rax + rax]
add rdx, r15
mov rcx, rdx
mov qword [rsp + 0x60], rdx
call sub.msvcrt.dll_strlen
mov rdx, qword [rsp + 0x60]
cmp eax, 0xfff
mov rsi, rax
ja 0x420639
lea rdi, [rsp + 0x150]
add ebx, esi
lea r8d, [rax + 1]
mov rcx, rdi
call sub.msvcrt.dll_memcpy
cmp ebx, dword [rsp + 0x4174]
mov dword [rsp + 0x4170], ebx
je 0x41fd30
mov r8d, 0x1000
mov rdx, rdi
mov rcx, r12
call fcn.0041a8d0
mov rcx, rax
call fcn.0041b350
and eax, dword [rsp + 0x80]
mov ebx, eax
mov eax, dword [rsp + 0x108]
cmp ebx, eax
jb 0x41fb3e
lea edx, [rbx + 1]
add eax, eax
mov rcx, qword [rsp + 0x70]
cmp eax, edx
cmovge edx, eax
call fcn.0041ba10
mov rax, qword [rsp + 0x100]
mov ebx, dword [rax + rbx*4]
test ebx, ebx
js 0x41fcf5
mov qword [rsp + 0x60], r15
jmp 0x41fb92
mov edx, dword [rsp + 0x118]
cmp ebx, edx
jb 0x41fb7f
add edx, edx
add ebx, 1
mov rcx, qword [rsp + 0x50]
cmp edx, ebx
cmovl edx, ebx
call fcn.0041ba10
mov rax, qword [rsp + 0x110]
mov ebx, dword [rax + rsi*4]
test ebx, ebx
js 0x41fcf0
mov eax, dword [0x00436a94]
lea esi, [rax + 1]
mov eax, dword [r14 + 0xa8]
mov dword [0x00436a94], esi
cmp ebx, eax
jb 0x41fbbe
lea edx, [rbx + 1]
add eax, eax
mov rcx, r13
cmp eax, edx
cmovge edx, eax
call fcn.0041ba90
and esi, 1
mov rax, qword [r14 + 0xa0]
xor r9d, r9d
mov rcx, r13
shl rsi, 0xd
lea rdi, [r13 + rsi + 0x20]
movsxd rsi, ebx
imul rbp, rsi, 0x238
mov rdx, rdi
mov r15d, dword [rax + rbp + 0x22c]
mov r8d, r15d
call fcn.0041c510
test r15d, r15d
js 0x41fc08
lea rdx, [0x0042b4fe]
mov rcx, rdi
call fcn.0041a980
mov eax, dword [r14 + 0xa8]
cmp ebx, eax
jb 0x41fc25
lea edx, [rbx + 1]
add eax, eax
mov rcx, r13
cmp eax, edx
cmovge edx, eax
call fcn.0041ba90
mov rdx, qword [r14 + 0xa0]
mov rcx, rdi
add rdx, rbp
call fcn.0041a980
mov rcx, r12
mov rdx, rax
call sub.msvcrt.dll_wcscmp
test eax, eax
jne 0x41fb60
mov r15, qword [rsp + 0x60]
jmp 0x41fcbf
lea edi, [rbx + 1]
add edx, edx
mov rcx, r13
cmp edx, edi
cmovl edx, edi
call fcn.0041ba90
imul rsi, rsi, 0x238
mov edx, dword [r14 + 0xa8]
mov rax, qword [r14 + 0xa0]
add rax, rsi
cmp ebx, edx
mov byte [rax + 0x230], 1
jb 0x41fcae
add edx, edx
mov rcx, r13
cmp edx, edi
cmovl edx, edi
call fcn.0041ba90
mov rax, qword [r14 + 0xa0]
add rax, rsi
mov ebx, dword [rax + 0x22c]
test ebx, ebx
js 0x41f920
movsxd rsi, ebx
mov edx, dword [r14 + 0xa8]
cmp ebx, edx
jae 0x41fc60
imul rsi, rsi, 0x238
mov rax, qword [r14 + 0xa0]
add rax, rsi
mov byte [rax + 0x230], 1
jmp 0x41fcae
mov r15, qword [rsp + 0x60]
mov rcx, r12
call fcn.0041a8a0
test al, al
jne 0x4203d1
mov r9d, dword [rsp + 0xb8]
mov rdx, r12
mov rcx, r13
mov r8d, dword [r14 + 0x40c8]
call fcn.0041bef0
jmp 0x41f920
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0xe4]
mov rdx, r15
mov r8d, 0x1000
mov rcx, qword [rsp + 0x4160]
mov rax, qword [rsp + 0x98]
call rax
test eax, eax
je 0x420561
mov eax, dword [rsp + 0xe4]
add qword [rsp + 0x4168], rax
test eax, eax
mov rdx, rax
mov dword [rsp + 0x4174], eax
je 0x41fe20
mov dword [rsp + 0x4170], 0
cdqe
cmp edx, 3
mov byte [rsp + rax + 0x3150], 0
jle 0x41fe45
mov eax, dword [rsp + 0x3150]
xor r9d, r9d
shl eax, 8
cmp eax, 0xbfbbef00
je 0x42026c
lea rax, [r15 + 1]
mov rcx, r15
lea r8d, [rdx - 1]
add r8, rax
jmp 0x41fde1
cmp dl, 0x22
je 0x41fde9
cmp rax, r8
mov rcx, rax
je 0x41fdf4
add rax, 1
movzx edx, byte [rcx]
cmp dl, 0x1f
ja 0x41fdd0
cmp rax, r8
mov byte [rcx], 0
mov rcx, rax
jne 0x41fddd
movsxd rax, r9d
cmp byte [rsp + rax + 0x3150], 0
je 0x41fafd
mov edx, esi
mov r8d, 0x1000
mov rcx, r15
add rdx, rdi
sub r8d, esi
call fcn.0041a390
jmp 0x41fafd
mov r9d, dword [rsp + 0x4170]
movsxd rax, r9d
cmp byte [rsp + rax + 0x3150], 0
je 0x41fafd
jmp 0x41fe05
call fcn.0041bfe0
jmp 0x41f6ef
xor r9d, r9d
test edx, edx
jg 0x41fdbb
jmp 0x41fdf4
lea rsi, [rsp + 0xc0]
mov rdx, r13
lea rdi, [r14 + 0x40d0]
mov rcx, rsi
mov qword [rsp + 0x70], rsi
call fcn.0041be00
mov qword [rsp + 0x68], rdi
mov ecx, 8
rep movsd dword [rdi], dword [rsi]
mov eax, dword [r14 + 0x40ec]
add eax, dword [r14 + 0x40e4]
je 0x42025b
mov rdx, qword [rsp + 0x19200]
mov rcx, r14
call fcn.0041a9e0
mov rdx, qword [rsp + 0x19200]
mov rcx, r13
call fcn.0041d2d0
mov rcx, qword [rsp + 0x19200]
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
test eax, eax
je 0x42058d
cmp dword [r14 + 0x40e4], 0
je 0x41feed
cmp byte [rsp + 0xbe], 0
je 0x41feed
mov edx, dword [r14 + 0x40c8]
xor r8d, r8d
mov rcx, r14
call fcn.0041c7a0
mov rsi, qword [rsp + 0x70]
mov rdx, r13
mov rcx, rsi
call fcn.0041be00
mov rdi, qword [rsp + 0x68]
mov ecx, 8
rep movsd dword [rdi], dword [rsi]
lea rcx, str._Selected__i__i_dirs___i__i_files___I64i__I64i_bytes._n
mov rax, qword [r14 + 0x40d0]
mov edx, dword [r14 + 0x40e4]
mov qword [rsp + 0x30], rax
mov rax, qword [r14 + 0x40d8]
mov qword [rsp + 0x28], rax
mov eax, dword [r14 + 0x40e8]
mov dword [rsp + 0x20], eax
mov r9d, dword [r14 + 0x40ec]
mov r8d, dword [r14 + 0x40e0]
call sub.msvcrt.dll_printf
mov r8, qword [rsp + 0xa0]
xor edx, edx
mov rcx, r14
mov dword [r14 + 0x98], 1
mov dword [rsp + 0x20], 0
mov r9d, dword [r14 + 0x4100]
call fcn.0040ebf0
mov rbp, qword [sym.imp.WINMM.dll_timeGetTime]
call rbp
sub eax, 1
cmp dword [r14 + 0x40c0], 0
mov dword [r14 + 0x40f0], eax
jle 0x4201e5
mov qword [rsp + 0x60], r15
mov r15d, dword [rsp + 0x84]
mov qword [rsp + 0x50], r13
jmp 0x41ffc1
add r15d, 1
cmp dword [r14 + 0x40c0], r15d
jle 0x4201db
mov rcx, qword [rsp + 0x50]
mov edx, r15d
call fcn.0041bae0
test byte [rax + 0x220], 0x10
jne 0x41ffb0
mov rcx, qword [rsp + 0x50]
mov edx, r15d
call fcn.0041bae0
cmp byte [0x00432668], 0
mov rdi, rax
mov ebx, dword [rax + 0x220]
jne 0x420002
mov byte [0x00432668], 1
call fcn.0041b2b0
cmp byte [rsp + 0xbe], 0
mov rdx, rdi
mov dword [rsp + 0x100], 0xffffffff
mov qword [rsp + 0x118], 0xffffffffffffffff
mov qword [rsp + 0x110], 0
je 0x42006b
mov eax, dword [0x00436a94]
mov r9d, 1
mov r8d, r15d
mov rcx, qword [rsp + 0x50]
add eax, 1
mov dword [0x00436a94], eax
and eax, 1
shl rax, 0xd
lea rdx, [rcx + rax + 0x20]
call fcn.0041c510
mov rcx, rax
call fcn.0041abc0
mov rdx, rax
mov rcx, qword [rsp + 0x60]
call sub.msvcrt.dll_wcscpy
cmp byte [rdi + 0x230], 0
jne 0x4203f0
mov dword [rsp + 0x80], r15d
xor esi, esi
mov r15, r14
mov rbx, qword [rdi + 0x208]
cmp rbx, rsi
jle 0x42014e
sub rbx, rsi
mov eax, 0x10000
mov rdx, r12
cmp rbx, 0x10000
mov rcx, r15
cmovg rbx, rax
mov r8d, ebx
mov r14d, ebx
call fcn.00401570
lea rcx, [rsp + 0x100]
mov r8d, ebx
mov rdx, r12
call fcn.00417a60
movsxd rax, ebx
add rsi, rax
call rbp
sub eax, dword [r15 + 0x40f4]
cmp eax, 0x3e7
ja 0x420290
cmp byte [rdi + 0x230], 0
je 0x42008f
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x150]
mov r8d, r14d
mov rdx, r12
mov rcx, qword [rsp + 0x118]
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x420577
cmp r14d, dword [rsp + 0x150]
jne 0x420577
mov ebx, ebx
add qword [rsp + 0x120], rbx
mov rbx, qword [rdi + 0x208]
cmp rbx, rsi
jg 0x42009f
test rbx, rbx
mov r14, r15
mov r15d, dword [rsp + 0x80]
je 0x420173
mov eax, dword [rsp + 0x100]
not eax
cmp eax, dword [rdi + 0x218]
jne 0x4205df
cmp byte [rdi + 0x230], 0
je 0x4201bd
mov rax, qword [rdi + 0x210]
lea r9, [rsp + 0xe8]
xor r8d, r8d
mov rcx, qword [rsp + 0x118]
imul edx, eax, 0x989680
imul rax, rax, 0x989680
mov dword [rsp + 0xe8], edx
xor edx, edx
sar rax, 0x20
mov dword [rsp + 0xec], eax
call qword [sym.imp.KERNEL32.dll_SetFileTime]
lea rcx, [rsp + 0x110]
add r15d, 1
call fcn.00417730
cmp dword [r14 + 0x40c0], r15d
jg 0x41ffc1
mov r13, qword [rsp + 0x50]
mov r15, qword [rsp + 0x60]
xor edx, edx
mov rcx, r14
call fcn.004015d0
cmp dword [r14 + 0x40e4], 0
je 0x420207
cmp byte [rsp + 0xbe], 0
jne 0x420547
mov rsi, qword [rsp + 0x70]
mov rdx, r13
mov rcx, rsi
call fcn.0041be00
mov rdi, qword [rsp + 0x68]
mov ecx, 8
xor r8d, r8d
rep movsd dword [rdi], dword [rsi]
mov edx, dword [0x0043266c]
lea rcx, str._r_c_r_n_Archive_ok._Extracted__i_dirs___i_files___I64i_bytes._n_n
mov rax, qword [r14 + 0x40d8]
mov qword [rsp + 0x28], rax
mov eax, dword [r14 + 0x40ec]
mov dword [rsp + 0x20], eax
mov r9d, dword [r14 + 0x40e4]
call sub.msvcrt.dll_printf
jmp 0x41f490
lea rcx, str.____No_files_selected._n
call sub.msvcrt.dll_puts
jmp 0x41f490
mov dword [rsp + 0x4170], 3
mov r9d, 3
jmp 0x41fdbb
call rbp
sub eax, 1
cmp rsi, qword [rdi + 0x208]
mov dword [r15 + 0x40f4], eax
jle 0x4202ac
mov qword [rdi + 0x208], rsi
pxor xmm0, xmm0
pxor xmm1, xmm1
cvtsi2sd xmm0, qword [r15 + 0x28]
mov r9, qword [0x00436a98]
cvtsi2sd xmm1, qword [r15 + 0x40d0]
pxor xmm6, xmm6
lea r13, [rsp + 0x150]
lea rdx, str.RZ__0.1f_____iM_
mov rcx, r13
mulsd xmm0, xmm7
shr r9, 0x14
divsd xmm0, xmm1
movapd xmm2, xmm0
movq r8, xmm0
call sub.msvcrt.dll_sprintf
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_SetConsoleTitleA]
pxor xmm0, xmm0
mov r13, qword [r15 + 0x28]
cvtsi2sd xmm6, rsi
cvtsi2sd xmm0, qword [rdi + 0x208]
mulsd xmm6, xmm7
divsd xmm6, xmm0
call rbp
pxor xmm2, xmm2
pxor xmm0, xmm0
mov ecx, dword [0x0043266c]
cvtsi2sd xmm2, qword [r15 + 0x28]
mov r8d, eax
cvtsi2sd xmm0, qword [r15 + 0x40d0]
mov rax, r13
cqo
movapd xmm1, xmm2
mulsd xmm1, xmm7
divsd xmm1, xmm0
movsd qword [rsp + 0x30], xmm6
sub r8d, dword [r15 + 0x40f0]
idiv r8
mov dword [rsp + 0x28], eax
mov rax, qword [r15 + 0x68]
test rax, rax
js 0x4203b6
pxor xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, xmm7
mov edx, ecx
movapd xmm3, xmm1
lea rcx, str._r_c_r_total__0.1f_____ratio__0.1f_____speed__iK_s___file__0.1f__
movq r9, xmm1
xor r8d, r8d
divsd xmm0, xmm2
movsd qword [rsp + 0x20], xmm0
call sub.msvcrt.dll_printf
call qword [sym.imp.msvcrt.dll___iob_func]
lea rcx, [rax + 0x30]
call sub.msvcrt.dll_fflush
jmp 0x4200f0
mov rdx, rax
and eax, 1
pxor xmm0, xmm0
shr rdx, 1
or rdx, rax
cvtsi2sd xmm0, rdx
addsd xmm0, xmm0
jmp 0x42037a
mov r9d, dword [rsp + 0xb8]
mov rdx, r12
mov rcx, r13
mov r8d, dword [r14 + 0x40c8]
call fcn.0041bfe0
jmp 0x41f920
mov eax, dword [0x00436a94]
xor r9d, r9d
mov r8d, r15d
mov rcx, qword [rsp + 0x50]
add eax, 1
mov dword [0x00436a94], eax
and eax, 1
shl rax, 0xd
lea rdx, [rcx + rax + 0x20]
call fcn.0041c510
or r9d, 0xffffffff
xor edx, edx
mov qword [rsp + 0x20], r12
mov r8, rax
mov ecx, dword [0x00434680]
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x1000
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov edx, dword [0x0043266c]
xor r8d, r8d
mov r9, r12
lea rcx, str._r_c_r_Decoding__s_n
call sub.msvcrt.dll_printf
cmp byte [rdi + 0x230], 0
je 0x420082
mov rdx, qword [rsp + 0x60]
lea rsi, [rsp + 0x110]
xor r9d, r9d
mov dword [rsp + 0x20], ebx
mov r8d, 2
mov rcx, rsi
call fcn.00417780
test al, al
jne 0x420082
mov rdx, rdi
mov rcx, r14
call fcn.0041a5f0
test al, al
mov byte [rdi + 0x230], al
je 0x420082
mov rdx, qword [rsp + 0x60]
xor r9d, r9d
mov dword [rsp + 0x20], ebx
mov rcx, rsi
mov r8d, 1
call fcn.00417780
test al, al
jne 0x420082
mov r13, qword [rsp + 0x60]
mov edx, pe_nt_image_headers64
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov dword [rsp + 0x20], ebx
mov rdx, r13
mov rcx, rsi
mov r9d, 1
mov r8d, 1
call fcn.00417780
jmp 0x420082
mov rcx, qword [rsp + 0x110]
mov dword [rsp + 0x118], 0
call fcn.0041b3c0
jmp 0x41fa5b
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x70], rax
lea rax, [r14 + 0x40d0]
mov qword [rsp + 0x68], rax
jmp 0x41feed
mov edx, dword [r14 + 0x40c8]
mov r8d, 1
mov rcx, r14
call fcn.0041c7a0
jmp 0x420207
lea rcx, str._n__ERROR__Read_failed_
call sub.msvcrt.dll_puts
mov ecx, 1
call sub.msvcrt.dll_exit
lea rcx, str._n__ERROR__Write_failed_
call sub.msvcrt.dll_puts
mov ecx, 1
call sub.msvcrt.dll_exit
or r9d, 0xffffffff
mov r8, qword [rsp + 0x19200]
xor edx, edx
mov qword [rsp + 0x38], 0
mov ecx, dword [0x00434680]
mov dword [rsp + 0x28], 0x1000
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x20], r12
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea rcx, str._n__ERROR__Cant_set__s__n
mov rdx, r12
call sub.msvcrt.dll_printf
mov ecx, 1
call sub.msvcrt.dll_exit
mov r15, qword [rsp + 0x60]
lea rbx, [rsp + 0x150]
or r9d, 0xffffffff
xor edx, edx
mov ecx, dword [0x00434680]
mov dword [rsp + 0x28], 0x1000
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov r8, r15
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea rcx, str._n__ERROR__File_corrupt__s__n
mov rdx, rbx
call sub.msvcrt.dll_printf
mov ecx, 1
call sub.msvcrt.dll_exit
lea rcx, str._n__ERROR__Line_too_long_
call sub.msvcrt.dll_puts
mov ecx, 1
call sub.msvcrt.dll_exit
nop