Function at 0x140088518
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 0x140088684
test r8b, r8b
je 0x14008866d
test r9, r9
jne 0x1400885a3
lea r8, str.wszUserName
mov edx, 0x80
lea rcx, str.base_stor_blbutil_fileutils.cpp
call fcn.14008388c
mov rcx, qword [rbp + 0x40]
lea rdx, [rbp - 0x20]
call fcn.140083f14
mov r13, qword [rbp - 0x20]
mov ebx, eax
test eax, eax
js 0x14008870a
lea r8, [rbp - 0x40]
mov rdx, r13
mov rcx, rdi
call fcn.140090a44
mov ebx, eax
test eax, eax
js 0x14008870a
mov rcx, rdi
cmp byte [rbp - 0x40], sil
jne 0x140088624
lea r8, [rbp - 0x30]
lea rdx, [rbp - 0x28]
call fcn.140091624
mov r15, qword [rbp - 0x28]
xor edi, edi
mov ebx, eax
test eax, eax
js 0x14008861b
xor r8d, r8d
lea rdx, [rbp - 0x38]
mov rcx, r15
call fcn.14008468c
mov r14, qword [rbp - 0x30]
mov ebx, eax
test eax, eax
jns 0x140088638
mov rsi, qword [rbp - 0x38]
jmp 0x1400886b4
mov r14, qword [rbp - 0x30]
jmp 0x1400886b4
xor r8d, r8d
lea rdx, [rbp - 0x38]
call fcn.14008468c
xor edi, edi
mov ebx, eax
test eax, eax
js 0x140088664
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.14009056c
mov ebx, eax
test eax, eax
js 0x1400886b4
mov al, byte [rbp + 0x48]
jmp 0x140088686
mov rsi, qword [rbp - 0x38]
jmp 0x1400886f0
lea rcx, [rbp - 0x18]
call fcn.140090500
xor edi, edi
mov ebx, eax
test eax, eax
js 0x140088742
jmp 0x14008865f
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 0x1400886b4
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
test r15, r15
je 0x1400886d2
mov rcx, r12
inc rcx
cmp word [r15 + rcx*2], di
jne 0x1400886bc
add rcx, rcx
xor eax, eax
mov rdi, r15
rep stosb byte [rdi], al
xor edi, edi
test r14, r14
je 0x1400886f0
mov rcx, r12
inc rcx
cmp word [r14 + rcx*2], di
jne 0x1400886da
add rcx, rcx
xor eax, eax
mov rdi, r14
rep stosb byte [rdi], al
xor edi, edi
test rsi, rsi
je 0x14008870a
inc r12
cmp word [rsi + r12*2], di
jne 0x1400886f5
lea rcx, [r12 + r12]
mov rdi, rsi
xor eax, eax
rep stosb byte [rdi], al
test r13, r13
je 0x140088718
mov rcx, r13
call qword [sym.imp.ole32.dll_CoTaskMemFree]
test r15, r15
je 0x140088726
mov rcx, r15
call qword [sym.imp.ole32.dll_CoTaskMemFree]
test r14, r14
je 0x140088734
mov rcx, r14
call qword [sym.imp.ole32.dll_CoTaskMemFree]
test rsi, rsi
je 0x140088742
mov rcx, rsi
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov rcx, qword [rbp - 0x10]
test rcx, rcx
je 0x140088751
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