Function at 0x14003cc30
Capabilities:
Create directory

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x50
mov qword [rbp - 8], 0xfffffffffffffffe
mov qword [rsp + 0x90], rbx
mov rbx, rdx
mov rsi, rcx
call fcn.1400694ec
mov rcx, rax
xor r15d, r15d
mov r8d, r15d
test rax, rax
setne r8b
test r8d, r8d
jne 0x14003cc7e
mov ecx, 0x80004005
call fcn.140011b60
int3
mov rax, qword [rax]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
lea rdi, [rax + 0x18]
mov qword [rbp - 0x30], rdi
or r12, 0xffffffffffffffff
test rbx, rbx
je 0x14003cccd
test rbx, 0xffffffffffff0000
jne 0x14003ccbe
movzx ebx, bx
mov ecx, ebx
call fcn.140068f14
test rax, rax
je 0x14003cce3
mov r8d, ebx
mov rdx, rax
lea rcx, [rbp - 0x30]
call fcn.140011830
jmp 0x14003ccdf
mov rax, r12
inc rax
cmp word [rbx + rax*2], 0
jne 0x14003ccc1
jmp 0x14003ccd0
mov eax, r15d
mov r8d, eax
mov rdx, rbx
lea rcx, [rbp - 0x30]
call fcn.140011b80
mov rdi, qword [rbp - 0x30]
movzx eax, word [rdi]
cmp ax, word [0x140296e0c]
jne 0x14003ccf4
mov eax, r15d
jmp 0x14003ccf9
sbb eax, eax
or eax, 1
test eax, eax
jne 0x14003cd78
lea rdx, [rbp - 0x20]
mov rcx, rsi
call fcn.14003c070
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x14003cd5c
cmp dword [rdi + 0x10], 0
jl 0x14003cd4e
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14003cd4e
call fcn.1400116e0
mov rbx, rax
lock add dword [rdi + 0x10], 0xffffffff
jg 0x14003cd44
mov rcx, qword [rdi]
mov r8, qword [rcx]
mov rdx, rdi
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [rbx + 0x18]
mov qword [rbp - 0x30], rax
jmp 0x14003cd5c
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp - 0x30]
call fcn.140011b80
nop
mov rdx, qword [rbp - 0x20]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003cd74
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdi, qword [rbp - 0x30]
call fcn.1400694ec
mov rdx, rax
mov ecx, r15d
test rax, rax
setne cl
test ecx, ecx
jne 0x14003cd98
mov ecx, 0x80004005
call fcn.140011b60
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
lea rbx, [rax + 0x18]
mov qword [rbp - 0x28], rbx
lea rdx, [0x140296e0c]
test rdx, 0xffffffffffff0000
jne 0x14003cdd9
movzx esi, dx
mov ecx, esi
call fcn.140068f14
test rax, rax
je 0x14003cde9
mov r8d, esi
mov rdx, rax
lea rcx, [rbp - 0x28]
call fcn.140011830
jmp 0x14003cde5
xor r8d, r8d
lea rcx, [rbp - 0x28]
call fcn.140011b80
mov rbx, qword [rbp - 0x28]
mov r14d, r15d
mov dword [rbp + 0x50], r15d
mov esi, 1
lea rax, [rdi - 0x10]
mov qword [rbp - 0x10], rax
nop dword [rax]
test esi, esi
js 0x14003ce2b
cmp esi, dword [rax]
jg 0x14003ce2b
movsxd rax, esi
lea rcx, [rdi + rax*2]
lea rdx, [0x140298b44]
call fcn.1401f4218
mov rsi, rax
test rax, rax
je 0x14003ce2b
sub rsi, rdi
sar rsi, 1
jmp 0x14003ce2e
mov esi, r12d
inc esi
mov r8d, esi
lea rdx, [rbp - 0x18]
lea rcx, [rbp - 0x30]
call fcn.14001e4b0
nop
mov r13, qword [rax]
lea rcx, [r13 - 0x18]
lea rdi, [rbx - 0x18]
cmp rcx, rdi
je 0x14003cf71
cmp dword [rdi + 0x10], 0
jl 0x14003ce8c
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14003ce8c
call fcn.1400116e0
mov rbx, rax
lock add dword [rdi + 0x10], 0xffffffff
jg 0x14003ce7f
mov rcx, qword [rdi]
mov r8, qword [rcx]
mov rdx, rdi
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [rbx + 0x18]
mov qword [rbp - 0x28], rax
jmp 0x14003cf71
movsxd r14, dword [r13 - 0x10]
test r14d, r14d
jne 0x14003cee8
mov r14, qword [rdi]
cmp dword [rdi + 8], 0
je 0x14003cf6d
cmp dword [rdi + 0x10], 0
jge 0x14003cebf
cmp dword [rbx - 0xc], 0
jl 0x14003cfe8
mov dword [rbx - 0x10], r15d
mov word [rbx], r15w
jmp 0x14003cf6d
lock add dword [rdi + 0x10], 0xffffffff
jg 0x14003ced2
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [r14]
mov rcx, r14
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rbp - 0x28], rax
jmp 0x14003cf6d
test r13, r13
je 0x14003d009
mov eax, dword [rbx - 0x10]
mov dword [rbp + 0x58], eax
mov r15, r13
sub r15, rbx
sar r15, 1
test r14d, r14d
js 0x14003cffe
mov ecx, 1
sub ecx, dword [rdi + 0x10]
mov eax, dword [rdi + 0xc]
sub eax, r14d
or eax, ecx
jge 0x14003cf2b
mov edx, r14d
lea rcx, [rbp - 0x28]
call fcn.140011b00
mov rbx, qword [rbp - 0x28]
mov eax, dword [rbp + 0x58]
lea rdi, [r14 + r14]
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
mov r9, rdi
add rdx, rdx
cmp r15, rax
ja 0x14003cf4f
lea r8, [rbx + r15*2]
call fcn.1401f366c
jmp 0x14003cf57
mov r8, r13
call fcn.1401f3588
cmp r14d, dword [rbx - 0xc]
jg 0x14003cff3
mov dword [rbx - 0x10], r14d
xor r15d, r15d
mov word [rdi + rbx], r15w
mov r14d, dword [rbp + 0x50]
mov rdx, qword [rbp - 0x18]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003cf89
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rbx, qword [rbp - 0x28]
movzx eax, word [rbx]
cmp ax, word [0x140296e0c]
jne 0x14003cf9e
mov eax, r15d
jmp 0x14003cfa3
sbb eax, eax
or eax, 1
test eax, eax
je 0x14003cfd7
xor edx, edx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x14003cfd0
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x14003cfd7
cmp eax, 3
je 0x14003cfd7
mov r14d, eax
mov dword [rbp + 0x50], eax
jmp 0x14003cfd7
mov r14d, r15d
mov dword [rbp + 0x50], r15d
test esi, esi
jle 0x14003d014
mov rdi, qword [rbp - 0x30]
mov rax, qword [rbp - 0x10]
jmp 0x14003ce00
mov ecx, 0x80070057
call fcn.140011b60
int3
mov ecx, 0x80070057
call fcn.140011b60
int3
mov ecx, 0x80070057
call fcn.140011b60
int3
mov ecx, 0x80070057
call fcn.140011b60
nop
lea rdx, [rbx - 0x18]
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003d029
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x30]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14003d042
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov eax, r14d
mov rbx, qword [rsp + 0x90]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret