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

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r14
lea rbp, [rsp - 0x3260]
mov eax, 0x3360
call fcn.140080230
sub rsp, rax
movaps xmmword [rsp + 0x3350], xmm6
movaps xmmword [rsp + 0x3340], xmm7
mov rax, qword [0x140343f10]
xor rax, rsp
mov qword [rbp + 0x3230], rax
mov esi, edx
mov ebx, ecx
call fcn.140037cd0
mulsd xmm0, qword [0x14030e238]
mov r14d, ebx
cvttsd2si eax, xmm0
sub r14d, eax
call fcn.140037cd0
mulsd xmm0, qword [0x14030e238]
lea rcx, [rsp + 0x20]
mov edi, esi
cvttsd2si eax, xmm0
sub edi, eax
call qword [sym.imp.USER32.dll_GetCursorPos]
lea rcx, [rsp + 0x30]
call fcn.1400010e0
movd xmm0, dword [rsp + 0x20]
movd xmm1, dword [rsp + 0x24]
cvtdq2pd xmm0, xmm0
cvtdq2pd xmm1, xmm1
movsd qword [rbp + 0x12c0], xmm0
movsd qword [rbp + 0x12c8], xmm1
call fcn.140037cd0
mov eax, 0x2aaaaaab
sub ebx, r14d
imul ebx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
movd xmm1, edx
cvtdq2pd xmm1, xmm1
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
movsd qword [rbp + 0x12d0], xmm0
call fcn.140037cd0
mov eax, 0x2aaaaaab
lea r9, [rbp + 0x12f0]
sub esi, edi
lea rcx, [rsp + 0x30]
imul esi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
movd xmm1, edx
lea rdx, [rbp + 0x12c0]
cvtdq2pd xmm1, xmm1
mulsd xmm0, xmm1
movd xmm1, r14d
cvtdq2pd xmm1, xmm1
cvttsd2si eax, xmm0
movsd qword [rbp + 0x12e0], xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsd qword [rbp + 0x12d8], xmm0
movd xmm0, edi
cvtdq2pd xmm0, xmm0
movsd qword [rbp + 0x12e8], xmm0
call fcn.1400012e0
movsd xmm7, qword [0x14030e100]
xor edi, edi
mov ebx, 1
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, 1
movd xmm6, eax
cvtdq2pd xmm6, xmm6
call qword [sym.imp.USER32.dll_GetSystemMetrics]
movaps xmm3, xmm7
mov qword [rbp + 0x12d8], rdi
mov edx, 1
lea rcx, [rbp + 0x12c0]
movd xmm0, eax
cvttsd2si eax, qword [rbp + rbx*8 + 0x12f0]
cvtdq2pd xmm0, xmm0
divsd xmm3, xmm0
movd xmm0, eax
cvttsd2si eax, qword [rbp + rbx*8 + 0x12f8]
cvtdq2ps xmm0, xmm0
cvtps2pd xmm1, xmm0
xorps xmm0, xmm0
mulsd xmm3, xmm1
movaps xmm1, xmm7
divsd xmm1, xmm6
movdqu xmmword [rbp + 0x12c8], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
cvtps2pd xmm2, xmm0
mulsd xmm2, xmm1
cvttsd2si eax, xmm2
mov dword [rbp + 0x12c0], eax
cvttsd2si eax, xmm3
mov dword [rbp + 0x12c4], eax
call qword [0x14034dbb8]
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]
nop dword [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 0x140047480
mov dword [rsp + 0x30], 0x270
nop word [rax + rax]
lea rcx, [rsp + 0x30]
call fcn.140037e20
mov ecx, eax
mov eax, 0x86186187
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 4
cmp eax, 0xc30c30c
jae 0x1400474b0
mov eax, 0x86186187
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 4
imul eax, eax, 0x15
sub ecx, eax
call qword [sym.imp.KERNEL32.dll_Sleep]
add rbx, 2
cmp rbx, 0x3e7
jne 0x1400473c4
mov rcx, qword [rbp + 0x3230]
xor rcx, rsp
call fcn.14007e450
lea r11, [rsp + 0x3360]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret