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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
mov eax, 0x13d0
call fcn.140187030
sub rsp, rax
mov rax, qword [0x140363e80]
xor rax, rsp
mov qword [rsp + 0x13c0], rax
mov rdi, rcx
mov qword [rsp + 0x28], rcx
xor esi, esi
mov dword [rsp + 0x20], esi
xorps xmm0, xmm0
movups xmmword [rcx], xmm0
mov qword [rcx], rsi
mov qword [rcx + 8], rsi
mov qword [rcx + 0x10], rsi
mov ecx, 0x20
call fcn.1401862d0
mov rcx, rax
mov qword [rdi], rax
add rax, 0x20
mov qword [rdi + 0x10], rax
xorps xmm0, xmm0
movups xmmword [rcx], xmm0
movups xmmword [rcx + 0x10], xmm0
lea rax, [rcx + 0x20]
mov qword [rdi + 8], rax
mov ebx, 1
mov dword [rsp + 0x20], ebx
call fcn.140188e4c
mov ecx, eax
movabs rax, 0x5555555555555555
mov qword [rsp + 0x13b8], rax
mov qword [rsp + 0x38], rcx
movabs rdx, 0x5851f42d4c957f2d
nop dword [rax]
nop dword [rax + rax]
mov rax, rcx
shr rax, 0x3e
xor rcx, rax
imul rcx, rdx
add rcx, rbx
mov qword [rsp + rbx*8 + 0x38], rcx
inc rbx
cmp rbx, 0x138
jb 0x140079e90
mov r8d, 0x138
mov dword [rsp + 0x30], r8d
mov r10, rsi
mov rax, qword [rdi + 8]
cmp rax, qword [rdi]
je 0x14007a0a1
movabs rbx, 0x38eb3ffff6d3
movabs r11, 0xb5026f5aa96619e9
cmp r8d, 0x138
jne 0x140079f48
lea rax, [rsp + 0x40]
mov r9d, 0x138
nop word [rax + rax]
mov r8, qword [rax]
xor r8, qword [rax - 8]
and r8, 0xffffffff80000000
xor r8, qword [rax]
movzx ecx, r8b
and cl, 1
neg cl
sbb rdx, rdx
and rdx, r11
xor rdx, qword [rax + 0x4d8]
shr r8, 1
xor rdx, r8
mov qword [rax + 0x9b8], rdx
lea rax, [rax + 8]
sub r9, 1
jne 0x140079f00
mov r8d, dword [rsp + 0x30]
jmp 0x14007a03e
cmp r8d, 0x270
jb 0x14007a03e
mov r8, rsi
nop dword [rax + rax]
mov rax, qword [rsp + r8*8 + 0xa00]
mov rdx, rax
xor rdx, qword [rsp + r8*8 + 0x9f8]
and rdx, 0xffffffff80000000
xor rdx, rax
movzx eax, dl
and al, 1
neg al
sbb rcx, rcx
and rcx, r11
xor rcx, qword [rsp + r8*8 + 0xed8]
shr rdx, 1
xor rcx, rdx
mov qword [rsp + r8*8 + 0x38], rcx
inc r8
cmp r8, 0x9c
jb 0x140079f60
mov r8d, 0x9c
nop
mov rax, qword [rsp + r8*8 + 0xa00]
mov rdx, rax
xor rdx, qword [rsp + r8*8 + 0x9f8]
and rdx, 0xffffffff80000000
xor rdx, rax
movzx eax, dl
and al, 1
neg al
sbb rcx, rcx
and rcx, r11
xor rcx, qword [rsp + r8*8 - 0x4a8]
shr rdx, 1
xor rcx, rdx
mov qword [rsp + r8*8 + 0x38], rcx
inc r8
cmp r8, 0x137
jb 0x140079fb0
mov rdx, qword [rsp + 0x13b0]
and rdx, 0xffffffff80000000
mov rax, qword [rsp + 0x38]
btr eax, 0x1f
or rdx, rax
movzx eax, dl
and al, 1
neg al
sbb rcx, rcx
and rcx, r11
shr rdx, 1
xor rcx, rdx
xor rcx, qword [rsp + 0x510]
mov qword [rsp + 0x9f0], rcx
mov r8d, esi
mov dword [rsp + 0x30], esi
mov eax, r8d
mov rdx, qword [rsp + rax*8 + 0x38]
inc r8d
mov dword [rsp + 0x30], r8d
mov rax, rdx
shr rax, 0x1d
and rax, qword [rsp + 0x13b8]
xor rdx, rax
mov rax, rdx
and rax, rbx
shl rax, 0x11
xor rdx, rax
mov rcx, rdx
and rcx, 0xffffffffffffbf77
shl rcx, 0x25
xor rcx, rdx
mov rdx, rcx
shr rdx, 0x2b
xor dl, cl
mov rcx, qword [rdi]
mov byte [r10 + rcx], dl
inc r10
mov rcx, qword [rdi + 8]
sub rcx, qword [rdi]
cmp r10, rcx
jb 0x140079ee1
mov rax, rdi
mov rcx, qword [rsp + 0x13c0]
xor rcx, rsp
call fcn.1401862b0
lea r11, [rsp + 0x13d0]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret