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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r12
push r14
push r15
mov eax, 0x1580
call fcn.140095d40
sub rsp, rax
lea rbp, [rsp + 0x50]
and rbp, 0xffffffffffffffe0
mov rax, qword [0x1400c4080]
xor rax, rsp
mov qword [rbp + 0x1520], rax
mov r14, rcx
mov qword [rbp], rcx
xor r15d, r15d
movabs rax, 0x5de8a7310a57df1a
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x20], rax
movabs rax, 0xf5470b18379464c9
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x28], rax
movabs rax, 0xd6f6b886b5415c2c
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x30], rax
movabs rax, 0x4cd94b0f224f27d2
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x38], rax
movabs rax, 0x1e6a2bc121888b7
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x40], rax
movabs rax, 0x8ae9308d3337a60c
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x48], rax
movabs rax, 0x95dd474a6fbcc1c9
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x50], rax
movabs rax, 0xa21c667b2566312e
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x58], rax
movabs rax, 0xdf5a1ce0e5125aab
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x60], rax
movabs rax, 0x94d302e31f0fc246
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x68], rax
movabs rax, 0xf8be90142f1524fb
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x70], rax
movabs rax, 0x1484620d1930d5d4
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x78], rax
movabs rax, 0x47352d1e526c3969
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x80], rax
movabs rax, 0x9214facf45093cfa
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x88], rax
movabs rax, 0xe7cd0a682c4b0e37
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x90], rax
movabs rax, 0x2100fc658c5e7038
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x98], rax
movabs rax, 0x5ddca7020a65df2b
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x14a0], rax
movabs rax, 0xf57f0b2f37a264fc
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x14a8], rax
movabs rax, 0xd695b8e4b5205c15
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x14b0], rax
movabs rax, 0x4cbe4b69222a27b6
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x14b8], rax
movabs rax, 0x18da2d6127188df
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x14c0], rax
movabs rax, 0x8a8630e3335aa660
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x14c8], rax
movabs rax, 0x95ae47386fcdc1b9
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x14d0], rax
movabs rax, 0xa26b660d2513315a
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x14d8], rax
movabs rax, 0xdf1b1c9ae56b5ad3
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x14e0], rax
movabs rax, 0x949602a71f4cc204
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x14e8], rax
movabs rax, 0xf8f7905c2f5224bd
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x14f0], rax
movabs rax, 0x14c96241197bd59e
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x14f8], rax
movabs rax, 0x47642d4e52233927
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x1500], rax
movabs rax, 0x9241fa9b455a3ca8
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x1508], rax
movabs rax, 0xe7940a302c1c0e61
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x1510], rax
movabs rax, 0x2100fc658c5e7062
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x1518], rax
vmovdqu ymm0, ymmword [rbp + 0x20]
vpxor ymm1, ymm0, ymmword [rbp + 0x14a0]
vmovdqa ymmword [rbp + 0x20], ymm1
vmovdqu ymm0, ymmword [rbp + 0x40]
vpxor ymm1, ymm0, ymmword [rbp + 0x14c0]
vmovdqa ymmword [rbp + 0x40], ymm1
vmovdqu ymm0, ymmword [rbp + 0x60]
vpxor ymm1, ymm0, ymmword [rbp + 0x14e0]
vmovdqa ymmword [rbp + 0x60], ymm1
vmovdqu ymm0, ymmword [rbp + 0x80]
vpxor ymm1, ymm0, ymmword [rbp + 0x1500]
vmovdqa ymmword [rbp + 0x80], ymm1
vxorps xmm0, xmm0, xmm0
vmovups xmmword [rbp + 0xe0], xmm0
vxorps xmm1, xmm1, xmm1
vmovdqu xmmword [rbp + 0xf0], xmm1
lea rax, [rbp + 0x20]
mov r12, 0xffffffffffffffff
mov r8, r12
vzeroupper
inc r8
cmp word [rax + r8*2], r15w
jne 0x14000abc6
lea rdx, [rbp + 0x20]
lea rcx, [rbp + 0xe0]
call fcn.14001e7b0
nop
xorps xmm0, xmm0
movups xmmword [rbp + 0xc0], xmm0
mov qword [rbp + 0xd0], r15
mov qword [rbp + 0xd8], 7
mov word [rbp + 0xc0], r15w
lea rdx, [rbp + 0xe0]
cmp qword [rbp + 0xf8], 8
cmovae rdx, qword [rbp + 0xe0]
mov rax, qword [rbp + 0xf0]
lea rsi, [rdx + rax*2]
lea rbx, [rbp + 0xe0]
cmovae rbx, qword [rbp + 0xe0]
movups xmmword [rbp + 0xa0], xmm0
mov edi, reloc.WS2_32.dll_ntohs
mov qword [rbp + 0xb8], rdi
cmp rbx, rsi
jne 0x14000ac61
mov qword [rbp + 0xb0], r15
mov byte [rbp + 0xa0], 0
jmp 0x14000ad77
mov rax, rsi
sub rax, rbx
sar rax, 1
mov rdx, r15
mov qword [rbp + 0xb0], rdx
movabs rcx, 0x7fffffffffffffff
cmp rax, rcx
ja 0x14000b08b
cmp rax, 0x10
jb 0x14000ad20
mov rdi, rax
or rdi, 0xf
cmp rdi, rcx
jbe 0x14000aca2
mov rdi, rcx
jmp 0x14000acae
mov eax, reloc.WLDAP32.dll_Ordinal_22
cmp rdi, rax
cmovb rdi, rax
mov rcx, rdi
add rcx, 1
cmovb rcx, r12
cmp rcx, 0x1000
jb 0x14000acf8
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x14000b085
mov rcx, rax
call fcn.140095778
mov rcx, rax
test rax, rax
je 0x14000af5b
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
mov rdx, qword [rbp + 0xb0]
jmp 0x14000ad0e
test rcx, rcx
je 0x14000ad0b
call fcn.140095778
mov rdx, qword [rbp + 0xb0]
jmp 0x14000ad0e
mov rax, r15
mov qword [rbp + 0xa0], rax
mov qword [rbp + 0xb8], rdi
nop dword [rax]
lea rcx, [rbp + 0xa0]
cmp rdi, 0x10
cmovae rcx, qword [rbp + 0xa0]
movzx eax, byte [rbx]
mov byte [rdx + rcx], al
mov rdx, qword [rbp + 0xb0]
inc rdx
mov qword [rbp + 0xb0], rdx
add rbx, 2
cmp rbx, rsi
je 0x14000ad5c
mov rdi, qword [rbp + 0xb8]
jmp 0x14000ad20
lea rax, [rbp + 0xa0]
cmp qword [rbp + 0xb8], 0x10
cmovae rax, qword [rbp + 0xa0]
mov byte [rax + rdx], 0
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov edx, eax
mov dword [rbp + 0x1484], 0xffffffff
mov dword [rbp + 0x104], eax
mov eax, 1
nop dword [rax]
nop dword [rax + rax]
mov ecx, edx
shr ecx, 0x1e
xor ecx, edx
imul edx, ecx, 0x6c078965
add edx, eax
mov dword [rbp + rax*4 + 0x104], edx
inc rax
cmp rax, 0x270
jb 0x14000ada0
mov dword [rbp + 0x100], 0x270
lea rcx, [rbp + 0xa0]
cmp qword [rbp + 0xb8], 0x10
cmovae rcx, qword [rbp + 0xa0]
mov rdx, qword [rbp + 0xb0]
add rdx, rcx
lea rcx, [rbp + 0xa0]
cmp qword [rbp + 0xb8], 0x10
cmovae rcx, qword [rbp + 0xa0]
lea r8, [rbp + 0x100]
call fcn.14001db70
lea r8, [rbp + 0xa0]
cmp qword [rbp + 0xb8], 0x10
cmovae r8, qword [rbp + 0xa0]
mov dword [rsp + 0x28], r15d
mov qword [rsp + 0x20], r15
mov r9d, dword [rbp + 0xb0]
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movsxd rbx, eax
mov r8, qword [rbp + 0xd0]
cmp rbx, r8
ja 0x14000ae78
lea rax, [rbp + 0xc0]
cmp qword [rbp + 0xd8], 8
cmovae rax, qword [rbp + 0xc0]
mov qword [rbp + 0xd0], rbx
mov word [rax + rbx*2], r15w
jmp 0x14000aed7
mov rdx, rbx
sub rdx, r8
mov rdi, qword [rbp + 0xd8]
mov rax, rdi
sub rax, r8
cmp rdx, rax
ja 0x14000aec8
mov qword [rbp + 0xd0], rbx
lea r9, [rbp + 0xc0]
cmp rdi, 8
cmovae r9, qword [rbp + 0xc0]
lea rdi, [r9 + r8*2]
test rdx, rdx
je 0x14000aebd
movzx eax, r15w
mov rcx, rdx
rep stosw word [rdi], ax
lea rax, [rdx + r8]
mov word [r9 + rax*2], r15w
jmp 0x14000aed7
mov r9, rdx
lea rcx, [rbp + 0xc0]
call fcn.14001f050
lea rax, [rbp + 0xc0]
cmp qword [rbp + 0xd8], 8
cmovae rax, qword [rbp + 0xc0]
lea r8, [rbp + 0xa0]
cmp qword [rbp + 0xb8], 0x10
cmovae r8, qword [rbp + 0xa0]
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rax
mov r9d, dword [rbp + 0xb0]
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
nop
mov rdx, qword [rbp + 0xb8]
cmp rdx, 0x10
jb 0x14000af67
inc rdx
mov rcx, qword [rbp + 0xa0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000af62
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14000af62
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140095770
xorps xmm0, xmm0
movups xmmword [r14], xmm0
mov qword [r14 + 0x10], r15
mov qword [r14 + 0x18], r15
mov r8d, reloc.OLEAUT32.dll_SafeArrayPutElement
cmp qword [rbp + 0xd0], r8
cmovb r8, qword [rbp + 0xd0]
lea rdx, [rbp + 0xc0]
cmp qword [rbp + 0xd8], 8
cmovae rdx, qword [rbp + 0xc0]
mov rcx, r14
call fcn.14001e7b0
nop
mov rdx, qword [rbp + 0xd8]
cmp rdx, 8
jb 0x14000aff4
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0xc0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000afef
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14000afef
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140095770
mov qword [rbp + 0xd0], r15
mov qword [rbp + 0xd8], 7
mov word [rbp + 0xc0], r15w
mov rdx, qword [rbp + 0xf8]
cmp rdx, 8
jb 0x14000b057
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0xe0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000b052
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14000b052
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140095770
mov rax, r14
mov rcx, qword [rbp + 0x1520]
xor rcx, rsp
call fcn.140095750
lea r11, [rsp + 0x1580]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
call fcn.140006a00
nop
call fcn.140006aa0
int3