Function at 0x29e85bb06a0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0x68
mov rax, qword [0x29e85cc0760]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov r14, qword [rsp + 0xc0]
mov qword [rsp + 0x38], r9
mov r9, qword [rsp + 0xc8]
mov qword [rsp + 0x20], r9
mov rdi, r8
mov rsi, rdx
mov rbx, rcx
mov qword [rsp + 0x30], r14
cmp rcx, rdx
je 0x29e85bb074e
mov r15, r14
cmp r8, 0x10
jb 0x29e85bb0744
mov r14, qword [rsp + 0x38]
mov rbp, r8
shr rbp, 4
imul rax, rbp, 0xfffffffffffffff0
add rdi, rax
mov qword [rsp + 0x28], rdi
mov rdi, r9
nop dword [rax]
mov r8, r14
mov rdx, rsi
mov rcx, rbx
call rdi
mov rax, qword [r15]
add rsi, 0x10
xor qword [rsi - 0x10], rax
mov rax, qword [r15 + 8]
mov r15, rbx
xor qword [rsi - 8], rax
add rbx, 0x10
dec rbp
jne 0x29e85bb0710
mov rdi, qword [rsp + 0x28]
mov r14, qword [rsp + 0x30]
movups xmm0, xmmword [r15]
movups xmmword [r14], xmm0
jmp 0x29e85bb07bc
cmp r8, 0x10
jb 0x29e85bb07bc
mov rbp, r8
shr rbp, 4
imul rax, rbp, 0xfffffffffffffff0
add rdi, rax
mov qword [rsp + 0x28], rdi
mov rdi, qword [rsp + 0x38]
nop dword [rax]
lea rdx, [rsp + 0x40]
mov r8, rdi
mov rcx, rbx
call r9
mov rcx, qword [rbx]
mov rax, qword [r14]
xor rax, qword [rsp + 0x40]
mov r9, qword [rsp + 0x20]
add rsi, 0x10
mov qword [rsi - 0x10], rax
mov rax, qword [rsp + 0x48]
mov qword [r14], rcx
xor rax, qword [r14 + 8]
mov rcx, qword [rbx + 8]
add rbx, 0x10
mov qword [rsi - 8], rax
mov qword [r14 + 8], rcx
dec rbp
jne 0x29e85bb0770
mov rdi, qword [rsp + 0x28]
test rdi, rdi
je 0x29e85bb093d
mov qword [rsp + 0xb0], r12
lea rax, [rsp + 0x40]
mov qword [rsp + 0x60], r13
mov r13, r14
lea rcx, [rsp + 0x40]
mov r12d, 2
sub r13, rax
mov eax, 1
mov ebp, 3
sub rax, rcx
lea r15, [rsp + 0x41]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x40]
sub r12, rax
lea rax, [rsp + 0x40]
sub rbp, rax
inc rsi
neg r15
nop word [rax + rax]
mov r8, qword [rsp + 0x38]
lea rdx, [rsp + 0x40]
mov rcx, rbx
call qword [rsp + 0x20]
xor eax, eax
lea r9, [r15 + rsi]
cmp rax, rdi
jae 0x29e85bb08e8
lea r8, [rsp + 0x40]
add r8, rax
lea rcx, [r15 + r8]
movzx edx, byte [rcx + rbx + 1]
movzx ecx, byte [r13 + r8]
xor cl, byte [r8]
mov byte [r9 + r8], cl
mov rcx, qword [rsp + 0x30]
mov byte [r13 + r8], dl
add rcx, r8
cmp rcx, rdi
jae 0x29e85bb08e5
movzx ecx, byte [rsp + rax + 0x41]
movzx edx, byte [rbx + rax + 1]
xor cl, byte [r14 + rax + 1]
mov byte [rsi + rax], cl
lea rcx, [r12 + r8]
mov byte [r14 + rax + 1], dl
cmp rcx, rdi
jae 0x29e85bb08df
movzx ecx, byte [rsp + rax + 0x42]
movzx edx, byte [rbx + rax + 2]
xor cl, byte [r14 + rax + 2]
mov byte [rsi + rax + 1], cl
lea rcx, [r8 + rbp]
mov byte [r14 + rax + 2], dl
cmp rcx, rdi
jae 0x29e85bb08d9
movzx edx, byte [rbx + rax + 3]
movzx ecx, byte [rsp + rax + 0x43]
add rax, 4
xor cl, byte [r14 + rax - 1]
mov byte [rsi + rax - 2], cl
mov byte [r14 + rax - 1], dl
cmp rax, 0x10
jb 0x29e85bb0837
jmp 0x29e85bb08e8
add rax, 3
jmp 0x29e85bb08e8
add rax, 2
jmp 0x29e85bb08e8
inc rax
cmp rdi, 0x10
jbe 0x29e85bb0902
add rbx, 0x10
add rsi, 0x10
sub rdi, 0x10
jne 0x29e85bb0820
jmp 0x29e85bb0930
cmp rax, 0x10
jae 0x29e85bb0930
mov edx, 0x10
sub rbx, r14
lea rcx, [r14 + rax]
sub rdx, rax
nop word [rax + rax]
movzx eax, byte [rbx + rcx]
lea rcx, [rcx + 1]
mov byte [rcx - 1], al
dec rdx
jne 0x29e85bb0920
mov r12, qword [rsp + 0xb0]
mov r13, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.29e85b464e0
add rsp, 0x68
pop r15
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret