Function at 0x140015f00
Capabilities:
Create directory
Set file attributes
Write file on windows

Disassembly:
push rbp
push rdi
push r13
push r15
lea rbp, [rsp - 0x40a8]
mov eax, 0x41a8
call fcn.140023110
sub rsp, rax
mov rax, qword [0x14005a4a8]
xor rax, rsp
mov qword [rbp + 0x4090], rax
mov rdx, qword [rcx]
xor r15d, r15d
lea rcx, [rbp + 0x4088]
mov edi, r15d
call int.140002790
test eax, eax
je 0x140015f4f
lea eax, [r15 + 0xb]
jmp 0x1400162ee
lea rcx, [rbp + 0x4078]
call fcn.1400025a0
xor edx, edx
lea rcx, [rbp + 0x10]
call fcn.140006770
lea rax, [rbp + 0x4078]
lea rcx, [rbp + 0x10]
mov qword [rbp + 0x30], rax
call fcn.1400067b0
lea rax, [fcn.140001730]
mov qword [rsp + 0x60], rax
lea rax, [fcn.140001740]
mov qword [rsp + 0x68], rax
lea rax, [fcn.140001730]
mov qword [rbp - 0x80], rax
lea rax, [fcn.140001740]
mov qword [rbp - 0x78], rax
call fcn.140001820
lea rcx, [rbp - 0x70]
call fcn.140002df0
lea r9, [rbp - 0x80]
lea r8, [rsp + 0x60]
lea rdx, [rbp + 0x10]
lea rcx, [rbp - 0x70]
call fcn.140002e30
mov r13d, eax
test eax, eax
jne 0x1400162d1
mov qword [rsp + 0x41d8], rbx
mov qword [rsp + 0x41e0], rsi
mov qword [rsp + 0x41e8], r12
mov r12d, r15d
mov qword [rsp + 0x41a0], r14
mov dword [rbp + 0x4050], 0xffffffff
mov qword [rsp + 0x58], r15
mov qword [rbp + 0x4070], r15
cmp dword [rbp - 0x40], edi
jbe 0x14001628d
nop dword [rax]
mov r14d, r12d
lea rcx, [rbp - 0x70]
shl r14, 5
xor r8d, r8d
add r14, qword [rbp - 0x50]
mov edx, r12d
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x78], r15
mov qword [rbp + 0x4058], r15
mov ebx, r12d
call fcn.140002da0
mov rsi, rax
test rax, rax
je 0x140016077
mov rdx, rdi
xor ecx, ecx
call fcn.140001740
lea rdx, [rsi + rsi]
xor ecx, ecx
call fcn.140001730
mov rdi, rax
test rax, rax
je 0x140016262
mov r8, rdi
lea rcx, [rbp - 0x70]
mov rdx, rbx
call fcn.140002da0
cmp byte [r14 + 0x19], 0
jne 0x1400160e6
lea rax, [rbp - 0x80]
mov r8d, r12d
mov qword [rsp + 0x48], rax
lea r9, [rbp + 0x4050]
lea rax, [rsp + 0x60]
mov qword [rsp + 0x40], rax
lea rdx, [rbp + 0x10]
lea rax, [rbp + 0x4058]
mov qword [rsp + 0x38], rax
lea rcx, [rbp - 0x70]
lea rax, [rsp + 0x78]
mov qword [rsp + 0x30], rax
lea rax, [rbp + 0x4070]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
call fcn.140002850
mov r13d, eax
movzx eax, word [rdi]
mov rsi, r15
test ax, ax
je 0x140016138
mov rbx, rdi
mov r14d, 0x5c
nop word [rax + rax]
cmp ax, 0x2f
jne 0x140016123
xor edx, edx
mov word [rbx], r15w
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x14001611f
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov word [rbx], r14w
inc rsi
movzx eax, word [rdi + rsi*2]
lea rbx, [rdi + rsi*2]
test ax, ax
jne 0x140016100
mov r14, qword [rsp + 0x50]
cmp byte [r14 + 0x19], 0
je 0x14001615d
xor edx, edx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x140016253
call qword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x140016253
mov rdx, rdi
lea rcx, [rsp + 0x70]
call fcn.1400027f0
test eax, eax
jne 0x140016287
mov r15, qword [rsp + 0x78]
add r15, qword [rsp + 0x58]
mov rbx, qword [rbp + 0x4058]
test rbx, rbx
je 0x1400161f4
xor eax, eax
mov esi, eax
nop dword [rax]
mov ecx, 0x400000
mov dword [rsp + 0x50], eax
cmp rbx, rcx
mov qword [rsp + 0x20], rax
mov r8d, ebx
lea r9, [rsp + 0x50]
cmova r8d, ecx
mov rdx, r15
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov edx, dword [rsp + 0x50]
add r15, rdx
sub rbx, rdx
add rsi, rdx
test eax, eax
je 0x1400161d9
test edx, edx
je 0x1400161e7
test rbx, rbx
je 0x1400161e7
xor eax, eax
jmp 0x140016190
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x14001627f
cmp rsi, qword [rbp + 0x4058]
jne 0x14001627f
mov ecx, dword [r14]
lea r9, [rbp + 0x4060]
mov eax, dword [r14 + 4]
lea rdx, [rbp + 0x4068]
mov dword [rbp + 0x4060], ecx
xor r8d, r8d
mov dword [rbp + 0x4068], ecx
mov rcx, qword [rsp + 0x70]
mov dword [rbp + 0x4064], eax
mov dword [rbp + 0x406c], eax
call qword [sym.imp.KERNEL32.dll_SetFileTime]
lea rcx, [rsp + 0x70]
call fcn.1400026a0
test eax, eax
jne 0x140016287
cmp byte [r14 + 0x1d], al
je 0x140016250
mov edx, dword [r14 + 0x14]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
xor r15d, r15d
inc r12d
cmp r12d, dword [rbp - 0x40]
jb 0x140016020
jmp 0x14001628d
mov rdx, qword [rsp + 0x58]
lea rcx, [rsp + 0x60]
mov rax, qword [rsp + 0x68]
mov r13d, 2
call qword [case.0x1400206aa.0]
jmp 0x1400162b1
mov r13d, 9
jmp 0x14001628d
mov r13d, 0xb
mov rdx, qword [rsp + 0x58]
lea rcx, [rsp + 0x60]
mov rax, qword [rsp + 0x68]
call qword [case.0x1400206aa.0]
test rdi, rdi
je 0x1400162b1
mov rdx, rdi
xor ecx, ecx
call fcn.140001740
mov r12, qword [rsp + 0x41e8]
mov rsi, qword [rsp + 0x41e0]
mov rbx, qword [rsp + 0x41d8]
mov r14, qword [rsp + 0x41a0]
lea rdx, [rsp + 0x60]
lea rcx, [rbp - 0x70]
call fcn.140002cd0
lea rcx, [rbp + 0x4088]
call fcn.1400026a0
mov eax, r13d
mov rcx, qword [rbp + 0x4090]
xor rcx, rsp
call fcn.140022dc0
add rsp, 0x41a8
pop r15
pop r13
pop rdi
pop rbp
ret