Function at 0x140103cd0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc8
movdqa xmmword [rsp + 0xb0], xmm13
movapd xmmword [rsp + 0xa0], xmm12
movdqa xmmword [rsp + 0x90], xmm11
movaps xmmword [rsp + 0x80], xmm10
movaps xmmword [rsp + 0x70], xmm9
movaps xmmword [rsp + 0x60], xmm8
movdqa xmmword [rsp + 0x50], xmm7
movaps xmmword [rsp + 0x40], xmm6
mov r14d, r9d
mov qword [rsp + 0x30], r8
mov rdi, rdx
mov r15, rcx
movdqa xmm6, xmmword [0x14012d1c0]
pcmpeqd xmm7, xmm7
movdqa xmm8, xmmword [0x14012d1d0]
movdqa xmm9, xmmword [0x14012d1e0]
movdqa xmm10, xmmword [0x14012d1f0]
lea rcx, [rdi - 1]
mov rsi, r15
mov rbx, qword [rsp + 0x30]
jmp 0x140103d76
mov byte [r8], al
mov rsi, rdx
mov rax, rdi
sub rax, rsi
cmp rax, 5
jbe 0x1401047ac
cmp rax, 0x17
jle 0x14010499b
sub rbx, 1
jb 0x1401049d9
mov r8, rax
shr r8, 1
lea rdx, [rsi + r8]
movzx r9d, byte [rcx]
cmp rax, 0x81
jb 0x140103dd0
movzx r10d, byte [rdx]
movzx eax, byte [rsi]
cmp r10b, al
jge 0x140103ded
cmp r9b, r10b
jge 0x140103e34
mov byte [rsi], r9b
jmp 0x140103e45
movzx r8d, byte [rsi]
movzx eax, byte [rdx]
cmp r8b, al
jge 0x140103e0b
cmp r9b, r8b
jge 0x140103e91
mov byte [rdx], r9b
jmp 0x140103ea3
cmp r9b, r10b
jge 0x140103e47
mov byte [rdx], r9b
mov byte [rcx], r10b
movzx eax, byte [rdx]
movzx r9d, byte [rsi]
cmp al, r9b
jge 0x140103e47
mov byte [rsi], al
mov byte [rdx], r9b
jmp 0x140103e47
cmp r9b, r8b
jge 0x140103f78
mov byte [rsi], r9b
mov byte [rcx], r8b
movzx eax, byte [rsi]
movzx r8d, byte [rdx]
cmp al, r8b
jge 0x140103f78
mov byte [rdx], al
mov byte [rsi], r8b
jmp 0x140103f78
mov byte [rsi], r10b
mov byte [rdx], al
movzx r9d, byte [rcx]
cmp r9b, al
jge 0x140103e47
mov byte [rdx], r9b
mov byte [rcx], al
lea rax, [r8 + rsi]
dec rax
movzx r10d, byte [r8 + rsi - 1]
movzx r9d, byte [rsi + 1]
movzx r11d, byte [rdi - 2]
cmp r10b, r9b
jge 0x140103e6e
cmp r11b, r10b
jge 0x140103eaa
mov byte [rsi + 1], r11b
jmp 0x140103ebe
cmp r11b, r10b
jge 0x140103ec2
mov byte [rax], r11b
mov byte [rdi - 2], r10b
movzx r9d, byte [rax]
movzx r10d, byte [rsi + 1]
cmp r9b, r10b
jge 0x140103ec2
mov byte [rsi + 1], r9b
mov byte [rax], r10b
jmp 0x140103ec2
mov byte [rdx], r8b
mov byte [rsi], al
movzx edx, byte [rcx]
cmp dl, al
jge 0x140103f78
mov byte [rsi], dl
mov byte [rcx], al
jmp 0x140103f78
mov byte [rsi + 1], r10b
mov byte [rax], r9b
movzx r10d, byte [rdi - 2]
cmp r10b, r9b
jge 0x140103ec2
mov byte [rax], r10b
mov byte [rdi - 2], r9b
lea r9, [r8 + rsi]
inc r9
movzx r10d, byte [r8 + rsi + 1]
movzx r8d, byte [rsi + 2]
movzx r11d, byte [rdi - 3]
cmp r10b, r8b
jge 0x140103ee9
cmp r11b, r10b
jge 0x140103f0c
mov byte [rsi + 2], r11b
jmp 0x140103f20
cmp r11b, r10b
jge 0x140103f24
mov byte [r9], r11b
mov byte [rdi - 3], r10b
movzx r8d, byte [r9]
movzx r10d, byte [rsi + 2]
cmp r8b, r10b
jge 0x140103f24
mov byte [rsi + 2], r8b
mov byte [r9], r10b
jmp 0x140103f24
mov byte [rsi + 2], r10b
mov byte [r9], r8b
movzx r10d, byte [rdi - 3]
cmp r10b, r8b
jge 0x140103f24
mov byte [r9], r10b
mov byte [rdi - 3], r8b
movzx r8d, byte [rdx]
movzx r10d, byte [rax]
movzx r11d, byte [r9]
cmp r8b, r10b
jge 0x140103f50
cmp r11b, r8b
jl 0x140103f6a
mov byte [rax], r8b
mov byte [rdx], r10b
mov rax, rdx
mov r8d, r11d
cmp r11b, r10b
jl 0x140103f6a
mov r8d, r10d
jmp 0x140103f70
cmp r11b, r8b
jge 0x140103f70
mov byte [rdx], r11b
mov byte [r9], r8b
mov r9, rdx
mov r8d, r10d
cmp r11b, r10b
jge 0x14010404b
mov byte [rax], r11b
mov byte [r9], r10b
movzx eax, byte [rsi]
mov byte [rsi], r8b
mov byte [rdx], al
test r14b, 1
jne 0x140104053
movzx eax, byte [rsi]
cmp byte [rsi - 1], al
jl 0x14010405a
cmp al, byte [rcx]
jge 0x140103fb0
mov r8, rsi
nop word cs:[rax + rax]
lea rdx, [r8 + 1]
cmp al, byte [r8 + 1]
mov r8, rdx
jge 0x140103fa0
jmp 0x140103fd0
lea r8, [rsi + 1]
nop word cs:[rax + rax]
mov rdx, r8
cmp r8, rdi
jae 0x140103fd0
lea r8, [rdx + 1]
cmp al, byte [rdx]
jge 0x140103fc0
mov r8, rdi
cmp rdx, rdi
jae 0x140103fed
mov r9, rdi
nop dword [rax + rax]
lea r8, [r9 - 1]
cmp al, byte [r9 - 1]
mov r9, r8
jl 0x140103fe0
cmp rdx, r8
jae 0x140104032
movzx r9d, byte [rdx]
movzx r10d, byte [r8]
nop word [rax + rax]
mov byte [rdx], r10b
mov byte [r8], r9b
nop word cs:[rax + rax]
movzx r9d, byte [rdx + 1]
inc rdx
cmp al, r9b
jge 0x140104010
nop dword [rax]
movzx r10d, byte [r8 - 1]
dec r8
cmp al, r10b
jl 0x140104020
cmp rdx, r8
jb 0x140104000
lea r8, [rdx - 1]
cmp r8, rsi
je 0x140103d70
movzx r9d, byte [r8]
mov byte [rsi], r9b
jmp 0x140103d70
mov r8d, r11d
jmp 0x140103f70
movzx eax, byte [r15]
mov rsi, r15
cmp al, byte [rcx]
jge 0x14010407e
mov rcx, rsi
nop word cs:[rax + rax]
lea rdx, [rcx + 1]
cmp al, byte [rcx + 1]
mov rcx, rdx
jge 0x140104070
jmp 0x1401040a0
lea rcx, [rsi + 1]
nop word cs:[rax + rax]
mov rdx, rcx
cmp rcx, rdi
jae 0x1401040a0
lea rcx, [rdx + 1]
cmp al, byte [rdx]
jge 0x140104090
mov r8, rdi
cmp rdx, rdi
jae 0x1401040bc
mov rcx, rdi
nop dword [rax + rax]
lea r8, [rcx - 1]
cmp al, byte [rcx - 1]
mov rcx, r8
jl 0x1401040b0
mov qword [rsp + 0x30], rbx
mov r15, rdx
cmp rdx, r8
jae 0x1401040da
movzx ecx, byte [rdx]
movzx r9d, byte [r8]
mov byte [rdx], r9b
mov byte [r8], cl
lea r15, [rdx + 1]
lea r9, [r8 - 1]
mov r12, r9
sub r12, r15
cmp r12, 0x7f
jl 0x140104354
movzx ecx, al
movd xmm0, ecx
punpcklbw xmm0, xmm0
xor r10d, r10d
xor r11d, r11d
jmp 0x140104142
xor ecx, ecx
test r11, r11
sete cl
shl rcx, 6
add r15, rcx
xor ecx, ecx
test r10, r10
setne cl
shl rcx, 6
add r9, rcx
add r9, 0xffffffffffffffc0
mov r12, r9
sub r12, r15
cmp r12, 0x7e
jle 0x14010435a
test r11, r11
je 0x140104160
test r10, r10
je 0x140104228
test r11, r11
jne 0x140104310
jmp 0x140104110
xorpd xmm2, xmm2
xor ecx, ecx
movdqa xmm1, xmm6
nop word [rax + rax]
movzx r11d, word [r15 + rcx]
movd xmm3, r11d
movdqa xmm4, xmm0
pcmpgtb xmm4, xmm3
pxor xmm4, xmm7
punpcklbw xmm4, xmm4
pshuflw xmm3, xmm4, 0xd4
pshufd xmm3, xmm3, 0xd4
pand xmm3, xmm8
movdqa xmm4, xmm3
psllq xmm4, xmm1
pshufd xmm5, xmm1, 0xee
psllq xmm3, xmm5
movsd xmm3, xmm4
orpd xmm3, xmm2
movdqa xmm4, xmm1
paddq xmm4, xmm9
movzx r11d, word [r15 + rcx + 2]
movd xmm2, r11d
movdqa xmm5, xmm0
pcmpgtb xmm5, xmm2
pxor xmm5, xmm7
punpcklbw xmm5, xmm5
pshuflw xmm2, xmm5, 0xd4
pshufd xmm2, xmm2, 0xd4
pand xmm2, xmm8
movdqa xmm5, xmm2
psllq xmm5, xmm4
pshufd xmm4, xmm4, 0xee
psllq xmm2, xmm4
movsd xmm2, xmm5
orpd xmm2, xmm3
add rcx, 4
paddq xmm1, xmm10
cmp rcx, 0x40
jne 0x140104170
pshufd xmm1, xmm2, 0xee
por xmm1, xmm2
movq r11, xmm1
test r10, r10
jne 0x140104150
xorpd xmm2, xmm2
xor ecx, ecx
movdqa xmm1, xmm6
nop word cs:[rax + rax]
movzx r10d, word [r9 + rcx - 1]
movd xmm4, r10d
punpcklbw xmm4, xmm4
movdqa xmm3, xmm0
punpcklbw xmm3, xmm3
punpcklwd xmm3, xmm3
pshufd xmm3, xmm3, 0xd4
pshuflw xmm4, xmm4, 0xc5
pshufd xmm5, xmm4, 0xd4
movdqa xmm4, xmm3
pcmpgtb xmm4, xmm5
pand xmm4, xmm8
movdqa xmm5, xmm4
psllq xmm5, xmm1
pshufd xmm11, xmm1, 0xee
psllq xmm4, xmm11
movsd xmm4, xmm5
orpd xmm4, xmm2
movdqa xmm2, xmm1
paddq xmm2, xmm9
movzx r10d, word [r9 + rcx - 3]
movd xmm5, r10d
punpcklbw xmm5, xmm5
pshuflw xmm5, xmm5, 0xc5
pshufd xmm5, xmm5, 0xd4
pcmpgtb xmm3, xmm5
pand xmm3, xmm8
movdqa xmm5, xmm3
psllq xmm5, xmm2
pshufd xmm2, xmm2, 0xee
psllq xmm3, xmm2
movsd xmm3, xmm5
movapd xmm2, xmm3
orpd xmm2, xmm4
paddq xmm1, xmm10
add rcx, 0xfffffffffffffffc
cmp rcx, 0xffffffffffffffc0
jne 0x140104240
pshufd xmm1, xmm2, 0xee
por xmm1, xmm2
movq r10, xmm1
test r11, r11
je 0x140104110
nop word cs:[rax + rax]
test r10, r10
je 0x140104110
mov rcx, r11
mov r12, r10
tzcnt r13, r11
dec r11
tzcnt rbp, r10
dec r10
and r10, r12
mov r12, r9
sub r12, rbp
movzx ebp, byte [r15 + r13]
movzx ebx, byte [r12]
mov byte [r15 + r13], bl
mov byte [r12], bpl
and r11, rcx
jne 0x140104310
jmp 0x140104110
xor r11d, r11d
xor r10d, r10d
mov rcx, r11
or rcx, r10
jne 0x14010437c
lea r13, [r12 + 1]
mov rcx, r13
shr rcx, 0x3f
add r12, rcx
inc r12
sar r12, 1
sub r13, r12
jmp 0x140104394
add r12, 0xffffffffffffffc1
mov r13d, 0x40
mov ecx, 0x40
test r11, r11
jne 0x1401044cf
test r12, r12
jle 0x1401043ac
cmp r12, 4
jae 0x1401043b4
xor r11d, r11d
xor ecx, ecx
mov rbp, r15
jmp 0x1401044b0
xor r11d, r11d
jmp 0x1401044c9
mov rcx, r12
and rcx, 0xfffffffffffffffc
movzx r11d, al
movd xmm0, r11d
punpcklbw xmm0, xmm0
pxor xmm1, xmm1
xor r11d, r11d
xorpd xmm2, xmm2
movdqa xmm3, xmm6
nop word [rax + rax]
movdqa xmm4, xmm3
paddq xmm4, xmm9
movzx ebx, word [r15 + r11]
movd xmm5, ebx
movzx ebx, word [r15 + r11 + 2]
movd xmm11, ebx
movdqa xmm12, xmm0
pcmpgtb xmm12, xmm5
pxor xmm12, xmm7
punpcklbw xmm12, xmm12
pshuflw xmm5, xmm12, 0xd4
pshufd xmm5, xmm5, 0xd4
pand xmm5, xmm8
movdqa xmm12, xmm0
pcmpgtb xmm12, xmm11
pxor xmm12, xmm7
punpcklbw xmm12, xmm12
pshuflw xmm11, xmm12, 0xd4
pshufd xmm11, xmm11, 0xd4
pand xmm11, xmm8
movdqa xmm12, xmm5
psllq xmm12, xmm3
pshufd xmm13, xmm3, 0xee
psllq xmm5, xmm13
movsd xmm5, xmm12
por xmm1, xmm5
movdqa xmm5, xmm11
psllq xmm5, xmm4
pshufd xmm4, xmm4, 0xee
psllq xmm11, xmm4
movsd xmm11, xmm5
orpd xmm2, xmm11
add r11, 4
paddq xmm3, xmm10
cmp rcx, r11
jne 0x1401043e0
orpd xmm2, xmm1
pshufd xmm0, xmm2, 0xee
por xmm0, xmm2
movq r11, xmm0
cmp r12, rcx
je 0x1401044c9
lea rbp, [r15 + rcx]
nop
xor ebx, ebx
cmp byte [rbp], al
setge bl
shl rbx, cl
or r11, rbx
inc rbp
inc rcx
cmp r12, rcx
jne 0x1401044b0
mov rcx, r12
mov r12, r13
mov qword [rsp + 0x38], rcx
test r10, r10
mov dword [rsp + 0x2c], r14d
jne 0x14010462a
test r12, r12
jle 0x14010462a
cmp r12, 4
jae 0x1401044fe
xor r10d, r10d
xor ecx, ecx
mov r13, r9
jmp 0x140104610
mov rcx, r12
and rcx, 0xfffffffffffffffc
mov r13, rcx
neg r13
movzx r10d, al
movd xmm0, r10d
punpcklbw xmm0, xmm0
pxor xmm1, xmm1
xor r10d, r10d
xorpd xmm2, xmm2
movdqa xmm3, xmm6
nop word [rax + rax]
movdqa xmm4, xmm3
paddq xmm4, xmm9
movzx ebx, word [r9 + r10 - 1]
movd xmm5, ebx
punpcklbw xmm5, xmm5
movzx ebx, word [r9 + r10 - 3]
movd xmm11, ebx
punpcklbw xmm11, xmm11
movdqa xmm12, xmm0
punpcklbw xmm12, xmm12
punpcklwd xmm12, xmm12
pshufd xmm12, xmm12, 0xd4
pshuflw xmm5, xmm5, 0xc5
pshufd xmm5, xmm5, 0xd4
movdqa xmm13, xmm12
pcmpgtb xmm13, xmm5
pand xmm13, xmm8
pshuflw xmm5, xmm11, 0xc5
pshufd xmm5, xmm5, 0xd4
pcmpgtb xmm12, xmm5
pand xmm12, xmm8
movdqa xmm5, xmm13
psllq xmm5, xmm3
pshufd xmm11, xmm3, 0xee
psllq xmm13, xmm11
movsd xmm13, xmm5
por xmm1, xmm13
movdqa xmm5, xmm12
psllq xmm5, xmm4
pshufd xmm4, xmm4, 0xee
psllq xmm12, xmm4
movsd xmm12, xmm5
orpd xmm2, xmm12
paddq xmm3, xmm10
add r10, 0xfffffffffffffffc
cmp r13, r10
jne 0x140104530
orpd xmm2, xmm1
pshufd xmm0, xmm2, 0xee
por xmm0, xmm2
movq r10, xmm0
cmp r12, rcx
je 0x14010462a
add r13, r9
nop word cs:[rax + rax]
xor ebx, ebx
cmp byte [r13], al
setl bl
shl rbx, cl
or r10, rbx
dec r13
inc rcx
cmp r12, rcx
jne 0x140104610
test r11, r11
je 0x140104669
nop
test r10, r10
je 0x140104669
mov rcx, r11
mov rbx, r10
tzcnt r13, r11
dec r11
tzcnt rbp, r10
dec r10
and r10, rbx
mov rbx, r9
sub rbx, rbp
movzx ebp, byte [r15 + r13]
movzx r14d, byte [rbx]
mov byte [r15 + r13], r14b
mov byte [rbx], bpl
and r11, rcx
jne 0x140104630
test r11, r11
mov ecx, 0
mov rbx, qword [rsp + 0x38]
cmovne rbx, rcx
add r15, rbx
test r10, r10
cmovne r12, rcx
sub r9, r12
test r11, r11
je 0x140104729
mov r14d, dword [rsp + 0x2c]
jmp 0x1401046a8
dec r9
test r11, r11
je 0x1401046d6
mov r10, r11
bsr rcx, r11
mov r11, 0xffffffffffffffff
shl r11, cl
not r11
and r11, r10
add rcx, r15
cmp r9, rcx
je 0x1401046a0
movzx r10d, byte [rcx]
movzx ebx, byte [r9]
mov byte [rcx], bl
mov byte [r9], r10b
jmp 0x1401046a0
inc r9
mov r15, r9
lea r12, [r15 - 1]
cmp r12, rsi
je 0x1401046ec
movzx ecx, byte [r12]
mov byte [rsi], cl
mov byte [r12], al
cmp rdx, r8
jb 0x140104783
mov rcx, rsi
mov rdx, r12
call fcn.140104d80
mov ebp, eax
mov rcx, r15
mov rdx, rdi
call fcn.140104d80
test al, al
je 0x14010477a
mov rdi, r12
mov r15, rsi
test bpl, bpl
je 0x140103d56
jmp case.0x1401047ba.0
test r10, r10
je 0x1401047a2
mov r14d, dword [rsp + 0x2c]
jmp 0x140104748
inc r15
test r10, r10
je 0x1401046dc
mov r11, r10
bsr rcx, r10
mov r10, 0xffffffffffffffff
shl r10, cl
not r10
and r10, r11
mov r11, r9
sub r11, rcx
cmp r15, r11
je 0x140104740
movzx ecx, byte [r11]
movzx ebx, byte [r15]
mov byte [r11], bl
mov byte [r15], cl
jmp 0x140104740
test bpl, bpl
jne 0x140103d56
and r14b, 1
mov rcx, rsi
mov rdx, r12
mov r8, qword [rsp + 0x30]
mov r9d, r14d
call fcn.140103cd0
xor r14d, r14d
jmp 0x140103d56
mov r14d, dword [rsp + 0x2c]
jmp 0x1401046dc
lea rdx, [0x140104d64]
movsxd rax, dword [rdx + rax*4]
add rax, rdx
jmp rax
movzx eax, byte [rcx]
movzx edx, byte [rsi]
cmp al, dl
jge case.0x1401047ba.0
mov byte [rsi], al
mov byte [rcx], dl
jmp case.0x1401047ba.0
movzx eax, byte [rsi + 1]
movzx edx, byte [rcx]
cmp al, dl
mov r8d, edx
cmovl r8d, eax
cmovg edx, eax
mov byte [rcx], dl
mov byte [rsi + 1], r8b
movzx eax, byte [rcx]
movzx edx, byte [rsi]
cmp al, dl
mov r8d, edx
cmovl r8d, eax
cmovg edx, eax
mov byte [rcx], dl
movzx eax, byte [rsi + 1]
cmp r8b, al
movzx ecx, byte [rsi]
cmovge ecx, eax
mov byte [rsi], cl
cmovle r8d, eax
mov byte [rsi + 1], r8b
jmp case.0x1401047ba.0
movzx eax, byte [rsi]
movzx edx, byte [rsi + 2]
cmp al, dl
mov r8d, edx
cmovl r8d, eax
cmovg edx, eax
mov byte [rsi + 2], dl
mov byte [rsi], r8b
movzx eax, byte [rsi + 1]
movzx edx, byte [rcx]
cmp al, dl
mov r8d, edx
cmovl r8d, eax
cmovg edx, eax
mov byte [rcx], dl
movzx eax, byte [rsi]
cmp al, r8b
mov edx, r8d
cmovl edx, eax
cmovg r8d, eax
mov byte [rsi + 1], r8b
mov byte [rsi], dl
movzx eax, byte [rsi + 2]
movzx edx, byte [rcx]
cmp al, dl
mov r8d, edx
cmovl r8d, eax
cmovg edx, eax
mov byte [rcx], dl
movzx eax, byte [rsi + 1]
cmp al, r8b
mov ecx, r8d
cmovl ecx, eax
cmovg r8d, eax
mov byte [rsi + 2], r8b
mov byte [rsi + 1], cl
jmp case.0x1401047ba.0
movzx eax, byte [rsi]
movzx edx, byte [rsi + 1]
cmp al, dl
mov r8d, edx
cmovl r8d, eax
cmovg edx, eax
mov byte [rsi + 1], dl
mov byte [rsi], r8b
movzx eax, byte [rsi + 3]
movzx edx, byte [rcx]
cmp al, dl
mov r8d, edx
cmovl r8d, eax
cmovg edx, eax
mov byte [rcx], dl
mov byte [rsi + 3], r8b
movzx eax, byte [rcx]
movzx edx, byte [rsi + 2]
cmp al, dl
mov r8d, edx
cmovl r8d, eax
cmovg edx, eax
mov byte [rcx], dl
movzx eax, byte [rsi + 3]
cmp r8b, al
movzx edx, byte [rsi + 2]
cmovge edx, eax
mov byte [rsi + 2], dl
cmovle r8d, eax
mov byte [rsi + 3], r8b
movzx edx, byte [rsi + 1]
movzx r8d, byte [rcx]
cmp dl, r8b
mov eax, r8d
cmovl eax, edx
cmovg r8d, edx
mov byte [rcx], r8b
movzx ecx, byte [rsi + 3]
movzx edx, byte [rsi]
cmp cl, dl
mov r8d, edx
cmovl r8d, ecx
cmovle ecx, edx
movzx r9d, byte [rsi + 2]
cmp r8b, r9b
cmovge edx, r9d
mov byte [rsi], dl
cmovle r8d, r9d
cmp cl, al
mov edx, eax
cmovl edx, ecx
cmovle ecx, eax
mov byte [rsi + 3], cl
cmp dl, r8b
cmovge eax, r8d
mov byte [rsi + 1], al
cmovle edx, r8d
mov byte [rsi + 2], dl
movaps xmm6, xmmword [rsp + 0x40]
movaps xmm7, xmmword [rsp + 0x50]
movaps xmm8, xmmword [rsp + 0x60]
movaps xmm9, xmmword [rsp + 0x70]
movaps xmm10, xmmword [rsp + 0x80]
movaps xmm11, xmmword [rsp + 0x90]
movaps xmm12, xmmword [rsp + 0xa0]
movaps xmm13, xmmword [rsp + 0xb0]
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp rsi, rdi
sete dl
lea rax, [rsi + 1]
cmp rax, rdi
sete cl
or cl, dl
test r14b, 1
jne 0x140104bc7
test cl, cl
jne case.0x1401047ba.0
mov ecx, esi
not ecx
add ecx, edi
lea rdx, [rdi - 2]
test cl, 1
jne 0x140104bed
mov rcx, rax
mov rax, rsi
jmp 0x140104c17
cmp rsi, rdi
je case.0x1401047ba.0
cmp rax, 2
jl case.0x1401047ba.0
lea rcx, [rax - 2]
shr rcx, 1
mov rdx, rcx
jmp 0x140104a13
mov byte [r8], r11b
lea r8, [rdx - 1]
test rdx, rdx
mov rdx, r8
jle 0x140104ae3
cmp rcx, rdx
jl 0x140104a03
lea r8, [rsi + rdx]
lea rbx, [rdx + rdx]
inc rbx
lea r9, [rsi + rdx*2]
inc r9
lea r11, [rdx + rdx]
add r11, 2
cmp r11, rax
jge 0x140104a60
lea r14, [r9 + 1]
movzx ebp, byte [r9]
movzx r10d, byte [r9 + 1]
cmp bpl, r10b
cmovg r10d, ebp
cmovl r9, r14
cmovl rbx, r11
jmp 0x140104a64
movzx r10d, byte [r9]
movzx r11d, byte [r8]
cmp r10b, r11b
jge 0x140104a98
jmp 0x140104a03
lea r15, [r9 + 1]
movzx ebp, byte [r9]
movzx r10d, byte [r9 + 1]
cmp bpl, r10b
cmovg r10d, ebp
cmovl r9, r15
cmovl r14, rbx
mov rbx, r14
cmp r10b, r11b
jl 0x140104a00
mov byte [r8], r10b
mov r8, r9
cmp rcx, rbx
jl 0x140104a00
lea r14, [rbx + rbx]
inc r14
lea r9, [rsi + rbx*2]
inc r9
add rbx, rbx
add rbx, 2
cmp rbx, rax
jl 0x140104a70
movzx r10d, byte [r9]
jmp 0x140104a8c
mov byte [rcx], dl
lea rcx, [rax - 1]
cmp rax, 2
mov rax, rcx
jle case.0x1401047ba.0
movzx edx, byte [rsi]
lea r8, [rax - 2]
shr r8, 1
mov r9, rsi
xor r11d, r11d
jmp 0x140104b29
lea r14, [rcx + 1]
movzx ebp, byte [rcx]
movzx r11d, byte [rcx + 1]
cmp bpl, r11b
cmovg r11d, ebp
cmovl rcx, r14
cmovl r10, rbx
mov byte [r9], r11b
mov r9, rcx
mov r11, r10
cmp r10, r8
jg 0x140104b50
lea rcx, [r11 + r9]
inc rcx
lea r10, [r11 + r11]
inc r10
lea rbx, [r11 + r11]
add rbx, 2
cmp rbx, rax
jl 0x140104b00
movzx r11d, byte [rcx]
jmp 0x140104b1b
dec rdi
cmp rcx, rdi
je 0x140104ad0
movzx r8d, byte [rdi]
mov byte [rcx], r8b
mov byte [rdi], dl
mov rdx, rcx
sub rdx, rsi
inc rdx
cmp rdx, 2
jl 0x140104ad2
add rdx, 0xfffffffffffffffe
shr rdx, 1
movzx r9d, byte [rsi + rdx]
movzx r8d, byte [rcx]
cmp r9b, r8b
jge 0x140104ad2
lea r10, [rsi + rdx]
nop word cs:[rax + rax]
mov byte [rcx], r9b
mov rcx, r10
test rdx, rdx
je 0x140104bbf
dec rdx
shr rdx, 1
lea r10, [rsi + rdx]
movzx r9d, byte [rsi + rdx]
cmp r9b, r8b
jl 0x140104ba0
mov byte [rcx], r8b
jmp 0x140104ad2
test cl, cl
jne case.0x1401047ba.0
mov ecx, esi
not ecx
add ecx, edi
lea rdx, [rdi - 2]
test cl, 1
jne 0x140104ca5
mov rcx, rax
mov rax, rsi
jmp 0x140104cbc
movzx r8d, byte [rsi]
movzx ecx, byte [rsi + 1]
cmp cl, r8b
jge 0x140104c13
mov r9, rax
nop dword [rax]
mov byte [r9], r8b
movzx r8d, byte [r9 - 2]
dec r9
cmp cl, r8b
jl 0x140104c00
mov byte [r9], cl
lea rcx, [rsi + 2]
cmp rdx, rsi
je case.0x1401047ba.0
lea rdx, [rcx + 1]
jmp 0x140104c45
lea rax, [rcx + 1]
add rcx, 2
add rdx, 2
cmp rcx, rdi
je case.0x1401047ba.0
movzx r8d, byte [rcx]
movzx r9d, byte [rax]
cmp r8b, r9b
jge 0x140104c7b
mov r10, rcx
nop word cs:[rax + rax]
mov byte [r10], r9b
movzx r9d, byte [rax - 1]
mov r10, rax
dec rax
cmp r8b, r9b
jl 0x140104c60
mov byte [rax + 1], r8b
movzx r8d, byte [rcx]
movzx eax, byte [rcx + 1]
cmp al, r8b
jge 0x140104c30
mov r9, rdx
nop word [rax + rax]
mov byte [r9], r8b
movzx r8d, byte [r9 - 2]
dec r9
cmp al, r8b
jl 0x140104c90
mov byte [r9], al
jmp 0x140104c30
movzx r8d, byte [rsi]
movzx ecx, byte [rsi + 1]
cmp cl, r8b
jge 0x140104cb8
mov byte [rsi + 1], r8b
mov byte [rsi], cl
lea rcx, [rsi + 2]
cmp rdx, rsi
je case.0x1401047ba.0
lea rdx, [rcx + 1]
jmp 0x140104ce6
mov r9, rsi
mov byte [r9], al
lea rax, [rcx + 1]
add rcx, 2
add rdx, 2
cmp rcx, rdi
je case.0x1401047ba.0
movzx r8d, byte [rcx]
movzx r9d, byte [rax]
cmp r8b, r9b
jge 0x140104d27
mov r10, rcx
nop word cs:[rax + rax]
mov byte [r10], r9b
cmp rax, rsi
je 0x140104d1d
mov r10, rax
dec rax
movzx r9d, byte [r10 - 1]
cmp r8b, r9b
jl 0x140104d00
inc rax
jmp 0x140104d20
mov rax, rsi
mov byte [rax], r8b
movzx r8d, byte [rcx]
movzx eax, byte [rcx + 1]
cmp al, r8b
jge 0x140104cd1
mov r10, rdx
nop word cs:[rax + rax]
lea r9, [r10 - 1]
mov byte [r10], r8b
cmp r9, rsi
je 0x140104ccb
movzx r8d, byte [r10 - 2]
mov r10, r9
cmp al, r8b
jl 0x140104d40
jmp 0x140104cce