Function at 0x140017090
Capabilities:
Check if file exists
Create directory
Get file attributes

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xa0
mov rax, qword [0x1403749c0]
xor rax, rsp
mov qword [rbp + 0x1f], rax
mov rbx, rdx
mov r15, rcx
xor r12d, r12d
mov qword [rbp - 1], r12
mov qword [rbp + 0xf], r12
mov qword [rbp + 0x17], 7
mov word [rbp - 1], r12w
mov rdx, r8
lea rcx, [rbp - 0x21]
call fcn.140017c80
mov rsi, rax
mov rdx, rbx
lea rcx, [rbp - 0x41]
call fcn.140017c80
mov r14, rax
lea rax, [rbp - 1]
cmp qword [rbp + 0x17], 8
cmovae rax, qword [rbp - 1]
mov qword [rbp + 0xf], r12
mov word [rax], r12w
cmp qword [r14 + 0x10], r12
je 0x140017284
cmp qword [rsi + 0x10], r12
je 0x140017284
lea rcx, [rbp - 1]
call fcn.140016f00
test al, al
je 0x140017284
mov rdx, qword [r14 + 0x10]
cmp qword [r14 + 0x18], 8
jb 0x14001713a
mov r14, qword [r14]
mov rcx, qword [rbp + 0xf]
mov r8, qword [rbp + 0x17]
mov rax, r8
sub rax, rcx
cmp rdx, rax
ja 0x140017179
lea rdi, [rcx + rdx]
mov qword [rbp + 0xf], rdi
lea rbx, [rbp - 1]
cmp r8, 8
cmovae rbx, qword [rbp - 1]
lea rcx, [rbx + rcx*2]
lea r8, [rdx + rdx]
mov rdx, r14
call fcn.14015b790
mov word [rbx + rdi*2], r12w
jmp 0x14001718f
mov qword [rsp + 0x20], rdx
mov r9, r14
movzx r8d, byte [rbp - 0x49]
lea rcx, [rbp - 1]
call fcn.14000fae0
lea rcx, [rbp - 1]
cmp qword [rbp + 0x17], 8
cmovae rcx, qword [rbp - 1]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1400171ac
test al, 0x10
jne 0x1400171ca
lea rcx, [rbp - 1]
cmp qword [rbp + 0x17], 8
cmovae rcx, qword [rbp - 1]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x140017284
mov edx, 0x5c
lea rcx, [rbp - 1]
call fcn.1400173e0
mov rdx, qword [rsi + 0x10]
cmp qword [rsi + 0x18], 8
jb 0x1400171e6
mov rsi, qword [rsi]
mov rcx, qword [rbp + 0xf]
mov r8, qword [rbp + 0x17]
mov rax, r8
sub rax, rcx
cmp rdx, rax
ja 0x140017225
lea rdi, [rcx + rdx]
mov qword [rbp + 0xf], rdi
lea rbx, [rbp - 1]
cmp r8, 8
cmovae rbx, qword [rbp - 1]
lea rcx, [rbx + rcx*2]
lea r8, [rdx + rdx]
mov rdx, rsi
call fcn.14015b790
mov word [rbx + rdi*2], r12w
jmp 0x14001723b
mov qword [rsp + 0x20], rdx
mov r9, rsi
movzx r8d, byte [rbp - 0x49]
lea rcx, [rbp - 1]
call fcn.14000fae0
lea rcx, [rbp - 1]
cmp qword [rbp + 0x17], 8
cmovae rcx, qword [rbp - 1]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140017258
test al, 0x10
jne 0x140017272
lea rcx, [rbp - 1]
cmp qword [rbp + 0x17], 8
cmovae rcx, qword [rbp - 1]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x140017284
mov edx, 0x5c
lea rcx, [rbp - 1]
call fcn.1400173e0
mov bl, 1
jmp 0x140017286
xor bl, bl
mov rdx, qword [rbp - 0x29]
cmp rdx, 8
jb 0x1400172c6
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x41]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400172c1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400173ca
call fcn.1401594f8
mov qword [rbp - 0x31], r12
mov qword [rbp - 0x29], 7
mov word [rbp - 0x41], r12w
mov rdx, qword [rbp - 9]
cmp rdx, 8
jb 0x140017317
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x21]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140017312
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400173d0
call fcn.1401594f8
lea rdx, [rbp - 1]
lea rcx, [rbp - 0x21]
call fcn.140017ae0
mov rdx, rax
mov rcx, r15
call fcn.1400045b0
mov rdx, qword [rbp - 9]
cmp rdx, 0x10
jb 0x140017367
inc rdx
mov rcx, qword [rbp - 0x21]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140017361
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400173d6
call fcn.1401594f8
nop
mov rdx, qword [rbp + 0x17]
cmp rdx, 8
jb 0x1400173a3
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 1]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001739e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400173c4
call fcn.1401594f8
movzx eax, bl
mov rcx, qword [rbp + 0x1f]
xor rcx, rsp
call fcn.140158fa0
add rsp, 0xa0
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.14015fc24
nop
call fcn.14015fc24
nop
call fcn.14015fc24
int3
call fcn.14015fc24
int3