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

Disassembly:
push rbp
push rdi
push r13
push r15
mov eax, 0x1448
call fcn.1800a3dd0
sub rsp, rax
mov rax, qword [0x1800d5240]
xor rax, rsp
mov qword [rsp + 0x13c0], rax
mov rdi, rcx
mov rcx, qword [0x180197520]
test rcx, rcx
jne 0x180067bb9
xor ebp, ebp
jmp 0x180067bc8
mov rax, qword [rcx]
mov rdx, qword [rax + 0xe0]
call rdx
mov rbp, rax
mov r13, qword [rbp + 0x7e8]
mov rcx, qword [rdi + 0xa0]
mov r15, qword [r13 + 0xc0]
cmp rcx, qword [rdi + 0xa8]
je 0x180067bed
mov qword [rdi + 0xa8], rcx
mov rcx, rdi
call fcn.180067950
movss xmm0, dword [0x1800c0494]
comiss xmm0, dword [0x1801974f8]
jbe 0x180067c31
mov rcx, qword [0x180197520]
test rcx, rcx
jne 0x180067c16
xor eax, eax
jmp 0x180067c22
mov rax, qword [rcx]
mov rdx, qword [rax + 0xe0]
call rdx
mov r8, qword [rax]
xor edx, edx
mov rcx, rax
call qword [r8 + 0x558]
mov ecx, dword [rdi + 0xe4]
inc ecx
mov dword [rdi + 0xe4], ecx
mov rax, qword [rdi + 0xa8]
cmp qword [rdi + 0xa0], rax
je 0x180068354
cmp ecx, dword [rdi + 0xbc]
jl 0x180068354
inc dword [rdi + 0xc0]
cmp dword [rdi + 0xc0], 3
jl 0x180068354
mov rcx, qword [0x180197520]
mov qword [rsp + 0x1478], rbx
mov qword [rsp + 0x1488], r12
mov qword [rsp + 0x1440], r14
movaps xmmword [rsp + 0x1430], xmm6
movaps xmmword [rsp + 0x1420], xmm7
movaps xmmword [rsp + 0x1410], xmm8
movaps xmmword [rsp + 0x1400], xmm9
movaps xmmword [rsp + 0x13f0], xmm10
movaps xmmword [rsp + 0x13e0], xmm11
movaps xmmword [rsp + 0x13d0], xmm12
xorps xmm12, xmm12
mov qword [rsp + 0x1480], rsi
test rcx, rcx
je 0x180067d90
mov rax, qword [rcx]
mov rdx, qword [rax + 0xe0]
call rdx
test rax, rax
je 0x180067d90
mov rax, qword [rax + 0x7e8]
test rax, rax
je 0x180067d90
mov r14, qword [rax + 0xc0]
test r14, r14
je 0x180067d90
mov r12d, dword [rax + 0x10]
xorps xmm7, xmm7
movss xmm8, dword [0x1800c03f0]
xor ebx, ebx
nop word [rax + rax]
mov rax, qword [r14]
mov edx, ebx
mov rcx, r14
call qword [rax + 0x28]
test rax, rax
je 0x180067d87
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x180067d87
mov rsi, qword [rcx]
test rsi, rsi
je 0x180067d87
mov rcx, rax
call fcn.1800462d0
mov rcx, rsi
movd xmm6, eax
mov rax, qword [rsi]
cvtdq2ps xmm6, xmm6
mulss xmm6, xmm8
call qword [rax + 0x110]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, xmm6
comiss xmm0, xmm7
jbe 0x180067d87
movaps xmm7, xmm0
mov r12d, ebx
inc ebx
cmp ebx, 9
jl 0x180067d30
jmp 0x180067d96
mov r12d, 0xffffffff
mov r14d, dword [r13 + 0x10]
cmp r12d, r14d
je 0x180067e37
mov eax, dword [rdi + 0xdc]
dec eax
cmp eax, 1
ja 0x180067e37
mov dword [r13 + 0x10], r12d
cmp dword [rdi + 0xdc], 2
jne 0x180067e37
mov rax, qword [r15]
mov edx, r12d
mov rcx, r15
call qword [rax + 0x28]
mov rcx, rbp
mov rbx, rax
call fcn.18003ac50
mov r9d, r12d
mov dword [rsp + 0x20], r12d
mov r8, rbx
lea rcx, [rsp + 0x30]
mov rdx, rax
call fcn.18003acf0
mov rcx, qword [0x180197520]
test rcx, rcx
jne 0x180067e00
xor eax, eax
jmp 0x180067e0c
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 0x180067e45
xor eax, eax
jmp 0x180067e58
mov rcx, qword [0x180197520]
mov rax, qword [rcx]
mov rdx, qword [rax + 0xe0]
call rdx
mov rdx, qword [rax + 0x2c8]
mov rax, qword [rdi + 0xa0]
movsd xmm6, qword [0x1800c0430]
movaps xmm1, xmm6
mov rcx, qword [rax]
mov rax, qword [rcx + 0x2c8]
movss xmm8, dword [rax + 4]
subss xmm8, dword [rdx + 4]
movss xmm10, dword [rax]
movss xmm11, dword [rax + 8]
subss xmm10, dword [rdx]
subss xmm11, dword [rdx + 8]
cvtps2pd xmm0, xmm8
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movaps xmm7, xmm0
movaps xmm1, xmm6
cvtps2pd xmm0, xmm10
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
addsd xmm7, xmm0
movaps xmm1, xmm6
cvtps2pd xmm0, xmm11
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
addsd xmm7, xmm0
xorps xmm1, xmm1
ucomisd xmm1, xmm7
ja 0x180067edb
xorps xmm0, xmm0
sqrtsd xmm0, xmm7
jmp 0x180067ee3
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
xorps xmm2, xmm2
cvtsd2ss xmm2, xmm0
divss xmm8, xmm2
movaps xmm0, xmm8
call sub.api_ms_win_crt_math_l1_1_0.dll_asinf
movaps xmm9, xmm0
movaps xmm1, xmm11
mulss xmm9, dword [0x1800c059c]
movaps xmm0, xmm10
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2f
movss xmm1, dword [0x1800c05a8]
movaps xmm8, xmm0
movss xmm0, dword [0x1800c04fc]
comiss xmm9, xmm0
xorps xmm8, xmmword [0x1800c0de0]
mulss xmm8, dword [0x1800c04e8]
movaps xmm11, xmmword [rsp + 0x13e0]
jbe 0x180067f5b
nop word [rax + rax]
addss xmm9, xmm1
comiss xmm9, xmm0
ja 0x180067f50
movss xmm2, dword [0x1800c05a0]
comiss xmm2, xmm9
movss xmm0, dword [0x1800c051c]
jbe 0x180067f7c
addss xmm9, xmm0
comiss xmm2, xmm9
ja 0x180067f71
comiss xmm8, xmm0
jbe 0x180067f9b
movss xmm2, dword [0x1800c05ac]
nop word [rax + rax]
addss xmm8, xmm2
comiss xmm8, xmm0
ja 0x180067f90
comiss xmm1, xmm8
jbe 0x180067fbb
movss xmm0, dword [0x1800c053c]
nop dword [rax]
addss xmm8, xmm0
comiss xmm1, xmm8
ja 0x180067fb0
cmp dword [rdi + 0xec], 3
mov rbx, qword [0x180197510]
movss xmm10, dword [0x1800c035c]
jne 0x180068029
movsd xmm6, qword [rbx + 0x3e58]
cvtpd2ps xmm6, xmm6
mulss xmm6, xmm10
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
mulss xmm0, xmm12
addss xmm0, xmm9
movaps xmm9, xmm0
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
mov rax, qword [rbp + 0x2d8]
mulss xmm0, xmm12
movss dword [rax], xmm9
mov rax, qword [rbp + 0x2d8]
addss xmm0, xmm8
movss dword [rax + 4], xmm0
movaps xmm8, xmm0
cmp dword [rdi + 0xec], 2
movaps xmm12, xmmword [rsp + 0x13d0]
jne 0x18006808f
movsd xmm7, qword [rbx + 0x3e58]
cvtpd2ps xmm7, xmm7
mulss xmm7, xmm10
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
mulss xmm0, dword [0x1800c04a0]
addss xmm9, xmm0
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
mov rax, qword [rbp + 0x2d8]
mulss xmm0, dword [0x1800c04a0]
movss dword [rax], xmm9
mov rax, qword [rbp + 0x2d8]
addss xmm8, xmm0
movss dword [rax + 4], xmm8
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
movaps xmm10, xmmword [rsp + 0x13f0]
mov edx, 1
movaps xmm9, xmmword [rsp + 0x1400]
movaps xmm8, xmmword [rsp + 0x1410]
movaps xmm7, xmmword [rsp + 0x1420]
movaps xmm6, xmmword [rsp + 0x1430]
mov dword [rsp + 0x34], eax
mov dword [rsp + 0x13b4], 0xffffffff
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 0x1800680e0
mov eax, dword [rdi + 0xd4]
mov dword [rsp + 0x30], 0x270
cmp eax, 1
jne 0x180068223
mov rbp, qword [rdi + 0xa8]
mov rsi, qword [rdi + 0xa0]
cmp rsi, rbp
je 0x180068318
nop dword [rax]
mov rcx, qword [rsi]
mov eax, dword [rdi + 0xe8]
cmp dword [rcx + 0x214], eax
jle 0x18006814e
cmp byte [rdi + 0xe0], 0
jne 0x180068211
xor ebx, ebx
cmp dword [rdi + 0xc4], ebx
jle 0x180068211
nop dword [rax]
lea rcx, [rsp + 0x30]
call fcn.180048aa0
mov ecx, eax
imul rax, rcx, 0x64
cmp eax, 0x5f
ja 0x18006818a
lea rcx, [rsp + 0x30]
call fcn.180048aa0
mov ecx, eax
imul rax, rcx, 0x64
cmp eax, 0x60
jb 0x180068175
mov ecx, dword [rdi + 0xcc]
shr rax, 0x20
add eax, 0x80000001
btc eax, 0x1f
cmp byte [rdi + 0xd0], 0
jne 0x1800681ab
cmp ecx, 0x64
jge 0x1800681af
cmp eax, ecx
jg 0x180068203
mov rcx, qword [0x180197520]
test rcx, rcx
jne 0x1800681bf
xor eax, eax
jmp 0x1800681cb
mov rax, qword [rcx]
mov rdx, qword [rax + 0xe0]
call rdx
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x420]
mov rcx, qword [0x180197520]
test rcx, rcx
jne 0x1800681e7
xor eax, eax
jmp 0x1800681f3
mov rax, qword [rcx]
mov rdx, qword [rax + 0xe0]
call rdx
mov rcx, qword [rax + 0xf10]
mov rdx, qword [rsi]
mov rax, qword [rcx]
call qword [rax + 0x70]
inc ebx
cmp ebx, dword [rdi + 0xc4]
jl 0x180068160
add rsi, 8
cmp rsi, rbp
jne 0x180068130
jmp 0x180068318
test eax, eax
jne 0x180068318
mov rax, qword [rdi + 0xa0]
mov rcx, qword [rax]
mov eax, dword [rdi + 0xe8]
cmp dword [rcx + 0x214], eax
jle 0x180068250
cmp byte [rdi + 0xe0], 0
jne 0x180068318
xor ebx, ebx
cmp dword [rdi + 0xc4], ebx
jle 0x180068318
nop
lea rcx, [rsp + 0x30]
call fcn.180048aa0
mov ecx, eax
imul rax, rcx, 0x64
cmp eax, 0x5f
ja 0x18006828a
lea rcx, [rsp + 0x30]
call fcn.180048aa0
mov ecx, eax
imul rax, rcx, 0x64
cmp eax, 0x60
jb 0x180068275
mov ecx, dword [rdi + 0xcc]
shr rax, 0x20
add eax, 0x80000001
btc eax, 0x1f
cmp byte [rdi + 0xd0], 0
jne 0x1800682ab
cmp ecx, 0x64
jge 0x1800682af
cmp eax, ecx
jg 0x18006830a
mov rcx, qword [0x180197520]
test rcx, rcx
jne 0x1800682bf
xor eax, eax
jmp 0x1800682cb
mov rax, qword [rcx]
mov rdx, qword [rax + 0xe0]
call rdx
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x420]
mov rcx, qword [0x180197520]
test rcx, rcx
jne 0x1800682e7
xor eax, eax
jmp 0x1800682f3
mov rax, qword [rcx]
mov rdx, qword [rax + 0xe0]
call rdx
mov rcx, qword [rax + 0xf10]
mov rdx, qword [rdi + 0xa0]
mov rax, qword [rcx]
mov rdx, qword [rdx]
call qword [rax + 0x70]
inc ebx
cmp ebx, dword [rdi + 0xc4]
jl 0x180068260
mov rsi, qword [rsp + 0x1480]
cmp r12d, r14d
mov r12, qword [rsp + 0x1488]
mov rbx, qword [rsp + 0x1478]
je 0x180068342
cmp dword [rdi + 0xdc], 2
jne 0x180068342
mov dword [r13 + 0x10], r14d
mov r14, qword [rsp + 0x1440]
mov dword [rdi + 0xe4], 0
mov rcx, qword [rsp + 0x13c0]
xor rcx, rsp
call fcn.1800a2b80
add rsp, 0x1448
pop r15
pop r13
pop rdi
pop rbp
ret