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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
lea rbp, [rsp - 0x1510]
mov eax, 0x1610
call fcn.1402aa5b0
sub rsp, rax
mov rax, qword [0x140554040]
xor rax, rsp
mov qword [rbp + 0x1500], rax
movsxd rsi, ecx
lea rcx, [rsp + 0x20]
call fcn.1400020f0
mov dword [rbp + 0x14f4], 0xffffffff
mov r8d, dword [rax]
mov dword [rbp + 0x174], r8d
mov edx, 1
mov ebx, 0x270
nop dword [rax]
nop word [rax + rax]
mov eax, r8d
shr eax, 0x1e
xor eax, r8d
imul r8d, eax, 0x6c078965
add r8d, edx
mov dword [rbp + rdx*4 + 0x174], r8d
inc rdx
cmp rdx, rbx
jb 0x140004ac0
mov dword [rbp + 0x170], ebx
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0x38], xmm0
movups xmmword [rsp + 0x48], xmm0
movups xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], rax
xor edx, edx
lea rcx, [rsp + 0x38]
call fcn.140158760
nop
xor edx, edx
mov r8d, 0x150
lea rcx, [rbp + 0x20]
call sub.VCRUNTIME140.dll_memset
xor edx, edx
lea rcx, [rbp + 0x20]
call fcn.14015f490
nop
mov r8, 0xffffffffffffffff
lea rdx, [rsp + 0x40]
lea rcx, [rbp + 0x20]
call fcn.140160220
xor edx, edx
mov r8d, 0xb0
lea rcx, [rsp + 0x70]
call sub.VCRUNTIME140.dll_memset
lea rdx, [rbp + 0x20]
lea rcx, [rsp + 0x70]
call fcn.140158a50
nop
xor edi, edi
mov qword [rsp + 0x30], rdi
cmp esi, 0xa
ja case.0x140004b83.8
lea rdx, [0x140000000]
mov ecx, dword [rdx + rsi*4 + 0x4df4]
add rcx, rdx
jmp rcx
lea r8, [rbp + 0x178]
nop dword [rax]
mov edx, dword [r8 - 4]
xor edx, dword [r8]
btr edx, 0x1f
xor edx, dword [r8 - 4]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
and ecx, 0x9908b0df
shr edx, 1
xor ecx, edx
xor ecx, dword [r8 + 0x630]
mov dword [r8 + 0x9bc], ecx
lea r8, [r8 + 4]
sub rbx, 1
jne 0x140004b90
mov eax, dword [rbp + 0x170]
mov edx, dword [rbp + rax*4 + 0x174]
mov eax, edx
shr eax, 0xb
and eax, dword [rbp + 0x14f4]
xor edx, eax
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and eax, 0xffffdf8c
shl eax, 0xf
xor edx, eax
mov ecx, edx
shr ecx, 0x12
xor ecx, edx
mov eax, ecx
shr rax, 0x20
mov qword [rsp + 0x20], 3
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x2c], eax
call fcn.1400048e0
lea r9, [rsp + 0x20]
mov r8, rax
mov edx, 0x1b7
lea rcx, [rsp + 0x70]
call fcn.140161010
jmp case.0x140004b83.8
lea rcx, [rbp + 0x170]
call fcn.1400280f0
mov ecx, eax
shr rcx, 0x20
mov qword [rsp + 0x20], 3
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x2c], ecx
lea r8, [rsp + 0x20]
mov edx, 0x299
jmp 0x140004d4d
call fcn.1400048e0
mov edx, 0x261
jmp 0x140004d4a
lea rcx, [rbp + 0x170]
call fcn.1400280f0
mov ecx, eax
shr rcx, 0x20
mov qword [rsp + 0x20], 3
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x2c], ecx
lea r8, [rsp + 0x20]
mov edx, 0x3f
jmp 0x140004d4d
call fcn.1400048e0
mov rbx, rax
call fcn.1400048e0
mov r9, rbx
mov r8, rax
mov edx, 0x1eb
lea rcx, [rsp + 0x70]
call fcn.140161010
jmp case.0x140004b83.8
call fcn.1400048e0
mov rbx, rax
call fcn.1400048e0
mov r9, rbx
mov r8, rax
mov edx, 0x6a7
lea rcx, [rsp + 0x70]
call fcn.140161010
jmp case.0x140004b83.8
call fcn.1400048e0
mov rbx, rax
call fcn.1400048e0
mov r9, rbx
mov r8, rax
mov edx, reloc.WS2_32.dll_socket
lea rcx, [rsp + 0x70]
call fcn.140161010
jmp case.0x140004b83.8
call fcn.1400048e0
mov rbx, rax
call fcn.1400048e0
mov r9, rbx
mov r8, rax
mov edx, 0x310
lea rcx, [rsp + 0x70]
call fcn.140161010
jmp case.0x140004b83.8
call fcn.1400048e0
mov edx, 0x144
mov r8, rax
lea rcx, [rsp + 0x70]
call fcn.140161040
mov rax, qword [rsp + 0x38]
lea r8, [rbp + 0x20]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x38]
mov rax, qword [rax + 8]
call qword [case.0x14001f545.0]
test eax, eax
jne 0x140004da7
lea rcx, [rbp + 0x20]
call fcn.14015fdc0
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rdi, rax
lea rcx, [rbp + 0x20]
call fcn.14015fdc0
mov r8, rax
mov rdx, qword [rsp + 0x30]
mov rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
nop
lea rcx, [rsp + 0x70]
call fcn.140158aa0
nop
lea rcx, [rbp + 0x20]
call fcn.14015f5c0
nop
lea rcx, [rsp + 0x38]
call fcn.1401587d0
mov rax, rdi
mov rcx, qword [rbp + 0x1500]
xor rcx, rsp
call fcn.1400e9c90
lea r11, [rsp + 0x1610]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov rsp, r11
pop rbp
ret