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

Disassembly:
push rbp
push rbx
lea rbp, [rsp - 0x13b8]
mov eax, 0x14b8
call fcn.140145640
sub rsp, rax
movss xmm1, dword [rcx + 0x24]
mov rbx, rcx
mov qword [rsp + 0x14a8], rdi
movaps xmmword [rsp + 0x1480], xmm7
movaps xmmword [rsp + 0x1460], xmm9
movaps xmmword [rsp + 0x1450], xmm10
movaps xmmword [rsp + 0x1440], xmm11
movaps xmmword [rsp + 0x1420], xmm13
movss xmm13, dword [0x1401c6f9c]
mulss xmm1, xmm13
movaps xmmword [rsp + 0x1410], xmm14
movaps xmm0, xmm1
call fcn.140145ff0
movss xmm4, dword [0x1401c3620]
movaps xmm1, xmm0
shufps xmm1, xmm0, 1
xorps xmm1, xmm4
movss dword [rbx + 0x38], xmm0
movss dword [rbx + 0x3c], xmm1
movss xmm3, dword [rbx + 0x2c]
movaps xmm2, xmm3
mulss xmm3, xmm0
mulss xmm2, xmm1
movss dword [rbx + 0x40], xmm3
movss dword [rbx + 0x44], xmm2
movss xmm10, dword [rbx + 0x30]
movaps xmm1, xmm10
mulss xmm1, dword [0x1401beca8]
cvttss2si ecx, xmm1
cmp ecx, 0x80000000
je 0x14009f165
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
ucomiss xmm0, xmm1
je 0x14009f165
unpcklps xmm1, xmm1
movmskps eax, xmm1
and eax, 1
sub ecx, eax
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
movss xmm7, dword [0x1401bdfd0]
movaps xmm14, xmm10
mulss xmm10, dword [0x1401c8780]
mov ecx, 1
mov r8d, ecx
mov edx, 0x1571
movaps xmm9, xmmword [0x1401c87a0]
movss xmm11, dword [0x1401c8788]
addss xmm10, dword [0x1401bd170]
cvttss2si eax, xmm1
mov dword [rbp + 0x12f4], 0xffffffff
mov dword [rsp + 0x74], edx
mulss xmm14, xmm7
cmp eax, ecx
movss dword [rbp + 0x13d0], xmm10
cmova r8d, eax
mov rax, qword [rbx + 0x48]
mov qword [rbx + 0x50], rax
movss dword [rbp + 0x13d8], xmm14
nop dword [rax + rax]
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, ecx
mov dword [rsp + rcx*4 + 0x74], edx
inc rcx
cmp rcx, 0x270
jb 0x14009f1e0
mov dword [rsp + 0x70], 0x270
xorps xmm0, xmm0
movss dword [rsp + 0x2c], xmm0
mov dword [rsp + 0x20], 0x3f000000
mov dword [rsp + 0x24], 0x3f000000
mov byte [rsp + 0x28], 0
test r8d, r8d
je 0x14009f889
mov qword [rsp + 0x14b0], rsi
mov qword [rsp + 0x14a0], r14
movaps xmmword [rsp + 0x1490], xmm6
movaps xmm6, xmm10
movaps xmmword [rsp + 0x1470], xmm8
xorps xmm6, xmm4
movaps xmmword [rsp + 0x1430], xmm12
movss dword [rbp + 0x13e0], xmm6
movaps xmmword [rsp + 0x1400], xmm15
mov dword [rsp + 0x4c], 0x40a00000
mov dword [rsp + 0x3c], 0x40a00000
mov dword [rsp + 0x40], 0x40a00000
mov dword [rsp + 0x44], 0x40a00000
mov r14d, r8d
movaps xmm0, xmm11
lea r8, [rsp + 0x20]
shufps xmm0, xmm0, 0
lea rdx, [rsp + 0x70]
mov r9b, 1
movaps xmmword [rsp + 0x60], xmm0
lea rcx, [rsp + 0x20]
call fcn.1400a04e0
movaps xmm8, xmm0
lea r8, [rsp + 0x20]
mov r9b, 1
movss dword [rsp + 0x48], xmm8
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x20]
call fcn.1400a04e0
comiss xmm0, xmm7
lea rcx, [rsp + 0x3c]
mov r9b, 1
lea rax, [rbp + 0x13e8]
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x70]
movss dword [rbp + 0x13e8], xmm0
movaps xmm0, xmm9
shufps xmm0, xmm9, 0x55
mulss xmm0, dword [0x1401c6fb8]
cmovae rax, rcx
lea rcx, [rsp + 0x20]
movss xmm12, dword [rax]
maxss xmm12, dword [0x1401c8794]
mulss xmm0, dword [0x1401c876c]
mulss xmm12, xmm13
addss xmm12, xmm0
call fcn.1400a04e0
comiss xmm0, xmm7
lea rcx, [rsp + 0x40]
mov r9b, 1
lea rax, [rbp + 0x13e8]
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x70]
movss dword [rbp + 0x13e8], xmm0
movaps xmm0, xmm9
shufps xmm0, xmm9, 0xaa
mulss xmm0, dword [0x1401c6fb8]
cmovae rax, rcx
lea rcx, [rsp + 0x20]
movss xmm15, dword [rax]
maxss xmm15, dword [0x1401c8794]
mulss xmm0, dword [0x1401c876c]
mulss xmm15, xmm13
addss xmm15, xmm0
call fcn.1400a04e0
comiss xmm0, xmm7
lea rcx, [rsp + 0x44]
mov r9b, 1
lea rax, [rbp + 0x13e8]
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x70]
movss dword [rbp + 0x13e8], xmm0
movaps xmm0, xmm9
shufps xmm0, xmm9, 0xff
mulss xmm0, dword [0x1401c6fb8]
cmovae rax, rcx
lea rcx, [rsp + 0x20]
movss xmm1, dword [rax]
maxss xmm1, dword [0x1401c8794]
mulss xmm0, dword [0x1401c876c]
mulss xmm1, xmm13
addss xmm1, xmm0
movss dword [rsp + 0x58], xmm1
call fcn.1400a04e0
movaps xmm7, xmm0
lea r8, [rsp + 0x20]
mov r9b, 1
movss dword [rsp + 0x30], xmm7
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x20]
call fcn.1400a04e0
movss dword [rbp + 0x13e8], xmm0
lea rax, [rbp + 0x13e8]
lea rcx, [rbp + 0x13d0]
comiss xmm10, xmm0
cmovbe rax, rcx
lea r8, [rsp + 0x20]
mov r9b, 1
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x20]
movss xmm13, dword [rax]
maxss xmm13, xmm6
addss xmm13, xmm14
call fcn.1400a04e0
comiss xmm10, xmm0
lea rcx, [rbp + 0x13d0]
mov r9b, 1
lea rax, [rbp + 0x13e8]
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x70]
movss dword [rbp + 0x13e8], xmm0
cmovbe rax, rcx
lea rcx, [rsp + 0x20]
movss xmm0, dword [rax]
maxss xmm0, xmm6
addss xmm0, xmm14
movss dword [rsp + 0x34], xmm0
call fcn.1400a04e0
comiss xmm10, xmm0
lea rcx, [rbp + 0x13d0]
mov r9b, 1
lea rax, [rbp + 0x13e8]
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x70]
movss dword [rbp + 0x13e8], xmm0
cmovbe rax, rcx
lea rcx, [rsp + 0x20]
movss xmm0, dword [rax]
maxss xmm0, xmm6
addss xmm0, xmm14
movss dword [rsp + 0x38], xmm0
call fcn.1400a04e0
movaps xmm6, xmm0
lea r8, [rsp + 0x20]
mov r9b, 1
movss dword [rsp + 0x50], xmm6
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x20]
call fcn.1400a04e0
comiss xmm10, xmm0
lea rcx, [rbp + 0x13d0]
mov r9b, 1
lea rax, [rbp + 0x13e8]
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x70]
movss dword [rbp + 0x13e8], xmm0
cmovbe rax, rcx
lea rcx, [rsp + 0x20]
movss xmm14, dword [rax]
maxss xmm14, dword [rbp + 0x13e0]
addss xmm14, dword [rbp + 0x13d8]
call fcn.1400a04e0
comiss xmm10, xmm0
lea rcx, [rbp + 0x13d0]
mov r9b, 1
lea rax, [rbp + 0x13e8]
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x70]
movss dword [rbp + 0x13e8], xmm0
cmovbe rax, rcx
lea rcx, [rsp + 0x20]
movss xmm0, dword [rax]
maxss xmm0, dword [rbp + 0x13e0]
addss xmm0, dword [rbp + 0x13d8]
movss dword [rsp + 0x54], xmm0
call fcn.1400a04e0
comiss xmm10, xmm0
lea rax, [rbp + 0x13e8]
lea rcx, [rbp + 0x13d0]
movss dword [rbp + 0x13e8], xmm0
cmovbe rax, rcx
movss xmm0, dword [rax]
lea rax, [rsp + 0x48]
maxss xmm0, dword [rbp + 0x13e0]
addss xmm0, dword [rbp + 0x13d8]
movss dword [rsp + 0x5c], xmm0
comiss xmm8, dword [0x1401bdfd0]
lea rcx, [rsp + 0x4c]
movaps xmm0, xmm9
mulss xmm0, dword [0x1401c6fb8]
cmovae rax, rcx
mulss xmm0, dword [0x1401c876c]
movss xmm1, dword [rax]
maxss xmm1, dword [0x1401c8794]
mulss xmm1, dword [0x1401c6f9c]
addss xmm1, xmm0
movaps xmm0, xmm1
call fcn.140145ff0
mov rdx, qword [rbx + 0x50]
lea rcx, [rbp + 0x13d0]
comiss xmm10, xmm6
lea rax, [rsp + 0x50]
movss xmm6, dword [rbp + 0x13e0]
movaps xmm3, xmm0
shufps xmm3, xmm0, 1
movaps xmm2, xmm0
cmovbe rax, rcx
lea rcx, [rbp + 0x13d0]
comiss xmm10, xmm7
movss xmm1, dword [rax]
lea rax, [rsp + 0x30]
maxss xmm1, xmm6
cmovbe rax, rcx
movss xmm0, dword [rax]
maxss xmm0, xmm6
addss xmm1, dword [rbp + 0x13d8]
addss xmm0, dword [rbp + 0x13d8]
mulss xmm3, xmm1
addss xmm3, dword [rbx + 0x44]
mulss xmm2, xmm0
addss xmm2, dword [rbx + 0x40]
movss dword [rbp + 0x13e8], xmm3
movss dword [rsp + 0x30], xmm2
cmp rdx, qword [rbx + 0x58]
je 0x14009f6cd
lea rsi, [rdx + 8]
movss dword [rdx], xmm2
mov qword [rbx + 0x50], rsi
movss dword [rdx + 4], xmm3
jmp 0x14009f6e6
lea r9, [rbp + 0x13e8]
lea r8, [rsp + 0x30]
lea rcx, [rbx + 0x48]
call fcn.1400a00a0
mov rsi, qword [rbx + 0x50]
movaps xmm1, xmm12
movaps xmm0, xmm1
call fcn.140145ff0
movaps xmm1, xmm0
shufps xmm1, xmm0, 1
mulss xmm1, xmm14
mulss xmm0, xmm13
addss xmm1, dword [rbx + 0x44]
addss xmm0, dword [rbx + 0x40]
movss dword [rbp + 0x13e8], xmm1
movss dword [rsp + 0x30], xmm0
cmp rsi, qword [rbx + 0x58]
je 0x14009f734
movss dword [rsi], xmm0
movss dword [rsi + 4], xmm1
add rsi, 8
mov qword [rbx + 0x50], rsi
jmp 0x14009f750
lea r9, [rbp + 0x13e8]
mov rdx, rsi
lea r8, [rsp + 0x30]
lea rcx, [rbx + 0x48]
call fcn.1400a00a0
mov rsi, qword [rbx + 0x50]
movaps xmm1, xmm15
movaps xmm0, xmm1
call fcn.140145ff0
movaps xmm1, xmm0
shufps xmm1, xmm0, 1
mulss xmm0, dword [rsp + 0x34]
mulss xmm1, dword [rsp + 0x54]
addss xmm0, dword [rbx + 0x40]
addss xmm1, dword [rbx + 0x44]
movss dword [rsp + 0x34], xmm0
movss dword [rbp + 0x13e8], xmm1
cmp rsi, qword [rbx + 0x58]
je 0x14009f7a0
movss dword [rsi], xmm0
movss dword [rsi + 4], xmm1
add rsi, 8
mov qword [rbx + 0x50], rsi
jmp 0x14009f7bc
lea r9, [rbp + 0x13e8]
mov rdx, rsi
lea r8, [rsp + 0x34]
lea rcx, [rbx + 0x48]
call fcn.1400a00a0
mov rsi, qword [rbx + 0x50]
movss xmm0, dword [rsp + 0x58]
call fcn.140145ff0
movaps xmm1, xmm0
shufps xmm1, xmm0, 1
mulss xmm0, dword [rsp + 0x38]
mulss xmm1, dword [rsp + 0x5c]
addss xmm0, dword [rbx + 0x40]
addss xmm1, dword [rbx + 0x44]
movss dword [rsp + 0x38], xmm0
movss dword [rbp + 0x13e8], xmm1
cmp rsi, qword [rbx + 0x58]
je 0x14009f80b
lea rax, [rsi + 8]
movss dword [rsi], xmm0
mov qword [rbx + 0x50], rax
movss dword [rsi + 4], xmm1
jmp 0x14009f823
lea r9, [rbp + 0x13e8]
mov rdx, rsi
lea r8, [rsp + 0x38]
lea rcx, [rbx + 0x48]
call fcn.1400a00a0
mulss xmm11, dword [0x1401c877c]
movss xmm14, dword [rbp + 0x13d8]
movss xmm7, dword [0x1401bdfd0]
movss xmm13, dword [0x1401c6f9c]
addps xmm9, xmmword [rsp + 0x60]
sub r14, 1
jne 0x14009f293
movaps xmm15, xmmword [rsp + 0x1400]
movaps xmm12, xmmword [rsp + 0x1430]
movaps xmm8, xmmword [rsp + 0x1470]
movaps xmm6, xmmword [rsp + 0x1490]
mov r14, qword [rsp + 0x14a0]
mov rsi, qword [rsp + 0x14b0]
mov rdx, qword [rbx + 0x50]
mov rcx, qword [rbx + 0x48]
mov r8, rdx
movzx r9d, byte [rbp + 0x13d0]
sub r8, rcx
sar r8, 3
call fcn.1400a1090
mov r8, qword [rbx + 0x50]
mov rdx, qword [rbx + 0x48]
movaps xmm14, xmmword [rsp + 0x1410]
movaps xmm13, xmmword [rsp + 0x1420]
movaps xmm11, xmmword [rsp + 0x1440]
movaps xmm10, xmmword [rsp + 0x1450]
movaps xmm9, xmmword [rsp + 0x1460]
movaps xmm7, xmmword [rsp + 0x1480]
mov rdi, qword [rsp + 0x14a8]
cmp rdx, r8
je 0x14009f9f7
lea rcx, [rdx + 8]
cmp rcx, r8
je 0x14009f9f7
movss xmm5, dword [rdx]
movss xmm2, dword [0x1401c18c0]
movss xmm3, dword [0x1401c1898]
nop word [rax + rax]
movss xmm4, dword [rcx]
movss xmm1, dword [rcx + 4]
movaps xmm0, xmm4
subss xmm0, xmm5
andps xmm0, xmm2
comiss xmm0, xmm3
ja 0x14009f945
subss xmm1, dword [rdx + 4]
andps xmm1, xmm2
comiss xmm1, xmm3
jbe 0x14009f95a
mov rdx, rcx
add rcx, 8
cmp rcx, r8
je 0x14009f9f7
movaps xmm5, xmm4
jmp 0x14009f920
add rcx, 8
cmp rcx, r8
je 0x14009f9b1
nop dword [rax]
nop word [rax + rax]
movss xmm4, dword [rcx]
movss xmm1, dword [rcx + 4]
movaps xmm0, xmm4
subss xmm0, dword [rdx]
andps xmm0, xmm2
comiss xmm0, xmm3
ja 0x14009f995
subss xmm1, dword [rdx + 4]
andps xmm1, xmm2
comiss xmm1, xmm3
jbe 0x14009f9a8
add rdx, 8
cmp rdx, rcx
je 0x14009f9a8
movss dword [rdx], xmm4
mov eax, dword [rcx + 4]
mov dword [rdx + 4], eax
add rcx, 8
cmp rcx, r8
jne 0x14009f970
add rdx, 8
cmp rdx, r8
je 0x14009f9f7
mov r11, qword [rbx + 0x50]
cmp r8, r11
je 0x14009f9f3
mov r9, r8
mov r10, rdx
sub r9, rdx
sub r10, r8
nop
cmp rdx, r8
je 0x14009f9e6
mov eax, dword [r8]
lea rcx, [r8 + r10]
mov dword [rdx], eax
mov eax, dword [rcx + r9 + 4]
mov dword [rcx + 4], eax
add rdx, 8
add r8, 8
cmp r8, r11
jne 0x14009f9d0
mov qword [rbx + 0x50], rdx
mov rax, qword [rbx]
mov rcx, rbx
add rsp, 0x14b8
pop rbx
pop rbp
jmp qword [rax + 0x10]