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

Disassembly:
mov eax, 0x13e8
call fcn.140063610
sub rsp, rax
movaps xmmword [rsp + 0x13d0], xmm6
movaps xmmword [rsp + 0x13c0], xmm7
mov rax, qword [0x1400d1040]
xor rax, rsp
mov qword [rsp + 0x13b0], rax
movaps xmm7, xmm1
movaps xmm6, xmm0
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [rsp + 0x13a4], 0xffffffff
mov edx, 1
mov dword [rsp + 0x24], eax
nop
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rsp + rdx*4 + 0x24], eax
inc rdx
cmp rdx, 0x270
jb 0x140051180
comiss xmm7, xmm6
mov edx, 0x270
mov qword [rsp + 0x13e0], rbx
mov dword [rsp + 0x20], edx
jbe 0x140051394
movsd xmm3, qword [0x1400c5408]
xorps xmm4, xmm4
xorps xmm1, xmm1
xorps xmm5, xmm5
cvtss2sd xmm4, xmm6
mov ebx, 2
movsd xmm6, qword [0x1400c54e0]
xorps xmm2, xmm2
cvtss2sd xmm1, xmm7
cmp edx, 0x270
jne 0x140051242
lea r8, [rsp + 0x28]
mov r9d, edx
nop dword [rax]
nop word [rax + rax]
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 0x140051200
mov edx, dword [rsp + 0x20]
jmp 0x140051320
cmp edx, 0x4e0
jb 0x140051320
xor r8d, r8d
mov eax, dword [rsp + r8*4 + 0x9e4]
mov edx, eax
xor edx, dword [rsp + r8*4 + 0x9e8]
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 [rsp + r8*4 + 0x1018]
xor ecx, edx
mov dword [rsp + r8*4 + 0x24], ecx
inc r8
cmp r8, 0xe3
jb 0x140051251
mov r8d, 0xe3
nop word [rax + rax]
mov eax, dword [rsp + r8*4 + 0x9e4]
mov edx, eax
xor edx, dword [rsp + r8*4 + 0x9e8]
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 [rsp + r8*4 - 0x368]
xor ecx, edx
mov dword [rsp + r8*4 + 0x24], ecx
inc r8
cmp r8, 0x26f
jb 0x1400512a0
mov edx, dword [rsp + 0x13a0]
mov eax, dword [rsp + 0x24]
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 [rsp + 0x654]
xor edx, edx
mov dword [rsp + 0x9e0], ecx
mov dword [rsp + 0x20], edx
mov eax, edx
xorps xmm0, xmm0
inc edx
mov ecx, dword [rsp + rax*4 + 0x24]
mov eax, ecx
shr eax, 0xb
and eax, dword [rsp + 0x13a4]
xor ecx, eax
mov dword [rsp + 0x20], edx
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, xmm5
mulsd xmm0, xmm3
mulsd xmm3, xmm6
addsd xmm2, xmm0
sub rbx, 1
jne 0x1400511e2
divsd xmm2, xmm3
subsd xmm1, xmm4
xorps xmm0, xmm0
mulsd xmm1, xmm2
addsd xmm1, xmm4
cvtsd2ss xmm0, xmm1
jmp 0x14005140d
comiss xmm6, xmm7
jbe 0x140051403
movsd xmm1, qword [0x1400c5408]
xorps xmm3, xmm3
movsd xmm5, qword [0x1400c54e0]
xorps xmm4, xmm4
cvtss2sd xmm3, xmm6
mov ebx, 2
cvtss2sd xmm7, xmm7
xorps xmm2, xmm2
nop
lea rcx, [rsp + 0x20]
call fcn.14004d480
mov eax, eax
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
subsd xmm0, xmm4
mulsd xmm0, xmm1
mulsd xmm1, xmm5
addsd xmm2, xmm0
sub rbx, 1
jne 0x1400513c0
divsd xmm2, xmm1
subsd xmm3, xmm7
xorps xmm0, xmm0
mulsd xmm3, xmm2
addsd xmm3, xmm7
cvtsd2ss xmm0, xmm3
jmp 0x14005140d
ucomiss xmm7, xmm6
jp 0x14005140d
jne 0x14005140d
movaps xmm0, xmm6
mov rbx, qword [rsp + 0x13e0]
mov rcx, qword [rsp + 0x13b0]
xor rcx, rsp
call fcn.140062520
movaps xmm6, xmmword [rsp + 0x13d0]
movaps xmm7, xmmword [rsp + 0x13c0]
add rsp, 0x13e8
ret