Function at 0x180002c40
Capabilities:
Encode data using xor

Disassembly:
lea rax, [r14 + 8]
mov ecx, dword [rsp + 0x28]
sub rax, qword [rsp + 0xa0]
lea rsi, [r14 + 1]
sub ecx, eax
je 0x1800028ef
movzx edx, byte [rsp + 0x48]
movzx r9d, byte [rsp + 0x49]
movzx r11d, byte [rsp + 0x4a]
movzx ebx, byte [rsp + 0x4b]
cmp dl, 0x3f
movzx eax, byte [rsp + 0x4c]
sete r8b
movzx edi, byte [rsp + 0x4d]
cmp r9b, 0x3f
sete r10b
movzx r13d, byte [rsp + 0x4e]
cmp r11b, 0x3f
sete bpl
movzx r12d, byte [rsp + 0x4f]
cmp bl, 0x3f
sete byte [rsp + 0x27]
cmp al, 0x3f
sete byte [rsp + 0x30]
cmp dil, 0x3f
sete byte [rsp + 0x31]
cmp r13b, 0x3f
sete byte [rsp + 0x32]
cmp r12b, 0x3f
sete byte [rsp + 0x33]
sub ecx, 1
lea rcx, [r14 + rcx + 2]
jmp 0x1800026ef
add rsi, 1
cmp rsi, rcx
je 0x1800028ef
cmp byte [rsi], dl
mov r14, rsi
je 0x1800026fb
test r8b, r8b
je 0x1800026e2
cmp byte [rsi + 1], r9b
je 0x180002706
test r10b, r10b
je 0x1800026e2
cmp byte [rsi + 2], r11b
je 0x180002711
test bpl, bpl
je 0x1800026e2
cmp byte [rsi + 3], bl
je 0x18000271d
cmp byte [rsp + 0x27], 0
je 0x1800026e2
cmp byte [rsi + 4], al
je 0x180002729
cmp byte [rsp + 0x30], 0
je 0x1800026e2
cmp byte [rsi + 5], dil
je 0x180002736
cmp byte [rsp + 0x31], 0
je 0x1800026e2
cmp byte [rsi + 6], r13b
je 0x180002743
cmp byte [rsp + 0x32], 0
je 0x1800026e2
cmp byte [rsi + 7], r12b
je 0x180002750
cmp byte [rsp + 0x33], 0
je 0x1800026e2
mov eax, dword [rsi]
lea rdi, [rsi + 8]
mov ebx, eax
mov edx, eax
shl ebx, 0x18
shr edx, 0x18
add edx, ebx
movzx ebx, ah
shr eax, 8
shl ebx, 0x10
and eax, 0xff00
add ebx, edx
add ebx, eax
mov rax, qword [rsp + 0xc0]
mov eax, dword [rax + 0x3c]
cmp dword [rsi + 8], eax
je 0x180002953
test r15, r15
je 0x18000264f
mov eax, dword [rsp + 0x2c]
lea r9d, [rax + rbx]
cmp r9d, dword [rsp + 0x34]
lea rdx, [r15 + rax]
ja 0x180002aea
lea r10d, [rbx - 1]
test ebx, ebx
je 0x1800028df
lea rax, [r15 + rax + 0x10]
cmp rdi, rax
lea rax, [rsi + 0x18]
setae cl
cmp rdx, rax
setae al
or cl, al
je 0x180002ac6
cmp r10d, 0xe
jbe 0x180002ac6
mov ecx, ebx
xor eax, eax
shr ecx, 4
shl rcx, 4
nop word [rax + rax]
movdqu xmm0, xmmword [rsi + rax + 8]
movups xmmword [rdx + rax], xmm0
add rax, 0x10
cmp rax, rcx
jne 0x1800027ef
mov r8d, ebx
mov ecx, r10d
and r8d, 0xfffffff0
mov eax, r8d
sub ecx, r8d
sub ecx, eax
sub ecx, eax
add rdi, rax
add rax, rdx
cmp ebx, r8d
je 0x1800028df
invalid
movzx edx, byte [rdi]
test ecx, ecx
mov byte [rax], dl
je 0x1800028df
movzx edx, byte [rdi + 1]
cmp ecx, 1
mov byte [rax + 1], dl
je 0x1800028df
movzx edx, byte [rdi + 2]
cmp ecx, 2
mov byte [rax + 2], dl
je 0x1800028df
movzx edx, byte [rdi + 3]
cmp ecx, 3
mov byte [rax + 3], dl
je 0x1800028df
movzx edx, byte [rdi + 4]
cmp ecx, 4
mov byte [rax + 4], dl
je 0x1800028df
movzx edx, byte [rdi + 5]
cmp ecx, 5
mov byte [rax + 5], dl
je 0x1800028df
movzx edx, byte [rdi + 6]
cmp ecx, 6
mov byte [rax + 6], dl
je 0x1800028df
movzx edx, byte [rdi + 7]
cmp ecx, 7
mov byte [rax + 7], dl
je 0x1800028df
movzx edx, byte [rdi + 8]
cmp ecx, 8
mov byte [rax + 8], dl
je 0x1800028df
movzx edx, byte [rdi + 9]
cmp ecx, 9
mov byte [rax + 9], dl
je 0x1800028df
movzx edx, byte [rdi + 0xa]
cmp ecx, 0xa
mov byte [rax + 0xa], dl
je 0x1800028df
movzx edx, byte [rdi + 0xb]
cmp ecx, 0xb
mov byte [rax + 0xb], dl
je 0x1800028df
movzx edx, byte [rdi + 0xc]
cmp ecx, 0xc
mov byte [rax + 0xc], dl
je 0x1800028df
movzx edx, byte [rdi + 0xd]
cmp ecx, 0xd
mov byte [rax + 0xd], dl
je 0x1800028df
movzx edx, byte [rdi + 0xe]
mov byte [rax + 0xe], dl
nop
mov dword [rsp + 0x2c], r9d
jmp 0x18000264f
xor eax, eax
test r15, r15
je 0x180002942
mov rax, qword [rsp + 0x38]
mov edx, dword [rax + 8]
mov r8d, dword [rax + 4]
test dl, 3
je 0x180002917
nop dword [rax + rax]
sub edx, 1
test dl, 3
jne 0x18000290f
xor ecx, ecx
xor eax, eax
test edx, edx
je 0x18000292e
xor dword [r15 + rax + 0x10], r8d
add ecx, 4
cmp edx, ecx
movsxd rax, ecx
ja 0x18000291f
mov rax, qword [rsp + 0xb0]
mov qword [rax], r15
mov eax, dword [rsp + 0x2c]
test eax, eax
setne al
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test r15, r15
jne 0x180002791
mov eax, dword [rsi + 0x10]
mov ecx, 0x40
lea edx, [rax + 0x10]
mov rax, qword [rsp + 0xb8]
mov dword [rsp + 0x34], edx
call qword [rax + 0xc8]
lea edx, [rbx - 1]
test ebx, ebx
mov r15, rax
je 0x180002ab8
lea rax, [rsi + 0x18]
cmp r15, rax
lea rax, [r15 + 0x10]
setae cl
cmp rdi, rax
setae al
or cl, al
je 0x180002c48
cmp edx, 0xe
jbe 0x180002c48
mov ecx, ebx
xor eax, eax
shr ecx, 4
shl rcx, 4
nop dword [rax + rax]
movdqu xmm1, xmmword [rsi + rax + 8]
movups xmmword [r15 + rax], xmm1
add rax, 0x10
cmp rax, rcx
jne 0x1800029bf
mov ecx, ebx
mov eax, edx
and ecx, 0xfffffff0
mov edx, ecx
sub eax, ecx
lea r8, [rdi + rdx]
add rdx, r15
cmp ebx, ecx
je 0x180002ab8
movzx ecx, byte [r8]
test eax, eax
mov byte [rdx], cl
je 0x180002ab8
movzx ecx, byte [r8 + 1]
cmp eax, 1
mov byte [rdx + 1], cl
je 0x180002ab8
movzx ecx, byte [r8 + 2]
cmp eax, 2
mov byte [rdx + 2], cl
je 0x180002ab8
movzx ecx, byte [r8 + 3]
cmp eax, 3
mov byte [rdx + 3], cl
je 0x180002ab8
movzx ecx, byte [r8 + 4]
cmp eax, 4
mov byte [rdx + 4], cl
je 0x180002ab8
movzx ecx, byte [r8 + 5]
cmp eax, 5
mov byte [rdx + 5], cl
je 0x180002ab8
movzx ecx, byte [r8 + 6]
cmp eax, 6
mov byte [rdx + 6], cl
je 0x180002ab8
movzx ecx, byte [r8 + 7]
cmp eax, 7
mov byte [rdx + 7], cl
je 0x180002ab8
movzx ecx, byte [r8 + 8]
cmp eax, 8
mov byte [rdx + 8], cl
je 0x180002ab8
movzx ecx, byte [r8 + 9]
cmp eax, 9
mov byte [rdx + 9], cl
je 0x180002ab8
movzx ecx, byte [r8 + 0xa]
cmp eax, 0xa
mov byte [rdx + 0xa], cl
je 0x180002ab8
movzx ecx, byte [r8 + 0xb]
cmp eax, 0xb
mov byte [rdx + 0xb], cl
je 0x180002ab8
movzx ecx, byte [r8 + 0xc]
cmp eax, 0xc
mov byte [rdx + 0xc], cl
je 0x180002ab8
movzx ecx, byte [r8 + 0xd]
cmp eax, 0xd
mov byte [rdx + 0xd], cl
je 0x180002ab8
movzx eax, byte [r8 + 0xe]
mov byte [rdx + 0xe], al
add dword [rsp + 0x2c], ebx
mov qword [rsp + 0x38], rdi
jmp 0x18000264f
mov ecx, r10d
xor eax, eax
jmp 0x180002ad2
mov rax, r8
movzx r8d, byte [rsi + rax + 8]
cmp rax, rcx
mov byte [rdx + rax], r8b
lea r8, [rax + 1]
jne 0x180002acf
jmp 0x1800028df
mov r8d, dword [rsp + 0x34]
sub r8d, dword [rsp + 0x2c]
sub eax, dword [rsp + 0x2c]
lea r9d, [r8 - 1]
je 0x1800028f6
lea rax, [rdx + 0x10]
cmp rdi, rax
setae cl
add rsi, 0x18
cmp rdx, rsi
setae al
or cl, al
je 0x180002c68
cmp r9d, 0xe
jbe 0x180002c68
mov ecx, r8d
xor eax, eax
shr ecx, 4
shl rcx, 4
movdqu xmm2, xmmword [rdi + rax]
movups xmmword [rdx + rax], xmm2
add rax, 0x10
cmp rax, rcx
jne 0x180002b30
mov ecx, r8d
mov eax, r9d
and ecx, 0xfffffff0
mov r9d, ecx
sub eax, ecx
add rdi, r9
add rdx, r9
cmp r8d, ecx
je 0x1800028f6
movzx ecx, byte [rdi]
test eax, eax
mov byte [rdx], cl
je 0x1800028f6
movzx ecx, byte [rdi + 1]
cmp eax, 1
mov byte [rdx + 1], cl
je 0x1800028f6
movzx ecx, byte [rdi + 2]
cmp eax, 2
mov byte [rdx + 2], cl
je 0x1800028f6
movzx ecx, byte [rdi + 3]
cmp eax, 3
mov byte [rdx + 3], cl
je 0x1800028f6
movzx ecx, byte [rdi + 4]
cmp eax, 4
mov byte [rdx + 4], cl
je 0x1800028f6
movzx ecx, byte [rdi + 5]
cmp eax, 5
mov byte [rdx + 5], cl
je 0x1800028f6
movzx ecx, byte [rdi + 6]
cmp eax, 6
mov byte [rdx + 6], cl
je 0x1800028f6
movzx ecx, byte [rdi + 7]
cmp eax, 7
mov byte [rdx + 7], cl
je 0x1800028f6
movzx ecx, byte [rdi + 8]
cmp eax, 8
mov byte [rdx + 8], cl
je 0x1800028f6
movzx ecx, byte [rdi + 9]
cmp eax, 9
mov byte [rdx + 9], cl
je 0x1800028f6
movzx ecx, byte [rdi + 0xa]
cmp eax, 0xa
mov byte [rdx + 0xa], cl
je 0x1800028f6
movzx ecx, byte [rdi + 0xb]
cmp eax, 0xb
mov byte [rdx + 0xb], cl
je 0x1800028f6
movzx ecx, byte [rdi + 0xc]
cmp eax, 0xc
mov byte [rdx + 0xc], cl
je 0x1800028f6
movzx ecx, byte [rdi + 0xd]
cmp eax, 0xd
mov byte [rdx + 0xd], cl
je 0x1800028f6
movzx eax, byte [rdi + 0xe]
mov byte [rdx + 0xe], al
jmp 0x1800028f6
mov eax, edx
xor edx, edx
jmp 0x180002c51
mov rdx, rcx
movzx ecx, byte [rsi + rdx + 8]
cmp rdx, rax
mov byte [r15 + rdx], cl
lea rcx, [rdx + 1]
jne 0x180002c4e
jmp 0x180002ab8
xor eax, eax
jmp 0x180002c6f
mov rax, rcx
movzx ecx, byte [rdi + rax]
cmp rax, r9
mov byte [rdx + rax], cl
lea rcx, [rax + 1]
jne 0x180002c6c
jmp 0x1800028f6