Function at 0x1400049c0
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 r12
push r13
push r14
push r15
sub rsp, 0x50
mov rsi, rcx
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x48], rcx
xor r12d, r12d
mov dword [rsp + 0x24], r12d
lea edi, [r12 + 0x10]
mov rax, qword gs:[0x58]
mov rbx, qword [rax]
mov eax, reloc.WS2_32.dll_recv
mov eax, dword [rax + rbx]
cmp dword [0x14010ab78], eax
jle 0x140004a71
lea rcx, [0x14010ab78]
call fcn.1400626e8
cmp dword [0x14010ab78], 0xffffffff
jne 0x140004a71
mov qword [0x14010ab58], r12
mov qword [0x14010ab68], r12
mov qword [0x14010ab70], 0xf
lea r8d, [r12 + 0x3e]
lea rdx, str.0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
lea rcx, [0x14010ab58]
call fcn.140003990
lea rcx, [0x14007c450]
call fcn.140062a7c
nop
lea rcx, [0x14010ab78]
call fcn.140062688
mov r14d, 0x13b8
mov eax, dword [r14 + rbx]
mov r15d, 0x30
mov ebp, 0xffffffff
test al, 1
jne 0x140004ae1
or eax, 1
mov dword [r14 + rbx], eax
mov edi, r15d
add rdi, rbx
call fcn.140060208
mov ecx, eax
mov dword [rdi + 0x1384], ebp
mov dword [rdi + 4], eax
mov edx, 1
lea r8, [rdi + 8]
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edx
mov dword [r8], ecx
inc rdx
lea r8, [r8 + 4]
cmp rdx, 0x270
jb 0x140004ab0
mov dword [rdi], 0x270
mov eax, dword [r14 + rbx]
mov edi, reloc.WS2_32.dll_recv
mov ebp, 0x18
test al, 2
jne 0x140004b06
or eax, 2
mov dword [r14 + rbx], eax
mov rax, qword [0x14010ab68]
add rax, 0xfffffffffffffffe
mov qword [rbp + rbx], r12
mov qword [rbp + rbx + 8], rax
mov qword [rsi], r12
mov qword [rsi + 0x10], r12
mov qword [rsi + 0x18], send
mov byte [rsi], 0
mov dword [rsp + 0x24], 1
mov rdx, rdi
mov rcx, rsi
call fcn.140009e40
mov qword [rsi + 0x10], 0
mov eax, ebp
add rax, rbx
mov qword [rsp + 0x40], rax
mov r14d, r15d
add r14, rbx
movzx ebx, byte [rsp + 0x20]
nop dword [rax + rax]
dec rdi
mov qword [rsp + 0x38], rdi
mov r13, qword [rax + 8]
mov rax, qword [rax]
mov qword [rsp + 0x28], rax
mov rdi, 0xffffffffffffffff
mov ecx, 0xffffffff
mov r12d, 0x40
nop word [rax + rax]
dec r12
shr rdi, 1
cmp rdi, rcx
ja 0x140004b80
sub r13, rax
cmp r13, 0xffffffffffffffff
jne 0x140004bcd
xor esi, esi
xor ebp, ebp
nop dword [rax + rax]
lea rcx, [r12 - 1]
shl rsi, cl
add rsi, rsi
nop dword [rax + rax]
mov rcx, r14
call fcn.14000aa00
mov eax, eax
cmp rax, rdi
ja 0x140004bb0
or rsi, rax
add rbp, r12
cmp rbp, 0x40
jb 0x140004ba0
jmp 0x140004c44
lea r9, [r13 + 1]
xor esi, esi
xor ebp, ebp
test r13, r13
je 0x140004c19
nop word [rax + rax]
lea rcx, [r12 - 1]
shl rsi, cl
add rsi, rsi
nop dword [rax + rax]
mov rcx, r14
call fcn.14000aa00
mov eax, eax
cmp rax, rdi
ja 0x140004bf0
or rsi, rax
lea rcx, [r12 - 1]
shl rbp, cl
add rbp, rbp
or rbp, rdi
cmp rbp, r13
jb 0x140004be0
lea r9, [r13 + 1]
xor edx, edx
mov rax, rbp
div r9
mov r8, rdx
mov rcx, rax
xor edx, edx
mov rax, rsi
div r9
cmp rax, rcx
jb 0x140004c39
cmp r8, r13
jne 0x140004bd1
xor edx, edx
mov rax, rsi
div r9
mov rsi, rdx
lea rax, [0x14010ab58]
cmp qword [0x14010ab70], 0x10
cmovae rax, qword [0x14010ab58]
add rax, rsi
mov rcx, qword [rsp + 0x28]
movzx r9d, byte [rax + rcx]
mov rsi, qword [rsp + 0x30]
mov rcx, qword [rsi + 0x10]
mov rdx, qword [rsi + 0x18]
cmp rcx, rdx
jae 0x140004c99
lea rax, [rcx + 1]
mov qword [rsi + 0x10], rax
mov rax, rsi
cmp rdx, 0x10
jb 0x140004c8e
mov rax, qword [rsi]
mov byte [rax + rcx], r9b
mov byte [rax + rcx + 1], 0
jmp 0x140004caa
movzx r8d, bl
mov edx, 1
mov rcx, rsi
call fcn.140009fb0
mov rdi, qword [rsp + 0x38]
test rdi, rdi
mov rax, qword [rsp + 0x40]
jne 0x140004b50
mov rax, rsi
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret