Function at 0x14002b420
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, [0x14013b628]
movaps xmm7, xmmword [0x1400cd2b0]
movaps xmm8, xmmword [0x1400cd2c0]
movdqa xmm9, xmmword [0x1400cd2d0]
movabs r14, 0x71d67fffeda60000
mov edi, 0x24
movabs r15, 0xb5026f5aa96619e9
jmp 0x14002b4cd
lea rdx, [rbp - 0x20]
mov r8d, 3
mov r9d, 0xffffffff
call fcn.14009c7c0
test eax, eax
jne 0x14002bd82
movaps xmmword [rbp - 0x20], xmm6
mov qword [rbp - 0x10], 0
mov qword [rbp - 8], setsockopt
xor eax, eax
jmp 0x14002b512
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 0x14002bb90
mov dword [rbp - 0x2c], eax
mov eax, dword [0x14013c9b8]
mov ecx, dword [0x14013ce80]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 0x30]
jg 0x14002bb58
mov eax, dword [0x14013b628]
cmp eax, 0x138
jne 0x14002b5c0
movq xmm0, qword [0x14013b630]
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
pshufd xmm0, xmm1, 0xa0
pslld xmm0, 0x1f
psrad xmm0, 0x1f
pand xmm0, xmm9
movdqu xmm3, xmmword [rbx + rax*8 + 0xea8]
pxor xmm3, xmm0
pxor xmm3, xmm2
movdqu xmmword [rbx + rax*8 + 0x1388], xmm3
movdqa xmm0, xmm1
add rax, 2
jne 0x14002b560
mov eax, 0x138
jmp 0x14002b722
cmp eax, 0x270
jb 0x14002b722
movq xmm0, qword [0x14013bff0]
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
pshufd xmm0, xmm1, 0xa0
pslld xmm0, 0x1f
psrad xmm0, 0x1f
pand xmm0, xmm9
movdqu xmm3, xmmword [rbx + rax*8 + 0x1388]
pxor xmm3, xmm0
pxor xmm3, xmm2
movdqu xmmword [rbx + rax*8 + 0x4e8], xmm3
movdqa xmm0, xmm1
add rax, 2
jne 0x14002b5e0
movq xmm0, qword [0x14013c4d0]
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
pshufd xmm1, xmm0, 0xa0
pslld xmm1, 0x1f
psrad xmm1, 0x1f
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 0x14002b650
pshufd xmm0, xmm0, 0xee
movq rcx, xmm0
and rcx, 0xffffffff80000000
mov rax, qword [0x14013c9a8]
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 [0x14013bb00]
xor rcx, rdx
mov qword [0x14013bfe0], rcx
and rax, 0xffffffff80000000
mov rcx, qword [0x14013b630]
mov edx, ecx
and edx, 0x7ffffffe
or rdx, rax
and ecx, 1
neg rcx
and rcx, r15
xor rcx, qword [0x14013bb08]
shr rdx, 1
xor rcx, rdx
mov qword [0x14013bfe8], rcx
xor eax, eax
lea ecx, [rax + 1]
mov dword [0x14013b628], ecx
mov eax, eax
mov rax, qword [rbx + rax*8 + 8]
mov rdx, rax
shr rdx, 0x1d
and rdx, qword [0x14013c9b0]
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 0x14002b9c6
jmp 0x14002b7d4
mov ecx, 0x138
mov eax, ecx
mov rax, qword [rbx + rax*8 + 8]
mov rdx, rax
shr rdx, 0x1d
and rdx, qword [0x14013c9b0]
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 0x14002b9c0
cmp ecx, 0x138
jne 0x14002b850
movq xmm0, qword [0x14013b630]
pshufd xmm0, xmm0, 0x44
mov rax, 0xfffffffffffffec8
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
pshufd xmm0, xmm1, 0xa0
pslld xmm0, 0x1f
psrad xmm0, 0x1f
pand xmm0, xmm9
movdqu xmm3, xmmword [rbx + rax*8 + 0xea8]
pxor xmm3, xmm0
pxor xmm3, xmm2
movdqu xmmword [rbx + rax*8 + 0x1388], xmm3
movdqa xmm0, xmm1
add rax, 2
jne 0x14002b7f0
jmp 0x14002b780
cmp ecx, 0x270
jb 0x14002b785
movq xmm0, qword [0x14013bff0]
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
pshufd xmm0, xmm1, 0xa0
pslld xmm0, 0x1f
psrad xmm0, 0x1f
pand xmm0, xmm9
movdqu xmm3, xmmword [rbx + rax*8 + 0x1388]
pxor xmm3, xmm0
pxor xmm3, xmm2
movdqu xmmword [rbx + rax*8 + 0x4e8], xmm3
movdqa xmm0, xmm1
add rax, 2
jne 0x14002b870
movq xmm0, qword [0x14013c4d0]
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
pshufd xmm1, xmm0, 0xa0
pslld xmm1, 0x1f
psrad xmm1, 0x1f
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 0x14002b8e0
pshufd xmm0, xmm0, 0xee
movq rcx, xmm0
and rcx, 0xffffffff80000000
mov rax, qword [0x14013c9a8]
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 [0x14013bb00]
xor rcx, rdx
mov qword [0x14013bfe0], rcx
and rax, 0xffffffff80000000
mov rcx, qword [0x14013b630]
mov edx, ecx
and edx, 0x7ffffffe
or rdx, rax
and ecx, 1
neg rcx
and rcx, r15
xor rcx, qword [0x14013bb08]
shr rdx, 1
xor rcx, rdx
mov qword [0x14013bfe8], rcx
xor ecx, ecx
jmp 0x14002b785
mov dword [0x14013b628], ecx
lea rax, str.ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
movzx esi, byte [rdx + rax]
mov r12, qword [rbp - 0x10]
mov r15, qword [rbp - 8]
cmp r12, r15
jae 0x14002ba00
lea rax, [r12 + 1]
mov qword [rbp - 0x10], rax
lea rax, [rbp - 0x20]
cmp r15, 0x10
jb 0x14002b4f0
mov rax, qword [rbp - 0x20]
jmp 0x14002b4f0
movabs r14, 0x7fffffffffffffff
cmp r12, r14
je 0x14002bdc8
lea rdi, [r12 + 1]
cmp r12, 0xffffffffffffffff
jl 0x14002ba60
mov rax, r15
shr rax, 1
mov rcx, rax
xor rcx, r14
cmp rcx, r15
jb 0x14002ba60
mov rcx, rdi
or rcx, 0xf
add rax, r15
cmp rcx, rax
mov r14, rax
cmova r14, rcx
lea rcx, [r14 + 1]
cmp rcx, 0x1000
jb 0x14002bb37
cmp rcx, 0xffffffffffffffd9
jae 0x14002bdd2
nop
lea rcx, [r14 + 0x28]
call fcn.14009a7a0
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 0x14002baf0
mov rdi, qword [rbp - 0x20]
mov rcx, r13
mov rdx, rdi
mov r8, r12
call fcn.1400c91a0
mov byte [r13 + r12], sil
mov byte [r13 + r12 + 1], 0
lea rdx, [r15 + 1]
cmp rdx, 0x1000
movabs r14, 0x71d67fffeda60000
jb 0x14002bad9
mov rax, qword [rdi - 8]
add rdi, 0xfffffffffffffff8
sub rdi, rax
cmp rdi, 0x20
jae 0x14002bdcd
add r15, 0x28
mov rdx, r15
mov rdi, rax
movabs r15, 0xb5026f5aa96619e9
mov rcx, rdi
call fcn.14009a7e4
jmp 0x14002bb1e
mov rcx, r13
lea rdx, [rbp - 0x20]
mov r8, r12
call fcn.1400c91a0
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 0x14002b512
jmp 0x14002bb90
test rcx, rcx
je 0x14002bb49
call fcn.14009a7a0
mov r13, rax
jmp 0x14002ba78
mov r14, 0xffffffffffffffff
xor r13d, r13d
jmp 0x14002ba78
lea rcx, [0x14013c9b8]
call fcn.14009ab34
cmp dword [0x14013c9b8], 0xffffffff
jne 0x14002b53a
mov rcx, rbx
call fcn.14002d090
lea rcx, [0x14013c9b8]
call fcn.14009aac8
jmp 0x14002b53a
mov rax, qword [rbp - 0x28]
cmp qword [rax + 0x10], 0
je 0x14002bc5a
mov rax, qword [rbp - 0x28]
cmp qword [rax + 0x18], 0x10
jb 0x14002bbb1
mov rax, qword [rbp - 0x28]
mov rax, qword [rax]
cmp byte [rax], 0x2e
je 0x14002bbf2
mov rax, qword [rbp - 0x10]
mov rcx, qword [rbp - 8]
cmp rax, rcx
jae 0x14002bbe1
lea rdx, [rax + 1]
mov qword [rbp - 0x10], rdx
lea rdx, [rbp - 0x20]
cmp rcx, 0x10
jb 0x14002bbd9
mov rdx, qword [rbp - 0x20]
mov word [rdx + rax], 0x2e
jmp 0x14002bbf2
mov edx, 1
lea rcx, [rbp - 0x20]
mov r9b, 0x2e
call fcn.1400044d0
mov r9, qword [rbp - 0x28]
mov r8, qword [r9 + 0x10]
cmp qword [r9 + 0x18], 0x10
jb 0x14002bc08
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 0x14002bc30
mov qword [rsp + 0x20], r8
lea rcx, [rbp - 0x20]
mov rdx, r8
call fcn.140008a00
jmp 0x14002bc5a
lea rsi, [rcx + r8]
mov qword [rbp - 0x10], rsi
lea rdi, [rbp - 0x20]
cmp rax, 0x10
jb 0x14002bc46
mov rdi, qword [rbp - 0x20]
add rcx, rdi
mov rdx, r9
call fcn.1400c91a0
mov byte [rdi + rsi], 0
mov edi, 0x24
lea rcx, [rbp - 0x50]
call fcn.14002c3c0
mov rcx, qword [rbp]
lea rax, [rbp - 0x50]
cmp rax, rcx
je 0x14002bcd0
mov rax, qword [rcx + 0x18]
cmp rax, 8
jb 0x14002bcb9
mov rcx, qword [rcx]
lea rdx, [rax*2 + 2]
cmp rdx, 0x1000
jb 0x14002bcb0
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x14002bdfe
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, r8
call fcn.14009a7e4
mov rcx, qword [rbp]
movdqu xmm0, xmmword [rbp - 0x50]
movdqu xmm1, xmmword [rbp - 0x40]
movdqu xmmword [rcx + 0x10], xmm1
movdqu xmmword [rcx], xmm0
jmp 0x14002bd20
mov rax, qword [rbp - 0x38]
cmp rax, 8
jb 0x14002bd20
mov rcx, qword [rbp - 0x50]
lea rdx, [rax*2 + 2]
cmp rdx, 0x1000
jb 0x14002bd11
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x14002be03
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, r8
call fcn.14009a7e4
mov rcx, qword [rbp]
nop word [rax + rax]
lea rdx, [rbp - 0x20]
call fcn.14002c550
mov rax, qword [rbp - 8]
cmp rax, 0x10
jb 0x14002bd68
mov rcx, qword [rbp - 0x20]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x14002bd63
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x14002bdf9
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.14009a7e4
mov rax, qword [rbp]
cmp qword [rax + 0x18], 8
mov rcx, rax
jb 0x14002b4b0
mov rcx, qword [rax]
jmp 0x14002b4b0
cmp eax, 0x35
ja 0x14002bd99
mov ecx, eax
movabs rdx, 0x2000000000000c
bt rdx, rcx
jb 0x14002bd9e
cmp eax, 0x7b
jne 0x14002bdd7
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.140004740
call fcn.1400a4324
call fcn.140003800
mov dword [rbp - 0x50], eax
lea rax, [0x1400cbaa8]
mov qword [rbp - 0x48], rax
lea rcx, str.exists
lea rdx, [rbp - 0x50]
mov r8, qword [rbp]
call fcn.140010670
call fcn.1400a4324
call fcn.1400a4324
call fcn.1400a4324
int3