Function at 0x140029e88
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x18], r8
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x60
movzx eax, byte [rdx + 6]
movabs r8, 0xaa00aa00aa00aa
movzx r10d, byte [rdx + 7]
movzx r11d, byte [rdx + 0xf]
shl r10, 8
or r10, rax
shl r11, 8
movzx eax, byte [rdx + 5]
shl r10, 8
or r10, rax
movzx eax, byte [rdx + 4]
shl r10, 8
or r10, rax
movzx eax, byte [rdx + 3]
shl r10, 8
or r10, rax
movzx eax, byte [rdx + 2]
shl r10, 8
or r10, rax
movzx eax, byte [rdx + 1]
shl r10, 8
or r10, rax
movzx eax, byte [rdx]
shl r10, 8
or r10, rax
movzx eax, byte [rdx + 0xe]
or r11, rax
mov rcx, r10
movzx eax, byte [rdx + 0xd]
shr rcx, 7
xor rcx, r10
shl r11, 8
or r11, rax
and rcx, r8
movzx eax, byte [rdx + 0xc]
shl r11, 8
or r11, rax
movzx eax, byte [rdx + 0xb]
shl r11, 8
or r11, rax
movzx eax, byte [rdx + 0xa]
shl r11, 8
or r11, rax
movzx eax, byte [rdx + 9]
shl r11, 8
or r11, rax
movzx eax, byte [rdx + 8]
shl r11, 8
or r11, rax
mov rax, rcx
shl rax, 7
xor rax, rcx
mov rcx, r11
shr rcx, 7
xor r10, rax
xor rcx, r11
and rcx, r8
movabs r8, 0xcccc0000cccc
mov rax, rcx
shl rax, 7
xor rax, rcx
mov rcx, r10
xor r11, rax
shr rcx, 0xe
xor rcx, r10
and rcx, r8
mov rax, rcx
shl rax, 0xe
xor rax, rcx
mov rcx, r11
shr rcx, 0xe
xor r10, rax
xor rcx, r11
and rcx, r8
mov rax, rcx
shl rax, 0xe
xor rax, rcx
mov rcx, r10
shr rcx, 0x1c
xor r11, rax
xor rcx, r10
mov r8d, 0xf0f0f0f0
lea rbx, [rdx + 0xe]
and rcx, r8
mov edi, reloc.WS2_32.dll_recv
mov rax, rcx
shl rax, 0x1c
xor rax, rcx
mov rcx, r11
xor r10, rax
shr rcx, 0x1c
xor rcx, r11
and rcx, r8
mov rax, rcx
shl rax, 0x1c
xor rax, rcx
mov rcx, r10
xor r11, rax
shr rcx, 8
xor rcx, r11
movabs rax, 0xff00ff00ff00ff
and rcx, rax
xor r11, rcx
mov rax, rcx
shl rax, 8
xor r10, rax
movzx r14d, r11w
mov rax, r10
movzx r15d, r10w
shr rax, 0x10
movzx r12d, ax
mov rax, r10
shr rax, 0x20
movzx r13d, ax
mov rax, r11
shr rax, 0x10
movzx esi, ax
mov rax, r11
shr rax, 0x20
movzx ecx, ax
shr r10, 0x30
mov qword [rbp + 0x48], rcx
shr r11, 0x30
lea rbx, [rbx + 0x10]
movabs rdx, 0xaa00aa00aa00aa
movzx eax, byte [rbx - 8]
movzx r9d, byte [rbx - 7]
movzx r8d, byte [rbx + 1]
shl r9, 8
or r9, rax
shl r8, 8
movzx eax, byte [rbx - 9]
shl r9, 8
or r9, rax
movzx eax, byte [rbx - 0xa]
shl r9, 8
or r9, rax
movzx eax, byte [rbx - 0xb]
shl r9, 8
or r9, rax
movzx eax, byte [rbx - 0xc]
shl r9, 8
or r9, rax
movzx eax, byte [rbx - 0xd]
shl r9, 8
or r9, rax
movzx eax, byte [rbx - 0xe]
shl r9, 8
or r9, rax
movzx eax, byte [rbx]
or r8, rax
mov rcx, r9
movzx eax, byte [rbx - 1]
shr rcx, 7
xor rcx, r9
shl r8, 8
or r8, rax
and rcx, rdx
movzx eax, byte [rbx - 2]
shl r8, 8
or r8, rax
movzx eax, byte [rbx - 3]
shl r8, 8
or r8, rax
movzx eax, byte [rbx - 4]
shl r8, 8
or r8, rax
movzx eax, byte [rbx - 5]
shl r8, 8
or r8, rax
movzx eax, byte [rbx - 6]
shl r8, 8
or r8, rax
mov rax, rcx
shl rax, 7
xor rax, rcx
mov rcx, r8
xor r9, rax
shr rcx, 7
xor rcx, r8
and rcx, rdx
movabs rdx, 0xcccc0000cccc
mov rax, rcx
shl rax, 7
xor rax, rcx
mov rcx, r9
xor r8, rax
shr rcx, 0xe
xor rcx, r9
and rcx, rdx
mov rax, rcx
shl rax, 0xe
xor rax, rcx
mov rcx, r8
xor r9, rax
shr rcx, 0xe
xor rcx, r8
and rcx, rdx
mov rax, rcx
shl rax, 0xe
xor rax, rcx
mov rcx, r9
xor r8, rax
shr rcx, 0x1c
xor rcx, r9
mov edx, 0xf0f0f0f0
and rcx, rdx
mov rax, rcx
shl rax, 0x1c
xor rax, rcx
mov rcx, r8
xor r9, rax
shr rcx, 0x1c
xor rcx, r8
and rcx, rdx
mov rax, rcx
shl rax, 0x1c
xor rax, rcx
mov rcx, r9
xor r8, rax
shr rcx, 8
xor rcx, r8
movabs rax, 0xff00ff00ff00ff
and rcx, rax
xor r8, rcx
mov rax, rcx
shl rax, 8
mov ecx, edi
xor r9, rax
add edi, 0x10
movzx eax, r9w
shl rax, cl
or r15, rax
mov rax, r9
shr rax, 0x10
movzx edx, ax
mov rax, r9
shr rax, 0x20
shl rdx, cl
or r12, rdx
shr r9, 0x30
movzx edx, ax
shl rdx, cl
or r13, rdx
movzx eax, r8w
shl rax, cl
or r14, rax
shl r9, cl
mov rax, r8
or r10, r9
shr rax, 0x10
movzx edx, ax
mov rax, r8
shl rdx, cl
shr rax, 0x20
or rsi, rdx
movzx edx, ax
mov rax, qword [rbp + 0x48]
shr r8, 0x30
shl rdx, cl
or rax, rdx
shl r8, cl
or r11, r8
mov qword [rbp + 0x48], rax
mov qword [rbp - 0x18], rax
cmp edi, 0x40
jb 0x14002a06d
xor edi, edi
mov qword [rbp - 0x38], r14
mov r14, qword [rbp + 0x40]
mov ecx, edi
mov qword [rbp - 0x28], rsi
mov rsi, qword [rbp + 0x50]
mov qword [rbp - 0x10], r10
mov qword [rbp - 8], r11
mov qword [rbp - 0x40], r15
mov qword [rbp - 0x30], r12
mov qword [rbp - 0x20], r13
mov rax, qword [rsi + rcx*8]
xor qword [rbp + rcx*8 - 0x40], rax
inc rcx
cmp rcx, 8
jl 0x14002a297
mov eax, dword [rsi + 0x4b0]
lea rbx, [rsi + 0x40]
sub eax, 1
je 0x14002a2d4
mov esi, eax
mov r8, rbx
lea rdx, [rbp - 0x40]
lea rcx, [rbp - 0x40]
call fcn.14002c5ac
add rbx, 0x40
sub rsi, 1
jne 0x14002a2ba
mov r8, rbx
lea rdx, [rbp - 0x40]
lea rcx, [rbp - 0x40]
call fcn.14002ce70
lea r9, [r14 + 0xa]
mov r10d, 0xf0f0f0f0
movabs r11, 0xcccc0000cccc
movabs rbx, 0xaa00aa00aa00aa
mov r8, qword [rbp - 8]
mov ecx, edi
mov rax, qword [rbp - 0x18]
shr rax, cl
shr r8, cl
mov rdx, qword [rbp - 0x10]
shr rdx, cl
movzx eax, ax
shl r8, 0x10
or r8, rax
shl rdx, 0x10
mov rax, qword [rbp - 0x28]
shr rax, cl
movzx eax, ax
shl r8, 0x10
or r8, rax
mov rax, qword [rbp - 0x38]
shr rax, cl
movzx eax, ax
shl r8, 0x10
or r8, rax
mov rax, qword [rbp - 0x20]
shr rax, cl
movzx eax, ax
or rdx, rax
mov rax, qword [rbp - 0x30]
shr rax, cl
movzx eax, ax
shl rdx, 0x10
or rdx, rax
mov rax, qword [rbp - 0x40]
shr rax, cl
movzx eax, ax
shl rdx, 0x10
or rdx, rax
movabs rax, 0xff00ff00ff00ff
mov rcx, rdx
shr rcx, 8
xor rcx, r8
and rcx, rax
xor r8, rcx
mov rax, rcx
shl rax, 8
xor rdx, rax
mov rcx, rdx
shr rcx, 0x1c
xor rcx, rdx
and rcx, r10
mov rax, rcx
shl rax, 0x1c
xor rax, rcx
mov rcx, r8
shr rcx, 0x1c
xor rdx, rax
xor rcx, r8
and rcx, r10
mov rax, rcx
shl rax, 0x1c
xor rax, rcx
mov rcx, rdx
xor r8, rax
shr rcx, 0xe
xor rcx, rdx
and rcx, r11
mov rax, rcx
shl rax, 0xe
xor rax, rcx
mov rcx, r8
xor rdx, rax
shr rcx, 0xe
xor rcx, r8
and rcx, r11
mov rax, rcx
shl rax, 0xe
xor rax, rcx
mov rcx, rdx
shr rcx, 7
xor r8, rax
xor rcx, rdx
and rcx, rbx
mov rax, rcx
shl rax, 7
add edi, 0x10
xor rax, rcx
mov rcx, r8
xor rdx, rax
shr rcx, 7
mov byte [r9 - 0xa], dl
xor rcx, r8
and rcx, rbx
mov rax, rcx
shl rax, 7
xor rax, rcx
xor r8, rax
mov rax, rdx
shr rax, 8
mov byte [r9 - 9], al
mov rax, rdx
shr rax, 0x10
mov byte [r9 - 8], al
mov rax, rdx
shr rax, 0x18
mov byte [r9 - 7], al
mov rax, rdx
shr rax, 0x20
mov byte [r9 - 6], al
mov rax, rdx
shr rax, 0x28
mov byte [r9 - 5], al
mov rax, rdx
shr rax, 0x30
mov byte [r9 - 4], al
mov rax, r8
shr rax, 8
shr rdx, 0x38
mov byte [r9 - 3], dl
mov byte [r9 - 1], al
mov rax, r8
shr rax, 0x10
mov byte [r9], al
mov rax, r8
shr rax, 0x18
mov byte [r9 + 1], al
mov rax, r8
shr rax, 0x20
mov byte [r9 + 2], al
mov rax, r8
shr rax, 0x28
mov byte [r9 + 3], al
mov rax, r8
mov byte [r9 - 2], r8b
lea r9, [r9 + 0x10]
shr rax, 0x30
shr r8, 0x38
mov byte [r9 - 0xc], al
mov byte [r9 - 0xb], r8b
cmp edi, 0x40
jb 0x14002a302
mov rbx, qword [rsp + 0xb8]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret