Function at 0x1800a6cf0
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
sub rsp, 0x48
cmp byte [rdx], 0
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov qword [rax - 8], r12
mov qword [rax - 0x10], r13
mov qword [rax - 0x18], r14
mov r14, qword [rcx + 0x290]
mov rdi, rdx
mov rbx, rcx
mov rbp, rdx
je 0x1800a702c
nop
movzx eax, byte [rbp]
cmp al, 0xc
je 0x1800a6f00
test al, al
je 0x1800a6f00
cmp al, 0x3d
jne 0x1800a6ec0
mov rcx, qword [rbx + 0x308]
mov rax, rcx
sub rax, qword [rbx + 0x310]
jne 0x1800a6d6b
lea rsi, [r14 + 0x108]
jmp 0x1800a6ded
cmp rcx, qword [rbx + 0x300]
jne 0x1800a6d88
lea rcx, [rbx + 0x2f0]
call fcn.1800a35c0
test al, al
je 0x1800a7056
mov rax, qword [rbx + 0x308]
lea rcx, [r14 + 0x78]
mov r8d, setsockopt
mov byte [rax], 0
mov rdx, qword [rbx + 0x310]
inc qword [rbx + 0x308]
call fcn.1800a2ff0
test rax, rax
mov rsi, rax
je 0x1800a7056
mov rdx, qword [rax]
cmp rdx, qword [rbx + 0x310]
jne 0x1800a6ddf
lea rcx, [r14 + 0xa0]
call fcn.1800a4e10
test rax, rax
mov qword [rsi], rax
je 0x1800a7056
mov rax, qword [rbx + 0x310]
mov qword [rbx + 0x308], rax
movzx eax, byte [rbp + 1]
lea rdi, [rbp + 1]
cmp al, 0xc
je 0x1800a6e44
nop
nop
test al, al
je 0x1800a6e44
mov rax, qword [rbx + 0x300]
cmp qword [rbx + 0x308], rax
jne 0x1800a6e28
lea rcx, [rbx + 0x2f0]
call fcn.1800a35c0
test al, al
je 0x1800a7056
movzx eax, byte [rdi]
mov rcx, qword [rbx + 0x308]
inc rdi
mov byte [rcx], al
inc qword [rbx + 0x308]
mov al, byte [rdi]
cmp al, 0xc
jne 0x1800a6e00
mov rax, qword [rbx + 0x300]
cmp qword [rbx + 0x308], rax
jne 0x1800a6e68
lea rcx, [rbx + 0x2f0]
call fcn.1800a35c0
test al, al
je 0x1800a7056
mov rax, qword [rbx + 0x308]
xor r8d, r8d
mov rdx, rsi
mov byte [rax], 0
mov r9, qword [rbx + 0x310]
inc qword [rbx + 0x308]
lea rax, [rbx + 0x2b0]
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.1800a2760
test eax, eax
jne 0x1800a7056
mov rax, qword [rbx + 0x310]
mov qword [rbx + 0x308], rax
cmp byte [rdi], 0
je 0x1800a6eb8
inc rdi
mov rbp, rdi
jmp 0x1800a7023
mov rax, qword [rbx + 0x300]
cmp qword [rbx + 0x308], rax
jne 0x1800a6ee4
lea rcx, [rbx + 0x2f0]
call fcn.1800a35c0
test al, al
je 0x1800a7056
movzx eax, byte [rbp]
mov rcx, qword [rbx + 0x308]
mov byte [rcx], al
inc qword [rbx + 0x308]
inc rbp
jmp 0x1800a7023
mov rax, qword [rbx + 0x300]
cmp qword [rbx + 0x308], rax
jne 0x1800a6f24
lea rcx, [rbx + 0x2f0]
call fcn.1800a35c0
test al, al
je 0x1800a7056
mov rax, qword [rbx + 0x308]
mov byte [rax], 0
inc qword [rbx + 0x308]
mov r12, qword [r14 + 0x10]
test r12, r12
mov rsi, qword [rbx + 0x310]
je 0x1800a7009
movzx edi, byte [rsi]
xor r9d, r9d
mov rcx, rsi
test dil, dil
je 0x1800a6f76
movzx eax, dil
nop
nop
imul r9d, r9d, 0xf4243
movzx eax, al
inc rcx
xor r9d, eax
mov al, byte [rcx]
test al, al
jne 0x1800a6f60
mov r11, qword [r14]
lea r13d, [r12 - 1]
mov edx, r9d
mov eax, r13d
xor r10b, r10b
and rdx, rax
cmp qword [r11 + rdx*8], 0
je 0x1800a7009
mov rax, qword [r11 + rdx*8]
mov rcx, qword [rax]
cmp dil, byte [rcx]
jne 0x1800a6fb7
mov r8, rsi
movzx eax, dil
sub r8, rcx
test al, al
je 0x1800a6ffc
mov al, byte [r8 + rcx + 1]
inc rcx
cmp al, byte [rcx]
je 0x1800a6fa7
test r10b, r10b
jne 0x1800a6fdc
mov al, byte [r14 + 8]
mov r10d, r13d
not r10d
lea ecx, [rax - 1]
mov eax, r13d
and r10d, r9d
shr eax, 2
shr r10d, cl
and r10b, al
or r10b, 1
movzx ecx, r10b
cmp rdx, rcx
jae 0x1800a6ff0
mov rax, r12
sub rax, rcx
add rdx, rax
jmp 0x1800a6ff3
sub rdx, rcx
cmp qword [r11 + rdx*8], 0
jne 0x1800a6f91
jmp 0x1800a7009
mov rax, qword [r11 + rdx*8]
test rax, rax
je 0x1800a7009
mov byte [rax + 0x38], 1
cmp byte [rbp], 0
je 0x1800a7012
inc rbp
mov rax, qword [rbx + 0x310]
mov rdi, rbp
mov qword [rbx + 0x308], rax
cmp byte [rdi], 0
jne 0x1800a6d30
mov al, 1
mov r14, qword [rsp + 0x30]
mov r13, qword [rsp + 0x38]
mov r12, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x50]
add rsp, 0x48
ret
xor al, al
jmp 0x1800a702e