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

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1348]
mov eax, 0x1448
call fcn.14000ced0
sub rsp, rax
mov qword [rbp - 0x58], 0xfffffffffffffffe
mov r14, rdx
mov dword [rsp + 0x40], 0
mov r13, qword [rdx + 0x10]
mov rbx, rdx
mov r12, qword [rdx + 0x18]
cmp r12, 0x10
jb 0x14000ad6d
mov rbx, qword [rdx]
mov rsi, 0xffffffffffffffff
test r13, r13
je 0x14000adcf
xor edx, edx
lea r8d, [rsi + 0x5d]
lea rcx, [rbp - 0x50]
call sub.VCRUNTIME140.dll_memset
xor edx, edx
mov r8d, 0xa3
lea rcx, [rbp + 0xd]
call sub.VCRUNTIME140.dll_memset
mov byte [rbp + 0xc], 1
lea rax, [r13 - 1]
mov rdi, rsi
cmp rax, rsi
cmovb rdi, rax
add rdi, rbx
movzx eax, byte [rdi]
cmp byte [rbp + rax - 0x50], 0
jne 0x14000adca
cmp rdi, rbx
je 0x14000adcf
dec rdi
movzx eax, byte [rdi]
cmp byte [rbp + rax - 0x50], 0
je 0x14000adb8
sub rdi, rbx
jmp 0x14000add2
mov rdi, rsi
mov r15, r14
cmp r12, 0x10
jb 0x14000adde
mov r15, qword [r14]
test r13, r13
je 0x14000ae2a
xor edx, edx
mov r8d, pe_nt_image_headers64
lea rcx, [rbp - 0x50]
call sub.VCRUNTIME140.dll_memset
mov byte [rbp - 0x22], 1
lea rax, [r13 - 1]
mov rbx, rsi
cmp rax, rbx
cmovb rbx, rax
add rbx, r15
movzx eax, byte [rbx]
cmp byte [rbp + rax - 0x50], 0
jne 0x14000ae25
cmp rbx, r15
je 0x14000ae2a
dec rbx
movzx eax, byte [rbx]
cmp byte [rbp + rax - 0x50], 0
je 0x14000ae13
sub rbx, r15
jmp 0x14000ae2d
mov rbx, rsi
cmp rdi, rsi
je 0x14000b284
cmp rbx, rsi
je 0x14000b284
cmp rbx, rdi
jbe 0x14000b284
mov qword [rsp + 0x78], 0
mov qword [rbp - 0x80], 0xf
mov byte [rsp + 0x68], 0
lea r15, [rdi + 1]
mov r8, r15
cmp r13, r15
cmovb r8, r13
mov rdx, r14
cmp r12, 0x10
jb 0x14000ae78
mov rdx, qword [r14]
lea rcx, [rsp + 0x68]
call fcn.140006af0
nop
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x38], 0xf
mov byte [rsp + 0x20], 0
mov rcx, qword [r14 + 0x10]
cmp rcx, r15
jb 0x14000b2b4
mov r8, rbx
sub r8, rdi
dec r8
sub rcx, r15
cmp rcx, r8
cmovb r8, rcx
mov rax, r14
cmp qword [r14 + 0x18], 0x10
jb 0x14000aec7
mov rax, qword [r14]
lea rdx, [rax + r15]
lea rcx, [rsp + 0x20]
call fcn.140006af0
nop
movdqa xmm0, xmmword [0x14000f350]
movdqu xmmword [rbp - 0x68], xmm0
mov byte [rbp - 0x78], 0
mov rax, qword [r14 + 0x10]
cmp rax, rbx
jb 0x14000b2ae
sub rax, rbx
mov r8, rsi
cmp rax, rsi
cmovb r8, rax
cmp qword [r14 + 0x18], 0x10
jb 0x14000af0b
mov r14, qword [r14]
lea rdx, [r14 + rbx]
lea rcx, [rbp - 0x78]
call fcn.140006af0
nop
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov r11d, 0xffffffff
mov dword [rbp + 0x1334], r11d
mov dword [rbp - 0x4c], eax
mov r8d, 1
mov edx, r8d
nop dword [rax + rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, r8d
mov dword [rbp + rdx*4 - 0x4c], eax
inc r8d
inc rdx
cmp rdx, 0x270
jl 0x14000af40
mov dword [rbp - 0x50], 0x270
lea r8, [rsp + 0x20]
cmp qword [rsp + 0x38], 0x10
cmovae r8, qword [rsp + 0x20]
mov r9, qword [rsp + 0x30]
add r8, r9
lea r10, [rsp + 0x20]
cmp qword [rsp + 0x38], 0x10
cmovae r10, qword [rsp + 0x20]
mov qword [rbp + 0x13a0], r10
mov r12d, 0x40
lea r12, [r12 - 1]
shr rsi, 1
cmp rsi, r11
ja 0x14000afa1
cmp r10, r8
je 0x14000b0a6
lea rax, [r10 + 1]
mov rcx, r8
sub rcx, rax
cmp rax, r8
mov eax, 0
cmova rcx, rax
mov qword [rbp + 0x13a8], rcx
test rcx, rcx
je 0x14000b0a6
mov r13d, 2
dec r10
mov qword [rbp + 0x1398], r10
nop dword [rax]
lea r15, [r13 - 1]
mov rdi, rax
mov rbx, rax
test r15, r15
je 0x14000b036
nop
lea rcx, [r12 - 1]
shl rdi, cl
add rdi, rdi
nop dword [rax + rax]
lea rcx, [rbp - 0x50]
call fcn.14000b2c0
mov eax, eax
cmp rax, rsi
ja 0x14000b010
or rdi, rax
lea rcx, [r12 - 1]
shl rbx, cl
add rbx, rbx
or rbx, rsi
cmp rbx, r15
jb 0x14000b000
xor edx, edx
mov rax, rbx
div r13
mov r8, rdx
mov rcx, rax
xor edx, edx
mov rax, rdi
div r13
cmp rax, rcx
jb 0x14000b05b
cmp r8, r15
mov eax, 0
jne 0x14000aff4
xor edx, edx
mov rax, rdi
div r13
cmp rdx, r15
je 0x14000b088
mov r8, qword [rbp + 0x1398]
movzx ecx, byte [r8 + r13]
mov r10, qword [rbp + 0x13a0]
movzx eax, byte [rdx + r10]
mov byte [r8 + r13], al
mov byte [rdx + r10], cl
inc r13
lea rax, [r13 - 2]
cmp rax, qword [rbp + 0x13a8]
mov eax, 0
jne 0x14000aff0
mov r9, qword [rsp + 0x30]
movdqa xmm0, xmmword [0x14000f350]
movdqu xmmword [rsp + 0x58], xmm0
mov byte [rsp + 0x48], 0
mov dword [rsp + 0x40], 0x1e
mov rbx, qword [rsp + 0x78]
lea rdx, [r9 + rbx]
lea rcx, [rsp + 0x48]
call fcn.140001840
lea rdx, [rsp + 0x68]
cmp qword [rbp - 0x80], 0x10
cmovae rdx, qword [rsp + 0x68]
mov r8, rbx
lea rcx, [rsp + 0x48]
call fcn.140002760
lea rdx, [rsp + 0x20]
cmp qword [rsp + 0x38], 0x10
cmovae rdx, qword [rsp + 0x20]
mov r8, qword [rsp + 0x30]
lea rcx, [rsp + 0x48]
call fcn.140002760
lea rdx, [rbp - 0x78]
cmp qword [rbp - 0x60], 0x10
cmovae rdx, qword [rbp - 0x78]
mov r8, qword [rbp - 0x68]
lea rcx, [rsp + 0x48]
call fcn.140002760
mov rbx, qword [rbp + 0x1390]
xor edi, edi
mov qword [rbx + 0x10], rdi
mov qword [rbx + 0x18], rdi
movups xmm0, xmmword [rax]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbx + 0x10], xmm1
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 0xf
mov byte [rax], dil
mov rdx, qword [rsp + 0x60]
cmp rdx, 0x10
jb 0x14000b19b
inc rdx
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000b196
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14000b196
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14000bc3c
movdqa xmm0, xmmword [0x14000f350]
movdqu xmmword [rsp + 0x58], xmm0
mov byte [rsp + 0x48], 0
mov rdx, qword [rbp - 0x60]
cmp rdx, 0x10
jb 0x14000b1ed
inc rdx
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000b1e7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14000b1e7
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14000bc3c
nop
mov rdx, qword [rsp + 0x38]
cmp rdx, 0x10
jb 0x14000b22d
inc rdx
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000b228
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14000b228
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14000bc3c
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], 0xf
mov byte [rsp + 0x20], 0
mov rdx, qword [rbp - 0x80]
cmp rdx, 0x10
jb 0x14000b27f
inc rdx
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000b27a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14000b27a
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14000bc3c
mov rax, rbx
jmp 0x14000b29a
mov rdx, r14
mov rcx, qword [rbp + 0x1390]
call fcn.140006a10
mov rax, qword [rbp + 0x1390]
add rsp, 0x1448
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.140002b30
nop
call fcn.140002b30
int3