Function at 0x140020d00
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov r13, rdx
movzx eax, byte [r8 + 0x3b]
movzx r12d, al
test byte [rcx], 4
je 0x140020d8d
test al, al
je 0x140020d8d
cmp r12b, 8
jae 0x140020d30
xor r10d, r10d
jmp 0x140020d80
mov r10d, r12d
and r10d, 0xfffffff8
mov edx, r12d
shr edx, 3
shl rdx, 5
xor r11d, r11d
movdqa xmm0, xmmword [str._a_a_a_a8888]
nop dword [rax]
movdqu xmm1, xmmword [rcx + r11]
movdqu xmm2, xmmword [rcx + r11 + 0x10]
pxor xmm1, xmm0
pxor xmm2, xmm0
movdqu xmmword [rcx + r11], xmm1
movdqu xmmword [rcx + r11 + 0x10], xmm2
add r11, 0x20
cmp rdx, r11
jne 0x140020d50
cmp r10, r12
je 0x140020d8d
xor byte [rcx + r10*4], 7
inc r10
cmp r12, r10
jne 0x140020d80
test r9d, r9d
je 0x140020e7c
movzx r11d, byte [r8 + 0x40]
dec r9d
movsxd rdi, r9d
cmp r11b, 2
jb 0x140020e1d
mov eax, 2
mov r9d, 1
mov rdx, rdi
shl rdx, 6
lea r10, [0x1400bd9c0]
add r10, rdx
jmp 0x140020ddc
movzx edx, r11b
inc rax
cmp r9, rdx
jae 0x140020e1d
mov rsi, r9
inc r9
movzx edx, r11b
cmp r9, rdx
jae 0x140020dd4
mov rdx, rax
jmp 0x140020dfc
inc rdx
movzx ebx, r11b
cmp rdx, rbx
jae 0x140020dd0
movsxd rbx, dword [rcx + rsi*4]
movzx ebp, byte [rbx + r10]
movsxd r14, dword [rcx + rdx*4]
cmp bpl, byte [r14 + r10]
jae 0x140020df0
mov dword [rcx + rsi*4], r14d
mov dword [rcx + rdx*4], ebx
movzx r11d, byte [r8 + 0x40]
jmp 0x140020df0
movzx r9d, r11b
lea rax, [r9 + r9*2]
shl rax, 6
movsxd rdx, dword [rcx]
lea r10, [rdi + rdi*8]
shl rdi, 6
lea rsi, [0x1400bd940]
add rsi, rdi
movzx edx, byte [rdx + rsi]
shl r10, 7
lea rsi, [0x140123960]
add rsi, r10
add rsi, rax
mov rax, qword [rsi + rdx*8 - 0xc0]
mov esi, r9d
cmp r9b, 2
jb 0x140020f38
lea r10, [rsi - 1]
cmp r9d, 2
jne 0x140020e9d
mov ebx, 1
jmp 0x140020f07
test byte [rcx], 0x20
je 0x14002114c
test r12b, r12b
je 0x14002114c
cmp al, 8
jae 0x1400210ec
xor eax, eax
jmp 0x140021140
mov rbx, rsi
shl rbx, 9
lea rdx, [0x140124260]
lea rdx, [rbx + rdx - 0x200]
mov r14, r10
and r14, 0xfffffffffffffffe
neg r14
mov ebx, 1
lea r15, [0x1400bd9c0]
add r15, rdi
nop dword [rax]
movsxd rbp, dword [rcx + rbx*4]
movzx ebp, byte [rbp + r15]
add rax, qword [rdx + rbp*8]
movsxd rbp, dword [rcx + rbx*4 + 4]
movzx ebp, byte [rbp + r15]
add rax, qword [rdx + rbp*8 - 0x200]
add rdx, 0xfffffffffffffc00
lea rbp, [r14 + rbx + 2]
add rbx, 2
cmp rbp, 1
jne 0x140020ed0
test r10b, 1
je 0x140020f38
mov r14, rsi
sub r14, rbx
movsxd rdx, dword [rcx + rbx*4]
lea r10, [0x1400bd9c0]
add r10, rdi
movzx edx, byte [rdx + r10]
shl r14, 9
lea r10, [0x140124260]
add r10, r14
add rax, qword [r10 + rdx*8]
imul rax, qword [r13 + 8]
movzx edx, byte [r8 + 0x41]
test rdx, rdx
je 0x1400210db
mov qword [rsp + 8], rax
mov qword [rsp], r12
lea rbx, [rsi + rdx]
lea r10, [rcx + 4]
lea rdx, [rsi + rdx - 1]
mov rax, rsi
mov r8, rbx
jmp 0x140020f82
add r10, 4
dec rdx
mov rax, rdi
mov rbx, r8
cmp rdi, r8
jae 0x140020fae
lea rdi, [rax + 1]
cmp rdi, rbx
jae 0x140020fae
mov rbx, rsi
jmp 0x140020f98
inc rbx
cmp rdx, rbx
je 0x140020f70
mov ebp, dword [rcx + rax*4]
mov r14d, dword [r10 + rbx*4]
cmp ebp, r14d
jle 0x140020f90
mov dword [rcx + rax*4], r14d
mov dword [r10 + rbx*4], ebp
jmp 0x140020f90
mov edi, esi
and edi, 0xfffffff8
mov r14d, esi
shr r14d, 3
shl r14, 5
xor ebx, ebx
lea r15, [0x140124260]
mov r12, rsi
jmp 0x140020ffa
mov rax, r12
sub rax, rsi
shl rax, 9
add rax, r15
sub ebp, r10d
add ebp, 0xfffffff8
movsxd rdx, ebp
add rbx, qword [rax + rdx*8 + 0x200]
inc r12
cmp r12, r8
jae 0x1400210b8
mov ebp, dword [rcx + r12*4]
mov r10d, 0
test r9d, r9d
je 0x140020fd0
cmp r11b, 8
jae 0x140021020
xor edx, edx
xor r10d, r10d
jmp 0x1400210a0
movd xmm0, ebp
pshufd xmm2, xmm0, 0
pxor xmm0, xmm0
xor eax, eax
pxor xmm1, xmm1
nop word cs:[rax + rax]
nop dword [rax]
movdqu xmm3, xmmword [rcx + rax]
movdqu xmm4, xmmword [rcx + rax + 0x10]
movdqa xmm5, xmm2
pcmpgtd xmm5, xmm3
psubd xmm0, xmm5
movdqa xmm3, xmm2
pcmpgtd xmm3, xmm4
psubd xmm1, xmm3
add rax, 0x20
cmp r14, rax
jne 0x140021040
paddd xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddd xmm0, xmm1
pshufd xmm1, xmm0, 0x55
paddd xmm1, xmm0
movd r10d, xmm1
mov rdx, rdi
cmp rdi, rsi
je 0x140020fd0
nop word cs:[rax + rax]
nop dword [rax]
xor eax, eax
cmp ebp, dword [rcx + rdx*4]
setg al
add r10d, eax
inc rdx
cmp rsi, rdx
jne 0x1400210a0
jmp 0x140020fd0
mov rdx, r8
imul rbx, qword [r13 + rsi*8 + 8]
mov rax, qword [rsp + 8]
add rax, rbx
mov r12, qword [rsp]
cmp edx, r12d
jl 0x1400213a4
jmp 0x1400215e8
mov edx, r9d
cmp edx, r12d
jl 0x1400213a4
jmp 0x1400215e8
mov eax, r12d
and eax, 0xfffffff8
mov edx, r12d
shr edx, 3
shl rdx, 5
xor r9d, r9d
movdqa xmm0, xmmword [0x1400bdcb0]
nop word [rax + rax]
movdqu xmm1, xmmword [rcx + r9]
movdqu xmm2, xmmword [rcx + r9 + 0x10]
pxor xmm1, xmm0
pxor xmm2, xmm0
movdqu xmmword [rcx + r9], xmm1
movdqu xmmword [rcx + r9 + 0x10], xmm2
add r9, 0x20
cmp rdx, r9
jne 0x140021110
cmp rax, r12
je 0x14002114c
xor byte [rcx + rax*4], 0x38
inc rax
cmp r12, rax
jne 0x140021140
movabs rax, 0x8040201008040201
test r12, r12
je 0x140021255
xor edx, edx
nop word cs:[rax + rax]
nop dword [rax + rax]
movsxd r9, dword [rcx + rdx*4]
bt rax, r9
jae 0x140021187
inc rdx
cmp r12, rdx
jne 0x140021170
jmp 0x140021255
movabs r10, 0x7f3f1f0f07030100
bt r10, r9
jae 0x140021255
xor r9d, r9d
cmp byte [r8 + 0x40], 1
adc r9d, 2
cmp r9d, edx
jbe 0x140021255
mov r9d, r12d
and r9d, 3
cmp r12b, 4
jae 0x1400211c1
xor edx, edx
jmp 0x14002121f
mov r10d, r12d
and r10d, 0xfffffffc
xor edx, edx
lea r11, [0x1400bd020]
nop word cs:[rax + rax]
nop dword [rax + rax]
movsxd rsi, dword [rcx + rdx*4]
movzx esi, byte [rsi + r11]
mov dword [rcx + rdx*4], esi
movsxd rsi, dword [rcx + rdx*4 + 4]
movzx esi, byte [rsi + r11]
mov dword [rcx + rdx*4 + 4], esi
movsxd rsi, dword [rcx + rdx*4 + 8]
movzx esi, byte [rsi + r11]
mov dword [rcx + rdx*4 + 8], esi
movsxd rsi, dword [rcx + rdx*4 + 0xc]
movzx esi, byte [rsi + r11]
mov dword [rcx + rdx*4 + 0xc], esi
add rdx, 4
cmp r10, rdx
jne 0x1400211e0
test r9, r9
je 0x140021255
lea rdx, [rcx + rdx*4]
xor r10d, r10d
lea r11, [0x1400bd020]
nop word cs:[rax + rax]
nop dword [rax]
movsxd rsi, dword [rdx + r10*4]
movzx esi, byte [rsi + r11]
mov dword [rdx + r10*4], esi
inc r10
cmp r9, r10
jne 0x140021240
cmp byte [r8 + 0x40], 0
je 0x14002128b
movsxd rax, dword [rcx]
lea rdx, [0x1400bd560]
movzx eax, byte [rax + rdx]
movsxd rdx, dword [rcx + 4]
shl rax, 7
lea r8, [0x1400bd060]
add r8, rax
movsx rax, word [r8 + rdx*2]
mov edx, 2
jmp 0x140021396
movsxd r10, dword [rcx + 4]
movsxd rdx, dword [rcx]
xor r11d, r11d
cmp r10d, edx
setg r11b
movsxd r9, dword [rcx + 8]
xor r8d, r8d
cmp r9d, edx
setg r8b
xor esi, esi
cmp r9d, r10d
setg sil
add r8d, esi
neg r8d
bt rax, rdx
jb 0x1400212ef
lea rax, [0x1400bd560]
movzx eax, byte [rdx + rax]
imul eax, eax, 0xf42
sub r10d, r11d
lea edx, [r10 + r10]
shl r10d, 6
sub r10d, edx
add r8d, r9d
add r8d, r10d
add r8d, eax
movsxd rax, r8d
jmp 0x140021391
bt rax, r10
jb 0x14002132e
lea rax, [0x1400bd5a0]
movzx eax, byte [rdx + rax]
imul eax, eax, 0x6c8
lea rdx, [0x1400bd5e0]
movzx edx, byte [r10 + rdx]
lea r10d, [rdx + rdx]
shl edx, 6
sub edx, r10d
add r9d, r8d
add r9d, eax
lea eax, [rdx + r9 + 0x5b8c]
cdqe
jmp 0x140021391
lea rsi, [0x1400bd5a0]
movzx edx, byte [rdx + rsi]
bt rax, r9
jb 0x140021370
imul eax, edx, 0xc4
lea rdx, [0x1400bd5e0]
movzx edx, byte [r9 + rdx]
add edx, eax
movzx eax, byte [r10 + rsi]
sub eax, r11d
lea r8d, [rax + rax*8]
lea r8d, [r8 + r8*2]
add r8d, eax
lea eax, [rdx + r8 + 0x76ac]
jmp 0x140021391
imul eax, edx, 0x2a
movzx edx, byte [r10 + rsi]
sub edx, r11d
lea edx, [rdx + rdx*2]
movzx r9d, byte [r9 + rsi]
add r8d, r9d
add r8d, eax
lea eax, [r8 + rdx*2 + 0x79bc]
mov edx, 3
imul rax, qword [r13 + 8]
cmp edx, r12d
jge 0x1400215e8
lea r8, [rcx + 4]
mov qword [rsp + 0x20], r8
mov qword [rsp + 0x18], r13
mov qword [rsp], r12
jmp 0x1400213ee
mov r11, rdx
xor r12d, r12d
mov r13, qword [rsp + 0x18]
mov rax, qword [rsp + 0x10]
imul r12, qword [r13 + rax*8 + 8]
mov rax, qword [rsp + 8]
add rax, r12
mov r12, qword [rsp]
mov rdx, r11
cmp edx, r12d
jge 0x1400215e8
mov qword [rsp + 8], rax
mov edi, edx
movsxd r12, edx
movzx r14d, byte [r13 + r12 + 0x47]
lea edx, [r12 + r14]
test r14d, r14d
mov qword [rsp + 0x10], r12
je 0x1400213c0
lea eax, [rdi + 1]
movsxd r10, eax
mov r11, rdx
movsxd rbx, edx
lea ebp, [r14 - 2]
xor r15d, r15d
jmp 0x14002143f
inc r10
inc r15d
cmp r12, rbx
jge 0x1400214d0
mov r13, r12
inc r12
cmp r12, rbx
jge 0x1400214d0
mov edx, r15d
not edx
add edx, r14d
mov rax, r10
test dl, 1
je 0x140021476
mov eax, dword [rcx + r13*4]
mov edx, dword [rcx + r10*4]
cmp eax, edx
jle 0x140021472
mov dword [rcx + r13*4], edx
mov dword [rcx + r10*4], eax
lea rax, [r10 + 1]
cmp ebp, r15d
je 0x140021430
mov edx, r11d
sub edx, eax
mov r8, qword [rsp + 0x20]
lea r9, [r8 + rax*4]
xor eax, eax
jmp 0x140021498
add rax, 2
cmp edx, eax
je 0x140021430
mov esi, dword [rcx + r13*4]
mov r8d, dword [r9 + rax*4 - 4]
cmp esi, r8d
jle 0x1400214af
mov dword [rcx + r13*4], r8d
mov dword [r9 + rax*4 - 4], esi
mov esi, dword [rcx + r13*4]
mov r8d, dword [r9 + rax*4]
cmp esi, r8d
jle 0x140021490
mov dword [rcx + r13*4], r8d
mov dword [r9 + rax*4], esi
jmp 0x140021490
test r14d, r14d
je 0x1400213c3
mov r14d, edi
mov r9d, edi
and r9d, 0xfffffff8
mov r13d, edi
shr r13d, 3
shl r13, 5
mov rbp, qword [rsp + 0x10]
xor r12d, r12d
jmp 0x14002152e
xor edx, edx
mov eax, ebp
sub eax, edi
inc eax
cdqe
sub r10d, edx
movsxd rdx, r10d
shl rax, 9
lea r8, [0x140124260]
add rax, r8
add r12, qword [rax + rdx*8]
inc rbp
cmp rbp, rbx
jge 0x1400213c6
mov r10d, dword [rcx + rbp*4]
test edi, edi
jle 0x140021500
cmp edi, 8
jae 0x140021550
xor r15d, r15d
xor edx, edx
jmp 0x1400215d0
movd xmm0, r10d
pshufd xmm2, xmm0, 0
pxor xmm0, xmm0
xor eax, eax
pxor xmm1, xmm1
nop word cs:[rax + rax]
nop
movdqu xmm3, xmmword [rcx + rax]
movdqu xmm4, xmmword [rcx + rax + 0x10]
movdqa xmm5, xmm2
pcmpgtd xmm5, xmm3
psubd xmm0, xmm5
movdqa xmm3, xmm2
pcmpgtd xmm3, xmm4
psubd xmm1, xmm3
add rax, 0x20
cmp r13, rax
jne 0x140021570
paddd xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddd xmm0, xmm1
pshufd xmm1, xmm0, 0x55
paddd xmm1, xmm0
movd edx, xmm1
mov r15, r9
cmp r9, r14
je 0x140021502
nop word cs:[rax + rax]
nop dword [rax]
xor eax, eax
cmp r10d, dword [rcx + r15*4]
setg al
add edx, eax
inc r15
cmp r14, r15
jne 0x1400215d0
jmp 0x140021502
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret