Function at 0x180073470
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.1800ad800
sub rsp, rax
mov rax, qword [0x1800e2240]
xor rax, rsp
mov qword [rsp + 0x13e0], rax
mov rdi, rcx
mov rcx, qword [0x1801a5878]
test rcx, rcx
jne 0x1800734a9
xor ebp, ebp
jmp 0x1800734b8
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 0x1800734dd
mov qword [rdi + 0xa8], rcx
mov rcx, rdi
call fcn.180073240
movss xmm0, dword [0x1800ca04c]
comiss xmm0, dword [0x1801a5854]
jbe 0x180073521
mov rcx, qword [0x1801a5878]
test rcx, rcx
jne 0x180073506
xor eax, eax
jmp 0x180073512
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 0x180073b94
cmp ecx, dword [rdi + 0xbc]
jl 0x180073b94
inc dword [rdi + 0xc0]
cmp dword [rdi + 0xc0], 3
jl 0x180073b94
mov rcx, qword [0x1801a5878]
mov qword [rsp + 0x1478], rbx
mov qword [rsp + 0x1488], r12
mov qword [rsp + 0x1440], r14
movaps xmmword [rsp + 0x1410], xmm8
movaps xmmword [rsp + 0x1400], xmm9
movaps xmmword [rsp + 0x13f0], xmm11
xorps xmm11, xmm11
mov qword [rsp + 0x1480], rsi
movaps xmmword [rsp + 0x1430], xmm6
movaps xmmword [rsp + 0x1420], xmm7
test rcx, rcx
je 0x180073664
mov rax, qword [rcx]
mov rdx, qword [rax + 0xe0]
call rdx
test rax, rax
je 0x180073664
mov rax, qword [rax + 0x7e8]
test rax, rax
je 0x180073664
mov r14, qword [rax + 0xc0]
test r14, r14
je 0x180073664
mov r12d, dword [rax + 0x10]
xorps xmm7, xmm7
movss xmm8, dword [0x1800c9fa0]
xor ebx, ebx
mov rax, qword [r14]
mov edx, ebx
mov rcx, r14
call qword [rax + 0x28]
test rax, rax
je 0x18007365b
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x18007365b
mov rsi, qword [rcx]
test rsi, rsi
je 0x18007365b
mov rcx, rax
call fcn.18003e100
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 0x18007365b
movaps xmm7, xmm0
mov r12d, ebx
inc ebx
cmp ebx, 9
jl 0x180073604
jmp 0x18007366a
mov r12d, 0xffffffff
mov r14d, dword [r13 + 0x10]
cmp r12d, r14d
je 0x18007370b
mov eax, dword [rdi + 0xdc]
dec eax
cmp eax, 1
ja 0x18007370b
mov dword [r13 + 0x10], r12d
cmp dword [rdi + 0xdc], 2
jne 0x18007370b
mov rax, qword [r15]
mov edx, r12d
mov rcx, r15
call qword [rax + 0x28]
mov rcx, rbp
mov rbx, rax
call fcn.180036570
mov r9d, r12d
mov dword [rsp + 0x20], r12d
mov r8, rbx
lea rcx, [rsp + 0x50]
mov rdx, rax
call fcn.180036610
mov rcx, qword [0x1801a5878]
test rcx, rcx
jne 0x1800736d4
xor eax, eax
jmp 0x1800736e0
mov rax, qword [rcx]
mov rdx, qword [rax + 0xe0]
call rdx
mov r8, qword [rax]
lea rdx, [rsp + 0x50]
mov rcx, rax
call qword [r8 + 0x840]
mov rax, qword [0x1801a5878]
lea rdx, [rsp + 0x50]
mov rcx, qword [rax + 0xf0]
mov rax, qword [rcx]
call qword [rax + htons]
cmp qword [0x1801a5878], 0
jne 0x180073719
xor ecx, ecx
jmp 0x18007372f
mov rcx, qword [0x1801a5878]
mov rax, qword [rcx]
mov rdx, qword [rax + 0xe0]
call rdx
mov rcx, rax
mov rax, qword [rdi + 0xa0]
lea r8, [rsp + 0x30]
mov rcx, qword [rcx + 0x2c8]
mov rdx, qword [rax]
mov rax, qword [rdx + 0x2c8]
lea rdx, [rsp + 0x40]
movss xmm0, dword [rax]
movss xmm1, dword [rax + 4]
movss dword [rsp + 0x30], xmm0
movss xmm0, dword [rax + 8]
movss dword [rsp + 0x38], xmm0
movss dword [rsp + 0x34], xmm1
call fcn.180036c30
movss xmm0, dword [0x1800ca0bc]
movss xmm1, dword [0x1800ca188]
movss xmm9, dword [rax]
comiss xmm9, xmm0
movss xmm8, dword [rax + 4]
jbe 0x1800737ab
nop word [rax + rax]
addss xmm9, xmm1
comiss xmm9, xmm0
ja 0x1800737a0
movss xmm2, dword [0x1800ca184]
comiss xmm2, xmm9
movss xmm0, dword [0x1800ca0ec]
jbe 0x1800737cc
addss xmm9, xmm0
comiss xmm2, xmm9
ja 0x1800737c1
comiss xmm8, xmm0
jbe 0x1800737eb
movss xmm2, dword [0x1800ca18c]
nop word [rax + rax]
addss xmm8, xmm2
comiss xmm8, xmm0
ja 0x1800737e0
comiss xmm1, xmm8
jbe 0x18007380b
movss xmm0, dword [0x1800ca114]
nop dword [rax]
addss xmm8, xmm0
comiss xmm1, xmm8
ja 0x180073800
cmp dword [rdi + 0xec], 3
mov rbx, qword [0x1801a5868]
jne 0x180073873
movsd xmm6, qword [rbx + 0x3e58]
cvtpd2ps xmm6, xmm6
mulss xmm6, dword [0x1800c9eec]
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
mulss xmm0, xmm11
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, xmm11
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 xmm11, xmmword [rsp + 0x13f0]
jne 0x1800738dc
movsd xmm7, qword [rbx + 0x3e58]
cvtpd2ps xmm7, xmm7
mulss xmm7, dword [0x1800c9eec]
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
mulss xmm0, dword [0x1800ca058]
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 [0x1800ca058]
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 xmm9, xmmword [rsp + 0x1400]
mov edx, 1
movaps xmm8, xmmword [rsp + 0x1410]
movaps xmm7, xmmword [rsp + 0x1420]
movaps xmm6, xmmword [rsp + 0x1430]
mov dword [rsp + 0x54], eax
mov dword [rsp + 0x13d4], 0xffffffff
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 + 0x54], eax
inc rdx
cmp rdx, 0x270
jb 0x180073920
mov eax, dword [rdi + 0xd4]
mov dword [rsp + 0x50], 0x270
cmp eax, 1
jne 0x180073a63
mov rbp, qword [rdi + 0xa8]
mov rsi, qword [rdi + 0xa0]
cmp rsi, rbp
je 0x180073b58
nop dword [rax]
mov rcx, qword [rsi]
mov eax, dword [rdi + 0xe8]
cmp dword [rcx + 0x214], eax
jle 0x18007398e
cmp byte [rdi + 0xe0], 0
jne 0x180073a51
xor ebx, ebx
cmp dword [rdi + 0xc4], ebx
jle 0x180073a51
nop dword [rax]
lea rcx, [rsp + 0x50]
call fcn.180041050
mov ecx, eax
imul rax, rcx, 0x64
cmp eax, 0x5f
ja 0x1800739ca
lea rcx, [rsp + 0x50]
call fcn.180041050
mov ecx, eax
imul rax, rcx, 0x64
cmp eax, 0x60
jb 0x1800739b5
mov ecx, dword [rdi + 0xcc]
shr rax, 0x20
add eax, 0x80000001
btc eax, 0x1f
cmp byte [rdi + 0xd0], 0
jne 0x1800739eb
cmp ecx, 0x64
jge 0x1800739ef
cmp eax, ecx
jg 0x180073a43
mov rcx, qword [0x1801a5878]
test rcx, rcx
jne 0x1800739ff
xor eax, eax
jmp 0x180073a0b
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 [0x1801a5878]
test rcx, rcx
jne 0x180073a27
xor eax, eax
jmp 0x180073a33
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 0x1800739a0
add rsi, 8
cmp rsi, rbp
jne 0x180073970
jmp 0x180073b58
test eax, eax
jne 0x180073b58
mov rax, qword [rdi + 0xa0]
mov rcx, qword [rax]
mov eax, dword [rdi + 0xe8]
cmp dword [rcx + 0x214], eax
jle 0x180073a90
cmp byte [rdi + 0xe0], 0
jne 0x180073b58
xor ebx, ebx
cmp dword [rdi + 0xc4], ebx
jle 0x180073b58
nop
lea rcx, [rsp + 0x50]
call fcn.180041050
mov ecx, eax
imul rax, rcx, 0x64
cmp eax, 0x5f
ja 0x180073aca
lea rcx, [rsp + 0x50]
call fcn.180041050
mov ecx, eax
imul rax, rcx, 0x64
cmp eax, 0x60
jb 0x180073ab5
mov ecx, dword [rdi + 0xcc]
shr rax, 0x20
add eax, 0x80000001
btc eax, 0x1f
cmp byte [rdi + 0xd0], 0
jne 0x180073aeb
cmp ecx, 0x64
jge 0x180073aef
cmp eax, ecx
jg 0x180073b4a
mov rcx, qword [0x1801a5878]
test rcx, rcx
jne 0x180073aff
xor eax, eax
jmp 0x180073b0b
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 [0x1801a5878]
test rcx, rcx
jne 0x180073b27
xor eax, eax
jmp 0x180073b33
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 0x180073aa0
mov rsi, qword [rsp + 0x1480]
cmp r12d, r14d
mov r12, qword [rsp + 0x1488]
mov rbx, qword [rsp + 0x1478]
je 0x180073b82
cmp dword [rdi + 0xdc], 2
jne 0x180073b82
mov dword [r13 + 0x10], r14d
mov r14, qword [rsp + 0x1440]
mov dword [rdi + 0xe4], 0
mov rcx, qword [rsp + 0x13e0]
xor rcx, rsp
call fcn.1800ac5b0
add rsp, 0x1448
pop r15
pop r13
pop rdi
pop rbp
ret