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

Disassembly:
push rbp
push rdi
push r13
lea rbp, [rsp - 0x1500]
mov eax, 0x1600
call fcn.140080dc0
sub rsp, rax
movaps xmmword [rsp + 0x15b0], xmm8
movaps xmmword [rsp + 0x1580], xmm11
mov rax, qword [0x1401cf010]
xor rax, rsp
mov qword [rbp + 0x1440], rax
mov rax, qword [0x1401d0248]
mov rdi, r8
mov qword [rsp + 0x1628], rbx
add rax, 0x718
xor ebx, ebx
mov qword [rsp + 0x15f8], rsi
mov qword [rsp + 0x15f0], r12
mov rsi, rcx
xor ecx, ecx
mov qword [rsp + 0x15e8], r14
xor r14d, r14d
mov qword [rbp - 8], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x38], rbx
mov r12, r8
mov qword [rsp + 0x15e0], r15
mov r15, rdx
mov qword [rsp + 0x40], rcx
mov byte [rbp + 0x17], cl
lea r9d, [r14 + 0x28]
mov qword [rbp], rax
lea r8, [rbp - 0x10]
mov eax, dword [0x1401d0208]
mov edx, 0x2201c4
mov byte [rbp + 0x10], cl
mov rcx, qword [0x1401d0200]
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], ebx
movaps xmmword [rsp + 0x1570], xmm12
shr r12, 0x20
mov qword [rbp - 0x50], r14
mov dword [rbp - 0x48], r14d
mov dword [rbp + 0x11], ebx
mov word [rbp + 0x15], bx
mov dword [rbp - 0x10], 0x85b3e12
mov qword [rbp + 8], 8
mov dword [rbp - 0xc], eax
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov rcx, qword [0x1401d0248]
lea r8d, [r14 + 0x40]
xorps xmm0, xmm0
lea rdx, [rbp + 0x70]
add rcx, 0x4b0
movups xmmword [rbp + 0x70], xmm0
movups xmmword [rbp + 0x80], xmm0
movups xmmword [rbp + 0x90], xmm0
movups xmmword [rbp + 0xa0], xmm0
call fcn.140005680
xorps xmm0, xmm0
mov dword [rbp - 0x60], 0x726f5707
movups xmmword [rbp - 0x40], xmm0
mov dword [rbp - 0x5c], 0x6170736b
lea rax, [rbp - 0x5f]
mov word [rbp - 0x58], 0x6563
mov r8, 0xffffffffffffffff
mov byte [rbp - 0x56], bl
mov qword [rbp - 0x30], rbx
mov qword [rbp - 0x28], rbx
inc r8
cmp byte [rax + r8], bl
jne 0x140002a36
movaps xmmword [rsp + 0x15d0], xmm6
lea rdx, [rbp - 0x5f]
lea rcx, [rbp - 0x40]
movaps xmmword [rsp + 0x15c0], xmm7
call fcn.140003b30
lea r8, [rbp - 0x40]
lea rdx, [rbp - 0x60]
lea rcx, [0x1401d0240]
call fcn.140009ef0
mov rcx, qword [rbp - 0x60]
add rcx, 0x420
call fcn.14000c540
lea rcx, [rbp + 0x58]
lea rdx, [rax + 0xe4]
lea r13, [rax + 0xc0]
call fcn.14000c680
mov rdx, r13
lea rcx, [rbp + 0x30]
call fcn.14000c720
cmp byte [0x1401d0226], bl
je 0x140002cdf
mov eax, dword [0x1401d0238]
test eax, eax
jne 0x140002bc5
cmp byte [0x1401d0225], bl
je 0x140002adc
movsd xmm0, qword [r15]
lea rcx, [rbp - 0x70]
mov eax, dword [r15 + 8]
movsd qword [rbp - 0x70], xmm0
mov dword [rbp - 0x68], eax
jmp 0x140002b29
lea rcx, [rsi + 0x160]
mov qword [rbp - 0x70], rbx
call fcn.14000c540
test rax, rax
jne 0x140002af6
mov dword [rbp - 0x58], ebx
jmp 0x140002b1b
xor ecx, ecx
lea rdx, [rbp - 0x70]
mov qword [rbp - 0x70], rcx
mov r8d, 0xc
mov dword [rbp - 0x68], ecx
lea rcx, [rax + 0x154]
call fcn.140005680
mov eax, dword [rbp - 0x68]
mov dword [rbp - 0x58], eax
movsd xmm0, qword [rbp - 0x70]
lea rcx, [rbp - 0x60]
movsd qword [rbp - 0x60], xmm0
movsd xmm7, qword [rcx]
mov eax, 0x160
movss xmm6, dword [rcx + 4]
xor ebx, ebx
movss xmm8, dword [rcx + 8]
divss xmm7, dword [0x1401cf0a4]
lea rcx, [rax + rsi]
mov qword [rbp - 0x70], rbx
divss xmm6, dword [0x1401cf0e4]
divss xmm8, dword [0x1401cf0a4]
call fcn.14000c540
test rax, rax
je 0x140002b8a
xor ecx, ecx
lea r8d, [rbx + 0xc]
mov qword [rbp - 0x70], rcx
lea rdx, [rbp - 0x70]
mov dword [rbp - 0x68], ecx
lea rcx, [rax + 0x148]
call fcn.140005680
mov ebx, dword [rbp - 0x68]
movsd xmm0, qword [rbp - 0x70]
movsd qword [rbp - 0x60], xmm0
addss xmm7, dword [rbp - 0x60]
addss xmm6, dword [rbp - 0x5c]
movd xmm0, ebx
addss xmm8, xmm0
movaps xmm1, xmm7
unpcklps xmm1, xmm6
movaps xmm2, xmm1
movsd qword [rbp - 0x50], xmm1
movss dword [rbp - 0x48], xmm8
movd r14d, xmm8
jmp 0x140002d28
cmp eax, 1
jne 0x140002cd8
cmp byte [0x1401d0225], bl
je 0x140002bed
movsd xmm0, qword [r15]
lea rcx, [rbp - 0x70]
mov eax, dword [r15 + 8]
movsd qword [rbp - 0x70], xmm0
mov dword [rbp - 0x68], eax
jmp 0x140002c3a
lea rcx, [rsi + 0x160]
mov qword [rbp - 0x70], rbx
call fcn.14000c540
test rax, rax
jne 0x140002c07
mov dword [rbp - 0x58], ebx
jmp 0x140002c2c
xor ecx, ecx
lea rdx, [rbp - 0x70]
mov qword [rbp - 0x70], rcx
mov r8d, 0xc
mov dword [rbp - 0x68], ecx
lea rcx, [rax + 0x154]
call fcn.140005680
mov eax, dword [rbp - 0x68]
mov dword [rbp - 0x58], eax
movsd xmm0, qword [rbp - 0x70]
lea rcx, [rbp - 0x60]
movsd qword [rbp - 0x60], xmm0
movsd xmm1, qword [rcx]
mov eax, 0x160
movss xmm6, dword [0x1401cf0a4]
movaps xmm0, xmm1
movss xmm8, dword [0x1401cf0e4]
movaps xmm7, xmm6
mulss xmm6, dword [rcx + 8]
xor ebx, ebx
lea rcx, [rax + rsi]
mov qword [rbp - 0x70], rbx
shufps xmm0, xmm0, 0x55
mulss xmm8, xmm0
mulss xmm7, xmm1
call fcn.14000c540
test rax, rax
je 0x140002ca0
xor ecx, ecx
lea r8d, [rbx + 0xc]
mov qword [rbp - 0x70], rcx
lea rdx, [rbp - 0x70]
mov dword [rbp - 0x68], ecx
lea rcx, [rax + 0x148]
call fcn.140005680
mov ebx, dword [rbp - 0x68]
movsd xmm0, qword [rbp - 0x70]
movsd qword [rbp - 0x60], xmm0
addss xmm7, dword [rbp - 0x60]
addss xmm8, dword [rbp - 0x5c]
movd xmm0, ebx
addss xmm6, xmm0
movaps xmm1, xmm7
unpcklps xmm1, xmm8
movaps xmm2, xmm1
movsd qword [rbp - 0x50], xmm1
movss dword [rbp - 0x48], xmm6
movd r14d, xmm6
jmp 0x140002d28
movsd xmm2, qword [rbp - 0x50]
jmp 0x140002d28
lea rcx, [rsi + 0x160]
mov qword [rbp - 0x70], r14
call fcn.14000c540
test rax, rax
je 0x140002d17
xor ecx, ecx
lea rdx, [rbp - 0x70]
mov qword [rbp - 0x70], rcx
mov r8d, 0xc
mov dword [rbp - 0x68], ecx
lea rcx, [rax + 0x148]
call fcn.140005680
mov r14d, dword [rbp - 0x68]
movsd xmm0, qword [rbp - 0x70]
movaps xmm2, xmm0
movsd qword [rbp - 0x50], xmm0
mov dword [rbp - 0x48], r14d
movaps xmm0, xmmword [rbp + 0x70]
lea r8, [rbp - 0x10]
movaps xmm1, xmmword [rbp + 0x80]
lea rcx, [rbp - 0x70]
mov rdx, qword [rsp + 0x40]
movss xmm12, dword [0x1401cf084]
movaps xmmword [rbp - 0x10], xmm0
movaps xmm0, xmmword [rbp + 0x90]
movaps xmmword [rbp], xmm1
movaps xmm1, xmmword [rbp + 0xa0]
movaps xmmword [rsp + 0x15a0], xmm9
movaps xmmword [rbp + 0x10], xmm0
movaps xmmword [rbp + 0x20], xmm1
movaps xmmword [rsp + 0x1590], xmm10
movsd qword [rbp - 0x70], xmm2
mov dword [rbp - 0x68], r14d
call fcn.140009b50
cmp byte [0x1401d0224], 0
movss xmm11, dword [0x1401c0218]
subss xmm11, dword [0x1401cf094]
mov r15, qword [rsp + 0x15e0]
mov r14, qword [rsp + 0x15e8]
mov qword [rsp + 0x40], rax
divss xmm11, dword [0x1401c0214]
je 0x140003077
cmp dword [0x1401d0258], 0
movaps xmmword [rsp + 0x1560], xmm13
movaps xmmword [rsp + 0x1550], xmm14
jne 0x140002e01
movss xmm1, dword [0x1401cf0b4]
movss xmm2, dword [0x1401cf0fc]
mulss xmm1, dword [0x1401c01e0]
mulss xmm2, dword [0x1401c01e0]
jmp 0x140002e14
movss xmm1, dword [0x1401cf0f8]
mulss xmm1, dword [0x1401c01e0]
movaps xmm2, xmm1
cvttss2si ebx, xmm1
cvttss2si esi, xmm2
movd xmm13, ebx
cvtdq2ps xmm13, xmm13
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
movss xmm9, dword [rsp + 0x40]
movaps xmm0, xmm13
mulss xmm0, dword [0x1401c0104]
cdq
idiv ebx
movd xmm1, edi
cvtdq2ps xmm1, xmm1
movd xmm8, edx
cvtdq2ps xmm8, xmm8
movd xmm14, esi
subss xmm8, xmm0
movd xmm10, r12d
movaps xmm0, xmm9
subss xmm0, xmm1
cvtdq2ps xmm14, xmm14
addss xmm8, xmm0
cvtdq2ps xmm10, xmm10
mulss xmm8, xmm12
divss xmm8, dword [0x1401cf0d4]
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
movss xmm6, dword [rsp + 0x44]
movaps xmm0, xmm14
mulss xmm0, dword [0x1401c0104]
cdq
idiv esi
movaps xmm1, xmm6
subss xmm1, xmm10
movd xmm7, edx
cvtdq2ps xmm7, xmm7
subss xmm7, xmm0
addss xmm7, xmm1
mulss xmm7, xmm12
divss xmm7, dword [0x1401cf0f4]
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [rbp + 0x1434], 0xffffffff
mov edx, 1
mov dword [rbp + 0xb4], eax
mov r9d, 0x270
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 [rbp + rdx*4 + 0xb4], eax
inc rdx
cmp rdx, r9
jb 0x140002ef0
movaps xmm4, xmm13
mov dword [rbp + 0xb0], r9d
xorps xmm4, xmmword [0x1401c0970]
lea r8, [rbp + 0xb8]
movaps xmm5, xmm14
xorps xmm12, xmm12
xorps xmm5, xmmword [0x1401c0970]
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 0x140002f40
mov ecx, dword [rbp + 0xb0]
subss xmm13, xmm4
movss xmm1, dword [0x1401c00a4]
xorps xmm3, xmm3
mov edx, dword [rbp + rcx*4 + 0xb4]
mov eax, edx
shr eax, 0xb
inc ecx
and eax, dword [rbp + 0x1434]
xor edx, eax
mov dword [rbp + 0xb0], ecx
mov eax, edx
lea rcx, [rbp + 0xb0]
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and eax, 0xffffdf8c
shl eax, 0xf
xor edx, eax
mov eax, edx
shr eax, 0x12
xor eax, edx
cvtsi2ss xmm3, rax
subss xmm3, xmm12
addss xmm3, xmm12
mulss xmm3, xmm1
mulss xmm3, xmm13
addss xmm3, xmm4
call fcn.140003f90
xorps xmm2, xmm2
mov eax, eax
subss xmm14, xmm5
lea rcx, [rbp + 0xb0]
cvtsi2ss xmm2, rax
subss xmm2, xmm12
addss xmm2, xmm12
mulss xmm2, xmm1
mulss xmm2, xmm14
addss xmm2, xmm5
call fcn.140003f90
addss xmm3, dword [rbp - 0x50]
addss xmm2, dword [rbp - 0x4c]
movaps xmm14, xmmword [rsp + 0x1550]
xorps xmm0, xmm0
mov eax, eax
movss dword [rbp - 0x50], xmm3
movss dword [rbp - 0x4c], xmm2
cvtsi2ss xmm0, rax
subss xmm0, xmm12
addss xmm0, xmm12
mulss xmm0, xmm1
mulss xmm0, xmm13
movaps xmm13, xmmword [rsp + 0x1560]
addss xmm0, xmm4
addss xmm0, dword [rbp - 0x48]
movss dword [rbp - 0x48], xmm0
jmp 0x1400030c0
movss xmm9, dword [rsp + 0x40]
movss xmm6, dword [rsp + 0x44]
movaps xmm8, xmm9
movd xmm0, edi
movaps xmm7, xmm6
movd xmm10, r12d
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm10, xmm10
subss xmm8, xmm0
subss xmm7, xmm10
mulss xmm8, xmm12
mulss xmm7, xmm12
divss xmm8, dword [0x1401cf0d4]
divss xmm7, dword [0x1401cf0f4]
movss xmm0, dword [0x1401c02a8]
ucomiss xmm8, xmm0
mov r12, qword [rsp + 0x15f0]
mov rsi, qword [rsp + 0x15f8]
mov rbx, qword [rsp + 0x1628]
movaps xmm12, xmmword [rsp + 0x1570]
jp 0x1400030f5
je 0x1400033a2
ucomiss xmm7, xmm0
jp 0x140003100
je 0x1400033a2
cmp byte [0x1401d023f], 0
je 0x140003165
xorps xmm3, xmm3
movaps xmm0, xmm7
cvtsi2ss xmm3, edi
addss xmm0, xmm10
movaps xmm2, xmm8
addss xmm2, xmm3
movaps xmm1, xmm10
subss xmm1, xmm0
xorps xmm0, xmm0
subss xmm3, xmm2
mulss xmm1, xmm1
mulss xmm3, xmm3
addss xmm3, xmm1
ucomiss xmm0, xmm3
ja 0x140003149
xorps xmm1, xmm1
sqrtss xmm1, xmm3
jmp 0x140003154
movaps xmm0, xmm3
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movaps xmm1, xmm0
movss xmm0, dword [0x1401c0208]
comiss xmm0, xmm1
jae 0x1400033a2
cmp byte [0x1401d0223], 0
movd xmm0, edi
cvtdq2ps xmm0, xmm0
je 0x1400031bd
subss xmm9, xmm0
xorps xmm0, xmm0
subss xmm6, xmm10
mulss xmm9, xmm9
mulss xmm6, xmm6
addss xmm9, xmm6
ucomiss xmm0, xmm9
ja 0x1400031a0
xorps xmm0, xmm0
sqrtss xmm0, xmm9
jmp 0x1400031a9
movaps xmm0, xmm9
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movd xmm1, dword [0x1401cf100]
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm0
jb 0x1400033a2
mov ecx, dword [0x1401d026c]
test ecx, ecx
je 0x140003369
cmp ecx, 1
jne 0x1400033a2
lea r8, [rbp - 0x50]
lea rdx, [rbp + 0x58]
lea rcx, [rbp - 0x10]
call fcn.140001b70
xor ecx, ecx
mov byte [rbp - 0x20], 1
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x30], rcx
movups xmm9, xmmword [rax + 0x10]
mov dword [rsp + 0x28], ecx
movups xmm8, xmmword [rax]
mov dword [rbp - 0x1f], ecx
movss xmm1, dword [rax + 0x20]
movaps xmm6, xmm9
subss xmm6, dword [rbp + 0x40]
subss xmm1, dword [rbp + 0x50]
movaps xmm7, xmm8
mov word [rbp - 0x1b], cx
subss xmm7, dword [rbp + 0x30]
movaps xmm3, xmm9
mov byte [rbp - 0x19], cl
mulss xmm6, xmm11
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rcx
shufps xmm3, xmm9, 0x55
movaps xmm5, xmm8
subss xmm3, dword [rbp + 0x44]
addss xmm6, dword [rbp + 0x40]
mulss xmm7, xmm11
movaps xmm2, xmm9
shufps xmm5, xmm8, 0x55
movaps xmm4, xmm8
subss xmm5, dword [rbp + 0x34]
addss xmm7, dword [rbp + 0x30]
shufps xmm2, xmm9, 0xaa
subss xmm2, dword [rbp + 0x48]
shufps xmm4, xmm8, 0xaa
subss xmm4, dword [rbp + 0x38]
shufps xmm6, xmm6, 0xe1
shufps xmm7, xmm7, 0xe1
shufps xmm9, xmm9, 0xff
subss xmm9, dword [rbp + 0x4c]
shufps xmm8, xmm8, 0xff
subss xmm8, dword [rbp + 0x3c]
mulss xmm3, xmm11
mulss xmm5, xmm11
addss xmm3, dword [rbp + 0x44]
mulss xmm2, xmm11
addss xmm5, dword [rbp + 0x34]
mulss xmm4, xmm11
addss xmm2, dword [rbp + 0x48]
movss xmm6, xmm3
mulss xmm9, xmm11
addss xmm4, dword [rbp + 0x38]
movss xmm7, xmm5
shufps xmm6, xmm6, 0xc6
addss xmm9, dword [rbp + 0x4c]
shufps xmm7, xmm7, 0xc6
movss xmm6, xmm2
shufps xmm6, xmm6, 0x27
movss xmm7, xmm4
mulss xmm8, xmm11
shufps xmm7, xmm7, 0x27
movss xmm6, xmm9
shufps xmm6, xmm6, 0x39
addss xmm8, dword [rbp + 0x3c]
movups xmmword [rbp - 0x30], xmm6
mov qword [rbp - 0x30], rax
mov eax, dword [0x1401d0208]
mulss xmm1, xmm11
mov qword [rbp - 0x28], 0x24
movss xmm7, xmm8
movaps xmmword [rsp + 0x70], xmm6
shufps xmm7, xmm7, 0x39
addss xmm1, dword [rbp + 0x50]
movups xmmword [rbp - 0x40], xmm7
mov dword [rbp - 0x3c], eax
movaps xmmword [rsp + 0x60], xmm7
mov dword [rbp - 0x40], 0x85b3e12
movss dword [rbp - 0x80], xmm1
mov qword [rbp - 0x38], r13
lea r9d, [rcx + 0x28]
mov edx, 0x2201c4
mov rcx, qword [0x1401d0200]
lea r8, [rbp - 0x40]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
jmp 0x1400033a2
xor ecx, ecx
mov qword [rbp + 4], 1
cvttss2si eax, xmm8
mov qword [rbp - 0x10], rcx
lea rdx, [rbp - 0x10]
mov qword [rbp + 0xc], rcx
lea r8d, [rcx + 0x28]
mov dword [rbp + 0x14], ecx
mov dword [rbp], ecx
lea ecx, [r8 - 0x27]
mov dword [rbp - 8], eax
cvttss2si eax, xmm7
mov dword [rbp - 4], eax
call qword [sym.imp.USER32.dll_SendInput]
movaps xmm10, xmmword [rsp + 0x1590]
movaps xmm9, xmmword [rsp + 0x15a0]
movaps xmm7, xmmword [rsp + 0x15c0]
movaps xmm6, xmmword [rsp + 0x15d0]
mov rcx, qword [rbp + 0x1440]
xor rcx, rsp
call fcn.14007fde0
lea r11, [rsp + 0x1600]
movaps xmm8, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x80]
mov rsp, r11
pop r13
pop rdi
pop rbp
ret