Function at 0x180001000
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 r13
mov eax, dword [0x18002e80c]
xor ebx, ebx
mov rdi, rdx
lea r13d, [rbx + 1]
cmp eax, ebx
mov rsi, rcx
cmove eax, r13d
mov dword [rcx + 0x200], 0xa
mov r11, rcx
mov r9d, ebx
mov r10, rcx
lea r8, [rdx + 2]
mov dword [0x18002e80c], eax
lea ebp, [rbx + 4]
mov eax, r9d
add r9d, r13d
shl eax, 2
movsxd rcx, eax
movzx eax, byte [r8 - 1]
movzx edx, byte [rcx + rdi]
shl edx, 8
or edx, eax
movzx eax, byte [r8]
shl edx, 8
or edx, eax
movzx eax, byte [r8 + 1]
add r8, rbp
shl edx, 8
or edx, eax
mov dword [r10], edx
add r10, rbp
cmp r9d, ebp
jl 0x18000104f
mov eax, dword [rsi + 0x200]
lea r12, [0x180000000]
cmp eax, 0xa
je 0x180001281
cmp eax, 0xc
je 0x1800011c9
cmp eax, 0xe
jne 0x180001316
lea rdi, [0x180027290]
mov r10d, dword [r11 + 0x1c]
mov eax, r10d
shr eax, 0x10
movzx ecx, al
mov eax, r10d
movzx edx, byte [rcx + r12 + 0x25090]
shr eax, 8
movzx ecx, al
shl edx, 8
movzx eax, byte [rcx + r12 + 0x25090]
xor edx, eax
movzx eax, r10b
movzx eax, byte [rax + r12 + 0x25090]
shl edx, 8
xor edx, eax
mov eax, r10d
shr eax, 0x18
shl edx, 8
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x25090]
mov ecx, dword [r11 + 8]
xor edx, eax
mov eax, dword [r11 + 4]
xor edx, dword [rdi]
add rdi, rbp
xor edx, dword [r11]
add r11, 0x20
xor eax, edx
mov dword [r11], edx
mov edx, dword [r11 - 0x14]
xor ecx, eax
mov dword [r11 + 4], eax
xor edx, ecx
mov dword [r11 + 8], ecx
mov dword [r11 + 0xc], edx
mov eax, edx
shr eax, 0x18
movzx ecx, al
mov eax, edx
shr edx, 8
movzx r8d, byte [rcx + r12 + 0x25090]
shr eax, 0x10
movzx ecx, al
shl r8d, 8
movzx eax, byte [rcx + r12 + 0x25090]
mov ecx, dword [r11 - 8]
xor r8d, eax
movzx eax, dl
movzx eax, byte [rax + r12 + 0x25090]
shl r8d, 8
xor r8d, eax
movzx eax, byte [r11 + 0xc]
movzx eax, byte [rax + r12 + 0x25090]
shl r8d, 8
xor r8d, eax
mov eax, dword [r11 - 0xc]
xor r8d, dword [r11 - 0x10]
xor eax, r8d
mov dword [r11 + 0x10], r8d
xor ecx, eax
mov dword [r11 + 0x14], eax
lea rax, [0x1800272ac]
xor r10d, ecx
cmp rdi, rax
mov dword [r11 + 0x18], ecx
mov dword [r11 + 0x1c], r10d
jl 0x1800010b9
jmp 0x180001316
lea rdi, [0x180027290]
mov r9d, dword [r11 + 0x14]
mov eax, r9d
shr eax, 0x10
movzx ecx, al
mov eax, r9d
movzx r8d, byte [rcx + r12 + 0x25090]
shr eax, 8
movzx ecx, al
shl r8d, 8
movzx eax, byte [rcx + r12 + 0x25090]
xor r8d, eax
movzx eax, r9b
movzx eax, byte [rax + r12 + 0x25090]
shl r8d, 8
xor r8d, eax
mov eax, r9d
shr eax, 0x18
shl r8d, 8
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x25090]
mov ecx, dword [r11 + 8]
xor r8d, eax
mov eax, dword [r11 + 4]
xor r8d, dword [r11]
add r11, 0x18
xor r8d, dword [rdi]
add rdi, rbp
xor eax, r8d
mov dword [r11], r8d
xor ecx, eax
mov dword [r11 + 4], eax
mov eax, dword [r11 - 0xc]
xor eax, ecx
mov dword [r11 + 8], ecx
mov ecx, dword [r11 - 8]
xor ecx, eax
mov dword [r11 + 0xc], eax
lea rax, [0x1800272b0]
xor r9d, ecx
cmp rdi, rax
mov dword [r11 + 0x10], ecx
mov dword [r11 + 0x14], r9d
jl 0x1800011d0
jmp 0x180001316
lea rdi, [0x180027290]
mov r8d, dword [r11 + 0xc]
mov eax, r8d
shr eax, 0x10
movzx ecx, al
mov eax, r8d
movzx edx, byte [rcx + r12 + 0x25090]
shr eax, 8
movzx ecx, al
shl edx, 8
movzx eax, byte [rcx + r12 + 0x25090]
xor edx, eax
movzx eax, r8b
movzx eax, byte [rax + r12 + 0x25090]
shl edx, 8
xor edx, eax
mov eax, r8d
shr eax, 0x18
shl edx, 8
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x25090]
xor edx, eax
mov eax, dword [r11 + 8]
xor edx, dword [rdi]
add rdi, rbp
xor edx, dword [r11]
add r11, 0x10
mov dword [r11], edx
xor edx, dword [r11 - 0xc]
xor eax, edx
mov dword [r11 + 4], edx
xor r8d, eax
mov dword [r11 + 8], eax
lea rax, [0x1800272b8]
cmp rdi, rax
mov dword [r11 + 0xc], r8d
jl 0x180001288
cmp dword [0x18002e810], ebx
jne 0x18000137a
movzx ecx, byte [rbx + r12 + 0x25090]
mov eax, dword [r12 + rcx*4 + 0x26290]
mov dword [r12 + rbx*4 + 0x2f020], eax
mov eax, dword [r12 + rcx*4 + 0x26690]
mov dword [r12 + rbx*4 + 0x2ec20], eax
mov eax, dword [r12 + rcx*4 + 0x26a90]
mov dword [r12 + rbx*4 + 0x2e820], eax
mov eax, dword [r12 + rcx*4 + 0x26e90]
mov dword [r12 + rbx*4 + 0x2f420], eax
add rbx, r13
cmp rbx, 0x100
jl 0x18000131e
mov dword [0x18002e810], r13d
mov eax, dword [r11]
add r11, rbp
lea r10, [rsi + 0x100]
mov dword [r10], eax
mov eax, dword [r11]
add r10, rbp
mov dword [r10], eax
add r11, rbp
add r10, rbp
mov eax, dword [r11]
add r11, rbp
mov ebx, r13d
mov dword [r10], eax
mov eax, dword [r11]
add r10, rbp
mov dword [r10], eax
add r10, rbp
add r11, rbp
cmp dword [rsi + 0x200], r13d
jle 0x1800014fc
sub r11, 0x20
add ebx, r13d
mov r9d, dword [r11]
mov eax, r9d
shr eax, 0x18
movzx edx, al
mov eax, r9d
shr r9d, 8
mov r8d, dword [r12 + rdx*4 + 0x2f020]
shr eax, 0x10
movzx ecx, al
movzx eax, r9b
xor r8d, dword [r12 + rcx*4 + 0x2ec20]
xor r8d, dword [r12 + rax*4 + 0x2e820]
movzx eax, byte [r11]
add r11, rbp
xor r8d, dword [r12 + rax*4 + 0x2f420]
mov dword [r10], r8d
mov r9d, dword [r11]
add r10, rbp
mov eax, r9d
shr eax, 0x18
movzx edx, al
mov eax, r9d
shr r9d, 8
mov r8d, dword [r12 + rdx*4 + 0x2f020]
shr eax, 0x10
movzx ecx, al
movzx eax, r9b
xor r8d, dword [r12 + rcx*4 + 0x2ec20]
xor r8d, dword [r12 + rax*4 + 0x2e820]
movzx eax, byte [r11]
add r11, rbp
xor r8d, dword [r12 + rax*4 + 0x2f420]
mov dword [r10], r8d
mov r9d, dword [r11]
add r10, rbp
mov eax, r9d
shr eax, 0x18
movzx edx, al
mov eax, r9d
shr r9d, 8
mov r8d, dword [r12 + rdx*4 + 0x2f020]
shr eax, 0x10
movzx ecx, al
movzx eax, r9b
xor r8d, dword [r12 + rcx*4 + 0x2ec20]
xor r8d, dword [r12 + rax*4 + 0x2e820]
movzx eax, byte [r11]
add r11, rbp
xor r8d, dword [r12 + rax*4 + 0x2f420]
mov dword [r10], r8d
mov r9d, dword [r11]
add r10, rbp
mov eax, r9d
shr eax, 0x18
movzx edx, al
mov eax, r9d
shr r9d, 8
mov r8d, dword [r12 + rdx*4 + 0x2f020]
shr eax, 0x10
movzx ecx, al
movzx eax, r9b
xor r8d, dword [r12 + rcx*4 + 0x2ec20]
xor r8d, dword [r12 + rax*4 + 0x2e820]
movzx eax, byte [r11]
add r11, rbp
xor r8d, dword [r12 + rax*4 + 0x2f420]
mov dword [r10], r8d
add r10, rbp
cmp ebx, dword [rsi + 0x200]
jl 0x1800013c1
mov rbx, qword [rsp + 0x18]
mov rsi, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x30]
sub r11, 0x20
mov eax, dword [r11]
mov dword [r10], eax
add r10, rbp
add r11, rbp
mov eax, dword [r11]
mov dword [r10], eax
mov eax, dword [r11 + rbp]
mov dword [r10 + rbp], eax
mov eax, dword [r11 + rbp + 4]
mov dword [r10 + rbp + 4], eax
mov rbp, qword [rsp + 0x20]
pop r13
pop r12
ret