Function at 0x14005ad38
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov ebp, dword [rcx + 0xe8]
mov r10d, dword [rsp + 0xb0]
mov edi, r8d
mov r11d, ebp
mov r12, rdx
xor r8d, r8d
sub r11d, dword [rsp + 0xa0]
xor edx, edx
mov rbx, rcx
mov ecx, dword [rsp + 0xa8]
sub r11d, r10d
test r9d, r9d
jns 0x14005ad96
mov r8d, r9d
add ecx, r9d
neg r8d
xor r9d, r9d
test r11d, r11d
jns 0x14005ada6
mov edx, r11d
add r10d, r11d
neg edx
xor r11d, r11d
mov esi, dword [rbx + 0xe4]
lea eax, [r9 + rcx]
cmp eax, esi
jle 0x14005adb9
mov ecx, esi
sub ecx, r9d
lea eax, [r11 + r10]
cmp eax, ebp
jle 0x14005adc7
mov r10d, ebp
sub r10d, r11d
test ecx, ecx
jle 0x14005b0b0
test r10d, r10d
jle 0x14005b0b0
test r12, r12
je 0x14005b0b0
mov eax, dword [rbx + 0x13c]
test al, al
jns 0x14005ae20
mov eax, dword [rsp + 0xb8]
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x40], r10d
mov dword [rsp + 0x38], ecx
mov dword [rsp + 0x30], edx
mov dword [rsp + 0x28], r8d
mov rcx, rbx
mov r8d, edi
mov rdx, r12
mov dword [rsp + 0x20], r11d
call fcn.14005ab34
jmp 0x14005b0b0
test al, 2
je 0x14005ae98
movsxd r13, dword [rbx + 0x138]
mov eax, r8d
shl eax, 2
movsxd r14, eax
mov eax, r13d
imul eax, r9d
imul edx, edi
movsxd r15, eax
mov eax, r11d
movsxd r9, edx
add r9, r14
imul eax, dword [rbx + 0x130]
add r9, r12
movsxd r8, eax
add r8, r15
add r8, qword [rbx + 0x128]
test ecx, ecx
jle 0x14005ae89
mov esi, ecx
mov al, byte [r9 + 2]
xor byte [r8 + 2], al
mov al, byte [r9 + 1]
xor byte [r8 + 1], al
mov al, byte [r9]
add r9, 4
xor byte [r8], al
add r8, r13
dec rsi
jne 0x14005ae67
add edx, edi
inc r11d
dec r10d
jne 0x14005ae41
jmp 0x14005b0b0
cmp dword [rbx + 0x138], 4
jne 0x14005b002
bt eax, 8
jae 0x14005aee0
mov eax, dword [rsp + 0xb8]
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x40], r10d
mov dword [rsp + 0x38], ecx
mov dword [rsp + 0x30], edx
mov dword [rsp + 0x28], r8d
mov rcx, rbx
mov r8d, edi
mov rdx, r12
mov dword [rsp + 0x20], r11d
call fcn.14005a0d4
jmp 0x14005b0b0
test al, 8
je 0x14005af19
mov eax, dword [rsp + 0xb8]
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x40], r10d
mov dword [rsp + 0x38], ecx
mov dword [rsp + 0x30], edx
mov dword [rsp + 0x28], r8d
mov rcx, rbx
mov r8d, edi
mov rdx, r12
mov dword [rsp + 0x20], r11d
call fcn.14005a9cc
jmp 0x14005b0b0
test al, 0x10
jne 0x14005af60
test al, 0x20
je 0x14005af56
mov eax, dword [rsp + 0xb8]
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x40], r10d
mov dword [rsp + 0x38], ecx
mov dword [rsp + 0x30], edx
mov dword [rsp + 0x28], r8d
mov rcx, rbx
mov r8d, edi
mov rdx, r12
mov dword [rsp + 0x20], r11d
call fcn.14005a648
jmp 0x14005b0b0
cmp dword [rsp + 0xc0], 0
je 0x14005af95
mov eax, dword [rsp + 0xb8]
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x40], r10d
mov dword [rsp + 0x38], ecx
mov dword [rsp + 0x30], edx
mov dword [rsp + 0x28], r8d
mov rcx, rbx
mov r8d, edi
mov rdx, r12
mov dword [rsp + 0x20], r11d
call fcn.14005a268
jmp 0x14005b0b0
mov eax, r8d
shl eax, 2
movsxd rbp, eax
mov eax, r9d
shl eax, 2
movsxd r13, eax
imul edx, edi
mov eax, r11d
movsxd r8, edx
add r8, rbp
imul eax, dword [rbx + 0x130]
add r8, r12
movsxd r9, eax
add r9, r13
add r9, qword [rbx + 0x128]
test ecx, ecx
jle 0x14005aff3
mov esi, ecx
mov al, byte [r8 + 2]
mov byte [r9 + 2], al
mov al, byte [r8 + 1]
mov byte [r9 + 1], al
mov al, byte [r8]
add r8, 4
mov byte [r9], al
add r9, 4
dec rsi
jne 0x14005afd0
add edx, edi
inc r11d
dec r10d
jne 0x14005afaa
jmp 0x14005b0b0
test al, 8
jne 0x14005b0b0
cmp dword [rsp + 0xc0], 0
jne 0x14005b080
test al, 0x30
jne 0x14005b080
mov eax, r8d
shl eax, 2
movsxd rbp, eax
lea eax, [r9 + r9*2]
imul edx, edi
movsxd r13, eax
mov eax, dword [rbx + 0x130]
movsxd r8, edx
add r8, rbp
add r8, r12
imul eax, r11d
movsxd r9, eax
add r9, r13
add r9, qword [rbx + 0x128]
test ecx, ecx
jle 0x14005b074
mov esi, ecx
mov al, byte [r8 + 2]
mov byte [r9 + 2], al
mov al, byte [r8 + 1]
mov byte [r9 + 1], al
mov al, byte [r8]
add r8, 4
mov byte [r9], al
add r9, 3
dec rsi
jne 0x14005b051
add edx, edi
inc r11d
dec r10d
jne 0x14005b02b
jmp 0x14005b0b0
mov eax, dword [rsp + 0xb8]
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x40], r10d
mov dword [rsp + 0x38], ecx
mov dword [rsp + 0x30], edx
mov dword [rsp + 0x28], r8d
mov rcx, rbx
mov r8d, edi
mov rdx, r12
mov dword [rsp + 0x20], r11d
call fcn.140059d50
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret