Function at 0x140088a60
Capabilities:
Create directory

Disassembly:
push rbx
push rbp
push r14
sub rsp, 0x160
mov rax, qword [0x140193440]
xor rax, rsp
mov qword [rsp + 0x150], rax
xor r14d, r14d
mov rbp, rcx
mov ecx, dword [rcx + 0x14]
mov ebx, r14d
test ecx, ecx
jle 0x140088a9a
call fcn.14010deac
mov dword [rbp + 0x14], 0xffffffff
mov rax, qword [rbp + 0x20]
lea r9, [0x14015bc0c]
mov qword [rsp + 0x28], rax
lea rcx, [rsp + 0x40]
mov rax, qword [rbp + 0x18]
mov edx, 0x104
mov r8, 0xffffffffffffffff
mov qword [rsp + 0x20], rax
call fcn.140004fd0
mov rcx, qword [rbp + 0x20]
call fcn.1400e8c70
mov rdx, r14
mov qword [rbp + 0x20], r14
lea rcx, [rsp + 0x40]
mov rax, 0xffffffffffffffff
inc rax
cmp byte [rcx + rax], dl
jne 0x140088ae5
test rax, rax
je 0x140088b2e
movzx ecx, byte [rsp + rdx + 0x40]
cmp cl, 0x2f
jne 0x140088b03
mov byte [rsp + rdx + 0x40], 0x5c
mov cl, 0x5c
cmp cl, 0x5c
mov rax, rdx
lea rcx, [rsp + 0x40]
cmovne rax, rbx
inc rdx
mov rbx, rax
mov rax, 0xffffffffffffffff
nop
inc rax
cmp byte [rcx + rax], r14b
jne 0x140088b20
cmp rdx, rax
jb 0x140088af2
mov rax, qword [0x14019d4c8]
test rax, rax
je 0x140088b45
mov rdx, qword [rbp + 0x28]
lea rcx, [rsp + 0x40]
call rax
cmp rbx, 0x104
jae 0x140088df7
mov qword [rsp + 0x188], rsi
lea rsi, [rsp + 0x40]
add rsi, rbx
mov qword [rsp + 0x190], rdi
mov byte [rsi], r14b
cmp byte [rsp + 0x40], r14b
jne 0x140088baa
mov edx, 2
mov ecx, 1
call fcn.1400c4f6c
xor r8d, r8d
mov rdx, rax
xor ecx, ecx
mov rbx, rax
call qword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test rbx, rbx
je 0x140088c4d
jmp 0x140088c45
mov dword [rsp + 0x28], r14d
lea r8, [rsp + 0x40]
mov r9d, 0xffffffff
mov qword [rsp + 0x20], r14
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movsxd rdi, eax
cmp edi, 1
jg 0x140088beb
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
jmp 0x140088c4d
mov rcx, rdi
mov edx, 2
call fcn.1400c4f6c
mov rbx, rax
test rax, rax
je 0x140088bd4
mov dword [rsp + 0x28], edi
lea r8, [rsp + 0x40]
mov r9d, 0xffffffff
mov qword [rsp + 0x20], rax
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
cmp eax, edi
je 0x140088c2f
mov rcx, rbx
call fcn.1400e8c70
jmp 0x140088bd4
xor r8d, r8d
mov rdx, rbx
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov rcx, rbx
call fcn.1400e8c70
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov byte [rsi], 0x2f
mov rsi, qword [rsp + 0x188]
mov dword [rsp + 0x30], 0xffffffff
cmp byte [rsp + 0x40], r14b
jne 0x140088cb8
mov edx, 2
mov ecx, 1
call fcn.1400c4f6c
mov r9d, 0x30
mov dword [rsp + 0x20], 0x180
mov r8d, 0x8301
lea rcx, [rsp + 0x30]
mov rdx, rax
mov rbx, rax
call fcn.14010dce4
test rbx, rbx
je 0x140088d44
mov rcx, rbx
call fcn.1400e8c70
jmp 0x140088d44
mov dword [rsp + 0x28], r14d
lea r8, [rsp + 0x40]
mov r9d, 0xffffffff
mov qword [rsp + 0x20], r14
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movsxd rdi, eax
cmp edi, 1
jle 0x140088d24
mov rcx, rdi
mov edx, 2
call fcn.1400c4f6c
mov rbx, rax
test rax, rax
je 0x140088d24
mov dword [rsp + 0x28], edi
lea r8, [rsp + 0x40]
mov r9d, 0xffffffff
mov qword [rsp + 0x20], rax
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
cmp eax, edi
je 0x140088d80
mov rcx, rbx
call fcn.1400e8c70
mov r9d, 0x30
mov dword [rsp + 0x20], 0x180
mov r8d, 0x8301
lea rcx, [rsp + 0x30]
xor edx, edx
call fcn.14010dce4
mov eax, dword [rsp + 0x30]
mov rdi, qword [rsp + 0x190]
mov dword [rbp + 0x14], eax
test eax, eax
jns 0x140088df3
cmp qword [0x14019d4b8], r14
je 0x140088dab
call fcn.14010c7e8
lea rdx, [rsp + 0x40]
lea rcx, str._nError:_Could_not_create__s__errno:__d_
mov r8d, dword [rax]
call qword [0x14019d4b8]
jmp 0x140088dce
mov r9d, 0x30
mov dword [rsp + 0x20], 0x180
mov r8d, 0x8301
lea rcx, [rsp + 0x30]
mov rdx, rbx
call fcn.14010dce4
mov rcx, rbx
call fcn.1400e8c70
jmp 0x140088d44
call fcn.14010c7e8
lea rdx, [rsp + 0x40]
lea rcx, str._nError:_Could_not_create__s__errno:__d_
mov r8d, dword [rax]
call fcn.14002d780
mov ecx, 0xa
call fcn.14010cbf0
call fcn.14010c7e8
mov eax, dword [rax]
neg eax
mov rcx, qword [rsp + 0x150]
xor rcx, rsp
call fcn.1400b2a30
add rsp, 0x160
pop r14
pop rbp
pop rbx
ret
xor eax, eax
jmp 0x140088dd7
call fcn.1400b2b58
int3