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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r14
mov eax, 0x13e0
call fcn.140063b20
sub rsp, rax
mov rax, qword [0x1400d08c0]
xor rax, rsp
mov qword [rsp + 0x13d0], rax
mov rsi, rdx
mov rdi, rcx
mov qword [rsp + 0x30], rcx
xor ebp, ebp
mov dword [rsp + 0x20], ebp
mov ecx, dword [0x1400d5590]
mov rax, qword gs:[0x58]
mov edx, select
mov rbx, qword [rax + rcx*8]
add rbx, rdx
mov eax, dword [rbx]
cmp dword [0x1400d5030], eax
jg 0x140051293
mov eax, dword [rbx]
cmp dword [0x1400d5040], eax
jg 0x14005125b
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
mov qword [rdi + 0x10], rbp
mov qword [rdi + 0x18], setsockopt
mov byte [rdi], 0
mov dword [rsp + 0x20], 1
call fcn.140062398
mov edx, eax
mov dword [rsp + 0x13c4], 0xffffffff
mov dword [rsp + 0x44], eax
mov ecx, 1
nop dword [rax]
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, ecx
mov dword [rsp + rcx*4 + 0x44], edx
inc rcx
cmp rcx, 0x270
jb 0x140051140
mov dword [rsp + 0x40], 0x270
mov rbp, qword [0x1400d5038]
dec rbp
test rsi, rsi
je 0x140051230
lea r14, [0x1400d5010]
nop dword [rax]
nop word [rax + rax]
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
cmp rbp, 0xffffffffffffffff
jne 0x1400511c1
lea rcx, [rsp + 0x40]
call fcn.140050f00
mov ebx, eax
shl rbx, 0x20
lea rcx, [rsp + 0x40]
call fcn.140050f00
mov eax, eax
or rbx, rax
jmp 0x1400511d2
lea rdx, [rbp + 1]
lea rcx, [rsp + 0x28]
call fcn.140050d10
mov rbx, rax
mov rax, r14
cmp qword [0x1400d5028], 0xf
cmova rax, qword [0x1400d5010]
movzx r9d, byte [rax + rbx]
mov rcx, qword [rdi + 0x10]
mov rdx, qword [rdi + 0x18]
cmp rcx, rdx
jae 0x140051216
lea rax, [rcx + 1]
mov qword [rdi + 0x10], rax
mov rax, rdi
cmp rdx, 0xf
jbe 0x14005120b
mov rax, qword [rdi]
mov byte [rax + rcx], r9b
mov byte [rax + rcx + 1], 0
jmp 0x140051226
xor r8d, r8d
mov edx, 1
mov rcx, rdi
call fcn.14001cbe0
sub rsi, 1
jne 0x140051190
mov rax, rdi
mov rcx, qword [rsp + 0x13d0]
xor rcx, rsp
call fcn.1400633b0
lea r11, [rsp + 0x13e0]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsp, r11
pop r14
pop rdi
pop rsi
ret
lea rcx, [0x1400d5040]
call fcn.140063a98
cmp dword [0x1400d5040], 0xffffffff
jne 0x140051105
mov rax, qword [0x1400d5020]
mov qword [0x1400d5038], rax
lea rcx, [0x1400d5040]
call fcn.140063a2c
jmp 0x140051105
lea rcx, [0x1400d5030]
call fcn.140063a98
cmp dword [0x1400d5030], 0xffffffff
jne 0x1400510f7
mov ecx, 0x60
call fcn.1400633d0
mov rdx, rax
mov qword [0x1400d5010], rax
mov qword [0x1400d5020], 0x5d
mov qword [0x1400d5028], 0x5f
movaps xmm0, xmmword [str.qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890____.________:_____]
movups xmmword [rax], xmm0
movaps xmm1, xmmword [0x14008e990]
movups xmmword [rax + 0x10], xmm1
movaps xmm0, xmmword [0x14008e9a0]
movups xmmword [rax + 0x20], xmm0
movaps xmm1, xmmword [0x14008e9b0]
movups xmmword [rax + 0x30], xmm1
movaps xmm0, xmmword [0x14008e9c0]
movups xmmword [rax + 0x40], xmm0
movsd xmm0, qword [0x14008e9d0]
movsd qword [rax + 0x50], xmm0
mov eax, dword [0x14008e9d8]
mov dword [rdx + 0x58], eax
movzx eax, byte [0x14008e9dc]
mov byte [rdx + 0x5c], al
mov byte [rdx + 0x5d], 0
lea rcx, [0x140088da0]
call fcn.140063634
nop
lea rcx, [0x1400d5030]
call fcn.140063a2c
jmp 0x1400510f7