Function at 0x18000c520
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
push r14
push r15
sub rsp, 0x78
mov rax, qword [0x1800e1080]
xor rax, rsp
mov qword [rsp + 0x40], rax
cmp dword [rcx], 0
mov rsi, r9
mov r15d, r8d
mov qword [rsp + 0x28], rcx
mov rbx, rdx
mov r14, rcx
jne 0x18000c913
cmp dword [rcx + 8], 0
jne 0x18000c913
test rdx, rdx
je 0x18000c90c
test r8d, r8d
jle 0x18000c90c
mov ecx, dword [rcx + 4]
mov qword [rsp + 0x70], rbp
mov ebp, r8d
shr ebp, 4
mov qword [rsp + 0x68], rdi
test ecx, ecx
je 0x18000c89c
cmp ecx, 1
je 0x18000c5b7
mov eax, 0xffffffff
mov rbp, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.180088650
add rsp, 0x78
pop r15
pop r14
pop rsi
pop rbx
ret
lea rdx, [r14 + 0xc]
mov edi, ebp
test ebp, ebp
je 0x18000c608
mov eax, dword [rbx]
mov r8, rsi
xor eax, dword [rdx]
mov rcx, r14
mov dword [rsp + 0x30], eax
mov eax, dword [rbx + 4]
xor eax, dword [rdx + 4]
mov dword [rsp + 0x34], eax
mov eax, dword [rbx + 8]
xor eax, dword [rdx + 8]
mov dword [rsp + 0x38], eax
mov eax, dword [rbx + 0xc]
xor eax, dword [rdx + 0xc]
lea rdx, [rsp + 0x30]
mov dword [rsp + 0x3c], eax
call fcn.18000cbb0
mov rdx, rsi
add rbx, 0x10
add rsi, 0x10
dec edi
test edi, edi
jg 0x18000c5c1
shl ebp, 4
xor r11d, r11d
mov r10d, ebp
sub r10d, r15d
mov r15d, sendto
add r10d, 0x10
mov r8d, r15d
sub r8d, r10d
test r8d, r8d
jle 0x18000c74b
cmp r8d, 0x40
jb 0x18000c74b
lea eax, [r8 - 1]
movsxd rcx, eax
lea r9, [rsp + 0x30]
add r9, rcx
lea rdi, [rsp + 0x30]
lea rax, [rcx + rdx]
cmp rdi, rax
ja 0x18000c65d
cmp r9, rdx
jae 0x18000c74b
lea rax, [rcx + rbx]
lea rcx, [rsp + 0x30]
cmp rcx, rax
ja 0x18000c674
cmp r9, rbx
jae 0x18000c74b
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x58], r13
mov ecx, r8d
and ecx, 0x8000003f
jge 0x18000c690
dec ecx
or ecx, 0xffffffc0
inc ecx
mov eax, r8d
lea rdi, [rsp + 0x30]
sub eax, ecx
lea r12, [rsp + 0x40]
mov r9, rbx
cdqe
lea r13, [rsp + 0x50]
mov qword [rsp + 0x20], rax
sub r9, rdx
lea rcx, [rdx + 0x10]
sub rdi, rdx
sub r12, rdx
sub r13, rdx
mov r14, 0xfffffffffffffff0
sub r14, rdx
nop dword [rax + rax]
movdqu xmm0, xmmword [rcx - 0x10]
add r11d, 0x40
movdqu xmm1, xmmword [r9 + rcx - 0x10]
movdqu xmm2, xmmword [r9 + rcx]
lea rcx, [rcx + 0x40]
pxor xmm1, xmm0
lea rax, [r14 + rcx]
movdqu xmm0, xmmword [rcx - 0x40]
movdqu xmmword [rdi + rcx - 0x50], xmm1
pxor xmm2, xmm0
movdqu xmm0, xmmword [rcx - 0x30]
movdqu xmm1, xmmword [r9 + rcx - 0x30]
movdqu xmmword [rdi + rcx - 0x40], xmm2
pxor xmm1, xmm0
movdqu xmm0, xmmword [rcx - 0x20]
movdqu xmm2, xmmword [r9 + rcx - 0x20]
movdqu xmmword [r12 + rcx - 0x40], xmm1
pxor xmm2, xmm0
movdqu xmmword [rcx + r13 - 0x40], xmm2
cmp rax, qword [rsp + 0x20]
jl 0x18000c6d0
mov r14, qword [rsp + 0x28]
mov r13, qword [rsp + 0x58]
mov r12, qword [rsp + 0x60]
movsxd rax, r11d
movsxd rdi, r8d
cmp rax, rdi
jge 0x18000c784
lea r11, [rsp + 0x30]
sub rbx, rdx
sub r11, rdx
lea rcx, [rax + rdx]
mov r9, rdi
sub r9, rax
nop dword [rax + rax]
movzx eax, byte [rcx + rbx]
xor al, byte [rcx]
mov byte [rcx + r11], al
lea rcx, [rcx + 1]
sub r9, 1
jne 0x18000c770
cmp r8d, r15d
jge 0x18000c861
cmp r10d, 0x40
jb 0x18000c861
lea rcx, [rsp + 0x30]
add rcx, rdi
lea rax, [rdx + 0xf]
lea r9, [rdi + rdx]
cmp rcx, rax
ja 0x18000c7ba
lea rax, [rsp + 0x3f]
cmp rax, r9
jae 0x18000c861
movsx eax, r10b
movd xmm2, eax
punpcklbw xmm2, xmm2
punpcklwd xmm2, xmm2
pshufd xmm2, xmm2, 0
mov eax, r10d
and eax, 0x8000003f
jge 0x18000c7e0
dec eax
or eax, 0xffffffc0
inc eax
sub r15d, eax
lea rcx, [rdi + 0x20]
lea r9, [rsp + 0x30]
movsxd r15, r15d
lea r11, [rsp + 0x40]
add rcx, rdx
sub r9, rdx
sub r11, rdx
mov rbx, 0xffffffffffffffe0
sub rbx, rdx
nop word [rax + rax]
movdqu xmm0, xmmword [rcx - 0x20]
add r8d, 0x40
movdqu xmm1, xmmword [rcx - 0x10]
lea rcx, [rcx + 0x40]
pxor xmm0, xmm2
lea rax, [rbx + rcx]
pxor xmm1, xmm2
movdqu xmmword [r9 + rcx - 0x60], xmm0
movdqu xmm0, xmmword [rcx - 0x40]
movdqu xmmword [r11 + rcx - 0x60], xmm1
pxor xmm0, xmm2
movdqu xmm1, xmmword [rcx - 0x30]
movdqu xmmword [rcx + r9 - 0x40], xmm0
pxor xmm1, xmm2
movdqu xmmword [rcx + r11 - 0x40], xmm1
cmp rax, r15
jl 0x18000c810
movsxd r8, r8d
cmp r8, 0x10
jge 0x18000c8f4
lea rax, [rsp + 0x30]
sub rdx, rax
nop word [rax + rax]
lea rcx, [rsp + 0x30]
movzx eax, r10b
add rcx, r8
inc r8
xor al, byte [rdx + rcx]
mov byte [rcx], al
cmp r8, 0x10
jl 0x18000c880
jmp 0x18000c8f4
mov edi, ebp
test ebp, ebp
je 0x18000c8be
mov r8, rsi
mov rdx, rbx
mov rcx, r14
call fcn.18000cbb0
add rbx, 0x10
add rsi, 0x10
dec edi
test edi, edi
jg 0x18000c8a2
shl ebp, 4
lea rcx, [rsp + 0x30]
mov edi, ebp
mov rdx, rbx
sub edi, r15d
mov r15d, sendto
add edi, 0x10
sub r15d, edi
movsxd r8, r15d
call fcn.18008b270
movsxd r8, edi
lea rcx, [rsp + 0x40]
sub rcx, r8
mov edx, edi
call fcn.18008b920
mov r8, rsi
lea rdx, [rsp + 0x30]
mov rcx, r14
call fcn.18000cbb0
lea eax, [rbp + 0x10]
jmp 0x18000c595
xor eax, eax
jmp 0x18000c59f
mov eax, 0xfffffffb
jmp 0x18000c59f