Function at 0x1400b96e0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbp
push rsi
push r14
push r15
sub rsp, 0x40
xor r15d, r15d
lea rax, [r9 - 1]
mov rbp, rcx
mov qword [rsp + 0x78], r15
movabs rcx, 0x1ffffffffffffffe
mov r14, r9
mov rsi, r8
cmp rax, rcx
ja 0x1400b99c2
mov qword [rsp + 0x68], rdi
xorps xmm0, xmm0
lea rdi, [rbp + 0x180]
movups xmmword [rdi], xmm0
movups xmmword [rbp + 0x190], xmm0
mov byte [rbp + 0x1a0], dl
mov qword [rbp + 0x160], r15
mov qword [rbp + 0x168], r15
cmp r9, 0xc
jne 0x1400b9765
movsd xmm0, qword [r8]
movsd qword [rdi], xmm0
mov eax, dword [r8 + 8]
mov dword [rdi + 8], eax
mov byte [rbp + 0x18f], 1
jmp 0x1400b998c
lea rax, [r9*8]
mov qword [rsp + 0x60], rbx
bswap rax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r15
nop
mov ebx, reloc.WS2_32.dll_recv
mov rax, r15
cmp r14, rbx
cmovb rbx, r14
cmp rbx, 8
jb 0x1400b97c8
mov r8, rdi
mov r9d, 8
sub r8, rsi
mov rdx, rsi
sub r9, rsi
nop word [rax + rax]
mov rcx, qword [rdx]
add rax, 8
xor qword [rdx + r8], rcx
lea rdx, [rdx + 8]
lea rcx, [r9 + rdx]
cmp rcx, rbx
jbe 0x1400b97b0
mov rdx, rbx
sub rdx, rax
cmp rax, rbx
jae 0x1400b9901
cmp rdx, 8
jb 0x1400b98d5
lea r8, [rdi - 1]
lea rcx, [rsi - 1]
add r8, rbx
add rcx, rbx
lea r9, [rax + rdi]
lea r10, [rax + rsi]
cmp r9, rcx
ja 0x1400b9805
cmp r8, r10
jae 0x1400b98d5
cmp r9, r8
jbe 0x1400b98d5
cmp rdx, 0x40
jb 0x1400b989e
mov rcx, rdx
mov r9, rbx
and ecx, 0x3f
sub r9, rcx
lea r8, [r10 + 0x10]
mov r10, rdi
sub r10, rsi
nop
movdqu xmm0, xmmword [r8 + r10 - 0x10]
add rax, 0x40
movdqu xmm1, xmmword [r8 - 0x10]
movdqu xmm2, xmmword [r8 + r10]
lea r8, [r8 + 0x40]
xorps xmm1, xmm0
movdqu xmm0, xmmword [r8 - 0x40]
movdqu xmmword [r8 + r10 - 0x50], xmm1
xorps xmm2, xmm0
movdqu xmm0, xmmword [r8 + r10 - 0x30]
movdqu xmm1, xmmword [r8 - 0x30]
movdqu xmmword [r8 + r10 - 0x40], xmm2
xorps xmm1, xmm0
movdqu xmm0, xmmword [r8 + r10 - 0x20]
movdqu xmmword [r8 + r10 - 0x30], xmm1
movdqu xmm1, xmmword [r8 - 0x20]
xorps xmm1, xmm0
movdqu xmmword [r8 + r10 - 0x20], xmm1
cmp rax, r9
jb 0x1400b9830
cmp rcx, 8
jb 0x1400b98d0
and edx, 7
mov r8, rbx
sub r8, rdx
mov rdx, rdi
lea rcx, [rax + rsi]
sub rdx, rsi
movq xmm1, qword [rdx + rcx]
add rax, 8
movq xmm0, qword [rcx]
lea rcx, [rcx + 8]
xorps xmm1, xmm0
movq qword [rdx + rcx - 8], xmm1
cmp rax, r8
jb 0x1400b98b1
cmp rax, rbx
jae 0x1400b9901
mov r8, rdi
lea rcx, [rax + rsi]
sub r8, rsi
mov rdx, rbx
sub rdx, rax
nop word [rax + rax]
movzx eax, byte [rcx]
xor byte [r8 + rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x1400b98f0
movzx eax, byte [rbp + 0x1a1]
test al, al
je 0x1400b9924
cmp al, 2
jne 0x1400b9933
lea r8, [rbp + 0xe0]
mov rdx, rdi
mov rcx, rdi
call fcn.1400c0550
jmp 0x1400b9933
lea r8, [rbp + 0x60]
mov rdx, rdi
mov rcx, rdi
call fcn.1400b8e50
add rsi, rbx
sub r14, rbx
jne 0x1400b9780
mov rbx, qword [rsp + 0x60]
lea r8, [rsp + 0x30]
mov r9d, reloc.WS2_32.dll_recv
mov rdx, rdi
mov rcx, rdi
call fcn.140081ae0
movzx eax, byte [rbp + 0x1a1]
test al, al
je 0x1400b997d
cmp al, 2
jne 0x1400b998c
lea r8, [rbp + 0xe0]
mov rdx, rdi
mov rcx, rdi
call fcn.1400c0550
jmp 0x1400b998c
lea r8, [rbp + 0x60]
mov rdx, rdi
mov rcx, rdi
call fcn.1400b8e50
lea rax, [rsp + 0x78]
mov r8d, reloc.WS2_32.dll_recv
lea r9, [rbp + 0x170]
mov qword [rsp + 0x20], rax
mov rdx, rdi
mov rcx, rbp
call fcn.140094e70
mov rdi, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
add rsp, 0x40
pop r15
pop r14
pop rsi
ret
mov rbp, qword [rsp + 0x70]
mov eax, 0xffffffec
add rsp, 0x40
pop r15
pop r14
pop rsi
ret