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

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xd8
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x40], xmm9
movaps xmmword [rbp + 0x30], xmm8
movaps xmmword [rbp + 0x20], xmm7
movaps xmmword [rbp + 0x10], xmm6
mov qword [rbp + 8], 0xfffffffffffffffe
mov qword [rbp - 0x28], rdx
xorps xmm6, xmm6
movups xmmword [rcx], xmm6
mov qword [rcx + 0x10], 0
mov qword [rbp], rcx
mov qword [rcx + 0x18], 7
lea rbx, [0x1800668f0]
movaps xmm7, xmmword [0x18004bff0]
movaps xmm8, xmmword [0x18004c000]
movdqa xmm9, xmmword [0x18004c010]
movabs r14, 0x71d67fffeda60000
mov edi, 0x24
movabs r15, 0xb5026f5aa96619e9
jmp 0x18001a40d
lea rdx, [rbp - 0x20]
mov r8d, 3
mov r9d, 0xffffffff
call fcn.180025ac0
test eax, eax
jne 0x18001acd2
movaps xmmword [rbp - 0x20], xmm6
mov qword [rbp - 0x10], 0
mov qword [rbp - 8], 0xf
xor eax, eax
jmp 0x18001a452
mov byte [rax + r12], sil
mov byte [rax + r12 + 1], 0
movabs r15, 0xb5026f5aa96619e9
mov eax, dword [rbp - 0x2c]
inc eax
cmp eax, 0x14
je 0x18001aae0
mov dword [rbp - 0x2c], eax
mov eax, dword [0x180067c80]
mov ecx, dword [0x180067d14]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x18001aaa8
mov eax, dword [0x1800668f0]
cmp eax, 0x138
jne 0x18001a500
movq xmm0, qword [0x1800668f8]
pshufd xmm0, xmm0, 0x44
mov rax, 0xfffffffffffffec8
nop
movups xmm1, xmmword [rbx + rax*8 + 0x9d0]
shufps xmm0, xmm1, 0x4e
andps xmm0, xmm7
movaps xmm2, xmm1
andps xmm2, xmm8
orps xmm2, xmm0
psrlq xmm2, 1
movaps xmm0, xmm1
psllq xmm1, 0x3f
psrad xmm1, 0x1f
pshufd xmm1, xmm1, 0xf5
pand xmm1, xmm9
movdqu xmm3, xmmword [rbx + rax*8 + 0xea8]
pxor xmm3, xmm1
pxor xmm3, xmm2
movdqu xmmword [rbx + rax*8 + 0x1388], xmm3
add rax, 2
jne 0x18001a4a0
mov eax, 0x138
jmp 0x18001a665
cmp eax, 0x270
jb 0x18001a665
movq xmm0, qword [0x1800672b8]
pshufd xmm0, xmm0, 0x44
mov rax, 0xffffffffffffff64
nop
movups xmm1, xmmword [rbx + rax*8 + 0xeb0]
shufps xmm0, xmm1, 0x4e
andps xmm0, xmm7
movaps xmm2, xmm1
andps xmm2, xmm8
orps xmm2, xmm0
psrlq xmm2, 1
movaps xmm0, xmm1
psllq xmm1, 0x3f
psrad xmm1, 0x1f
pshufd xmm1, xmm1, 0xf5
pand xmm1, xmm9
movdqu xmm3, xmmword [rbx + rax*8 + 0x1388]
pxor xmm3, xmm1
pxor xmm3, xmm2
movdqu xmmword [rbx + rax*8 + 0x4e8], xmm3
add rax, 2
jne 0x18001a520
movq xmm0, qword [0x180067798]
pshufd xmm0, xmm0, 0x44
xor eax, eax
nop word cs:[rax + rax]
movdqa xmm1, xmm0
movups xmm0, xmmword [rbx + rax*8 + 0xeb0]
shufps xmm1, xmm0, 0x4e
andps xmm1, xmm7
movaps xmm2, xmm0
andps xmm2, xmm8
orps xmm2, xmm1
psrlq xmm2, 1
movaps xmm1, xmm0
psllq xmm1, 0x3f
psrad xmm1, 0x1f
pshufd xmm1, xmm1, 0xf5
pand xmm1, xmm9
movdqu xmm3, xmmword [rbx + rax*8 + 8]
pxor xmm3, xmm1
pxor xmm3, xmm2
movdqu xmmword [rbx + rax*8 + 0x4e8], xmm3
add rax, 2
cmp rax, 0x9a
jne 0x18001a590
pshufd xmm0, xmm0, 0xee
movq rcx, xmm0
and rcx, 0xffffffff80000000
mov rax, qword [0x180067c70]
mov edx, eax
and edx, 0x7ffffffe
or rdx, rcx
shr rdx, 1
mov ecx, eax
and ecx, 1
neg rcx
and rcx, r15
xor rcx, qword [0x180066dc8]
xor rcx, rdx
mov qword [0x1800672a8], rcx
and rax, 0xffffffff80000000
mov rcx, qword [0x1800668f8]
mov edx, ecx
and edx, 0x7ffffffe
or rdx, rax
and ecx, 1
neg rcx
and rcx, r15
xor rcx, qword [0x180066dd0]
shr rdx, 1
xor rcx, rdx
mov qword [0x1800672b0], rcx
xor eax, eax
lea ecx, [rax + 1]
mov dword [0x1800668f0], ecx
mov eax, eax
mov rax, qword [rbx + rax*8 + 8]
mov rdx, rax
shr rdx, 0x1d
and rdx, qword [0x180067c78]
xor rdx, rax
mov rax, rdx
shl rax, 0x11
and rax, r14
xor rax, rdx
mov edx, eax
and edx, 0x7ffbf77
shl rdx, 0x25
xor rdx, rax
mov rax, rdx
shr rax, 0x2b
xor rax, rdx
mul rdi
test rax, 0xfffffffffffffff0
jne 0x18001a916
jmp 0x18001a788
pshufd xmm0, xmm0, 0xee
movq rcx, xmm0
and rcx, 0xffffffff80000000
mov rax, qword [0x180067c70]
mov edx, eax
and edx, 0x7ffffffe
or rdx, rcx
shr rdx, 1
mov ecx, eax
and ecx, 1
neg rcx
and rcx, r15
xor rcx, qword [0x180066dc8]
xor rcx, rdx
mov qword [0x1800672a8], rcx
and rax, 0xffffffff80000000
mov rcx, qword [0x1800668f8]
mov edx, ecx
and edx, 0x7ffffffe
or rdx, rax
and ecx, 1
neg rcx
and rcx, r15
xor rcx, qword [0x180066dd0]
shr rdx, 1
xor rcx, rdx
mov qword [0x1800672b0], rcx
xor ecx, ecx
mov eax, ecx
mov rax, qword [rbx + rax*8 + 8]
mov rdx, rax
shr rdx, 0x1d
and rdx, qword [0x180067c78]
xor rdx, rax
mov rax, rdx
shl rax, 0x11
and rax, r14
xor rax, rdx
mov edx, eax
and edx, 0x7ffbf77
shl rdx, 0x25
xor rdx, rax
mov rax, rdx
shr rax, 0x2b
xor rax, rdx
mul rdi
inc ecx
test rax, 0xfffffffffffffff0
jne 0x18001a910
cmp ecx, 0x138
jne 0x18001a810
movq xmm0, qword [0x1800668f8]
pshufd xmm0, xmm0, 0x44
mov rax, 0xfffffffffffffec8
nop dword [rax + rax]
movups xmm1, xmmword [rbx + rax*8 + 0x9d0]
shufps xmm0, xmm1, 0x4e
andps xmm0, xmm7
movaps xmm2, xmm1
andps xmm2, xmm8
orps xmm2, xmm0
psrlq xmm2, 1
movaps xmm0, xmm1
psllq xmm1, 0x3f
psrad xmm1, 0x1f
pshufd xmm1, xmm1, 0xf5
pand xmm1, xmm9
movdqu xmm3, xmmword [rbx + rax*8 + 0xea8]
pxor xmm3, xmm1
pxor xmm3, xmm2
movdqu xmmword [rbx + rax*8 + 0x1388], xmm3
add rax, 2
jne 0x18001a7b0
mov ecx, 0x138
jmp 0x18001a739
cmp ecx, 0x270
jb 0x18001a739
movq xmm0, qword [0x1800672b8]
pshufd xmm0, xmm0, 0x44
mov rax, 0xffffffffffffff64
movups xmm1, xmmword [rbx + rax*8 + 0xeb0]
shufps xmm0, xmm1, 0x4e
andps xmm0, xmm7
movaps xmm2, xmm1
andps xmm2, xmm8
orps xmm2, xmm0
psrlq xmm2, 1
movaps xmm0, xmm1
psllq xmm1, 0x3f
psrad xmm1, 0x1f
pshufd xmm1, xmm1, 0xf5
pand xmm1, xmm9
movdqu xmm3, xmmword [rbx + rax*8 + 0x1388]
pxor xmm3, xmm1
pxor xmm3, xmm2
movdqu xmmword [rbx + rax*8 + 0x4e8], xmm3
add rax, 2
jne 0x18001a830
movq xmm0, qword [0x180067798]
pshufd xmm0, xmm0, 0x44
xor eax, eax
nop word cs:[rax + rax]
movdqa xmm1, xmm0
movups xmm0, xmmword [rbx + rax*8 + 0xeb0]
shufps xmm1, xmm0, 0x4e
andps xmm1, xmm7
movaps xmm2, xmm0
andps xmm2, xmm8
orps xmm2, xmm1
psrlq xmm2, 1
movaps xmm1, xmm0
psllq xmm1, 0x3f
psrad xmm1, 0x1f
pshufd xmm1, xmm1, 0xf5
pand xmm1, xmm9
movdqu xmm3, xmmword [rbx + rax*8 + 8]
pxor xmm3, xmm1
pxor xmm3, xmm2
movdqu xmmword [rbx + rax*8 + 0x4e8], xmm3
add rax, 2
cmp rax, 0x9a
jne 0x18001a8a0
jmp 0x18001a6c0
mov dword [0x1800668f0], ecx
lea rax, [0x18004c0b0]
movzx esi, byte [rdx + rax]
mov r12, qword [rbp - 0x10]
mov r15, qword [rbp - 8]
cmp r12, r15
jae 0x18001a950
lea rax, [r12 + 1]
mov qword [rbp - 0x10], rax
lea rax, [rbp - 0x20]
cmp r15, 0x10
jb 0x18001a430
mov rax, qword [rbp - 0x20]
jmp 0x18001a430
movabs r14, 0x7fffffffffffffff
cmp r12, r14
je 0x18001ad18
lea rdi, [r12 + 1]
mov rax, rdi
or rax, 0xf
js 0x18001a9b0
mov rcx, r15
shr rcx, 1
mov rdx, rcx
xor rdx, r14
cmp rdx, r15
jb 0x18001a9b0
add rcx, r15
cmp rax, rcx
mov r14, rcx
cmova r14, rax
lea rcx, [r14 + 1]
cmp rcx, 0x1000
jb 0x18001aa87
cmp rcx, 0xffffffffffffffd9
jae 0x18001ad22
nop word [rax + rax]
lea rcx, [r14 + 0x28]
call fcn.180023b28
mov r13, rax
add r13, 0x27
and r13, 0xffffffffffffffe0
mov qword [r13 - 8], rax
mov qword [rbp - 0x10], rdi
mov qword [rbp - 8], r14
cmp r15, 0x10
jb 0x18001aa40
mov rdi, qword [rbp - 0x20]
mov rcx, r13
mov rdx, rdi
mov r8, r12
call fcn.180049d60
mov byte [r13 + r12], sil
mov byte [r13 + r12 + 1], 0
lea rdx, [r15 + 1]
cmp rdx, 0x1000
movabs r14, 0x71d67fffeda60000
jb 0x18001aa29
mov rax, qword [rdi - 8]
add rdi, 0xfffffffffffffff8
sub rdi, rax
cmp rdi, 0x20
jae 0x18001ad1d
add r15, 0x28
mov rdx, r15
mov rdi, rax
movabs r15, 0xb5026f5aa96619e9
mov rcx, rdi
call fcn.180023b20
jmp 0x18001aa6e
mov rcx, r13
lea rdx, [rbp - 0x20]
mov r8, r12
call fcn.180049d60
mov byte [r13 + r12], sil
mov byte [r13 + r12 + 1], 0
movabs r14, 0x71d67fffeda60000
movabs r15, 0xb5026f5aa96619e9
mov qword [rbp - 0x20], r13
mov edi, 0x24
mov eax, dword [rbp - 0x2c]
inc eax
cmp eax, 0x14
jne 0x18001a452
jmp 0x18001aae0
test rcx, rcx
je 0x18001aa99
call fcn.180023b28
mov r13, rax
jmp 0x18001a9c8
mov r14, 0xffffffffffffffff
xor r13d, r13d
jmp 0x18001a9c8
lea rcx, [0x180067c80]
call fcn.180023f60
cmp dword [0x180067c80], 0xffffffff
jne 0x18001a47a
mov rcx, rbx
call fcn.18001dd20
lea rcx, [0x180067c80]
call fcn.180023ef4
jmp 0x18001a47a
mov rax, qword [rbp - 0x28]
cmp qword [rax + 0x10], 0
je 0x18001abaa
mov rax, qword [rbp - 0x28]
cmp qword [rax + 0x18], 0x10
jb 0x18001ab01
mov rax, qword [rbp - 0x28]
mov rax, qword [rax]
cmp byte [rax], 0x2e
je 0x18001ab42
mov rax, qword [rbp - 0x10]
mov rcx, qword [rbp - 8]
cmp rax, rcx
jae 0x18001ab31
lea rdx, [rax + 1]
mov qword [rbp - 0x10], rdx
lea rdx, [rbp - 0x20]
cmp rcx, 0x10
jb 0x18001ab29
mov rdx, qword [rbp - 0x20]
mov word [rdx + rax], 0x2e
jmp 0x18001ab42
mov edx, 1
lea rcx, [rbp - 0x20]
mov r9b, 0x2e
call fcn.18000bf60
mov r9, qword [rbp - 0x28]
mov r8, qword [r9 + 0x10]
cmp qword [r9 + 0x18], 0x10
jb 0x18001ab58
mov rax, qword [rbp - 0x28]
mov r9, qword [rax]
mov rcx, qword [rbp - 0x10]
mov rax, qword [rbp - 8]
mov rdx, rax
sub rdx, rcx
cmp rdx, r8
jae 0x18001ab80
mov qword [rsp + 0x20], r8
lea rcx, [rbp - 0x20]
mov rdx, r8
call fcn.180005420
jmp 0x18001abaa
lea rsi, [rcx + r8]
mov qword [rbp - 0x10], rsi
lea rdi, [rbp - 0x20]
cmp rax, 0x10
jb 0x18001ab96
mov rdi, qword [rbp - 0x20]
add rcx, rdi
mov rdx, r9
call fcn.180049d60
mov byte [rdi + rsi], 0
mov edi, 0x24
lea rcx, [rbp - 0x50]
call fcn.18001b530
mov rcx, qword [rbp]
lea rax, [rbp - 0x50]
cmp rax, rcx
je 0x18001ac20
mov rax, qword [rcx + 0x18]
cmp rax, 8
jb 0x18001ac09
mov rcx, qword [rcx]
lea rdx, [rax + rax]
add rdx, 2
cmp rdx, 0x1000
jb 0x18001ac00
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x18001ad4e
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, r8
call fcn.180023b20
mov rcx, qword [rbp]
movdqu xmm0, xmmword [rbp - 0x50]
movdqu xmm1, xmmword [rbp - 0x40]
movdqu xmmword [rcx + 0x10], xmm1
movdqu xmmword [rcx], xmm0
jmp 0x18001ac70
mov rax, qword [rbp - 0x38]
cmp rax, 8
jb 0x18001ac70
mov rcx, qword [rbp - 0x50]
lea rdx, [rax + rax]
add rdx, 2
cmp rdx, 0x1000
jb 0x18001ac61
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x18001ad53
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, r8
call fcn.180023b20
mov rcx, qword [rbp]
nop word [rax + rax]
lea rdx, [rbp - 0x20]
call fcn.18001b6c0
mov rax, qword [rbp - 8]
cmp rax, 0x10
jb 0x18001acb8
mov rcx, qword [rbp - 0x20]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x18001acb3
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x18001ad49
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.180023b20
mov rax, qword [rbp]
cmp qword [rax + 0x18], 8
mov rcx, rax
jb 0x18001a3f0
mov rcx, qword [rax]
jmp 0x18001a3f0
cmp eax, 0x35
ja 0x18001ace9
mov ecx, eax
movabs rdx, 0x2000000000000c
bt rdx, rcx
jb 0x18001acee
cmp eax, 0x7b
jne 0x18001ad27
mov rax, qword [rbp]
movaps xmm6, xmmword [rbp + 0x10]
movaps xmm7, xmmword [rbp + 0x20]
movaps xmm8, xmmword [rbp + 0x30]
movaps xmm9, xmmword [rbp + 0x40]
add rsp, 0xd8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.1800028b0
call fcn.18002c5dc
call fcn.180002cd0
mov dword [rbp - 0x50], eax
lea rax, [0x1800655c0]
mov qword [rbp - 0x48], rax
lea rcx, str.exists
lea rdx, [rbp - 0x50]
mov r8, qword [rbp]
call fcn.18001b7c0
call fcn.18002c5dc
call fcn.18002c5dc
call fcn.18002c5dc
int3