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

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rdi
push rbp
lea rbp, [rsp - 0x1300]
mov eax, 0x1400
call fcn.140074680
sub rsp, rax
mov rax, qword [0x14008a028]
xor rax, rsp
mov qword [rbp + 0x12c0], rax
mov rdi, rcx
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [rbp + 0x12b4], 0xffffffff
mov edx, 1
mov dword [rsp + 0x34], eax
nop dword [rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rsp + rdx*4 + 0x34], eax
inc rdx
cmp rdx, 0x270
jb 0x140005970
cmp dword [rdi + 0x20], 0
mov ebx, 0x270
mov dword [rsp + 0x30], ebx
jne 0x140005c07
mov qword [rsp + 0x1418], rsi
movaps xmmword [rsp + 0x13f0], xmm6
xorps xmm6, xmm6
movaps xmmword [rsp + 0x13e0], xmm7
movsd xmm7, qword [0x14007f678]
movaps xmmword [rsp + 0x13d0], xmm8
movsd xmm8, qword [0x14007f608]
nop word [rax + rax]
cmp byte [rdi + 0xd], 0
je 0x140005be6
cmp byte [rdi + 0x74], 0
je 0x140005be6
mov r10d, dword [rdi + 0x7c]
mov r11d, dword [rdi + 0x78]
cmp r10d, r11d
jne 0x140005a13
mov dword [rdi + 0x68], r10d
mov qword [rsp + 0x20], 0xa
jmp 0x140005bd2
movaps xmm1, xmm6
movaps xmm2, xmm8
mov esi, 2
nop
cmp ebx, 0x270
jne 0x140005a72
lea r8, [rsp + 0x38]
mov r9d, ebx
mov edx, dword [r8 - 4]
xor edx, dword [r8]
lea r8, [r8 + 4]
btr edx, 0x1f
xor edx, dword [r8 - 8]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, edx
xor ecx, dword [r8 + 0x62c]
mov dword [r8 + 0x9b8], ecx
sub r9, 1
jne 0x140005a30
mov ebx, dword [rsp + 0x30]
jmp 0x140005b4d
cmp ebx, 0x4e0
jb 0x140005b4d
xor r8d, r8d
mov eax, dword [rbp + r8*4 + 0x8f4]
mov edx, eax
xor edx, dword [rbp + r8*4 + 0x8f8]
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [rbp + r8*4 + 0xf28]
xor ecx, edx
mov dword [rsp + r8*4 + 0x34], ecx
inc r8
cmp r8, 0xe3
jb 0x140005a81
mov r8d, 0xe3
nop word [rax + rax]
mov eax, dword [rbp + r8*4 + 0x8f4]
mov edx, eax
xor edx, dword [rbp + r8*4 + 0x8f8]
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [rbp + r8*4 - 0x458]
xor ecx, edx
mov dword [rsp + r8*4 + 0x34], ecx
inc r8
cmp r8, 0x26f
jb 0x140005ad0
mov edx, dword [rbp + 0x12b0]
mov eax, dword [rsp + 0x34]
and edx, 0x80000000
btr eax, 0x1f
or edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, edx
xor ecx, dword [rbp + 0x564]
xor ebx, ebx
mov dword [rbp + 0x8f0], ecx
mov dword [rsp + 0x30], ebx
mov eax, ebx
xorps xmm0, xmm0
inc ebx
mov ecx, dword [rsp + rax*4 + 0x34]
mov eax, ecx
shr eax, 0xb
and eax, dword [rbp + 0x12b4]
xor ecx, eax
mov dword [rsp + 0x30], ebx
mov eax, ecx
and eax, 0xff3a58ad
shl eax, 7
xor ecx, eax
mov eax, ecx
and eax, 0xffffdf8c
shl eax, 0xf
xor ecx, eax
mov eax, ecx
shr eax, 0x12
xor eax, ecx
cvtsi2sd xmm0, rax
subsd xmm0, xmm6
mulsd xmm0, xmm2
mulsd xmm2, xmm7
addsd xmm1, xmm0
sub rsi, 1
jne 0x140005a20
divsd xmm1, xmm2
sub r11d, r10d
mov qword [rsp + 0x20], 1
movd xmm0, r11d
cvtdq2pd xmm0, xmm0
addsd xmm1, xmm6
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
add eax, r10d
mov dword [rdi + 0x38], eax
lea rcx, [rsp + 0x20]
call fcn.140007940
cmp dword [rdi + 0x20], 0
je 0x1400059e0
movaps xmm7, xmmword [rsp + 0x13e0]
movaps xmm6, xmmword [rsp + 0x13f0]
mov rsi, qword [rsp + 0x1418]
movaps xmm8, xmmword [rsp + 0x13d0]
mov rcx, qword [rbp + 0x12c0]
xor rcx, rsp
call fcn.1400735e0
lea r11, [rsp + 0x1400]
mov rbx, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret