Function at 0x1400149a0
Capabilities:
Create directory
Generate random numbers via winapi

Disassembly:
push rbx
sub rsp, 0x40
mov rbx, rcx
or rax, 0xffffffffffffffff
mov rcx, qword [rcx + 0x150]
inc rax
cmp word [rcx + rax*2], 0
jne 0x1400149b4
mov qword [rsp + 0x68], rsi
cmp rax, 6
jb 0x140014cfb
lea rsi, [rcx + rax*2]
mov r8d, 6
lea rcx, [rsi - 0xc]
lea rdx, str.XXXXXX
call fcn.140035dc0
test eax, eax
jne 0x140014cfb
lea r9d, [rax + 1]
mov dword [rsp + 0x20], 0xf0000000
xor r8d, r8d
lea rcx, [rsp + 0x58]
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
test eax, eax
jne 0x140014a37
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov dword [rbx + 0x14c], eax
call fcn.140018f20
movsxd rcx, eax
mov qword [rbx + 0x88], rcx
mov rsi, qword [rsp + 0x68]
add rsp, 0x40
pop rbx
ret
mov qword [rsp + 0x60], rbp
movabs rbp, 0x842108421084211
mov qword [rsp + 0x38], rdi
mov edi, 0x7fffffff
mov qword [rsp + 0x30], r14
lea r14, str.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
nop dword [rax]
mov rcx, qword [rsp + 0x58]
lea r8, [rsp + 0x50]
mov edx, 8
call qword [sym.imp.ADVAPI32.dll_CryptGenRandom]
test eax, eax
je 0x140014c8c
mov rcx, qword [rsp + 0x50]
mov rax, rbp
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
imul rax, rax, 0x3e
sub rcx, rax
movzx eax, word [r14 + rcx*2]
mov word [rsi - 0xc], ax
mov rax, rbp
mov rcx, qword [rsp + 0x50]
mul rcx
mov rax, rbp
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
mul rcx
mov qword [rsp + 0x50], rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
imul rax, rax, 0x3e
sub rcx, rax
movzx eax, word [r14 + rcx*2]
mov word [rsi - 0xa], ax
mov rax, rbp
mov rcx, qword [rsp + 0x50]
mul rcx
mov rax, rbp
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
mul rcx
mov qword [rsp + 0x50], rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
imul rax, rax, 0x3e
sub rcx, rax
movzx eax, word [r14 + rcx*2]
mov word [rsi - 8], ax
mov rax, rbp
mov rcx, qword [rsp + 0x50]
mul rcx
mov rax, rbp
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
mul rcx
mov qword [rsp + 0x50], rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
imul rax, rax, 0x3e
sub rcx, rax
movzx eax, word [r14 + rcx*2]
mov word [rsi - 6], ax
mov rax, rbp
mov rcx, qword [rsp + 0x50]
mul rcx
mov rax, rbp
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
mul rcx
mov rax, rcx
mov qword [rsp + 0x50], rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
imul rax, rax, 0x3e
sub rcx, rax
movzx eax, word [r14 + rcx*2]
mov word [rsi - 4], ax
mov rax, rbp
mov rcx, qword [rsp + 0x50]
mul rcx
mov rax, rbp
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
mul rcx
mov qword [rsp + 0x50], rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
imul rax, rax, 0x3e
sub rcx, rax
movzx eax, word [r14 + rcx*2]
mov word [rsi - 2], ax
mov rax, rbp
mov rcx, qword [rsp + 0x50]
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
mov qword [rsp + 0x50], rcx
mov rcx, qword [rbx + 0x150]
call fcn.140034270
test eax, eax
je 0x140014c53
call fcn.14002dfd0
cmp dword [rax], 0x11
jne 0x140014c39
add edi, 0xffffffff
jne 0x140014a60
jmp 0x140014ca9
mov qword [rbx + 0x88], 0xffffffffffffffff
call fcn.14002dfb0
mov ecx, dword [rax]
mov dword [rbx + 0x14c], ecx
jmp 0x140014c9a
mov rcx, qword [rbx + 0x98]
or rax, 0xffffffffffffffff
nop
inc rax
cmp byte [rcx + rax], 0
jne 0x140014c60
add rcx, 0xfffffffffffffffa
lea rdx, [rsi - 0xc]
add rcx, rax
mov r8d, 6
call fcn.140035d14
mov qword [rbx + 0x88], 0
jmp 0x140014ca9
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rbx + 0x14c], eax
mov ecx, eax
call fcn.140018f20
movsxd rcx, eax
mov qword [rbx + 0x88], rcx
mov rcx, qword [rsp + 0x58]
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov r14, qword [rsp + 0x30]
test edi, edi
mov rdi, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x60]
jne 0x140014d10
mov qword [rbx + 0x88], 0xffffffffffffffff
call fcn.14002dfb0
mov ecx, dword [rax]
mov dword [rbx + 0x14c], ecx
call fcn.140018f20
movsxd rcx, eax
mov qword [rbx + 0x88], rcx
mov rsi, qword [rsp + 0x68]
add rsp, 0x40
pop rbx
ret
mov qword [rbx + 0x88], 0xfffffffffffff019
mov dword [rbx + 0x14c], 0x57
mov rsi, qword [rsp + 0x68]
add rsp, 0x40
pop rbx
ret