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

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x70], rbx
mov rbx, rcx
call fcn.180002c40
mov rcx, rax
test rax, rax
je 0x180001da0
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x78], rax
mov r15, 0xffffffffffffffff
xor r13d, r13d
test rbx, rbx
je 0x180001b5c
cmp rbx, 0x10000
jae 0x180001b48
movzx edx, bx
lea rcx, [rsp + 0x78]
call fcn.180004270
jmp 0x180001b70
mov rax, r15
nop dword [rax + rax]
inc rax
cmp word [rbx + rax*2], r13w
jne 0x180001b50
jmp 0x180001b5f
mov eax, r13d
mov r8d, eax
mov rdx, rbx
lea rcx, [rsp + 0x78]
call fcn.1800056c0
nop
mov rdi, qword [rsp + 0x78]
mov rcx, rdi
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x180001d67
mov ebp, r13d
lea r12, [rdi - 0x10]
nop dword [rax]
test ebp, ebp
js 0x180001d67
cmp ebp, dword [r12]
jge 0x180001d67
mov edx, 0x5c
movsxd rax, ebp
lea rcx, [rdi + rax*2]
call fcn.18000acc0
mov rbp, rax
test rax, rax
je 0x180001d67
sub rbp, rdi
sar rbp, 1
cmp ebp, 0xffffffff
je 0x180001d67
call fcn.180002c40
mov rcx, rax
test rax, rax
je 0x180001d95
mov rax, qword [rax]
call qword [rax + 0x18]
lea rsi, [rax + 0x18]
mov qword [rsp + 0x80], rsi
add ebp, 1
mov r14d, r13d
cmovns r14d, ebp
cmp r14d, dword [r12]
jl 0x180001c1b
lea rcx, [rdi - 0x18]
call fcn.180001750
lea rbx, [rax + 0x18]
mov qword [rsp + 0x88], rbx
jmp 0x180001c9f
mov rcx, qword [rdi - 0x18]
test rcx, rcx
je 0x180001c2f
mov rax, qword [rcx]
call qword [rax + 0x20]
test rax, rax
jne 0x180001c46
call fcn.180002c40
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x20]
test rax, rax
je 0x180001dbc
mov r9, qword [rax]
mov r8d, 2
mov edx, r14d
mov rcx, rax
call qword [r9]
test rax, rax
je 0x180001db6
lea rbx, [rax + 0x18]
mov qword [rsp + 0x88], rbx
test r14d, r14d
js 0x180001dab
cmp r14d, dword [rbx - 0xc]
jg 0x180001dab
mov dword [rbx - 0x10], r14d
movsxd rax, r14d
lea rdx, [rax + rax]
mov word [rdx + rbx], r13w
mov r9, rdx
mov r8, rdi
mov rcx, rbx
call fcn.180006110
nop
lea rdi, [rbx - 0x18]
add rsi, 0xffffffffffffffe8
cmp rdi, rsi
je 0x180001d02
cmp dword [rsi + 0x10], 0
jl 0x180001ced
mov rax, qword [rsi]
cmp qword [rdi], rax
jne 0x180001ced
mov rcx, rdi
call fcn.180001750
mov rbx, rax
mov ecx, r15d
lock xadd dword [rsi + 0x10], ecx
sub ecx, 1
jg 0x180001cdf
mov rcx, qword [rsi]
mov r8, qword [rcx]
mov rdx, rsi
call qword [r8 + 8]
lea rax, [rbx + 0x18]
mov qword [rsp + 0x80], rax
jmp 0x180001d02
mov r8d, dword [rbx - 0x10]
mov rdx, rbx
lea rcx, [rsp + 0x80]
call fcn.1800056c0
nop
mov eax, r15d
lock xadd dword [rdi + 0x10], eax
sub eax, 1
jg 0x180001d1b
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + 8]
mov rbx, qword [rsp + 0x80]
mov rcx, rbx
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x180001d39
mov rcx, rbx
call fcn.18000e764
nop
lea rdx, [rbx - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jle 0x180001d54
mov rdi, qword [rsp + 0x78]
jmp 0x180001b90
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rdi, qword [rsp + 0x78]
jmp 0x180001b90
lea rdx, [rdi - 0x18]
lock xadd dword [rdx + 0x10], r15d
sub r15d, 1
jg 0x180001d80
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rbx, qword [rsp + 0x70]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ecx, 0x80004005
call fcn.1800016f0
nop
mov ecx, 0x80004005
call fcn.1800016f0
nop
mov ecx, 0x80070057
call fcn.1800016f0
int3
call fcn.1800057e0
int3
mov ecx, 0x80004005
call fcn.1800016f0
int3