Function at 0x140088d94
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 0x140088f00
test r8b, r8b
je 0x140088ee9
test r9, r9
jne 0x140088e1f
lea r8, str.wszUserName
mov edx, 0x80
lea rcx, str.base_stor_blbutil_fileutils.cpp
call fcn.14008410c
mov rcx, qword [rbp + 0x40]
lea rdx, [rbp - 0x20]
call fcn.140084780
mov r13, qword [rbp - 0x20]
mov ebx, eax
test eax, eax
js 0x140088f86
lea r8, [rbp - 0x40]
mov rdx, r13
mov rcx, rdi
call fcn.1400915cc
mov ebx, eax
test eax, eax
js 0x140088f86
mov rcx, rdi
cmp byte [rbp - 0x40], sil
jne 0x140088ea0
lea r8, [rbp - 0x30]
lea rdx, [rbp - 0x28]
call fcn.1400921b0
mov r15, qword [rbp - 0x28]
xor edi, edi
mov ebx, eax
test eax, eax
js 0x140088e97
xor r8d, r8d
lea rdx, [rbp - 0x38]
mov rcx, r15
call fcn.140084ef8
mov r14, qword [rbp - 0x30]
mov ebx, eax
test eax, eax
jns 0x140088eb4
mov rsi, qword [rbp - 0x38]
jmp 0x140088f30
mov r14, qword [rbp - 0x30]
jmp 0x140088f30
xor r8d, r8d
lea rdx, [rbp - 0x38]
call fcn.140084ef8
xor edi, edi
mov ebx, eax
test eax, eax
js 0x140088ee0
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.1400910f4
mov ebx, eax
test eax, eax
js 0x140088f30
mov al, byte [rbp + 0x48]
jmp 0x140088f02
mov rsi, qword [rbp - 0x38]
jmp 0x140088f6c
lea rcx, [rbp - 0x18]
call fcn.140091088
xor edi, edi
mov ebx, eax
test eax, eax
js 0x140088fbe
jmp 0x140088edb
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 0x140088f30
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
test r15, r15
je 0x140088f4e
mov rcx, r12
inc rcx
cmp word [r15 + rcx*2], di
jne 0x140088f38
add rcx, rcx
xor eax, eax
mov rdi, r15
rep stosb byte [rdi], al
xor edi, edi
test r14, r14
je 0x140088f6c
mov rcx, r12
inc rcx
cmp word [r14 + rcx*2], di
jne 0x140088f56
add rcx, rcx
xor eax, eax
mov rdi, r14
rep stosb byte [rdi], al
xor edi, edi
test rsi, rsi
je 0x140088f86
inc r12
cmp word [rsi + r12*2], di
jne 0x140088f71
lea rcx, [r12 + r12]
mov rdi, rsi
xor eax, eax
rep stosb byte [rdi], al
test r13, r13
je 0x140088f94
mov rcx, r13
call qword [sym.imp.ole32.dll_CoTaskMemFree]
test r15, r15
je 0x140088fa2
mov rcx, r15
call qword [sym.imp.ole32.dll_CoTaskMemFree]
test r14, r14
je 0x140088fb0
mov rcx, r14
call qword [sym.imp.ole32.dll_CoTaskMemFree]
test rsi, rsi
je 0x140088fbe
mov rcx, rsi
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov rcx, qword [rbp - 0x10]
test rcx, rcx
je 0x140088fcd
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