Function at 0x1400039b0
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 r12
push r13
push r14
push r15
lea rbp, [rsp - 0x14c0]
mov eax, 0x15c0
call fcn.1400f6100
sub rsp, rax
mov rax, qword [0x14014c0a8]
xor rax, rsp
mov qword [rbp + 0x14b0], rax
mov rsi, rcx
mov qword [rbp - 0x30], rcx
xor r13d, r13d
mov edi, r13d
mov dword [rsp + 0x30], r13d
lea rcx, [rbp + 0x100]
call fcn.140003390
nop
mov r14d, r13d
call fcn.1400f4560
mov edx, eax
mov dword [rbp + 0x14a4], 0xffffffff
mov dword [rbp + 0x124], eax
lea eax, [r13 + 1]
nop dword [rax + rax]
mov ecx, edx
shr ecx, 0x1e
xor ecx, edx
imul edx, ecx, 0x6c078965
add edx, eax
mov dword [rbp + rax*4 + 0x124], edx
inc rax
cmp rax, 0x270
jb 0x140003a30
mov dword [rbp + 0x120], 0x270
xorps xmm0, xmm0
movups xmmword [rbp - 0x28], xmm0
mov qword [rbp - 0x18], r13
mov qword [rbp - 0x10], 7
mov word [rbp - 0x28], r13w
lea r15, [0x140000000]
lea r12, vtable.std::basic_ios_char__struct_std::char_traits_char__.0
lea rbx, vtable.std::basic_streambuf_char__struct_std::char_traits_char__.0
xor edx, edx
mov r8d, 0xf8
lea rcx, [rbp]
call fcn.1400f7ed0
lea rax, [r15 + 0x12a0c8]
mov qword [rbp], rax
lea rax, [r15 + 0x129fa0]
mov qword [rbp + 0x10], rax
mov qword [rbp + 0xa0], r13
mov qword [rbp + 0xc8], r13
xorps xmm0, xmm0
movdqa xmmword [rbp + 0xd0], xmm0
mov qword [rbp + 0x98], r12
or edi, 2
mov dword [rsp + 0x30], edi
lea rdx, [rbp + 0x18]
lea rcx, [rbp]
call fcn.140006e20
nop
mov rax, qword [rbp + 0x10]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0x10], rax
mov rax, qword [rbp + 0x10]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x10]
mov dword [rbp + rcx + 0xc], edx
mov rax, qword [rbp]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_iostream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx], rax
mov rax, qword [rbp]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x20]
mov dword [rbp + rcx - 4], edx
mov rax, qword [rbp]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov qword [rbp + rcx], rax
mov rax, qword [rbp]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x98]
mov dword [rbp + rcx - 4], edx
mov qword [rbp + 0x18], rbx
mov ecx, 0x10
call fcn.1400f55e4
mov rbx, rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov cl, 1
call fcn.1400f4148
mov qword [rbx + 8], rax
mov qword [rbp + 0x78], rbx
lea rax, [rbp + 0x20]
mov qword [rbp + 0x30], rax
lea rax, [rbp + 0x28]
mov qword [rbp + 0x38], rax
lea rax, [rbp + 0x40]
mov qword [rbp + 0x50], rax
lea rax, [rbp + 0x48]
mov qword [rbp + 0x58], rax
lea rax, [rbp + 0x60]
mov qword [rbp + 0x68], rax
lea rax, [rbp + 0x64]
mov qword [rbp + 0x70], rax
mov qword [rbp + 0x28], r13
mov qword [rbp + 0x48], r13
mov qword [rbp + 0x60], r13
mov qword [rbp + 0x20], r13
mov qword [rbp + 0x40], r13
lea rax, vtable.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov qword [rbp + 0x18], rax
mov qword [rbp + 0x80], r13
mov dword [rbp + 0x88], r13d
mov rax, qword [rbp + 0x10]
movsxd rcx, dword [rax + 4]
mov eax, dword [rbp + rcx + 0x28]
and eax, 0xfffff9ff
bts eax, 0xb
mov dword [rbp + rcx + 0x28], eax
lea rcx, [rbp + 0x120]
call fcn.14000a180
mov ebx, eax
shl rbx, 0x20
lea rcx, [rbp + 0x120]
call fcn.14000a180
mov edx, eax
or rdx, rbx
lea rcx, [rbp + 0x10]
call fcn.140004f30
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x60], xmm0
mov r9, r13
mov qword [rsp + 0x70], r13
mov r10d, 0xf
mov qword [rsp + 0x78], r10
mov byte [rsp + 0x60], r9b
or edi, 0x20
mov dword [rsp + 0x30], edi
xor eax, eax
movups xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], rax
mov ecx, dword [rbp + 0x88]
mov eax, ecx
and al, 0x22
cmp al, 2
je 0x140003c81
mov rax, qword [rbp + 0x58]
mov r8, qword [rax]
test r8, r8
je 0x140003c81
mov rax, qword [rbp + 0x38]
mov rdx, qword [rax]
cmp r8, qword [rbp + 0x80]
cmovb r8, qword [rbp + 0x80]
sub r8, rdx
jmp 0x140003cb2
test cl, 4
jne 0x140003ca8
mov rax, qword [rbp + 0x50]
mov rcx, qword [rax]
test rcx, rcx
je 0x140003ca8
mov rax, qword [rbp + 0x30]
mov rdx, qword [rax]
mov rax, qword [rbp + 0x68]
movsxd r8, dword [rax]
add r8, rcx
sub r8, rdx
jmp 0x140003cb2
mov r8, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x40]
test rdx, rdx
je 0x140003ccb
lea rcx, [rsp + 0x60]
call fcn.140006fe0
mov r10, qword [rsp + 0x78]
mov r9, qword [rsp + 0x70]
and edi, 0xffffffdf
or edi, 0x10
lea rax, [rsp + 0x60]
cmp r10, 0x10
cmovae rax, qword [rsp + 0x60]
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], r9
call fcn.1400f35a0
movaps xmm0, xmmword [rbp - 0x40]
movdqa xmmword [rsp + 0x40], xmm0
lea r8, [rsp + 0x40]
mov edx, eax
lea rcx, [rbp - 0x80]
call fcn.140002540
or edi, 0xc0
mov dword [rsp + 0x30], edi
lea rdx, [rbp + 0x100]
lea rcx, [rbp - 0x60]
call fcn.140002b00
bts edi, 8
mov dword [rsp + 0x30], edi
lea rdx, [rbp - 0x80]
lea rcx, [rbp - 0x60]
call fcn.140002790
mov rdx, qword [rbp - 0x10]
cmp rdx, 8
jb 0x140003d76
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003d71
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400040cb
call fcn.1400f5330
movups xmm0, xmmword [rbp - 0x60]
movups xmmword [rbp - 0x28], xmm0
movups xmm1, xmmword [rbp - 0x50]
movups xmmword [rbp - 0x18], xmm1
btr edi, 8
mov qword [rbp - 0x50], r13
mov qword [rbp - 0x48], 7
mov word [rbp - 0x60], r13w
mov rdx, qword [rbp - 0x68]
cmp rdx, 8
jb 0x140003ddb
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003dd6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400040d1
call fcn.1400f5330
mov qword [rbp - 0x70], r13
mov qword [rbp - 0x68], 7
mov word [rbp - 0x80], r13w
mov rdx, qword [rsp + 0x78]
cmp rdx, 0x10
jb 0x140003e29
inc rdx
mov rcx, qword [rsp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003e24
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400040d7
call fcn.1400f5330
lea rcx, [rbp - 0x28]
cmp qword [rbp - 0x10], 8
cmovae rcx, qword [rbp - 0x28]
call fcn.1400f3800
mov qword [rsp + 0x40], rax
mov rcx, rax
shr rcx, 0x20
test ecx, ecx
jne 0x1400040bd
test al, al
jne 0x140003f3c
cmp r14, 0x3e8
je 0x140003e72
inc r14
lea rcx, [rbp]
call fcn.140004100
jmp 0x140003a81
xorps xmm0, xmm0
movups xmmword [rsi], xmm0
mov qword [rsi + 0x10], r13
mov qword [rsi + 0x18], r13
xor r8d, r8d
lea rdx, [0x140129c4b]
mov rcx, rsi
call fcn.140008b50
nop
lea rcx, [rbp]
call fcn.140004100
nop
mov rdx, qword [rbp - 0x10]
cmp rdx, 8
jb 0x140003edd
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003ed8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400040dd
call fcn.1400f5330
mov qword [rbp - 0x18], r13
mov qword [rbp - 0x10], 7
mov word [rbp - 0x28], r13w
mov rdx, qword [rbp + 0x118]
cmp rdx, 8
jb 0x14000407e
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x100]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140004079
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400040b7
jmp 0x140004079
lea rcx, [rbp]
call fcn.140004100
lea r15, [rbp - 0x28]
cmp qword [rbp - 0x10], 8
cmovae r15, qword [rbp - 0x28]
mov r14, qword [rbp - 0x18]
call fcn.1400f35a0
mov r12d, eax
xorps xmm0, xmm0
movups xmmword [rsi], xmm0
mov qword [rsi + 0x10], r13
mov qword [rsi + 0x18], 0xf
mov byte [rsi], 0
bts edi, 0xc
mov dword [rsp + 0x30], edi
test r14, r14
je 0x140003feb
cmp r14, 0x7fffffff
ja 0x1400040e3
mov dword [rsp + 0x20], r13d
xor r9d, r9d
mov r8d, r14d
mov rdx, r15
mov ecx, eax
call fcn.1400f3610
mov rbx, rax
shr rax, 0x20
test eax, eax
jne 0x1400040e9
movsxd rdx, ebx
xor r8d, r8d
mov rcx, rsi
call fcn.1400056e0
mov r9, rsi
cmp qword [rsi + 0x18], 0x10
jb 0x140003fcd
mov r9, qword [rsi]
mov dword [rsp + 0x20], ebx
mov r8d, r14d
mov rdx, r15
mov ecx, r12d
call fcn.1400f3610
shr rax, 0x20
test eax, eax
jne 0x1400040f1
mov rdx, qword [rbp - 0x10]
cmp rdx, 8
jb 0x14000402b
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140004026
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400040f9
call fcn.1400f5330
mov qword [rbp - 0x18], r13
mov qword [rbp - 0x10], 7
mov word [rbp - 0x28], r13w
mov rdx, qword [rbp + 0x118]
cmp rdx, 8
jb 0x14000407e
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x100]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140004079
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400040b1
call fcn.1400f5330
mov rax, rsi
mov rcx, qword [rbp + 0x14b0]
xor rcx, rsp
call fcn.1400f5310
lea r11, [rsp + 0x15c0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.1400fe378
int3
call fcn.1400fe378
nop
lea r8, [rbp - 0x28]
mov edx, dword [rsp + 0x44]
call fcn.1400032c0
nop
call fcn.1400fe378
nop
call fcn.1400fe378
nop
call fcn.1400fe378
nop
call fcn.1400fe378
nop
call fcn.140001b60
int3
mov ecx, eax
call fcn.140002500
int3
mov ecx, eax
call fcn.140002500
nop
call fcn.1400fe378
int3