Function at 0x140055600
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x10
movdqa xmmword [rsp], xmm6
movsxd r8, dword [rcx + 8]
movsxd rax, dword [rdx + 8]
cmp r8d, eax
jge 0x140055633
mov r9, qword [rdx]
mov r11, rax
sub r11, r8
cmp r11, 4
jae 0x14005563b
xor r10d, r10d
mov rsi, r8
jmp 0x140055740
xor r10d, r10d
jmp 0x14005574c
lea rdi, [r11 - 4]
mov rsi, rdi
shr rsi, 2
inc rsi
mov r10d, esi
and r10d, 3
cmp rdi, 0xc
jae 0x140055662
pxor xmm0, xmm0
xor edi, edi
pxor xmm1, xmm1
jmp 0x1400556d9
and rsi, 0xfffffffffffffffc
lea rbx, [r9 + r8*8]
add rbx, 0x70
pxor xmm0, xmm0
xor edi, edi
pxor xmm1, xmm1
nop dword [rax + rax]
movdqu xmm2, xmmword [rbx + rdi*8 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [rbx + rdi*8 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [rbx + rdi*8 - 0x50]
movdqu xmm3, xmmword [rbx + rdi*8 - 0x40]
movdqu xmm4, xmmword [rbx + rdi*8 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [rbx + rdi*8 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [rbx + rdi*8 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [rbx + rdi*8]
por xmm1, xmm2
add rdi, 0x10
add rsi, 0xfffffffffffffffc
jne 0x140055680
mov rsi, r11
and rsi, 0xfffffffffffffffc
test r10, r10
je 0x14005571c
add rdi, r8
lea rdi, [r9 + rdi*8]
add rdi, 0x10
shl r10, 5
xor ebx, ebx
nop word cs:[rax + rax]
movdqu xmm2, xmmword [rdi + rbx - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [rdi + rbx]
por xmm1, xmm2
add rbx, 0x20
cmp r10, rbx
jne 0x140055700
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq r10, xmm1
cmp r11, rsi
je 0x14005574c
add rsi, r8
nop word cs:[rax + rax]
or r10, qword [r9 + rsi*8]
inc rsi
cmp rax, rsi
jne 0x140055740
cmp eax, r8d
jge 0x14005587c
mov r9, qword [rcx]
mov r11, r8
sub r11, rax
cmp r11, 4
jae 0x14005576c
mov rsi, rax
jmp 0x140055870
movq xmm0, r10
lea rdi, [r11 - 4]
mov rsi, rdi
shr rsi, 2
inc rsi
mov r10d, esi
and r10d, 3
cmp rdi, 0xc
jae 0x140055794
pxor xmm1, xmm1
xor edi, edi
jmp 0x140055809
and rsi, 0xfffffffffffffffc
lea rbx, [r9 + rax*8]
add rbx, 0x70
pxor xmm1, xmm1
xor edi, edi
nop word cs:[rax + rax]
movdqu xmm2, xmmword [rbx + rdi*8 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [rbx + rdi*8 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [rbx + rdi*8 - 0x50]
movdqu xmm3, xmmword [rbx + rdi*8 - 0x40]
movdqu xmm4, xmmword [rbx + rdi*8 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [rbx + rdi*8 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [rbx + rdi*8 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [rbx + rdi*8]
por xmm1, xmm2
add rdi, 0x10
add rsi, 0xfffffffffffffffc
jne 0x1400557b0
mov rsi, r11
and rsi, 0xfffffffffffffffc
test r10, r10
je 0x14005584c
add rdi, rax
lea rdi, [r9 + rdi*8]
add rdi, 0x10
shl r10, 5
xor ebx, ebx
nop word cs:[rax + rax]
movdqu xmm2, xmmword [rdi + rbx - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [rdi + rbx]
por xmm1, xmm2
add rbx, 0x20
cmp r10, rbx
jne 0x140055830
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq r10, xmm1
cmp r11, rsi
je 0x14005587c
add rsi, rax
nop word cs:[rax + rax]
or r10, qword [r9 + rsi*8]
inc rsi
cmp r8, rsi
jne 0x140055870
cmp r8d, eax
cmovl eax, r8d
test eax, eax
jle 0x1400559a3
mov r8, qword [rcx]
mov r9, qword [rdx]
mov r11d, eax
cmp eax, 4
jae 0x1400558a0
xor eax, eax
jmp 0x140055990
mov eax, r11d
and eax, 0xfffffffc
movq xmm0, r10
lea r10, [r11 - 4]
mov rsi, r10
shr rsi, 2
inc rsi
cmp r10, 4
jae 0x1400558c8
pxor xmm1, xmm1
xor r10d, r10d
jmp 0x140055940
mov rdi, rsi
and rdi, 0xfffffffffffffffe
pxor xmm1, xmm1
xor r10d, r10d
nop word cs:[rax + rax]
movdqu xmm2, xmmword [r8 + r10*8]
movdqu xmm3, xmmword [r8 + r10*8 + 0x10]
movdqu xmm4, xmmword [r8 + r10*8 + 0x20]
movdqu xmm5, xmmword [r8 + r10*8 + 0x30]
movdqu xmm6, xmmword [r9 + r10*8]
pxor xmm6, xmm2
por xmm6, xmm0
movdqu xmm2, xmmword [r9 + r10*8 + 0x10]
pxor xmm2, xmm3
por xmm2, xmm1
movdqu xmm0, xmmword [r9 + r10*8 + 0x20]
pxor xmm0, xmm4
por xmm0, xmm6
movdqu xmm1, xmmword [r9 + r10*8 + 0x30]
pxor xmm1, xmm5
por xmm1, xmm2
add r10, 8
add rdi, 0xfffffffffffffffe
jne 0x1400558e0
test sil, 1
je 0x140055970
movdqu xmm2, xmmword [r8 + r10*8]
movdqu xmm3, xmmword [r8 + r10*8 + 0x10]
movdqu xmm4, xmmword [r9 + r10*8]
pxor xmm4, xmm2
por xmm0, xmm4
movdqu xmm2, xmmword [r9 + r10*8 + 0x10]
pxor xmm2, xmm3
por xmm1, xmm2
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq r10, xmm1
cmp rax, r11
je 0x1400559a3
nop word [rax + rax]
mov rsi, qword [r9 + rax*8]
xor rsi, qword [r8 + rax*8]
or r10, rsi
inc rax
cmp r11, rax
jne 0x140055990
mov eax, dword [rdx + 0x10]
xor eax, dword [rcx + 0x10]
movsxd rcx, eax
xor eax, eax
or rcx, r10
sete al
movaps xmm6, xmmword [rsp]
add rsp, 0x10
pop rbx
pop rdi
pop rsi
ret