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

Disassembly:
cmp rcx, rdx
je 0x140082caf
nop
mov qword [rsp - 8], r14
sub rsp, 8
sub rsp, 0x20
lea rax, [rcx + 0x20]
xchg rdx, r13
mov qword [rsp + 8], rdx
xchg r13, rdx
mov qword [rsp + 0x30], rax
xchg r8, r11
mov r14, r11
xchg r8, r11
xchg rdx, r9
mov rdx, r9
xchg rdx, r9
xchg rcx, rbx
mov r10, rbx
xchg rbx, rcx
mov r13d, 0x71c2ebac
sub r13d, 0x71084c7d
xor r13d, 0x1ddebd9e
add r13d, 0x336e63a3
add r13d, 0x1d41aa8e
sub r13d, 0xc13b93c
sub r13d, 0x29b8c6a6
add r13d, 0x47aeb4ad
xor r13d, 0x7ff665ac
cmp rax, rdx
je 0x140082c9c
mov qword [rsp + 0x38], rbx
xchg rbp, r15
mov qword [rsp + 0x40], r15
xchg r15, rbp
mov qword [rsp + 0x48], rsi
xchg rdx, rdi
mov qword [rsp + 0x18], rdx
xchg rdi, rdx
xchg rdx, r12
mov qword [rsp + 0x10], rdx
xchg r12, rdx
mov qword [rsp], r15
lea r12, [r13 + 1]
nop word [rax + rax]
xor ebp, ebp
xor r15d, r15d
test r13, r13
je 0x140082ba4
nop
movzx ecx, byte [r14 + 8]
sub cl, 1
shl rbp, cl
add rbp, rbp
nop
xchg r13, rbx
mov r13, qword [r14]
xchg rbx, r13
mov ecx, dword [rbx]
cmp ecx, 0x270
jne 0x14008299b
lea rax, [rbx + 8]
mov r11d, ecx
nop dword [rax]
nop dword [rax + rax]
mov r8d, dword [rax - 4]
xor r8d, dword [rax]
lea rax, [rax + 4]
btr r8d, 0x1f
xor r8d, dword [rax - 8]
mov ecx, r8d
and cl, 1
neg cl
sbb edx, edx
shr r8d, 1
and edx, 0x9908b0df
xor edx, dword [rax + 0x62c]
xor edx, r8d
mov dword [rax + 0x9b8], edx
sub r11, 1
jne 0x140082954
mov ecx, dword [rbx]
jmp 0x140082b00
cmp ecx, 0x4e0
jb 0x140082b00
lea rdi, [rbx + 0x9c4]
mov esi, 0x6ad1e824
sub esi, 0x24512213
add esi, 0x11c767d1
sub esi, 0x37741b8e
add esi, 0x26eb2aa3
xor esi, 0x62018080
xor esi, 0x6f1720e2
xor esi, 0x78f5fabf
xor esi, 0x325c66c9
mov eax, dword [rdi]
nop dword [rax]
mov edx, dword [rdi + 4]
lea r8, [rdi + 4]
xor edx, eax
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
mov eax, dword [r8]
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [rdi + 0x634]
xor ecx, edx
mov dword [rdi - 0x9c0], ecx
lea rdi, [r8]
sub rsi, 1
jne 0x1400829e8
lea rdi, [rbx + 0xd50]
mov esi, 0xd05c72c
xor esi, 0x688a6cea
sub esi, 0x474245fd
xor esi, 0x1f81c391
xor esi, 0x25cee613
xor esi, 0x240241c7
mov eax, dword [rdi]
nop word [rax + rax]
mov edx, dword [rdi + 4]
lea r8, [rdi + 4]
xor edx, eax
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
mov eax, dword [r8]
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [rdi - 0xd4c]
xor ecx, edx
mov dword [rdi - 0x9c0], ecx
lea rdi, [r8]
sub rsi, 1
jne 0x140082a5a
mov edx, dword [rbx + 0x1380]
xor edx, dword [rbx + 4]
btr edx, 0x1f
xor edx, dword [rbx + 0x1380]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [rbx + 0x634]
xor ecx, edx
mov dword [rbx + 0x9c0], ecx
xor ecx, ecx
mov dword [rbx], 0x622f9130
sub dword [rbx], 0x417885db
sub dword [rbx], 0x82cfda9
add dword [rbx], 0x8ca66c7
xor dword [rbx], 0x46663a80
sub dword [rbx], 0x56ffce7c
xor dword [rbx], 0x7527a773
sub dword [rbx], 0x58bbd9e8
sub dword [rbx], 0xc594d1c
mov eax, ecx
mov edx, dword [rbx + rax*4 + 4]
lea eax, [rcx + 1]
mov dword [rbx], eax
mov ecx, edx
mov eax, dword [rbx + 0x1384]
shr ecx, 1
shr ecx, 0xa
and eax, ecx
xor edx, eax
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and eax, 0xffffdf8c
shl eax, 8
shl eax, 5
shl eax, 1
shl eax, 1
xor edx, eax
mov ecx, edx
shr rcx, 0xa
shr rcx, 1
shr rcx, 4
shr rcx, 2
shr rcx, 1
mov eax, edx
xchg rdx, rbp
mov rbp, qword [r14 + 0x10]
xchg rdx, rbp
push rcx
xor ecx, eax
push rcx
xor rcx, qword [rsp + 8]
shr rcx, 0x20
ror rax, 0x20
xor ecx, eax
ror rax, 0x20
shl rcx, 0x20
or rcx, qword [rsp]
add rsp, 0x10
cmp rcx, rdx
ja 0x14008292a
or rbp, rcx
movzx ecx, byte [r14 + 8]
sub cl, 1
shl r15, cl
add r15, r15
or r15, rdx
cmp r15, r13
jb 0x14008291a
xor edx, edx
xchg r15, r9
mov rax, r9
xchg r15, r9
div r12
xor edx, edx
xchg r11, rcx
mov r11, rax
xchg r11, rcx
mov rax, rbp
div r12
cmp rax, rcx
jb 0x140082be1
xor edx, edx
xchg rdi, rax
mov rdi, r15
xchg rdi, rax
div r12
cmp rdx, r13
jne 0x14008290a
xor edx, edx
mov rax, rbp
div r12
xchg rdi, rax
mov rdi, qword [rsp + 0x30]
xchg rdi, rax
cmp rdx, r13
je 0x140082c52
shl rdx, 4
shl rdx, 1
add rdx, r10
cmp rax, rdx
je 0x140082c52
xchg rdx, r10
movups xmm0, xmmword [r10]
xchg rdx, r10
xchg r8, rax
movups xmm2, xmmword [r8]
xchg r8, rax
xchg rsi, rax
movups xmm3, xmmword [rsi + 0x10]
xchg rsi, rax
xchg r10, rax
movups xmmword [r10], xmm0
xchg r10, rax
xchg rdx, r8
movups xmm1, xmmword [r8 + 0x10]
xchg rdx, r8
movups xmmword [rax + 0x10], xmm1
xchg rdi, rdx
movups xmmword [rdi], xmm2
xchg rdx, rdi
xchg rbp, rdx
movups xmmword [rbp + 0x10], xmm3
xchg rdx, rbp
neg rax
add rax, 0xffffffffffffffe0
neg rax
mov r13, r12
mov qword [rsp + 0x30], rax
cmp rax, r9
jne 0x1400828fc
mov r15, qword [rsp]
mov r12, qword [rsp + 0x10]
mov rdi, qword [rsp + 0x18]
xchg rsi, rdx
mov rdx, qword [rsp + 0x48]
xchg rdx, rsi
xchg rbp, r10
mov r10, qword [rsp + 0x40]
xchg rbp, r10
xchg rdi, rbx
mov rdi, qword [rsp + 0x38]
xchg rdi, rbx
mov r13, qword [rsp + 8]
add rsp, 0x20
nop
add rsp, 8
mov r14, qword [rsp - 8]
ret