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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r14
push r15
lea rbp, [rsp - 0x12f0]
mov eax, 0x13f0
call fcn.14008a400
sub rsp, rax
mov rax, qword [0x1400af0c0]
xor rax, rsp
mov qword [rbp + 0x12e8], rax
mov r14d, edx
mov qword [rsp + 0x28], rcx
mov rsi, rcx
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [rbp + 0x12c4], 0xffffffff
mov ecx, 1
mov r8d, eax
mov dword [rsp + 0x44], eax
mov edi, 0x270
nop word [rax + rax]
mov eax, r8d
shr eax, 0x1e
xor eax, r8d
imul r8d, eax, 0x6c078965
add r8d, ecx
mov dword [rsp + rcx*4 + 0x44], r8d
inc rcx
cmp rcx, rdi
jb 0x14000a030
movsd xmm0, qword [0x1400a17c0]
lea eax, [r14 - 1]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
mov dword [rsp + 0x40], edi
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movd xmm1, r14d
cvttsd2si rbx, xmm0
movsd xmm0, qword [0x1400a17c0]
cvtdq2pd xmm1, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
subsd xmm0, qword [0x1400a17b8]
movabs r15, 0x8000000000000000
lea rax, [rsp + 0x40]
cmp rbx, r15
mov qword [rsp + 0x28], rax
cvttsd2si rcx, xmm0
lea rax, [rbx + r15]
lea r14, [rbx + r15]
cmovae r14, rax
cmp rcx, r15
lea rax, [rcx + r15]
lea rdx, [rcx + r15]
cmovae rdx, rax
sub rdx, r14
cmp rdx, 0xffffffffffffffff
jne 0x14000a2fe
lea r8, [rsp + 0x48]
mov r9, rdi
nop dword [rax]
mov edx, dword [r8 - 4]
xor edx, dword [r8]
lea r8, [r8 + 4]
btr edx, 0x1f
xor edx, dword [r8 - 8]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x62c]
xor ecx, edx
mov dword [r8 + 0x9b8], ecx
sub r9, 1
jne 0x14000a0e0
mov eax, dword [rsp + 0x40]
mov edx, dword [rsp + rax*4 + 0x44]
lea r8d, [rax + 1]
mov eax, edx
mov dword [rsp + 0x40], r8d
shr eax, 0xb
and eax, dword [rbp + 0x12c4]
xor edx, eax
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov ecx, edx
and edx, 0xffffdf8c
shl edx, 0xf
mov eax, edx
xor rax, rcx
mov rbx, rax
shr rbx, 0x12
xor rbx, rax
shl rbx, 0x20
cmp r8d, edi
jne 0x14000a1b3
lea r8, [rsp + 0x48]
nop dword [rax + rax]
mov edx, dword [r8 - 4]
xor edx, dword [r8]
lea r8, [r8 + 4]
btr edx, 0x1f
xor edx, dword [r8 - 8]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x62c]
xor ecx, edx
mov dword [r8 + 0x9b8], ecx
sub rdi, 1
jne 0x14000a170
mov r8d, dword [rsp + 0x40]
jmp 0x14000a2b9
cmp r8d, 0x4e0
jb 0x14000a2b9
mov r10d, dword [rbp + 0x904]
lea r9, [rbp + 0x904]
mov r11d, 0xe3
nop dword [rax]
nop dword [rax + rax]
mov eax, r10d
mov r8, r9
mov r10d, dword [r9 + 4]
add r9, 4
mov edx, r10d
xor edx, eax
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x634]
xor ecx, edx
mov dword [r8 - 0x9c0], ecx
sub r11, 1
jne 0x14000a1e0
mov r10d, dword [rbp + 0xc90]
lea r9, [rbp + 0xc90]
mov r11d, 0x18c
nop dword [rax]
nop word [rax + rax]
mov eax, r10d
mov r8, r9
mov r10d, dword [r9 + 4]
mov edx, eax
xor edx, r10d
add r9, 4
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 - 0xd4c]
xor ecx, edx
mov dword [r8 - 0x9c0], ecx
sub r11, 1
jne 0x14000a240
mov edx, dword [rbp + 0x12c0]
xor edx, dword [rsp + 0x44]
btr edx, 0x1f
mov dword [rsp + 0x40], r11d
xor edx, dword [rbp + 0x12c0]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, edx
xor ecx, dword [rbp + 0x574]
mov dword [rbp + 0x900], ecx
xor r8d, r8d
mov eax, r8d
mov ecx, dword [rsp + rax*4 + 0x44]
lea eax, [r8 + 1]
mov dword [rsp + 0x40], eax
mov eax, ecx
shr eax, 0xb
and eax, dword [rbp + 0x12c4]
xor ecx, eax
mov eax, ecx
and eax, 0xff3a58ad
shl eax, 7
xor ecx, eax
mov eax, ecx
and ecx, 0xffffdf8c
shl ecx, 0xf
xor rcx, rax
mov rax, rcx
shr rax, 0x12
xor rax, rcx
or rbx, rax
jmp 0x14000a30e
inc rdx
lea rcx, [rsp + 0x28]
call fcn.140013440
mov rbx, rax
lea rcx, [r14 + rbx]
movabs r9, 0xcccccccccccccccd
cmp rcx, r15
lea rax, [rcx + r15]
lea r8, [rcx + r15]
cmovae r8, rax
lea r10, [rbp + 0x12e5]
test r8, r8
jns 0x14000a380
neg r8
nop word [rax + rax]
dec r10
mov rax, r9
mul r8
shr rdx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r10], r8b
mov r8, rdx
test rdx, rdx
jne 0x14000a340
dec r10
mov byte [r10], reloc.WLDAP32.dll_Ordinal_45
jmp 0x14000a3aa
dec r10
mov rax, r9
mul r8
shr rdx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r10], r8b
mov r8, rdx
test rdx, rdx
jne 0x14000a380
lea r9, [rsp + 0x20]
mov rdx, r10
lea r8, [rbp + 0x12e5]
mov rcx, rsi
call fcn.140013140
mov rax, rsi
mov rcx, qword [rbp + 0x12e8]
xor rcx, rsp
call fcn.140089a50
lea r11, [rsp + 0x13f0]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret