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

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1330]
mov eax, 0x1430
call fcn.140045520
sub rsp, rax
mov rax, qword [0x140056380]
xor rax, rsp
mov qword [rbp + 0x1320], rax
mov r12, r8
mov r13, rdx
mov qword [rsp + 0x78], rdx
mov qword [rbp - 0x80], rdx
xor esi, esi
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x30], rsi
mov r14, qword [rcx]
mov r15, qword [rcx + 8]
movabs rbx, 0xe38e38e38e38e39
cmp r14, r15
je 0x140023272
nop
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x38], xmm0
mov qword [rsp + 0x48], rsi
movdqu xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], rsi
movsd xmm0, qword [r14 + 0x30]
movsd qword [rsp + 0x68], xmm0
lea rax, [rsp + 0x38]
cmp rax, r14
je 0x1400230f7
mov rcx, qword [r14 + 8]
sub rcx, qword [r14]
mov rax, rbx
imul rcx
sar rdx, 2
mov r8, rdx
shr r8, 0x3f
add r8, rdx
mov rdx, qword [r14]
lea rcx, [rsp + 0x38]
call fcn.14000b510
lea rdx, [r14 + 0x18]
lea rcx, [rsp + 0x50]
call fcn.140021080
nop
mov rax, qword [rsp + 0x28]
cmp rax, qword [rsp + 0x30]
je 0x140023127
lea rdx, [rsp + 0x38]
mov rcx, rax
call fcn.140020dd0
add qword [rsp + 0x28], 0x38
jmp 0x14002313a
lea r8, [rsp + 0x38]
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.14001eea0
nop
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x140023190
mov rax, qword [rsp + 0x60]
sub rax, rcx
sar rax, 2
lea rdx, [rax*4]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002317d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140023331
call fcn.140044d00
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], rsi
mov r8, qword [rsp + 0x38]
test r8, r8
je 0x140023265
mov rdi, qword [rsp + 0x40]
cmp r8, rdi
je 0x140023214
lea rbx, [r8 + 0x40]
nop dword [rax]
mov rcx, qword [rbx - 0x10]
test rcx, rcx
je 0x1400231f8
mov rdx, qword [rbx]
sub rdx, rcx
and rdx, 0xfffffffffffffff0
cmp rdx, 0x1000
jb 0x1400231e8
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140023331
mov rcx, r8
call fcn.140044d00
mov qword [rbx - 0x10], rsi
mov qword [rbx - 8], rsi
mov qword [rbx], rsi
add rbx, 0x48
lea rax, [rbx - 0x40]
cmp rax, rdi
jne 0x1400231b0
mov r8, qword [rsp + 0x38]
movabs rbx, 0xe38e38e38e38e39
mov rcx, qword [rsp + 0x48]
sub rcx, r8
mov rax, rbx
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rdx, [rdx + rdx*8]
shl rdx, 3
mov rax, r8
cmp rdx, 0x1000
jb 0x14002325d
add rdx, 0x27
mov r8, qword [r8 - 8]
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140023331
mov rcx, r8
call fcn.140044d00
add r14, 0x38
cmp r14, r15
jne 0x1400230a0
cmp byte [r12 + 0x38], 0
je 0x1400233eb
mov r15, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x20]
cmp rdi, r15
je 0x1400232aa
nop dword [rax]
mov rdx, r12
mov rcx, rdi
call fcn.1400211f0
test al, al
jne 0x1400232aa
add rdi, 0x38
cmp rdi, qword [rsp + 0x28]
jne 0x140023290
mov rax, qword [rsp + 0x28]
cmp rdi, rax
je 0x140023342
lea rbx, [rdi + 0x38]
cmp rbx, rax
je 0x140023338
movabs r14, 0xe38e38e38e38e39
nop dword [rax + rax]
mov rdx, r12
mov rcx, rbx
call fcn.1400211f0
test al, al
jne 0x140023323
cmp rdi, rbx
je 0x14002330a
mov rcx, qword [rbx + 8]
sub rcx, qword [rbx]
mov rax, r14
imul rcx
sar rdx, 2
mov r8, rdx
shr r8, 0x3f
add r8, rdx
mov rdx, qword [rbx]
mov rcx, rdi
call fcn.14000b510
lea rdx, [rbx + 0x18]
lea rcx, [rdi + 0x18]
call fcn.140021080
mov rax, qword [rbx + 0x30]
mov qword [rdi + 0x30], rax
add rdi, 0x38
add rbx, 0x38
cmp rbx, r15
jne 0x1400232d0
mov rbx, r14
jmp 0x140023342
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
movabs rbx, 0xe38e38e38e38e39
cmp rdi, r15
je 0x1400233eb
mov r13, qword [rsp + 0x28]
cmp r15, r13
je 0x1400233c1
lea r14, [r15 + 0x18]
mov r12, rdi
sub r12, r15
nop
lea r9, [r14 - 0x18]
cmp rdi, r9
je 0x14002338f
mov rcx, qword [r14 - 0x10]
sub rcx, qword [r9]
mov rax, rbx
imul rcx
sar rdx, 2
mov r8, rdx
shr r8, 0x3f
add r8, rdx
mov rdx, qword [r9]
mov rcx, rdi
call fcn.14000b510
lea rbx, [r12 + r14]
mov rdx, r14
mov rcx, rbx
call fcn.140021080
mov rax, qword [r14 + 0x18]
mov qword [rbx + 0x18], rax
add rdi, 0x38
add r14, 0x38
lea rax, [r14 - 0x18]
cmp rax, r13
movabs rbx, 0xe38e38e38e38e39
jne 0x140023360
mov r14, qword [rsp + 0x28]
mov rbx, rdi
cmp rdi, r14
je 0x1400233e1
nop
mov rcx, rbx
call fcn.140021010
add rbx, 0x38
cmp rbx, r14
jne 0x1400233d0
mov qword [rsp + 0x28], rdi
mov r13, qword [rsp + 0x78]
call sub.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_
mov dword [rbp + 0x1318], 0xffffffff
mov dword [rbp - 0x68], eax
mov edx, 1
nop dword [rax]
nop word [rax + rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rbp + rdx*4 - 0x68], eax
inc rdx
cmp rdx, 0x270
jb 0x140023410
mov dword [rbp - 0x6c], 0x270
lea rcx, [rbp - 0x6c]
call fcn.1400208c0
movaps xmm3, xmm0
xorps xmm5, xmm5
addsd xmm3, xmm5
mov rcx, qword [rsp + 0x28]
mov r9, qword [rsp + 0x20]
sub rcx, r9
movabs rax, 0x4924924924924925
imul rcx
mov r8, rdx
sar r8, 4
mov rax, r8
shr rax, 0x3f
add r8, rax
xorps xmm0, xmm0
js 0x140023480
cvtsi2sd xmm0, r8
jmp 0x140023498
mov rcx, r8
shr rcx, 1
mov rax, r8
and eax, 1
or rcx, rax
cvtsi2sd xmm0, rcx
addsd xmm0, xmm0
movsd xmm4, qword [0x140049b00]
divsd xmm4, xmm0
movaps xmm2, xmm4
test r8, r8
je 0x14002350e
nop dword [rax]
comisd xmm3, xmm5
jbe 0x1400234c0
comisd xmm2, xmm3
ja 0x140023551
movaps xmm5, xmm2
movsxd rcx, esi
mov rax, r8
sub rax, rcx
xor edx, edx
div r8
mov rcx, rax
xorps xmm1, xmm1
test rax, rax
js 0x1400234e3
cvtsi2sd xmm1, rax
jmp 0x1400234f5
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2sd xmm1, rax
addsd xmm1, xmm1
movaps xmm0, xmm4
addsd xmm0, xmm4
mulsd xmm1, xmm0
addsd xmm2, xmm1
inc esi
movsxd rax, esi
cmp rax, r8
jb 0x1400234b0
mov rdx, r9
mov rcx, r13
call fcn.140020dd0
nop
lea rcx, [rsp + 0x20]
call fcn.140020f60
mov rax, r13
mov rcx, qword [rbp + 0x1320]
xor rcx, rsp
call fcn.140045060
mov rbx, qword [rsp + 0x1480]
add rsp, 0x1430
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
movsxd rcx, esi
imul rdx, rcx, 0x38
add rdx, r9
jmp 0x140023511