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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r14
push r15
mov eax, 0x1400
call fcn.14009c8a0
sub rsp, rax
mov rax, qword [0x1400cd0c0]
xor rax, rsp
mov qword [rsp + 0x13f8], rax
mov rsi, rcx
mov qword [rsp + 0x48], rcx
xor r14d, r14d
mov dword [rsp + 0x24], r14d
xorps xmm0, xmm0
movups xmmword [rcx], xmm0
mov qword [rcx + 0x10], r14
mov qword [rcx + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rcx], r14b
mov r15d, 1
mov dword [rsp + 0x24], r15d
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov edx, eax
mov dword [rsp + 0x13d4], 0xffffffff
mov dword [rsp + 0x54], eax
mov ecx, r15d
nop dword [rax]
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, ecx
mov dword [rsp + rcx*4 + 0x54], edx
inc rcx
cmp rcx, 0x270
jb 0x14001e610
mov dword [rsp + 0x50], 0x270
movzx edi, byte [rsp + 0x20]
movzx ebx, byte [rsp + 0x20]
lea rcx, [rsp + 0x50]
call fcn.14003f6b0
mov r9d, eax
shl r9, 4
shr r9, 0x20
cmp r9d, 0xa
jge 0x14001e75b
lea r10, [rsp + 0x13f5]
test r9d, r9d
jns 0x14001e6b0
neg r9d
dec r10
mov eax, 0xcccccccd
mul r9d
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r9b, cl
add r9b, 0x30
mov byte [r10], r9b
mov r9d, edx
test edx, edx
jne 0x14001e670
dec r10
mov byte [r10], reloc.WLDAP32.dll_Ordinal_45
jmp 0x14001e6da
dec r10
mov eax, 0xcccccccd
mul r9d
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r9b, cl
add r9b, 0x30
mov byte [r10], r9b
mov r9d, edx
test edx, edx
jne 0x14001e6b0
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x13f5]
mov rdx, r10
lea rcx, [rsp + 0x28]
call fcn.14003e610
or r15d, 6
mov dword [rsp + 0x24], r15d
lea rdx, [rsp + 0x28]
cmp qword [rsp + 0x40], 0xf
cmova rdx, qword [rsp + 0x28]
mov r8, qword [rsp + 0x38]
mov rcx, rsi
call fcn.14003e390
nop
mov rdx, qword [rsp + 0x40]
cmp rdx, 0xf
jbe 0x14001e79c
inc rdx
mov rcx, qword [rsp + 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001e754
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001e833
call fcn.14009bff0
jmp 0x14001e79c
add r9b, 0x57
mov rcx, qword [rsi + 0x10]
mov rdx, qword [rsi + 0x18]
cmp rcx, rdx
jae 0x14001e78b
lea rax, [rcx + 1]
mov qword [rsi + 0x10], rax
mov rax, rsi
cmp rdx, 0xf
jbe 0x14001e780
mov rax, qword [rsi]
mov byte [rax + rcx], r9b
mov byte [rax + rcx + 1], 0
jmp 0x14001e79c
movzx r8d, dil
mov edx, 1
mov rcx, rsi
call fcn.14001c720
lea ebp, [r14 + 1]
mov eax, ebp
and eax, 0x80000003
jge 0x14001e7b0
dec eax
or eax, 0xfffffffc
inc eax
test eax, eax
jne 0x14001e7f7
cmp r14d, 0xf
je 0x14001e7f7
mov rcx, qword [rsi + 0x10]
mov rdx, qword [rsi + 0x18]
cmp rcx, rdx
jae 0x14001e7e3
lea rax, [rcx + 1]
mov qword [rsi + 0x10], rax
mov rax, rsi
cmp rdx, 0xf
jbe 0x14001e7db
mov rax, qword [rsi]
mov word [rax + rcx], reloc.WLDAP32.dll_Ordinal_45
jmp 0x14001e7f7
mov r9b, reloc.WLDAP32.dll_Ordinal_45
movzx r8d, bl
mov edx, 1
mov rcx, rsi
call fcn.14001c720
mov r14d, ebp
cmp ebp, 0x10
jl 0x14001e641
mov rax, rsi
mov rcx, qword [rsp + 0x13f8]
xor rcx, rsp
call fcn.14009bba0
lea r11, [rsp + 0x1400]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rdi
ret
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3