Function at 0x14003b940
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x10
xor r11d, r11d
mov r10, rdx
test cl, 3
jne 0x14003bc2d
test r10b, 3
jne 0x14003bc2d
test r8b, 3
jne 0x14003bc2d
test cl, 7
jne 0x14003babf
test r10b, 7
jne 0x14003babf
test r8b, 7
jne 0x14003babf
mov rdi, r9
mov esi, r11d
shr rdi, 3
test rdi, rdi
je 0x14003baa5
cmp rdi, 8
jb 0x14003ba75
lea rax, [r8 - 8]
lea rax, [rax + rdi*8]
lea rdx, [rcx - 8]
lea rdx, [rdx + rdi*8]
cmp rcx, rax
ja 0x14003b9d5
cmp rdx, r8
jae 0x14003ba75
lea rax, [r10 - 8]
lea rax, [rax + rdi*8]
cmp rcx, rax
ja 0x14003b9eb
cmp rdx, r10
jae 0x14003ba75
mov r14, rdi
and r14, 0xfffffffffffffff8
mov rdx, r10
lea rax, [r8 + 0x10]
sub rdx, r8
mov rbx, rcx
sub rbx, r8
nop dword [rax]
nop word [rax + rax]
movdqu xmm0, xmmword [rax - 0x10]
add rsi, 8
movdqu xmm1, xmmword [rdx + rax - 0x10]
movdqu xmm2, xmmword [rdx + rax]
lea rax, [rax + 0x40]
pxor xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x40]
movdqu xmmword [rbx + rax - 0x50], xmm1
pxor xmm2, xmm0
movdqu xmm0, xmmword [rax - 0x30]
movdqu xmm1, xmmword [rdx + rax - 0x30]
movdqu xmmword [rbx + rax - 0x40], xmm2
pxor xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x20]
movdqu xmm2, xmmword [rdx + rax - 0x20]
movdqu xmmword [rbx + rax - 0x30], xmm1
pxor xmm2, xmm0
movdqu xmmword [rbx + rax - 0x20], xmm2
cmp rsi, r14
jb 0x14003ba10
cmp rsi, rdi
jae 0x14003baa5
mov rbp, r10
lea rdx, [r8 + rsi*8]
mov r14, rcx
sub rbp, r8
sub r14, r8
mov rbx, rdi
sub rbx, rsi
mov rsi, rdi
nop
mov rax, qword [rdx + rbp]
xor rax, qword [rdx]
mov qword [rdx + r14], rax
lea rdx, [rdx + 8]
sub rbx, 1
jne 0x14003ba90
lea rsi, [rsi*8]
sub r9, rsi
je 0x14003bd66
add rcx, rsi
add r10, rsi
add r8, rsi
mov rdi, r9
mov rbx, r11
shr rdi, 2
test rdi, rdi
je 0x14003bc13
cmp rdi, 2
jb 0x14003bbe5
lea rax, [rdi - 1]
lea rax, [r8 + rax*4]
lea rdx, [rdi - 1]
lea rdx, [rcx + rdx*4]
cmp rcx, rax
ja 0x14003bafa
cmp rdx, r8
jae 0x14003bbe5
lea rax, [rdi - 1]
lea rax, [r10 + rax*4]
cmp rcx, rax
ja 0x14003bb10
cmp rdx, r10
jae 0x14003bbe5
cmp rdi, 0x10
jb 0x14003bba6
mov rbp, rdi
mov r14, rdi
and ebp, 0xf
sub r14, rbp
mov rdx, r10
lea rax, [r8 + 0x10]
sub rdx, r8
mov rsi, rcx
sub rsi, r8
nop word [rax + rax]
movdqu xmm0, xmmword [rax - 0x10]
add rbx, 0x10
movdqu xmm1, xmmword [rax + rdx - 0x10]
movdqu xmm2, xmmword [rdx + rax]
lea rax, [rax + 0x40]
pxor xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x40]
movdqu xmmword [rax + rsi - 0x50], xmm1
pxor xmm2, xmm0
movdqu xmm0, xmmword [rax - 0x30]
movdqu xmm1, xmmword [rax + rdx - 0x30]
movdqu xmmword [rsi + rax - 0x40], xmm2
pxor xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x20]
movdqu xmm2, xmmword [rax + rdx - 0x20]
movdqu xmmword [rax + rsi - 0x30], xmm1
pxor xmm2, xmm0
movdqu xmmword [rax + rsi - 0x20], xmm2
cmp rbx, r14
jb 0x14003bb40
cmp rbp, 2
jb 0x14003bbe0
mov rdx, rdi
and rdx, 0xfffffffffffffffe
mov rsi, r10
lea rax, [r8 + rbx*4]
sub rsi, r8
mov rbp, rcx
sub rbp, r8
nop dword [rax]
movq xmm1, qword [rax + rsi]
add rbx, 2
movq xmm0, qword [rax]
lea rax, [rax + 8]
pxor xmm1, xmm0
movq qword [rax + rbp - 8], xmm1
cmp rbx, rdx
jb 0x14003bbc0
cmp rbx, rdi
jae 0x14003bc13
mov rbp, r10
lea rdx, [r8 + rbx*4]
mov r14, rcx
sub rbp, r8
sub r14, r8
mov rsi, rdi
sub rsi, rbx
mov rbx, rdi
nop
mov eax, dword [rdx + rbp]
xor eax, dword [rdx]
mov dword [rdx + r14], eax
lea rdx, [rdx + 4]
sub rsi, 1
jne 0x14003bc00
lea rbx, [rbx*4]
sub r9, rbx
je 0x14003bd66
add rcx, rbx
add r10, rbx
add r8, rbx
test r9, r9
je 0x14003bd66
cmp r9, 8
jb 0x14003bd45
lea rdx, [rcx - 1]
lea rax, [r8 - 1]
add rdx, r9
add rax, r9
cmp rcx, rax
ja 0x14003bc5c
cmp rdx, r8
jae 0x14003bd45
lea rax, [r10 - 1]
add rax, r9
cmp rcx, rax
ja 0x14003bc71
cmp rdx, r10
jae 0x14003bd45
cmp r9, 0x40
jb 0x14003bd06
mov rdi, r9
mov rsi, r9
and edi, 0x3f
sub rsi, rdi
mov rdx, r10
lea rax, [r8 + 0x10]
sub rdx, r8
mov rbx, rcx
sub rbx, r8
nop word [rax + rax]
movdqu xmm0, xmmword [rax - 0x10]
add r11, 0x40
movdqu xmm1, xmmword [rax + rdx - 0x10]
movdqu xmm2, xmmword [rax + rdx]
lea rax, [rax + 0x40]
pxor xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x40]
movdqu xmmword [rax + rbx - 0x50], xmm1
pxor xmm2, xmm0
movdqu xmm0, xmmword [rax - 0x30]
movdqu xmm1, xmmword [rax + rdx - 0x30]
movdqu xmmword [rax + rbx - 0x40], xmm2
pxor xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x20]
movdqu xmm2, xmmword [rax + rdx - 0x20]
movdqu xmmword [rax + rbx - 0x30], xmm1
pxor xmm2, xmm0
movdqu xmmword [rax + rbx - 0x20], xmm2
cmp r11, rsi
jb 0x14003bca0
cmp rdi, 8
jb 0x14003bd40
mov rdx, r9
and rdx, 0xfffffffffffffff8
mov rbx, r10
lea rax, [r11 + r8]
sub rbx, r8
mov rdi, rcx
sub rdi, r8
nop dword [rax]
movq xmm1, qword [rax + rbx]
add r11, 8
movq xmm0, qword [rax]
lea rax, [rax + 8]
pxor xmm1, xmm0
movq qword [rax + rdi - 8], xmm1
cmp r11, rdx
jb 0x14003bd20
cmp r11, r9
jae 0x14003bd66
sub r10, r8
lea rdx, [r11 + r8]
sub rcx, r8
sub r9, r11
movzx eax, byte [rdx + r10]
xor al, byte [rdx]
mov byte [rdx + rcx], al
lea rdx, [rdx + 1]
sub r9, 1
jne 0x14003bd52
mov rbx, qword [rsp + 0x20]
mov rbp, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
add rsp, 0x10
pop r14
ret