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

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
lea rbp, [rax - 0x5f]
sub rsp, 0x90
movaps xmmword [rax - 0x18], xmm6
mov rbx, rcx
mov qword [rbp + 0x37], rcx
xor edi, edi
mov dword [rbp + 7], edi
mov ecx, dword [0x140852ab4]
mov rax, qword gs:[0x58]
mov edx, 4
mov rax, qword [rax + rcx*8]
lea rsi, [0x140851420]
mov eax, dword [rdx + rax]
cmp dword [0x1408527a8], eax
jg 0x14079efcf
movups xmm0, xmmword [0x14081c6b0]
movups xmmword [rbp + 0xf], xmm0
movzx eax, byte [0x14081c6c0]
mov byte [rbp + 0x1f], al
mov ecx, edi
cmp dword [reloc.WS2_32.dll_accept], 2
jl 0x14079ede2
movdqa xmm5, xmmword [0x14081db40]
movdqa xmm4, xmmword [0x14081dba0]
movdqa xmm6, xmmword [0x14081db60]
movdqa xmm0, xmmword [0x14081db90]
movdqa xmmword [rbp - 9], xmm0
lea rdx, [rbp + 0x13]
mov r8d, dword [rbp - 9]
nop word [rax + rax]
movd xmm2, ecx
pshufd xmm2, xmm2, 0
paddd xmm2, xmm5
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x14081db80]
packuswb xmm2, xmm2
movd xmm0, r8d
paddb xmm2, xmm0
movd xmm0, dword [rdx - 4]
xorps xmm2, xmm0
movd dword [rdx - 4], xmm2
lea eax, [rcx + 4]
movd xmm3, eax
pshufd xmm3, xmm3, 0
paddd xmm3, xmm5
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x14081db80]
packuswb xmm2, xmm2
movd xmm0, r8d
paddb xmm2, xmm0
movd xmm0, dword [rdx]
xorps xmm2, xmm0
movd dword [rdx], xmm2
add ecx, 8
lea rdx, [rdx + 8]
cmp ecx, 0x10
jl 0x14079ece0
cmp ecx, 0x11
jge 0x14079ee1c
movsxd rax, ecx
lea r8, [rbp + 0xf]
add r8, rax
nop dword [rax]
mov eax, 0x4bda12f7
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul edx, eax, 0x36
movzx eax, cl
sub al, dl
add al, 0x34
xor byte [r8], al
inc ecx
lea r8, [r8 + 1]
cmp ecx, 0x11
jl 0x14079edf0
mov dword [rbp - 9], 0
mov dword [rbp - 5], 0x10001
mov qword [rbp - 1], 0x10001
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], rdi
mov qword [rbx + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rbx], 0
mov dword [rbp + 7], 1
mov qword [rbp + 0x27], rsi
mov qword [rbp + 0x2f], rsi
cmp byte [rbp + rdi - 9], 0
je 0x14079eeac
mov rcx, qword [rbx + 0x10]
mov rdx, qword [rbx + 0x18]
mov rax, rdx
sub rax, rcx
cmp rax, 1
jb 0x14079ee8d
lea rax, [rcx + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp rdx, 0xf
jbe 0x14079ee85
mov rax, qword [rbx]
mov word [rax + rcx], reloc.WLDAP32.dll_Ordinal_45
jmp 0x14079eeac
mov qword [rsp + 0x20], 1
lea r9, reloc.WLDAP32.dll_Ordinal_45
xor r8d, r8d
lea edx, [r8 + 1]
mov rcx, rbx
call fcn.14078b470
lea rcx, [rbp + 0x27]
call fcn.14079a610
mov eax, eax
shl rax, 4
shr rax, 0x20
cdqe
movzx r9d, byte [rbp + rax + 0xf]
mov rcx, qword [rbx + 0x10]
mov rdx, qword [rbx + 0x18]
cmp rcx, rdx
jae 0x14079eef3
lea rax, [rcx + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp rdx, 0xf
jbe 0x14079eee8
mov rax, qword [rbx]
mov byte [rax + rcx], r9b
mov byte [rax + rcx + 1], 0
jmp 0x14079ef02
xor r8d, r8d
lea edx, [r8 + 1]
mov rcx, rbx
call fcn.14078ac80
lea rcx, [rbp + 0x2f]
call fcn.14079a610
mov eax, eax
shl rax, 4
shr rax, 0x20
cdqe
movzx r9d, byte [rbp + rax + 0xf]
mov rcx, qword [rbx + 0x10]
mov rdx, qword [rbx + 0x18]
cmp rcx, rdx
jae 0x14079ef49
lea rax, [rcx + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp rdx, 0xf
jbe 0x14079ef3e
mov rax, qword [rbx]
mov byte [rax + rcx], r9b
mov byte [rax + rcx + 1], 0
jmp 0x14079ef58
xor r8d, r8d
lea edx, [r8 + 1]
mov rcx, rbx
call fcn.14078ac80
inc rdi
cmp rdi, 0x10
jl 0x14079ee56
mov rax, rbx
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop rbp
ret
mov eax, r8d
shr eax, 0x1e
xor eax, r8d
imul r8d, eax, 0x6c078965
add r8d, edx
mov dword [rsi + rdx*4 + 4], r8d
inc rdx
cmp rdx, 0x270
jb 0x14079ef90
mov dword [0x140851420], 0x270
lea rcx, [0x1408527a8]
call fcn.140813784
jmp 0x14079ec89
lea rcx, [0x1408527a8]
call fcn.1408137f0
cmp dword [0x1408527a8], 0xffffffff
jne 0x14079ec89
call sub.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_
mov r8d, eax
mov dword [0x1408527a4], 0xffffffff
mov dword [0x140851424], eax
mov edx, 1
jmp 0x14079ef90