Function at 0x18002f420
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
push r13
push r14
sub rsp, 0x20
xor edi, edi
lea r12, [0x1800d9b41]
movzx esi, r9b
mov rbp, r8
mov r9, rdx
mov rbx, rcx
mov r11, r12
mov r10d, edi
mov r8d, edi
nop dword [rax]
movzx ecx, r10b
mov rax, r8
add r11, 2
sar rax, 3
and cl, 7
movzx edx, byte [rax + r9]
lea rax, [r8 + 1]
add r8, 2
sar dl, cl
sar rax, 3
lea ecx, [r10 + 1]
and dl, 1
and cl, 7
add r10d, 2
mov byte [r11 - 3], dl
movzx eax, byte [rax + r9]
sar al, cl
and al, 1
mov byte [r11 - 2], al
cmp r10d, 0x40
jl 0x18002f460
mov rcx, rdi
lea r14, [0x180000000]
lea r13, [0x1800d9b40]
nop dword [rax + rax]
movsx rax, byte [rcx + r14 + 0xa84d0]
add rcx, 4
movzx eax, byte [rax + r13 - 1]
mov byte [rcx + r14 + 0xd59cc], al
movsx rax, byte [rcx + r14 + 0xa84cd]
movzx eax, byte [rax + r13 - 1]
mov byte [rcx + r14 + 0xd59cd], al
movsx rax, byte [rcx + r14 + 0xa84ce]
movzx eax, byte [rax + r13 - 1]
mov byte [rcx + r14 + 0xd59ce], al
movsx rax, byte [rcx + r14 + 0xa84cf]
movzx eax, byte [rax + r13 - 1]
mov byte [rcx + r14 + 0xd59cf], al
cmp rcx, 0x40
jl 0x18002f4c0
mov rax, qword [0x1800d59d0]
mov qword [0x1800d9b40], rax
mov rax, qword [0x1800d59d8]
mov qword [0x1800d9b48], rax
mov rax, qword [0x1800d59e0]
mov qword [0x1800d9b50], rax
mov rax, qword [0x1800d59e8]
mov qword [0x1800d9b58], rax
mov rax, qword [0x1800d59f0]
mov qword [0x1800d9b60], rax
mov rax, qword [0x1800d59f8]
mov qword [0x1800d9b68], rax
mov rax, qword [0x1800d5a00]
mov qword [0x1800d9b70], rax
mov rax, qword [0x1800d5a08]
mov qword [0x1800d9b78], rax
test sil, sil
jne 0x18002f631
mov esi, reloc.WS2_32.dll_recv
nop word [rax + rax]
movups xmm0, xmmword [0x1800d9b60]
movups xmm1, xmmword [0x1800d9b70]
lea rcx, [0x1800d9b60]
mov rdx, rbp
movups xmmword [0x1800d9bc0], xmm0
movups xmmword [0x1800d9bd0], xmm1
call fcn.18002fb40
mov r11, rdi
nop
movzx eax, byte [r11 + r13]
add r11, 4
xor byte [r11 + r13 + 0x1c], al
movzx eax, byte [r11 + r13 - 3]
xor byte [r11 + r13 + 0x1d], al
movzx eax, byte [r11 + r13 - 2]
xor byte [r11 + r13 + 0x1e], al
movzx eax, byte [r11 + r13 - 1]
xor byte [r11 + r13 + 0x1f], al
cmp r11, 0x20
jl 0x18002f5e0
add rbp, 0x30
dec rsi
movups xmmword [0x1800d9b40], xmm0
movups xmmword [0x1800d9b50], xmm1
jne 0x18002f5b0
jmp 0x18002f6c0
mov esi, send
add rbp, 0x2d0
nop dword [rax]
movups xmm0, xmmword [0x1800d9b40]
movups xmm1, xmmword [0x1800d9b50]
mov rdx, rbp
mov rcx, r13
movups xmmword [0x1800d9bc0], xmm0
movups xmmword [0x1800d9bd0], xmm1
call fcn.18002fb40
mov r11, rdi
nop word [rax + rax]
movzx eax, byte [r11 + r13 + 0x20]
add r11, 4
xor byte [r11 + r13 - 4], al
movzx eax, byte [r11 + r13 + 0x1d]
xor byte [r11 + r13 - 3], al
movzx eax, byte [r11 + r13 + 0x1e]
xor byte [r11 + r13 - 2], al
movzx eax, byte [r11 + r13 + 0x1f]
xor byte [r11 + r13 - 1], al
cmp r11, 0x20
jl 0x18002f670
sub rbp, 0x30
dec esi
movups xmmword [0x1800d9b60], xmm0
movups xmmword [0x1800d9b70], xmm1
jns 0x18002f640
nop dword [rax]
movsx rax, byte [rdi + r14 + 0xa8510]
add rdi, 4
movzx eax, byte [rax + r13 - 1]
mov byte [rdi + r14 + 0xd59cc], al
movsx rax, byte [rdi + r14 + 0xa850d]
movzx eax, byte [rax + r13 - 1]
mov byte [rdi + r14 + 0xd59cd], al
movsx rax, byte [rdi + r14 + 0xa850e]
movzx eax, byte [rax + r13 - 1]
mov byte [rdi + r14 + 0xd59ce], al
movsx rax, byte [rdi + r14 + 0xa850f]
movzx eax, byte [rax + r13 - 1]
mov byte [rdi + r14 + 0xd59cf], al
cmp rdi, 0x40
jl 0x18002f6c0
mov rax, qword [0x1800d59d0]
mov r8d, 2
mov qword [0x1800d9b40], rax
mov rax, qword [0x1800d59d8]
mov r9d, r8d
mov qword [0x1800d9b48], rax
mov rax, qword [0x1800d59e0]
mov qword [0x1800d9b50], rax
mov rax, qword [0x1800d59e8]
mov qword [0x1800d9b58], rax
mov rax, qword [0x1800d59f0]
mov qword [0x1800d9b60], rax
mov rax, qword [0x1800d59f8]
mov qword [0x1800d9b68], rax
mov rax, qword [0x1800d5a00]
mov qword [0x1800d9b70], rax
mov rax, qword [0x1800d5a08]
mov qword [0x1800d9b78], rax
xor eax, eax
mov qword [rbx], rax
nop word [rax + rax]
movzx eax, byte [r12 - 1]
lea ecx, [r8 - 2]
lea rdx, [r9 - 2]
and ecx, 7
sar rdx, 3
add r12, 4
shl al, cl
lea ecx, [r8 - 1]
or byte [rdx + rbx], al
movzx eax, byte [r12 - 4]
and ecx, 7
shl al, cl
lea rdx, [r9 - 1]
mov ecx, r8d
sar rdx, 3
and ecx, 7
or byte [rdx + rbx], al
movzx eax, byte [r12 - 3]
mov rdx, r9
shl al, cl
sar rdx, 3
lea ecx, [r8 + 1]
or byte [rdx + rbx], al
movzx eax, byte [r12 - 2]
lea rdx, [r9 + 1]
and ecx, 7
sar rdx, 3
add r8d, 4
shl al, cl
add r9, 4
or byte [rdx + rbx], al
lea eax, [r8 - 2]
cmp eax, 0x40
jl 0x18002f7b0
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
add rsp, 0x20
pop r14
pop r13
pop r12
ret