Function at 0x14004f040
Capabilities:
Create directory

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x80
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
mov rax, qword [0x14012a4f8]
xor rax, rsp
mov qword [rsp + 0x78], rax
mov rbp, rcx
mov rax, qword [rcx + 0x18]
test rax, rax
je 0x14004f34c
cmp rax, 3
jb 0x14004f34c
cmp rax, 1
jae 0x14004f09c
call fcn.1400aedac
cmp qword [rbp + 0x20], 8
jb 0x14004f0a9
mov rax, qword [rbp + 8]
jmp 0x14004f0ad
lea rax, [rbp + 8]
cmp word [rax + 2], 0x3a
jne 0x14004f34c
mov qword [rsp + 0x48], 7
xor r13d, r13d
mov qword [rsp + 0x40], r13
mov word [rsp + 0x30], r13w
or rbx, 0xffffffffffffffff
mov r9, rbx
xor r8d, r8d
mov rdx, rbp
lea rcx, [rsp + 0x28]
call fcn.140025740
nop
mov rcx, qword [rsp + 0x40]
lea rdi, [rcx - 1]
cmp rdi, rcx
jbe 0x14004f0ff
call fcn.1400aedac
mov rcx, qword [rsp + 0x40]
lea rax, [rsp + 0x30]
cmp qword [rsp + 0x48], 8
cmovae rax, qword [rsp + 0x30]
movzx edx, word [rax + rdi*2]
mov r14d, 0x5c
cmp dx, r14w
je 0x14004f1d3
cmp dx, 0x2f
je 0x14004f1d3
sub rbx, rcx
cmp rbx, 1
ja 0x14004f141
call fcn.140097b1c
mov rcx, qword [rsp + 0x40]
lea rbx, [rcx + 1]
movabs rax, 0x7ffffffffffffffe
cmp rbx, rax
jbe 0x14004f15e
call fcn.140097b1c
mov rcx, qword [rsp + 0x40]
cmp qword [rsp + 0x48], rbx
jae 0x14004f17c
mov r8, rcx
mov rdx, rbx
lea rcx, [rsp + 0x28]
call fcn.140025f00
mov rcx, qword [rsp + 0x40]
jmp 0x14004f19d
test rbx, rbx
jne 0x14004f19d
mov qword [rsp + 0x40], r13
lea rax, [rsp + 0x30]
cmp qword [rsp + 0x48], 8
cmovae rax, qword [rsp + 0x30]
mov word [rax], r13w
jmp 0x14004f1d3
test rbx, rbx
je 0x14004f1d3
lea rax, [rsp + 0x30]
cmp qword [rsp + 0x48], 8
cmovae rax, qword [rsp + 0x30]
mov word [rax + rcx*2], r14w
mov qword [rsp + 0x40], rbx
lea rax, [rsp + 0x30]
cmp qword [rsp + 0x48], 8
cmovae rax, qword [rsp + 0x30]
mov word [rax + rbx*2], r13w
mov edx, r14d
xor r8d, r8d
lea rcx, [rsp + 0x28]
call fcn.140037610
mov rbx, rax
mov edx, 0x2f
xor r8d, r8d
lea rcx, [rsp + 0x28]
call fcn.140037610
mov rsi, rax
mov r15d, 0xffffffff
cmp rbx, 0xffffffffffffffff
cmove rbx, r15
cmp rax, 0xffffffffffffffff
cmove rsi, r15
cmp rbx, rsi
cmovb rsi, rbx
cmp rsi, r15
jne 0x14004f236
cmp qword [rsp + 0x48], 8
jb 0x14004f22f
mov rcx, qword [rsp + 0x30]
call fcn.1400ad0b8
xor eax, eax
jmp 0x14004f34e
mov r12d, 1
cmp rsi, 0xffffffffffffffff
je 0x14004f335
nop word [rax + rax]
mov r9, rsi
xor r8d, r8d
lea rdx, [rsp + 0x50]
mov rcx, rbp
call fcn.140029e30
lea rcx, [rsp + 0x58]
cmp qword [rsp + 0x70], 8
cmovae rcx, qword [rsp + 0x58]
call qword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
jne 0x14004f2a8
lea rcx, [rsp + 0x58]
cmp qword [rsp + 0x70], 8
cmovae rcx, qword [rsp + 0x58]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x14004f2a8
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x14004f30b
mov edx, r14d
lea r8, [rsi + 1]
lea rcx, [rsp + 0x28]
call fcn.140037610
mov rdi, rax
mov edx, 0x2f
lea r8, [rsi + 1]
lea rcx, [rsp + 0x28]
call fcn.140037610
mov rsi, rax
cmp rdi, 0xffffffffffffffff
cmove rdi, r15
cmp rax, 0xffffffffffffffff
cmove rsi, r15
cmp rdi, rsi
cmovb rsi, rdi
cmp rsi, r15
je 0x14004f322
cmp qword [rsp + 0x70], 8
jb 0x14004f300
mov rcx, qword [rsp + 0x58]
call fcn.1400ad0b8
cmp rsi, 0xffffffffffffffff
je 0x14004f335
jmp 0x14004f250
mov r12d, r13d
cmp qword [rsp + 0x70], 8
jb 0x14004f335
mov rcx, qword [rsp + 0x58]
call fcn.1400ad0b8
jmp 0x14004f335
cmp qword [rsp + 0x70], 8
jb 0x14004f335
mov rcx, qword [rsp + 0x58]
call fcn.1400ad0b8
nop
cmp qword [rsp + 0x48], 8
jb 0x14004f347
mov rcx, qword [rsp + 0x30]
call fcn.1400ad0b8
mov eax, r12d
jmp 0x14004f34e
xor eax, eax
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.1400ad2c0
lea r11, [rsp + 0x80]
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