Function at 0x18003d170
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, [0x18014bbd8]
movaps xmm7, xmmword [0x1800d8ef0]
movaps xmm8, xmmword [0x1800d8f00]
movdqa xmm9, xmmword [0x1800d8f10]
movabs r14, 0x71d67fffeda60000
mov edi, 0x24
movabs r15, 0xb5026f5aa96619e9
jmp 0x18003d21d
lea rdx, [rbp - 0x20]
mov r8d, 3
mov r9d, 0xffffffff
call fcn.1800a9988
test eax, eax
jne 0x18003dad2
movaps xmmword [rbp - 0x20], xmm6
mov qword [rbp - 0x10], 0
mov qword [rbp - 8], recvfrom
xor eax, eax
jmp 0x18003d262
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 0x18003d8e0
mov dword [rbp - 0x2c], eax
mov eax, dword [0x18014cf68]
mov ecx, dword [0x18014d474]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 0x30]
jg 0x18003d8a8
mov eax, dword [0x18014bbd8]
cmp eax, 0x138
jne 0x18003d310
movq xmm0, qword [0x18014bbe0]
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 0x18003d2b0
mov eax, 0x138
jmp 0x18003d472
cmp eax, 0x270
jb 0x18003d472
movq xmm0, qword [0x18014c5a0]
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 0x18003d330
movq xmm0, qword [0x18014ca80]
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 0x18003d3a0
pshufd xmm0, xmm0, 0xee
movq rcx, xmm0
and rcx, 0xffffffff80000000
mov rax, qword [0x18014cf58]
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 [0x18014c0b0]
xor rcx, rdx
mov qword [0x18014c590], rcx
and rax, 0xffffffff80000000
mov rcx, qword [0x18014bbe0]
mov edx, ecx
and edx, 0x7ffffffe
or rdx, rax
and ecx, 1
neg rcx
and rcx, r15
xor rcx, qword [0x18014c0b8]
shr rdx, 1
xor rcx, rdx
mov qword [0x18014c598], rcx
xor eax, eax
lea ecx, [rax + 1]
mov dword [0x18014bbd8], ecx
mov eax, eax
mov rax, qword [rbx + rax*8 + 8]
mov rdx, rax
shr rdx, 0x1d
and rdx, qword [0x18014cf60]
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 0x18003d716
jmp 0x18003d524
mov ecx, 0x138
mov eax, ecx
mov rax, qword [rbx + rax*8 + 8]
mov rdx, rax
shr rdx, 0x1d
and rdx, qword [0x18014cf60]
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 0x18003d710
cmp ecx, 0x138
jne 0x18003d5a0
movq xmm0, qword [0x18014bbe0]
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 0x18003d540
jmp 0x18003d4d0
cmp ecx, 0x270
jb 0x18003d4d5
movq xmm0, qword [0x18014c5a0]
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 0x18003d5c0
movq xmm0, qword [0x18014ca80]
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 0x18003d630
pshufd xmm0, xmm0, 0xee
movq rcx, xmm0
and rcx, 0xffffffff80000000
mov rax, qword [0x18014cf58]
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 [0x18014c0b0]
xor rcx, rdx
mov qword [0x18014c590], rcx
and rax, 0xffffffff80000000
mov rcx, qword [0x18014bbe0]
mov edx, ecx
and edx, 0x7ffffffe
or rdx, rax
and ecx, 1
neg rcx
and rcx, r15
xor rcx, qword [0x18014c0b8]
shr rdx, 1
xor rcx, rdx
mov qword [0x18014c598], rcx
xor ecx, ecx
jmp 0x18003d4d5
mov dword [0x18014bbd8], ecx
lea rax, str.ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
movzx esi, byte [rdx + rax]
mov r12, qword [rbp - 0x10]
mov r15, qword [rbp - 8]
cmp r12, r15
jae 0x18003d750
lea rax, [r12 + 1]
mov qword [rbp - 0x10], rax
lea rax, [rbp - 0x20]
cmp r15, 0x10
jb 0x18003d240
mov rax, qword [rbp - 0x20]
jmp 0x18003d240
movabs r14, 0x7fffffffffffffff
cmp r12, r14
je 0x18003db18
lea rdi, [r12 + 1]
cmp r12, 0xffffffffffffffff
jl 0x18003d7b0
mov rax, r15
shr rax, 1
mov rcx, rax
xor rcx, r14
cmp rcx, r15
jb 0x18003d7b0
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 0x18003d887
cmp rcx, 0xffffffffffffffd9
jae 0x18003db22
nop
lea rcx, [r14 + 0x28]
call fcn.1800a77e0
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 0x18003d840
mov rdi, qword [rbp - 0x20]
mov rcx, r13
mov rdx, rdi
mov r8, r12
call fcn.1800d5310
mov byte [r13 + r12], sil
mov byte [r13 + r12 + 1], 0
lea rdx, [r15 + 1]
cmp rdx, 0x1000
movabs r14, 0x71d67fffeda60000
jb 0x18003d829
mov rax, qword [rdi - 8]
add rdi, 0xfffffffffffffff8
sub rdi, rax
cmp rdi, 0x20
jae 0x18003db1d
add r15, 0x28
mov rdx, r15
mov rdi, rax
movabs r15, 0xb5026f5aa96619e9
mov rcx, rdi
call fcn.1800a77d0
jmp 0x18003d86e
mov rcx, r13
lea rdx, [rbp - 0x20]
mov r8, r12
call fcn.1800d5310
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 0x18003d262
jmp 0x18003d8e0
test rcx, rcx
je 0x18003d899
call fcn.1800a77e0
mov r13, rax
jmp 0x18003d7c8
mov r14, 0xffffffffffffffff
xor r13d, r13d
jmp 0x18003d7c8
lea rcx, [0x18014cf68]
call fcn.1800a7fbc
cmp dword [0x18014cf68], 0xffffffff
jne 0x18003d28a
mov rcx, rbx
call fcn.18003efe0
lea rcx, [0x18014cf68]
call fcn.1800a7f50
jmp 0x18003d28a
mov rax, qword [rbp - 0x28]
cmp qword [rax + 0x10], 0
je 0x18003d9aa
mov rax, qword [rbp - 0x28]
cmp qword [rax + 0x18], 0x10
jb 0x18003d901
mov rax, qword [rbp - 0x28]
mov rax, qword [rax]
cmp byte [rax], 0x2e
je 0x18003d942
mov rax, qword [rbp - 0x10]
mov rcx, qword [rbp - 8]
cmp rax, rcx
jae 0x18003d931
lea rdx, [rax + 1]
mov qword [rbp - 0x10], rdx
lea rdx, [rbp - 0x20]
cmp rcx, 0x10
jb 0x18003d929
mov rdx, qword [rbp - 0x20]
mov word [rdx + rax], 0x2e
jmp 0x18003d942
mov edx, 1
lea rcx, [rbp - 0x20]
mov r9b, 0x2e
call fcn.1800180f0
mov r9, qword [rbp - 0x28]
mov r8, qword [r9 + 0x10]
cmp qword [r9 + 0x18], 0x10
jb 0x18003d958
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 0x18003d980
mov qword [rsp + 0x20], r8
lea rcx, [rbp - 0x20]
mov rdx, r8
call fcn.18000a810
jmp 0x18003d9aa
lea rsi, [rcx + r8]
mov qword [rbp - 0x10], rsi
lea rdi, [rbp - 0x20]
cmp rax, 0x10
jb 0x18003d996
mov rdi, qword [rbp - 0x20]
add rcx, rdi
mov rdx, r9
call fcn.1800d5310
mov byte [rdi + rsi], 0
mov edi, 0x24
lea rcx, [rbp - 0x50]
call fcn.18003e080
mov rcx, qword [rbp]
lea rax, [rbp - 0x50]
cmp rax, rcx
je 0x18003da20
mov rax, qword [rcx + 0x18]
cmp rax, 8
jb 0x18003da09
mov rcx, qword [rcx]
lea rdx, [rax*2 + 2]
cmp rdx, 0x1000
jb 0x18003da00
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x18003db4e
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, r8
call fcn.1800a77d0
mov rcx, qword [rbp]
movdqu xmm0, xmmword [rbp - 0x50]
movdqu xmm1, xmmword [rbp - 0x40]
movdqu xmmword [rcx + 0x10], xmm1
movdqu xmmword [rcx], xmm0
jmp 0x18003da70
mov rax, qword [rbp - 0x38]
cmp rax, 8
jb 0x18003da70
mov rcx, qword [rbp - 0x50]
lea rdx, [rax*2 + 2]
cmp rdx, 0x1000
jb 0x18003da61
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x18003db53
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, r8
call fcn.1800a77d0
mov rcx, qword [rbp]
nop word [rax + rax]
lea rdx, [rbp - 0x20]
call fcn.18003e210
mov rax, qword [rbp - 8]
cmp rax, 0x10
jb 0x18003dab8
mov rcx, qword [rbp - 0x20]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x18003dab3
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x18003db49
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1800a77d0
mov rax, qword [rbp]
cmp qword [rax + 0x18], 8
mov rcx, rax
jb 0x18003d200
mov rcx, qword [rax]
jmp 0x18003d200
cmp eax, 0x35
ja 0x18003dae9
mov ecx, eax
movabs rdx, 0x2000000000000c
bt rdx, rcx
jb 0x18003daee
cmp eax, 0x7b
jne 0x18003db27
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.180009080
call fcn.1800b109c
call fcn.1800090a0
mov dword [rbp - 0x50], eax
lea rax, [0x1800d8850]
mov qword [rbp - 0x48], rax
lea rcx, str.exists
lea rdx, [rbp - 0x50]
mov r8, qword [rbp]
call fcn.180018ab0
call fcn.1800b109c
call fcn.1800b109c
call fcn.1800b109c
int3