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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
xor r14d, r14d
lea rbp, [0x7ff698b8ddc0]
mov rax, qword gs:[0x58]
mov rdi, qword [rax]
mov eax, 0x10
mov eax, dword [rax + rdi]
cmp dword [0x7ff698b8dfb8], eax
jle 0x7ff6989fa7f6
lea rcx, [0x7ff698b8dfb8]
call fcn.7ff698a53fbc
cmp dword [0x7ff698b8dfb8], 0xffffffff
jne 0x7ff6989fa7f6
xorps xmm0, xmm0
movups xmmword [0x7ff698b8dfe0], xmm0
mov qword [0x7ff698b8dff0], r14
mov qword [0x7ff698b8dff8], r14
lea ecx, [r14 + 0x30]
call fcn.7ff698a54034
mov qword [0x7ff698b8dfe0], rax
mov qword [0x7ff698b8dff0], 0x22
mov qword [0x7ff698b8dff8], 0x2f
movups xmm0, xmmword [0x7ff698acd788]
movups xmmword [rax], xmm0
movups xmm1, xmmword [0x7ff698acd798]
movups xmmword [rax + 0x10], xmm1
movzx edx, word [0x7ff698acd7a8]
mov word [rax + 0x20], dx
mov byte [rax + 0x22], r14b
lea rcx, [0x7ff698a584a0]
call fcn.7ff698a54298
nop
lea rcx, [0x7ff698b8dfb8]
call fcn.7ff698a53f50
mov esi, 0x13a8
mov eax, dword [rsi + rdi]
mov ecx, 0x20
test al, 1
jne 0x7ff6989fa858
or eax, 1
mov dword [rsi + rdi], eax
mov ebx, ecx
add rbx, rdi
call qword [sym.imp.msvcp140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [rbx + 0x1384], 0xffffffff
mov dword [rbx + 4], eax
mov edx, 1
lea r8, [rbx + 8]
nop
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [r8], eax
inc rdx
lea r8, [r8 + 4]
cmp rdx, 0x270
jb 0x7ff6989fa830
mov dword [rbx], 0x270
mov eax, dword [rsi + rdi]
mov r15d, 0x18
mov ebx, r15d
test al, 2
jne 0x7ff6989fa87f
or eax, 2
mov dword [rsi + rdi], eax
mov dword [rdi + r15], r14d
mov eax, dword [0x7ff698b8dff0]
dec eax
mov dword [rdi + r15 + 4], eax
xor r8d, r8d
lea edx, [r8 + 0x14]
mov rcx, rbp
call fcn.7ff698a03c40
cmp qword [0x7ff698b8ddd8], 0xf
jbe 0x7ff6989fa8aa
mov r14, qword [0x7ff698b8ddc0]
mov rcx, r14
mov ebx, r15d
mov rdx, r14
jmp 0x7ff6989fa8b3
mov r14, rbp
mov rcx, rbp
mov rdx, rbp
mov r13, qword [0x7ff698b8ddd0]
add r13, rcx
cmp rdx, r13
je 0x7ff6989fa9a0
lea r12, [rdi + rbx]
mov ebx, 0x20
add rbx, rdi
mov r8d, 0x80000000
nop dword [rax + rax]
mov edx, dword [r12 + 4]
mov ecx, dword [r12]
lea eax, [rcx - 0x80000000]
lea r15d, [rcx + r8]
cmp ecx, r8d
cmovae r15d, eax
lea eax, [rdx - 0x80000000]
lea ecx, [rdx + r8]
cmp edx, r8d
cmovae ecx, eax
sub ecx, r15d
cmp ecx, 0xffffffff
jne 0x7ff6989fa91e
mov rcx, rbx
call fcn.7ff698a07eb0
mov ecx, eax
jmp 0x7ff6989fa959
lea edi, [rcx + 1]
mov rcx, rbx
call fcn.7ff698a07eb0
mov esi, edi
mov ecx, eax
imul rcx, rsi
cmp ecx, edi
jae 0x7ff6989fa955
mov eax, edi
neg eax
xor edx, edx
div edi
mov edi, edx
cmp ecx, edx
jae 0x7ff6989fa955
mov rcx, rbx
call fcn.7ff698a07eb0
mov ecx, eax
imul rcx, rsi
cmp ecx, edi
jb 0x7ff6989fa943
shr rcx, 0x20
lea edx, [r15 + rcx]
lea eax, [rdx - 0x80000000]
mov r8d, 0x80000000
lea ecx, [rdx + r8]
cmp edx, r8d
cmovae ecx, eax
lea rdx, [0x7ff698b8dfe0]
cmp qword [0x7ff698b8dff8], 0xf
cmova rdx, qword [0x7ff698b8dfe0]
movsxd rcx, ecx
movzx edx, byte [rcx + rdx]
mov byte [r14], dl
inc r14
cmp r14, r13
jne 0x7ff6989fa8e0
mov rax, rbp
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
ret