Function at 0x1400aa920
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
mov rdi, rdx
mov rbx, rcx
test rdx, rdx
je 0x1400aad74
mov dword [rcx + 0x3cc], 0x20
mov dword [rcx + 0x3d0], reloc.WS2_32.dll_recv
movups xmm0, xmmword [r8]
movups xmmword [rcx + 0x3d8], xmm0
movups xmm0, xmmword [r8]
movups xmmword [rcx + 0x3f8], xmm0
mov eax, dword [rcx + 0x3cc]
mov ecx, dword [rcx + 0x3d0]
cmp eax, 0x10
je 0x1400aa99d
cmp eax, 0x18
mov eax, recv
jne 0x1400aa9b7
mov edx, recv
cmp ecx, 0x20
cmovne eax, edx
jmp 0x1400aa9b7
cmp ecx, 0x10
jne 0x1400aa9a7
lea eax, [rcx - 6]
jmp 0x1400aa9b7
mov eax, recv
mov edx, recv
cmp ecx, 0x18
cmove eax, edx
mov dword [rbx + 0x3d4], eax
mov eax, ecx
cdq
and edx, 3
add eax, edx
sar eax, 2
movsxd r15, eax
xor ebp, ebp
mov ecx, dword [rbx + 0x3d4]
test ecx, ecx
js 0x1400aaa06
lea rsi, [rbx + 0xc]
nop dword [rax + rax]
test r15d, r15d
jle 0x1400aa9f6
mov r8, r15
shl r8, 2
xor edx, edx
mov rcx, rsi
call fcn.14007c9b0
inc ebp
add rsi, 0x20
mov ecx, dword [rbx + 0x3d4]
cmp ebp, ecx
jle 0x1400aa9e0
xor esi, esi
test ecx, ecx
js 0x1400aaa39
lea rbp, [rbx + 0x1ec]
test r15d, r15d
jle 0x1400aaa29
mov r8, r15
shl r8, 2
xor edx, edx
mov rcx, rbp
call fcn.14007c9b0
inc esi
add rbp, 0x20
mov ecx, dword [rbx + 0x3d4]
cmp esi, ecx
jle 0x1400aaa13
lea esi, [rcx + 1]
imul esi, r15d
mov eax, dword [rbx + 0x3cc]
cdq
and edx, 3
add eax, edx
sar eax, 2
movsxd r12, eax
lea rdx, [rbx + 0x418]
test eax, eax
jle 0x1400aaa94
mov r8d, r12d
movzx ecx, byte [rdi]
shl ecx, 0x18
mov dword [rdx], ecx
movzx eax, byte [rdi + 1]
shl eax, 0x10
or eax, ecx
mov dword [rdx], eax
movzx ecx, byte [rdi + 2]
shl ecx, 8
or ecx, eax
mov dword [rdx], ecx
movzx eax, byte [rdi + 3]
or eax, ecx
mov dword [rdx], eax
lea rdi, [rdi + 4]
lea rdx, [rdx + 4]
sub r8, 1
jne 0x1400aaa60
xor r10d, r10d
lea r13, [0x140000000]
test r12d, r12d
jle 0x1400aaaf9
xor r11d, r11d
lea r9, [rbx + 0x418]
nop dword [rax]
cmp r10d, esi
jge 0x1400aac1c
mov eax, r10d
cdq
idiv r15d
movsxd r8, edx
movsxd rcx, eax
lea rdx, [r8 + rcx*8]
mov ecx, dword [r9]
mov dword [rbx + rdx*4 + 0xc], ecx
mov ecx, dword [rbx + 0x3d4]
sub ecx, eax
movsxd rax, ecx
lea rcx, [r8 + rax*8]
mov eax, dword [r9]
mov dword [rbx + rcx*4 + 0x1ec], eax
inc r11
add r9, 4
inc r10d
cmp r11, r12
jl 0x1400aaab0
cmp r10d, esi
jge 0x1400aac1c
lea r13, [0x1400c4970]
lea r11, [0x140000000]
mov r8d, dword [rbx + r12*4 + 0x414]
movsxd rdx, r8d
mov rax, rdx
sar rax, 0x10
movzx ecx, al
movsx r9d, byte [rcx + r11 + 0xc7a90]
movsx eax, byte [r13]
xor r9d, eax
shl r9d, 8
mov rax, rdx
sar rax, 8
movzx ecx, al
movzx eax, byte [rcx + r11 + 0xc7a90]
xor r9d, eax
shl r9d, 8
movzx eax, dl
movzx eax, byte [rax + r11 + 0xc7a90]
xor r9d, eax
shl r9d, 8
mov eax, r8d
shr rax, 0x18
movzx eax, byte [rax + r11 + 0xc7a90]
xor r9d, eax
xor dword [rbx + 0x418], r9d
lea r13, [r13 + 1]
cmp r12d, 8
je 0x1400aacc1
cmp r12, 1
jle 0x1400aabb0
lea rcx, [rbx + 0x41c]
lea rdx, [r12 - 1]
mov eax, dword [rcx - 4]
xor dword [rcx], eax
lea rcx, [rcx + 4]
sub rdx, 1
jne 0x1400aaba1
test r12d, r12d
jle 0x1400aac0c
lea r9, [rbx + 0x418]
xor r11d, r11d
nop
cmp r10d, esi
jge 0x1400aac15
mov eax, r10d
cdq
idiv r15d
movsxd r8, edx
movsxd rcx, eax
lea rdx, [r8 + rcx*8]
mov ecx, dword [r9]
mov dword [rbx + rdx*4 + 0xc], ecx
mov ecx, dword [rbx + 0x3d4]
sub ecx, eax
movsxd rax, ecx
lea rcx, [r8 + rax*8]
mov eax, dword [r9]
mov dword [rbx + rcx*4 + 0x1ec], eax
inc r11
add r9, 4
inc r10d
cmp r11, r12
jl 0x1400aabc0
lea r11, [0x140000000]
cmp r10d, esi
jl 0x1400aab10
lea r13, [0x140000000]
mov edi, 1
cmp dword [rbx + 0x3d4], edi
jle 0x1400aac9f
lea rsi, [rbx + 0x20c]
test r15d, r15d
jle 0x1400aac91
mov r10, rsi
mov r11, r15
nop dword [rax + rax]
mov eax, dword [r10]
movsxd r9, eax
mov edx, eax
shr rdx, 0x18
mov rax, r9
sar rax, 0x10
movzx ecx, al
mov r8d, dword [r13 + rdx*4 + 0xc5590]
xor r8d, dword [r13 + rcx*4 + 0xc5190]
mov rax, r9
sar rax, 8
movzx ecx, al
xor r8d, dword [r13 + rcx*4 + 0xc4d90]
movzx eax, r9b
xor r8d, dword [r13 + rax*4 + 0xc4990]
mov dword [r10], r8d
lea r10, [r10 + 4]
sub r11, 1
jne 0x1400aac40
inc edi
add rsi, 0x20
cmp edi, dword [rbx + 0x3d4]
jl 0x1400aac30
mov byte [rbx + 8], 1
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
lea rcx, [rbx + 0x41c]
mov edx, 3
nop dword [rax]
mov eax, dword [rcx - 4]
xor dword [rcx], eax
lea rcx, [rcx + 4]
sub rdx, 1
jne 0x1400aacd0
mov eax, dword [rbx + 0x424]
movsxd rdx, eax
mov ecx, eax
shr rcx, 0x18
movsx r8d, byte [rcx + r11 + 0xc7a90]
shl r8d, 8
mov rax, rdx
sar rax, 0x10
movzx ecx, al
movzx eax, byte [rcx + r11 + 0xc7a90]
xor r8d, eax
shl r8d, 8
mov rax, rdx
sar rax, 8
movzx ecx, al
movzx eax, byte [rcx + r11 + 0xc7a90]
xor r8d, eax
shl r8d, 8
movzx eax, dl
movzx eax, byte [rax + r11 + 0xc7a90]
xor r8d, eax
xor dword [rbx + 0x428], r8d
cmp r12, 5
jle 0x1400aabb0
lea rax, [rbx + 0x42c]
lea rdx, [r12 - 5]
nop dword [rax + rax]
mov ecx, dword [rax - 4]
xor dword [rax], ecx
lea rax, [rax + 4]
sub rdx, 1
jne 0x1400aad60
jmp 0x1400aabb5
lea rdx, [0x1400c9670]
lea rcx, [rsp + 0x38]
call fcn.1400aa7d0
nop
mov rcx, rax
call fcn.1400109f0
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.1400126d0
lea rdx, [0x1400d1438]
lea rcx, [rsp + 0x20]
call fcn.14007cb40
int3