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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r12
push rbp
push r14
push r15
lea rbp, [rsp - 0x1310]
mov eax, 0x1410
call fcn.7ff679f2dfb0
sub rsp, rax
movaps xmmword [rsp + 0x1400], xmm6
mov rax, qword [0x7ff679fc95c0]
xor rax, rsp
mov qword [rbp + 0x12f0], rax
call fcn.7ff679f2d9bb
mov dword [rsp + 0x64], eax
mov edx, 1
mov dword [rbp + 0x12e4], 0xffffffff
nop
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rsp + rdx*4 + 0x64], eax
inc rdx
cmp rdx, 0x270
jb 0x7ff679ec84f0
mov ecx, dword [0x7ff679fc9db0]
lea rax, [rsp + 0x60]
mov edx, dword [0x7ff679fc9db4]
mov r8d, 0x80000000
mov qword [rsp + 0x28], rax
cmp ecx, r8d
mov dword [rsp + 0x60], 0x270
mov esi, 0x1f4
lea eax, [rcx - 0x80000000]
mov dword [rsp + 0x20], 3
lea r14d, [rcx + r8]
mov r12d, 0xffffffff
cmovae r14d, eax
lea r15d, [rdx + r8]
lea rax, [rsp + 0x60]
cmp edx, r8d
mov qword [rsp + 0x30], rax
lea eax, [rdx - 0x80000000]
cmovae r15d, eax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x50], rax
nop word [rax + rax]
lea rcx, [rsp + 0x28]
cmp r14d, 0x7fffffff
jne 0x7ff679ec85a7
call fcn.7ff679ec55e0
mov ecx, eax
jmp 0x7ff679ec85e8
lea edi, [r14 - 0x7fffffff]
mov ebx, edi
call fcn.7ff679ec55e0
mov ecx, eax
imul rcx, rbx
cmp ecx, edi
jae 0x7ff679ec85e4
mov eax, edi
xor edx, edx
neg eax
div edi
mov edi, edx
cmp ecx, edx
jae 0x7ff679ec85e4
nop dword [rax]
lea rcx, [rsp + 0x28]
call fcn.7ff679ec55e0
mov ecx, eax
imul rcx, rbx
cmp ecx, edi
jb 0x7ff679ec85d0
shr rcx, 0x20
movd xmm6, ecx
lea rcx, [rsp + 0x30]
cvtdq2ps xmm6, xmm6
cmp r15d, 0x7fffffff
jne 0x7ff679ec8606
call fcn.7ff679ec55e0
mov ecx, eax
jmp 0x7ff679ec8648
lea edi, [r15 - 0x7fffffff]
mov ebx, edi
call fcn.7ff679ec55e0
mov ecx, eax
imul rcx, rbx
cmp ecx, edi
jae 0x7ff679ec8644
mov eax, edi
xor edx, edx
neg eax
div edi
mov edi, edx
cmp ecx, edx
jae 0x7ff679ec8644
nop dword [rax]
lea rcx, [rsp + 0x30]
call fcn.7ff679ec55e0
mov ecx, eax
imul rcx, rbx
cmp ecx, edi
jb 0x7ff679ec8630
shr rcx, 0x20
mov rdx, qword [0x7ff679fc9dc0]
cmp rdx, qword [0x7ff679fc9dc8]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss dword [rsp + 0x3c], xmm6
movss dword [rsp + 0x38], xmm0
je 0x7ff679ec8682
unpcklps xmm0, xmm6
movsd qword [rdx], xmm0
add qword [0x7ff679fc9dc0], 8
movsd qword [rsp + 0x38], xmm0
jmp 0x7ff679ec8693
lea r8, [rsp + 0x38]
lea rcx, [0x7ff679fc9db8]
call fcn.7ff679ec0580
lea rcx, [rsp + 0x48]
call fcn.7ff679ec55e0
mov eax, eax
lea rcx, [rsp + 0x50]
add rax, rax
shr rax, 0x20
lea eax, [rax*2 - 1]
movd xmm6, eax
cvtdq2ps xmm6, xmm6
call fcn.7ff679ec55e0
mov rdx, qword [0x7ff679fc9dd8]
mov ecx, eax
mov eax, 1
add rcx, rcx
movss dword [rsp + 0x44], xmm6
shr rcx, 0x20
test ecx, ecx
cmove eax, r12d
cmp rdx, qword [0x7ff679fc9de0]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rsp + 0x40], xmm0
je 0x7ff679ec870c
unpcklps xmm0, xmm6
movsd qword [rdx], xmm0
add qword [0x7ff679fc9dd8], 8
movsd qword [rsp + 0x40], xmm0
jmp 0x7ff679ec871d
lea r8, [rsp + 0x40]
lea rcx, [0x7ff679fc9dd0]
call fcn.7ff679ec0580
mov rdx, qword [0x7ff679fc9e50]
cmp rdx, qword [0x7ff679fc9e58]
je 0x7ff679ec873d
mov dword [rdx], 3
add qword [0x7ff679fc9e50], 4
jmp 0x7ff679ec874e
lea r8, [rsp + 0x20]
lea rcx, [0x7ff679fc9e48]
call fcn.7ff679ec03c0
sub rsi, 1
jne 0x7ff679ec8590
mov rcx, qword [rbp + 0x12f0]
xor rcx, rsp
call fcn.7ff679f2da90
lea r11, [rsp + 0x1410]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r15
pop r14
pop rbp
ret