Function at 0x1801b8040
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 0x1801b80d6
test r8, r8
je 0x1801b8116
mov eax, r8d
and eax, 3
cmp r8, 4
jae 0x1801b811e
xor r11d, r11d
xor r9d, r9d
jmp 0x1801b8190
lea r9, [rdx + 0xf]
and r9, 0xfffffffffffffff0
mov r10, r9
sub r10, rdx
mov rax, r8
sub rax, r10
mov r11, rax
shr r11, 4
mov r10d, eax
mov rdi, r9
sub rdi, rdx
jne 0x1801b8103
xor esi, esi
jmp 0x1801b8288
cmp rdi, 4
jae 0x1801b81cd
xor esi, esi
xor ebx, ebx
jmp 0x1801b826a
xor r11d, r11d
jmp 0x1801b81c6
mov r10d, r8d
and r10d, 0xc
xor r11d, r11d
xor r9d, r9d
nop dword [rax + 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, r11
and sil, 0xc0
xor r11d, r11d
cmp sil, 0x80
setne r11b
movzx ebx, byte [rdx + r9 + 2]
and bl, 0xc0
xor esi, esi
cmp bl, 0x80
setne sil
add rsi, r11
add rsi, rdi
movzx ebx, byte [rdx + r9 + 3]
and bl, 0xc0
xor r11d, r11d
cmp bl, 0x80
setne r11b
add r11, rsi
add r9, 4
cmp r10, r9
jne 0x1801b8130
test rax, rax
je 0x1801b81bc
add r9, rdx
xor r10d, r10d
nop dword [rax + rax]
movzx ecx, byte [r9 + r10]
and cl, 0xc0
xor esi, esi
cmp cl, 0x80
setne sil
add r11, rsi
inc r10
cmp rax, r10
jne 0x1801b81a0
cmp r8, 4
jae 0x1801b84b7
xor esi, esi
jmp 0x1801b86ef
mov ebx, edi
and ebx, 0xc
pxor xmm0, xmm0
xor esi, esi
movdqa xmm2, xmmword [0x180210300]
movdqa xmm3, xmmword [0x180210310]
movdqa xmm4, xmmword [0x180210320]
pxor xmm1, xmm1
nop word cs:[rax + rax]
movzx ebp, word [rdx + rsi]
movd xmm5, ebp
movzx ebp, word [rdx + rsi + 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 rsi, 4
cmp rbx, rsi
jne 0x1801b8200
paddq xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq rsi, xmm0
jmp 0x1801b8283
movzx ebp, byte [rdx + rbx]
and bpl, 0xc0
xor r14d, r14d
cmp bpl, 0x80
sete r14b
add rsi, r14
inc rbx
cmp rdi, rbx
jne 0x1801b826a
and r10d, 0xf
movabs rdi, 0xffffffffffffffc
and rdi, r11
je 0x1801b833a
mov rbx, r11
and rbx, 0xfffffffffffffffc
neg rbx
movdqa xmm0, xmmword [0x180210330]
movdqa xmm1, xmmword [0x1802102b0]
movdqa xmm2, xmmword [0x180210230]
pxor xmm3, xmm3
mov r14, r9
nop dword [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, rsi
pshufd xmm4, xmm4, 0xee
movq rsi, xmm4
add rsi, rcx
add r14, 0x40
add rbx, 4
jne 0x1801b82d0
pxor xmm0, xmm0
pxor xmm1, xmm1
and r11, 3
je 0x1801b83a9
shl rdi, 4
add rdi, r9
movdqa xmm1, xmmword [rdi]
pand xmm1, xmmword [0x180210330]
pcmpeqb xmm1, xmmword [0x1802102b0]
pand xmm1, xmmword [0x180210230]
cmp r11d, 1
je 0x1801b83a9
movdqa xmm2, xmmword [rdi + 0x10]
pand xmm2, xmmword [0x180210330]
pcmpeqb xmm2, xmmword [0x1802102b0]
psubb xmm1, xmm2
cmp r11d, 2
je 0x1801b83a9
movdqa xmm2, xmmword [rdi + 0x20]
pand xmm2, xmmword [0x180210330]
pcmpeqb xmm2, xmmword [0x1802102b0]
psubb xmm1, xmm2
psadbw xmm1, xmm0
movq r11, xmm1
pshufd xmm0, xmm1, 0xee
movq rcx, xmm0
test r10, r10
je 0x1801b83e0
mov qword [rsp + 0x28], r13
mov r14, rax
and r14, 0xfffffffffffffff0
and eax, 3
cmp r10d, 4
jae 0x1801b83e8
xor r15d, r15d
xor ebx, ebx
jmp 0x1801b8467
xor r15d, r15d
jmp 0x1801b849e
sub r10, rax
lea r12, [r14 + r9]
add r12, 3
xor r15d, r15d
xor ebx, ebx
nop dword [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 0x1801b8400
test rax, rax
mov r13, qword [rsp + 0x28]
je 0x1801b849e
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 0x1801b8480
add r11, r15
add rsi, rcx
add rsi, r11
mov r11, r8
sub r11, rsi
cmp r8, 4
jb 0x1801b81c6
lea rsi, [r8 - 3]
lea rbx, [rdx + 0xf]
and rbx, 0xfffffffffffffff0
mov r14, rbx
sub r14, rdx
mov rax, rsi
sub rax, r14
jae 0x1801b84f1
mov edi, 0x10
mov eax, 1
xor r9d, r9d
xor r10d, r10d
cmp rsi, 4
jae 0x1801b851f
xor ebx, ebx
mov r14, rdx
jmp 0x1801b85cd
lea rdi, [rdx + r14]
mov r10, rax
shr r10, 4
mov r9d, eax
and r9d, 0xf
and rax, 0xfffffffffffffff0
add rax, rdi
cmp rbx, rdx
jne 0x1801b8516
xor ebx, ebx
jmp 0x1801b85e4
mov rsi, r14
cmp rsi, 4
jb 0x1801b84e7
mov r15, rsi
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 dword [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 0x1801b8550
paddq xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq rbx, xmm0
cmp rsi, r15
je 0x1801b85e4
add rsi, rdx
cmp byte [r14], 0xf0
lea rcx, [r14 + 1]
sbb rbx, 0xffffffffffffffff
mov r14, rcx
cmp rcx, rsi
jne 0x1801b85d0
test r10, r10
je 0x1801b867a
movdqa xmm0, xmmword [0x18029c460]
pxor xmm1, xmm1
nop dword [rax]
cmp r10, 0xff
mov r14d, 0xff
cmovb r14, r10
mov esi, r14d
shl esi, 4
lea r15, [rdi + rsi]
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 rsi, r12
jne 0x1801b8630
psadbw xmm2, xmm1
movq rcx, xmm2
add rbx, rcx
pshufd xmm2, xmm2, 0xee
movq rsi, xmm2
add rsi, rbx
mov rbx, rsi
mov rdi, r15
sub r10, r14
jne 0x1801b8600
test r9, r9
jne 0x1801b8682
jmp 0x1801b86ef
mov rsi, rbx
test r9, r9
je 0x1801b86ef
mov rdi, r9
and rdi, 3
je 0x1801b86ab
mov rbx, rax
nop
lea r10, [rbx + 1]
cmp byte [rbx], 0xf0
sbb rsi, 0xffffffffffffffff
mov rbx, r10
dec rdi
jne 0x1801b8690
cmp r9d, 4
jae 0x1801b86b4
jmp 0x1801b86ef
mov r10, rax
cmp r9d, 4
jb 0x1801b86ef
add rax, r9
nop word [rax + rax]
cmp byte [r10], 0xf0
sbb rsi, 0xffffffffffffffff
cmp byte [r10 + 1], 0xf0
sbb rsi, 0xffffffffffffffff
cmp byte [r10 + 2], 0xf0
sbb rsi, 0xffffffffffffffff
cmp byte [r10 + 3], 0xf0
lea rcx, [r10 + 4]
sbb rsi, 0xffffffffffffffff
mov r10, rcx
cmp rcx, rax
jne 0x1801b86c0
mov r9d, edx
neg r9d
and r9d, 0xf
cmp r9, r8
cmovae r9, r8
test r9, r9
je 0x1801b87d2
xor eax, eax
xor edi, edi
nop dword [rax]
mov r10, rax
movzx ebx, byte [rdx + rax]
lea eax, [rbx - 0xa]
cmp al, 4
jae 0x1801b8740
lea rax, [rdi + 1]
cmp bl, 0xd
jne 0x1801b8780
lea rcx, [r10 + 1]
cmp rcx, r8
jae 0x1801b8780
cmp byte [rdx + r10 + 1], 0xa
cmovne rdi, rax
jmp 0x1801b8783
movzx eax, bl
cmp eax, 0xc2
je 0x1801b8797
cmp eax, 0xe2
jne 0x1801b8783
lea rax, [r10 + 2]
cmp rax, r8
jae 0x1801b8783
cmp byte [rdx + r10 + 1], 0x80
jne 0x1801b8783
movzx eax, byte [rdx + r10 + 2]
and al, 0xfe
xor ecx, ecx
cmp al, 0xa8
sete cl
add rdi, rcx
jmp 0x1801b8783
mov rdi, rax
lea rax, [r10 + 1]
cmp rax, r9
jae 0x1801b87b0
cmp rdi, r8
jb 0x1801b8710
jmp 0x1801b87b0
lea rax, [r10 + 1]
cmp rax, r8
jae 0x1801b8783
xor eax, eax
cmp byte [rdx + r10 + 1], 0x85
sete al
add rdi, rax
jmp 0x1801b8783
cmp r10, r8
jae 0x1801b8c95
mov r9, r8
sub r9, rax
add rax, rdx
pxor xmm15, xmm15
cmp r9, 0x10
jae 0x1801b87e9
jmp 0x1801b8b1d
xor edi, edi
mov r9, r8
mov rax, rdx
pxor xmm15, xmm15
cmp r9, 0x10
jb 0x1801b8b1d
pxor xmm0, xmm0
xor r10d, r10d
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 0x1801b887c
paddb xmm15, xmm10
inc r10
cmp r10, 0xff
je 0x1801b8a40
add r9, 0xfffffffffffffff0
add rax, 0x10
movdqa xmm10, xmm15
cmp r9, 0xf
jbe 0x1801b8b1d
movdqa xmm11, xmmword [rax]
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 0x1801b89f0
movdqa xmm14, xmm11
pcmpeqb xmm14, xmm3
movdqa xmm15, xmm14
pand xmm15, xmm2
pcmpeqd xmm15, xmm0
movmskps ecx, xmm15
xor ecx, 0xf
je 0x1801b893e
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 0x1801b8934
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 r9, 0x10
jne 0x1801b8a70
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 0x1801b8850
pcmpeqb xmm11, xmm7
pand xmm11, xmm2
psrldq xmm11, 1
pand xmm11, xmm12
psubb xmm15, xmm11
cmp r9, 0x10
je 0x1801b8850
cmp bl, 0xd
jne 0x1801b8850
cmp byte [rax + 0x10], 0xa
jne 0x1801b8850
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 0x1801b8850
movdqa xmm12, xmm11
pcmpeqb xmm12, xmm13
pand xmm12, xmm2
psrldq xmm12, 1
pand xmm12, xmm15
cmp r9, 0x10
je 0x1801b88b8
cmp bl, 0xc2
jne 0x1801b88b8
cmp byte [rax + 0x10], 0x85
jne 0x1801b88b8
pand xmm12, xmm8
por xmm12, xmmword [0x1802102a0]
jmp 0x1801b88b8
pxor xmm10, xmm10
psadbw xmm15, xmm10
movq rcx, xmm15
pshufd xmm10, xmm15, 0xee
movq r10, xmm10
add rdi, rcx
add rdi, r10
pxor xmm15, xmm15
xor r10d, r10d
jmp 0x1801b8865
cmp byte [rsp + 0x3e], 0xe2
jne 0x1801b8ac5
cmp bl, 0x80
jne 0x1801b8ac5
movzx ecx, byte [rax + 0x10]
and cl, 0xfe
cmp cl, 0xa8
jne 0x1801b893e
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 0x1801b893e
cmp r9, 0x12
jb 0x1801b893e
cmp bl, 0xe2
jne 0x1801b893e
cmp byte [rax + 0x10], 0x80
jne 0x1801b893e
movzx ecx, byte [rax + 0x11]
and cl, 0xfe
cmp cl, 0xa8
jne 0x1801b893e
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 0x1801b893e
test r9, r9
je 0x1801b8bda
mov r10d, 1
xor ebx, ebx
nop
movzx r15d, byte [rax + r10 - 1]
lea ecx, [r15 - 0xa]
cmp cl, 4
jae 0x1801b8b60
lea r14, [rbx + 1]
cmp r15b, 0xd
jne 0x1801b8bb0
cmp r10, r9
jae 0x1801b8bb0
cmp byte [rax + r10], 0xa
cmovne rbx, r14
jmp 0x1801b8bb3
movzx ebp, r15b
cmp ebp, 0xc2
je 0x1801b8bc6
cmp ebp, 0xe2
jne 0x1801b8bb3
lea rcx, [r10 + 1]
cmp rcx, r9
jae 0x1801b8bb3
cmp r10, r9
jae 0x1801b8c83
cmp byte [rax + r10], 0x80
jne 0x1801b8bb3
movzx ecx, byte [rax + r10 + 1]
and cl, 0xfe
xor r14d, r14d
cmp cl, 0xa8
sete r14b
add rbx, r14
jmp 0x1801b8bb3
mov rbx, r14
cmp r10, r9
jae 0x1801b8bdc
inc r10
cmp rbx, r9
jb 0x1801b8b30
jmp 0x1801b8bdc
cmp r10, r9
jae 0x1801b8bb3
xor ecx, ecx
cmp byte [rax + r10], 0x85
sete cl
add rbx, rcx
jmp 0x1801b8bb3
xor ebx, ebx
add rbx, rdi
pxor xmm0, xmm0
psadbw xmm15, xmm0
movq rax, xmm15
add rax, rbx
pshufd xmm0, xmm15, 0xee
movq rcx, xmm0
add rcx, rax
mov qword [r13], 0
mov qword [r13 + 8], rdx
mov qword [r13 + 0x10], r8
mov qword [r13 + 0x18], r11
mov qword [r13 + 0x20], rsi
mov qword [r13 + 0x28], 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, [0x18029cee8]
mov rcx, r10
mov rdx, r9
call fcn.180201960
lea r9, [0x18029ced0]
mov rcx, rax
mov rdx, r8
mov r8, r9
call fcn.180201c90
int3