Function at 0x180001eb0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x88
mov rax, qword [0x180047648]
xor rax, rsp
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0xf8]
mov rdi, rcx
mov r14, qword [rsp + 0xf0]
mov ecx, 1
mov r15, qword [rsp + 0x100]
mov rbp, r9
mov qword [rsp + 0x20], rax
mov rsi, r8
mov rax, qword [rsp + 0x108]
mov dword [rdx], 0x88b4
mov edx, 0x88b4
mov qword [rsp + 0x28], rax
call fcn.1800065c4
mov qword [rdi], rax
test rax, rax
je 0x1800023e4
mov r8d, 0x88b4
lea rdx, [0x18001d030]
mov rcx, rax
call fcn.180003310
mov rax, qword [rdi]
xor ebx, ebx
mov r8d, ebx
lea rcx, [rax + 0x88b3]
cmp rax, rdi
ja 0x180001f55
cmp rcx, rdi
jae 0x180001fc9
movdqa xmm2, xmmword [str.XXXXXXXXXXXXXXXX]
mov rcx, rbx
movdqu xmm0, xmmword [rcx + rax]
lea rcx, [rcx + 0x40]
add r8d, 0x40
movdqa xmm1, xmm2
pxor xmm1, xmm0
movdqu xmmword [rcx + rax - 0x40], xmm1
movdqa xmm1, xmm2
movdqu xmm0, xmmword [rcx + rax - 0x30]
pxor xmm1, xmm0
movdqu xmmword [rcx + rax - 0x30], xmm1
movdqa xmm1, xmm2
movdqu xmm0, xmmword [rcx + rax - 0x20]
pxor xmm1, xmm0
movdqu xmmword [rcx + rax - 0x20], xmm1
movdqa xmm1, xmm2
movdqu xmm0, xmmword [rcx + rax - 0x10]
pxor xmm1, xmm0
movdqu xmmword [rcx + rax - 0x10], xmm1
cmp r8d, 0x8880
jb 0x180001f60
cmp r8d, 0x88b4
jae 0x180001fe9
movsxd r9, r8d
nop dword [rax]
mov rax, qword [rdi]
lea r9, [r9 + 1]
inc r8d
xor byte [r9 + rax - 1], 0x58
cmp r8d, 0x88b4
jb 0x180001fd0
mov rcx, qword [rdi]
mov edx, 0x88b4
call fcn.180001d30
mov r13, rax
test rax, rax
je 0x1800023e4
mov edx, 0xabde
mov dword [rbp], 0xabde
mov ecx, 1
call fcn.1800065c4
mov qword [rsi], rax
test rax, rax
je 0x1800023e4
mov r8d, 0xabde
lea rdx, [0x1800258f0]
mov rcx, rax
call fcn.180003310
mov rax, qword [rsi]
mov r8d, ebx
lea rcx, [rax + 0xabdd]
cmp rax, rsi
ja 0x180002050
cmp rcx, rsi
jae 0x1800020c9
movdqa xmm2, xmmword [str.XXXXXXXXXXXXXXXX]
mov rcx, rbx
nop dword [rax + rax]
movdqu xmm0, xmmword [rcx + rax]
lea rcx, [rcx + 0x40]
add r8d, 0x40
movdqa xmm1, xmm2
pxor xmm1, xmm0
movdqu xmmword [rcx + rax - 0x40], xmm1
movdqa xmm1, xmm2
movdqu xmm0, xmmword [rcx + rax - 0x30]
pxor xmm1, xmm0
movdqu xmmword [rcx + rax - 0x30], xmm1
movdqa xmm1, xmm2
movdqu xmm0, xmmword [rcx + rax - 0x20]
pxor xmm1, xmm0
movdqu xmmword [rcx + rax - 0x20], xmm1
movdqa xmm1, xmm2
movdqu xmm0, xmmword [rcx + rax - 0x10]
pxor xmm1, xmm0
movdqu xmmword [rcx + rax - 0x10], xmm1
cmp r8d, 0xabc0
jb 0x180002060
cmp r8d, 0xabde
jae 0x1800020e9
movsxd r9, r8d
nop dword [rax]
mov rax, qword [rsi]
lea r9, [r9 + 1]
inc r8d
xor byte [r9 + rax - 1], 0x58
cmp r8d, 0xabde
jb 0x1800020d0
mov rcx, qword [rsi]
mov edx, 0xabde
call fcn.180001d30
mov r12, rax
test rax, rax
je 0x1800023e4
mov rax, qword [rsp + 0x20]
mov edx, 0xd9a7
mov ecx, 1
mov dword [rax], 0xd9a7
call fcn.1800065c4
mov qword [r14], rax
test rax, rax
je 0x1800023e4
mov r8d, 0xd9a7
lea rdx, [0x180039c60]
mov rcx, rax
call fcn.180003310
mov rax, qword [r14]
mov r8d, ebx
lea rcx, [rax + 0xd9a6]
cmp rax, r14
ja 0x180002154
cmp rcx, r14
jae 0x1800021c9
movdqa xmm2, xmmword [str.XXXXXXXXXXXXXXXX]
mov rcx, rbx
nop
movdqu xmm0, xmmword [rcx + rax]
lea rcx, [rcx + 0x40]
add r8d, 0x40
movdqa xmm1, xmm2
pxor xmm1, xmm0
movdqu xmmword [rcx + rax - 0x40], xmm1
movdqa xmm1, xmm2
movdqu xmm0, xmmword [rcx + rax - 0x30]
pxor xmm1, xmm0
movdqu xmmword [rcx + rax - 0x30], xmm1
movdqa xmm1, xmm2
movdqu xmm0, xmmword [rcx + rax - 0x20]
pxor xmm1, xmm0
movdqu xmmword [rcx + rax - 0x20], xmm1
movdqa xmm1, xmm2
movdqu xmm0, xmmword [rcx + rax - 0x10]
pxor xmm1, xmm0
movdqu xmmword [rcx + rax - 0x10], xmm1
cmp r8d, 0xd980
jb 0x180002160
cmp r8d, 0xd9a7
jae 0x1800021e9
movsxd r9, r8d
nop dword [rax]
mov rax, qword [r14]
lea r9, [r9 + 1]
inc r8d
xor byte [rax + r9 - 1], 0x58
cmp r8d, 0xd9a7
jb 0x1800021d0
mov rcx, qword [r14]
mov edx, 0xd9a7
call fcn.180001d30
mov rbp, rax
test rax, rax
je 0x1800023e4
mov rax, qword [rsp + 0x28]
mov edx, 0x9788
mov ecx, 1
mov dword [rax], 0x9788
call fcn.1800065c4
mov qword [r15], rax
test rax, rax
je 0x1800023e4
mov r8d, 0x9788
lea rdx, [0x1800304d0]
mov rcx, rax
call fcn.180003310
mov rax, qword [r15]
mov r8d, ebx
lea rcx, [rax + 0x9787]
cmp rax, r15
ja 0x180002254
cmp rcx, r15
jae 0x1800022c9
movdqa xmm2, xmmword [str.XXXXXXXXXXXXXXXX]
mov rcx, rbx
nop
movdqu xmm0, xmmword [rcx + rax]
lea rcx, [rcx + 0x40]
add r8d, 0x40
movdqa xmm1, xmm2
pxor xmm1, xmm0
movdqu xmmword [rcx + rax - 0x40], xmm1
movdqa xmm1, xmm2
movdqu xmm0, xmmword [rcx + rax - 0x30]
pxor xmm1, xmm0
movdqu xmmword [rcx + rax - 0x30], xmm1
movdqa xmm1, xmm2
movdqu xmm0, xmmword [rcx + rax - 0x20]
pxor xmm1, xmm0
movdqu xmmword [rcx + rax - 0x20], xmm1
movdqa xmm1, xmm2
movdqu xmm0, xmmword [rcx + rax - 0x10]
pxor xmm1, xmm0
movdqu xmmword [rcx + rax - 0x10], xmm1
cmp r8d, 0x9780
jb 0x180002260
cmp r8d, 0x9788
jae 0x1800022e9
movsxd r9, r8d
nop dword [rax]
mov rax, qword [r15]
lea r9, [r9 + 1]
inc r8d
xor byte [rax + r9 - 1], 0x58
cmp r8d, 0x9788
jb 0x1800022d0
mov rcx, qword [r15]
mov edx, 0x9788
call fcn.180001d30
mov rsi, rax
test rax, rax
je 0x1800023e4
xorps xmm0, xmm0
lea rdx, [0x180047608]
mov r8d, 0x10
lea rcx, [rsp + 0x58]
movups xmmword [rsp + 0x58], xmm0
call fcn.18046aac8
movsx eax, byte [0x1800258e4]
lea rdi, [rsp + 0x30]
movdqu xmm0, xmmword [rsp + 0x58]
movd xmm1, eax
xor eax, eax
punpcklbw xmm1, xmm1
punpcklwd xmm1, xmm1
pshufd xmm1, xmm1, 0
pxor xmm1, xmm0
mov byte [rsp + 0x50], al
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
movups xmmword [rsp + 0x40], xmm0
movdqu xmmword [0x180047608], xmm1
nop dword [rax]
nop word [rax + rax]
movzx r8d, byte [rsp + rbx + 0x58]
lea rdx, str._02X
mov rcx, rdi
call fcn.180002410
movsxd rcx, eax
inc rbx
add rdi, rcx
cmp rbx, 0x10
jl 0x180002370
movups xmm0, xmmword [rsp + 0x30]
xor eax, eax
movups xmmword [r13], xmm0
movups xmm1, xmmword [rsp + 0x40]
movups xmmword [r13 + 0x10], xmm1
movups xmm0, xmmword [rsp + 0x30]
movups xmmword [r12], xmm0
movups xmm1, xmmword [rsp + 0x40]
movups xmmword [r12 + 0x10], xmm1
movups xmm0, xmmword [rsp + 0x30]
movups xmmword [rbp], xmm0
movups xmm1, xmmword [rsp + 0x40]
movups xmmword [rbp + 0x10], xmm1
movups xmm0, xmmword [rsp + 0x30]
movups xmmword [rsi], xmm0
movups xmm1, xmmword [rsp + 0x40]
movups xmmword [rsi + 0x10], xmm1
jmp 0x1800023e9
mov eax, 1
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.180002510
add rsp, 0x88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret