Function at 0x1800230d0
Capabilities:
Create directory

Disassembly:
push rsi
sub rsp, 0x50
mov rsi, rcx
call fcn.1800190b0
cmp eax, 0xffffffff
je 0x1800230ef
test al, 0x10
je 0x1800230ef
mov al, 1
add rsp, 0x50
pop rsi
ret
mov rcx, rsi
call fcn.180021c60
test al, al
je 0x180023103
xor al, al
add rsp, 0x50
pop rsi
ret
mov qword [rsp + 0x60], rbx
mov rcx, rsi
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r15
call fcn.180021f20
xor edi, edi
mov ebp, eax
cmp word [rsi], di
je 0x18002313b
inc edi
cmp word [rsi + rdi*2], 0
jne 0x180023132
lea ebx, [rdi + 1]
mov eax, 2
mul rbx
mov r15, 0xffffffffffffffff
cmovo rax, r15
mov rcx, rax
call fcn.180072d68
lea r8, [rbx + rbx]
mov rdx, rsi
mov rcx, rax
mov r14, rax
mov r13d, edi
call fcn.18008b7d0
test edi, edi
je 0x1800231ca
lea rax, [rdi - 1]
mov ecx, edi
movzx ecx, word [r14 + rax*2]
lea rax, [r14 + rax*2]
cmp cx, 0x5c
je 0x1800231a0
cmp cx, 0x2f
je 0x1800231a0
cmp rax, r14
je 0x1800231ca
movzx ecx, word [rax - 2]
sub rax, 2
cmp cx, 0x5c
jne 0x180023187
sub rax, r14
sar rax, 1
test eax, eax
js 0x1800231ca
lea ecx, [rdi - 1]
cmp eax, ecx
jne 0x1800231ca
cmp edi, 1
jne 0x1800231bf
movzx ebx, dil
jmp 0x180023403
xor esi, esi
mov edi, ecx
mov word [r14 + rcx*2], si
jmp 0x1800231cc
xor esi, esi
lea ebx, [rdi + 1]
mov qword [rsp + 0x48], r12
mov eax, 2
mul rbx
cmovo rax, r15
mov rcx, rax
call fcn.180072d68
lea r8, [rbx + rbx]
mov rdx, r14
mov rcx, rax
mov r12, rax
mov r15d, edi
call fcn.18008b7d0
mov rcx, r14
call fcn.180022ef0
test al, al
jne 0x1800233f4
nop dword [rax]
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x180023453
test edi, edi
je 0x180023453
mov eax, edi
lea rbx, [rax - 1]
movzx eax, word [r14 + rbx*2]
lea rbx, [r14 + rbx*2]
cmp ax, 0x5c
je 0x18002325d
nop
cmp ax, 0x2f
je 0x18002325d
cmp rbx, r14
je 0x180023453
movzx eax, word [rbx - 2]
sub rbx, 2
cmp ax, 0x5c
jne 0x180023240
sub rbx, r14
sar rbx, 1
cmp ebx, 1
jl 0x180023453
jne 0x180023286
movzx eax, word [r14]
cmp ax, 0x5c
je 0x180023453
cmp ax, 0x2f
je 0x180023453
lea eax, [rbx + 1]
cmp ebp, eax
jae 0x180023453
cmp ebx, edi
jae 0x18002329e
mov eax, ebx
mov edi, ebx
mov word [r14 + rax*2], si
mov rcx, r14
call fcn.180022ef0
test al, al
je 0x180023210
cmp ebx, r15d
jge 0x1800233f4
or rbp, 0xffffffffffffffff
nop dword [rax + rax]
lea eax, [rbx + 1]
lea rdx, [r12 + rax*2]
movzx eax, word [r12 + rax*2]
mov rcx, rdx
test ax, ax
je 0x1800232f5
cmp ax, 0x5c
je 0x180023432
cmp ax, 0x2f
je 0x180023432
movzx eax, word [rcx + 2]
add rcx, 2
test ax, ax
jne 0x1800232d4
mov ebx, r15d
cmp ebx, r13d
jbe 0x180023325
lea ecx, [rbx + 1]
mov eax, 2
mul rcx
cmovo rax, rbp
mov rcx, rax
call fcn.180072d68
mov rcx, r14
mov rdi, rax
call fcn.18007294c
mov r14, rdi
mov r13d, ebx
test ebx, ebx
je 0x18002333a
mov r8d, ebx
mov rdx, r12
add r8, r8
mov rcx, r14
call fcn.18008b7d0
mov eax, ebx
mov rcx, r14
mov word [r14 + rax*2], si
call fcn.180022270
mov edi, eax
cmp eax, 1
je 0x180023374
xor edx, edx
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x1800233eb
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x180023453
test edi, edi
je 0x180023453
mov ecx, 8
call fcn.180072d68
lea rdx, [rsp + 0x20]
mov qword [rsp + 0x20], rax
mov rcx, r14
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x2c], 3
mov word [rax], si
call fcn.180022380
test al, al
je 0x180023449
cmp dword [rsp + 0x28], 0
jne 0x1800233cc
cmp edi, 1
jne 0x180023449
mov rdx, r14
lea rcx, [rsp + 0x20]
call fcn.180018780
mov rcx, qword [rsp + 0x20]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov rcx, qword [rsp + 0x20]
mov edi, eax
call fcn.18007294c
test edi, edi
je 0x180023453
xor esi, esi
cmp ebx, r15d
jl 0x1800232c0
mov bl, 1
mov rcx, r12
call fcn.18007294c
mov r12, qword [rsp + 0x48]
mov rcx, r14
call fcn.18007294c
mov r15, qword [rsp + 0x30]
movzx eax, bl
mov rbx, qword [rsp + 0x60]
mov r14, qword [rsp + 0x38]
mov r13, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x68]
add rsp, 0x50
pop rsi
ret
sub rcx, rdx
sar rcx, 1
test ecx, ecx
js 0x1800232f5
inc ebx
add ebx, ecx
jmp 0x1800232f8
mov rcx, qword [rsp + 0x20]
call fcn.18007294c
xor bl, bl
jmp 0x1800233f6