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

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x13e8]
mov eax, 0x14c0
call fcn.14003ad90
sub rsp, rax
movaps xmmword [rsp + 0x14b0], xmm6
movaps xmmword [rsp + 0x14a0], xmm7
mov rax, qword [0x1400a5080]
xor rax, rsp
mov qword [rbp + 0x1390], rax
mov rbx, rcx
mov qword [rsp + 0x48], rcx
xor r13d, r13d
lea rcx, [rbp - 0x68]
call fcn.14002e148
nop
lea rcx, [rsp + 0x78]
call fcn.14002c644
nop
lea rcx, [rsp + 0x58]
call fcn.14002cd70
nop
movabs rax, 0x7fffffffffffffff
mov rcx, qword [rbp - 0x58]
sub rax, rcx
mov rdx, qword [rbp - 0x78]
cmp rax, rdx
jb 0x14002bddc
lea r9, [rbp - 0x68]
lea r12d, [r13 + 0xf]
cmp qword [rbp - 0x50], r12
cmova r9, qword [rbp - 0x68]
lea rax, [rsp + 0x78]
cmp qword [rbp - 0x70], r12
cmova rax, qword [rsp + 0x78]
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
lea r8, [rbp - 0x68]
mov dl, byte [rsp + 0x40]
lea rcx, [rbp - 0x48]
call fcn.14001ab14
nop
lea rdx, [rsp + 0x58]
cmp qword [rsp + 0x70], r12
cmova rdx, qword [rsp + 0x58]
mov r8, qword [rsp + 0x68]
lea rcx, [rbp - 0x48]
call fcn.140028278
movups xmm7, xmmword [rax]
movups xmmword [rbp - 0x28], xmm7
movups xmm6, xmmword [rax + 0x10]
movups xmmword [rbp - 0x18], xmm6
mov qword [rax + 0x10], r13
mov qword [rax + 0x18], r12
mov byte [rax], r13b
mov edi, 0x1000
mov rdx, qword [rbp - 0x30]
cmp rdx, r12
jbe 0x14002bb66
inc rdx
mov rcx, qword [rbp - 0x48]
mov rax, rcx
cmp rdx, rdi
jb 0x14002bb61
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002bde2
call fcn.14003a728
movdqa xmm0, xmmword [0x1400689c0]
movdqu xmmword [rbp - 0x38], xmm0
mov byte [rbp - 0x48], r13b
lea rcx, [rbp - 0x28]
movq rsi, xmm7
movdqa xmm0, xmm6
psrldq xmm0, 8
movq r15, xmm0
cmp r15, r12
cmova rcx, rsi
movq rdx, xmm6
call fcn.14000aee4
mov rcx, rax
or dword [rbp + 0x1384], 0xffffffff
mov dword [rbp + 4], eax
mov edx, 1
mov r8d, 0x270
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edx
mov dword [rbp + rdx*4 + 4], ecx
inc rdx
cmp rdx, r8
jb 0x14002bbb7
mov dword [rbp], r8d
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], r13
mov qword [rbx + 0x18], r13
mov r8d, 0x24
lea rdx, str.xxxxxxxx_xxxx_4xxx_yxxx_xxxxxxxxxxxx
mov rcx, rbx
call fcn.1400011ec
mov r14d, r13d
cmp qword [rbx + 0x10], r13
jbe 0x14002bca9
mov rdi, r13
lea r13, str.0123456789abcdef
mov rax, rbx
cmp qword [rbx + 0x18], r12
jbe 0x14002bc1c
mov rax, qword [rbx]
cmp byte [rdi + rax], 0x78
jne 0x14002bc4e
mov r9d, r12d
xor r8d, r8d
lea rdx, [rbp]
lea rcx, [rsp + 0x48]
call fcn.140007310
movsxd rcx, eax
mov dl, byte [rcx + r13]
mov rax, rbx
cmp qword [rbx + 0x18], r12
jbe 0x14002bc49
mov rax, qword [rbx]
mov byte [rdi + rax], dl
jmp 0x14002bc8e
mov rax, rbx
cmp qword [rbx + 0x18], r12
jbe 0x14002bc5a
mov rax, qword [rbx]
cmp byte [rdi + rax], 0x79
jne 0x14002bc8e
mov r9d, r12d
xor r8d, r8d
lea rdx, [rbp]
lea rcx, [rsp + 0x48]
call fcn.140007310
and eax, 3
or rax, 8
mov cl, byte [rax + r13]
mov rax, rbx
cmp qword [rbx + 0x18], r12
jbe 0x14002bc8b
mov rax, qword [rbx]
mov byte [rdi + rax], cl
inc r14d
inc rdi
movsxd rax, r14d
cmp rax, qword [rbx + 0x10]
jb 0x14002bc10
xor r13d, r13d
mov edi, 0x1000
cmp r15, r12
jbe 0x14002bcdc
lea rdx, [r15 + 1]
mov rax, rsi
cmp rdx, rdi
jb 0x14002bcd3
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002bde8
mov rcx, rsi
call fcn.14003a728
nop
mov rdx, qword [rsp + 0x70]
cmp rdx, r12
jbe 0x14002bd14
inc rdx
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, rdi
jb 0x14002bd0f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002bdee
call fcn.14003a728
mov qword [rsp + 0x68], r13
mov qword [rsp + 0x70], r12
mov byte [rsp + 0x58], r13b
mov rdx, qword [rbp - 0x70]
cmp rdx, r12
jbe 0x14002bd5a
inc rdx
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, rdi
jb 0x14002bd55
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002bdf4
call fcn.14003a728
mov qword [rbp - 0x78], r13
mov qword [rbp - 0x70], r12
mov byte [rsp + 0x78], r13b
mov rdx, qword [rbp - 0x50]
cmp rdx, r12
jbe 0x14002bd99
inc rdx
mov rcx, qword [rbp - 0x68]
mov rax, rcx
cmp rdx, rdi
jb 0x14002bd94
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002bdd6
call fcn.14003a728
mov rax, rbx
mov rcx, qword [rbp + 0x1390]
xor rcx, rsp
call fcn.14003aae0
lea r11, [rsp + 0x14c0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.14004147c
nop
call fcn.140001fe0
nop
call fcn.14004147c
nop
call fcn.14004147c
nop
call fcn.14004147c
nop
call fcn.14004147c
int3