Function at 0x14004daf0
Capabilities:
Encode data using xor

Disassembly:
push rdi
sub rsp, 0x10
mov r11, rdx
mov rdi, rcx
test rdx, rdx
jne 0x14004db09
xor al, al
add rsp, 0x10
pop rdi
ret
mov rax, qword [0x14007ad00]
mov r8d, dword [rdx + 0x120]
mov rdx, qword [rdx + 0x128]
mov dword [rsp + 0x28], r8d
mov rcx, rdx
and ecx, 0x3ff
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x38], rbp
movzx r9d, byte [rcx + rax]
movzx ecx, r9b
xor cl, r8b
mov byte [rsp + 0x28], cl
lea rcx, [rdx + 1]
and ecx, 0x3ff
movzx r10d, byte [rcx + rax]
lea rcx, [rdx + 2]
xor byte [rsp + 0x29], r10b
and ecx, 0x3ff
movzx ebx, byte [rcx + rax]
lea rcx, [rdx + 3]
xor byte [rsp + 0x2a], bl
and ecx, 0x3ff
movzx ebp, byte [rcx + rax]
xor byte [rsp + 0x2b], bpl
cmp dword [rsp + 0x28], 0xffffffff
jae 0x14004de91
mov rdx, qword [0x14007b200]
xor r9b, r8b
mov rcx, qword [0x14007b1f8]
mov qword [rsp + 0x28], rcx
mov rcx, rdx
and ecx, 0x3ff
mov qword [rsp + 8], rsi
mov esi, edi
mov qword [rsp], r14
movzx ecx, byte [rcx + rax]
xor byte [rsp + 0x28], cl
lea rcx, [rdx + 1]
and ecx, 0x3ff
movzx ecx, byte [rcx + rax]
xor byte [rsp + 0x29], cl
lea rcx, [rdx + 2]
and ecx, 0x3ff
movzx ecx, byte [rcx + rax]
xor byte [rsp + 0x2a], cl
lea rcx, [rdx + 3]
and ecx, 0x3ff
movzx ecx, byte [rcx + rax]
xor byte [rsp + 0x2b], cl
sub esi, dword [rsp + 0x28]
mov dword [rsp + 0x28], r8d
xor byte [rsp + 0x29], r10b
xor byte [rsp + 0x2a], bl
xor byte [rsp + 0x2b], bpl
mov byte [rsp + 0x28], r9b
mov ebx, dword [rsp + 0x28]
mov r8, qword [r11 + 0x80]
mov edx, dword [r11 + 0x78]
mov rcx, r8
and ecx, 0x3ff
mov dword [rsp + 0x28], edx
xor dl, byte [rcx + rax]
lea rcx, [r8 + 1]
and ecx, 0x3ff
mov byte [rsp + 0x28], dl
movzx ecx, byte [rcx + rax]
xor byte [rsp + 0x29], cl
lea rcx, [r8 + 2]
and ecx, 0x3ff
movzx ecx, byte [rcx + rax]
xor byte [rsp + 0x2a], cl
lea rcx, [r8 + 3]
and ecx, 0x3ff
movzx ecx, byte [rcx + rax]
xor byte [rsp + 0x2b], cl
cmp ebx, dword [rsp + 0x28]
jae 0x14004dce0
mov r8, qword [r11 + 0x90]
mov edx, dword [r11 + 0x88]
mov rcx, r8
and ecx, 0x3ff
mov dword [rsp + 0x28], edx
mov r10d, ebx
xor dl, byte [rcx + rax]
lea rcx, [r8 + 1]
mov r9d, dword [r10 + rdi]
and ecx, 0x3ff
mov byte [rsp + 0x28], dl
movzx ecx, byte [rcx + rax]
xor byte [rsp + 0x29], cl
lea rcx, [r8 + 2]
and ecx, 0x3ff
movzx ecx, byte [rcx + rax]
xor byte [rsp + 0x2a], cl
lea rcx, [r8 + 3]
and ecx, 0x3ff
movzx ecx, byte [rcx + rax]
xor byte [rsp + 0x2b], cl
sub r9d, dword [rsp + 0x28]
add r9d, esi
mov dword [r10 + rdi], r9d
add ebx, 4
jmp 0x14004dc12
mov r8, qword [r11 + 0x118]
mov edx, dword [r11 + 0x110]
mov rcx, r8
mov r14, qword [0x14007b498]
and ecx, 0x3ff
mov dword [rsp + 0x28], edx
xor dl, byte [rcx + rax]
lea rcx, [r8 + 1]
and ecx, 0x3ff
mov byte [rsp + 0x28], dl
mov edx, dword [r11 + 0x100]
mov dword [rsp + 0x30], edx
movzx ecx, byte [rcx + rax]
xor byte [rsp + 0x29], cl
lea rcx, [r8 + 2]
and ecx, 0x3ff
movzx ecx, byte [rcx + rax]
xor byte [rsp + 0x2a], cl
lea rcx, [r8 + 3]
mov r8, qword [r11 + 0x108]
and ecx, 0x3ff
movzx ecx, byte [rcx + rax]
xor byte [rsp + 0x2b], cl
mov rcx, r8
and ecx, 0x3ff
xor dl, byte [rcx + rax]
lea rcx, [r8 + 1]
and ecx, 0x3ff
mov byte [rsp + 0x30], dl
movzx ecx, byte [rcx + rax]
xor byte [rsp + 0x31], cl
lea rcx, [r8 + 2]
and ecx, 0x3ff
movzx ecx, byte [rcx + rax]
xor byte [rsp + 0x32], cl
lea rcx, [r8 + 3]
and ecx, 0x3ff
movzx ecx, byte [rcx + rax]
xor byte [rsp + 0x33], cl
mov ecx, dword [rsp + 0x28]
sub ecx, dword [rsp + 0x30]
je 0x14004de88
xor ebx, ebx
mov ebp, ecx
nop dword [rax]
mov r8, qword [r11 + 0x108]
mov edx, dword [r11 + 0x100]
mov rcx, r8
and ecx, 0x3ff
mov dword [rsp + 0x28], edx
xor dl, byte [rcx + rax]
lea rcx, [r8 + 1]
and ecx, 0x3ff
mov byte [rsp + 0x28], dl
mov edx, dword [r11 + 0x88]
movzx ecx, byte [rcx + rax]
xor byte [rsp + 0x29], cl
lea rcx, [r8 + 2]
and ecx, 0x3ff
movzx ecx, byte [rcx + rax]
xor byte [rsp + 0x2a], cl
lea rcx, [r8 + 3]
mov r8, qword [r11 + 0x90]
and ecx, 0x3ff
movzx ecx, byte [rcx + rax]
xor byte [rsp + 0x2b], cl
mov ecx, dword [rsp + 0x28]
add rcx, rbx
mov dword [rsp + 0x28], edx
inc rbx
mov r10d, dword [r14 + rcx*8]
mov rcx, r8
and ecx, 0x3ff
mov r9d, dword [r10 + rdi]
xor dl, byte [rcx + rax]
lea rcx, [r8 + 1]
and ecx, 0x3ff
mov byte [rsp + 0x28], dl
movzx ecx, byte [rcx + rax]
xor byte [rsp + 0x29], cl
lea rcx, [r8 + 2]
and ecx, 0x3ff
movzx ecx, byte [rcx + rax]
xor byte [rsp + 0x2a], cl
lea rcx, [r8 + 3]
and ecx, 0x3ff
movzx ecx, byte [rcx + rax]
xor byte [rsp + 0x2b], cl
sub r9d, dword [rsp + 0x28]
add r9d, esi
mov dword [r10 + rdi], r9d
sub rbp, 1
jne 0x14004ddb0
mov rsi, qword [rsp + 8]
mov r14, qword [rsp]
mov rbp, qword [rsp + 0x38]
mov al, 1
mov rbx, qword [rsp + 0x20]
add rsp, 0x10
pop rdi
ret