Function at 0x140012a50
Capabilities:
Create directory
Set file attributes

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
xor r13d, r13d
mov r12, r9
mov r15d, r8d
mov rsi, rdx
mov rdi, rcx
mov qword [rax + 8], r13
mov r14, r13
cmp rcx, r13
je 0x140012ac2
cmp word [rcx], r13w
je 0x140012ac2
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov rcx, rsi
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov rdx, rdi
lea ecx, [rbx + rax + 3]
movsxd r8, ecx
lea rcx, [rsp + 0x70]
call fcn.1400103b4
cmp eax, r13d
mov ebx, eax
jl 0x140012c96
mov rdi, rsi
jmp 0x140012aff
mov rcx, rdx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea rcx, [rsp + 0x70]
add eax, 3
movsxd rdx, eax
call fcn.140010304
cmp eax, r13d
mov ebx, eax
jl 0x140012c96
mov rcx, qword [rsp + 0x70]
or r9, 0xffffffffffffffff
mov r8, rsi
lea edx, [r9 + 5]
call fcn.140014938
lea rdi, [rsi + 6]
mov rax, qword [rsp + 0x70]
mov edx, 0x5c
cmp dx, word [rax]
jne 0x140012b14
cmp dx, word [rax + 2]
je 0x140012b5d
mov ecx, 0x61
cmp cx, word [rax]
ja 0x140012b28
mov ecx, 0x7a
cmp cx, word [rax]
jae 0x140012b44
mov ecx, 0x41
cmp cx, word [rax]
ja 0x140012c8f
mov ecx, 0x5a
cmp cx, word [rax]
jb 0x140012c8f
mov ecx, 0x3a
cmp cx, word [rax + 2]
jne 0x140012c8f
cmp dx, word [rax + 4]
jne 0x140012c8f
cmp r12, r13
je 0x140012b79
mov dword [rsp + 0x20], 0x18
mov qword [rsp + 0x28], r12
mov dword [rsp + 0x30], r13d
lea r14, [rsp + 0x20]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_lstrlenW]
xor edx, edx
movsxd rcx, eax
mov rax, qword [rsp + 0x70]
lea rbp, [rax + rcx*2]
movzx ecx, word [rdi]
cmp cx, r13w
je 0x140012c9d
mov r13d, dword [rsp + 0x90]
lea r8d, [rdx + 0x5c]
cmp r8w, cx
jne 0x140012bb8
cmp rdi, rsi
je 0x140012c7d
mov word [rbp], cx
cmp r8w, cx
jne 0x140012c74
mov word [rbp + 2], dx
mov rcx, qword [rsp + 0x70]
mov rdx, r14
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
xor ecx, ecx
cmp eax, ecx
jne 0x140012c39
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor ecx, ecx
cmp eax, 0xb7
jne 0x140012c27
cmp r12, rcx
je 0x140012c23
mov rcx, qword [rsp + 0x70]
mov r8, r12
mov edx, r15d
call qword [sym.imp.ADVAPI32.dll_SetFileSecurityW]
xor ecx, ecx
cmp eax, ecx
jne 0x140012c23
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor ecx, ecx
movzx ebx, ax
or ebx, 0x80070000
cmp eax, ecx
cmovle ebx, eax
cmp ebx, ecx
jl 0x140012c96
mov ebx, ecx
jmp 0x140012c39
movzx ebx, ax
or ebx, 0x80070000
cmp eax, ecx
cmovle ebx, eax
cmp ebx, ecx
jl 0x140012c96
cmp r13d, ecx
je 0x140012c6c
mov rcx, qword [rsp + 0x70]
mov edx, r13d
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
xor edx, edx
cmp eax, edx
jne 0x140012c6e
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor ecx, ecx
movzx ebx, ax
or ebx, 0x80070000
cmp eax, ecx
cmovle ebx, eax
cmp ebx, ecx
jl 0x140012c96
xor edx, edx
mov r8d, 0x5c
mov rax, qword [rsp + 0x70]
add rbp, 2
add rdi, 2
mov cx, word [rdi]
cmp cx, dx
jne 0x140012ba9
jmp 0x140012c9d
mov ebx, 0x80070057
jmp 0x140012c9b
mov rax, qword [rsp + 0x70]
xor edx, edx
cmp rax, rdx
je 0x140012caa
mov rcx, rax
call fcn.140010460
lea r11, [rsp + 0x40]
mov eax, ebx
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret