Function at 0x40a160
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x488
mov rsi, qword [rsp + 0x4f8]
mov r13, rdx
mov ebp, 0x400
lea rdx, str.Archive_File_Type
xor r14d, r14d
mov r9, rsi
mov r8d, ebp
mov r15, rcx
mov r12d, r14d
call fcn.00409d98
cmp rax, r14
mov rbx, rax
je 0x40a6d8
mov rcx, rax
call fcn.004173f0
cmp rax, r14
je 0x40a6d8
mov rcx, rbx
call fcn.00418d30
lea rdx, str.Archive_File_Path
mov r9, rsi
mov r8d, ebp
mov rcx, r15
mov edi, eax
mov dword [rsp + 0x20], eax
call fcn.00409d98
mov rcx, rax
mov rbx, rax
call fcn.00409f84
mov rcx, rbx
mov dword [rsp + 0x28], eax
call fcn.004173f0
lea rcx, [rax + 1]
call fcn.004171e0
mov rdx, rbx
mov rcx, rax
mov rbp, rax
mov byte [rax], r14b
call fcn.00417550
mov r11, rbp
movsx eax, byte [r11]
cmp eax, 0x2f
jne 0x40a22e
mov byte [r11], 0x5c
add r11, 1
cmp eax, r14d
jne 0x40a221
lea rcx, [rsp + 0x40]
mov rdx, r13
mov byte [rsp + 0x40], r14b
call fcn.004174b0
lea rcx, [rsp + 0x40]
mov rdx, rbp
call fcn.0040bc6c
lea rcx, [rsp + 0x370]
mov rdx, rbp
mov byte [rsp + 0x370], r14b
call fcn.004174b0
cmp edi, 2
jne 0x40a298
lea rdx, [0x004511bc]
lea rcx, [rsp + 0x40]
call fcn.004174b0
lea rdx, [0x004511bc]
lea rcx, [rsp + 0x370]
call fcn.004174b0
lea rcx, [rsp + 0x150]
mov rdx, r13
mov byte [rsp + 0x150], r14b
call fcn.004174b0
lea rcx, [rsp + 0x150]
mov rdx, rbp
call fcn.0040bc6c
lea rcx, [rsp + 0x260]
mov rdx, r13
mov byte [rsp + 0x260], r14b
call fcn.004174b0
lea rdx, [0x004511c0]
lea rcx, [rsp + 0x260]
call fcn.0040bc6c
lea rcx, [rsp + 0x260]
call fcn.004173f0
mov rcx, rbp
mov rbx, rax
call fcn.004173f0
mov rdi, r14
test eax, eax
movsxd r14, ebx
movsxd r13, eax
jle 0x40a33f
lea rbx, [rsp + r14 + 0x260]
cmp byte [rdi + rbp], 0x5c
jne 0x40a330
lea rcx, [rsp + 0x260]
mov byte [rbx + rdi], r12b
call fcn.0040bc24
mov al, byte [rdi + rbp]
mov byte [rbx + rdi], al
add rdi, 1
cmp rdi, r13
jl 0x40a319
lea rax, [r13 + r14]
mov rcx, rbp
mov byte [rsp + rax + 0x260], r12b
call fcn.004171a0
mov ebp, dword [rsp + 0x20]
cmp ebp, 1
jne 0x40a392
lea rcx, [rsp + 0x40]
call fcn.0040bc24
lea rcx, str._t_Unarchiver__Created_folder__s_n
lea rdx, [rsp + 0x370]
call fcn.0040bd0c
mov rdx, qword [rsp + 0x4f0]
mov rcx, rsi
call fcn.00409f14
xor eax, eax
jmp 0x40a6e9
mov r13d, 0x28
lea rdx, str.Archive_File_Length
mov r9, rsi
mov r8d, r13d
mov rcx, r15
call fcn.00409d98
lea edi, [r13 - 0x29]
test rax, rax
jne 0x40a3dd
mov ebx, edi
cmp dword [rsp + 0x28], r12d
je 0x40a433
lea rdx, str.Signature_Length
xor r9d, r9d
mov r8d, r13d
mov rcx, r15
call fcn.00409d98
test rax, rax
jne 0x40a3f7
mov eax, edi
jmp 0x40a3ff
mov rcx, rax
call fcn.00418d30
test eax, eax
mov ebx, eax
jne 0x40a3b8
lea rcx, str._t_Unarchiver__Skipping_empty_file__s_n
jmp 0x40a36e
mov rcx, rax
call fcn.00418d30
mov rcx, qword [rsp + 0x4e0]
lea rdx, str.Signature_Hex
xor r9d, r9d
mov dword [rcx], eax
mov rcx, r15
mov r8d, 0x1000
call fcn.00409d98
mov rcx, qword [rsp + 0x4e8]
mov qword [rcx], rax
mov eax, edi
jmp 0x40a6e9
mov r13, qword [rsp + 0x4f0]
mov rcx, rsi
mov rdx, r13
call fcn.00409f14
lea rcx, [rsp + 0x40]
call fcn.004173f0
cmp eax, 4
jl 0x40a541
cdqe
cmp byte [rsp + rax + 0x3b], 0x70
jne 0x40a541
cmp byte [rsp + rax + 0x3c], 0x32
jne 0x40a541
cmp byte [rsp + rax + 0x3d], 0x2e
jne 0x40a541
cmp byte [rsp + rax + 0x3e], 0x6c
jne 0x40a541
cmp byte [rsp + rax + 0x3f], 0x32
jne 0x40a541
lea rcx, str._t_Unarchiver__.p2.l2_detected._Performing_in_sync_unarchive._n
call fcn.0040bd0c
mov edx, 0x100000
mov ecx, 5
call fcn.00407abc
mov rdx, qword [rsp + 0x4d8]
mov rcx, rax
mov qword [rsp + 0x28], rax
call fcn.00409a7c
test ebx, ebx
mov qword [rsp + 0x30], rax
jle 0x40a521
mov r14, qword [rsp + 0x500]
mov r8d, ebx
mov rdx, r14
mov rcx, r15
sub r8d, r12d
call fcn.00407ed8
cmp eax, edi
mov ebp, eax
je 0x40a518
mov rcx, qword [rsp + 0x28]
mov r8d, eax
mov rdx, r14
call fcn.00407bcc
test r13, r13
je 0x40a510
add dword [rsi + 0x18], ebp
mov r8d, ebp
mov rdx, r14
mov rcx, r13
call fcn.00401000
add r12d, ebp
cmp r12d, ebx
jl 0x40a4d3
mov rax, qword [rsp + 0x30]
mov ebp, dword [rsp + 0x20]
mov rcx, qword [rax + 8]
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea rcx, str._t_Unarchiver__.p2.l2_in_sync_unarchive_complete._n
call fcn.0040bd0c
jmp 0x40a5ee
lea rdx, [0x0044c930]
lea rcx, [rsp + 0x40]
call fcn.00419020
test rax, rax
mov rdi, rax
jne 0x40a56f
lea rcx, str._t_Unarchiver___Unable_to_extract_archive_file._Unable_to_open_file_for_writing._n
call fcn.0040bd0c
lea ecx, [rdi + 1]
call fcn.004187f0
int3
test ebx, ebx
jle 0x40a5c4
mov r14, qword [rsp + 0x500]
mov r8d, ebx
mov rdx, r14
mov rcx, r15
sub r8d, r12d
call fcn.00407ed8
mov r9, rdi
mov edx, 1
movsxd rbp, eax
mov rcx, r14
mov r8, rbp
call fcn.0041abc0
test r13, r13
je 0x40a5b8
add dword [rsi + 0x18], ebp
mov r8d, ebp
mov rdx, r14
mov rcx, r13
call fcn.00401000
add r12d, ebp
cmp r12d, ebx
jl 0x40a57b
mov ebp, dword [rsp + 0x20]
mov rcx, rdi
call fcn.00418cb0
mov rcx, rdi
call fcn.0041b550
lea rdx, [rsp + 0x370]
lea rcx, str._Unarchiver__Extracted__s__length:_d__type:_ld__n
mov r9d, ebp
mov r8d, ebx
call fcn.0040bd0c
cmp ebp, 2
jne 0x40a38b
lea rcx, str._t_Unarchiver__Requires_unpacking200..._n
call fcn.0040bd0c
cmp dword [0x004691ec], 0
jne 0x40a624
mov rcx, qword [0x004690d8]
mov dl, 1
call fcn.0040bf9c
mov dword [0x004691ec], 1
mov rcx, qword [0x004690d8]
call fcn.0040b4b0
test eax, eax
jne 0x40a647
mov rdx, qword [0x004690d8]
lea rcx, str._t_Unarchiver__ERROR:_unpack200_executable___s__does_not_exist__n
call fcn.0040bd0c
call fcn.00408298
mov rdx, qword [0x004690d8]
mov rcx, rax
mov rbx, rax
call fcn.00408308
lea rdx, [rsp + 0x40]
mov rcx, rbx
call fcn.004082d0
lea rdx, [rsp + 0x150]
mov rcx, rbx
call fcn.004082d0
xor edx, edx
mov rcx, rbx
call fcn.00408340
mov rcx, rbx
call fcn.004171a0
lea rcx, [rsp + 0x150]
call fcn.0040b4b0
test eax, eax
jne 0x40a6b2
lea rdx, [rsp + 0x150]
lea rcx, str._t_Unarchiver__ERROR:_Unpacked_target___s__does_not_exist__n
call fcn.0040bd0c
lea rcx, [rsp + 0x40]
call fcn.0041d210
lea rdx, [rsp + 0x150]
lea rcx, [rsp + 0x40]
mov byte [rsp + 0x40], 0
call fcn.004174b0
jmp 0x40a38b
lea rcx, str._Unarchiver__WARNING._EOF_encountered._n
call fcn.0040bd0c
mov eax, 0xffffffff
add rsp, 0x488
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret