Function at 0x1800af870
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x128]
sub rsp, 0x228
mov rax, qword [0x18029e198]
xor rax, rsp
mov qword [rbp + 0x110], rax
mov r14, r9
mov r13, r8
movzx r12d, dx
mov rsi, rcx
mov qword [rsp + 0x20], r9
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0x60], xmm0
mov dword [rsp + 0x70], eax
lea rdx, [rsp + 0x60]
mov rcx, qword [rcx]
call fcn.1801c1d70
mov r15d, dword [rsp + 0x60]
mov rbx, qword [rsi]
mov rdi, qword [rsi + 8]
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x60], rax
mov word [rbp - 0x58], ax
mov eax, 0x8000
mov word [rbp - 0x5c], ax
mov byte [rbp - 0x57], 9
mov eax, dword [rbx]
shr eax, 1
test al, 1
je 0x1800af901
mov eax, dword [rbx + 0x14]
jmp 0x1800af904
mov eax, dword [rbx + 0x18]
mov dword [rbp - 0x64], eax
mov edx, dword [rdi + 0x10]
lea rcx, [rbp - 0x64]
call fcn.1800e1f00
mov dword [rbp - 0x68], r15d
mov eax, dword [rbx + 8]
shr eax, 2
test al, 1
je 0x1800af926
mov eax, dword [rdi + 0x20]
jmp 0x1800af929
mov eax, dword [rbx + 0x10]
mov dword [rbp - 0x70], eax
mov eax, dword [rdi + 0x24]
mov dword [rbp - 0x6c], eax
movups xmm0, xmmword [rbp - 0x70]
movups xmmword [rbp + 0x38], xmm0
movsd xmm1, qword [rbp - 0x60]
movsd qword [rbp + 0x48], xmm1
movzx eax, word [rbp - 0x58]
mov word [rbp + 0x50], ax
xorps xmm0, xmm0
movups xmmword [rbp + 0x90], xmm0
movups xmmword [rbp + 0xa0], xmm0
movups xmmword [rbp + 0xb0], xmm0
movups xmmword [rbp + 0xc0], xmm0
mov r9d, reloc.WS2_32.dll_recv
lea r8, [rsp + 0x64]
lea rdx, [rbp + 0x38]
lea rcx, [rbp + 0x90]
call fcn.1800ed1a0
mov byte [rbp - 0x20], 0
mov rdx, qword [rsi + 0x10]
test dword [rdx], 0x4000000
je 0x1800af9d2
mov r9, qword [rsi + 0x18]
movzx r8d, r12w
lea rcx, [rbp - 0x70]
call fcn.1800af5c0
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x18], xmm0
movsd xmm1, qword [rax + 0x10]
movsd qword [rbp - 8], xmm1
cmp byte [rbp - 0x20], 0
jne 0x1800af9c2
mov byte [rbp - 0x20], 1
lea rdx, [rbp - 0x18]
lea rcx, [rbp + 0x90]
call fcn.1800ed850
mov rcx, qword [r14 + 0x38]
test rcx, rcx
je 0x1800afd58
mov rax, qword [rcx]
lea rdx, [rbp + 0x90]
mov rax, qword [rax + 0x10]
call qword [case.0x18009ccb8.0]
mov r15, qword [rsi]
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
movups xmmword [rbp - 0x60], xmm0
mov byte [rbp - 0x70], 0
mov ecx, reloc.WS2_32.dll_recv
call fcn.1801e60b0
mov rdi, rax
mov qword [rbp - 0x68], rax
lea rcx, [rax + 0x10]
mov qword [rbp - 0x58], rcx
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov qword [rbp - 0x60], rcx
movups xmm0, xmmword [r15 + 0x44]
movups xmmword [rax], xmm0
xorps xmm1, xmm1
xor eax, eax
movups xmmword [rbp - 0x48], xmm1
movups xmmword [rbp - 0x38], xmm1
mov qword [rbp - 0x28], rax
mov byte [rbp - 0x48], al
lea ecx, [rax + 0x20]
call fcn.1801e60b0
mov rbx, rax
mov qword [rbp - 0x40], rax
lea rcx, [rax + 0x20]
mov qword [rbp - 0x30], rcx
xorps xmm0, xmm0
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
mov qword [rbp - 0x38], rcx
xor r12d, r12d
mov dword [rbp - 0x28], r12d
sub rcx, rax
cmp rcx, 0x10
jae 0x1800afa8b
lea edx, [r12 + 0x10]
lea rcx, [rbp - 0x48]
call fcn.1800afde0
mov rbx, qword [rbp - 0x40]
mov r8d, reloc.WS2_32.dll_recv
mov rdx, rdi
mov rcx, rbx
call fcn.18020b760
lea rdi, [rbx + 0x10]
mov qword [rbp - 0x38], rdi
call fcn.18012aaa0
mov edx, 0xffffffff
mov rcx, rax
call fcn.18012ab60
mov dword [rbp - 0x28], eax
mov ecx, eax
not ecx
add ecx, ecx
xor ecx, eax
mov dword [rbp - 0x50], ecx
mov rcx, r12
sub rdi, rbx
je 0x1800afae6
nop dword [rax]
mov rax, rcx
and eax, 3
movzx eax, byte [rbp + rax - 0x50]
xor byte [rbx + rcx], al
inc rcx
cmp rcx, rdi
jb 0x1800afad0
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x58], xmm0
movups xmmword [rbp + 0x68], xmm0
movups xmmword [rbp + 0x78], xmm0
mov qword [rbp + 0x88], rax
mov rcx, qword [rsi + 8]
mov eax, dword [rcx + 0x18]
mov dword [rsp + 0x28], eax
mov eax, dword [rcx + 0x1c]
mov dword [rsp + 0x2c], eax
mov eax, dword [r15 + 0x40]
mov dword [rsp + 0x30], eax
lea rdx, [rbp - 0x48]
lea rcx, [rsp + 0x38]
call fcn.1800af630
mov eax, dword [rbp - 0x28]
mov dword [rsp + 0x58], eax
call fcn.18012aaa0
mov r8, rax
lea rdx, [rsp + 0x28]
lea rcx, [rbp + 0x58]
call fcn.1800ed860
nop
lea rcx, [rsp + 0x38]
call fcn.1800aff90
xor edx, edx
mov rcx, qword [rsi]
call fcn.1801c2890
mov rdx, qword [rsi + 8]
mov ecx, dword [rdx + 0x18]
mov dword [rbp - 0x78], ecx
mov ecx, dword [rdx + 0x1c]
mov dword [rbp - 0x74], ecx
mov rax, qword [rax + 8]
mov qword [rsp + 0x78], rax
mov rbx, qword [0x1802b1eb8]
test rbx, rbx
jne 0x1800afc27
mov ecx, 0xb0
call fcn.1801e60b0
mov rbx, rax
mov qword [rbp - 0x50], rax
test rax, rax
je 0x1800afc1d
xor edx, edx
mov r8d, 0xb0
mov rcx, rax
call fcn.18020be10
mov qword [rbx], r12
mov qword [rbx + 8], r12
mov qword [rbx + 0x10], r12
mov qword [rbx + 0x18], r12
mov qword [rbx + 0x20], r12
mov qword [rbx + 0x28], r12
mov qword [rbx + 0x30], r12
mov qword [rbx + 0x38], r12
mov qword [rbx + 0x40], r12
mov qword [rbx + 0x48], r12
mov qword [rbx + 0x50], r12
mov qword [rbx + 0x58], r12
mov qword [rbx + 0x60], r12
mov qword [rbx + 0x68], r12
mov qword [rbx + 0x70], r12
mov qword [rbx + 0x78], r12
mov qword [rbx + 0x80], r12
mov qword [rbx + 0x88], r12
mov qword [rbx + 0x90], r12
mov qword [rbx + 0x98], r12
mov qword [rbx + 0xa0], r12
mov dword [rbx + 0xa8], r12d
mov byte [rbx + 0xac], 0
jmp 0x1800afc20
mov rbx, r12
mov qword [0x1802b1eb8], rbx
mov qword [rbp - 0x80], rbx
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp], xmm0
movups xmmword [rbp + 0x10], xmm0
movups xmmword [rbp + 0x20], xmm0
mov qword [rbp + 0x30], rax
lea rdx, [rsp + 0x78]
lea rcx, [rbp]
call fcn.1800e2c30
nop
xorps xmm0, xmm0
movups xmmword [rbp + 0xd0], xmm0
movups xmmword [rbp + 0xe0], xmm0
movups xmmword [rbp + 0xf0], xmm0
movups xmmword [rbp + 0x100], xmm0
lea r8, [rbp + 0x58]
lea rdx, [rbp]
lea rcx, [rbp + 0xd0]
call fcn.1800e2b20
nop
mov r8, r13
lea rdx, [rbp + 0x90]
lea rcx, [rbp + 0xd0]
call fcn.1800e2ef0
mov ebx, eax
lea rcx, [rbp + 0xd8]
call fcn.1800aff90
nop
mov rcx, qword [rbp]
test rcx, rcx
je 0x1800afceb
mov rdx, qword [rbp + 0x10]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800afcd9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800afd52
call fcn.1801e60f0
nop
mov qword [rbp], r12
xorps xmm0, xmm0
movdqu xmmword [rbp + 8], xmm0
lea rcx, [rbp + 0x58]
call fcn.1800aff90
nop
lea rcx, [rbp - 0x48]
call fcn.1800aff90
nop
lea rcx, [rbp - 0x70]
call fcn.1800aff90
nop
mov byte [rbp - 0x20], 0
mov rcx, qword [r14 + 0x38]
test rcx, rcx
je 0x1800afd2d
mov rax, qword [rcx]
cmp rcx, r14
setne dl
mov rax, qword [rax + 0x20]
call qword [case.0x18009ccb8.0]
mov qword [r14 + 0x38], r12
mov eax, ebx
mov rcx, qword [rbp + 0x110]
xor rcx, rsp
call fcn.1801e67e0
add rsp, 0x228
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.18010f960
nop
call fcn.1801e7500
int3