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

Disassembly:
push rbp
push rsi
push r12
push r13
push r14
mov eax, 0x1450
call fcn.1800a3dd0
sub rsp, rax
movaps xmmword [rsp + 0x1430], xmm7
movaps xmmword [rsp + 0x13e0], xmm12
mov rax, qword [0x1800d5240]
xor rax, rsp
mov qword [rsp + 0x13c0], rax
mov rsi, rcx
mov rcx, qword [0x180197520]
test rcx, rcx
jne 0x180068d7c
xor ebp, ebp
jmp 0x180068d8b
mov rax, qword [rcx]
mov rdx, qword [rax + 0xe0]
call rdx
mov rbp, rax
mov r13, qword [rbp + 0x7e8]
mov rcx, qword [rsi + 0x98]
mov r12, qword [r13 + 0xc0]
cmp rcx, qword [rsi + 0xa0]
je 0x180068db0
mov qword [rsi + 0xa0], rcx
mov qword [rsp + 0x1488], rbx
mov rcx, rsi
mov qword [rsp + 0x1490], rdi
movaps xmmword [rsp + 0x1440], xmm6
call fcn.180047840
mov r14, qword [rsi + 0x98]
movsd xmm7, qword [0x1800c0430]
cmp r14, qword [rsi + 0xa0]
jne 0x180068ded
xorps xmm0, xmm0
jmp 0x180068e47
mov rax, qword [r14]
movaps xmm1, xmm7
mov rdi, qword [rbp + 0x2c8]
mov rbx, qword [rax + 0x2c8]
movss xmm0, dword [rdi + 8]
subss xmm0, dword [rbx + 8]
cvtps2pd xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movaps xmm6, xmm0
movaps xmm1, xmm7
movss xmm0, dword [rdi]
subss xmm0, dword [rbx]
cvtps2pd xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
addsd xmm6, xmm0
xorps xmm1, xmm1
ucomisd xmm1, xmm6
ja 0x180068e3f
xorps xmm0, xmm0
sqrtsd xmm0, xmm6
jmp 0x180068e47
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
mov eax, dword [rsi + 0x120]
xorps xmm12, xmm12
inc eax
mov dword [rsi + 0x120], eax
cvtsd2ss xmm12, xmm0
cmp r14, qword [rsi + 0xa0]
je 0x1800695ad
cmp eax, dword [rsi + 0xd8]
jl 0x1800695ad
mov rax, qword [r14]
mov qword [rsp + 0x1498], r15
movaps xmmword [rsp + 0x1420], xmm8
movaps xmmword [rsp + 0x1410], xmm9
mov rcx, qword [rax + 0x2c8]
movaps xmmword [rsp + 0x1400], xmm10
movaps xmmword [rsp + 0x13f0], xmm11
movaps xmmword [rsp + 0x13d0], xmm13
mov eax, dword [rcx + 4]
mov dword [rsi + 0xb8], eax
mov rcx, qword [0x180197520]
test rcx, rcx
je 0x180068f72
mov rax, qword [rcx]
mov rdx, qword [rax + 0xe0]
call rdx
test rax, rax
je 0x180068f72
mov rax, qword [rax + 0x7e8]
test rax, rax
je 0x180068f72
mov r14, qword [rax + 0xc0]
test r14, r14
je 0x180068f72
mov r15d, dword [rax + 0x10]
xorps xmm7, xmm7
movss xmm8, dword [0x1800c03f0]
xor ebx, ebx
mov rax, qword [r14]
mov edx, ebx
mov rcx, r14
call qword [rax + 0x28]
test rax, rax
je 0x180068f69
mov rdi, qword [rax + 8]
test rdi, rdi
je 0x180068f69
mov rdi, qword [rdi]
test rdi, rdi
je 0x180068f69
mov rcx, rax
call fcn.1800462d0
mov rcx, rdi
movd xmm6, eax
mov rax, qword [rdi]
cvtdq2ps xmm6, xmm6
mulss xmm6, xmm8
call qword [rax + 0x110]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, xmm6
comiss xmm0, xmm7
jbe 0x180068f69
movaps xmm7, xmm0
mov r15d, ebx
inc ebx
cmp ebx, 9
jl 0x180068f12
jmp 0x180068f78
mov r15d, 0xffffffff
mov r14d, dword [r13 + 0x10]
cmp r15d, r14d
je 0x18006901a
mov eax, dword [rsi + 0x118]
dec eax
cmp eax, 1
ja 0x18006901a
mov dword [r13 + 0x10], r15d
cmp dword [rsi + 0x118], 2
jne 0x18006901a
mov rax, qword [r12]
mov edx, r15d
mov rcx, r12
call qword [rax + 0x28]
mov rcx, rbp
mov rbx, rax
call fcn.18003ac50
mov r9d, r15d
mov dword [rsp + 0x20], r15d
mov r8, rbx
lea rcx, [rsp + 0x30]
mov rdx, rax
call fcn.18003acf0
mov rcx, qword [0x180197520]
test rcx, rcx
jne 0x180068fe3
xor eax, eax
jmp 0x180068fef
mov rax, qword [rcx]
mov rdx, qword [rax + 0xe0]
call rdx
mov r8, qword [rax]
lea rdx, [rsp + 0x30]
mov rcx, rax
call qword [r8 + 0x840]
mov rax, qword [0x180197520]
lea rdx, [rsp + 0x30]
mov rcx, qword [rax + 0xf0]
mov rax, qword [rcx]
call qword [rax + htons]
cmp qword [0x180197520], 0
jne 0x18006902c
xor r12d, r12d
mov eax, r12d
jmp 0x180069042
mov rcx, qword [0x180197520]
mov rax, qword [rcx]
mov rdx, qword [rax + 0xe0]
call rdx
xor r12d, r12d
mov rdx, qword [rax + 0x2c8]
mov rax, qword [rsi + 0x98]
mov rcx, qword [rax]
mov rax, qword [rcx + 0x2c8]
movss xmm0, dword [rax]
movss xmm1, dword [rax + 8]
subss xmm0, dword [rdx]
subss xmm1, dword [rdx + 8]
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2f
movss xmm13, dword [0x1800c04e8]
movaps xmm6, xmm0
xorps xmm6, xmmword [0x1800c0de0]
movss xmm9, dword [0x1800c051c]
movss xmm11, dword [0x1800c05ac]
mulss xmm6, xmm13
comiss xmm6, xmm9
jbe 0x1800690ac
addss xmm6, xmm11
comiss xmm6, xmm9
ja 0x1800690a1
movss xmm8, dword [0x1800c05a8]
comiss xmm8, xmm6
movss xmm10, dword [0x1800c053c]
jbe 0x1800690cf
addss xmm6, xmm10
comiss xmm8, xmm6
ja 0x1800690c4
cmp dword [rsi + 0x124], 2
jne 0x180069122
mov rax, qword [0x180197510]
movsd xmm0, qword [rax + 0x3e58]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x1800c035c]
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
mov eax, dword [rsi + 0xd0]
mulss xmm0, dword [0x1800c04a0]
mov rcx, qword [rbp + 0x2d8]
addss xmm0, xmm6
mov dword [rcx], eax
mov rax, qword [rbp + 0x2d8]
movaps xmm6, xmm0
movss dword [rax + 4], xmm0
cmp dword [rsi + 0x124], 3
jne 0x180069330
movd xmm0, dword [rsi + 0x104]
cvtdq2ps xmm0, xmm0
mov dword [0x1801974fc], r12d
comiss xmm0, xmm12
jbe 0x180069315
mov rax, qword [rsi + 0x98]
movd xmm6, dword [rsi + 0x110]
cvtdq2ps xmm6, xmm6
mov rax, qword [rax]
mov rbx, qword [rax + 0x2c8]
mov rax, qword [rax + 0x2d8]
movss xmm13, dword [rbx + 4]
movss xmm0, dword [rax + 4]
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [0x1800c03e8]
cvtpd2ps xmm7, xmm0
addss xmm7, dword [0x1800c0404]
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
movaps xmm12, xmm0
movaps xmm0, xmm7
mulss xmm12, xmm6
addss xmm12, dword [rbx]
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
cmp qword [0x180197520], 0
movaps xmm7, xmm0
mulss xmm7, xmm6
addss xmm7, dword [rbx + 8]
jne 0x1800691c9
mov rax, r12
jmp 0x1800691dc
mov rcx, qword [0x180197520]
mov rax, qword [rcx]
mov rdx, qword [rax + 0xe0]
call rdx
mov rax, qword [rax + 0x2c8]
movsd xmm1, qword [0x1800c0430]
subss xmm13, dword [rax + 4]
subss xmm12, dword [rax]
subss xmm7, dword [rax + 8]
cvtps2pd xmm0, xmm13
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movsd xmm1, qword [0x1800c0430]
movaps xmm6, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm12
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movsd xmm1, qword [0x1800c0430]
addsd xmm6, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
addsd xmm6, xmm0
xorps xmm1, xmm1
ucomisd xmm1, xmm6
ja 0x18006924a
xorps xmm0, xmm0
sqrtsd xmm0, xmm6
jmp 0x180069252
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
xorps xmm2, xmm2
cvtsd2ss xmm2, xmm0
divss xmm13, xmm2
movaps xmm0, xmm13
call sub.api_ms_win_crt_math_l1_1_0.dll_asinf
movaps xmm6, xmm0
movaps xmm1, xmm7
mulss xmm6, dword [0x1800c059c]
movaps xmm0, xmm12
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2f
movss xmm1, dword [0x1800c04fc]
comiss xmm6, xmm1
xorps xmm0, xmmword [0x1800c0de0]
movss xmm13, dword [0x1800c04e8]
mulss xmm0, xmm13
jbe 0x1800692aa
addss xmm6, xmm8
comiss xmm6, xmm1
ja 0x1800692a0
movss xmm1, dword [0x1800c05a0]
comiss xmm1, xmm6
jbe 0x1800692ca
nop word [rax + rax]
addss xmm6, xmm9
comiss xmm1, xmm6
ja 0x1800692c0
comiss xmm0, xmm9
jbe 0x1800692db
addss xmm0, xmm11
comiss xmm0, xmm9
ja 0x1800692d0
comiss xmm8, xmm0
jbe 0x1800692ec
addss xmm0, xmm10
comiss xmm8, xmm0
ja 0x1800692e1
mov rax, qword [rbp + 0x2d8]
addss xmm6, dword [rsi + 0xfc]
movss dword [rax], xmm6
addss xmm0, dword [rsi + 0xfc]
mov rax, qword [rbp + 0x2d8]
movss dword [rax + 4], xmm0
jmp 0x180069330
mov eax, dword [rsi + 0xd0]
mov rcx, qword [rbp + 0x2d8]
mov dword [rcx], eax
mov rax, qword [rbp + 0x2d8]
movss dword [rax + 4], xmm6
cmp dword [rsi + 0x124], 4
mov edi, 1
jne 0x180069440
mov rax, qword [rsi + 0x98]
movd xmm7, dword [rsi + 0x110]
mov dword [0x1801974fc], edi
cvtdq2ps xmm7, xmm7
mov rax, qword [rax]
mov rbx, qword [rax + 0x2c8]
mov rax, qword [rax + 0x2d8]
movss xmm0, dword [rax + 4]
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [0x1800c03e8]
cvtpd2ps xmm6, xmm0
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
movaps xmm12, xmm0
movaps xmm0, xmm6
mulss xmm12, xmm7
addss xmm12, dword [rbx]
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
cmp qword [0x180197520], 0
movaps xmm6, xmm0
mulss xmm6, xmm7
addss xmm6, dword [rbx + 8]
jne 0x1800693b8
mov rax, r12
jmp 0x1800693cb
mov rcx, qword [0x180197520]
mov rax, qword [rcx]
mov rdx, qword [rax + 0xe0]
call rdx
mov rax, qword [rax + 0x2c8]
subss xmm12, dword [rax]
subss xmm6, dword [rax + 8]
movaps xmm0, xmm12
movaps xmm1, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2f
xorps xmm0, xmmword [0x1800c0de0]
mulss xmm0, xmm13
comiss xmm0, xmm9
jbe 0x18006940b
nop word [rax + rax]
addss xmm0, xmm11
comiss xmm0, xmm9
ja 0x180069400
comiss xmm8, xmm0
jbe 0x18006941c
addss xmm0, xmm10
comiss xmm8, xmm0
ja 0x180069411
mov rax, qword [rbp + 0x2d8]
mov dword [rax], r12d
mov rax, qword [rbp + 0x2d8]
mov dword [rax + 4], 0x42b40000
cvttss2si eax, xmm0
mov dword [0x180197500], eax
jmp 0x180069447
mov dword [0x1801974fc], r12d
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
movaps xmm13, xmmword [rsp + 0x13d0]
movaps xmm11, xmmword [rsp + 0x13f0]
movaps xmm10, xmmword [rsp + 0x1400]
movaps xmm9, xmmword [rsp + 0x1410]
movaps xmm8, xmmword [rsp + 0x1420]
mov dword [rsp + 0x34], eax
mov dword [rsp + 0x13b4], 0xffffffff
nop dword [rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edi
mov dword [rsp + rdi*4 + 0x34], eax
inc rdi
cmp rdi, 0x270
jb 0x180069490
mov eax, dword [rsi + 0x10c]
mov dword [rsp + 0x30], 0x270
cmp eax, 1
jne 0x180069536
mov rbp, qword [rsi + 0xa0]
mov rdi, qword [rsi + 0x98]
cmp rdi, rbp
je 0x18006958c
nop dword [rax]
mov rax, qword [rdi]
cmp dword [rax + 0x214], 8
jle 0x1800694f5
cmp byte [rsi + 0x11c], 0
jne 0x18006952b
mov eax, dword [rsi + 0xdc]
test eax, eax
jle 0x18006952b
mov ebx, eax
lea rcx, [rsp + 0x30]
call fcn.180048aa0
imul ecx, eax, 0x64
cmp ecx, 0x5f
ja 0x180069525
lea rcx, [rsp + 0x30]
call fcn.180048aa0
imul ecx, eax, 0x64
cmp ecx, 0x60
jb 0x180069513
sub rbx, 1
jne 0x180069501
add rdi, 8
cmp rdi, rbp
jne 0x1800694e0
jmp 0x18006958c
test eax, eax
jne 0x18006958c
mov rax, qword [rsi + 0x98]
mov rcx, qword [rax]
cmp dword [rcx + 0x214], 8
jle 0x180069556
cmp byte [rsi + 0x11c], 0
jne 0x18006958c
mov eax, dword [rsi + 0xdc]
test eax, eax
jle 0x18006958c
mov ebx, eax
lea rcx, [rsp + 0x30]
call fcn.180048aa0
imul ecx, eax, 0x64
cmp ecx, 0x5f
ja 0x180069586
lea rcx, [rsp + 0x30]
call fcn.180048aa0
imul ecx, eax, 0x64
cmp ecx, 0x60
jb 0x180069574
sub rbx, 1
jne 0x180069562
cmp r15d, r14d
mov r15, qword [rsp + 0x1498]
je 0x1800695a6
cmp dword [rsi + 0x118], 2
jne 0x1800695a6
mov dword [r13 + 0x10], r14d
mov dword [rsi + 0x120], r12d
movaps xmm6, xmmword [rsp + 0x1440]
mov rdi, qword [rsp + 0x1490]
mov rbx, qword [rsp + 0x1488]
mov rcx, qword [rsp + 0x13c0]
xor rcx, rsp
call fcn.1800a2b80
movaps xmm7, xmmword [rsp + 0x1430]
movaps xmm12, xmmword [rsp + 0x13e0]
add rsp, 0x1450
pop r14
pop r13
pop r12
pop rsi
pop rbp
ret