Function at 0x14001e320
Capabilities:
Check if file exists
Create directory

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x210]
sub rsp, 0x310
mov rax, qword [0x140193440]
xor rax, rsp
mov qword [rbp + 0x1a0], rax
xor esi, esi
mov dword [rsp + 0x58], edx
mov edi, edx
mov qword [rsp + 0x50], rcx
mov rbx, rcx
mov dword [rsp + 0x4c], esi
xor edx, edx
lea rcx, [rbp - 0x70]
mov r8d, 0x208
mov r12d, esi
mov r14d, esi
mov r13d, esi
call fcn.140136960
mov dword [rsp + 0x60], edi
mov r15d, esi
mov dword [rsp + 0x64], 0xffffffff
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x70], rsi
mov qword [rbp - 0x80], rsi
mov qword [rsp + 0x78], rsi
test rbx, rbx
jne 0x14001e3ad
lea eax, [rbx - 1]
jmp 0x14001ec31
test edi, edi
jne 0x14001e4e2
mov rcx, qword [0x14019f508]
test rcx, rcx
jne 0x14001e3c8
xor eax, eax
jmp 0x14001ec31
cmp dword [0x1401944a8], esi
mov r8d, 0xff
mov edx, 0xf7
mov eax, 0xf8
cmovne edx, r8d
cmp dword [0x140194318], esi
cmovne eax, r8d
and dl, al
call fcn.140071530
mov qword [rsp + 0x70], rax
mov rsi, rax
test rax, rax
jne 0x14001e418
mov rdx, qword [0x14019f508]
lea rcx, str.Could_not_open_image__s_as_an_ISO_9660_file_system
call fcn.14004f910
jmp 0x14001eb53
lea rdx, [0x1401e8f2c]
mov rcx, rsi
call fcn.140073570
mov qword [rbp - 0x80], rax
mov rdi, rax
test rax, rax
jne 0x14001e44b
lea rdx, [0x1401e8f2c]
lea rcx, str.Could_not_get_ISO_9660_file_information_for_file__s
call fcn.14004f910
jmp 0x14001eb53
mov ecx, 0x8018
call fcn.1400e9094
mov qword [rsp + 0x78], rax
mov r15, rax
test rax, rax
je 0x14001eb53
mov qword [rax], rsi
lea rdx, [rax + 0x18]
mov r8d, dword [rdi + 0xd8]
mov r9d, 0x10
mov rcx, rsi
mov dword [rax + 8], r8d
mov qword [rax + 0x10], r12
mov word [rsp + 0x20], 0x800
call fcn.140072150
cmp eax, 0x8000
je 0x14001e4b4
mov r8d, dword [r15 + 8]
lea rdx, [0x1401e8f2c]
lea rcx, str.Error_reading_ISO_9660_file__s_at_LSN__lu
call fcn.14004f910
jmp 0x14001eb53
mov rdx, r15
lea rcx, [0x14001de30]
call fcn.140082470
mov qword [0x1401d0d90], rax
test rax, rax
jne 0x14001e4e0
lea rcx, str.FAT_access_error
call fcn.14004f910
jmp 0x14001eb53
xor esi, esi
movaps xmmword [rsp + 0x2f0], xmm7
movaps xmmword [rsp + 0x2e0], xmm8
movsd xmm8, qword [0x140176ef8]
movaps xmmword [rsp + 0x2d0], xmm9
movsd xmm9, qword [0x140176f70]
movaps xmmword [rsp + 0x2c0], xmm10
movsd xmm10, qword [0x140176f50]
movaps xmmword [rsp + 0x2b0], xmm11
movsd xmm11, qword [0x140176f20]
movaps xmmword [rsp + 0x300], xmm6
nop word [rax + rax]
lea r8, [rbp - 0x70]
lea rdx, [rsp + 0x60]
call fcn.140082cb0
mov dword [rsp + 0x60], eax
mov r15d, eax
test eax, eax
js 0x14001eaf1
cmp word [rbp - 0x70], 0
jne 0x14001e581
mov edx, 1
mov ecx, edx
call fcn.1400c537c
mov r14, rax
test rax, rax
jne 0x14001e640
jmp 0x14001e606
mov qword [rsp + 0x38], rsi
lea r8, [rbp - 0x70]
mov qword [rsp + 0x30], rsi
mov r9d, 0xffffffff
mov dword [rsp + 0x28], esi
xor edx, edx
mov ecx, 0xfde9
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
movsxd rbx, eax
cmp ebx, 1
jle 0x14001e5fe
mov rcx, rbx
mov edx, 1
call fcn.1400c537c
mov r14, rax
test rax, rax
je 0x14001e5fe
mov qword [rsp + 0x38], rsi
lea r8, [rbp - 0x70]
mov qword [rsp + 0x30], rsi
mov r9d, 0xffffffff
mov dword [rsp + 0x28], ebx
xor edx, edx
mov ecx, 0xfde9
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
cmp eax, ebx
je 0x14001e63b
mov rcx, r14
call fcn.1400e9080
mov rbx, qword [rsp + 0x50]
mov r14, rsi
mov rcx, 0xffffffffffffffff
nop dword [rax]
inc rcx
cmp byte [rbx + rcx], 0
jne 0x14001e610
add rcx, 2
call fcn.1400e9094
mov r12, rax
test r14, r14
jne 0x14001e679
lea rcx, str.Could_not_allocate_buffer
call fcn.14004f910
jmp 0x14001eb0a
mov rbx, qword [rsp + 0x50]
mov rcx, 0xffffffffffffffff
nop word [rax + rax]
inc rcx
cmp byte [r14 + rcx], 0
jne 0x14001e650
mov rax, 0xffffffffffffffff
inc rax
cmp byte [rbx + rax], 0
jne 0x14001e661
add rax, 2
add rcx, rax
call fcn.1400e9094
mov r12, rax
test r12, r12
je 0x14001e62a
mov rdx, r12
mov rcx, rbx
sub rdx, rbx
nop word [rax + rax]
movzx eax, byte [rcx]
mov byte [rcx + rdx], al
lea rcx, [rcx + 1]
test al, al
jne 0x14001e690
lea rcx, [r12 - 1]
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x14001e6a3
movzx eax, word [0x140156078]
mov word [rcx], ax
lea rcx, [r12 - 1]
nop dword [rax]
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x14001e6c0
xor edx, edx
nop dword [rax]
movzx eax, byte [r14 + rdx]
mov byte [rcx + rdx], al
lea rdx, [rdx + 1]
test al, al
jne 0x14001e6d0
test byte [rbp + 0x194], 0x10
mov rcx, r12
je 0x14001e765
call fcn.140017520
xor edx, edx
mov rcx, rax
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov edi, eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test rbx, rbx
je 0x14001e716
mov rcx, rbx
call fcn.1400e9080
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_SetLastError]
test edi, edi
jne 0x14001e74d
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x14001e74d
call fcn.140050120
mov r8, rax
lea rcx, str.Could_not_create_directory__s:__s
mov rdx, r12
call fcn.14004f910
xor esi, esi
jmp 0x14001eaf1
mov edx, r15d
mov rcx, r12
call fcn.14001e320
test eax, eax
je 0x14001eb0a
jmp 0x14001ead9
call fcn.140017520
mov rcx, rax
mov rbx, rax
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov edi, eax
test rbx, rbx
je 0x14001e785
mov rcx, rbx
call fcn.1400e9080
test edi, edi
jne 0x14001eadb
xor eax, eax
mov dword [rsp + 0x40], eax
mov word [rsp + 0x44], ax
mov byte [rsp + 0x46], al
mov rax, 0xffffffffffffffff
inc rax
cmp byte [r14 + rax], 0
jne 0x14001e7a3
cmp rax, 4
jbe 0x14001e7cf
lea rcx, [rax - 5]
add rcx, r14
lea rdx, str..conf
call fcn.140108174
test eax, eax
jne 0x14001e7cf
mov r15b, 1
jmp 0x14001e7d2
xor r15b, r15b
cmp dword [0x14019f510], 0
lea rdi, [0x140166080]
mov ecx, dword [rbp + 0x190]
lea rax, [0x14015644e]
cmove rdi, rax
mov byte [rsp + 0x41], r15b
xorps xmm7, xmm7
test rcx, rcx
js 0x14001e805
cvtsi2sd xmm7, rcx
jmp 0x14001e81a
mov rax, rcx
and ecx, 1
shr rax, 1
or rax, rcx
cvtsi2sd xmm7, rax
addsd xmm7, xmm7
mov rsi, qword [0x14019f4e0]
xor ebx, ebx
comisd xmm9, xmm7
ja 0x14001e838
inc rbx
mulsd xmm7, xmm8
cmp rbx, 5
jl 0x14001e823
test rbx, rbx
jne 0x14001e85f
mov rax, qword [rsi + 0xa0]
lea r9, str._s_d_s__s
mov qword [rsp + 0x38], rax
cvttsd2si ecx, xmm7
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], ecx
jmp 0x14001e8a7
movaps xmm6, xmm7
movaps xmm0, xmm7
mulsd xmm6, xmm10
call fcn.140135fe0
lea rax, str._s_0.0f_s__s
mulsd xmm0, xmm10
lea r9, str._s_0.1f_s__s
subsd xmm6, xmm0
comisd xmm11, xmm6
cmova r9, rax
mov rax, qword [rsi + rbx*8 + 0xa0]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rdi
movsd qword [rsp + 0x28], xmm7
mov r8, 0xffffffffffffffff
mov qword [rsp + 0x20], rdi
lea rcx, [0x1401e2e80]
lea edx, [r8 + 0x21]
call fcn.140004960
lea r9, [0x1401e2e80]
mov byte [0x1401e2e9f], 0
lea r8, [0x1401e8f2c]
mov rdx, r12
lea rcx, str.Extracting:__s__from__s___s_
call fcn.14004f910
movzx ebx, byte [rbp + 0x194]
mov rcx, r12
call fcn.140017520
xor esi, esi
xor r9d, r9d
mov qword [rsp + 0x30], rsi
mov edx, 0xc0000000
mov dword [rsp + 0x28], ebx
mov rcx, rax
mov rdi, rax
mov dword [rsp + 0x20], 2
lea r8d, [rsi + 1]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r13, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
test rdi, rdi
je 0x14001e939
mov rcx, rdi
call fcn.1400e9080
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
cmp r13, 0xffffffffffffffff
jne 0x14001e963
call fcn.140050120
mov r8, rax
lea rcx, str.Could_not_create__s:__s
mov rdx, r12
call fcn.14004f910
jmp 0x14001eaf1
mov ecx, dword [rsp + 0x60]
mov rax, qword [0x1401d0d90]
test ecx, ecx
jne 0x14001e97f
mov ecx, dword [rax + 0x20]
test ecx, ecx
jne 0x14001e97f
mov rdi, qword [rax + 0x30]
jmp 0x14001e99a
cmp ecx, 2
jl 0x14001e9a5
cmp ecx, dword [rax + 0x1c]
jge 0x14001e9a5
movsxd rdi, ecx
mov ecx, dword [rax + 0x18]
sub rdi, 2
shl rdi, cl
add rdi, qword [rax + 0x38]
test rdi, rdi
je 0x14001eaad
jmp 0x14001e9b0
mov rdi, 0xffffffffffffffff
nop dword [rax]
mov ecx, 0xffffffff
cmp rdi, rcx
jae 0x14001eaad
cmp esi, dword [rbp + 0x190]
jae 0x14001eaad
mov rdx, rdi
mov rcx, rax
call fcn.1400822e0
mov rdx, rax
test rax, rax
jne 0x14001e9ea
mov ecx, 0xc003001b
mov dword [0x14019f0a0], ecx
jmp 0x14001e9f0
mov ecx, dword [0x14019f0a0]
test ecx, ecx
js 0x14001eb0a
mov r8d, dword [rbp + 0x190]
lea r9, [rsp + 0x48]
sub r8d, esi
mov rcx, r13
cmp dword [0x140196f78], r8d
cmovb r8d, dword [0x140196f78]
mov dword [rsp + 0x48], r8d
call fcn.140050f30
test eax, eax
je 0x14001ea96
mov ecx, dword [rbp + 0x190]
mov eax, dword [rsp + 0x48]
sub ecx, esi
cmp dword [0x140196f78], ecx
cmovb ecx, dword [0x140196f78]
cmp eax, ecx
jne 0x14001ea96
mov rcx, qword [0x1401d0d90]
mov rdx, rdi
add esi, eax
call fcn.140082760
mov rdi, rax
mov rax, qword [0x1401d0d90]
mov rbx, qword [rax + 0x48]
mov qword [rax + 0x48], 0
mov rcx, rbx
test rbx, rbx
je 0x14001ea8b
mov rbx, qword [rbx + 8]
call fcn.1400c44e0
mov rcx, rbx
test rbx, rbx
jne 0x14001ea73
mov rax, qword [0x1401d0d90]
test rdi, rdi
jne 0x14001e9b0
jmp 0x14001eaad
call fcn.140050120
mov r8, rax
lea rcx, str.Could_not_write__s:__s
mov rdx, r12
call fcn.14004f910
test r13, r13
je 0x14001eac2
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r13, 0xffffffffffffffff
test r15b, r15b
je 0x14001ead9
lea r9, [rsp + 0x40]
xor r8d, r8d
xor edx, edx
mov rcx, r12
call fcn.1400186b0
xor esi, esi
mov rcx, r12
call fcn.1400e9080
mov rcx, r14
mov r12, rsi
call fcn.1400e9080
mov r14, rsi
cmp dword [rsp + 0x60], 0
jl 0x14001eb02
mov rbx, qword [rsp + 0x50]
jmp 0x14001e540
mov dword [rsp + 0x4c], 1
cmp dword [rsp + 0x58], 0
movaps xmm11, xmmword [rsp + 0x2b0]
movaps xmm10, xmmword [rsp + 0x2c0]
movaps xmm9, xmmword [rsp + 0x2d0]
movaps xmm8, xmmword [rsp + 0x2e0]
movaps xmm7, xmmword [rsp + 0x2f0]
movaps xmm6, xmmword [rsp + 0x300]
jne 0x14001ec0a
mov rsi, qword [rsp + 0x70]
mov r15, qword [rsp + 0x78]
mov rdi, qword [0x1401d0d90]
test rdi, rdi
je 0x14001eb95
mov rbx, qword [rdi + 0x48]
mov qword [rdi + 0x48], 0
mov rcx, rbx
test rbx, rbx
je 0x14001eb84
mov rbx, qword [rbx + 8]
call fcn.1400c44e0
mov rcx, rbx
test rbx, rbx
jne 0x14001eb73
mov rcx, rdi
call fcn.1400e9080
xor edi, edi
mov qword [0x1401d0d90], rdi
mov rbx, qword [rbp - 0x80]
test rbx, rbx
je 0x14001ebb8
mov rcx, qword [rbx + 0x1d]
test rcx, rcx
je 0x14001ebb0
call fcn.1400e9080
mov qword [rbx + 0x1d], rdi
mov rcx, rbx
call fcn.1400e9080
test rsi, rsi
je 0x14001ec02
mov rbx, qword [rsi + 8]
test rbx, rbx
je 0x14001ebf6
cmp dword [rbx + 0x38], 0
je 0x14001ebe5
lea rcx, str.closed_source...
call fcn.140071250
mov rcx, qword [rbx]
call qword [rbx + 0x28]
mov dword [rbx + 0x38], edi
mov qword [rbx + 0x40], rdi
mov rcx, qword [rbx]
call qword [rbx + 0x30]
mov rcx, rbx
mov qword [rbx], rdi
call fcn.1400e9080
mov rcx, rsi
mov qword [rsi + 8], rdi
call fcn.1400e9080
mov rcx, r15
call fcn.1400e9080
lea rdx, [r13 - 1]
cmp rdx, 0xfffffffffffffffd
ja 0x14001ec1d
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, r14
call fcn.1400e9080
mov rcx, r12
call fcn.1400e9080
mov eax, dword [rsp + 0x4c]
mov rcx, qword [rbp + 0x1a0]
xor rcx, rsp
call fcn.1400b1f80
mov rbx, qword [rsp + 0x360]
add rsp, 0x310
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret