Function at 0x1800bab50
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x80
mov rax, qword [0x1802b7c00]
xor rax, rsp
mov qword [rsp + 0x70], rax
movzx r15d, r8b
mov byte [rsp + 0x30], r8b
mov rsi, rdx
mov rbx, rcx
mov qword [rsp + 0x38], rcx
mov r13d, dword [rcx + 0x40c]
mov dword [rsp + 0x34], r13d
mov dword [rsp + 0x40], r13d
mov rax, qword [rdx + 0x28]
mov qword [rsp + 0x50], rax
add rcx, 0xe0
lea rdx, [rsp + 0x50]
call fcn.1800c2b00
test rax, rax
je 0x1800babcf
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x50], xmm0
movsd xmm1, qword [rax + 0x10]
movsd qword [rsp + 0x60], xmm1
jmp 0x1800babdd
mov qword [rsp + 0x50], rax
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x58], xmm0
lea rax, [rsp + 0x50]
movups xmm1, xmmword [rax]
movsd xmm0, qword [rax + 0x10]
movsd qword [rsp + 0x60], xmm0
movd eax, xmm1
cmp eax, 3
jne 0x1800bacc5
unpckhpd xmm1, xmm1
comisd xmm1, xmmword [0x1802889d8]
jb 0x1800bae3c
movsd xmm0, qword [0x180288a38]
comisd xmm0, xmm1
jb 0x1800bae3c
cvttsd2si edi, xmm1
movd xmm0, edi
cvtdq2pd xmm0, xmm0
ucomisd xmm0, xmm1
jp 0x1800bae3c
jne 0x1800bae3c
dec dil
mov rbp, qword [rsi + 0x20]
mov rdx, rbp
mov rcx, rbx
call fcn.1800bc730
mov r9d, eax
test eax, eax
jns 0x1800bac9e
lea eax, [r13 + 1]
cmp eax, 0xff
ja 0x1800baf50
mov dword [rbx + 0x40c], eax
mov r14d, 0x410
mov r12d, 0x40c
cmp dword [rbx + 0x410], eax
cmovb r14d, r12d
mov eax, dword [r14 + rbx]
mov dword [rbx + 0x410], eax
movzx r8d, r13b
mov rdx, rbp
mov rcx, rbx
call fcn.1800bbaa0
movzx r9d, r13b
mov rax, qword [rsi + 0x28]
cmp dword [rbx + 0xc], 1
jl 0x1800bacb6
mov rcx, qword [rbx]
mov eax, dword [rax + 0xc]
inc eax
mov dword [rcx + 0x1b8], eax
mov byte [rsp + 0x20], dil
mov edx, reloc.WS2_32.dll_recvfrom
jmp 0x1800baef7
cmp eax, 5
jne 0x1800bae3c
movdqa xmm0, xmm1
psrldq xmm0, 4
movd edi, xmm0
psrldq xmm1, 8
movq rbp, xmm1
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x58], rdi
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x50], xmm0
lea rdx, [rsp + 0x50]
mov rcx, qword [rbx]
call fcn.1800ae4c0
mov r14d, eax
mov dword [rsp + 0x50], eax
test eax, eax
js 0x1800baf6d
mov r15, qword [rsi + 0x20]
mov rdx, r15
mov rcx, rbx
call fcn.1800bc730
mov r9d, eax
test eax, eax
jns 0x1800bad85
mov r13d, dword [rbx + 0x40c]
lea eax, [r13 + 1]
cmp eax, 0xff
ja 0x1800baf7e
mov dword [rbx + 0x40c], eax
mov r14d, 0x410
mov r12d, 0x40c
cmp dword [rbx + 0x410], eax
cmovb r14d, r12d
mov eax, dword [r14 + rbx]
mov dword [rbx + 0x410], eax
movzx r8d, r13b
mov rdx, r15
mov rcx, rbx
call fcn.1800bbaa0
movzx r9d, r13b
mov r13d, dword [rsp + 0x34]
mov r14d, dword [rsp + 0x50]
mov rax, qword [rsi + 0x28]
cmp dword [rbx + 0xc], 1
jl 0x1800bad9d
mov rcx, qword [rbx]
mov eax, dword [rax + 0xc]
inc eax
mov dword [rcx + 0x1b8], eax
mov r8, rdi
test rdi, rdi
je 0x1800badcc
nop word [rax + rax]
movzx edx, byte [r8 + rbp - 1]
mov eax, edi
shl eax, 5
add edx, eax
mov eax, edi
shr eax, 2
add edx, eax
xor edi, edx
sub r8, 1
jne 0x1800badb0
mov byte [rsp + 0x20], dil
movzx r8d, byte [rsp + 0x30]
mov edx, reloc.WS2_32.dll_ntohs
mov rcx, qword [rbx]
call fcn.1800aeaa0
mov rdi, qword [rbx]
mov dword [rsp + 0x50], r14d
lea rcx, [rdi + 0x28]
mov rdx, qword [rdi + 0x30]
cmp rdx, qword [rdi + 0x38]
je 0x1800bae04
mov dword [rdx], r14d
add qword [rdi + 0x30], 4
jmp 0x1800bae0e
lea r8, [rsp + 0x50]
call fcn.18009aba0
lea rcx, [rdi + 0x40]
lea r8, [rdi + 0x1b8]
mov rdx, qword [rdi + 0x48]
cmp rdx, qword [rdi + 0x50]
je 0x1800bae32
mov eax, dword [r8]
mov dword [rdx], eax
add qword [rdi + 0x48], 4
jmp 0x1800baf04
call fcn.18009aba0
jmp 0x1800baf04
mov rdi, qword [rsi + 0x20]
mov rdx, rdi
mov rcx, rbx
call fcn.1800bc730
mov ebp, eax
mov r14d, 0x410
lea r12d, [r14 - 4]
test eax, eax
jns 0x1800bae9a
lea ecx, [r13 + 1]
cmp ecx, 0xff
ja 0x1800baf9b
mov dword [rbx + 0x40c], ecx
mov eax, r14d
cmp dword [rbx + 0x410], ecx
cmovb eax, r12d
mov eax, dword [rax + rbx]
mov dword [rbx + 0x410], eax
movzx r8d, r13b
mov rdx, rdi
mov rcx, rbx
call fcn.1800bbaa0
movzx ebp, r13b
mov rdi, qword [rsi + 0x28]
mov rdx, rdi
mov rcx, rbx
call fcn.1800bc730
test eax, eax
jns 0x1800baeea
mov esi, dword [rbx + 0x40c]
lea eax, [rsi + 1]
cmp eax, 0xff
ja 0x1800baf33
mov dword [rbx + 0x40c], eax
cmp dword [rbx + 0x410], eax
cmovb r14, r12
mov eax, dword [r14 + rbx]
mov dword [rbx + 0x410], eax
movzx r8d, sil
mov rdx, rdi
mov rcx, rbx
call fcn.1800bbaa0
movzx eax, sil
mov byte [rsp + 0x20], al
movzx r9d, bpl
mov edx, reloc.WS2_32.dll_listen
movzx r8d, r15b
mov rcx, qword [rbx]
call fcn.1800aeaa0
nop
mov dword [rbx + 0x40c], r13d
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.1801fc6e0
mov rbx, qword [rsp + 0xd0]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea rcx, [rdi + 0xc]
mov r9d, 0xff
mov r8d, 1
lea rdx, str.Out_of_registers_when_trying_to_allocate__d_registers:_exceeded_limit__d
call fcn.1800b3cc0
int3
lea rcx, [rbp + 0xc]
mov r9d, 0xff
mov r8d, 1
lea rdx, str.Out_of_registers_when_trying_to_allocate__d_registers:_exceeded_limit__d
call fcn.1800b3cc0
int3
lea rcx, [rsi + 0xc]
lea rdx, str.Exceeded_constant_limit__simplify_the_code_to_compile
call fcn.1800b3cc0
int3
lea rcx, [r15 + 0xc]
mov r9d, 0xff
mov r8d, 1
lea rdx, str.Out_of_registers_when_trying_to_allocate__d_registers:_exceeded_limit__d
call fcn.1800b3cc0
int3
lea rcx, [rdi + 0xc]
mov r9d, 0xff
mov r8d, 1
lea rdx, str.Out_of_registers_when_trying_to_allocate__d_registers:_exceeded_limit__d
call fcn.1800b3cc0
int3