Function at 0x180001a48
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r12
push r14
push r15
mov eax, dword [0x1801763d0]
lea r8, [rdx + 2]
xor edi, edi
mov dword [rcx + 0x200], 0xa
test eax, eax
mov rsi, rcx
mov r10, rdx
mov rbx, rcx
mov r11, rcx
mov r9d, edi
lea r12d, [rdi + 1]
cmove eax, r12d
lea r15d, [rdi + 4]
mov dword [0x1801763d0], eax
sub rsi, rdx
mov eax, r9d
add r9d, r12d
shl eax, 2
movsxd rcx, eax
movzx eax, byte [r8 - 1]
movzx edx, byte [rcx + r10]
shl edx, 8
or edx, eax
movzx eax, byte [r8]
shl edx, 8
or edx, eax
movzx eax, byte [r8 + 1]
shl edx, 8
or edx, eax
mov dword [rsi + r8 - 2], edx
add r8, r15
cmp r9d, r15d
jl 0x180001a9d
mov eax, dword [rbx + 0x200]
lea r14, [0x180000000]
cmp eax, 0xa
je 0x180001ccd
cmp eax, 0xc
je 0x180001c18
cmp eax, 0xe
jne 0x180001d6a
mov ebp, dword [rbx]
lea rsi, [0x18003fcf0]
mov r10d, dword [r11 + 0x1c]
mov eax, r10d
shr eax, 0x10
movzx ecx, al
mov eax, r10d
shr eax, 8
movzx edx, byte [rcx + r14 + 0x40e20]
movzx ecx, al
shl edx, 8
movzx eax, byte [rcx + r14 + 0x40e20]
mov ecx, dword [r11 + 8]
xor edx, eax
movzx eax, byte [r11 + 0x1c]
shl edx, 8
movzx eax, byte [rax + r14 + 0x40e20]
xor edx, eax
mov eax, r10d
shr rax, 0x18
shl edx, 8
movzx eax, byte [rax + r14 + 0x40e20]
xor edx, eax
mov eax, dword [r11 + 4]
xor edx, dword [rsi]
add rsi, r15
xor edx, ebp
xor eax, edx
mov dword [r11 + 0x20], edx
xor ecx, eax
mov dword [r11 + 0x24], eax
mov eax, dword [r11 + 0xc]
mov ebp, edx
xor eax, ecx
mov dword [r11 + 0x28], ecx
mov edx, eax
shr rax, 0x18
mov dword [r11 + 0x2c], edx
movzx r8d, byte [rax + r14 + 0x40e20]
mov eax, edx
shr eax, 0x10
movzx ecx, al
shl r8d, 8
shr edx, 8
movzx eax, byte [rcx + r14 + 0x40e20]
mov ecx, dword [r11 + 0x18]
xor r8d, eax
shl r8d, 8
movzx eax, dl
movzx eax, byte [rax + r14 + 0x40e20]
xor r8d, eax
movzx eax, byte [r11 + 0x2c]
shl r8d, 8
movzx eax, byte [rax + r14 + 0x40e20]
xor r8d, eax
mov eax, dword [r11 + 0x14]
xor r8d, dword [r11 + 0x10]
xor eax, r8d
mov dword [r11 + 0x30], r8d
xor ecx, eax
mov dword [r11 + 0x34], eax
mov dword [r11 + 0x38], ecx
lea rax, [0x18003fd0c]
xor ecx, r10d
mov dword [r11 + 0x3c], ecx
add r11, 0x20
cmp rsi, rax
jl 0x180001b09
jmp 0x180001d6a
mov r9d, dword [rbx]
lea rsi, [0x18003fcf0]
mov r8d, dword [r11 + 0x14]
mov eax, r8d
shr eax, 0x10
movzx ecx, al
mov eax, r8d
shr eax, 8
movzx edx, byte [rcx + r14 + 0x40e20]
movzx ecx, al
shl edx, 8
movzx eax, byte [rcx + r14 + 0x40e20]
mov ecx, dword [r11 + 8]
xor edx, eax
movzx eax, byte [r11 + 0x14]
shl edx, 8
movzx eax, byte [rax + r14 + 0x40e20]
xor edx, eax
mov eax, r8d
shr rax, 0x18
shl edx, 8
movzx eax, byte [rax + r14 + 0x40e20]
xor edx, eax
mov eax, dword [r11 + 4]
xor r9d, edx
xor r9d, dword [rsi]
add rsi, r15
xor eax, r9d
mov dword [r11 + 0x18], r9d
xor ecx, eax
mov dword [r11 + 0x1c], eax
mov eax, dword [r11 + 0xc]
xor eax, ecx
mov dword [r11 + 0x20], ecx
mov ecx, dword [r11 + 0x10]
xor ecx, eax
mov dword [r11 + 0x24], eax
mov dword [r11 + 0x28], ecx
lea rax, [0x18003fd10]
xor ecx, r8d
mov dword [r11 + 0x2c], ecx
add r11, 0x18
cmp rsi, rax
jl 0x180001c22
jmp 0x180001d6a
mov r9d, dword [rbx]
lea rsi, [0x18003fcf0]
mov r8d, dword [r11 + 0xc]
mov eax, r8d
shr eax, 0x10
movzx ecx, al
mov eax, r8d
shr eax, 8
movzx edx, byte [rcx + r14 + 0x40e20]
movzx ecx, al
shl edx, 8
movzx eax, byte [rcx + r14 + 0x40e20]
mov ecx, dword [r11 + 8]
xor edx, eax
movzx eax, byte [r11 + 0xc]
shl edx, 8
movzx eax, byte [rax + r14 + 0x40e20]
xor edx, eax
mov eax, r8d
shr rax, 0x18
shl edx, 8
movzx eax, byte [rax + r14 + 0x40e20]
xor edx, eax
mov eax, dword [r11 + 4]
xor edx, dword [rsi]
add rsi, r15
xor edx, r9d
xor eax, edx
mov dword [r11 + 0x10], edx
xor ecx, eax
mov dword [r11 + 0x14], eax
mov dword [r11 + 0x18], ecx
lea rax, [0x18003fd18]
xor ecx, r8d
mov r9d, edx
mov dword [r11 + 0x1c], ecx
add r11, 0x10
cmp rsi, rax
jl 0x180001cd7
cmp dword [0x1801763cc], edi
jne 0x180001dce
movzx ecx, byte [rdi + r14 + 0x40e20]
mov eax, dword [r14 + rcx*4 + 0x40920]
mov dword [r14 + rdi*4 + 0x177d50], eax
mov eax, dword [r14 + rcx*4 + 0x40520]
mov dword [r14 + rdi*4 + 0x178150], eax
mov eax, dword [r14 + rcx*4 + 0x40120]
mov dword [r14 + rdi*4 + 0x178550], eax
mov eax, dword [r14 + rcx*4 + 0x3fd20]
mov dword [r14 + rdi*4 + 0x178950], eax
add rdi, r12
cmp rdi, 0x100
jl 0x180001d72
mov dword [0x1801763cc], r12d
lea r10, [rbx + 0x100]
mov rcx, r15
mov eax, dword [r11]
add r11, r15
mov dword [r10], eax
add r10, r15
sub rcx, r12
jne 0x180001dd8
mov edi, r12d
cmp dword [rbx + 0x200], r12d
jle 0x180001f2c
sub r11, 0x20
add edi, r12d
mov r9d, dword [r11]
mov eax, r9d
mov edx, r9d
shr eax, 0x10
movzx ecx, al
shr rdx, 0x18
shr r9d, 8
movzx eax, r9b
mov r8d, dword [r14 + rdx*4 + 0x177d50]
xor r8d, dword [r14 + rcx*4 + 0x178150]
xor r8d, dword [r14 + rax*4 + 0x178550]
movzx eax, byte [r11]
add r11, r15
xor r8d, dword [r14 + rax*4 + 0x178950]
mov dword [r10], r8d
add r10, r15
mov r9d, dword [r11]
mov eax, r9d
mov edx, r9d
shr eax, 0x10
movzx ecx, al
shr rdx, 0x18
shr r9d, 8
movzx eax, r9b
mov r8d, dword [r14 + rdx*4 + 0x177d50]
xor r8d, dword [r14 + rcx*4 + 0x178150]
xor r8d, dword [r14 + rax*4 + 0x178550]
movzx eax, byte [r11]
add r11, r15
xor r8d, dword [r14 + rax*4 + 0x178950]
mov dword [r10], r8d
add r10, r15
mov r9d, dword [r11]
mov eax, r9d
mov edx, r9d
shr eax, 0x10
movzx ecx, al
shr rdx, 0x18
shr r9d, 8
movzx eax, r9b
mov r8d, dword [r14 + rdx*4 + 0x177d50]
xor r8d, dword [r14 + rcx*4 + 0x178150]
xor r8d, dword [r14 + rax*4 + 0x178550]
movzx eax, byte [r11]
add r11, r15
xor r8d, dword [r14 + rax*4 + 0x178950]
mov dword [r10], r8d
add r10, r15
mov r9d, dword [r11]
mov eax, r9d
mov edx, r9d
shr eax, 0x10
movzx ecx, al
shr rdx, 0x18
shr r9d, 8
movzx eax, r9b
mov r8d, dword [r14 + rdx*4 + 0x177d50]
xor r8d, dword [r14 + rcx*4 + 0x178150]
xor r8d, dword [r14 + rax*4 + 0x178550]
movzx eax, byte [r11]
add r11, r15
xor r8d, dword [r14 + rax*4 + 0x178950]
mov dword [r10], r8d
add r10, r15
cmp edi, dword [rbx + 0x200]
jl 0x180001df9
mov rbx, qword [rsp + 0x20]
sub r11, 0x20
mov rbp, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
mov eax, dword [r11]
mov dword [r10], eax
add r10, r15
add r11, r15
mov eax, dword [r11]
mov dword [r10], eax
mov eax, dword [r11 + r15]
mov dword [r10 + r15], eax
mov eax, dword [r11 + r15 + 4]
mov dword [r10 + r15 + 4], eax
pop r15
pop r14
pop r12
ret