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

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x110
lea rbp, [rsp + 0x40]
and rbp, 0xffffffffffffffe0
mov rax, qword [0x14002e040]
xor rax, rsp
mov qword [rbp + 0xc0], rax
movsxd r14, edx
mov rsi, rcx
mov qword [rbp + 0x60], rcx
xor r12d, r12d
mov dword [rbp], r12d
mov rax, qword gs:[0x58]
mov rbx, qword [rax]
mov eax, 0x10
mov eax, dword [rax + rbx]
cmp dword [0x14002fe10], eax
jle 0x140003bf4
lea rcx, [0x14002fe10]
call fcn.140006d68
cmp dword [0x14002fe10], 0xffffffff
jne 0x140003bf4
lea rcx, [0x1400201d0]
call fcn.140006c74
movabs rax, 0xa2263a47ddd2aa71
mov qword [rbp + 0x20], rax
movabs rax, 0x95fd263d753a311e
mov qword [rbp + 0x28], rax
movabs rax, 0x65c5fa494cc164e9
mov qword [rbp + 0x30], rax
movabs rax, 0x70d5665025c04368
mov qword [rbp + 0x38], rax
movabs rax, 0x20e0e77f10a71e12
mov qword [rbp + 0x40], rax
movabs rcx, 0x305977760a569f6a
mov qword [rbp + 0x48], rcx
movabs rax, 0x95100f73ece09841
mov qword [rbp + 0x80], rax
movabs rax, 0xe0985c5a1d5b0826
mov qword [rbp + 0x88], rax
movabs rax, 0xaab972d2aaa019b
mov qword [rbp + 0x90], rax
movabs rax, 0x11a3132456b23218
mov qword [rbp + 0x98], rax
movabs rax, 0x20e0e77f6ade6665
mov qword [rbp + 0xa0], rax
mov qword [rbp + 0xa8], rcx
vmovdqu ymm0, ymmword [rbp + 0x20]
vpxor ymm1, ymm0, ymmword [rbp + 0x80]
vmovdqa ymmword [rbp + 0x20], ymm1
vmovdqa xmm0, xmmword [rbp + 0x40]
vxorps xmm0, xmm0, xmmword [rbp + 0xa0]
vmovdqa xmmword [rbp + 0x40], xmm0
lea rdx, [rbp + 0x20]
lea rdi, [0x14002fe18]
mov rcx, rdi
vzeroupper
call fcn.140005300
mov qword [0x14002fe40], rdi
lea rcx, [0x14002fe10]
call fcn.140006cfc
mov r15d, 0x13b8
mov eax, dword [r15 + rbx]
mov r13d, 0x30
test al, 1
jne 0x140003c68
or eax, 1
mov dword [r15 + rbx], eax
mov edi, r13d
add rdi, rbx
call fcn.1400067a8
mov ecx, eax
mov dword [rdi + 0x1384], 0xffffffff
mov dword [rdi + 4], eax
mov edx, 1
lea r8, [rdi + 8]
nop dword [rax]
nop word [rax + rax]
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edx
mov dword [r8], ecx
inc rdx
lea r8, [r8 + 4]
cmp rdx, 0x270
jb 0x140003c40
mov dword [rdi], 0x270
mov eax, dword [r15 + rbx]
mov edi, 0x18
test al, 2
jne 0x140003c89
or eax, 2
mov dword [r15 + rbx], eax
mov qword [rdi + rbx], r12
mov qword [rdi + rbx + 8], 0x1e
xorps xmm0, xmm0
movups xmmword [rsi], xmm0
mov qword [rsi + 0x10], r12
mov qword [rsi + 0x18], 0xf
mov byte [rsi], 0
mov dword [rbp], 1
mov rdx, r14
cmp r14d, 0xf
je 0x140003cc5
jbe 0x140003cbc
mov rcx, rsi
call fcn.140005420
mov qword [rsi + 0x10], r12
test r14d, r14d
je 0x140003d7c
mov r12d, edi
add r12, rbx
mov eax, r13d
add rbx, rax
nop dword [rax]
nop word [rax + rax]
dec r14d
mov qword [rbp + 8], rbx
mov r15, qword [r12]
mov rdx, qword [r12 + 8]
sub rdx, r15
cmp rdx, 0xffffffffffffffff
jne 0x140003d16
mov rcx, rbx
call fcn.140005a20
mov edi, eax
shl rdi, 0x20
mov rcx, rbx
call fcn.140005a20
mov eax, eax
or rdi, rax
jmp 0x140003d25
inc rdx
lea rcx, [rbp + 8]
call fcn.140005870
mov rdi, rax
lea r9, [rdi + r15]
mov rax, qword [0x14002fe40]
cmp qword [rax + 0x18], 0xf
jbe 0x140003d3a
mov rax, qword [rax]
movzx r9d, byte [r9 + rax]
mov rcx, qword [rsi + 0x10]
mov rdx, qword [rsi + 0x18]
cmp rcx, rdx
jae 0x140003d6b
lea rax, [rcx + 1]
mov qword [rsi + 0x10], rax
mov rax, rsi
cmp rdx, 0xf
jbe 0x140003d60
mov rax, qword [rsi]
mov byte [rax + rcx], r9b
mov byte [rax + rcx + 1], 0
jmp 0x140003d73
mov rcx, rsi
call fcn.140005570
test r14d, r14d
jne 0x140003ce0
mov rax, rsi
mov rcx, qword [rbp + 0xc0]
xor rcx, rsp
call fcn.1400069f0
mov rbx, qword [rsp + 0x160]
add rsp, 0x110
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret