Function at 0x180038560
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x108]
sub rsp, 0x1e0
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
mov rax, qword [0x1801561e0]
xor rax, rsp
mov qword [rbp + 0xb0], rax
xor eax, eax
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x60], xmm1
mov qword [rsp + 0x70], rax
cmp qword [0x1801847c8], rax
je 0x180038ab3
mov ecx, dword [0x180184604]
mov rax, qword gs:[0x58]
mov edx, 4
mov rax, qword [rax + rcx*8]
mov ecx, dword [rdx + rax]
cmp dword [0x180185f48], ecx
jle 0x180038619
lea rcx, [0x180185f48]
call fcn.180113138
cmp dword [0x180185f48], 0xffffffff
jne 0x180038619
mov rdx, qword [0x180184778]
mov rax, qword [0x1801806f0]
mov rdx, qword [rax + rdx]
mov qword [0x1801860a0], rdx
lea rcx, [0x180185f48]
call fcn.1801130d8
xor r15d, r15d
mov rbx, qword [0x1801860a0]
cmp dword [rbx + 0x10], r15d
jle 0x180038a5a
xor ecx, ecx
mov qword [rsp + 0x48], rcx
movabs rsi, 0x6c0e2e0125610278
movabs r14, 0x6d0de6a7b5da71f8
movabs r12, 0x47d6f43d77935c75
xorps xmm7, xmm7
nop word [rax + rax]
mov rax, qword [rbx + 8]
movzx ecx, byte [rax + rcx]
and ecx, 0x80
mov edx, ecx
neg rdx
or rdx, rcx
sar rdx, 0x3f
not rdx
test rdx, rdx
je 0x180038a40
mov eax, r15d
imul eax, dword [rbx + 0x14]
movsxd rdi, eax
add rdi, qword [rbx]
and rdi, rdx
je 0x180038a40
mov eax, dword [0x1801807d8]
cmp qword [rax + rdi], 0
je 0x180038a40
mov rcx, qword [0x1801847c8]
cmp rdi, rcx
je 0x180038a40
movsd xmm2, qword [rdi + 0x90]
mov eax, dword [rdi + 0x98]
mov dword [rsp + 0x58], eax
movss xmm1, dword [rsp + 0x58]
subss xmm1, dword [rcx + 0x98]
movaps xmm0, xmm2
shufps xmm0, xmm0, 0x55
subss xmm0, dword [rcx + 0x94]
subss xmm2, dword [rcx + 0x90]
mulss xmm2, xmm2
mulss xmm0, xmm0
addss xmm2, xmm0
mulss xmm1, xmm1
addss xmm2, xmm1
xorps xmm0, xmm0
ucomiss xmm0, xmm2
ja 0x180038719
xorps xmm0, xmm0
sqrtss xmm0, xmm2
jmp 0x180038721
movaps xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
xorps xmm6, xmm6
cvtss2sd xmm6, xmm0
movss xmm0, dword [0x180180b14]
cvtps2pd xmm0, xmm0
comisd xmm0, xmm6
jb 0x180038a40
mov rax, qword [0x1801846d0]
mov rcx, rdi
call rax
mov ebx, eax
mov dword [rsp + 0x3c], eax
cvttss2si eax, dword [rdi + 0x280]
mov dword [rsp + 0x38], eax
mov edx, ebx
mov rcx, rsi
call fcn.180044180
mov dword [rsp + 0x40], eax
mov edx, eax
mov rcx, r14
call fcn.180044570
mov qword [rsp + 0x78], 0
mov qword [rbp - 0x78], 0
mov qword [rbp - 0x70], reloc.WS2_32.dll_ntohs
mov byte [rsp + 0x78], 0
mov r8, 0xffffffffffffffff
nop dword [rax + rax]
inc r8
cmp byte [rax + r8], 0
jne 0x1800387a0
mov rdx, rax
lea rcx, [rsp + 0x78]
call fcn.180040f40
nop
xor sil, sil
mov edx, ebx
mov rcx, r12
call fcn.180044180
movzx ecx, sil
test eax, eax
mov r11d, 1
cmove ecx, r11d
mov dword [rsp + 0x44], ecx
mov dword [rsp + 0x28], 0xd3f59190
mov dword [rsp + 0x2c], 0xa8acdec8
mov dword [rsp + 0x30], 0xeee9a6
mov byte [rsp + 0x34], r11b
xor r10d, r10d
mov ecx, r10d
nop dword [rax]
lea eax, [rcx - 0x46]
xor byte [rsp + rcx + 0x28], al
inc rcx
cmp rcx, 0xb
jb 0x180038800
mov byte [rsp + 0x34], sil
lea rcx, [rsp + 0x28]
mov rax, 0xffffffffffffffff
inc rax
cmp byte [rcx + rax], sil
jne 0x180038821
lea rcx, [rsp + 0x78]
mov r12, qword [rsp + 0x78]
mov r13, qword [rbp - 0x70]
cmp r13, 0x10
cmovae rcx, r12
mov r14, qword [rbp - 0x78]
cmp r14, rax
jne 0x180038865
mov r8, r14
lea rdx, [rsp + 0x28]
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x180038a11
xor r10d, r10d
lea r11d, [r10 + 1]
mov eax, dword [0x1801807d8]
mov ecx, dword [0x1801807e4]
mov rax, qword [rax + rdi]
mov esi, dword [rcx + rax]
cmp dword [rsp + 0x38], 0x65
setle byte [rsp + 0x20]
xor bl, bl
mov edx, r10d
mov r8, qword [0x1801848a8]
mov r9, qword [0x1801848a0]
sub r8, r9
sar r8, 2
test r8, r8
je 0x1800388c9
mov rcx, r10
nop dword [rax]
nop dword [rax + rax]
movzx ebx, bl
cmp dword [rcx + r9], esi
cmove ebx, r11d
inc edx
lea rcx, [rcx + 4]
movsxd rax, edx
cmp rax, r8
jb 0x1800388b0
xor eax, eax
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x58], rax
mov qword [rbp - 0x50], rax
movsd qword [rbp - 0x48], xmm7
mov qword [rbp - 0x40], rax
mov byte [rbp - 0x38], al
mov qword [rbp - 0x30], r10
mov qword [rbp - 0x20], r10
mov qword [rbp - 0x18], reloc.WS2_32.dll_ntohs
mov byte [rbp - 0x30], al
lea r8d, [rax + 6]
lea rdx, str.Player
lea rcx, [rbp - 0x30]
call fcn.180040f40
nop
xor eax, eax
mov qword [rbp - 0x10], rax
mov qword [rbp], rax
mov qword [rbp + 8], reloc.WS2_32.dll_ntohs
mov byte [rbp - 0x10], al
xor r8d, r8d
lea rdx, [0x18012f3d3]
lea rcx, [rbp - 0x10]
call fcn.180040f40
mov dword [rbp + 0x10], 0
mov byte [rbp + 0x14], 0
mov qword [rbp + 0x18], 0
xorps xmm0, xmm0
movaps xmmword [rbp + 0x20], xmm0
xorps xmm1, xmm1
movaps xmmword [rbp + 0x30], xmm1
movaps xmmword [rbp + 0x40], xmm0
movaps xmmword [rbp + 0x50], xmm1
movaps xmmword [rbp + 0x60], xmm0
movaps xmmword [rbp + 0x70], xmm1
movaps xmmword [rbp + 0x80], xmm0
movaps xmmword [rbp + 0x90], xmm1
movaps xmmword [rbp + 0xa0], xmm0
mov eax, dword [rsp + 0x3c]
mov dword [rbp - 0x58], eax
mov qword [rbp - 0x60], rdi
mov eax, dword [rsp + 0x38]
mov dword [rbp - 0x54], eax
movsd qword [rbp - 0x48], xmm6
mov eax, dword [rsp + 0x40]
mov dword [rbp - 0x40], eax
mov dword [rbp - 0x3c], esi
lea rdx, [rsp + 0x78]
cmp r13, 0x10
cmovae rdx, r12
mov r8, r14
lea rcx, [rbp - 0x30]
call fcn.180040f40
movzx eax, byte [rsp + 0x20]
mov byte [rbp + 0x10], al
mov eax, dword [rsp + 0x44]
mov byte [rbp + 0x12], al
mov byte [rbp + 0x14], 0
mov byte [rbp + 0x13], bl
mov rax, qword [rsp + 0x68]
cmp rax, qword [rsp + 0x70]
je 0x1800389ec
lea rdx, [rbp - 0x60]
mov rcx, rax
call fcn.180013730
add qword [rsp + 0x68], 0x110
jmp 0x1800389fe
lea r8, [rbp - 0x60]
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.18004d760
nop
lea rcx, [rbp - 0x10]
call fcn.180040e40
lea rcx, [rbp - 0x30]
call fcn.180040e40
nop
lea rcx, [rsp + 0x78]
call fcn.180040e40
movabs r12, 0x47d6f43d77935c75
movabs r14, 0x6d0de6a7b5da71f8
movabs rsi, 0x6c0e2e0125610278
mov rbx, qword [0x1801860a0]
inc r15d
mov rcx, qword [rsp + 0x48]
inc rcx
mov qword [rsp + 0x48], rcx
cmp r15d, dword [rbx + 0x10]
jl 0x180038660
mov rdi, qword [0x1801848d8]
mov rbx, qword [0x1801848d0]
cmp rbx, rdi
je 0x180038a95
nop dword [rax]
lea rcx, [rbx + 0x50]
call fcn.180040e40
lea rcx, [rbx + 0x30]
call fcn.180040e40
add rbx, 0x110
cmp rbx, rdi
jne 0x180038a70
mov rbx, qword [0x1801848d0]
mov qword [0x1801848d8], rbx
mov r8, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x60]
lea rcx, [0x1801848d0]
call fcn.1800555e0
nop
lea rcx, [rsp + 0x60]
call fcn.18003ee40
mov rcx, qword [rbp + 0xb0]
xor rcx, rsp
call fcn.180112f90
lea r11, [rsp + 0x1e0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret