Function at 0x140055140
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
test rcx, rcx
je 0x1400551ea
test rdx, rdx
je 0x1400551ea
mov r8d, dword [rcx + 0x10]
cmp r8d, dword [rdx + 0x10]
jne 0x140055203
movsxd rax, dword [rdx + 8]
mov r10, qword [rdx]
movsxd rdx, dword [rcx + 8]
mov r9, qword [rcx]
mov r11, rdx
sub r11, rax
mov rsi, rax
cmovb rsi, rdx
xor ecx, ecx
test rsi, rsi
je 0x1400551d2
xor edi, edi
nop dword [rax]
mov rbx, qword [r10 + rdi*8]
mov r14, qword [r9 + rdi*8]
mov r15, r14
xor r15, rbx
mov r12, r14
sub r12, rbx
xor r12, r14
or r12, r15
xor r12, r14
mov rbx, r12
not rbx
shr rbx, 0x3f
sar r12, 0x3f
mov r14d, r12d
or r14, rbx
mov ecx, ecx
test r15, r15
cmovne rcx, r14
inc rdi
cmp rsi, rdi
jne 0x140055190
cmp edx, eax
jae 0x140055212
mov r9, rax
sub r9, rdx
cmp r9, 4
jae 0x140055228
xor r11d, r11d
jmp 0x140055360
xor r8d, r8d
test rdx, rdx
setne r8b
xor eax, eax
neg rcx
sbb eax, eax
or eax, r8d
jmp 0x140055487
xor eax, eax
neg r8d
sbb eax, eax
or eax, 1
jmp 0x140055487
cmp eax, edx
jae 0x14005547d
cmp r11, 4
jae 0x140055252
xor r10d, r10d
jmp 0x140055460
lea rsi, [r9 - 4]
mov rdi, rsi
shr rdi, 2
inc rdi
mov r11d, edi
and r11d, 3
cmp rsi, 0xc
jae 0x140055280
pxor xmm0, xmm0
xor esi, esi
pxor xmm1, xmm1
jmp 0x1400552f9
lea rsi, [r11 - 4]
mov rdi, rsi
shr rdi, 2
inc rdi
mov r10d, edi
and r10d, 3
cmp rsi, 0xc
jae 0x140055387
pxor xmm0, xmm0
xor esi, esi
pxor xmm1, xmm1
jmp 0x1400553f9
and rdi, 0xfffffffffffffffc
lea rbx, [r10 + rdx*8]
add rbx, 0x70
pxor xmm0, xmm0
xor esi, esi
pxor xmm1, xmm1
nop word cs:[rax + rax]
movdqu xmm2, xmmword [rbx + rsi*8 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [rbx + rsi*8 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [rbx + rsi*8 - 0x50]
movdqu xmm3, xmmword [rbx + rsi*8 - 0x40]
movdqu xmm4, xmmword [rbx + rsi*8 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [rbx + rsi*8 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [rbx + rsi*8 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [rbx + rsi*8]
por xmm1, xmm2
add rsi, 0x10
add rdi, 0xfffffffffffffffc
jne 0x1400552a0
mov rdi, r9
and rdi, 0xfffffffffffffffc
test r11, r11
je 0x14005533c
add rsi, rdx
lea rsi, [r10 + rsi*8]
add rsi, 0x10
shl r11, 5
xor ebx, ebx
nop word cs:[rax + rax]
movdqu xmm2, xmmword [rsi + rbx - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [rsi + rbx]
por xmm1, xmm2
add rbx, 0x20
cmp r11, rbx
jne 0x140055320
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq r11, xmm1
cmp r9, rdi
je 0x14005536c
add rdx, rdi
nop word cs:[rax + rax]
or r11, qword [r10 + rdx*8]
inc rdx
cmp rax, rdx
jne 0x140055360
mov rax, r11
not rax
dec r11
and r11, rax
sar r11, 0x3f
not r11d
or ecx, r11d
jmp 0x14005547d
and rdi, 0xfffffffffffffffc
lea rbx, [r9 + rax*8]
add rbx, 0x70
pxor xmm0, xmm0
xor esi, esi
pxor xmm1, xmm1
nop dword [rax]
movdqu xmm2, xmmword [rbx + rsi*8 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [rbx + rsi*8 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [rbx + rsi*8 - 0x50]
movdqu xmm3, xmmword [rbx + rsi*8 - 0x40]
movdqu xmm4, xmmword [rbx + rsi*8 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [rbx + rsi*8 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [rbx + rsi*8 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [rbx + rsi*8]
por xmm1, xmm2
add rsi, 0x10
add rdi, 0xfffffffffffffffc
jne 0x1400553a0
mov rdi, r11
and rdi, 0xfffffffffffffffc
test r10, r10
je 0x14005543c
add rsi, rax
lea rsi, [r9 + rsi*8]
add rsi, 0x10
shl r10, 5
xor ebx, ebx
nop word cs:[rax + rax]
movdqu xmm2, xmmword [rsi + rbx - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [rsi + rbx]
por xmm1, xmm2
add rbx, 0x20
cmp r10, rbx
jne 0x140055420
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq r10, xmm1
cmp r11, rdi
je 0x14005546c
add rax, rdi
nop word cs:[rax + rax]
or r10, qword [r9 + rax*8]
inc rax
cmp rdx, rax
jne 0x140055460
xor eax, eax
xor edx, edx
test r10, r10
cmove eax, ecx
setne dl
or edx, eax
mov ecx, edx
mov eax, ecx
neg eax
test r8d, r8d
cmove eax, ecx
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret