Function at 0x14000b840
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.140098d50
sub rsp, rax
lea rbp, [rsp + 0x50]
and rbp, 0xffffffffffffffe0
mov rax, qword [0x1400c7080]
xor rax, rsp
mov qword [rbp + 0x1520], rax
mov r14, rcx
mov qword [rbp], rcx
xor r15d, r15d
movabs rax, 0x2adf1ed666fedff4
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x20], rax
movabs rax, 0xc436ee03239ac6f3
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x28], rax
movabs rax, 0xcc48cf51de9c3bae
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x30], rax
movabs rax, 0x8c2c7ef46149628c
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x38], rax
movabs rax, 0xeb9f798b6526f0a1
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x40], rax
movabs rax, 0x7a86353ebfbd5586
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x48], rax
movabs rax, 0x648dd66d01d16e0b
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x50], rax
movabs rax, 0xf395ba18f4b42ff8
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x58], rax
movabs rax, 0x8ac917c7e400dd75
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x60], rax
movabs rax, 0x34947fe87d8219cc
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x68], rax
movabs rax, 0x2d07a4435f6dc499
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x70], rax
movabs rax, 0x14b18726c9373d7a
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x78], rax
movabs rax, 0x5825c249945abf9f
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x80], rax
movabs rax, 0xa5480cfc5f081ae0
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x88], rax
movabs rax, 0xf45e73af2bb7a295
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x90], rax
movabs rax, 0x3922dd265a3c060e
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x98], rax
movabs rax, 0x2aeb1ee566ccdfc5
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x14a0], rax
movabs rax, 0xc40eee3423acc6c6
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x14a8], rax
movabs rax, 0xcc2bcf33defd3b97
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x14b0], rax
movabs rax, 0x8c4b7e92612c62e8
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x14b8], rax
movabs rax, 0xebf479e1654ff0c9
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x14c0], rax
movabs rax, 0x7ae93550bfd055ea
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x14c8], rax
movabs rax, 0x64fed61f01a06e7b
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x14d0], rax
movabs rax, 0xf3e2ba6ef4c12f8c
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x14d8], rax
movabs rax, 0x8a8817bde479dd0d
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x14e0], rax
movabs rax, 0x34d17fac7dc1198e
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x14e8], rax
movabs rax, 0x2d4ea40b5f2ac4df
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x14f0], rax
movabs rax, 0x14fc876ac97c3d30
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x14f8], rax
movabs rax, 0x5874c2199415bfd1
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x1500], rax
movabs rax, 0xa51d0ca85f5b1ab2
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x1508], rax
movabs rax, 0xf40773f72be0a2c3
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x1510], rax
movabs rax, 0x3922dd265a3c0654
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 0x14000bbf6
lea rdx, [rbp + 0x20]
lea rcx, [rbp + 0xe0]
call fcn.140021790
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 0x14000bc91
mov qword [rbp + 0xb0], r15
mov byte [rbp + 0xa0], 0
jmp 0x14000bda7
mov rax, rsi
sub rax, rbx
sar rax, 1
mov rdx, r15
mov qword [rbp + 0xb0], rdx
movabs rcx, 0x7fffffffffffffff
cmp rax, rcx
ja 0x14000c0bb
cmp rax, 0x10
jb 0x14000bd50
mov rdi, rax
or rdi, 0xf
cmp rdi, rcx
jbe 0x14000bcd2
mov rdi, rcx
jmp 0x14000bcde
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 0x14000bd28
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x14000c0b5
mov rcx, rax
call fcn.140098780
mov rcx, rax
test rax, rax
je 0x14000bf8b
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
mov rdx, qword [rbp + 0xb0]
jmp 0x14000bd3e
test rcx, rcx
je 0x14000bd3b
call fcn.140098780
mov rdx, qword [rbp + 0xb0]
jmp 0x14000bd3e
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 0x14000bd8c
mov rdi, qword [rbp + 0xb8]
jmp 0x14000bd50
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 0x14000bdd0
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.140020a70
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 0x14000bea8
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 0x14000bf07
mov rdx, rbx
sub rdx, r8
mov rdi, qword [rbp + 0xd8]
mov rax, rdi
sub rax, r8
cmp rdx, rax
ja 0x14000bef8
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 0x14000beed
movzx eax, r15w
mov rcx, rdx
rep stosw word [rdi], ax
lea rax, [rdx + r8]
mov word [r9 + rax*2], r15w
jmp 0x14000bf07
mov r9, rdx
lea rcx, [rbp + 0xc0]
call fcn.140022080
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 0x14000bf97
inc rdx
mov rcx, qword [rbp + 0xa0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000bf92
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14000bf92
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1400987bc
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.140021790
nop
mov rdx, qword [rbp + 0xd8]
cmp rdx, 8
jb 0x14000c024
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0xc0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000c01f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14000c01f
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1400987bc
mov qword [rbp + 0xd0], r15
mov qword [rbp + 0xd8], 7
mov word [rbp + 0xc0], r15w
mov rdx, qword [rbp + 0xf8]
cmp rdx, 8
jb 0x14000c087
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0xe0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000c082
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14000c082
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1400987bc
mov rax, r14
mov rcx, qword [rbp + 0x1520]
xor rcx, rsp
call fcn.140098760
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.140002220
nop
call fcn.1400022c0
int3