Function at 0x140086ba8
Capabilities:
Create directory

Disassembly:
mov qword [rsp + 0x18], rbx
mov byte [rsp + 0x10], dl
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
xor ecx, ecx
mov byte [rbp - 0x40], 1
mov al, dl
mov qword [rbp - 0x18], rcx
xor edx, edx
mov qword [rbp - 0x10], rcx
or r12, 0xffffffffffffffff
mov qword [rbp - 0x28], rdx
mov qword [rbp - 0x30], rdx
mov rdi, r9
mov qword [rbp - 0x38], rdx
mov ebx, edx
mov qword [rbp - 0x20], rdx
mov r15d, edx
mov dword [rbp - 0x3c], edx
mov r14d, edx
mov qword [rbp - 8], rcx
mov esi, edx
mov r13d, edx
test al, al
je 0x140086d14
test r8b, r8b
je 0x140086cfd
test r9, r9
jne 0x140086c33
lea r8, str.wszUserName
mov edx, 0x80
lea rcx, str.base_stor_blbutil_fileutils.cpp
call fcn.140082070
mov rcx, qword [rbp + 0x40]
lea rdx, [rbp - 0x20]
call fcn.1400826d4
mov r13, qword [rbp - 0x20]
mov ebx, eax
test eax, eax
js 0x140086d9a
lea r8, [rbp - 0x40]
mov rdx, r13
mov rcx, rdi
call fcn.14008f238
mov ebx, eax
test eax, eax
js 0x140086d9a
mov rcx, rdi
cmp byte [rbp - 0x40], sil
jne 0x140086cb4
lea r8, [rbp - 0x30]
lea rdx, [rbp - 0x28]
call fcn.14008fdf0
mov r15, qword [rbp - 0x28]
xor edi, edi
mov ebx, eax
test eax, eax
js 0x140086cab
xor r8d, r8d
lea rdx, [rbp - 0x38]
mov rcx, r15
call fcn.140082e28
mov r14, qword [rbp - 0x30]
mov ebx, eax
test eax, eax
jns 0x140086cc8
mov rsi, qword [rbp - 0x38]
jmp 0x140086d44
mov r14, qword [rbp - 0x30]
jmp 0x140086d44
xor r8d, r8d
lea rdx, [rbp - 0x38]
call fcn.140082e28
xor edi, edi
mov ebx, eax
test eax, eax
js 0x140086cf4
mov rsi, qword [rbp - 0x38]
lea rax, [rbp - 0x3c]
mov r8b, byte [rbp - 0x40]
lea r9, [rbp - 0x18]
mov rcx, qword [rbp + 0x40]
mov rdx, rsi
mov qword [rsp + 0x20], rax
call fcn.14008ed68
mov ebx, eax
test eax, eax
js 0x140086d44
mov al, byte [rbp + 0x48]
jmp 0x140086d16
mov rsi, qword [rbp - 0x38]
jmp 0x140086d80
lea rcx, [rbp - 0x18]
call fcn.14008ed00
xor edi, edi
mov ebx, eax
test eax, eax
js 0x140086dd2
jmp 0x140086cef
xor edi, edi
mov rcx, qword [rbp + 0x40]
neg al
lea rax, [rbp - 0x18]
sbb rdx, rdx
and rdx, rax
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x140086d44
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
test r15, r15
je 0x140086d62
mov rcx, r12
inc rcx
cmp word [r15 + rcx*2], di
jne 0x140086d4c
add rcx, rcx
xor eax, eax
mov rdi, r15
rep stosb byte [rdi], al
xor edi, edi
test r14, r14
je 0x140086d80
mov rcx, r12
inc rcx
cmp word [r14 + rcx*2], di
jne 0x140086d6a
add rcx, rcx
xor eax, eax
mov rdi, r14
rep stosb byte [rdi], al
xor edi, edi
test rsi, rsi
je 0x140086d9a
inc r12
cmp word [rsi + r12*2], di
jne 0x140086d85
lea rcx, [r12 + r12]
mov rdi, rsi
xor eax, eax
rep stosb byte [rdi], al
test r13, r13
je 0x140086da8
mov rcx, r13
call qword [sym.imp.ole32.dll_CoTaskMemFree]
test r15, r15
je 0x140086db6
mov rcx, r15
call qword [sym.imp.ole32.dll_CoTaskMemFree]
test r14, r14
je 0x140086dc4
mov rcx, r14
call qword [sym.imp.ole32.dll_CoTaskMemFree]
test rsi, rsi
je 0x140086dd2
mov rcx, rsi
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov rcx, qword [rbp - 0x10]
test rcx, rcx
je 0x140086de1
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, ebx
mov rbx, qword [rsp + 0xc0]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret