Function at 0x140003450
Capabilities:
Read file on windows
Set current directory

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x3d8]
sub rsp, 0x4d8
mov rax, qword [0x140031008]
xor rax, rsp
mov qword [rbp + 0x3c0], rax
mov eax, dword [rbp + 0x448]
xor edi, edi
mov ebx, dword [rbp + 0x458]
xorps xmm0, xmm0
mov dword [rsp + 0x5c], eax
mov r14, rcx
mov ecx, dword [rbp + 0x450]
xor eax, eax
mov qword [rsp + 0x60], r9
xorps xmm1, xmm1
mov dword [rsp + 0x54], ecx
mov esi, r8d
mov qword [rsp + 0x48], rdi
mov r13, rdx
mov qword [rbp - 0x80], rax
mov r15d, edi
mov qword [rbp - 0x78], rdi
movdqa xmmword [rbp - 0x70], xmm0
movdqa xmmword [rbp - 0x60], xmm1
movaps xmmword [rbp - 0x50], xmm0
mov dword [rsp + 0x50], edi
mov qword [rsp + 0x68], rdi
test ebx, ebx
jne 0x1400034e3
mov dword [rsp + 0x40], edi
cmp ecx, 0xa
jl 0x1400034eb
mov dword [rsp + 0x40], 1
mov r12d, dword [rbp + 0x440]
test r12d, r12d
je 0x140003503
lea rcx, str.Begin_dry_run_n
call fcn.140005be0
lea rdx, [0x14002359c]
mov rcx, r14
call fcn.14000a458
test rax, rax
je 0x140003bdb
mov rcx, rax
call fcn.140009f14
xor r9d, r9d
lea r8, [rbp - 0x40]
mov edx, 0x400
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetFullPathNameA]
mov r8d, eax
lea rax, [r8 - 1]
cmp rax, 0x3fe
ja 0x140003560
inc r8
lea rdx, [rbp - 0x40]
mov rcx, r14
call fcn.140006c50
mov rcx, r14
call section..text
jmp 0x140003563
mov byte [r14], dil
test r14, r14
je 0x140003bdb
test r12d, r12d
jne 0x140003632
mov rcx, r13
call fcn.140002970
test eax, eax
jne 0x1400035ba
mov rdx, r13
lea rcx, str.Unviv:_Attempt_creating_directory__s_n
call fcn.140005be0
mov rcx, r13
call fcn.1400102f4
test eax, eax
je 0x1400035ba
lea ecx, [r12 + 2]
call fcn.140009d00
mov rcx, rax
lea rdx, str.Unviv:_Cannot_create_directory__s_n
mov r8, r13
call fcn.140004e60
jmp 0x140003618
xor r9d, r9d
lea r8, [rbp - 0x40]
mov edx, 0x400
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_GetFullPathNameA]
mov r8d, eax
lea rax, [r8 - 1]
cmp rax, 0x3fe
ja 0x1400035f7
inc r8
lea rdx, [rbp - 0x40]
mov rcx, r13
call fcn.140006c50
mov rcx, r13
call section..text
jmp 0x1400035fb
mov byte [r13], dil
test r13, r13
jne 0x140003632
lea ecx, [r13 + 2]
call fcn.140009d00
mov rcx, rax
lea rdx, str.Unviv:_Cannot_get_full_path_of_outpath._n
call fcn.140004e60
xor edx, edx
lea rcx, str.Number_extracted:__d_n
mov rdi, 0xffffffffffffffff
call fcn.140005be0
jmp 0x140003c4a
mov r12, 0xffffffffffffffff
cmp dword [rbp + 0x460], edi
je 0x140003723
mov ecx, 0x400
call fcn.14000e8a8
mov qword [rsp + 0x68], rax
mov rbx, rax
test rax, rax
jne 0x140003678
lea ecx, [rax + 2]
call fcn.140009d00
mov rcx, rax
lea rdx, str.Unviv:_Memory_allocation_failed._n
call fcn.140004e60
jmp 0x14000371d
mov rax, r12
nop dword [rax + rax]
inc rax
cmp byte [r14 + rax], dil
jne 0x140003680
inc rax
cmp rax, 0x400
jae 0x1400036a5
mov r8, r12
inc r8
cmp byte [r14 + r8], dil
jne 0x140003697
inc r8
jmp 0x1400036ab
mov r8d, 0x400
mov rdx, r14
mov rcx, rbx
call fcn.140006c50
mov rcx, r12
mov byte [rbx + 0x3ff], dil
cmp byte [rbx + rcx + 1], dil
lea rcx, [rcx + 1]
jne 0x1400036c0
lea rax, [rcx + 4]
cmp rax, 0x400
jae 0x1400036ed
mov eax, dword [str..txt]
mov dword [rcx + rbx], eax
movzx eax, byte [0x140024b48]
mov byte [rcx + rbx + 4], al
jmp 0x14000371d
mov ecx, 2
call fcn.140009d00
mov rcx, rax
lea r9, str..txt
mov r8, r14
lea rdx, str.Unviv:_Cannot_append_extension__s_to__s_n
call fcn.140004e60
mov rcx, rbx
call fcn.14000e894
mov qword [rsp + 0x68], rdi
mov ebx, dword [rbp + 0x458]
mov rcx, r14
call fcn.140002970
test eax, eax
je 0x140003750
mov ecx, 2
call fcn.140009d00
mov rcx, rax
lea rdx, str.Unviv:_Cannot_open_directory_as_archive__s_n
mov r8, r14
call fcn.140004e60
jmp 0x140003bfb
mov eax, dword [rsp + 0x54]
cmp eax, 0xa
jl 0x140003767
mov edx, eax
lea rcx, str._nFixed_directory_entry_length:__d_n
call fcn.140005be0
test ebx, ebx
je 0x140003779
mov edx, ebx
lea rcx, str.Filenames_as_hex:__d_n
call fcn.140005be0
mov rdx, r14
lea rcx, str._nExtracting_archive:__s_n
call fcn.140005be0
mov rdx, r13
lea rcx, str.Extracting_to:__s_n
call fcn.140005be0
lea rdx, [0x14002359c]
mov rcx, r14
call fcn.14000a458
mov qword [rsp + 0x48], rax
test rax, rax
jne 0x1400037cf
lea ecx, [rax + 2]
call fcn.140009d00
mov rcx, rax
lea rdx, str.Unviv:_Cannot_open__s_n
mov r8, r14
call fcn.140004e60
jmp 0x140003bfb
mov rcx, r14
call fcn.1400018e0
movsxd rbx, eax
lea rcx, str.Archive_Size__parsed____d__0x_x__n
mov r8d, ebx
mov dword [rsp + 0x58], ebx
mov edx, ebx
call fcn.140005be0
mov eax, dword [rsp + 0x40]
lea rcx, [rbp - 0x80]
mov r9d, dword [rsp + 0x5c]
mov r8d, ebx
mov rdx, qword [rsp + 0x48]
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x54]
mov dword [rsp + 0x20], eax
call fcn.140002570
test rax, rax
je 0x140003bfb
mov r9, qword [rsp + 0x48]
lea rcx, [rbp - 0x80]
mov r8, r13
mov qword [rsp + 0x20], rbx
mov rdx, r14
call fcn.140001680
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x140003966
cmp byte [rcx], dil
je 0x140003966
mov rax, r12
inc rax
cmp byte [rcx + rax], dil
jne 0x140003851
inc rax
cmp rax, 0x400
jbe 0x140003883
mov ecx, 2
call fcn.140009d00
mov rcx, rax
lea rdx, str.GetIdxFromFname:_Requested_filename_is_too_long_n
call fcn.140004e60
jmp 0x140003bfb
mov esi, edi
cmp dword [rbp - 0x70], edi
jle 0x140003936
nop
mov rax, qword [rbp - 0x58]
xor r8d, r8d
mov rcx, qword [rsp + 0x48]
mov edx, dword [r15 + rax + 8]
call fcn.14000ac14
mov rax, qword [rbp - 0x58]
mov ecx, ebx
mov r9, qword [rsp + 0x48]
mov edx, 1
sub ecx, dword [r15 + rax + 8]
mov eax, 0x400
cmp ecx, eax
cmovl eax, ecx
lea rcx, [rbp - 0x40]
movsxd rbx, eax
mov r8, rbx
call fcn.14000a8dc
cmp rax, rbx
jne 0x14000391a
mov r8, qword [rsp + 0x60]
lea rax, [rbp - 0x40]
inc esi
sub r8, rax
nop word [rax + rax]
movzx edx, byte [rax]
movzx ecx, byte [rax + r8]
sub edx, ecx
jne 0x140003903
inc rax
test ecx, ecx
jne 0x1400038f0
test edx, edx
je 0x140003952
mov ebx, dword [rsp + 0x58]
add r15, 0x10
cmp esi, dword [rbp - 0x70]
jl 0x140003890
jmp 0x140003936
mov ecx, 2
call fcn.140009d00
mov rcx, rax
lea rdx, str.GetIdxFromFname:_File_read_error__find_index__n
call fcn.140004e60
mov r12d, edi
mov ecx, 2
call fcn.140009d00
mov rcx, rax
lea rdx, str.GetIdxFromFname:_Cannot_find_requested_file_in_archive__cAse_sEnsitivE_filename__n
call fcn.140004e60
mov esi, r12d
mov r15, rdi
test esi, esi
jle 0x140003bfb
mov ebx, dword [rsp + 0x58]
mov rcx, qword [rsp + 0x60]
mov r12, qword [rsp + 0x48]
cmp dword [rsp + 0x5c], edi
je 0x140003997
mov eax, dword [rsp + 0x40]
mov r9d, esi
mov dword [rsp + 0x30], eax
mov r8, r12
mov eax, dword [rsp + 0x54]
mov edx, ebx
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rcx
lea rcx, [rbp - 0x80]
call fcn.1400029f0
cmp dword [rbp + 0x440], edi
je 0x1400039b5
lea rcx, str.End_dry_run_n
call fcn.140005be0
mov edi, 1
jmp 0x140003c42
cmp dword [rbp + 0x460], edi
je 0x140003a58
mov r12, qword [rsp + 0x68]
test r12, r12
je 0x140003a58
lea rdx, [0x140024c40]
mov rcx, r12
call fcn.14000a458
mov r15, rax
test rax, rax
jne 0x140003a02
lea ecx, [rax + 2]
call fcn.140009d00
mov rcx, rax
lea rdx, str.Unviv:_Cannot_open__s__option__we__n
mov r8, r12
call fcn.140004e60
jmp 0x140003a50
mov r8d, 4
lea rdx, str.BIGF
lea rcx, [rbp - 0x80]
call fcn.14000f530
test eax, eax
je 0x140003a36
lea r9, [rbp - 0x80]
mov rcx, r15
lea r8, str._fmt
lea rdx, str._s__.4s
call fcn.140004e60
mov r8, r14
lea rdx, str.__s_
mov rcx, r15
call fcn.140004e60
mov rcx, r15
call fcn.14000a334
mov rcx, r12
call fcn.14000e894
mov rcx, r13
call fcn.1400101c0
test eax, eax
je 0x140003a85
mov ecx, 2
call fcn.140009d00
mov rcx, rax
lea rdx, str.Unviv:_Cannot_change_working_directory_to__s_n
mov r8, r13
call fcn.140004e60
jmp 0x140003c04
test esi, esi
je 0x140003b55
js 0x140003b34
cmp esi, dword [rbp - 0x70]
jg 0x140003b34
mov rax, qword [rbp - 0x60]
lea ecx, [rsi - 1]
and cl, 7
movsxd r8, esi
dec r8
mov rdx, r8
sar rdx, 3
movzx edx, byte [rdx + rax]
sar dl, cl
test dl, 1
jne 0x140003adf
mov ecx, 2
call fcn.140009d00
mov rcx, rax
lea rdx, str.Unviv:_Requested_idx___d__is_an_invalid_entry_n
mov r8d, esi
call fcn.140004e60
jmp 0x140003c04
mov rax, qword [rbp - 0x58]
lea rcx, [rsp + 0x70]
mov r9d, dword [rsp + 0x40]
add r8, r8
mov qword [rsp + 0x30], r13
mov edx, ebx
mov qword [rsp + 0x28], r15
movups xmm0, xmmword [rax + r8*8]
mov eax, dword [rbp + 0x468]
mov r8, qword [rsp + 0x48]
movaps xmmword [rsp + 0x70], xmm0
mov dword [rsp + 0x20], eax
call fcn.1400040d0
test eax, eax
je 0x140003c04
mov dword [rsp + 0x50], 1
mov edi, 1
jmp 0x140003c04
mov ecx, 2
call fcn.140009d00
mov rcx, rax
lea rdx, str.Unviv:_Requested_idx___d__out_of_bounds__1_based_index__n
mov r8d, esi
call fcn.140004e60
jmp 0x140003c04
cmp dword [rbp - 0x70], edi
jle 0x140003bd4
mov ebx, dword [rbp + 0x468]
mov esi, dword [rsp + 0x58]
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [rbp - 0x60]
movzx ecx, dil
and cl, 7
movsxd r8, edi
mov rdx, r8
sar rdx, 3
movzx edx, byte [rdx + rax]
sar dl, cl
test dl, 1
je 0x140003bcd
mov rax, qword [rbp - 0x58]
lea rcx, [rsp + 0x70]
mov r9d, dword [rsp + 0x40]
add r8, r8
mov qword [rsp + 0x30], r13
mov edx, esi
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], ebx
movups xmm0, xmmword [rax + r8*8]
mov r8, qword [rsp + 0x48]
movaps xmmword [rsp + 0x70], xmm0
call fcn.1400040d0
test eax, eax
je 0x140003bcd
inc dword [rsp + 0x50]
inc edi
cmp edi, dword [rbp - 0x70]
jl 0x140003b70
mov edi, 1
jmp 0x140003c04
mov ecx, 2
call fcn.140009d00
mov rcx, rax
lea rdx, str.Unviv:_Cannot_get_full_path_of_archive._n
call fcn.140004e60
mov rdi, 0xffffffffffffffff
cmp dword [rbp + 0x440], 0
jne 0x140003c38
mov edx, dword [rsp + 0x50]
lea rcx, str.Number_extracted:__d_n
call fcn.140005be0
test r15, r15
je 0x140003c38
lea rdx, [0x14002435c]
mov rcx, r15
call fcn.140004e60
mov rcx, r15
call fcn.14000a334
mov rcx, r15
call fcn.140009f14
mov r12, qword [rsp + 0x48]
test r12, r12
je 0x140003c4a
mov rcx, r12
call fcn.140009f14
mov rcx, qword [rbp - 0x58]
test rcx, rcx
je 0x140003c58
call fcn.14000e894
mov rcx, qword [rbp - 0x60]
test rcx, rcx
je 0x140003c6c
cmp dword [rbp - 0x68], 0x58
jle 0x140003c6c
call fcn.14000e894
mov eax, edi
mov rcx, qword [rbp + 0x3c0]
xor rcx, rsp
call fcn.140006030
add rsp, 0x4d8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret