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

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xd8
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x40], xmm9
movaps xmmword [rbp + 0x30], xmm8
movaps xmmword [rbp + 0x20], xmm7
movaps xmmword [rbp + 0x10], xmm6
mov qword [rbp + 8], 0xfffffffffffffffe
mov qword [rbp - 0x28], rdx
xorps xmm6, xmm6
movups xmmword [rcx], xmm6
mov qword [rcx + 0x10], 0
mov qword [rbp], rcx
mov qword [rcx + 0x18], 7
lea rbx, [0x18014fc18]
movaps xmm7, xmmword [0x1800dbee0]
movaps xmm8, xmmword [0x1800dbef0]
movdqa xmm9, xmmword [0x1800dbf00]
movabs r14, 0x71d67fffeda60000
mov edi, 0x24
movabs r15, 0xb5026f5aa96619e9
jmp 0x18003cc6d
lea rdx, [rbp - 0x20]
mov r8d, 3
mov r9d, 0xffffffff
call fcn.1800ac5b8
test eax, eax
jne 0x18003d522
movaps xmmword [rbp - 0x20], xmm6
mov qword [rbp - 0x10], 0
mov qword [rbp - 8], recvfrom
xor eax, eax
jmp 0x18003ccb2
mov byte [rax + r12], sil
mov byte [rax + r12 + 1], 0
movabs r15, 0xb5026f5aa96619e9
mov eax, dword [rbp - 0x2c]
inc eax
cmp eax, 0x14
je 0x18003d330
mov dword [rbp - 0x2c], eax
mov eax, dword [0x180150fa8]
mov ecx, dword [0x1801514bc]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 0x30]
jg 0x18003d2f8
mov eax, dword [0x18014fc18]
cmp eax, 0x138
jne 0x18003cd60
movq xmm0, qword [0x18014fc20]
pshufd xmm0, xmm0, 0x44
mov rax, 0xfffffffffffffec8
nop
movups xmm1, xmmword [rbx + rax*8 + 0x9d0]
shufps xmm0, xmm1, 0x4e
andps xmm0, xmm7
movaps xmm2, xmm1
andps xmm2, xmm8
orps xmm2, xmm0
psrlq xmm2, 1
pshufd xmm0, xmm1, 0xa0
pslld xmm0, 0x1f
psrad xmm0, 0x1f
pand xmm0, xmm9
movdqu xmm3, xmmword [rbx + rax*8 + 0xea8]
pxor xmm3, xmm0
pxor xmm3, xmm2
movdqu xmmword [rbx + rax*8 + 0x1388], xmm3
movdqa xmm0, xmm1
add rax, 2
jne 0x18003cd00
mov eax, 0x138
jmp 0x18003cec2
cmp eax, 0x270
jb 0x18003cec2
movq xmm0, qword [0x1801505e0]
pshufd xmm0, xmm0, 0x44
mov rax, 0xffffffffffffff64
nop
movups xmm1, xmmword [rbx + rax*8 + 0xeb0]
shufps xmm0, xmm1, 0x4e
andps xmm0, xmm7
movaps xmm2, xmm1
andps xmm2, xmm8
orps xmm2, xmm0
psrlq xmm2, 1
pshufd xmm0, xmm1, 0xa0
pslld xmm0, 0x1f
psrad xmm0, 0x1f
pand xmm0, xmm9
movdqu xmm3, xmmword [rbx + rax*8 + 0x1388]
pxor xmm3, xmm0
pxor xmm3, xmm2
movdqu xmmword [rbx + rax*8 + 0x4e8], xmm3
movdqa xmm0, xmm1
add rax, 2
jne 0x18003cd80
movq xmm0, qword [0x180150ac0]
pshufd xmm0, xmm0, 0x44
xor eax, eax
nop word cs:[rax + rax]
movdqa xmm1, xmm0
movups xmm0, xmmword [rbx + rax*8 + 0xeb0]
shufps xmm1, xmm0, 0x4e
andps xmm1, xmm7
movaps xmm2, xmm0
andps xmm2, xmm8
orps xmm2, xmm1
psrlq xmm2, 1
pshufd xmm1, xmm0, 0xa0
pslld xmm1, 0x1f
psrad xmm1, 0x1f
pand xmm1, xmm9
movdqu xmm3, xmmword [rbx + rax*8 + 8]
pxor xmm3, xmm1
pxor xmm3, xmm2
movdqu xmmword [rbx + rax*8 + 0x4e8], xmm3
add rax, 2
cmp rax, 0x9a
jne 0x18003cdf0
pshufd xmm0, xmm0, 0xee
movq rcx, xmm0
and rcx, 0xffffffff80000000
mov rax, qword [0x180150f98]
mov edx, eax
and edx, 0x7ffffffe
or rdx, rcx
shr rdx, 1
mov ecx, eax
and ecx, 1
neg rcx
and rcx, r15
xor rcx, qword [0x1801500f0]
xor rcx, rdx
mov qword [0x1801505d0], rcx
and rax, 0xffffffff80000000
mov rcx, qword [0x18014fc20]
mov edx, ecx
and edx, 0x7ffffffe
or rdx, rax
and ecx, 1
neg rcx
and rcx, r15
xor rcx, qword [0x1801500f8]
shr rdx, 1
xor rcx, rdx
mov qword [0x1801505d8], rcx
xor eax, eax
lea ecx, [rax + 1]
mov dword [0x18014fc18], ecx
mov eax, eax
mov rax, qword [rbx + rax*8 + 8]
mov rdx, rax
shr rdx, 0x1d
and rdx, qword [0x180150fa0]
xor rdx, rax
mov rax, rdx
shl rax, 0x11
and rax, r14
xor rax, rdx
mov edx, eax
and edx, 0x7ffbf77
shl rdx, 0x25
xor rdx, rax
mov rax, rdx
shr rax, 0x2b
xor rax, rdx
mul rdi
test rax, 0xfffffffffffffff0
jne 0x18003d166
jmp 0x18003cf74
mov ecx, 0x138
mov eax, ecx
mov rax, qword [rbx + rax*8 + 8]
mov rdx, rax
shr rdx, 0x1d
and rdx, qword [0x180150fa0]
xor rdx, rax
mov rax, rdx
shl rax, 0x11
and rax, r14
xor rax, rdx
mov edx, eax
and edx, 0x7ffbf77
shl rdx, 0x25
xor rdx, rax
mov rax, rdx
shr rax, 0x2b
xor rax, rdx
mul rdi
inc ecx
test rax, 0xfffffffffffffff0
jne 0x18003d160
cmp ecx, 0x138
jne 0x18003cff0
movq xmm0, qword [0x18014fc20]
pshufd xmm0, xmm0, 0x44
mov rax, 0xfffffffffffffec8
movups xmm1, xmmword [rbx + rax*8 + 0x9d0]
shufps xmm0, xmm1, 0x4e
andps xmm0, xmm7
movaps xmm2, xmm1
andps xmm2, xmm8
orps xmm2, xmm0
psrlq xmm2, 1
pshufd xmm0, xmm1, 0xa0
pslld xmm0, 0x1f
psrad xmm0, 0x1f
pand xmm0, xmm9
movdqu xmm3, xmmword [rbx + rax*8 + 0xea8]
pxor xmm3, xmm0
pxor xmm3, xmm2
movdqu xmmword [rbx + rax*8 + 0x1388], xmm3
movdqa xmm0, xmm1
add rax, 2
jne 0x18003cf90
jmp 0x18003cf20
cmp ecx, 0x270
jb 0x18003cf25
movq xmm0, qword [0x1801505e0]
pshufd xmm0, xmm0, 0x44
mov rax, 0xffffffffffffff64
movups xmm1, xmmword [rbx + rax*8 + 0xeb0]
shufps xmm0, xmm1, 0x4e
andps xmm0, xmm7
movaps xmm2, xmm1
andps xmm2, xmm8
orps xmm2, xmm0
psrlq xmm2, 1
pshufd xmm0, xmm1, 0xa0
pslld xmm0, 0x1f
psrad xmm0, 0x1f
pand xmm0, xmm9
movdqu xmm3, xmmword [rbx + rax*8 + 0x1388]
pxor xmm3, xmm0
pxor xmm3, xmm2
movdqu xmmword [rbx + rax*8 + 0x4e8], xmm3
movdqa xmm0, xmm1
add rax, 2
jne 0x18003d010
movq xmm0, qword [0x180150ac0]
pshufd xmm0, xmm0, 0x44
xor eax, eax
nop word cs:[rax + rax]
movdqa xmm1, xmm0
movups xmm0, xmmword [rbx + rax*8 + 0xeb0]
shufps xmm1, xmm0, 0x4e
andps xmm1, xmm7
movaps xmm2, xmm0
andps xmm2, xmm8
orps xmm2, xmm1
psrlq xmm2, 1
pshufd xmm1, xmm0, 0xa0
pslld xmm1, 0x1f
psrad xmm1, 0x1f
pand xmm1, xmm9
movdqu xmm3, xmmword [rbx + rax*8 + 8]
pxor xmm3, xmm1
pxor xmm3, xmm2
movdqu xmmword [rbx + rax*8 + 0x4e8], xmm3
add rax, 2
cmp rax, 0x9a
jne 0x18003d080
pshufd xmm0, xmm0, 0xee
movq rcx, xmm0
and rcx, 0xffffffff80000000
mov rax, qword [0x180150f98]
mov edx, eax
and edx, 0x7ffffffe
or rdx, rcx
shr rdx, 1
mov ecx, eax
and ecx, 1
neg rcx
and rcx, r15
xor rcx, qword [0x1801500f0]
xor rcx, rdx
mov qword [0x1801505d0], rcx
and rax, 0xffffffff80000000
mov rcx, qword [0x18014fc20]
mov edx, ecx
and edx, 0x7ffffffe
or rdx, rax
and ecx, 1
neg rcx
and rcx, r15
xor rcx, qword [0x1801500f8]
shr rdx, 1
xor rcx, rdx
mov qword [0x1801505d8], rcx
xor ecx, ecx
jmp 0x18003cf25
mov dword [0x18014fc18], ecx
lea rax, str.ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
movzx esi, byte [rdx + rax]
mov r12, qword [rbp - 0x10]
mov r15, qword [rbp - 8]
cmp r12, r15
jae 0x18003d1a0
lea rax, [r12 + 1]
mov qword [rbp - 0x10], rax
lea rax, [rbp - 0x20]
cmp r15, 0x10
jb 0x18003cc90
mov rax, qword [rbp - 0x20]
jmp 0x18003cc90
movabs r14, 0x7fffffffffffffff
cmp r12, r14
je 0x18003d568
lea rdi, [r12 + 1]
cmp r12, 0xffffffffffffffff
jl 0x18003d200
mov rax, r15
shr rax, 1
mov rcx, rax
xor rcx, r14
cmp rcx, r15
jb 0x18003d200
mov rcx, rdi
or rcx, 0xf
add rax, r15
cmp rcx, rax
mov r14, rax
cmova r14, rcx
lea rcx, [r14 + 1]
cmp rcx, 0x1000
jb 0x18003d2d7
cmp rcx, 0xffffffffffffffd9
jae 0x18003d572
nop
lea rcx, [r14 + 0x28]
call fcn.1800aa410
mov r13, rax
add r13, 0x27
and r13, 0xffffffffffffffe0
mov qword [r13 - 8], rax
mov qword [rbp - 0x10], rdi
mov qword [rbp - 8], r14
cmp r15, 0x10
jb 0x18003d290
mov rdi, qword [rbp - 0x20]
mov rcx, r13
mov rdx, rdi
mov r8, r12
call fcn.1800d7e70
mov byte [r13 + r12], sil
mov byte [r13 + r12 + 1], 0
lea rdx, [r15 + 1]
cmp rdx, 0x1000
movabs r14, 0x71d67fffeda60000
jb 0x18003d279
mov rax, qword [rdi - 8]
add rdi, 0xfffffffffffffff8
sub rdi, rax
cmp rdi, 0x20
jae 0x18003d56d
add r15, 0x28
mov rdx, r15
mov rdi, rax
movabs r15, 0xb5026f5aa96619e9
mov rcx, rdi
call fcn.1800aa400
jmp 0x18003d2be
mov rcx, r13
lea rdx, [rbp - 0x20]
mov r8, r12
call fcn.1800d7e70
mov byte [r13 + r12], sil
mov byte [r13 + r12 + 1], 0
movabs r14, 0x71d67fffeda60000
movabs r15, 0xb5026f5aa96619e9
mov qword [rbp - 0x20], r13
mov edi, 0x24
mov eax, dword [rbp - 0x2c]
inc eax
cmp eax, 0x14
jne 0x18003ccb2
jmp 0x18003d330
test rcx, rcx
je 0x18003d2e9
call fcn.1800aa410
mov r13, rax
jmp 0x18003d218
mov r14, 0xffffffffffffffff
xor r13d, r13d
jmp 0x18003d218
lea rcx, [0x180150fa8]
call fcn.1800aabec
cmp dword [0x180150fa8], 0xffffffff
jne 0x18003ccda
mov rcx, rbx
call fcn.18003ea60
lea rcx, [0x180150fa8]
call fcn.1800aab80
jmp 0x18003ccda
mov rax, qword [rbp - 0x28]
cmp qword [rax + 0x10], 0
je 0x18003d3fa
mov rax, qword [rbp - 0x28]
cmp qword [rax + 0x18], 0x10
jb 0x18003d351
mov rax, qword [rbp - 0x28]
mov rax, qword [rax]
cmp byte [rax], 0x2e
je 0x18003d392
mov rax, qword [rbp - 0x10]
mov rcx, qword [rbp - 8]
cmp rax, rcx
jae 0x18003d381
lea rdx, [rax + 1]
mov qword [rbp - 0x10], rdx
lea rdx, [rbp - 0x20]
cmp rcx, 0x10
jb 0x18003d379
mov rdx, qword [rbp - 0x20]
mov word [rdx + rax], 0x2e
jmp 0x18003d392
mov edx, 1
lea rcx, [rbp - 0x20]
mov r9b, 0x2e
call fcn.180017ca0
mov r9, qword [rbp - 0x28]
mov r8, qword [r9 + 0x10]
cmp qword [r9 + 0x18], 0x10
jb 0x18003d3a8
mov rax, qword [rbp - 0x28]
mov r9, qword [rax]
mov rcx, qword [rbp - 0x10]
mov rax, qword [rbp - 8]
mov rdx, rax
sub rdx, rcx
cmp rdx, r8
jae 0x18003d3d0
mov qword [rsp + 0x20], r8
lea rcx, [rbp - 0x20]
mov rdx, r8
call fcn.18000a400
jmp 0x18003d3fa
lea rsi, [rcx + r8]
mov qword [rbp - 0x10], rsi
lea rdi, [rbp - 0x20]
cmp rax, 0x10
jb 0x18003d3e6
mov rdi, qword [rbp - 0x20]
add rcx, rdi
mov rdx, r9
call fcn.1800d7e70
mov byte [rdi + rsi], 0
mov edi, 0x24
lea rcx, [rbp - 0x50]
call fcn.18003db00
mov rcx, qword [rbp]
lea rax, [rbp - 0x50]
cmp rax, rcx
je 0x18003d470
mov rax, qword [rcx + 0x18]
cmp rax, 8
jb 0x18003d459
mov rcx, qword [rcx]
lea rdx, [rax*2 + 2]
cmp rdx, 0x1000
jb 0x18003d450
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x18003d59e
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, r8
call fcn.1800aa400
mov rcx, qword [rbp]
movdqu xmm0, xmmword [rbp - 0x50]
movdqu xmm1, xmmword [rbp - 0x40]
movdqu xmmword [rcx + 0x10], xmm1
movdqu xmmword [rcx], xmm0
jmp 0x18003d4c0
mov rax, qword [rbp - 0x38]
cmp rax, 8
jb 0x18003d4c0
mov rcx, qword [rbp - 0x50]
lea rdx, [rax*2 + 2]
cmp rdx, 0x1000
jb 0x18003d4b1
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x18003d5a3
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, r8
call fcn.1800aa400
mov rcx, qword [rbp]
nop word [rax + rax]
lea rdx, [rbp - 0x20]
call fcn.18003dc90
mov rax, qword [rbp - 8]
cmp rax, 0x10
jb 0x18003d508
mov rcx, qword [rbp - 0x20]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x18003d503
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x18003d599
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1800aa400
mov rax, qword [rbp]
cmp qword [rax + 0x18], 8
mov rcx, rax
jb 0x18003cc50
mov rcx, qword [rax]
jmp 0x18003cc50
cmp eax, 0x35
ja 0x18003d539
mov ecx, eax
movabs rdx, 0x2000000000000c
bt rdx, rcx
jb 0x18003d53e
cmp eax, 0x7b
jne 0x18003d577
mov rax, qword [rbp]
movaps xmm6, xmmword [rbp + 0x10]
movaps xmm7, xmmword [rbp + 0x20]
movaps xmm8, xmmword [rbp + 0x30]
movaps xmm9, xmmword [rbp + 0x40]
add rsp, 0xd8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.180008c70
call fcn.1800b3cac
call fcn.180008c90
mov dword [rbp - 0x50], eax
lea rax, [0x1800db850]
mov qword [rbp - 0x48], rax
lea rcx, str.exists
lea rdx, [rbp - 0x50]
mov r8, qword [rbp]
call fcn.180018660
call fcn.1800b3cac
call fcn.1800b3cac
call fcn.1800b3cac
int3