Function at 0x180122600
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x20
mov rax, qword [rsp + 0x30]
add rax, 0x810
mov qword [rsp], rax
mov rdi, qword [rsp]
xor eax, eax
mov ecx, 0xac
rep stosb byte [rdi], al
mov dword [rsp + 8], 0
mov dword [rsp + 0xc], 0
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax]
mov dword [rsp + 0x10], eax
mov rax, qword [rsp + 0x30]
add rax, 1
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax]
mov dword [rsp + 0x14], eax
mov rax, qword [rsp + 0x30]
add rax, 1
mov qword [rsp + 0x30], rax
movsxd rax, dword [rsp + 0xc]
imul rax, rax, 0x200
lea rcx, [0x18005b000]
add rcx, rax
mov eax, dword [rsp + 0x10]
movzx edx, byte [rcx + rax]
mov rax, qword [rsp]
movzx ecx, byte [rax]
xor ecx, edx
mov rax, qword [rsp]
mov byte [rax], cl
mov rax, qword [rsp]
add rax, 1
mov qword [rsp], rax
movsxd rax, dword [rsp + 0xc]
imul rax, rax, 0x200
lea rcx, [0x18005b000]
add rcx, rax
mov eax, dword [rsp + 0x14]
movzx edx, byte [rcx + rax]
mov rax, qword [rsp]
movzx ecx, byte [rax]
xor ecx, edx
mov rax, qword [rsp]
mov byte [rax], cl
mov rax, qword [rsp]
add rax, 0x55
mov qword [rsp], rax
movsxd rax, dword [rsp + 0xc]
imul rax, rax, 0x200
lea rcx, [0x18005b000]
add rcx, rax
mov eax, dword [rsp + 0x10]
movzx edx, byte [rcx + rax + 0x100]
mov rax, qword [rsp]
movzx ecx, byte [rax]
xor ecx, edx
mov rax, qword [rsp]
mov byte [rax], cl
mov rax, qword [rsp]
add rax, 1
mov qword [rsp], rax
movsxd rax, dword [rsp + 0xc]
imul rax, rax, 0x200
lea rcx, [0x18005b000]
add rcx, rax
mov eax, dword [rsp + 0x14]
movzx edx, byte [rcx + rax + 0x100]
mov rax, qword [rsp]
movzx ecx, byte [rax]
xor ecx, edx
mov rax, qword [rsp]
mov byte [rax], cl
mov rax, qword [rsp]
sub rax, 0x55
mov qword [rsp], rax
mov eax, dword [rsp + 0xc]
add eax, 1
mov dword [rsp + 0xc], eax
cmp dword [rsp + 0xc], 0x2a
jle 0x180122636
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax]
mov dword [rsp + 0x10], eax
mov rax, qword [rsp + 0x30]
add rax, 1
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax]
mov dword [rsp + 0x14], eax
mov rax, qword [rsp + 0x30]
add rax, 1
mov qword [rsp + 0x30], rax
movsxd rax, dword [rsp + 0xc]
imul rax, rax, 0x200
lea rcx, [0x18005b000]
add rcx, rax
mov eax, dword [rsp + 0x10]
movzx edx, byte [rcx + rax]
mov rax, qword [rsp]
movzx ecx, byte [rax]
xor ecx, edx
mov rax, qword [rsp]
mov byte [rax], cl
mov rax, qword [rsp]
add rax, 1
mov qword [rsp], rax
movsxd rax, dword [rsp + 0xc]
imul rax, rax, 0x200
lea rcx, [0x18005b000]
add rcx, rax
mov eax, dword [rsp + 0x14]
movzx edx, byte [rcx + rax]
mov rax, qword [rsp]
movzx ecx, byte [rax]
xor ecx, edx
mov rax, qword [rsp]
mov byte [rax], cl
mov rax, qword [rsp]
add rax, 0x55
mov qword [rsp], rax
movsxd rax, dword [rsp + 0xc]
imul rax, rax, 0x200
lea rcx, [0x18005b000]
add rcx, rax
mov eax, dword [rsp + 0x10]
movzx edx, byte [rcx + rax + 0x100]
mov rax, qword [rsp]
movzx ecx, byte [rax]
xor ecx, edx
mov rax, qword [rsp]
mov byte [rax], cl
mov rax, qword [rsp]
add rax, 1
mov qword [rsp], rax
movsxd rax, dword [rsp + 0xc]
imul rax, rax, 0x200
lea rcx, [0x18005b000]
add rcx, rax
mov eax, dword [rsp + 0x14]
movzx edx, byte [rcx + rax + 0x100]
mov rax, qword [rsp]
movzx ecx, byte [rax]
xor ecx, edx
mov rax, qword [rsp]
mov byte [rax], cl
mov rax, qword [rsp]
sub rax, 0xab
mov qword [rsp], rax
cmp dword [rsp + 8], 0x17
jge 0x1801228a2
mov eax, dword [rsp + 8]
add eax, 1
mov dword [rsp + 8], eax
jmp 0x1801228a4
jmp 0x1801228af
xor eax, eax
cmp eax, 1
jne 0x18012262e
xor eax, eax
add rsp, 0x20
pop rdi
ret