Function at 0x140044550
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, 0x13d0
call fcn.140191300
sub rsp, rax
mov rax, qword [0x140221880]
xor rax, rsp
mov qword [rsp + 0x13c0], rax
xorps xmm0, xmm0
mov rsi, rcx
movups xmmword [rcx], xmm0
mov qword [rcx + 0x10], 0
mov qword [rcx + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rcx], 0
call fcn.1401921e4
mov edx, eax
mov dword [rsp + 0x34], eax
mov ecx, 1
mov dword [rsp + 0x13b4], 0xffffffff
nop word [rax + rax]
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, ecx
mov dword [rsp + rcx*4 + 0x34], edx
inc rcx
cmp rcx, 0x270
jb 0x1400445c0
movzx ebx, byte [rsp + 0x20]
lea r15, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
mov edi, 0x270
mov ebp, reloc.WS2_32.dll_recv
mov dword [rsp + 0x30], edi
movabs r14, 0x842108421084211
cmp edi, 0x270
jne 0x140044665
lea rax, [rsp + 0x38]
mov r9d, edi
nop dword [rax]
nop word [rax + rax]
mov r8d, dword [rax - 4]
xor r8d, dword [rax]
lea rax, [rax + 4]
btr r8d, 0x1f
xor r8d, dword [rax - 8]
mov ecx, r8d
and cl, 1
neg cl
sbb edx, edx
shr r8d, 1
and edx, 0x9908b0df
xor edx, dword [rax + 0x62c]
xor edx, r8d
mov dword [rax + 0x9b8], edx
sub r9, 1
jne 0x140044620
mov edi, dword [rsp + 0x30]
jmp 0x140044740
cmp edi, 0x4e0
jb 0x140044740
xor r8d, r8d
mov eax, dword [rsp + r8*4 + 0x9f4]
mov edx, eax
xor edx, dword [rsp + r8*4 + 0x9f8]
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [rsp + r8*4 + 0x1028]
xor ecx, edx
mov dword [rsp + r8*4 + 0x34], ecx
inc r8
cmp r8, 0xe3
jb 0x140044674
mov r8d, 0xe3
nop dword [rax]
mov eax, dword [rsp + r8*4 + 0x9f4]
mov edx, eax
xor edx, dword [rsp + r8*4 + 0x9f8]
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [rsp + r8*4 - 0x358]
xor ecx, edx
mov dword [rsp + r8*4 + 0x34], ecx
inc r8
cmp r8, 0x26f
jb 0x1400446c0
mov edx, dword [rsp + 0x13b0]
mov eax, dword [rsp + 0x34]
and edx, 0x80000000
btr eax, 0x1f
or edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, edx
xor ecx, dword [rsp + 0x664]
xor edi, edi
mov dword [rsp + 0x9f0], ecx
mov dword [rsp + 0x30], edi
mov eax, edi
inc edi
mov ecx, dword [rsp + rax*4 + 0x34]
mov eax, ecx
shr eax, 0xb
and eax, dword [rsp + 0x13b4]
xor ecx, eax
mov dword [rsp + 0x30], edi
mov eax, ecx
and eax, 0xff3a58ad
shl eax, 7
xor ecx, eax
mov eax, ecx
and ecx, 0xffffdf8c
shl ecx, 0xf
xor rcx, rax
mov rax, r14
mov r8, rcx
shr r8, 0x12
xor r8, rcx
mov rcx, qword [rsi + 0x10]
mul r8
mov rax, r8
sub rax, rdx
shr rax, 1
add rax, rdx
mov rdx, qword [rsi + 0x18]
shr rax, 5
imul rax, rax, 0x3e
sub r8, rax
movzx r9d, byte [r8 + r15]
cmp rcx, rdx
jae 0x1400447cc
lea rax, [rcx + 1]
mov qword [rsi + 0x10], rax
mov rax, rsi
cmp rdx, 0xf
jbe 0x1400447c1
mov rax, qword [rsi]
mov byte [rax + rcx], r9b
mov byte [rax + rcx + 1], 0
jmp 0x1400447dd
movzx r8d, bl
mov edx, 1
mov rcx, rsi
call fcn.1400fe5c0
sub rbp, 1
jne 0x140044603
mov rax, rsi
mov rcx, qword [rsp + 0x13c0]
xor rcx, rsp
call fcn.140190770
lea r11, [rsp + 0x13d0]
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