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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x1490
call fcn.180094940
sub rsp, rax
movaps xmmword [rsp + 0x1480], xmm6
movaps xmmword [rsp + 0x1470], xmm7
movaps xmmword [rsp + 0x1460], xmm8
movaps xmmword [rsp + 0x1450], xmm9
movaps xmmword [rsp + 0x1440], xmm10
movaps xmmword [rsp + 0x1430], xmm11
mov rax, qword [0x1800c2240]
xor rax, rsp
mov qword [rsp + 0x1420], rax
mov rdi, rcx
mov qword [rsp + 0x50], rcx
mov rcx, qword [0x180184418]
test rcx, rcx
jne 0x180043eb3
xor esi, esi
jmp 0x180043ec2
mov rax, qword [rcx]
mov rdx, qword [rax + 0xe0]
call rdx
mov rsi, rax
mov qword [rsp + 0x40], rsi
mov rbp, qword [rsi + 0x7e8]
mov qword [rsp + 0x38], rbp
mov r13, qword [rbp + 0xc0]
mov qword [rsp + 0x58], r13
mov rcx, qword [rdi + 0x98]
cmp rcx, qword [rdi + 0xa0]
je 0x180043ef6
mov qword [rdi + 0xa0], rcx
mov rcx, rdi
call fcn.180043c20
mov ecx, dword [rdi + 0xcc]
inc ecx
mov dword [rdi + 0xcc], ecx
mov rax, qword [rdi + 0xa0]
cmp qword [rdi + 0x98], rax
je 0x1800444ed
cmp ecx, dword [rdi + 0xb4]
jl 0x1800444ed
mov rcx, qword [0x180184418]
test rcx, rcx
je 0x1800440c7
mov rax, qword [rcx]
mov rdx, qword [rax + 0xe0]
call rdx
test rax, rax
je 0x1800440c7
mov rax, qword [rax + 0x7e8]
test rax, rax
je 0x1800440c7
mov r15, qword [rax + 0xc0]
test r15, r15
je 0x1800440c7
xorps xmm7, xmm7
mov r14d, dword [rax + 0x10]
mov dword [rsp + 0x30], r14d
xor esi, esi
mov ebp, dword [0x18018430c]
mov r12, qword gs:[0x58]
movss xmm8, dword [0x1800ae92c]
mov r13d, 4
lea rdi, str..text
mov rax, qword [r15]
mov edx, esi
mov rcx, r15
call qword [rax + 0x28]
mov rbx, rax
test rax, rax
je 0x1800440a6
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x1800440a6
mov r14, qword [rcx]
test r14, r14
je 0x1800440a1
mov rax, qword [r12 + rbp*8]
mov ecx, dword [r13 + rax]
cmp dword [0x180185280], ecx
jle 0x18004405a
lea rcx, [0x180185280]
call fcn.1800937c8
cmp dword [0x180185280], 0xffffffff
jne 0x18004405a
movups xmm6, xmmword [0x180184bc8]
call fcn.1800916a0
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x68], 5
movaps xmm0, xmmword [rsp + 0x60]
movdqa xmmword [rsp + 0x70], xmm0
movdqa xmmword [rsp + 0x80], xmm6
mov r9, rax
lea r8, [rsp + 0x70]
lea rdx, [rsp + 0x80]
lea rcx, [rsp + 0x48]
call fcn.180091390
mov rax, qword [rsp + 0x48]
mov qword [0x180185278], rax
lea rcx, [0x180185280]
call fcn.18009375c
mov rax, qword [0x180185278]
mov rdx, rbx
mov ecx, 9
call rax
mov ebx, eax
mov rdx, qword [r14]
mov rcx, r14
call qword [rdx + 0x110]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm8
addss xmm1, xmm0
comiss xmm1, xmm7
jbe 0x1800440a1
movaps xmm7, xmm1
mov r14d, esi
mov dword [rsp + 0x30], esi
jmp 0x1800440a6
mov r14d, dword [rsp + 0x30]
inc esi
cmp esi, 9
jl 0x180043fa4
mov rdi, qword [rsp + 0x50]
mov r13, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x38]
jmp 0x1800440cd
mov r14d, 0xffffffff
mov r15d, dword [rbp + 0x10]
cmp r14d, r15d
je 0x18004417c
mov eax, dword [rdi + 0xc4]
dec eax
cmp eax, 1
ja 0x18004417c
mov dword [rbp + 0x10], r14d
cmp dword [rdi + 0xc4], 2
jne 0x18004417c
mov rax, qword [r13]
mov edx, r14d
mov rcx, r13
call qword [rax + 0x28]
mov rbx, rax
mov rcx, rsi
call fcn.1800381e0
mov dword [rsp + 0x20], r14d
mov r9d, r14d
mov r8, rbx
mov rdx, rax
lea rcx, [rsp + 0x90]
call fcn.180038280
mov rcx, qword [0x180184418]
test rcx, rcx
jne 0x18004413f
xor eax, eax
jmp 0x18004414b
mov rax, qword [rcx]
mov rdx, qword [rax + 0xe0]
call rdx
mov r8, qword [rax]
lea rdx, [rsp + 0x90]
mov rcx, rax
call qword [r8 + 0x840]
mov rax, qword [0x180184418]
mov rcx, qword [rax + 0xf0]
mov rax, qword [rcx]
lea rdx, [rsp + 0x90]
call qword [rax + htons]
cmp qword [0x180184418], 0
jne 0x18004418a
xor eax, eax
jmp 0x18004419d
mov rcx, qword [0x180184418]
mov rax, qword [rcx]
mov rdx, qword [rax + 0xe0]
call rdx
mov rdx, qword [rax + 0x2c8]
mov rax, qword [rdi + 0x98]
mov rcx, qword [rax]
mov rax, qword [rcx + 0x2c8]
movss xmm9, dword [rax]
subss xmm9, dword [rdx]
movss xmm8, dword [rax + 4]
subss xmm8, dword [rdx + 4]
movss xmm11, dword [rax + 8]
subss xmm11, dword [rdx + 8]
cvtps2pd xmm0, xmm8
movsd xmm6, qword [0x1800ae968]
movaps xmm1, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movaps xmm7, xmm0
cvtps2pd xmm0, xmm9
movaps xmm1, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
addsd xmm7, xmm0
cvtps2pd xmm0, xmm11
movaps xmm1, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
addsd xmm7, xmm0
xorps xmm1, xmm1
ucomisd xmm1, xmm7
ja 0x180044220
xorps xmm0, xmm0
sqrtsd xmm0, xmm7
jmp 0x180044228
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 xmm10, xmm0
mulss xmm10, dword [0x1800aeaac]
movaps xmm1, xmm11
movaps xmm0, xmm9
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2f
movaps xmm9, xmm0
xorps xmm9, xmmword [0x1800af2e0]
mulss xmm9, dword [0x1800aea14]
movss xmm1, dword [0x1800aeab8]
movss xmm0, dword [0x1800aea20]
comiss xmm10, xmm0
jbe 0x18004428d
addss xmm10, xmm1
comiss xmm10, xmm0
ja 0x180044282
movss xmm2, dword [0x1800aeab0]
movss xmm0, dword [0x1800aea3c]
comiss xmm2, xmm10
jbe 0x1800442ae
addss xmm10, xmm0
comiss xmm2, xmm10
ja 0x1800442a3
comiss xmm9, xmm0
jbe 0x1800442cb
movss xmm2, dword [0x1800aeabc]
nop dword [rax]
addss xmm9, xmm2
comiss xmm9, xmm0
ja 0x1800442c0
comiss xmm1, xmm9
jbe 0x1800442eb
movss xmm0, dword [0x1800aea58]
nop dword [rax]
addss xmm9, xmm0
comiss xmm1, xmm9
ja 0x1800442e0
cmp dword [rdi + 0xd0], 2
jne 0x180044356
mov rax, qword [0x180184408]
movsd xmm7, qword [rax + 0x3e58]
cvtpd2ps xmm7, xmm7
mulss xmm7, dword [0x1800ae8b0]
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
movaps xmm8, xmm0
mulss xmm8, dword [0x1800ae9d8]
addss xmm8, xmm10
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
mulss xmm0, dword [0x1800ae9d8]
addss xmm0, xmm9
mov rax, qword [rsi + 0x2d8]
movss dword [rax], xmm8
mov rax, qword [rsi + 0x2d8]
movss dword [rax + 4], xmm0
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [rsp + 0x1414], 0xffffffff
mov dword [rsp + 0x94], eax
mov edx, 1
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 + 0x94], eax
inc rdx
cmp rdx, 0x270
jb 0x180044380
mov dword [rsp + 0x90], 0x270
cmp byte [rdi + 0xc1], 0
je 0x18004453c
mov rbp, qword [rdi + 0xa0]
mov rsi, qword [rdi + 0x98]
cmp rsi, rbp
je 0x1800444cc
mov rax, qword [rsi]
cmp dword [rax + 0x214], 8
jle 0x1800443ea
cmp byte [rdi + 0xc8], 0
jne 0x1800444bf
xor ebx, ebx
cmp dword [rdi + 0xb8], ebx
jle 0x1800444bf
nop dword [rax + rax]
lea rcx, [rsp + 0x90]
call fcn.180044790
mov ecx, eax
imul rax, rcx, 0x64
cmp eax, 0x5f
ja 0x180044438
nop dword [rax + rax]
lea rcx, [rsp + 0x90]
call fcn.180044790
mov ecx, eax
imul rax, rcx, 0x64
cmp eax, 0x60
jb 0x180044420
shr rax, 0x20
add eax, 0x80000001
btc eax, 0x1f
mov ecx, dword [rdi + 0xbc]
cmp byte [rdi + 0xc0], 0
jne 0x180044459
cmp ecx, 0x64
jge 0x18004445d
cmp eax, ecx
jg 0x1800444b1
mov rcx, qword [0x180184418]
test rcx, rcx
jne 0x18004446d
xor eax, eax
jmp 0x180044479
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 [0x180184418]
test rcx, rcx
jne 0x180044495
xor eax, eax
jmp 0x1800444a1
mov rax, qword [rcx]
mov rdx, qword [rax + 0xe0]
call rdx
mov rcx, qword [rax + 0xf10]
mov rax, qword [rcx]
mov rdx, qword [rsi]
call qword [rax + 0x70]
inc ebx
cmp ebx, dword [rdi + 0xb8]
jl 0x180044400
add rsi, 8
cmp rsi, rbp
jne 0x1800443d1
mov rbp, qword [rsp + 0x38]
cmp r14d, r15d
je 0x1800444e3
cmp dword [rdi + 0xc4], 2
jne 0x1800444e3
mov dword [rbp + 0x10], r15d
mov dword [rdi + 0xcc], 0
mov rcx, qword [rsp + 0x1420]
xor rcx, rsp
call fcn.180093700
lea r11, [rsp + 0x1490]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
mov rax, qword [rdi + 0x98]
mov rcx, qword [rax]
cmp dword [rcx + 0x214], 8
jle 0x18004455c
cmp byte [rdi + 0xc8], 0
jne 0x1800444d1
xor ebx, ebx
cmp dword [rdi + 0xb8], ebx
jle 0x1800444d1
nop word [rax + rax]
lea rcx, [rsp + 0x90]
call fcn.180044790
mov ecx, eax
imul rax, rcx, 0x64
cmp eax, 0x5f
ja 0x1800445a8
nop dword [rax + rax]
lea rcx, [rsp + 0x90]
call fcn.180044790
mov ecx, eax
imul rax, rcx, 0x64
cmp eax, 0x60
jb 0x180044590
shr rax, 0x20
add eax, 0x80000001
btc eax, 0x1f
mov ecx, dword [rdi + 0xbc]
cmp byte [rdi + 0xc0], 0
jne 0x1800445c9
cmp ecx, 0x64
jge 0x1800445cd
cmp eax, ecx
jg 0x180044628
mov rcx, qword [0x180184418]
test rcx, rcx
jne 0x1800445dd
xor eax, eax
jmp 0x1800445e9
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 [0x180184418]
test rcx, rcx
jne 0x180044605
xor eax, eax
jmp 0x180044611
mov rax, qword [rcx]
mov rdx, qword [rax + 0xe0]
call rdx
mov rcx, qword [rax + 0xf10]
mov rdx, qword [rdi + 0x98]
mov rax, qword [rcx]
mov rdx, qword [rdx]
call qword [rax + 0x70]
inc ebx
cmp ebx, dword [rdi + 0xb8]
jl 0x180044570
jmp 0x1800444d1