Function at 0x180001ea0
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 [0x18004ca68]
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.180009194
mov qword [rdi], rax
test rax, rax
je 0x1800023d4
mov r8d, 0x88b4
lea rdx, [0x180022030]
mov rcx, rax
call fcn.180003300
mov rax, qword [rdi]
xor ebx, ebx
mov r8d, ebx
lea rcx, [rax + 0x88b3]
cmp rax, rdi
ja 0x180001f45
cmp rcx, rdi
jae 0x180001fb9
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 0x180001f50
cmp r8d, 0x88b4
jae 0x180001fd9
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 0x180001fc0
mov rcx, qword [rdi]
mov edx, 0x88b4
call fcn.180001d20
mov r13, rax
test rax, rax
je 0x1800023d4
mov edx, 0xabde
mov dword [rbp], 0xabde
mov ecx, 1
call fcn.180009194
mov qword [rsi], rax
test rax, rax
je 0x1800023d4
mov r8d, 0xabde
lea rdx, [0x18002a8f0]
mov rcx, rax
call fcn.180003300
mov rax, qword [rsi]
mov r8d, ebx
lea rcx, [rax + 0xabdd]
cmp rax, rsi
ja 0x180002040
cmp rcx, rsi
jae 0x1800020b9
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 0x180002050
cmp r8d, 0xabde
jae 0x1800020d9
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 0x1800020c0
mov rcx, qword [rsi]
mov edx, 0xabde
call fcn.180001d20
mov r12, rax
test rax, rax
je 0x1800023d4
mov rax, qword [rsp + 0x20]
mov edx, 0xddc3
mov ecx, 1
mov dword [rax], 0xddc3
call fcn.180009194
mov qword [r14], rax
test rax, rax
je 0x1800023d4
mov r8d, 0xddc3
lea rdx, [0x18003ec60]
mov rcx, rax
call fcn.180003300
mov rax, qword [r14]
mov r8d, ebx
lea rcx, [rax + 0xddc2]
cmp rax, r14
ja 0x180002144
cmp rcx, r14
jae 0x1800021b9
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, 0xddc0
jb 0x180002150
cmp r8d, 0xddc3
jae 0x1800021d9
movsxd r9, r8d
nop dword [rax]
mov rax, qword [r14]
lea r9, [r9 + 1]
inc r8d
xor byte [rax + r9 - 1], 0x58
cmp r8d, 0xddc3
jb 0x1800021c0
mov rcx, qword [r14]
mov edx, 0xddc3
call fcn.180001d20
mov rbp, rax
test rax, rax
je 0x1800023d4
mov rax, qword [rsp + 0x28]
mov edx, 0x9788
mov ecx, 1
mov dword [rax], 0x9788
call fcn.180009194
mov qword [r15], rax
test rax, rax
je 0x1800023d4
mov r8d, 0x9788
lea rdx, [0x1800354d0]
mov rcx, rax
call fcn.180003300
mov rax, qword [r15]
mov r8d, ebx
lea rcx, [rax + 0x9787]
cmp rax, r15
ja 0x180002244
cmp rcx, r15
jae 0x1800022b9
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 0x180002250
cmp r8d, 0x9788
jae 0x1800022d9
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 0x1800022c0
mov rcx, qword [r15]
mov edx, 0x9788
call fcn.180001d20
mov rsi, rax
test rax, rax
je 0x1800023d4
xorps xmm0, xmm0
lea rdx, [0x18004ca28]
mov r8d, 0x10
lea rcx, [rsp + 0x58]
movups xmmword [rsp + 0x58], xmm0
call fcn.1800706c0
movsx eax, byte [0x18002a8e4]
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 [0x18004ca28], xmm1
nop dword [rax]
nop word [rax + rax]
movzx r8d, byte [rsp + rbx + 0x58]
lea rdx, str._02X
mov rcx, rdi
call fcn.180002400
movsxd rcx, eax
inc rbx
add rdi, rcx
cmp rbx, 0x10
jl 0x180002360
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 0x1800023d9
mov eax, 1
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.180002500
add rsp, 0x88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret