Function at 0x180002cf0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0xe0
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov rax, qword [0x18002fa78]
xor rax, rsp
mov qword [rsp + 0xd8], rax
mov r14, r8
mov rbx, rdx
mov r13, rcx
mov qword [rsp + 0x70], 0xf
mov qword [rsp + 0x68], 0
mov byte [rsp + 0x58], 0
mov qword [rsp + 0x48], 0xf
mov qword [rsp + 0x40], 0
mov byte [rsp + 0x30], 0
lea r8, [rcx + 0x58]
lea rdx, [rsp + 0xb0]
call fcn.180002bd0
nop
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0x50]
call fcn.180001e40
nop
cmp qword [rsp + 0xd0], 0x10
jb 0x180002d93
mov rcx, qword [rsp + 0xb8]
call fcn.1800126c8
lea r12, [rsp + 0x58]
cmp qword [rsp + 0x70], 0x10
cmovae r12, qword [rsp + 0x58]
mov r8, rbx
lea rdx, [rsp + 0xb0]
mov rcx, r13
call fcn.180002bd0
nop
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0x28]
call fcn.180001e40
nop
cmp qword [rsp + 0xd0], 0x10
jb 0x180002de5
mov rcx, qword [rsp + 0xb8]
call fcn.1800126c8
xor edi, edi
movsxd rax, dword [rsp + 0x40]
test eax, eax
jle 0x180002ecc
mov rbp, rax
lea rsi, [rsp + 0x90]
nop
cmp rdi, qword [rsp + 0x40]
jbe 0x180002e0c
call fcn.180012a74
lea rax, [rsp + 0x30]
cmp qword [rsp + 0x48], 0x10
cmovae rax, qword [rsp + 0x30]
movzx ecx, byte [rax + rdi]
cmp cl, 0x2d
je 0x180002ec0
cmp cl, 0x7b
je 0x180002ec0
cmp cl, 0x7d
je 0x180002ec0
movzx ebx, cl
cmp cl, 0x30
jl 0x180002e4c
cmp cl, 0x39
jg 0x180002e4c
lea ebx, [rcx - 0x30]
cmp cl, 0x61
jl 0x180002e59
cmp cl, 0x66
jg 0x180002e59
add bl, 0xa9
cmp cl, 0x41
jl 0x180002e66
cmp cl, 0x46
jg 0x180002e66
add bl, 0xc9
and bl, 0xf
inc rdi
cmp rdi, qword [rsp + 0x40]
jbe 0x180002e78
call fcn.180012a74
lea rax, [rsp + 0x30]
cmp qword [rsp + 0x48], 0x10
cmovae rax, qword [rsp + 0x30]
movzx ecx, byte [rax + rdi]
movzx eax, cl
cmp cl, 0x30
jl 0x180002e9c
cmp cl, 0x39
jg 0x180002e9c
add al, 0xd0
cmp cl, 0x61
jl 0x180002ea8
cmp cl, 0x66
jg 0x180002ea8
add al, 0xa9
cmp cl, 0x41
jl 0x180002eb4
cmp cl, 0x46
jg 0x180002eb4
add al, 0xc9
and al, 0xf
shl bl, 4
xor al, bl
mov byte [rsi], al
inc rsi
inc rdi
cmp rdi, rbp
jl 0x180002e00
movaps xmm0, xmmword [rsp + 0x90]
movdqa xmmword [rsp + 0x80], xmm0
movzx eax, byte [rsp + 0x93]
mov byte [rsp + 0x80], al
movzx eax, byte [rsp + 0x92]
mov byte [rsp + 0x81], al
movzx eax, byte [rsp + 0x91]
mov byte [rsp + 0x82], al
movzx eax, byte [rsp + 0x90]
mov byte [rsp + 0x83], al
movzx eax, byte [rsp + 0x95]
mov byte [rsp + 0x84], al
movzx eax, byte [rsp + 0x94]
mov byte [rsp + 0x85], al
movzx eax, byte [rsp + 0x97]
mov byte [rsp + 0x86], al
movzx eax, byte [rsp + 0x96]
mov byte [rsp + 0x87], al
mov byte [r12], 0x52
mov byte [r12 + 4], 0x3c
xor edx, edx
lea rax, [rsp + 0x90]
sub r12, rax
nop dword [rax]
lea rcx, [rsp + rdx + 0x90]
movzx eax, byte [r13 + rdx + 8]
xor al, byte [r12 + rcx]
mov byte [rcx], al
inc rdx
cmp rdx, 0x18
jl 0x180002f70
mov rax, qword [r13]
mov qword [rsp + 0x90], rax
lea rdx, [rsp + 0xb0]
lea rcx, [rsp + 0x90]
mov rax, qword [rcx]
mov qword [rdx], rax
mov rax, qword [rcx + 8]
mov qword [rdx + 8], rax
mov rax, qword [rcx + 0x10]
mov qword [rdx + 0x10], rax
xor ecx, ecx
lea edx, [rcx + 0x10]
nop word [rax + rax]
movzx eax, byte [rsp + rcx + 0x98]
xor al, byte [rsp + rcx + 0x80]
mov byte [rsp + rcx + 0xb8], al
inc rcx
sub rdx, 1
jne 0x180002fd0
lea rcx, [rsp + 0xb0]
mov rax, qword [rcx]
mov qword [r14], rax
mov rax, qword [rcx + 8]
mov qword [r14 + 8], rax
mov rax, qword [rcx + 0x10]
mov qword [r14 + 0x10], rax
cmp qword [rsp + 0x48], 0x10
jb 0x18000301f
mov rcx, qword [rsp + 0x30]
call fcn.1800126c8
mov qword [rsp + 0x48], 0xf
mov qword [rsp + 0x40], 0
mov byte [rsp + 0x30], 0
cmp qword [rsp + 0x70], 0x10
jb 0x18000304c
mov rcx, qword [rsp + 0x58]
call fcn.1800126c8
mov al, 1
jmp 0x18000304e
mov al, 1
mov rcx, qword [rsp + 0xd8]
xor rcx, rsp
call fcn.1800134f0
add rsp, 0xe0
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret