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

Disassembly:
push r13
sub rsp, 0xb0
mov rax, qword [0x1405d4300]
xor rax, rsp
mov qword [rsp + 0x70], rax
sub r9, r8
mov qword [rsp + 0x20], rdx
mov r13, r8
cmp r9, 0xffffffffffffffff
jne 0x14008b7b8
lea rcx, [rsp + 0x20]
call fcn.140093f10
jmp 0x14008bb23
mov qword [rsp + 0xc0], rbx
mov eax, 0xffffffff
mov qword [rsp + 0x98], rdi
mov edi, eax
mov qword [rsp + 0x88], r14
lea r14, [r9 + 1]
mov ebx, 1
cmp rax, r9
jae 0x14008b7fe
nop word [rax + rax]
shl rdi, 0x20
inc ebx
or rdi, rax
cmp rdi, r9
jb 0x14008b7f0
mov r9d, ebx
lea rdx, [rsp + 0x60]
mov r8, r14
lea rcx, [rsp + 0x20]
call fcn.1400943f0
mov rcx, qword [rsp + 0x60]
and rcx, rdi
cmp rcx, r14
jae 0x14008ba7d
xor edx, edx
mov qword [rsp + 0x90], r12
mov rax, rdi
sub rax, r14
inc rax
div r14
mov r12, rdx
cmp rcx, rdx
jae 0x14008ba75
mov qword [rsp + 0xa8], rbp
mov qword [rsp + 0xa0], rsi
mov qword [rsp + 0x80], r15
lea r15d, [rbx - 1]
mov rbx, qword [rsp + 0x20]
nop word [rax + rax]
lea rcx, [rsp + 0x20]
call fcn.140094250
mov rsi, rax
mov ebp, r15d
test r15d, r15d
je 0x14008ba1f
nop dword [rax]
mov edx, dword [rbx]
shl rsi, 0x20
cmp edx, 0x270
jne 0x14008b8f2
lea rcx, [rbx + 8]
mov r9d, edx
nop word [rax + rax]
mov r8d, dword [rcx - 4]
xor r8d, dword [rcx]
lea rcx, [rcx + 4]
btr r8d, 0x1f
xor r8d, dword [rcx - 8]
mov eax, r8d
and al, 1
neg al
sbb edx, edx
shr r8d, 1
and edx, 0x9908b0df
xor edx, dword [rcx + 0x62c]
xor edx, r8d
mov dword [rcx + 0x9b8], edx
sub r9, 1
jne 0x14008b8b0
mov edx, dword [rbx]
jmp 0x14008b9d3
cmp edx, 0x4e0
jb 0x14008b9d3
lea r9, [rbx + 0x9c4]
mov r10d, 0xe3
mov r11d, dword [r9]
nop
mov eax, r11d
mov r8, r9
mov r11d, dword [r9 + 4]
mov edx, eax
xor edx, r11d
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 + 0x634]
xor ecx, edx
mov dword [r8 - 0x9c0], ecx
sub r10, 1
jne 0x14008b910
lea r9, [rbx + 0xd50]
mov r10d, 0x18c
mov r11d, dword [r9]
nop
mov eax, r11d
mov r8, r9
mov r11d, dword [r9 + 4]
mov edx, eax
xor edx, r11d
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 r10, 1
jne 0x14008b960
mov eax, dword [rbx + 0x1380]
mov edx, eax
xor edx, dword [rbx + 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, edx
xor ecx, dword [rbx + 0x634]
mov dword [rbx + 0x9c0], ecx
xor edx, edx
mov dword [rbx], r10d
mov eax, edx
mov ecx, dword [rbx + rax*4 + 4]
lea eax, [rdx + 1]
mov dword [rbx], eax
mov eax, ecx
shr eax, 0xb
and eax, dword [rbx + 0x1384]
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 rsi, rax
mov eax, 0xffffffff
add ebp, eax
jne 0x14008b890
lea r8, [rsp + 0x50]
mov rdx, r14
mov rcx, rsi
call fcn.1400951a0
mov r8, qword [rsp + 0x50]
lea rcx, [rsp + 0x30]
mov rdx, rax
call fcn.14008f4c0
movaps xmm0, xmmword [rsp + 0x30]
movq rax, xmm0
movdqa xmmword [rsp + 0x60], xmm0
and rax, rdi
cmp rax, r12
jb 0x14008b870
mov r15, qword [rsp + 0x80]
mov rsi, qword [rsp + 0xa0]
mov rbp, qword [rsp + 0xa8]
mov r12, qword [rsp + 0x90]
cmp dword [0x1405d42d0], 2
mov r14, qword [rsp + 0x88]
mov rbx, qword [rsp + 0xc0]
jge 0x14008baf1
mov rax, rdi
movabs rcx, 0x5555555555555555
shr rax, 1
and rax, rcx
movabs rcx, 0x3333333333333333
sub rdi, rax
mov rax, rdi
and rdi, rcx
shr rax, 2
and rax, rcx
add rax, rdi
mov rcx, rax
shr rcx, 4
add rcx, rax
movabs rax, 0xf0f0f0f0f0f0f0f
and rcx, rax
movabs rax, 0x101010101010101
imul rcx, rax
shr rcx, 0x38
jmp 0x14008baf6
popcnt rcx, rdi
mov eax, ecx
lea r8, [rsp + 0x20]
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x60]
xor eax, eax
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x28], rax
call fcn.1400911b0
mov rdi, qword [rsp + 0x98]
mov rax, qword [rax]
add rax, r13
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.1401dd5d0
add rsp, 0xb0
pop r13
ret