Function at 0x1400503e0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x10
movzx eax, byte [rdx + 6]
movzx r8d, byte [rdx + 7]
mov r10, rdx
lea r9, [0x140000000]
mov rdi, rcx
mov ecx, dword [r9 + r8*4 + 0xfe1d0]
xor ecx, dword [r9 + rax*4 + 0xfddd0]
movzx eax, byte [rdx + 5]
xor ecx, dword [r9 + rax*4 + 0xfd9d0]
movzx eax, byte [rdx + 4]
xor ecx, dword [r9 + rax*4 + 0xfd5d0]
movzx eax, byte [rdx + 3]
xor ecx, dword [r9 + rax*4 + 0xfd1d0]
movzx eax, byte [rdx + 2]
xor ecx, dword [r9 + rax*4 + 0xfcdd0]
movzx eax, byte [rdx + 1]
xor ecx, dword [r9 + rax*4 + 0xfc9d0]
movzx eax, byte [rdx]
xor ecx, dword [r9 + rax*4 + 0xfc5d0]
movzx eax, byte [rdx + 0xe]
mov dword [rsp], ecx
movzx ecx, byte [rdx + 0xf]
mov edx, dword [r9 + rcx*4 + 0xfe1d0]
movzx ecx, byte [r10 + 0x16]
movzx r12d, byte [rsp + 1]
xor edx, dword [r9 + rax*4 + 0xfddd0]
movzx eax, byte [r10 + 0xd]
xor edx, dword [r9 + rax*4 + 0xfd9d0]
movzx eax, byte [r10 + 0xc]
xor edx, dword [r9 + rax*4 + 0xfd5d0]
movzx eax, byte [r10 + 0xb]
xor edx, dword [r9 + rax*4 + 0xfd1d0]
movzx eax, byte [r10 + 0xa]
xor edx, dword [r9 + rax*4 + 0xfcdd0]
movzx eax, byte [r10 + 9]
xor edx, dword [r9 + rax*4 + 0xfc9d0]
movzx eax, byte [r10 + 8]
xor edx, dword [r9 + rax*4 + 0xfc5d0]
movzx eax, byte [r10 + 0x15]
mov dword [rsp + 4], edx
mov edx, dword [r9 + rcx*4 + 0xfddd0]
movzx ecx, byte [r10 + 0x1e]
xor edx, dword [r9 + rax*4 + 0xfd9d0]
movzx eax, byte [r10 + 0x14]
movzx r11d, byte [rsp + 4]
xor edx, dword [r9 + rax*4 + 0xfd5d0]
movzx eax, byte [r10 + 0x13]
movzx r13d, byte [rsp + 5]
xor edx, dword [r9 + rax*4 + 0xfd1d0]
movzx eax, byte [r10 + 0x12]
xor edx, dword [r9 + rax*4 + 0xfcdd0]
movzx eax, byte [r10 + 0x11]
xor edx, dword [r9 + rax*4 + 0xfc9d0]
movzx eax, byte [r10 + 0x10]
xor edx, dword [r9 + rax*4 + 0xfc5d0]
movzx eax, byte [r10 + 0x17]
xor edx, dword [r9 + rax*4 + 0xfe1d0]
movzx eax, byte [r10 + 0x1d]
mov dword [rsp + 8], edx
mov edx, dword [r9 + rcx*4 + 0xfddd0]
xor edx, dword [r9 + rax*4 + 0xfd9d0]
movzx eax, byte [r10 + 0x1c]
movzx ebx, byte [rsp + 8]
xor edx, dword [r9 + rax*4 + 0xfd5d0]
movzx eax, byte [r10 + 0x1b]
movzx r14d, byte [rsp + 9]
xor edx, dword [r9 + rax*4 + 0xfd1d0]
movzx eax, byte [r10 + 0x1a]
xor edx, dword [r9 + rax*4 + 0xfcdd0]
movzx eax, byte [r10 + 0x19]
xor edx, dword [r9 + rax*4 + 0xfc9d0]
movzx eax, byte [r10 + 0x18]
xor edx, dword [r9 + rax*4 + 0xfc5d0]
movzx eax, byte [r10 + 0x1f]
xor edx, dword [r9 + rax*4 + 0xfe1d0]
movzx r9d, byte [rsp]
xor esi, esi
mov dword [rsp + 0xc], edx
mov qword [rsp + 0x60], rsi
mov edx, esi
movzx ebp, byte [rsp + 0xc]
movzx r15d, byte [rsp + 0xd]
movzx r10d, byte [rsp + 2]
movzx esi, byte [rsp + 6]
lea r8, [rdi + 0x800]
movzx edi, byte [rsp + 0xa]
nop dword [rax]
lea rcx, [0x140000000]
movzx eax, byte [rdx + rcx + 0xfb4d0]
xor rax, r9
movzx eax, byte [rax + rcx + 0xfb4d0]
xor rax, r11
movzx ecx, byte [rax + rcx + 0xfb3d0]
lea rax, [0x140000000]
xor rcx, rbx
movzx eax, byte [rcx + rax + 0xfb3d0]
lea rcx, [0x140000000]
xor rax, rbp
mov eax, dword [rcx + rax*4 + 0xfb5d0]
mov dword [r8 - 0x800], eax
movzx eax, byte [rdx + rcx + 0xfb3d0]
xor rax, r12
movzx ecx, byte [rax + rcx + 0xfb4d0]
lea rax, [0x140000000]
xor rcx, r13
movzx eax, byte [rcx + rax + 0xfb4d0]
lea rcx, [0x140000000]
xor rax, r14
movzx ecx, byte [rax + rcx + 0xfb3d0]
lea rax, [0x140000000]
xor rcx, r15
mov eax, dword [rax + rcx*4 + 0xfb9d0]
lea rcx, [0x140000000]
mov dword [r8 - 0x400], eax
movzx eax, byte [rdx + rcx + 0xfb3d0]
xor rax, r10
movzx ecx, byte [rax + rcx + 0xfb3d0]
lea rax, [0x140000000]
xor rcx, rsi
movzx eax, byte [rcx + rax + 0xfb3d0]
lea rcx, [0x140000000]
xor rax, rdi
movzx ecx, byte [rax + rcx + 0xfb4d0]
movzx eax, byte [rsp + 0xe]
xor rcx, rax
lea rax, [0x140000000]
mov eax, dword [rax + rcx*4 + 0xfbdd0]
movzx ecx, byte [rsp + 3]
mov dword [r8], eax
lea rax, [0x140000000]
movzx eax, byte [rdx + rax + 0xfb4d0]
xor rax, rcx
lea rcx, [0x140000000]
movzx ecx, byte [rax + rcx + 0xfb3d0]
movzx eax, byte [rsp + 7]
xor rcx, rax
lea rax, [0x140000000]
movzx eax, byte [rcx + rax + 0xfb4d0]
movzx ecx, byte [rsp + 0xb]
xor rax, rcx
lea rcx, [0x140000000]
movzx ecx, byte [rax + rcx + 0xfb4d0]
movzx eax, byte [rsp + 0xf]
xor rcx, rax
lea rax, [0x140000000]
mov eax, dword [rax + rcx*4 + 0xfc1d0]
lea rcx, [0x140000000]
mov dword [r8 + 0x400], eax
movzx eax, byte [rdx + rcx + 0xfb4d1]
xor rax, r9
movzx eax, byte [rax + rcx + 0xfb4d0]
xor rax, r11
movzx ecx, byte [rax + rcx + 0xfb3d0]
lea rax, [0x140000000]
xor rcx, rbx
movzx eax, byte [rcx + rax + 0xfb3d0]
lea rcx, [0x140000000]
xor rax, rbp
mov eax, dword [rcx + rax*4 + 0xfb5d0]
mov dword [r8 - 0x7fc], eax
movzx eax, byte [rdx + rcx + 0xfb3d1]
xor rax, r12
movzx ecx, byte [rax + rcx + 0xfb4d0]
lea rax, [0x140000000]
xor rcx, r13
movzx eax, byte [rcx + rax + 0xfb4d0]
lea rcx, [0x140000000]
xor rax, r14
movzx ecx, byte [rax + rcx + 0xfb3d0]
lea rax, [0x140000000]
xor rcx, r15
mov eax, dword [rax + rcx*4 + 0xfb9d0]
lea rcx, [0x140000000]
mov dword [r8 - 0x3fc], eax
movzx eax, byte [rdx + rcx + 0xfb3d1]
xor rax, r10
movzx ecx, byte [rax + rcx + 0xfb3d0]
lea rax, [0x140000000]
xor rcx, rsi
movzx eax, byte [rcx + rax + 0xfb3d0]
lea rcx, [0x140000000]
xor rax, rdi
movzx ecx, byte [rax + rcx + 0xfb4d0]
movzx eax, byte [rsp + 0xe]
xor rcx, rax
lea rax, [0x140000000]
mov eax, dword [rax + rcx*4 + 0xfbdd0]
movzx ecx, byte [rsp + 3]
mov dword [r8 + 4], eax
lea rax, [0x140000000]
movzx eax, byte [rdx + rax + 0xfb4d1]
xor rax, rcx
lea rcx, [0x140000000]
movzx ecx, byte [rax + rcx + 0xfb3d0]
movzx eax, byte [rsp + 7]
xor rcx, rax
lea rax, [0x140000000]
movzx eax, byte [rcx + rax + 0xfb4d0]
movzx ecx, byte [rsp + 0xb]
xor rax, rcx
lea rcx, [0x140000000]
movzx ecx, byte [rax + rcx + 0xfb4d0]
movzx eax, byte [rsp + 0xf]
xor rcx, rax
lea rax, [0x140000000]
mov eax, dword [rax + rcx*4 + 0xfc1d0]
lea rcx, [0x140000000]
mov dword [r8 + 0x404], eax
movzx eax, byte [rdx + rcx + 0xfb4d2]
xor rax, r9
movzx eax, byte [rax + rcx + 0xfb4d0]
xor rax, r11
movzx ecx, byte [rax + rcx + 0xfb3d0]
lea rax, [0x140000000]
xor rcx, rbx
movzx eax, byte [rcx + rax + 0xfb3d0]
lea rcx, [0x140000000]
xor rax, rbp
mov eax, dword [rcx + rax*4 + 0xfb5d0]
mov dword [r8 - 0x7f8], eax
movzx eax, byte [rdx + rcx + 0xfb3d2]
xor rax, r12
movzx ecx, byte [rax + rcx + 0xfb4d0]
lea rax, [0x140000000]
xor rcx, r13
movzx eax, byte [rcx + rax + 0xfb4d0]
lea rcx, [0x140000000]
xor rax, r14
movzx ecx, byte [rax + rcx + 0xfb3d0]
lea rax, [0x140000000]
xor rcx, r15
mov eax, dword [rax + rcx*4 + 0xfb9d0]
lea rcx, [0x140000000]
mov dword [r8 - 0x3f8], eax
movzx eax, byte [rdx + rcx + 0xfb3d2]
xor rax, r10
movzx ecx, byte [rax + rcx + 0xfb3d0]
lea rax, [0x140000000]
xor rcx, rsi
movzx eax, byte [rcx + rax + 0xfb3d0]
lea rcx, [0x140000000]
xor rax, rdi
movzx ecx, byte [rax + rcx + 0xfb4d0]
movzx eax, byte [rsp + 0xe]
xor rcx, rax
lea rax, [0x140000000]
mov eax, dword [rax + rcx*4 + 0xfbdd0]
mov dword [r8 + 8], eax
lea rax, [0x140000000]
movzx eax, byte [rdx + rax + 0xfb4d2]
movzx ecx, byte [rsp + 3]
add rdx, 4
xor rax, rcx
lea rcx, [0x140000000]
add r8, 0x10
movzx ecx, byte [rax + rcx + 0xfb3d0]
movzx eax, byte [rsp + 7]
xor rcx, rax
lea rax, [0x140000000]
movzx eax, byte [rcx + rax + 0xfb4d0]
movzx ecx, byte [rsp + 0xb]
xor rax, rcx
lea rcx, [0x140000000]
movzx ecx, byte [rax + rcx + 0xfb4d0]
movzx eax, byte [rsp + 0xf]
xor rcx, rax
lea rax, [0x140000000]
mov eax, dword [rax + rcx*4 + 0xfc1d0]
lea rcx, [0x140000000]
mov dword [r8 + 0x3f8], eax
movzx eax, byte [rdx + rcx + 0xfb4cf]
xor rax, r9
movzx eax, byte [rax + rcx + 0xfb4d0]
xor rax, r11
movzx ecx, byte [rax + rcx + 0xfb3d0]
lea rax, [0x140000000]
xor rcx, rbx
movzx eax, byte [rcx + rax + 0xfb3d0]
lea rcx, [0x140000000]
xor rax, rbp
mov eax, dword [rcx + rax*4 + 0xfb5d0]
mov dword [r8 - 0x804], eax
movzx eax, byte [rdx + rcx + 0xfb3cf]
xor rax, r12
movzx ecx, byte [rax + rcx + 0xfb4d0]
lea rax, [0x140000000]
xor rcx, r13
movzx eax, byte [rcx + rax + 0xfb4d0]
lea rcx, [0x140000000]
xor rax, r14
movzx ecx, byte [rax + rcx + 0xfb3d0]
lea rax, [0x140000000]
xor rcx, r15
mov eax, dword [rax + rcx*4 + 0xfb9d0]
lea rcx, [0x140000000]
mov dword [r8 - 0x404], eax
movzx eax, byte [rdx + rcx + 0xfb3cf]
xor rax, r10
movzx ecx, byte [rax + rcx + 0xfb3d0]
lea rax, [0x140000000]
xor rcx, rsi
movzx eax, byte [rcx + rax + 0xfb3d0]
lea rcx, [0x140000000]
xor rax, rdi
movzx ecx, byte [rax + rcx + 0xfb4d0]
movzx eax, byte [rsp + 0xe]
xor rcx, rax
lea rax, [0x140000000]
mov eax, dword [rax + rcx*4 + 0xfbdd0]
movzx ecx, byte [rsp + 3]
mov dword [r8 - 4], eax
lea rax, [0x140000000]
movzx eax, byte [rdx + rax + 0xfb4cf]
xor rax, rcx
lea rcx, [0x140000000]
movzx ecx, byte [rax + rcx + 0xfb3d0]
movzx eax, byte [rsp + 7]
xor rcx, rax
lea rax, [0x140000000]
movzx eax, byte [rcx + rax + 0xfb4d0]
movzx ecx, byte [rsp + 0xb]
xor rax, rcx
lea rcx, [0x140000000]
movzx ecx, byte [rax + rcx + 0xfb4d0]
movzx eax, byte [rsp + 0xf]
xor rcx, rax
lea rax, [0x140000000]
cmp rdx, 0x100
mov eax, dword [rax + rcx*4 + 0xfc1d0]
mov dword [r8 + 0x3fc], eax
jl 0x140050600
mov rdi, qword [rsp + 0x50]
mov r10, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rdi, 0x1004
lea rbp, [0x140000000]
nop dword [rax]
movzx edx, byte [rsi + rbp + 0xfb3d1]
movzx eax, byte [r10 + 0x1d]
movzx r9d, byte [rsi + rbp + 0xfb4d1]
xor rax, rdx
movzx ecx, byte [rax + rbp + 0xfb4d0]
movzx eax, byte [r10 + 0x15]
xor rcx, rax
movzx eax, byte [r10 + 0xd]
movzx ecx, byte [rcx + rbp + 0xfb4d0]
xor rcx, rax
movzx eax, byte [r10 + 5]
movzx r8d, byte [rcx + rbp + 0xfb3d0]
xor r8, rax
movzx eax, byte [r10 + 0x1e]
xor rax, rdx
mov ebx, dword [rbp + r8*4 + 0xfb9d0]
movzx ecx, byte [rax + rbp + 0xfb3d0]
movzx eax, byte [r10 + 0x16]
xor rcx, rax
movzx eax, byte [r10 + 0xe]
movzx edx, byte [rcx + rbp + 0xfb3d0]
xor rdx, rax
movzx eax, byte [r10 + 6]
movzx ecx, byte [rdx + rbp + 0xfb4d0]
xor rcx, rax
movzx eax, byte [r10 + 0x1f]
xor ebx, dword [rbp + rcx*4 + 0xfbdd0]
xor rax, r9
movzx ecx, byte [rax + rbp + 0xfb3d0]
movzx eax, byte [r10 + 0x17]
xor rcx, rax
movzx eax, byte [r10 + 0xf]
movzx edx, byte [rcx + rbp + 0xfb4d0]
xor rdx, rax
movzx eax, byte [r10 + 7]
movzx ecx, byte [rdx + rbp + 0xfb4d0]
xor rcx, rax
movzx eax, byte [r10 + 0x1c]
xor ebx, dword [rbp + rcx*4 + 0xfc1d0]
xor rax, r9
movzx r9d, byte [rsi + rbp + 0xfb4d0]
movzx ecx, byte [rax + rbp + 0xfb4d0]
movzx eax, byte [r10 + 0x14]
xor rcx, rax
movzx eax, byte [r10 + 0xc]
movzx edx, byte [rcx + rbp + 0xfb3d0]
xor rdx, rax
movzx eax, byte [r10 + 4]
movzx ecx, byte [rdx + rbp + 0xfb3d0]
movzx edx, byte [rsi + rbp + 0xfb3d0]
xor rcx, rax
movzx eax, byte [r10 + 0x19]
xor ebx, dword [rbp + rcx*4 + 0xfb5d0]
xor rax, rdx
movzx ecx, byte [rax + rbp + 0xfb4d0]
movzx eax, byte [r10 + 0x11]
rol ebx, 8
xor rcx, rax
movzx eax, byte [r10 + 9]
movzx ecx, byte [rcx + rbp + 0xfb4d0]
xor rcx, rax
movzx eax, byte [r10 + 1]
movzx r8d, byte [rcx + rbp + 0xfb3d0]
xor r8, rax
movzx eax, byte [r10 + 0x1a]
mov r11d, dword [rbp + r8*4 + 0xfb9d0]
xor rax, rdx
movzx ecx, byte [rax + rbp + 0xfb3d0]
movzx eax, byte [r10 + 0x12]
xor rcx, rax
movzx eax, byte [r10 + 0xa]
movzx edx, byte [rcx + rbp + 0xfb3d0]
xor rdx, rax
movzx eax, byte [r10 + 2]
movzx ecx, byte [rdx + rbp + 0xfb4d0]
xor rcx, rax
movzx eax, byte [r10 + 0x1b]
xor r11d, dword [rbp + rcx*4 + 0xfbdd0]
xor rax, r9
movzx ecx, byte [rax + rbp + 0xfb3d0]
movzx eax, byte [r10 + 0x13]
xor rcx, rax
movzx eax, byte [r10 + 0xb]
add rsi, 2
movzx edx, byte [rcx + rbp + 0xfb4d0]
add rdi, 8
xor rdx, rax
movzx eax, byte [r10 + 3]
movzx ecx, byte [rdx + rbp + 0xfb4d0]
xor rcx, rax
movzx eax, byte [r10 + 0x18]
xor r11d, dword [rbp + rcx*4 + 0xfc1d0]
xor rax, r9
movzx ecx, byte [rax + rbp + 0xfb4d0]
movzx eax, byte [r10 + 0x10]
xor rcx, rax
movzx eax, byte [r10 + 8]
movzx edx, byte [rcx + rbp + 0xfb3d0]
xor rdx, rax
movzx eax, byte [r10]
movzx ecx, byte [rdx + rbp + 0xfb3d0]
xor rcx, rax
xor r11d, dword [rbp + rcx*4 + 0xfb5d0]
add r11d, ebx
mov dword [rdi - 0xc], r11d
lea eax, [rbx + r11]
rol eax, 9
mov dword [rdi - 8], eax
cmp rsi, 0x28
jne 0x140050bd0
mov rbx, qword [rsp + 0x68]
add rsp, 0x10
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret