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

Disassembly:
push rbp
push rbx
push rsi
lea rbp, [rsp - 0x1330]
mov eax, 0x1430
call fcn.14007f210
sub rsp, rax
mov rax, qword [0x140098028]
xor rax, rsp
mov qword [rbp + 0x12c0], rax
mov rsi, 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 word [rax + 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 0x140007690
mov eax, dword [rsi + 0x28]
mov ebx, 0x270
mov dword [rsp + 0x30], ebx
test eax, eax
je 0x140007a85
mov qword [rsp + 0x1458], rdi
mov qword [rsp + 0x1460], r12
movabs r12, 0x7fffffffff67697f
mov qword [rsp + 0x1468], r13
movabs r13, 0x7ffffffffff0bdbf
mov qword [rsp + 0x1428], r14
xor r14d, r14d
mov qword [rsp + 0x1420], r15
movabs r15, 0x7fffffffffffffff
movaps xmmword [rsp + 0x1410], xmm6
xorps xmm6, xmm6
movaps xmmword [rsp + 0x1400], xmm7
movsd xmm7, qword [0x14008cff0]
movaps xmmword [rsp + 0x13f0], xmm8
movsd xmm8, qword [0x14008cf80]
movaps xmmword [rsp + 0x13e0], xmm9
movss xmm9, dword [0x14008cfe0]
movaps xmmword [rsp + 0x13d0], xmm10
movss xmm10, dword [0x14008cfc8]
nop dword [rax]
cmp byte [rsi + 0x15], r14b
je 0x140007a32
cmp eax, 2
jne 0x1400077ad
movss xmm1, dword [rsi + 0x50]
movd xmm2, dword [rsi + 0x8c]
movaps xmm0, xmm1
cvtdq2ps xmm2, xmm2
subss xmm0, xmm2
divss xmm2, xmm1
cvttss2si eax, xmm0
mulss xmm2, xmm9
test eax, eax
cmovs eax, r14d
addss xmm2, xmm10
mov dword [rsi + 0x58], eax
cvttss2si eax, xmm2
mov dword [rsi + 0x54], eax
jmp 0x1400079ca
mov r10d, dword [rsi + 0x3c]
mov r11d, dword [rsi + 0x38]
cmp r10d, r11d
jne 0x140007813
mov dword [rsi + 0x70], r10d
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rdi, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rdi, 0x989680
jne 0x1400077dc
imul rax, rax, 0x64
jmp 0x1400077fa
cqo
idiv rdi
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rdi
add rax, rcx
cmp rax, r12
jge 0x140007a18
add rax, 0x989680
mov qword [rsp + 0x20], rax
jmp 0x140007a1d
movaps xmm1, xmm6
movaps xmm2, xmm8
mov edi, 2
nop
cmp ebx, 0x270
jne 0x140007872
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, dword [r8 + 0x62c]
xor ecx, edx
mov dword [r8 + 0x9b8], ecx
sub r9, 1
jne 0x140007830
mov ebx, dword [rsp + 0x30]
jmp 0x14000794e
cmp ebx, 0x4e0
jb 0x14000794e
mov r8, r14
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 0x140007881
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 0x1400078d0
mov edx, dword [rbp + 0x12b0]
mov ebx, r14d
mov eax, dword [rsp + 0x34]
and edx, 0x80000000
btr eax, 0x1f
mov dword [rsp + 0x30], ebx
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]
mov dword [rbp + 0x8f0], ecx
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 rdi, 1
jne 0x140007820
divsd xmm1, xmm2
sub r11d, r10d
movd xmm0, r11d
cvtdq2pd xmm0, xmm0
addsd xmm1, xmm6
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
add eax, r10d
mov dword [rsi + 0x40], eax
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rdi, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rdi, 0x989680
jne 0x1400079e8
imul rax, rax, 0x64
jmp 0x140007a06
cqo
idiv rdi
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rdi
add rax, rcx
cmp rax, r13
jge 0x140007a18
add rax, 0xf4240
mov qword [rsp + 0x20], rax
jmp 0x140007a1d
mov qword [rsp + 0x20], r15
lea rcx, [rsp + 0x20]
call fcn.140009a00
mov eax, dword [rsi + 0x28]
test eax, eax
jne 0x140007760
movaps xmm9, xmmword [rsp + 0x13e0]
movaps xmm8, xmmword [rsp + 0x13f0]
movaps xmm7, xmmword [rsp + 0x1400]
movaps xmm6, xmmword [rsp + 0x1410]
mov r15, qword [rsp + 0x1420]
mov r14, qword [rsp + 0x1428]
mov r13, qword [rsp + 0x1468]
mov r12, qword [rsp + 0x1460]
mov rdi, qword [rsp + 0x1458]
movaps xmm10, xmmword [rsp + 0x13d0]
mov rcx, qword [rbp + 0x12c0]
xor rcx, rsp
call fcn.14007e140
add rsp, 0x1430
pop rsi
pop rbx
pop rbp
ret