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

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x1450
call fcn.140045520
sub rsp, rax
movaps xmmword [rsp + 0x1440], xmm6
movaps xmmword [rsp + 0x1430], xmm7
mov rax, qword [0x140056380]
xor rax, rsp
mov qword [rsp + 0x1420], rax
mov r14, rdx
mov r12, rcx
mov qword [rsp + 0x80], rdx
xor ebp, ebp
mov dword [rsp + 0x20], ebp
mov rdx, r8
mov rcx, r14
call fcn.140020dd0
mov ebx, 1
mov dword [rsp + 0x20], ebx
call sub.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_
mov ecx, eax
mov dword [rsp + 0x1418], 0xffffffff
mov dword [rsp + 0x98], eax
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, ebx
mov dword [rsp + rbx*4 + 0x98], ecx
inc rbx
cmp rbx, 0x270
jb 0x140022ae0
mov dword [rsp + 0x94], 0x270
mov rbx, qword [r14 + 8]
mov rdi, qword [r14]
mov rcx, rbx
sub rcx, rdi
movabs r15, 0xe38e38e38e38e39
mov rax, r15
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
je 0x140022d39
mov r13, rbp
mov rsi, rbp
xorps xmm6, xmm6
movsd xmm7, qword [0x14004b050]
nop
lea rcx, [rsp + 0x94]
call fcn.1400208c0
addsd xmm0, xmm6
movd xmm1, dword [r12 + 0xd4]
cvtdq2pd xmm1, xmm1
mulsd xmm1, xmm7
comisd xmm1, xmm0
jbe 0x140022cb9
sub rbx, rdi
mov rax, r15
imul rbx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea eax, [rbp + 1]
movsxd rcx, eax
cmp rcx, rdx
jae 0x140022cb9
lea rbx, [rsi + rdi]
mov rdx, rbx
lea rcx, [rsp + 0x30]
call fcn.14000d330
nop
mov rax, qword [rdi + rsi + 0x48]
mov qword [rbx], rax
mov rax, qword [rdi + rsi + 0x50]
mov qword [rbx + 8], rax
mov eax, dword [rdi + rsi + 0x58]
mov dword [rbx + 0x10], eax
mov rax, qword [rdi + rsi + 0x60]
mov qword [rbx + 0x18], rax
mov rax, qword [rdi + rsi + 0x68]
mov qword [rbx + 0x20], rax
mov eax, dword [rdi + rsi + 0x70]
mov dword [rbx + 0x28], eax
movzx eax, byte [rdi + rsi + 0x74]
mov byte [rbx + 0x2c], al
lea r15, [rsi + 0x78]
add r15, rdi
lea rcx, [rbx + 0x30]
cmp rcx, r15
je 0x140022c11
mov rdx, qword [r15]
mov r8, qword [r15 + 8]
sub r8, rdx
sar r8, 4
call fcn.1400033f0
movaps xmm0, xmmword [rsp + 0x30]
movups xmmword [rdi + rsi + 0x48], xmm0
mov eax, dword [rsp + 0x40]
mov dword [rdi + rsi + 0x58], eax
mov rax, qword [rsp + 0x48]
mov qword [rdi + rsi + 0x60], rax
movsd xmm0, qword [rsp + 0x50]
movsd qword [rdi + rsi + 0x68], xmm0
mov eax, dword [rsp + 0x58]
mov dword [rdi + rsi + 0x70], eax
movzx eax, byte [rsp + 0x5c]
mov byte [rdi + rsi + 0x74], al
lea rax, [rsp + 0x60]
mov rbx, qword [rsp + 0x60]
cmp r15, rax
je 0x140022c71
mov r8, qword [rsp + 0x68]
sub r8, rbx
sar r8, 4
mov rdx, rbx
mov rcx, r15
call fcn.1400033f0
nop
test rbx, rbx
je 0x140022caf
mov rdx, qword [rsp + 0x70]
sub rdx, rbx
and rdx, 0xfffffffffffffff0
mov rax, rbx
cmp rdx, 0x1000
jb 0x140022ca7
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022d7c
mov rcx, rbx
call fcn.140044d00
movabs r15, 0xe38e38e38e38e39
lea rcx, [rsp + 0x94]
call fcn.1400208c0
addsd xmm0, xmm6
movd xmm1, dword [r12 + 0xd4]
cvtdq2pd xmm1, xmm1
mulsd xmm1, xmm7
comisd xmm1, xmm0
jbe 0x140022d02
movsxd rax, ebp
lea rcx, [rax + rax*8]
mov rax, qword [r14]
lea rdx, [rax + rcx*8]
mov rcx, r12
call fcn.140022d90
mov ecx, eax
mov rax, qword [r14 + 0x18]
mov dword [rax + r13], ecx
inc ebp
add rsi, 0x48
add r13, 4
mov rbx, qword [r14 + 8]
mov rdi, qword [r14]
mov rcx, rbx
sub rcx, rdi
mov rax, r15
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
movsxd rax, ebp
cmp rax, rdx
jb 0x140022b50
mov rdx, r14
mov rcx, r12
call fcn.140021350
mov rax, r14
mov rcx, qword [rsp + 0x1420]
xor rcx, rsp
call fcn.140045060
lea r11, [rsp + 0x1450]
mov rbx, qword [r11 + 0x58]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3