Function at 0x180087350
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
mov rax, qword [0x1801772b8]
xor rax, rsp
mov qword [rsp + 0x58], rax
mov r15, qword [rsp + 0xc0]
mov r12, r9
mov r13, qword [rsp + 0xc8]
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
cmp rcx, rdx
je 0x1800873e5
mov r14, r15
cmp r8, 0x10
jb 0x1800873db
mov rbp, r8
shr rbp, 4
imul rax, rbp, 0xfffffffffffffff0
add rdi, rax
nop dword [rax + rax]
mov r8, r12
mov rdx, rbx
mov rcx, rsi
call r13
mov rax, qword [r14]
xor qword [rbx], rax
mov rax, qword [r14 + 8]
mov r14, rsi
xor qword [rbx + 8], rax
add rsi, 0x10
add rbx, 0x10
sub rbp, 1
jne 0x1800873b0
movups xmm0, xmmword [r14]
movups xmmword [r15], xmm0
jmp 0x180087442
cmp rdi, 0x10
jb 0x180087442
mov rbp, rdi
shr rbp, 4
imul rax, rbp, 0xfffffffffffffff0
add rdi, rax
nop dword [rax]
mov r8, r12
lea rdx, [rsp + 0x48]
mov rcx, rsi
call r13
mov rcx, qword [rsi]
mov rax, qword [r15]
xor rax, qword [rsp + 0x48]
mov qword [rbx], rax
mov rax, qword [rsp + 0x50]
xor rax, qword [r15 + 8]
mov qword [r15], rcx
mov rcx, qword [rsi + 8]
add rsi, 0x10
mov qword [rbx + 8], rax
add rbx, 0x10
mov qword [r15 + 8], rcx
sub rbp, 1
jne 0x180087400
test rdi, rdi
je 0x1800875c0
lea rax, [rsp + 0x48]
mov rbp, rsi
sub rax, r15
lea r14, [rsp + 0x4a]
mov qword [rsp + 0x28], rax
sub rbp, r15
dec rax
sub r14, r15
mov qword [rsp + 0x20], rax
add rbp, 2
mov eax, 1
sub rbx, r15
sub rax, r15
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x49]
sub rax, r15
mov qword [rsp + 0x38], rax
mov eax, 2
sub rax, r15
mov qword [rsp + 0x40], rax
add rbx, 2
mov r8, r12
lea rdx, [rsp + 0x48]
mov rcx, rsi
call r13
mov r10, rsi
lea rcx, [r15 - 2]
sub r10, rcx
lea rax, [r15 + 1]
xor r9d, r9d
sub r10, rbx
cmp r9, rdi
jae 0x180087570
mov rcx, qword [rsp + 0x20]
movzx edx, byte [rax + rbp - 3]
movzx ecx, byte [rax + rcx]
xor cl, byte [rax - 1]
mov byte [rax + rbx - 3], cl
mov rcx, rax
sub rcx, r15
mov byte [rax - 1], dl
cmp rcx, rdi
jae 0x18008756d
mov rcx, qword [rsp + 0x28]
lea rdx, [rax + rbx]
movzx r8d, byte [r10 + rdx - 2]
movzx ecx, byte [rax + rcx]
xor cl, byte [rax]
mov byte [rdx - 2], cl
mov rcx, qword [rsp + 0x30]
add rcx, rax
mov byte [rax], r8b
cmp rcx, rdi
jae 0x180087567
mov rcx, qword [rsp + 0x38]
movzx edx, byte [rax + rbp - 1]
movzx ecx, byte [rax + rcx]
xor cl, byte [rax + 1]
mov byte [rax + rbx - 1], cl
mov rcx, qword [rsp + 0x40]
add rcx, rax
mov byte [rax + 1], dl
cmp rcx, rdi
jae 0x180087561
movzx edx, byte [rax + rbp]
add r9, 4
movzx ecx, byte [rax + r14]
xor cl, byte [rax + 2]
mov byte [rax + rbx], cl
mov byte [rax + 2], dl
add rax, 4
cmp r9, 0x10
jb 0x1800874c2
jmp 0x180087570
add r9, 3
jmp 0x180087570
add r9, 2
jmp 0x180087570
inc r9
cmp rdi, 0x10
jbe 0x18008758e
add rsi, 0x10
add rbp, 0x10
add rbx, 0x10
sub rdi, 0x10
jne 0x1800874a0
jmp 0x1800875c0
cmp r9, 0x10
jae 0x1800875c0
sub rsi, r15
lea rcx, [r15 + r9]
mov edx, reloc.WS2_32.dll_recv
sub rdx, r9
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rcx + rsi]
mov byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x1800875b0
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.1800d61c0
mov rbx, qword [rsp + 0xb0]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret