Function at 0x1801b6cc0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x118
movdqa xmmword [rsp + 0x100], xmm15
movaps xmmword [rsp + 0xf0], xmm14
movdqa xmmword [rsp + 0xe0], xmm13
movdqa xmmword [rsp + 0xd0], xmm12
movdqa xmmword [rsp + 0xc0], xmm11
movdqa xmmword [rsp + 0xb0], xmm10
movdqa xmmword [rsp + 0xa0], xmm9
movdqa xmmword [rsp + 0x90], xmm8
movdqa xmmword [rsp + 0x80], xmm7
movdqa xmmword [rsp + 0x70], xmm6
mov r13, rcx
cmp r8, 0x10
jae 0x1801b6d56
test r8, r8
je 0x1801b6d98
mov eax, r8d
and eax, 3
cmp r8, 4
jae 0x1801b6da0
xor r10d, r10d
xor r9d, r9d
jmp 0x1801b6e10
lea r9, [rdx + 0xf]
and r9, 0xfffffffffffffff0
mov r10, r9
sub r10, rdx
mov rax, r8
sub rax, r10
mov rsi, rax
shr rsi, 4
mov r10d, eax
mov rdi, r9
sub rdi, rdx
jne 0x1801b6d84
xor r11d, r11d
jmp 0x1801b6f0a
cmp rdi, 4
jae 0x1801b6e4e
xor r11d, r11d
xor ebx, ebx
jmp 0x1801b6eec
xor r10d, r10d
jmp 0x1801b6e46
mov r11d, r8d
and r11d, 0xc
xor r10d, r10d
xor r9d, r9d
nop dword [rax]
movzx ebx, byte [rdx + r9]
movzx esi, byte [rdx + r9 + 1]
and bl, 0xc0
xor edi, edi
cmp bl, 0x80
setne dil
add rdi, r10
and sil, 0xc0
xor r10d, r10d
cmp sil, 0x80
setne r10b
movzx ebx, byte [rdx + r9 + 2]
and bl, 0xc0
xor esi, esi
cmp bl, 0x80
setne sil
add rsi, r10
add rsi, rdi
movzx ebx, byte [rdx + r9 + 3]
and bl, 0xc0
xor r10d, r10d
cmp bl, 0x80
setne r10b
add r10, rsi
add r9, 4
cmp r11, r9
jne 0x1801b6db0
test rax, rax
je 0x1801b6e3c
add r9, rdx
xor r11d, r11d
nop dword [rax + rax]
movzx ecx, byte [r9 + r11]
and cl, 0xc0
xor esi, esi
cmp cl, 0x80
setne sil
add r10, rsi
inc r11
cmp rax, r11
jne 0x1801b6e20
cmp r8, 4
jae 0x1801b7137
xor r11d, r11d
jmp 0x1801b736b
mov ebx, edi
and ebx, 0xc
pxor xmm0, xmm0
xor r11d, r11d
movdqa xmm2, xmmword [0x180210300]
movdqa xmm3, xmmword [0x180210310]
movdqa xmm4, xmmword [0x180210320]
pxor xmm1, xmm1
nop word cs:[rax + rax]
movzx ebp, word [rdx + r11]
movd xmm5, ebp
movzx ebp, word [rdx + r11 + 2]
movd xmm6, ebp
pand xmm5, xmm2
pand xmm6, xmm2
pcmpeqb xmm5, xmm3
punpcklbw xmm5, xmm5
pshuflw xmm5, xmm5, 0xd4
pshufd xmm5, xmm5, 0xd4
pand xmm5, xmm4
paddq xmm0, xmm5
pcmpeqb xmm6, xmm3
punpcklbw xmm6, xmm6
pshuflw xmm5, xmm6, 0xd4
pshufd xmm5, xmm5, 0xd4
pand xmm5, xmm4
paddq xmm1, xmm5
add r11, 4
cmp rbx, r11
jne 0x1801b6e80
paddq xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq r11, xmm0
jmp 0x1801b6f05
movzx ebp, byte [rdx + rbx]
and bpl, 0xc0
xor r14d, r14d
cmp bpl, 0x80
sete r14b
add r11, r14
inc rbx
cmp rdi, rbx
jne 0x1801b6eec
and r10d, 0xf
movabs rdi, 0xffffffffffffffc
and rdi, rsi
je 0x1801b6fba
mov rbx, rsi
and rbx, 0xfffffffffffffffc
neg rbx
movdqa xmm0, xmmword [0x180210330]
movdqa xmm1, xmmword [0x1802102b0]
movdqa xmm2, xmmword [0x180210230]
pxor xmm3, xmm3
mov r14, r9
nop word [rax + rax]
movdqa xmm4, xmmword [r14]
pand xmm4, xmm0
pcmpeqb xmm4, xmm1
pand xmm4, xmm2
movdqa xmm5, xmmword [r14 + 0x10]
pand xmm5, xmm0
pcmpeqb xmm5, xmm1
psubb xmm4, xmm5
movdqa xmm5, xmmword [r14 + 0x20]
pand xmm5, xmm0
pcmpeqb xmm5, xmm1
psubb xmm4, xmm5
movdqa xmm5, xmmword [r14 + 0x30]
pand xmm5, xmm0
pcmpeqb xmm5, xmm1
psubb xmm4, xmm5
psadbw xmm4, xmm3
movq rcx, xmm4
add rcx, r11
pshufd xmm4, xmm4, 0xee
movq r11, xmm4
add r11, rcx
add r14, 0x40
add rbx, 4
jne 0x1801b6f50
pxor xmm0, xmm0
pxor xmm1, xmm1
and rsi, 3
je 0x1801b7027
shl rdi, 4
add rdi, r9
movdqa xmm1, xmmword [rdi]
pand xmm1, xmmword [0x180210330]
pcmpeqb xmm1, xmmword [0x1802102b0]
pand xmm1, xmmword [0x180210230]
cmp esi, 1
je 0x1801b7027
movdqa xmm2, xmmword [rdi + 0x10]
pand xmm2, xmmword [0x180210330]
pcmpeqb xmm2, xmmword [0x1802102b0]
psubb xmm1, xmm2
cmp esi, 2
je 0x1801b7027
movdqa xmm2, xmmword [rdi + 0x20]
pand xmm2, xmmword [0x180210330]
pcmpeqb xmm2, xmmword [0x1802102b0]
psubb xmm1, xmm2
psadbw xmm1, xmm0
movq rsi, xmm1
pshufd xmm0, xmm1, 0xee
movq rcx, xmm0
test r10, r10
je 0x1801b705e
mov qword [rsp + 0x28], r13
mov r14, rax
and r14, 0xfffffffffffffff0
and eax, 3
cmp r10d, 4
jae 0x1801b7066
xor r15d, r15d
xor ebx, ebx
jmp 0x1801b70e7
xor r15d, r15d
jmp 0x1801b711e
sub r10, rax
lea r12, [r14 + r9]
add r12, 3
xor r15d, r15d
xor ebx, ebx
nop word cs:[rax + rax]
movzx ebp, byte [r12 + rbx - 3]
movzx r13d, byte [r12 + rbx - 2]
and bpl, 0xc0
xor edi, edi
cmp bpl, 0x80
sete dil
add rdi, r15
and r13b, 0xc0
xor r15d, r15d
cmp r13b, 0x80
sete r15b
movzx ebp, byte [r12 + rbx - 1]
and bpl, 0xc0
xor r13d, r13d
cmp bpl, 0x80
sete r13b
add r13, r15
add r13, rdi
movzx edi, byte [r12 + rbx]
and dil, 0xc0
xor r15d, r15d
cmp dil, 0x80
sete r15b
add r15, r13
add rbx, 4
cmp r10, rbx
jne 0x1801b7080
test rax, rax
mov r13, qword [rsp + 0x28]
je 0x1801b711e
add rbx, r14
add rbx, r9
xor r9d, r9d
nop word [rax + rax]
movzx r10d, byte [rbx + r9]
and r10b, 0xc0
xor edi, edi
cmp r10b, 0x80
sete dil
add r15, rdi
inc r9
cmp rax, r9
jne 0x1801b7100
add rsi, r15
add r11, rcx
add r11, rsi
mov r10, r8
sub r10, r11
cmp r8, 4
jb 0x1801b6e46
lea r11, [r8 - 3]
lea rbx, [rdx + 0xf]
and rbx, 0xfffffffffffffff0
mov r14, rbx
sub r14, rdx
mov rax, r11
sub rax, r14
jae 0x1801b7170
mov edi, 0x10
mov eax, 1
xor r9d, r9d
xor esi, esi
cmp r11, 4
jae 0x1801b719e
xor ebx, ebx
mov r14, rdx
jmp 0x1801b724d
lea rdi, [rdx + r14]
mov rsi, rax
shr rsi, 4
mov r9d, eax
and r9d, 0xf
and rax, 0xfffffffffffffff0
add rax, rdi
cmp rbx, rdx
jne 0x1801b7195
xor ebx, ebx
jmp 0x1801b7264
mov r11, r14
cmp r11, 4
jb 0x1801b7166
mov r15, r11
and r15, 0xfffffffffffffffc
lea r14, [rdx + r15]
pxor xmm0, xmm0
xor ebx, ebx
movdqa xmm2, xmmword [0x18029c450]
pcmpeqd xmm3, xmm3
movdqa xmm4, xmmword [0x180210320]
pxor xmm1, xmm1
nop word [rax + rax]
movzx ecx, word [rdx + rbx]
movd xmm5, ecx
movzx ecx, word [rdx + rbx + 2]
movd xmm6, ecx
movdqa xmm7, xmm5
pminub xmm7, xmm2
pcmpeqb xmm7, xmm5
pxor xmm7, xmm3
punpcklbw xmm7, xmm7
pshuflw xmm5, xmm7, 0xd4
pshufd xmm5, xmm5, 0xd4
pand xmm5, xmm4
paddq xmm0, xmm5
movdqa xmm5, xmm6
pminub xmm5, xmm2
pcmpeqb xmm5, xmm6
pxor xmm5, xmm3
punpcklbw xmm5, xmm5
pshuflw xmm5, xmm5, 0xd4
pshufd xmm5, xmm5, 0xd4
pand xmm5, xmm4
paddq xmm1, xmm5
add rbx, 4
cmp r15, rbx
jne 0x1801b71d0
paddq xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq rbx, xmm0
cmp r11, r15
je 0x1801b7264
add r11, rdx
cmp byte [r14], 0xf0
lea rcx, [r14 + 1]
sbb rbx, 0xffffffffffffffff
mov r14, rcx
cmp rcx, r11
jne 0x1801b7250
test rsi, rsi
je 0x1801b72fa
movdqa xmm0, xmmword [0x18029c460]
pxor xmm1, xmm1
nop dword [rax]
cmp rsi, 0xff
mov r14d, 0xff
cmovb r14, rsi
mov r11d, r14d
shl r11d, 4
lea r15, [rdi + r11]
xor r12d, r12d
pxor xmm2, xmm2
nop word cs:[rax + rax]
movdqa xmm3, xmmword [rdi + r12]
movdqa xmm4, xmm3
pmaxub xmm4, xmm0
pcmpeqb xmm4, xmm3
psubb xmm2, xmm4
add r12, 0x10
cmp r11, r12
jne 0x1801b72b0
psadbw xmm2, xmm1
movq rcx, xmm2
add rbx, rcx
pshufd xmm2, xmm2, 0xee
movq r11, xmm2
add r11, rbx
mov rbx, r11
mov rdi, r15
sub rsi, r14
jne 0x1801b7280
test r9, r9
jne 0x1801b7302
jmp 0x1801b736b
mov r11, rbx
test r9, r9
je 0x1801b736b
mov rdi, r9
and rdi, 3
je 0x1801b732b
mov rbx, rax
nop
lea rsi, [rbx + 1]
cmp byte [rbx], 0xf0
sbb r11, 0xffffffffffffffff
mov rbx, rsi
dec rdi
jne 0x1801b7310
cmp r9d, 4
jae 0x1801b7334
jmp 0x1801b736b
mov rsi, rax
cmp r9d, 4
jb 0x1801b736b
add rax, r9
nop word [rax + rax]
cmp byte [rsi], 0xf0
sbb r11, 0xffffffffffffffff
cmp byte [rsi + 1], 0xf0
sbb r11, 0xffffffffffffffff
cmp byte [rsi + 2], 0xf0
sbb r11, 0xffffffffffffffff
cmp byte [rsi + 3], 0xf0
lea rcx, [rsi + 4]
sbb r11, 0xffffffffffffffff
mov rsi, rcx
cmp rcx, rax
jne 0x1801b7340
mov eax, edx
neg eax
and eax, 0xf
cmp rax, r8
cmovae rax, r8
test rax, rax
je 0x1801b7451
xor r9d, r9d
xor esi, esi
nop word [rax + rax]
mov rdi, r9
movzx ebx, byte [rdx + r9]
lea ecx, [rbx - 0xa]
cmp cl, 4
jae 0x1801b73c0
lea r9, [rsi + 1]
cmp bl, 0xd
jne 0x1801b7400
lea rcx, [rdi + 1]
cmp rcx, r8
jae 0x1801b7400
cmp byte [rdx + rdi + 1], 0xa
cmovne rsi, r9
jmp 0x1801b7403
movzx r9d, bl
cmp r9d, 0xc2
je 0x1801b7417
cmp r9d, 0xe2
jne 0x1801b7403
lea rcx, [rdi + 2]
cmp rcx, r8
jae 0x1801b7403
cmp byte [rdx + rdi + 1], 0x80
jne 0x1801b7403
movzx ecx, byte [rdx + rdi + 2]
and cl, 0xfe
xor r9d, r9d
cmp cl, 0xa8
sete r9b
add rsi, r9
jmp 0x1801b7403
mov rsi, r9
lea r9, [rdi + 1]
cmp r9, rax
jae 0x1801b742f
cmp rsi, r8
jb 0x1801b7390
jmp 0x1801b742f
lea rcx, [rdi + 1]
cmp rcx, r8
jae 0x1801b7403
xor ecx, ecx
cmp byte [rdx + rdi + 1], 0x85
sete cl
add rsi, rcx
jmp 0x1801b7403
cmp rdi, r8
jae 0x1801b7909
mov rax, r8
sub rax, r9
add rdx, r9
pxor xmm15, xmm15
cmp rax, 0x10
jae 0x1801b7465
jmp 0x1801b779d
xor esi, esi
mov rax, r8
pxor xmm15, xmm15
cmp rax, 0x10
jb 0x1801b779d
pxor xmm0, xmm0
xor r9d, r9d
movdqa xmm1, xmmword [0x180210220]
movdqa xmm2, xmmword [0x180210230]
movdqa xmm3, xmmword [0x180210240]
movdqa xmm4, xmmword [0x180210250]
movdqa xmm5, xmmword [0x180210260]
movdqa xmm6, xmmword [str._r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r]
movdqa xmm7, xmmword [str._n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n]
movdqa xmm8, xmmword [0x180210290]
movdqa xmm9, xmmword [0x1802102b0]
movdqa xmm13, xmmword [0x180210280]
pxor xmm10, xmm10
jmp 0x1801b74fc
paddb xmm15, xmm10
inc r9
cmp r9, 0xff
je 0x1801b76c0
add rax, 0xfffffffffffffff0
add rdx, 0x10
movdqa xmm10, xmm15
cmp rax, 0xf
jbe 0x1801b779d
movdqa xmm11, xmmword [rdx]
movdqa xmm15, xmm11
pcmpeqb xmm15, xmm1
movdqa xmm12, xmm15
pand xmm12, xmm2
pcmpeqd xmm12, xmm0
movmskps ecx, xmm12
xor ecx, 0xf
movdqa xmmword [rsp + 0x30], xmm11
movzx ebx, byte [rsp + 0x3f]
pxor xmm12, xmm12
jne 0x1801b7670
movdqa xmm14, xmm11
pcmpeqb xmm14, xmm3
movdqa xmm15, xmm14
pand xmm15, xmm2
pcmpeqd xmm15, xmm0
movmskps ecx, xmm15
xor ecx, 0xf
je 0x1801b75be
movdqa xmm15, xmm11
pcmpeqb xmm15, xmm9
pand xmm15, xmm2
psrldq xmm15, 1
pand xmm15, xmm14
movdqa xmm14, xmm15
pcmpeqd xmm14, xmm0
movmskps ecx, xmm14
xor ecx, 0xf
je 0x1801b75b4
movdqa xmm14, xmm11
psrlq xmm14, 1
pand xmm14, xmmword [0x1802102c0]
pcmpeqb xmm14, xmmword [str.TTTTTTTTTTTTTTTT]
psrldq xmm14, 2
pand xmm14, xmm15
paddb xmm12, xmm14
cmp rax, 0x10
jne 0x1801b76f0
movdqa xmm14, xmm11
paddb xmm14, xmm4
movdqa xmm15, xmm14
pminub xmm15, xmm5
pcmpeqb xmm15, xmm14
pand xmm15, xmm2
paddb xmm15, xmm12
movdqa xmm12, xmm11
pcmpeqb xmm12, xmm6
movdqa xmm14, xmm12
pand xmm14, xmm2
pcmpeqd xmm14, xmm0
movmskps ecx, xmm14
xor ecx, 0xf
je 0x1801b74d0
pcmpeqb xmm11, xmm7
pand xmm11, xmm2
psrldq xmm11, 1
pand xmm11, xmm12
psubb xmm15, xmm11
cmp rax, 0x10
je 0x1801b74d0
cmp bl, 0xd
jne 0x1801b74d0
cmp byte [rdx + 0x10], 0xa
jne 0x1801b74d0
movdqa xmmword [rsp + 0x40], xmm15
movzx ecx, byte [rsp + 0x4f]
dec cl
pand xmm15, xmm8
movzx ecx, cl
movd xmm11, ecx
pslldq xmm11, 0xf
por xmm15, xmm11
jmp 0x1801b74d0
movdqa xmm12, xmm11
pcmpeqb xmm12, xmm13
pand xmm12, xmm2
psrldq xmm12, 1
pand xmm12, xmm15
cmp rax, 0x10
je 0x1801b7538
cmp bl, 0xc2
jne 0x1801b7538
cmp byte [rdx + 0x10], 0x85
jne 0x1801b7538
pand xmm12, xmm8
por xmm12, xmmword [0x1802102a0]
jmp 0x1801b7538
pxor xmm10, xmm10
psadbw xmm15, xmm10
movq rcx, xmm15
pshufd xmm10, xmm15, 0xee
movq r9, xmm10
add rsi, rcx
add rsi, r9
pxor xmm15, xmm15
xor r9d, r9d
jmp 0x1801b74e5
cmp byte [rsp + 0x3e], 0xe2
jne 0x1801b7745
cmp bl, 0x80
jne 0x1801b7745
movzx ecx, byte [rdx + 0x10]
and cl, 0xfe
cmp cl, 0xa8
jne 0x1801b75be
movdqa xmmword [rsp + 0x50], xmm12
movzx ecx, byte [rsp + 0x5e]
inc cl
movdqa xmm15, xmmword [0x1802102e0]
pand xmm12, xmm15
movzx ecx, cl
movd xmm14, ecx
pslldq xmm14, 0xe
pandn xmm15, xmm14
por xmm12, xmm15
jmp 0x1801b75be
cmp rax, 0x12
jb 0x1801b75be
cmp bl, 0xe2
jne 0x1801b75be
cmp byte [rdx + 0x10], 0x80
jne 0x1801b75be
movzx ecx, byte [rdx + 0x11]
and cl, 0xfe
cmp cl, 0xa8
jne 0x1801b75be
movdqa xmmword [rsp + 0x60], xmm12
movzx ecx, byte [rsp + 0x6f]
inc cl
pand xmm12, xmm8
movzx ecx, cl
movd xmm14, ecx
pslldq xmm14, 0xf
por xmm12, xmm14
jmp 0x1801b75be
test rax, rax
je 0x1801b785a
mov r9d, 1
xor edi, edi
nop
movzx r14d, byte [rdx + r9 - 1]
lea ecx, [r14 - 0xa]
cmp cl, 4
jae 0x1801b77e0
lea rbx, [rdi + 1]
cmp r14b, 0xd
jne 0x1801b7830
cmp r9, rax
jae 0x1801b7830
cmp byte [rdx + r9], 0xa
cmovne rdi, rbx
jmp 0x1801b7833
movzx ebx, r14b
cmp ebx, 0xc2
je 0x1801b7846
cmp ebx, 0xe2
jne 0x1801b7833
lea rcx, [r9 + 1]
cmp rcx, rax
jae 0x1801b7833
cmp r9, rax
jae 0x1801b78f7
cmp byte [rdx + r9], 0x80
jne 0x1801b7833
movzx ecx, byte [rdx + r9 + 1]
and cl, 0xfe
xor ebx, ebx
cmp cl, 0xa8
sete bl
add rdi, rbx
jmp 0x1801b7833
mov rdi, rbx
cmp r9, rax
jae 0x1801b785c
inc r9
cmp rdi, rax
jb 0x1801b77b0
jmp 0x1801b785c
cmp r9, rax
jae 0x1801b7833
xor ecx, ecx
cmp byte [rdx + r9], 0x85
sete cl
add rdi, rcx
jmp 0x1801b7833
xor edi, edi
add rdi, rsi
pxor xmm0, xmm0
psadbw xmm15, xmm0
movq rax, xmm15
add rax, rdi
pshufd xmm0, xmm15, 0xee
movq rcx, xmm0
add rcx, rax
mov qword [r13], r8
mov qword [r13 + 8], r10
mov qword [r13 + 0x10], r11
mov qword [r13 + 0x18], rcx
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 rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, str.C:Users_runneradmin_.cargo_registry_srcindex.crates.io_6f17d22bba15001f_str_indices_0.4.3_srclines.rs_b
mov rcx, r9
mov rdx, rax
call fcn.180201960
lea rax, str.C:Users_runneradmin_.cargo_registry_srcindex.crates.io_6f17d22bba15001f_str_indices_0.4.3_srclines.rs_b
mov rcx, r9
mov rdx, r8
mov r8, rax
call fcn.180201c90
int3