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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x30
mov rbx, rcx
mov qword [rsp + 0x28], rcx
xor edi, edi
mov dword [rsp + 0x20], edi
mov ecx, 4
mov rax, qword gs:[0x58]
mov rax, qword [rax]
lea r15, [0x14026bd40]
mov eax, dword [rcx + rax]
cmp dword [0x14026d0c8], eax
jle 0x140001357
lea rcx, [0x14026d0c8]
call fcn.140002e1c
cmp dword [0x14026d0c8], 0xffffffff
jne 0x140001357
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
mov rdx, rax
mov dword [0x14026d0c4], 0xffffffff
mov dword [0x14026bd44], eax
lea r8d, [rdi + 1]
nop dword [rax + rax]
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, r8d
mov dword [r15 + r8*4 + 4], edx
inc r8
cmp r8, 0x270
jb 0x140001320
mov dword [0x14026bd40], 0x270
lea rcx, [0x14026d0c8]
call fcn.140002db0
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], rdi
mov qword [rbx + 0x18], 0xf
mov byte [rbx], dil
mov dword [rsp + 0x20], 1
mov r14d, 0x3c
mov r12d, 0x80000000
mov edi, dword [rsp + 0x28]
mov rcx, r15
call fcn.140002bc0
mov ecx, eax
add rcx, rcx
shr rcx, 0x20
test ecx, ecx
je 0x14000144a
cmp ecx, 1
jne 0x1400014d9
mov edx, dword [0x14026b67c]
mov ecx, dword [0x14026b678]
lea eax, [rcx - 0x80000000]
lea ebp, [rcx + r12]
cmp ecx, r12d
cmovae ebp, eax
lea eax, [rdx - 0x80000000]
lea ecx, [rdx + r12]
cmp edx, r12d
cmovae ecx, eax
sub ecx, ebp
cmp ecx, 0xffffffff
jne 0x1400013f7
mov rcx, r15
call fcn.140002bc0
mov ecx, eax
add ecx, ebp
lea eax, [rcx + r12]
lea edi, [rcx - 0x80000000]
cmp ecx, r12d
jmp 0x1400014d6
lea edi, [rcx + 1]
mov rcx, r15
call fcn.140002bc0
mov esi, edi
mov ecx, eax
imul rcx, rsi
cmp ecx, edi
jae 0x140001432
mov eax, edi
neg eax
xor edx, edx
div edi
mov edi, edx
cmp ecx, edx
jae 0x140001432
nop dword [rax]
mov rcx, r15
call fcn.140002bc0
mov ecx, eax
imul rcx, rsi
cmp ecx, edi
jb 0x140001420
shr rcx, 0x20
add ecx, ebp
lea eax, [rcx + r12]
lea edi, [rcx - 0x80000000]
cmp ecx, r12d
jmp 0x1400014d6
mov edx, dword [0x14026b684]
mov ecx, dword [0x14026b680]
lea eax, [rcx - 0x80000000]
lea ebp, [rcx + r12]
cmp ecx, r12d
cmovae ebp, eax
lea eax, [rdx - 0x80000000]
lea ecx, [rdx + r12]
cmp edx, r12d
cmovae ecx, eax
sub ecx, ebp
cmp ecx, 0xffffffff
jne 0x140001489
mov rcx, r15
call fcn.140002bc0
mov ecx, eax
jmp 0x1400014c6
lea edi, [rcx + 1]
mov rcx, r15
call fcn.140002bc0
mov esi, edi
mov ecx, eax
imul rcx, rsi
cmp ecx, edi
jae 0x1400014c2
mov eax, edi
neg eax
xor edx, edx
div edi
mov edi, edx
cmp ecx, edx
jae 0x1400014c2
nop
mov rcx, r15
call fcn.140002bc0
mov ecx, eax
imul rcx, rsi
cmp ecx, edi
jb 0x1400014b0
shr rcx, 0x20
lea edx, [rcx + rbp]
lea eax, [rdx + r12]
lea edi, [rdx - 0x80000000]
cmp edx, r12d
cmovae edi, eax
mov rcx, qword [rbx + 0x10]
mov rdx, qword [rbx + 0x18]
cmp edi, 0x80
jge 0x14000153d
cmp rcx, rdx
jae 0x14000150d
lea rax, [rcx + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp rdx, 0xf
jbe 0x140001502
mov rax, qword [rbx]
mov byte [rax + rcx], dil
mov byte [rax + rcx + 1], 0
jmp 0x140001519
movzx r9d, dil
mov rcx, rbx
call fcn.140002910
sub r14, 1
jne 0x140001384
mov rax, rbx
mov rbx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
add rsp, 0x30
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret
mov r9d, edi
sar r9d, 0xc
or r9b, 0xe0
cmp rcx, rdx
jae 0x14000156c
lea rax, [rcx + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp rdx, 0xf
jbe 0x140001561
mov rax, qword [rbx]
mov byte [rax + rcx], r9b
mov byte [rax + rcx + 1], 0
jmp 0x140001574
mov rcx, rbx
call fcn.140002910
mov r9d, edi
sar r9d, 6
and r9b, 0x3f
or r9b, 0x80
mov rcx, qword [rbx + 0x10]
mov rdx, qword [rbx + 0x18]
cmp rcx, rdx
jae 0x1400015af
lea rax, [rcx + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp rdx, 0xf
jbe 0x1400015a4
mov rax, qword [rbx]
mov byte [rax + rcx], r9b
mov byte [rax + rcx + 1], 0
jmp 0x1400015b7
mov rcx, rbx
call fcn.140002910
movzx r9d, dil
and r9b, 0x3f
or r9b, 0x80
mov rcx, qword [rbx + 0x10]
mov rdx, qword [rbx + 0x18]
cmp rcx, rdx
jae 0x140001511
lea rax, [rcx + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp rdx, 0xf
jbe 0x1400015e8
mov rax, qword [rbx]
mov byte [rax + rcx], r9b
mov byte [rax + rcx + 1], 0
jmp 0x140001519