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

Disassembly:
mov qword [rsp + 0x18], rsi
push rbp
lea rbp, [rsp - 0x1340]
mov eax, 0x1440
call fcn.140062980
sub rsp, rax
movaps xmmword [rsp + 0x1430], xmm6
movaps xmmword [rsp + 0x1420], xmm7
movaps xmmword [rsp + 0x1410], xmm8
mov rax, qword [0x140079040]
xor rax, rsp
mov qword [rbp + 0x12d0], rax
mov rsi, qword [0x1400ed070]
movaps xmm6, xmm3
movaps xmm7, xmm2
movaps xmm8, xmm1
test rsi, rsi
je 0x140054fcf
mov qword [rsp + 0x1450], rbx
mov qword [rsp + 0x1458], rdi
movaps xmmword [rsp + 0x1400], xmm9
movaps xmmword [rsp + 0x13f0], xmm10
movaps xmmword [rsp + 0x13e0], xmm11
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [rbp + 0x12c4], 0xffffffff
mov edx, 1
mov dword [rsp + 0x44], eax
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 [rsp + rdx*4 + 0x44], eax
inc rdx
cmp rdx, 0x270
jb 0x140054c90
movss xmm2, dword [0x14006f750]
movaps xmm0, xmm8
movsd xmm4, qword [0x14006eeb0]
xorps xmm0, xmm2
movaps xmm1, xmm6
xorps xmm9, xmm9
xorps xmm1, xmm2
xorps xmm3, xmm3
cvtss2sd xmm9, xmm0
mov edx, 0x270
mov edi, 2
mov dword [rsp + 0x40], edx
mov r10d, edi
movaps xmm0, xmm7
xorps xmm11, xmm11
cvtss2sd xmm3, xmm8
xorps xmm0, xmm2
xorps xmm8, xmm8
xorps xmm10, xmm10
xorps xmm5, xmm5
cvtss2sd xmm11, xmm1
cvtss2sd xmm8, xmm6
movsd xmm6, qword [0x14006ef48]
xorps xmm1, xmm1
cvtss2sd xmm10, xmm0
cvtss2sd xmm7, xmm7
movaps xmm2, xmm4
cmp edx, 0x270
jne 0x140054d82
lea r8, [rsp + 0x48]
mov r9d, 0x270
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 0x140054d40
mov edx, dword [rsp + 0x40]
jmp 0x140054e5d
cmp edx, 0x4e0
jb 0x140054e5d
xor r8d, r8d
mov eax, dword [rbp + r8*4 + 0x904]
mov edx, eax
xor edx, dword [rbp + r8*4 + 0x908]
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 + 0xf38]
xor ecx, edx
mov dword [rsp + r8*4 + 0x44], ecx
inc r8
cmp r8, 0xe3
jb 0x140054d91
mov r8d, 0xe3
nop word [rax + rax]
mov eax, dword [rbp + r8*4 + 0x904]
mov edx, eax
xor edx, dword [rbp + r8*4 + 0x908]
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 - 0x448]
xor ecx, edx
mov dword [rsp + r8*4 + 0x44], ecx
inc r8
cmp r8, 0x26f
jb 0x140054de0
mov edx, dword [rbp + 0x12c0]
mov eax, dword [rsp + 0x44]
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 + 0x574]
xor edx, edx
mov dword [rbp + 0x900], ecx
mov dword [rsp + 0x40], edx
mov eax, edx
xorps xmm0, xmm0
inc edx
mov ecx, dword [rsp + rax*4 + 0x44]
mov eax, ecx
shr eax, 0xb
and eax, dword [rbp + 0x12c4]
xor ecx, eax
mov dword [rsp + 0x40], 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, xmm2
mulsd xmm2, xmm6
addsd xmm1, xmm0
sub r10, 1
jne 0x140054d24
divsd xmm1, xmm2
mov rbx, rdi
subsd xmm3, xmm9
movaps xmm2, xmm4
mulsd xmm1, xmm3
xorps xmm3, xmm3
addsd xmm1, xmm9
movaps xmm9, xmmword [rsp + 0x1400]
cvtsd2ss xmm3, xmm1
movaps xmm1, xmm5
lea rcx, [rsp + 0x40]
call fcn.1400611a0
mov eax, eax
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
subsd xmm0, xmm5
mulsd xmm0, xmm2
mulsd xmm2, xmm6
addsd xmm1, xmm0
sub rbx, 1
jne 0x140054ee2
mov rbx, qword [rsp + 0x1450]
subsd xmm7, xmm10
divsd xmm1, xmm2
xorps xmm2, xmm2
mulsd xmm1, xmm7
addsd xmm1, xmm10
movaps xmm10, xmmword [rsp + 0x13f0]
cvtsd2ss xmm2, xmm1
movaps xmm1, xmm5
nop dword [rax]
lea rcx, [rsp + 0x40]
call fcn.1400611a0
mov eax, eax
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
subsd xmm0, xmm5
mulsd xmm0, xmm4
mulsd xmm4, xmm6
addsd xmm1, xmm0
sub rdi, 1
jne 0x140054f40
mov rcx, qword [0x1400ed4b8]
subsd xmm8, xmm11
mov rdi, qword [rsp + 0x1458]
lea rdx, [rsi + 0x90]
divsd xmm1, xmm4
mov r9d, 0xc
lea r8, [rsp + 0x30]
mov qword [rsp + 0x20], 0
xorps xmm0, xmm0
movss dword [rsp + 0x30], xmm3
mulsd xmm1, xmm8
movss dword [rsp + 0x34], xmm2
addsd xmm1, xmm11
cvtsd2ss xmm0, xmm1
movss dword [rsp + 0x38], xmm0
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
movaps xmm11, xmmword [rsp + 0x13e0]
mov rcx, qword [rbp + 0x12d0]
xor rcx, rsp
call fcn.1400617c0
lea r11, [rsp + 0x1440]
mov rsi, qword [r11 + 0x20]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
mov rsp, r11
pop rbp
ret