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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov rsi, rcx
mov qword [rsp + 0x28], rcx
xor r13d, r13d
mov dword [rsp + 0x20], r13d
mov ebx, 4
mov rax, qword gs:[0x58]
add rbx, qword [rax]
mov eax, dword [rbx]
cmp dword [0x1400c7450], eax
jle 0x140006058
lea rcx, [0x1400c7450]
call fcn.14006df58
cmp dword [0x1400c7450], 0xffffffff
jne 0x140006058
lea rcx, [0x1400c7450]
call fcn.14006deec
lea r15, [0x1400c7460]
mov eax, dword [rbx]
cmp dword [0x1400c7448], eax
jle 0x1400060da
lea rcx, [0x1400c7448]
call fcn.14006df58
cmp dword [0x1400c7448], 0xffffffff
jne 0x1400060da
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov r8d, eax
mov dword [0x1400c87e4], 0xffffffff
mov dword [0x1400c7464], eax
mov edx, 1
nop dword [rax]
mov eax, r8d
shr eax, 0x1e
xor eax, r8d
imul r8d, eax, 0x6c078965
add r8d, edx
mov dword [r15 + rdx*4 + 4], r8d
inc rdx
cmp rdx, 0x270
jb 0x1400060a0
mov dword [0x1400c7460], 0x270
lea rcx, [0x1400c7448]
call fcn.14006deec
mov eax, dword [rbx]
cmp dword [0x1400c744c], eax
jle 0x140006116
lea rcx, [0x1400c744c]
call fcn.14006df58
cmp dword [0x1400c744c], 0xffffffff
jne 0x140006116
mov dword [0x1400c87e8], r13d
mov dword [0x1400c87ec], 0x3e
lea rcx, [0x1400c744c]
call fcn.14006deec
xorps xmm0, xmm0
movups xmmword [rsi], xmm0
mov qword [rsi + 0x10], r13
mov qword [rsi + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rsi], 0
mov dword [rsp + 0x20], 1
mov ebp, 0xa
mov r12d, 0x80000000
nop
mov ecx, dword [0x1400c87e8]
lea eax, [rcx - 0x80000000]
lea r14d, [rcx + r12]
cmp ecx, r12d
cmovae r14d, eax
mov ecx, dword [0x1400c87ec]
lea eax, [rcx - 0x80000000]
lea edx, [rcx + r12]
cmp ecx, r12d
cmovae edx, eax
sub edx, r14d
cmp edx, 0xffffffff
jne 0x1400062ed
mov ecx, dword [0x1400c7460]
cmp ecx, 0x270
jne 0x1400061d5
lea r8, [0x1400c7468]
mov r9d, ecx
mov edx, dword [r8 - 4]
xor edx, dword [r8]
btr edx, 0x1f
xor edx, dword [r8 - 4]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x630]
shr edx, 1
xor ecx, edx
mov dword [r8 + 0x9bc], ecx
lea r8, [r8 + 4]
sub r9, 1
jne 0x140006191
mov ecx, dword [0x1400c7460]
jmp 0x1400062b0
cmp ecx, 0x4e0
jb 0x1400062b0
mov r8, r13
mov eax, dword [r8 + r15 + 0x9c4]
mov edx, eax
xor edx, dword [r8 + r15 + 0x9c8]
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
and ecx, 0x9908b0df
xor ecx, dword [r8 + r15 + 0xff8]
shr edx, 1
xor ecx, edx
mov dword [r8 + r15 + 4], ecx
add r8, 4
cmp r8, 0x38c
jb 0x1400061e4
mov r8d, 0x38c
nop
mov eax, dword [r8 + r15 + 0x9c4]
mov edx, eax
xor edx, dword [r8 + r15 + 0x9c8]
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
and ecx, 0x9908b0df
xor ecx, dword [r8 + r15 - 0x388]
shr edx, 1
xor ecx, edx
mov dword [r8 + r15 + 4], ecx
add r8, 4
cmp r8, 0x9bc
jb 0x140006230
mov edx, dword [0x1400c87e0]
and edx, r12d
mov eax, dword [0x1400c7464]
btr eax, 0x1f
or edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
and ecx, 0x9908b0df
shr edx, 1
xor ecx, edx
xor ecx, dword [0x1400c7a94]
mov dword [0x1400c7e20], ecx
mov ecx, r13d
mov dword [0x1400c7460], ecx
mov eax, ecx
mov edx, dword [r15 + rax*4 + 4]
inc ecx
mov dword [0x1400c7460], ecx
mov eax, edx
shr eax, 0xb
and eax, dword [0x1400c87e4]
xor edx, eax
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and eax, 0xffffdf8c
shl eax, 0xf
xor edx, eax
mov ecx, edx
shr ecx, 0x12
xor ecx, edx
jmp 0x140006328
lea ebx, [rdx + 1]
mov rcx, r15
call fcn.14000e260
mov edi, ebx
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jae 0x140006324
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x140006324
mov rcx, r15
call fcn.14000e260
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jb 0x140006312
shr rcx, 0x20
lea edx, [r14 + rcx]
lea eax, [rdx + r12]
lea ecx, [rdx - 0x80000000]
cmp edx, r12d
cmovae ecx, eax
movsxd rax, ecx
lea rcx, str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
movzx r9d, byte [rax + rcx]
mov rcx, qword [rsi + 0x10]
mov rdx, qword [rsi + 0x18]
cmp rcx, rdx
jae 0x140006377
lea rax, [rcx + 1]
mov qword [rsi + 0x10], rax
mov rax, rsi
cmp rdx, 0x10
jb 0x14000636c
mov rax, qword [rsi]
mov byte [rax + rcx], r9b
mov byte [rax + rcx + 1], 0
jmp 0x140006386
xor r8d, r8d
lea edx, [r8 + 1]
mov rcx, rsi
call fcn.14000d0b0
sub rbp, 1
jne 0x140006140
mov rax, rsi
mov rbx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
ret