Function at 0x140021d50
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x118
movaps xmmword [rsp + 0x70], xmm6
movaps xmmword [rsp + 0x80], xmm7
movaps xmmword [rsp + 0x90], xmm8
movaps xmmword [rsp + 0xa0], xmm9
movaps xmmword [rsp + 0xb0], xmm10
movaps xmmword [rsp + 0xc0], xmm11
movaps xmmword [rsp + 0xd0], xmm12
movaps xmmword [rsp + 0xe0], xmm13
movaps xmmword [rsp + 0xf0], xmm14
movaps xmmword [rsp + 0x100], xmm15
lea r11, [0x140158120]
mov eax, dword [rsp + 0x180]
mov r10d, dword [rsp + 0x188]
test eax, eax
mov ebx, edx
lea rdx, [0x140158100]
mov rsi, rcx
mov rcx, qword [rsp + 0x198]
cmovne rdx, r11
movsxd r11, dword [rsp + 0x190]
mov r11d, dword [rdx + r11*4]
mov edx, dword [0x1401a519c]
test edx, edx
je 0x140021e70
sub r9d, 1
sub r9d, eax
imul r9d, ebx
neg ebx
movsxd rax, r9d
lea rdx, [rsi + rax]
test r11d, r11d
je 0x140021e7e
test r10d, r10d
jle 0x140021f07
cmp r11d, 1
je 0x1400233a0
cmp r11d, 2
je 0x140023170
cmp r11d, 3
je 0x140022468
cmp r11d, 4
je 0x140022bba
movsxd rax, r10d
xor r9d, r9d
cmp r11d, 5
jne 0x140021ef8
movzx esi, byte [rdx + r9]
mov byte [rcx + r9], sil
add r9, 1
cmp r9, rax
jne 0x140021e58
jmp 0x140021f11
imul eax, ebx
cdqe
lea rdx, [rsi + rax]
test r11d, r11d
jne 0x140021e17
imul r8d, r10d
movaps xmm6, xmmword [rsp + 0x70]
movaps xmm7, xmmword [rsp + 0x80]
movaps xmm8, xmmword [rsp + 0x90]
movaps xmm9, xmmword [rsp + 0xa0]
movaps xmm10, xmmword [rsp + 0xb0]
movaps xmm11, xmmword [rsp + 0xc0]
movaps xmm12, xmmword [rsp + 0xd0]
movsxd r8, r8d
movaps xmm13, xmmword [rsp + 0xe0]
movaps xmm14, xmmword [rsp + 0xf0]
movaps xmm15, xmmword [rsp + 0x100]
add rsp, 0x118
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.memcpy
cmp r11d, 6
je 0x140021f28
add r9, 1
cmp r9, rax
jne 0x140021ef8
cmp r11d, 6
ja case.0x140021f22.0
lea r9, [0x140162b80]
mov r11d, r11d
movsxd rax, dword [r9 + r11*4]
add rax, r9
jmp rax
movzx r11d, byte [rdx + r9]
mov byte [rcx + r9], r11b
add r9, 1
cmp r9, rax
jne 0x140021f28
imul r8d, r10d
cmp r10d, r8d
jge case.0x140021f22.0
mov r11d, r8d
movsxd rax, r10d
sub r11d, r10d
lea r9d, [r11 - 1]
cmp r9d, 6
jbe 0x140023610
lea rbx, [rcx + rax]
lea rdi, [rdx + rax + 1]
mov rsi, rbx
sub rsi, rdi
cmp rsi, 0xe
jbe 0x140023610
lea rdi, [rdx + 1]
mov rsi, rbx
sub rsi, rdi
cmp rsi, 0xe
jbe 0x140023610
cmp r9d, 0xe
jbe 0x140023b79
mov esi, r11d
lea rdi, [rdx + rax]
xor r9d, r9d
shr esi, 4
shl rsi, 4
nop word cs:[rax + rax]
movdqu xmm0, xmmword [rdi + r9]
movdqu xmm3, xmmword [rdx + r9]
psubb xmm0, xmm3
movups xmmword [rbx + r9], xmm0
add r9, 0x10
cmp rsi, r9
jne 0x140021fb0
mov ebx, r11d
and ebx, 0xfffffff0
lea r9d, [rbx + r10]
test r11b, 0xf
je case.0x140021f22.0
sub r11d, ebx
lea esi, [r11 - 1]
cmp esi, 6
jbe 0x140022017
add rax, rbx
movq xmm1, qword [rdx + rbx]
movq xmm0, qword [rdx + rax]
psubb xmm0, xmm1
movq qword [rcx + rax], xmm0
mov eax, r11d
and eax, 0xfffffff8
add r9d, eax
and r11d, 7
je case.0x140021f22.0
mov r11d, r9d
movsxd rbx, r9d
sub r11d, r10d
movzx eax, byte [rdx + rbx]
movsxd r11, r11d
sub al, byte [rdx + r11]
mov byte [rcx + rbx], al
lea eax, [r9 + 1]
cmp r8d, eax
jle case.0x140021f22.0
movsxd rbx, eax
sub eax, r10d
cdqe
movzx r11d, byte [rdx + rbx]
sub r11b, byte [rdx + rax]
lea eax, [r9 + 2]
mov byte [rcx + rbx], r11b
cmp r8d, eax
jle case.0x140021f22.0
movsxd rbx, eax
sub eax, r10d
cdqe
movzx r11d, byte [rdx + rbx]
sub r11b, byte [rdx + rax]
lea eax, [r9 + 3]
mov byte [rcx + rbx], r11b
cmp r8d, eax
jle case.0x140021f22.0
movsxd rbx, eax
sub eax, r10d
cdqe
movzx r11d, byte [rdx + rbx]
sub r11b, byte [rdx + rax]
lea eax, [r9 + 4]
mov byte [rcx + rbx], r11b
cmp r8d, eax
jle case.0x140021f22.0
movsxd rbx, eax
sub eax, r10d
cdqe
movzx r11d, byte [rdx + rbx]
sub r11b, byte [rdx + rax]
lea eax, [r9 + 5]
mov byte [rcx + rbx], r11b
cmp r8d, eax
jle case.0x140021f22.0
movsxd rbx, eax
sub eax, r10d
add r9d, 6
cdqe
movzx r11d, byte [rdx + rbx]
sub r11b, byte [rdx + rax]
mov byte [rcx + rbx], r11b
cmp r8d, r9d
jle case.0x140021f22.0
movsxd r11, r9d
sub r9d, r10d
movsxd rax, r9d
movzx r8d, byte [rdx + r11]
sub r8b, byte [rdx + rax]
mov byte [rcx + r11], r8b
movaps xmm6, xmmword [rsp + 0x70]
movaps xmm7, xmmword [rsp + 0x80]
movaps xmm8, xmmword [rsp + 0x90]
movaps xmm9, xmmword [rsp + 0xa0]
movaps xmm10, xmmword [rsp + 0xb0]
movaps xmm11, xmmword [rsp + 0xc0]
movaps xmm12, xmmword [rsp + 0xd0]
movaps xmm13, xmmword [rsp + 0xe0]
movaps xmm14, xmmword [rsp + 0xf0]
movaps xmm15, xmmword [rsp + 0x100]
add rsp, 0x118
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
imul r8d, r10d
cmp r10d, r8d
jge case.0x140021f22.0
mov esi, r8d
sub esi, r10d
lea eax, [rsi - 1]
cmp eax, 0xe
movsxd rax, r10d
jbe 0x140023680
lea r11, [rcx + rax]
lea rbx, [rdx + rax + 1]
mov r9, r11
sub r9, rbx
cmp r9, 0xe
jbe 0x140023680
lea rbx, [rdx + 1]
mov r9, r11
sub r9, rbx
cmp r9, 0xe
jbe 0x140023680
mov ebx, esi
movdqa xmm3, xmmword [0x1401654a0]
add rax, rdx
xor r9d, r9d
shr ebx, 4
shl rbx, 4
nop word [rax + rax]
movdqu xmm0, xmmword [rdx + r9]
movdqu xmm1, xmmword [rax + r9]
psrlw xmm0, 1
pand xmm0, xmm3
psubb xmm1, xmm0
movups xmmword [r11 + r9], xmm1
add r9, 0x10
cmp rbx, r9
jne 0x1400221c0
mov r9d, esi
and r9d, 0xfffffff0
and esi, 0xf
lea eax, [r10 + r9]
je case.0x140021f22.0
movsxd r9, r9d
movsxd rbx, eax
movzx r11d, byte [rdx + r9]
movzx r9d, byte [rdx + rbx]
shr r11b, 1
sub r9d, r11d
mov byte [rcx + rbx], r9b
lea r9d, [rax + 1]
cmp r8d, r9d
jle case.0x140021f22.0
movsxd rbx, r9d
sub r9d, r10d
movsxd r9, r9d
movzx r11d, byte [rdx + r9]
movzx r9d, byte [rdx + rbx]
shr r11b, 1
sub r9d, r11d
mov byte [rcx + rbx], r9b
lea r9d, [rax + 2]
cmp r8d, r9d
jle case.0x140021f22.0
movsxd rbx, r9d
sub r9d, r10d
movsxd r9, r9d
movzx r11d, byte [rdx + r9]
movzx r9d, byte [rdx + rbx]
shr r11b, 1
sub r9d, r11d
mov byte [rcx + rbx], r9b
lea r9d, [rax + 3]
cmp r8d, r9d
jle case.0x140021f22.0
movsxd rbx, r9d
sub r9d, r10d
movsxd r9, r9d
movzx r11d, byte [rdx + r9]
movzx r9d, byte [rdx + rbx]
shr r11b, 1
sub r9d, r11d
mov byte [rcx + rbx], r9b
lea r9d, [rax + 4]
cmp r8d, r9d
jle case.0x140021f22.0
movsxd rbx, r9d
sub r9d, r10d
movsxd r9, r9d
movzx r11d, byte [rdx + r9]
movzx r9d, byte [rdx + rbx]
shr r11b, 1
sub r9d, r11d
mov byte [rcx + rbx], r9b
lea r9d, [rax + 5]
cmp r8d, r9d
jle case.0x140021f22.0
movsxd rbx, r9d
sub r9d, r10d
movsxd r9, r9d
movzx r11d, byte [rdx + r9]
movzx r9d, byte [rdx + rbx]
shr r11b, 1
sub r9d, r11d
mov byte [rcx + rbx], r9b
lea r9d, [rax + 6]
cmp r8d, r9d
jle case.0x140021f22.0
movsxd rbx, r9d
sub r9d, r10d
movsxd r9, r9d
movzx r11d, byte [rdx + r9]
movzx r9d, byte [rdx + rbx]
shr r11b, 1
sub r9d, r11d
mov byte [rcx + rbx], r9b
lea r9d, [rax + 7]
cmp r8d, r9d
jle case.0x140021f22.0
movsxd rbx, r9d
sub r9d, r10d
movsxd r9, r9d
movzx r11d, byte [rdx + r9]
movzx r9d, byte [rdx + rbx]
shr r11b, 1
sub r9d, r11d
mov byte [rcx + rbx], r9b
lea r9d, [rax + 8]
cmp r8d, r9d
jle case.0x140021f22.0
movsxd rbx, r9d
sub r9d, r10d
movsxd r9, r9d
movzx r11d, byte [rdx + r9]
movzx r9d, byte [rdx + rbx]
shr r11b, 1
sub r9d, r11d
mov byte [rcx + rbx], r9b
lea r9d, [rax + 9]
cmp r8d, r9d
jle case.0x140021f22.0
movsxd rbx, r9d
sub r9d, r10d
movsxd r9, r9d
movzx r11d, byte [rdx + r9]
movzx r9d, byte [rdx + rbx]
shr r11b, 1
sub r9d, r11d
mov byte [rcx + rbx], r9b
lea r9d, [rax + 0xa]
cmp r8d, r9d
jle case.0x140021f22.0
movsxd rbx, r9d
sub r9d, r10d
movsxd r9, r9d
movzx r11d, byte [rdx + r9]
movzx r9d, byte [rdx + rbx]
shr r11b, 1
sub r9d, r11d
mov byte [rcx + rbx], r9b
lea r9d, [rax + 0xb]
cmp r8d, r9d
jle case.0x140021f22.0
movsxd rbx, r9d
sub r9d, r10d
movsxd r9, r9d
movzx r11d, byte [rdx + r9]
movzx r9d, byte [rdx + rbx]
shr r11b, 1
sub r9d, r11d
mov byte [rcx + rbx], r9b
lea r9d, [rax + 0xc]
cmp r8d, r9d
jle case.0x140021f22.0
movsxd rbx, r9d
sub r9d, r10d
movsxd r9, r9d
movzx r11d, byte [rdx + r9]
movzx r9d, byte [rdx + rbx]
shr r11b, 1
sub r9d, r11d
mov byte [rcx + rbx], r9b
lea r9d, [rax + 0xd]
cmp r8d, r9d
jle case.0x140021f22.0
movsxd rbx, r9d
sub r9d, r10d
add eax, 0xe
movsxd r9, r9d
movzx r11d, byte [rdx + r9]
movzx r9d, byte [rdx + rbx]
shr r11b, 1
sub r9d, r11d
mov byte [rcx + rbx], r9b
cmp r8d, eax
jle case.0x140021f22.0
movsxd r9, eax
sub eax, r10d
cdqe
movzx r8d, byte [rdx + rax]
movzx eax, byte [rdx + r9]
shr r8b, 1
sub eax, r8d
mov byte [rcx + r9], al
jmp case.0x140021f22.0
lea eax, [r10 - 1]
cmp eax, 0xe
jbe 0x140023a21
mov r9d, ebx
mov rax, rcx
neg r9d
movsxd r9, r9d
lea r11, [rdx + r9 + 1]
sub rax, r11
cmp rax, 0xe
jbe 0x140023a21
lea r11, [rdx + 1]
mov rax, rcx
sub rax, r11
cmp rax, 0xe
jbe 0x140023a21
mov r11d, r10d
movdqa xmm3, xmmword [0x1401654a0]
add r9, rdx
xor eax, eax
shr r11d, 4
shl r11, 4
nop
movdqu xmm0, xmmword [r9 + rax]
movdqu xmm1, xmmword [rdx + rax]
psrlw xmm0, 1
pand xmm0, xmm3
psubb xmm1, xmm0
movups xmmword [rcx + rax], xmm1
add rax, 0x10
cmp r11, rax
jne 0x1400224c0
mov eax, r10d
and eax, 0xfffffff0
test r10b, 0xf
je case.0x140021f22.3
mov r9d, eax
mov esi, eax
sub r9d, ebx
movsxd r9, r9d
movzx r11d, byte [rdx + r9]
movzx r9d, byte [rdx + rsi]
shr r11b, 1
sub r9d, r11d
mov byte [rcx + rsi], r9b
lea r9d, [rax + 1]
cmp r10d, r9d
jle case.0x140021f22.3
movsxd rsi, r9d
sub r9d, ebx
movsxd r9, r9d
movzx r11d, byte [rdx + r9]
movzx r9d, byte [rdx + rsi]
shr r11b, 1
sub r9d, r11d
mov byte [rcx + rsi], r9b
lea r9d, [rax + 2]
cmp r10d, r9d
jle case.0x140021f22.3
movsxd rsi, r9d
sub r9d, ebx
movsxd r9, r9d
movzx r11d, byte [rdx + r9]
movzx r9d, byte [rdx + rsi]
shr r11b, 1
sub r9d, r11d
mov byte [rcx + rsi], r9b
lea r9d, [rax + 3]
cmp r10d, r9d
jle case.0x140021f22.3
movsxd rsi, r9d
sub r9d, ebx
movsxd r9, r9d
movzx r11d, byte [rdx + r9]
movzx r9d, byte [rdx + rsi]
shr r11b, 1
sub r9d, r11d
mov byte [rcx + rsi], r9b
lea r9d, [rax + 4]
cmp r10d, r9d
jle case.0x140021f22.3
movsxd rsi, r9d
sub r9d, ebx
movsxd r9, r9d
movzx r11d, byte [rdx + r9]
movzx r9d, byte [rdx + rsi]
shr r11b, 1
sub r9d, r11d
mov byte [rcx + rsi], r9b
lea r9d, [rax + 5]
cmp r10d, r9d
jle case.0x140021f22.3
movsxd rsi, r9d
sub r9d, ebx
movsxd r9, r9d
movzx r11d, byte [rdx + r9]
movzx r9d, byte [rdx + rsi]
shr r11b, 1
sub r9d, r11d
mov byte [rcx + rsi], r9b
lea r9d, [rax + 6]
cmp r10d, r9d
jle case.0x140021f22.3
movsxd rsi, r9d
sub r9d, ebx
movsxd r9, r9d
movzx r11d, byte [rdx + r9]
movzx r9d, byte [rdx + rsi]
shr r11b, 1
sub r9d, r11d
mov byte [rcx + rsi], r9b
lea r9d, [rax + 7]
cmp r10d, r9d
jle case.0x140021f22.3
movsxd rsi, r9d
sub r9d, ebx
movsxd r9, r9d
movzx r11d, byte [rdx + r9]
movzx r9d, byte [rdx + rsi]
shr r11b, 1
sub r9d, r11d
mov byte [rcx + rsi], r9b
lea r9d, [rax + 8]
cmp r10d, r9d
jle case.0x140021f22.3
movsxd rsi, r9d
sub r9d, ebx
movsxd r9, r9d
movzx r11d, byte [rdx + r9]
movzx r9d, byte [rdx + rsi]
shr r11b, 1
sub r9d, r11d
mov byte [rcx + rsi], r9b
lea r9d, [rax + 9]
cmp r10d, r9d
jle case.0x140021f22.3
movsxd rsi, r9d
sub r9d, ebx
movsxd r9, r9d
movzx r11d, byte [rdx + r9]
movzx r9d, byte [rdx + rsi]
shr r11b, 1
sub r9d, r11d
mov byte [rcx + rsi], r9b
lea r9d, [rax + 0xa]
cmp r10d, r9d
jle case.0x140021f22.3
movsxd rsi, r9d
sub r9d, ebx
movsxd r9, r9d
movzx r11d, byte [rdx + r9]
movzx r9d, byte [rdx + rsi]
shr r11b, 1
sub r9d, r11d
mov byte [rcx + rsi], r9b
lea r9d, [rax + 0xb]
cmp r10d, r9d
jle case.0x140021f22.3
movsxd rsi, r9d
sub r9d, ebx
movsxd r9, r9d
movzx r11d, byte [rdx + r9]
movzx r9d, byte [rdx + rsi]
shr r11b, 1
sub r9d, r11d
mov byte [rcx + rsi], r9b
lea r9d, [rax + 0xc]
cmp r10d, r9d
jle case.0x140021f22.3
movsxd rsi, r9d
sub r9d, ebx
movsxd r9, r9d
movzx r11d, byte [rdx + r9]
movzx r9d, byte [rdx + rsi]
shr r11b, 1
sub r9d, r11d
mov byte [rcx + rsi], r9b
lea r9d, [rax + 0xd]
cmp r10d, r9d
jle case.0x140021f22.3
movsxd rsi, r9d
sub r9d, ebx
add eax, 0xe
movsxd r9, r9d
movzx r11d, byte [rdx + r9]
movzx r9d, byte [rdx + rsi]
shr r11b, 1
sub r9d, r11d
mov byte [rcx + rsi], r9b
cmp r10d, eax
jle case.0x140021f22.3
movsxd r11, eax
sub eax, ebx
cdqe
movzx r9d, byte [rdx + rax]
movzx eax, byte [rdx + r11]
shr r9b, 1
sub eax, r9d
mov byte [rcx + r11], al
nop dword [rax]
imul r8d, r10d
cmp r10d, r8d
jge case.0x140021f22.0
mov ebp, r8d
movsxd r9, ebx
sub ebp, r10d
lea eax, [rbp - 1]
cmp eax, 0xe
movsxd rax, r10d
jbe 0x140023640
lea r11, [rcx + rax]
lea r12, [rdx + rax + 1]
movsxd r9, ebx
mov rsi, rax
mov rdi, r11
sub rsi, r9
lea r13, [rdx + 1]
sub rdi, r12
cmp rdi, 0xe
mov rdi, r11
seta r12b
sub rdi, r13
cmp rdi, 0xe
seta dil
test r12b, dil
je 0x140023640
lea r12, [rdx + rsi + 1]
mov rdi, r11
sub rdi, r12
cmp rdi, 0xe
jbe 0x140023640
mov edi, ebp
movdqa xmm3, xmmword [0x1401654a0]
add rax, rdx
add rsi, rdx
shr edi, 4
movdqa xmm4, xmmword [0x1401654b0]
xor r9d, r9d
shl rdi, 4
nop
movdqu xmm0, xmmword [rdx + r9]
movdqu xmm5, xmmword [rsi + r9]
movdqu xmm2, xmmword [rax + r9]
movdqu xmm1, xmmword [rsi + r9]
pand xmm0, xmm5
pand xmm0, xmm4
psrlw xmm1, 1
psubb xmm2, xmm0
movdqu xmm0, xmmword [rdx + r9]
pand xmm1, xmm3
psrlw xmm0, 1
pand xmm0, xmm3
paddb xmm0, xmm1
psubb xmm2, xmm0
movups xmmword [r11 + r9], xmm2
add r9, 0x10
cmp r9, rdi
jne 0x1400227f0
mov r11d, ebp
and r11d, 0xfffffff0
and ebp, 0xf
lea eax, [r10 + r11]
je case.0x140021f22.0
mov r9d, eax
movsxd r11, r11d
movsxd rsi, eax
sub r9d, ebx
movzx r11d, byte [rdx + r11]
movsxd r9, r9d
movzx r9d, byte [rdx + r9]
add r9d, r11d
movzx r11d, byte [rdx + rsi]
sar r9d, 1
sub r11d, r9d
lea r9d, [rax + 1]
mov byte [rcx + rsi], r11b
cmp r8d, r9d
jle case.0x140021f22.0
mov r11d, r9d
movsxd rsi, r9d
sub r9d, r10d
sub r11d, ebx
movsxd r9, r9d
movsxd r11, r11d
movzx r9d, byte [rdx + r9]
movzx r11d, byte [rdx + r11]
add r9d, r11d
movzx r11d, byte [rdx + rsi]
sar r9d, 1
sub r11d, r9d
lea r9d, [rax + 2]
mov byte [rcx + rsi], r11b
cmp r8d, r9d
jle case.0x140021f22.0
mov r11d, r9d
movsxd rsi, r9d
sub r9d, r10d
sub r11d, ebx
movsxd r9, r9d
movsxd r11, r11d
movzx r9d, byte [rdx + r9]
movzx r11d, byte [rdx + r11]
add r9d, r11d
movzx r11d, byte [rdx + rsi]
sar r9d, 1
sub r11d, r9d
lea r9d, [rax + 3]
mov byte [rcx + rsi], r11b
cmp r8d, r9d
jle case.0x140021f22.0
mov r11d, r9d
movsxd rsi, r9d
sub r9d, r10d
sub r11d, ebx
movsxd r9, r9d
movsxd r11, r11d
movzx r9d, byte [rdx + r9]
movzx r11d, byte [rdx + r11]
add r9d, r11d
movzx r11d, byte [rdx + rsi]
sar r9d, 1
sub r11d, r9d
lea r9d, [rax + 4]
mov byte [rcx + rsi], r11b
cmp r8d, r9d
jle case.0x140021f22.0
mov r11d, r9d
movsxd rsi, r9d
sub r9d, r10d
sub r11d, ebx
movsxd r9, r9d
movsxd r11, r11d
movzx r9d, byte [rdx + r9]
movzx r11d, byte [rdx + r11]
add r9d, r11d
movzx r11d, byte [rdx + rsi]
sar r9d, 1
sub r11d, r9d
lea r9d, [rax + 5]
mov byte [rcx + rsi], r11b
cmp r8d, r9d
jle case.0x140021f22.0
mov r11d, r9d
movsxd rsi, r9d
sub r9d, r10d
sub r11d, ebx
movsxd r9, r9d
movsxd r11, r11d
movzx r9d, byte [rdx + r9]
movzx r11d, byte [rdx + r11]
add r9d, r11d
movzx r11d, byte [rdx + rsi]
sar r9d, 1
sub r11d, r9d
lea r9d, [rax + 6]
mov byte [rcx + rsi], r11b
cmp r8d, r9d
jle case.0x140021f22.0
mov r11d, r9d
movsxd rsi, r9d
sub r9d, r10d
sub r11d, ebx
movsxd r9, r9d
movsxd r11, r11d
movzx r9d, byte [rdx + r9]
movzx r11d, byte [rdx + r11]
add r9d, r11d
movzx r11d, byte [rdx + rsi]
sar r9d, 1
sub r11d, r9d
lea r9d, [rax + 7]
mov byte [rcx + rsi], r11b
cmp r8d, r9d
jle case.0x140021f22.0
mov r11d, r9d
movsxd rsi, r9d
sub r9d, r10d
sub r11d, ebx
movsxd r9, r9d
movsxd r11, r11d
movzx r9d, byte [rdx + r9]
movzx r11d, byte [rdx + r11]
add r9d, r11d
movzx r11d, byte [rdx + rsi]
sar r9d, 1
sub r11d, r9d
lea r9d, [rax + 8]
mov byte [rcx + rsi], r11b
cmp r8d, r9d
jle case.0x140021f22.0
mov r11d, r9d
movsxd rsi, r9d
sub r9d, ebx
sub r11d, r10d
movsxd r9, r9d
movsxd r11, r11d
movzx r9d, byte [rdx + r9]
movzx r11d, byte [rdx + r11]
add r9d, r11d
movzx r11d, byte [rdx + rsi]
sar r9d, 1
sub r11d, r9d
lea r9d, [rax + 9]
mov byte [rcx + rsi], r11b
cmp r8d, r9d
jle case.0x140021f22.0
mov r11d, r9d
movsxd rsi, r9d
sub r9d, ebx
sub r11d, r10d
movsxd r9, r9d
movsxd r11, r11d
movzx r9d, byte [rdx + r9]
movzx r11d, byte [rdx + r11]
add r9d, r11d
movzx r11d, byte [rdx + rsi]
sar r9d, 1
sub r11d, r9d
lea r9d, [rax + 0xa]
mov byte [rcx + rsi], r11b
cmp r8d, r9d
jle case.0x140021f22.0
mov r11d, r9d
movsxd rsi, r9d
sub r9d, ebx
sub r11d, r10d
movsxd r9, r9d
movsxd r11, r11d
movzx r9d, byte [rdx + r9]
movzx r11d, byte [rdx + r11]
add r9d, r11d
movzx r11d, byte [rdx + rsi]
sar r9d, 1
sub r11d, r9d
lea r9d, [rax + 0xb]
mov byte [rcx + rsi], r11b
cmp r8d, r9d
jle case.0x140021f22.0
mov r11d, r9d
movsxd rsi, r9d
sub r9d, ebx
sub r11d, r10d
movsxd r9, r9d
movsxd r11, r11d
movzx r9d, byte [rdx + r9]
movzx r11d, byte [rdx + r11]
add r9d, r11d
movzx r11d, byte [rdx + rsi]
sar r9d, 1
sub r11d, r9d
lea r9d, [rax + 0xc]
mov byte [rcx + rsi], r11b
cmp r8d, r9d
jle case.0x140021f22.0
mov r11d, r9d
movsxd rsi, r9d
sub r9d, ebx
sub r11d, r10d
movsxd r9, r9d
movsxd r11, r11d
movzx r9d, byte [rdx + r9]
movzx r11d, byte [rdx + r11]
add r9d, r11d
movzx r11d, byte [rdx + rsi]
sar r9d, 1
sub r11d, r9d
lea r9d, [rax + 0xd]
mov byte [rcx + rsi], r11b
cmp r8d, r9d
jle case.0x140021f22.0
mov r11d, r9d
movsxd rsi, r9d
sub r9d, ebx
add eax, 0xe
sub r11d, r10d
movsxd r9, r9d
movsxd r11, r11d
movzx r9d, byte [rdx + r9]
movzx r11d, byte [rdx + r11]
add r9d, r11d
movzx r11d, byte [rdx + rsi]
sar r9d, 1
sub r11d, r9d
mov byte [rcx + rsi], r11b
cmp r8d, eax
jle case.0x140021f22.0
mov r8d, eax
movsxd r9, eax
sub eax, ebx
sub r8d, r10d
cdqe
movsxd r8, r8d
movzx eax, byte [rdx + rax]
movzx r8d, byte [rdx + r8]
movzx edx, byte [rdx + r9]
add eax, r8d
sar eax, 1
sub edx, eax
mov byte [rcx + r9], dl
jmp case.0x140021f22.0
lea eax, [r10 - 1]
mov esi, r10d
cmp eax, 6
ja 0x14002370b
mov esi, ebx
movsxd rax, r10d
xor r9d, r9d
neg esi
movsxd rsi, esi
add rsi, rdx
nop word [rax + rax]
movzx r11d, byte [rdx + r9]
sub r11b, byte [rsi + r9]
mov byte [rcx + r9], r11b
add r9, 1
cmp rax, r9
jne 0x140022be0
imul r8d, r10d
mov dword [rsp + 0xc], r8d
cmp r10d, r8d
jge case.0x140021f22.0
mov edi, r8d
movsxd r9, ebx
sub edi, r10d
lea eax, [rdi - 1]
cmp eax, 0xe
movsxd rax, r10d
jbe 0x140023570
lea rsi, [rcx + rax]
lea rbp, [rdx + rax + 1]
movsxd r9, ebx
mov r8, rax
mov r11, rsi
mov r13d, ebx
lea r12, [rdx + 1]
sub r8, r9
sub r11, rbp
neg r13d
mov rbp, rsi
cmp r11, 0xe
movsxd r13, r13d
seta r11b
sub rbp, r12
lea r12, [rdx + r8 + 1]
cmp rbp, 0xe
seta bpl
and r11d, ebp
mov rbp, rsi
sub rbp, r12
cmp rbp, 0xe
seta bpl
test r11b, bpl
je 0x140023570
lea rbp, [rdx + r13 + 1]
mov r11, rsi
sub r11, rbp
cmp r11, 0xe
jbe 0x140023570
mov r11d, edi
lea rbx, [rdx + r8]
lea rbp, [rdx + rax]
add r13, rdx
shr r11d, 4
xor r8d, r8d
pxor xmm14, xmm14
shl r11, 4
pxor xmm13, xmm13
pxor xmm12, xmm12
movdqu xmm0, xmmword [r13 + r8]
movdqu xmm7, xmmword [rdx + r8]
movdqu xmm1, xmmword [r13 + r8]
movdqu xmm6, xmmword [rdx + r8]
punpckhbw xmm0, xmm14
punpcklbw xmm7, xmm14
movdqu xmm4, xmmword [rbx + r8]
movdqa xmm5, xmm0
punpcklbw xmm1, xmm14
movdqa xmm15, xmm7
punpckhwd xmm5, xmm13
punpcklwd xmm15, xmm13
movdqa xmm2, xmm1
movaps xmmword [rsp + 0x40], xmm5
movdqu xmm5, xmmword [rbx + r8]
punpcklwd xmm2, xmm13
movdqa xmm3, xmm15
movaps xmmword [rsp + 0x10], xmm2
movdqa xmm8, xmm0
punpckhwd xmm7, xmm13
punpckhwd xmm1, xmm13
punpcklbw xmm5, xmm14
punpcklwd xmm8, xmm13
movdqa xmm2, xmm7
movaps xmmword [rsp + 0x20], xmm1
movdqa xmm10, xmm5
movaps xmmword [rsp + 0x30], xmm8
punpckhwd xmm5, xmm13
punpckhbw xmm6, xmm14
punpcklwd xmm10, xmm13
paddd xmm2, xmm5
psubd xmm2, xmmword [rsp + 0x20]
paddd xmm3, xmm10
psubd xmm3, xmmword [rsp + 0x10]
punpckhbw xmm4, xmm14
movdqa xmm11, xmm6
movdqa xmm9, xmm4
punpckhwd xmm6, xmm13
movdqa xmm8, xmm3
punpcklwd xmm11, xmm13
punpcklwd xmm9, xmm13
psubd xmm8, xmm15
movdqa xmm1, xmm11
punpckhwd xmm4, xmm13
movdqa xmm15, xmm8
paddd xmm1, xmm9
psubd xmm1, xmmword [rsp + 0x30]
psrad xmm15, 0x1f
movdqa xmm0, xmm6
pxor xmm8, xmm15
paddd xmm0, xmm4
psubd xmm0, xmmword [rsp + 0x40]
psubd xmm8, xmm15
movdqa xmm15, xmm2
psubd xmm15, xmm7
movaps xmmword [rsp + 0x50], xmm8
movdqa xmm7, xmm15
movdqa xmm8, xmm15
psrad xmm7, 0x1f
pxor xmm8, xmm7
movdqa xmm15, xmm8
psubd xmm15, xmm7
movdqa xmm7, xmm1
psubd xmm7, xmm11
movdqa xmm11, xmm7
psrad xmm11, 0x1f
pxor xmm7, xmm11
psubd xmm7, xmm11
movaps xmmword [rsp + 0x60], xmm7
movdqa xmm7, xmm0
psubd xmm7, xmm6
movdqa xmm6, xmm7
psrad xmm6, 0x1f
pxor xmm7, xmm6
movdqa xmm11, xmm7
psubd xmm11, xmm6
movdqa xmm6, xmm3
psubd xmm3, xmmword [rsp + 0x10]
psubd xmm6, xmm10
movdqa xmm10, xmmword [rsp + 0x60]
movdqa xmm7, xmm6
psrad xmm7, 0x1f
pxor xmm6, xmm7
psubd xmm6, xmm7
movdqa xmm7, xmm2
psubd xmm2, xmmword [rsp + 0x20]
psubd xmm7, xmm5
movdqa xmm5, xmm7
psrad xmm5, 0x1f
pxor xmm7, xmm5
psubd xmm7, xmm5
movdqa xmm5, xmm1
psubd xmm1, xmmword [rsp + 0x30]
psubd xmm5, xmm9
movdqa xmm9, xmm5
psrad xmm9, 0x1f
pxor xmm5, xmm9
psubd xmm5, xmm9
movdqa xmm9, xmm0
psubd xmm0, xmmword [rsp + 0x40]
psubd xmm9, xmm4
movdqa xmm4, xmm9
movdqa xmm8, xmm9
psrad xmm4, 0x1f
pxor xmm8, xmm4
psubd xmm8, xmm4
movdqa xmm4, xmm3
psrad xmm4, 0x1f
pxor xmm3, xmm4
psubd xmm3, xmm4
movdqa xmm4, xmm2
psrad xmm4, 0x1f
pxor xmm2, xmm4
psubd xmm2, xmm4
movdqa xmm4, xmm1
psrad xmm4, 0x1f
pxor xmm1, xmm4
psubd xmm1, xmm4
movdqa xmm4, xmm0
psrad xmm4, 0x1f
pxor xmm0, xmm4
psubd xmm0, xmm4
movdqa xmm4, xmm6
pcmpgtd xmm4, xmm3
movdqa xmm9, xmm4
pand xmm3, xmm4
pandn xmm9, xmm6
pcmpeqd xmm4, xmm12
por xmm3, xmm9
movdqa xmm9, xmm7
pcmpgtd xmm9, xmm2
movdqa xmm6, xmm9
pand xmm2, xmm9
pandn xmm6, xmm7
pcmpeqd xmm9, xmm12
por xmm2, xmm6
movdqa xmm6, xmm5
pcmpgtd xmm6, xmm1
pcmpgtd xmm15, xmm2
movdqa xmm7, xmm6
pand xmm1, xmm6
pand xmm9, xmm15
pandn xmm7, xmm5
movdqa xmm5, xmm8
movdqa xmm2, xmm15
pcmpgtd xmm5, xmm0
pcmpeqd xmm6, xmm12
por xmm1, xmm7
pcmpgtd xmm10, xmm1
pcmpeqd xmm2, xmm12
movdqa xmm7, xmm5
pand xmm0, xmm5
pandn xmm7, xmm8
pcmpeqd xmm5, xmm12
pand xmm6, xmm10
por xmm7, xmm0
movdqa xmm0, xmmword [rsp + 0x50]
movdqa xmm1, xmm10
pcmpgtd xmm11, xmm7
pcmpeqd xmm1, xmm12
pcmpgtd xmm0, xmm3
movdqa xmm7, xmm11
pand xmm11, xmm5
pand xmm4, xmm0
pcmpeqd xmm7, xmm12
movdqa xmm3, xmm0
movdqa xmm0, xmm4
pcmpeqd xmm3, xmm12
punpcklwd xmm4, xmm9
punpckhwd xmm0, xmm9
movdqa xmm8, xmm4
punpckhwd xmm8, xmm0
punpcklwd xmm4, xmm0
movdqa xmm0, xmm6
punpcklwd xmm6, xmm11
punpckhwd xmm0, xmm11
punpcklwd xmm4, xmm8
movdqa xmm5, xmm6
punpcklwd xmm6, xmm0
pand xmm4, xmmword [0x140165470]
punpckhwd xmm5, xmm0
movdqu xmm0, xmmword [rbx + r8]
punpcklwd xmm6, xmm5
pand xmm6, xmmword [0x140165470]
movdqu xmm5, xmmword [r13 + r8]
packuswb xmm4, xmm6
pand xmm0, xmm4
pandn xmm4, xmm5
por xmm4, xmm0
movdqa xmm0, xmm3
punpcklwd xmm3, xmm2
punpckhwd xmm0, xmm2
movdqa xmm2, xmm3
punpckhwd xmm2, xmm0
punpcklwd xmm3, xmm0
movdqa xmm0, xmm1
punpcklwd xmm1, xmm7
punpckhwd xmm0, xmm7
punpcklwd xmm3, xmm2
movdqa xmm2, xmm1
punpcklwd xmm1, xmm0
pand xmm3, xmmword [0x140165470]
punpckhwd xmm2, xmm0
movdqu xmm0, xmmword [rdx + r8]
punpcklwd xmm1, xmm2
pand xmm1, xmmword [0x140165470]
packuswb xmm3, xmm1
pand xmm0, xmm3
pandn xmm3, xmm4
por xmm3, xmm0
movdqu xmm0, xmmword [rbp + r8]
psubb xmm0, xmm3
movups xmmword [rsi + r8], xmm0
add r8, 0x10
cmp r11, r8
jne 0x140022cb7
mov r8d, edi
and r8d, 0xfffffff0
add r8d, r10d
and edi, 0xf
je case.0x140021f22.0
add r9, rax
mov r15, rdx
mov r14, rdx
movsxd r8, r8d
sub r15, r9
sub r14, rax
jmp 0x14002310d
cmp r10d, r9d
cmovle r11d, ebp
sub ebx, r11d
mov byte [rcx + r8], bl
add r8, 1
cmp dword [rsp + 0xc], r8d
jle case.0x140021f22.0
movzx r10d, byte [r13 + r8]
movzx edi, byte [r14 + r8]
movzx r9d, byte [r15 + r8]
movzx ebx, byte [rdx + r8]
lea eax, [r10 + rdi]
mov ebp, r10d
sub eax, r9d
mov r11d, r9d
mov esi, eax
sub esi, r10d
mov r10d, esi
neg r10d
cmovs r10d, esi
mov esi, eax
sub esi, r9d
mov r9d, esi
neg r9d
cmovs r9d, esi
sub eax, edi
mov esi, eax
neg esi
cmovns eax, esi
cmp r10d, r9d
mov esi, r9d
cmovle esi, r10d
cmp eax, esi
jg 0x1400230f0
mov r11d, edi
jmp 0x1400230f7
lea eax, [r10 - 1]
mov esi, r10d
cmp eax, 6
jbe 0x1400231aa
mov r9d, ebx
mov r11, rcx
neg r9d
movsxd r9, r9d
lea rdi, [rdx + r9 + 1]
sub r11, rdi
cmp r11, 0xe
jbe 0x1400231aa
lea rdi, [rdx + 1]
mov r11, rcx
sub r11, rdi
cmp r11, 0xe
ja 0x1400238b1
mov esi, ebx
movsxd rax, r10d
xor r9d, r9d
neg esi
movsxd rsi, esi
add rsi, rdx
nop word [rax + rax]
movzx r11d, byte [rdx + r9]
sub r11b, byte [rsi + r9]
mov byte [rcx + r9], r11b
add r9, 1
cmp rax, r9
jne 0x1400231c0
imul r8d, r10d
cmp r8d, r10d
jle case.0x140021f22.0
mov esi, r8d
movsxd rax, r10d
movsxd r9, ebx
sub esi, r10d
lea ebp, [rsi - 1]
cmp ebp, 6
jbe 0x1400236b8
movsxd r9, ebx
mov r11, rax
lea rdi, [rcx + rax]
sub r11, r9
mov r12, rdi
lea r13, [rdx + r11 + 1]
sub r12, r13
cmp r12, 0xe
jbe 0x1400236b8
lea r13, [rdx + rax + 1]
mov r12, rdi
sub r12, r13
cmp r12, 0xe
jbe 0x1400236b8
cmp ebp, 0xe
jbe 0x140023b6e
mov ebp, esi
lea r12, [rdx + rax]
add r11, rdx
xor r9d, r9d
shr ebp, 4
shl rbp, 4
nop
movdqu xmm0, xmmword [r12 + r9]
movdqu xmm5, xmmword [r11 + r9]
psubb xmm0, xmm5
movups xmmword [rdi + r9], xmm0
add r9, 0x10
cmp rbp, r9
jne 0x140023250
mov r9d, esi
and r9d, 0xfffffff0
add r10d, r9d
test sil, 0xf
je case.0x140021f22.0
sub esi, r9d
lea edi, [rsi - 1]
cmp edi, 6
jbe 0x1400232b5
add rax, r9
movq xmm1, qword [r11 + r9]
movq xmm0, qword [rdx + rax]
psubb xmm0, xmm1
movq qword [rcx + rax], xmm0
mov eax, esi
and eax, 0xfffffff8
add r10d, eax
and esi, 7
je case.0x140021f22.0
mov r9d, r10d
movsxd r11, r10d
sub r9d, ebx
movzx eax, byte [rdx + r11]
movsxd r9, r9d
sub al, byte [rdx + r9]
mov byte [rcx + r11], al
lea eax, [r10 + 1]
cmp r8d, eax
jle case.0x140021f22.0
movsxd r11, eax
sub eax, ebx
cdqe
movzx r9d, byte [rdx + r11]
sub r9b, byte [rdx + rax]
lea eax, [r10 + 2]
mov byte [rcx + r11], r9b
cmp r8d, eax
jle case.0x140021f22.0
movsxd r11, eax
sub eax, ebx
cdqe
movzx r9d, byte [rdx + r11]
sub r9b, byte [rdx + rax]
lea eax, [r10 + 3]
mov byte [rcx + r11], r9b
cmp eax, r8d
jge case.0x140021f22.0
movsxd r11, eax
sub eax, ebx
cdqe
movzx r9d, byte [rdx + r11]
sub r9b, byte [rdx + rax]
lea eax, [r10 + 4]
mov byte [rcx + r11], r9b
cmp eax, r8d
jge case.0x140021f22.0
movsxd r11, eax
sub eax, ebx
cdqe
movzx r9d, byte [rdx + r11]
sub r9b, byte [rdx + rax]
lea eax, [r10 + 5]
mov byte [rcx + r11], r9b
cmp r8d, eax
jle case.0x140021f22.0
movsxd r11, eax
sub eax, ebx
add r10d, 6
cdqe
movzx r9d, byte [rdx + r11]
sub r9b, byte [rdx + rax]
mov byte [rcx + r11], r9b
cmp r8d, r10d
jle case.0x140021f22.0
movsxd r9, r10d
sub r10d, ebx
movsxd rax, r10d
movzx r8d, byte [rdx + r9]
sub r8b, byte [rdx + rax]
mov byte [rcx + r9], r8b
jmp case.0x140021f22.0
lea eax, [r10 - 1]
mov r11d, r10d
cmp eax, 6
jbe 0x1400233c0
lea rbx, [rdx + 1]
mov r9, rcx
sub r9, rbx
cmp r9, 0xe
ja 0x140023a5a
movsxd rax, r10d
xor r9d, r9d
nop word cs:[rax + rax]
movzx r11d, byte [rdx + r9]
mov byte [rcx + r9], r11b
add r9, 1
cmp rax, r9
jne 0x1400233d0
imul r8d, r10d
cmp r10d, r8d
jge case.0x140021f22.0
mov r11d, r8d
movsxd rax, r10d
sub r11d, r10d
lea r9d, [r11 - 1]
cmp r9d, 6
jbe 0x1400236e0
lea rbx, [rcx + rax]
lea rdi, [rdx + rax + 1]
mov rsi, rbx
sub rsi, rdi
cmp rsi, 0xe
jbe 0x1400236e0
lea rdi, [rdx + 1]
mov rsi, rbx
sub rsi, rdi
cmp rsi, 0xe
jbe 0x1400236e0
cmp r9d, 0xe
jbe 0x140023b83
mov esi, r11d
lea rdi, [rdx + rax]
xor r9d, r9d
shr esi, 4
shl rsi, 4
nop
movdqu xmm0, xmmword [rdi + r9]
movdqu xmm3, xmmword [rdx + r9]
psubb xmm0, xmm3
movups xmmword [rbx + r9], xmm0
add r9, 0x10
cmp rsi, r9
jne 0x140023450
mov ebx, r11d
and ebx, 0xfffffff0
lea r9d, [rbx + r10]
test r11b, 0xf
je case.0x140021f22.0
sub r11d, ebx
lea esi, [r11 - 1]
cmp esi, 6
jbe 0x1400234b7
add rax, rbx
movq xmm1, qword [rdx + rbx]
movq xmm0, qword [rdx + rax]
psubb xmm0, xmm1
movq qword [rcx + rax], xmm0
mov eax, r11d
and eax, 0xfffffff8
add r9d, eax
and r11d, 7
je case.0x140021f22.0
mov r11d, r9d
movsxd rbx, r9d
sub r11d, r10d
movzx eax, byte [rdx + rbx]
movsxd r11, r11d
sub al, byte [rdx + r11]
mov byte [rcx + rbx], al
lea eax, [r9 + 1]
cmp eax, r8d
jge case.0x140021f22.0
movsxd rbx, eax
sub eax, r10d
cdqe
movzx r11d, byte [rdx + rbx]
sub r11b, byte [rdx + rax]
lea eax, [r9 + 2]
mov byte [rcx + rbx], r11b
cmp eax, r8d
jge case.0x140021f22.0
movsxd rbx, eax
sub eax, r10d
cdqe
movzx r11d, byte [rdx + rbx]
sub r11b, byte [rdx + rax]
lea eax, [r9 + 3]
mov byte [rcx + rbx], r11b
cmp eax, r8d
jge case.0x140021f22.0
movsxd rbx, eax
sub eax, r10d
cdqe
movzx r11d, byte [rdx + rbx]
sub r11b, byte [rdx + rax]
lea eax, [r9 + 4]
mov byte [rcx + rbx], r11b
cmp eax, r8d
jge case.0x140021f22.0
movsxd rbx, eax
sub eax, r10d
cdqe
movzx r11d, byte [rdx + rbx]
sub r11b, byte [rdx + rax]
lea eax, [r9 + 5]
mov byte [rcx + rbx], r11b
cmp eax, r8d
jl 0x1400220b7
jmp case.0x140021f22.0
neg ebx
mov r14, rdx
mov r15, rdx
movsxd r8, ebx
sub r14, r9
sub r15, rax
sub r8, rax
add r8, rdx
jmp 0x1400235aa
cmp r11d, r10d
cmovge ebx, ebp
sub esi, ebx
mov byte [rcx + rax], sil
add rax, 1
cmp dword [rsp + 0xc], eax
jle case.0x140021f22.0
movzx r10d, byte [r14 + rax]
movzx edi, byte [r15 + rax]
movzx r11d, byte [r8 + rax]
movzx esi, byte [rdx + rax]
lea r9d, [r10 + rdi]
mov ebp, r10d
mov r12d, edi
sub r9d, r11d
mov ebx, r11d
mov r13d, r9d
sub r13d, r10d
mov r10d, r13d
neg r10d
cmovs r10d, r13d
mov r13d, r9d
sub r13d, r11d
mov r11d, r13d
neg r11d
cmovs r11d, r13d
mov r13d, r10d
cmp r11d, r10d
cmovle r13d, r11d
sub r9d, edi
mov edi, r9d
neg edi
cmovs edi, r9d
cmp r13d, edi
jl 0x140023590
mov ebx, r12d
jmp 0x140023596
mov r10, rdx
sub r10, rax
nop word cs:[rax + rax]
movzx r9d, byte [rdx + rax]
sub r9b, byte [r10 + rax]
mov byte [rcx + rax], r9b
add rax, 1
cmp r8d, eax
jg 0x140023620
jmp case.0x140021f22.0
mov rbx, rdx
mov r11, rdx
sub rbx, rax
sub r11, r9
nop dword [rax]
movzx r10d, byte [r11 + rax]
movzx r9d, byte [rbx + rax]
add r9d, r10d
movzx r10d, byte [rdx + rax]
sar r9d, 1
sub r10d, r9d
mov byte [rcx + rax], r10b
add rax, 1
cmp r8d, eax
jg 0x140023650
jmp case.0x140021f22.0
mov r11, rdx
sub r11, rax
nop word cs:[rax + rax]
movzx r10d, byte [r11 + rax]
movzx r9d, byte [rdx + rax]
shr r10b, 1
sub r9d, r10d
mov byte [rcx + rax], r9b
add rax, 1
cmp r8d, eax
jg 0x140023690
jmp case.0x140021f22.0
mov r10, rdx
sub r10, r9
nop
movzx r9d, byte [rdx + rax]
sub r9b, byte [r10 + rax]
mov byte [rcx + rax], r9b
add rax, 1
cmp r8d, eax
jg 0x1400236c0
jmp case.0x140021f22.0
mov r10, rdx
sub r10, rax
nop word cs:[rax + rax]
movzx r9d, byte [rdx + rax]
sub r9b, byte [r10 + rax]
mov byte [rcx + rax], r9b
add rax, 1
cmp r8d, eax
jg 0x1400236f0
jmp case.0x140021f22.0
mov r9d, ebx
mov r11, rcx
neg r9d
movsxd r9, r9d
lea rdi, [rdx + r9 + 1]
sub r11, rdi
cmp r11, 0xe
jbe 0x140022bca
lea rdi, [rdx + 1]
mov r11, rcx
sub r11, rdi
cmp r11, 0xe
jbe 0x140022bca
cmp eax, 0xe
jbe 0x140023b9a
mov r11d, r10d
add r9, rdx
xor eax, eax
shr r11d, 4
shl r11, 4
nop word cs:[rax + rax]
movdqu xmm0, xmmword [rdx + rax]
movdqu xmm5, xmmword [r9 + rax]
psubb xmm0, xmm5
movups xmmword [rcx + rax], xmm0
add rax, 0x10
cmp r11, rax
jne 0x140023760
mov eax, r10d
and eax, 0xfffffff0
mov r11d, eax
cmp r10d, eax
je case.0x140021f22.4
mov esi, r10d
sub esi, eax
lea edi, [rsi - 1]
cmp edi, 6
jbe 0x1400237c4
movq xmm1, qword [r9 + r11]
movq xmm0, qword [rdx + r11]
mov r9d, esi
and r9d, 0xfffffff8
psubb xmm0, xmm1
add eax, r9d
and esi, 7
movq qword [rcx + r11], xmm0
je case.0x140021f22.4
mov r11d, eax
movsxd rsi, eax
sub r11d, ebx
movzx r9d, byte [rdx + rsi]
movsxd r11, r11d
sub r9b, byte [rdx + r11]
mov byte [rcx + rsi], r9b
lea r9d, [rax + 1]
cmp r10d, r9d
jle case.0x140021f22.4
movsxd rsi, r9d
sub r9d, ebx
movsxd r9, r9d
movzx r11d, byte [rdx + rsi]
sub r11b, byte [rdx + r9]
lea r9d, [rax + 2]
mov byte [rcx + rsi], r11b
cmp r10d, r9d
jle case.0x140021f22.4
movsxd rsi, r9d
sub r9d, ebx
movsxd r9, r9d
movzx r11d, byte [rdx + rsi]
sub r11b, byte [rdx + r9]
lea r9d, [rax + 3]
mov byte [rcx + rsi], r11b
cmp r10d, r9d
jle case.0x140021f22.4
movsxd rsi, r9d
sub r9d, ebx
movsxd r9, r9d
movzx r11d, byte [rdx + rsi]
sub r11b, byte [rdx + r9]
lea r9d, [rax + 4]
mov byte [rcx + rsi], r11b
cmp r10d, r9d
jle case.0x140021f22.4
movsxd rsi, r9d
sub r9d, ebx
movsxd r9, r9d
movzx r11d, byte [rdx + rsi]
sub r11b, byte [rdx + r9]
lea r9d, [rax + 5]
mov byte [rcx + rsi], r11b
cmp r10d, r9d
jle case.0x140021f22.4
movsxd rsi, r9d
sub r9d, ebx
add eax, 6
movsxd r9, r9d
movzx r11d, byte [rdx + rsi]
sub r11b, byte [rdx + r9]
mov byte [rcx + rsi], r11b
cmp r10d, eax
jle case.0x140021f22.4
movsxd r11, eax
sub eax, ebx
cdqe
movzx r9d, byte [rdx + r11]
sub r9b, byte [rdx + rax]
mov byte [rcx + r11], r9b
jmp case.0x140021f22.4
cmp eax, 0xe
jbe 0x140023b8d
mov r11d, r10d
add r9, rdx
xor eax, eax
shr r11d, 4
shl r11, 4
nop word [rax + rax]
movdqu xmm0, xmmword [rdx + rax]
movdqu xmm2, xmmword [r9 + rax]
psubb xmm0, xmm2
movups xmmword [rcx + rax], xmm0
add rax, 0x10
cmp r11, rax
jne 0x1400238d0
mov eax, r10d
and eax, 0xfffffff0
mov r11d, eax
cmp r10d, eax
je case.0x140021f22.2
mov esi, r10d
sub esi, eax
lea edi, [rsi - 1]
cmp edi, 6
jbe 0x140023934
movq xmm1, qword [r9 + r11]
movq xmm0, qword [rdx + r11]
mov r9d, esi
and r9d, 0xfffffff8
psubb xmm0, xmm1
add eax, r9d
and esi, 7
movq qword [rcx + r11], xmm0
je case.0x140021f22.2
mov r11d, eax
movsxd rsi, eax
sub r11d, ebx
movzx r9d, byte [rdx + rsi]
movsxd r11, r11d
sub r9b, byte [rdx + r11]
mov byte [rcx + rsi], r9b
lea r9d, [rax + 1]
cmp r10d, r9d
jle case.0x140021f22.2
movsxd rsi, r9d
sub r9d, ebx
movsxd r9, r9d
movzx r11d, byte [rdx + rsi]
sub r11b, byte [rdx + r9]
lea r9d, [rax + 2]
mov byte [rcx + rsi], r11b
cmp r10d, r9d
jle case.0x140021f22.2
movsxd rsi, r9d
sub r9d, ebx
movsxd r9, r9d
movzx r11d, byte [rdx + rsi]
sub r11b, byte [rdx + r9]
lea r9d, [rax + 3]
mov byte [rcx + rsi], r11b
cmp r10d, r9d
jle case.0x140021f22.2
movsxd rsi, r9d
sub r9d, ebx
movsxd r9, r9d
movzx r11d, byte [rdx + rsi]
sub r11b, byte [rdx + r9]
lea r9d, [rax + 4]
mov byte [rcx + rsi], r11b
cmp r10d, r9d
jle case.0x140021f22.2
movsxd rsi, r9d
sub r9d, ebx
movsxd r9, r9d
movzx r11d, byte [rdx + rsi]
sub r11b, byte [rdx + r9]
lea r9d, [rax + 5]
mov byte [rcx + rsi], r11b
cmp r10d, r9d
jle case.0x140021f22.2
movsxd rsi, r9d
sub r9d, ebx
add eax, 6
movsxd r9, r9d
movzx r11d, byte [rdx + rsi]
sub r11b, byte [rdx + r9]
mov byte [rcx + rsi], r11b
cmp r10d, eax
jle case.0x140021f22.2
movsxd r11, eax
sub eax, ebx
cdqe
movzx r9d, byte [rdx + r11]
sub r9b, byte [rdx + rax]
mov byte [rcx + r11], r9b
jmp case.0x140021f22.2
mov edi, ebx
movsxd rax, r10d
xor r9d, r9d
neg edi
movsxd rdi, edi
add rdi, rdx
nop dword [rax]
movzx esi, byte [rdi + r9]
movzx r11d, byte [rdx + r9]
shr sil, 1
sub r11d, esi
mov byte [rcx + r9], r11b
add r9, 1
cmp rax, r9
jne 0x140023a38
jmp case.0x140021f22.3
cmp eax, 0xe
jbe 0x140023b64
mov r9d, r10d
xor eax, eax
shr r9d, 4
shl r9, 4
movdqu xmm3, xmmword [rdx + rax]
movups xmmword [rcx + rax], xmm3
add rax, 0x10
cmp rax, r9
jne 0x140023a70
mov eax, r10d
and eax, 0xfffffff0
mov r9d, eax
cmp r10d, eax
je case.0x140021f22.1
mov r11d, r10d
sub r11d, eax
lea ebx, [r11 - 1]
cmp ebx, 6
jbe 0x140023abf
mov rbx, qword [rdx + r9]
mov qword [rcx + r9], rbx
mov r9d, r11d
and r9d, 0xfffffff8
add eax, r9d
and r11d, 7
je case.0x140021f22.1
movsxd r9, eax
movzx r11d, byte [rdx + r9]
mov byte [rcx + r9], r11b
lea r9d, [rax + 1]
cmp r10d, r9d
jle case.0x140021f22.1
movsxd r9, r9d
movzx r11d, byte [rdx + r9]
mov byte [rcx + r9], r11b
lea r9d, [rax + 2]
cmp r10d, r9d
jle case.0x140021f22.1
movsxd r9, r9d
movzx r11d, byte [rdx + r9]
mov byte [rcx + r9], r11b
lea r9d, [rax + 3]
cmp r10d, r9d
jle case.0x140021f22.1
movsxd r9, r9d
movzx r11d, byte [rdx + r9]
mov byte [rcx + r9], r11b
lea r9d, [rax + 4]
cmp r10d, r9d
jle case.0x140021f22.1
movsxd r9, r9d
movzx r11d, byte [rdx + r9]
mov byte [rcx + r9], r11b
lea r9d, [rax + 5]
cmp r10d, r9d
jle case.0x140021f22.1
movsxd r9, r9d
add eax, 6
movzx r11d, byte [rdx + r9]
mov byte [rcx + r9], r11b
cmp r10d, eax
jle case.0x140021f22.1
cdqe
movzx r9d, byte [rdx + rax]
mov byte [rcx + rax], r9b
jmp case.0x140021f22.1
xor r9d, r9d
xor eax, eax
jmp 0x140023aa3
xor r9d, r9d
add r11, rdx
jmp 0x14002328d
mov r9d, r10d
xor ebx, ebx
jmp 0x140021fee
mov r9d, r10d
xor ebx, ebx
jmp 0x14002348e
xor r11d, r11d
xor eax, eax
add r9, rdx
jmp 0x14002390b
xor r11d, r11d
xor eax, eax
add r9, rdx
jmp 0x14002379b