Function at 0x18000cfb0
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0x90
mov rbx, rcx
xor r13d, r13d
mov dword [rbp - 0x39], r13d
lea r12d, [r13 + 8]
mov edx, dword [0x18053db74]
mov rax, qword gs:[0x58]
mov rsi, qword [rax + rdx*8]
mov eax, 0x10
mov eax, dword [rax + rsi]
cmp dword [0x18053e218], eax
jg 0x18000d3f4
mov r14d, 0x14
mov eax, dword [r14 + rsi]
mov ecx, 0x20
or r15d, 0xffffffff
test al, 1
jne 0x18000d06d
or eax, 1
mov dword [r14 + rsi], eax
mov edi, ecx
add rdi, rsi
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [rdi + 0x1384], r15d
mov dword [rdi + 4], eax
mov edx, 1
lea r8, [rdi + 8]
mov r9d, 0x270
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [r8], eax
inc rdx
lea r8, [r8 + 4]
cmp rdx, r9
jb 0x18000d04c
mov dword [rdi], r9d
mov eax, dword [r14 + rsi]
mov ecx, 0x13a8
test al, 2
jne 0x18000d091
or eax, 2
mov dword [r14 + rsi], eax
mov qword [rcx + rsi], r13
mov rax, qword [0x18053e230]
mov qword [rcx + rsi + 8], rax
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], r13
mov qword [rbx + 0x18], 0xf
mov byte [rbx], r13b
movups xmmword [rbp - 0x19], xmm0
mov qword [rbp - 9], r13
mov r14d, 7
mov qword [rbp - 1], r14
mov word [rbp - 0x19], r13w
mov dword [rbp - 0x39], 5
mov edx, 0x105
mov r9d, edx
lea rcx, [rbp - 0x19]
call fcn.18000ee0c
lea rcx, [rbp - 0x19]
cmp qword [rbp - 1], r14
cmova rcx, qword [rbp - 0x19]
call fcn.180016e08
mov qword [rbp + 0x6f], rax
mov ecx, eax
mov r9, qword [rbp - 9]
cmp rcx, r9
ja 0x18000d10e
mov qword [rbp - 9], rcx
lea rax, [rbp - 0x19]
cmp qword [rbp - 1], r14
cmova rax, qword [rbp - 0x19]
mov word [rax + rcx*2], r13w
jmp 0x18000d15b
mov rdx, rcx
sub rdx, r9
mov rax, qword [rbp - 1]
sub rax, r9
cmp rdx, rax
ja 0x18000d14f
mov qword [rbp - 9], rcx
lea r8, [rbp - 0x19]
cmp qword [rbp - 1], r14
cmova r8, qword [rbp - 0x19]
lea rdi, [r8 + r9*2]
test rdx, rdx
je 0x18000d144
movzx eax, r13w
mov rcx, rdx
rep stosw word [rdi], ax
lea rax, [r9 + rdx]
mov word [r8 + rax*2], r13w
jmp 0x18000d15b
mov r9, rdx
lea rcx, [rbp - 0x19]
call fcn.18000ee0c
mov ecx, dword [rbp + 0x73]
cmp ecx, r15d
jne 0x18000d172
mov ecx, 0x14
mov dword [rbp - 0x29], ecx
call fcn.180010160
jmp 0x18000d17a
mov dword [rbp - 0x29], ecx
call fcn.180010220
mov qword [rbp - 0x21], rax
movaps xmm0, xmmword [rbp - 0x29]
movdqa xmmword [rbp - 0x29], xmm0
mov dword [rbp - 0x39], 3
lea rdx, [rbp - 0x29]
test ecx, ecx
jne 0x18000d3ea
lea rax, [rbp - 0x19]
cmp qword [rbp - 1], r14
cmova rax, qword [rbp - 0x19]
mov qword [rbp - 0x29], rax
mov rax, qword [rbp - 9]
mov qword [rbp - 0x21], rax
movaps xmm0, xmmword [rbp - 0x29]
movdqa xmmword [rbp - 0x29], xmm0
lea rcx, [rbp + 7]
call fcn.1800104bc
nop
mov dword [rbp - 0x39], 0x19
mov rdx, qword [rbp - 1]
cmp rdx, r14
jbe 0x18000d20f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x19]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18000d20a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18000d20a
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18001743c
mov qword [rbp - 9], r13
mov qword [rbp - 1], r14
mov word [rbp - 0x19], r13w
mov rdi, qword [rbp + 0x17]
lea rdx, [rdi + 0xa]
mov rax, qword [rbx + 0x18]
mov rcx, rax
cmp rax, rdx
jae 0x18000d24e
mov rdi, qword [rbx + 0x10]
sub rdx, rdi
mov rcx, rbx
call fcn.18000cb24
mov qword [rbx + 0x10], rdi
mov rax, qword [rbx + 0x18]
mov rcx, rax
mov rdi, qword [rbp + 0x17]
lea rdx, [rbp + 7]
cmp rbx, rdx
je 0x18000d299
lea r9, [rbp + 7]
cmp qword [rbp + 0x1f], 0xf
cmova r9, qword [rbp + 7]
cmp rdi, rax
ja 0x18000d28e
mov r14, rbx
cmp rcx, 0xf
jbe 0x18000d276
mov r14, qword [rbx]
mov qword [rbx + 0x10], rdi
mov r8, rdi
mov rdx, r9
mov rcx, r14
call sub.VCRUNTIME140.dll_memmove
mov byte [r14 + rdi], r13b
jmp 0x18000d299
mov rdx, rdi
mov rcx, rbx
call fcn.18000cdec
mov r14d, 0x13a8
add r14, rsi
mov r15d, 0x20
add r15, rsi
dec r12
mov rdx, qword [r14 + 8]
mov rsi, qword [r14]
mov qword [rbp + 0x6f], r15
sub rdx, rsi
lea rcx, [rbp + 0x6f]
cmp rdx, 0xffffffffffffffff
jne 0x18000d2e0
call fcn.18000ebfc
mov rdi, rax
lea rcx, [rbp + 0x6f]
call fcn.18000ebfc
shl rdi, 0x20
or rax, rdi
jmp 0x18000d2e8
inc rdx
call fcn.18000eaa8
lea rcx, [rax + rsi]
lea rax, [0x18053e220]
cmp qword [0x18053e238], 0xf
cmova rax, qword [0x18053e220]
mov r9b, byte [rcx + rax]
mov rcx, qword [rbx + 0x10]
cmp rcx, qword [rbx + 0x18]
jae 0x18000d331
lea rax, [rcx + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp qword [rbx + 0x18], 0xf
jbe 0x18000d326
mov rax, qword [rbx]
mov byte [rax + rcx], r9b
mov byte [rax + rcx + 1], r13b
jmp 0x18000d339
mov rcx, rbx
call fcn.18000f358
test r12, r12
jne 0x18000d2ab
mov rcx, qword [rbx + 0x10]
mov rax, qword [rbx + 0x18]
sub rax, rcx
lea edx, [r12 + 2]
cmp rax, rdx
jb 0x18000d379
lea rax, [rcx + 2]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp qword [rbx + 0x18], 0xf
jbe 0x18000d36c
mov rax, qword [rbx]
mov word [rax + rcx], 0x612e
mov byte [rax + rcx + 2], r13b
jmp 0x18000d38e
mov qword [rsp + 0x20], rdx
lea r9, [0x18003b518]
mov rcx, rbx
call fcn.18000f170
nop
mov rdx, qword [rbp + 0x1f]
cmp rdx, 0xf
jbe 0x18000d3cc
inc rdx
mov rcx, qword [rbp + 7]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18000d3c7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18000d3c7
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18001743c
mov rax, rbx
mov rbx, qword [rsp + 0xe0]
add rsp, 0x90
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea r8, [rbp - 0x19]
call fcn.18000fd10
nop
lea rcx, [0x18053e218]
call fcn.180017054
cmp dword [0x18053e218], 0xffffffff
jne 0x18000d00a
mov ecx, 0x40
call fcn.18001744c
mov rdx, rax
mov qword [0x18053e220], rax
mov qword [0x18053e230], 0x3e
mov qword [0x18053e238], 0x3f
movups xmm0, xmmword [str.0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]
movups xmmword [rax], xmm0
movups xmm1, xmmword [0x18003b4e8]
movups xmmword [rax + 0x10], xmm1
movups xmm0, xmmword [0x18003b4f8]
movups xmmword [rax + 0x20], xmm0
movsd xmm0, qword [0x18003b508]
movsd qword [rax + 0x30], xmm0
mov eax, dword [0x18003b510]
mov dword [rdx + 0x38], eax
movzx eax, word [0x18003b514]
mov word [rdx + 0x3c], ax
mov byte [rdx + 0x3e], r13b
lea rcx, [0x18001868c]
call fcn.180017424
nop
lea rcx, [0x18053e218]
call fcn.180016fe8
jmp 0x18000d00a