Function at 0x29e85bab830
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0xb0
mov rax, qword [0x29e85cc0760]
xor rax, rsp
mov qword [rsp + 0x90], rax
mov r15, qword [rsp + 0x120]
mov rax, qword [rsp + 0x110]
mov r12, qword [rsp + 0x128]
xor ebx, ebx
mov ebp, r9d
mov dword [rsp + 0x30], r9d
mov qword [rsp + 0x40], r8
mov esi, edx
mov r14, rcx
mov qword [rsp + 0x48], rax
test r15, r15
jne 0x29e85bab892
call fcn.29e85b724b0
mov r15, rax
test r12, r12
mov rcx, r15
cmove r12, r15
call fcn.29e85b83f30
lea edx, [rax + rax]
mov rdi, rax
lea ecx, [rdx + 2]
cmp esi, ecx
jae 0x29e85bab8b5
xor eax, eax
jmp 0x29e85babb08
dec esi
mov qword [rsp + 0xa8], r13
mov r13d, esi
sub r13d, edx
lea eax, [r13 - 1]
cmp ebp, eax
ja 0x29e85bab977
lea eax, [rdx + 1]
cmp esi, eax
jb 0x29e85bab977
mov edx, dword [rsp + 0x118]
mov rcx, qword [rsp + 0x48]
mov byte [r14], bl
mov eax, edi
lea rbp, [r14 + 1]
inc r14
add r14, rax
xor r9d, r9d
mov qword [rsp + 0x28], rbx
mov r8, r14
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x20], r15
call fcn.29e85b79c40
test eax, eax
je 0x29e85bab977
mov r15d, dword [rsp + 0x30]
xor edx, edx
sub r13d, r15d
lea r8d, [r13 - 1]
mov r13, qword [rsp + 0x38]
lea rcx, [r14 + r13]
call fcn.29e85b462a0
mov rdx, qword [rsp + 0x40]
mov eax, esi
sub eax, r15d
mov ecx, esi
mov r8d, r15d
sub rcx, r15
sub eax, edi
sub rcx, r13
dec eax
add rcx, r14
mov byte [rax + r14], 1
call fcn.29e85b45d20
mov rdx, r13
mov rcx, rbp
call fcn.29e85b8a700
test eax, eax
jle 0x29e85bab977
sub esi, edi
mov ecx, esi
call fcn.29e85b46500
mov r15, rax
test rax, rax
jne 0x29e85bab97e
xor eax, eax
jmp 0x29e85babb00
mov r9d, edi
mov r8, rbp
mov edx, esi
mov rcx, rax
mov qword [rsp + 0x20], r12
call fcn.29e85bab5c0
test eax, eax
js 0x29e85babaf6
mov edx, ebx
test esi, esi
je 0x29e85baba31
cmp esi, 0x20
jb 0x29e85baba09
lea eax, [rsi - 1]
lea r8, [rax + r14]
add rax, r15
cmp r14, rax
ja 0x29e85bab9be
cmp r8, r15
jae 0x29e85baba09
mov eax, esi
mov r8d, esi
and eax, 0x1f
sub r8d, eax
nop dword [rax]
mov eax, edx
movdqu xmm0, xmmword [rax + r14]
movdqu xmm1, xmmword [rax + r15]
pxor xmm1, xmm0
movdqu xmmword [rax + r14], xmm1
lea eax, [rdx + 0x10]
add edx, 0x20
movdqu xmm1, xmmword [rax + r15]
movdqu xmm0, xmmword [rax + r14]
pxor xmm1, xmm0
movdqu xmmword [rax + r14], xmm1
cmp edx, r8d
jb 0x29e85bab9d0
cmp edx, esi
jae 0x29e85baba31
mov ecx, edx
mov r8, r15
mov eax, esi
add rcx, r14
sub r8, r14
sub eax, edx
mov edx, eax
nop
movzx eax, byte [r8 + rcx]
lea rcx, [rcx + 1]
xor byte [rcx - 1], al
dec rdx
jne 0x29e85baba20
lea rcx, [rsp + 0x50]
mov r9d, esi
mov r8, r14
mov edx, edi
mov qword [rsp + 0x20], r12
call fcn.29e85bab5c0
test eax, eax
js 0x29e85babaf6
test edi, edi
je 0x29e85babaf1
cmp edi, 0x20
jb 0x29e85babac4
lea eax, [rdi - 1]
mov ecx, eax
lea rdx, [rax + rbp]
lea rax, [rsp + 0x50]
add rax, rcx
cmp rbp, rax
ja 0x29e85baba7d
lea rax, [rsp + 0x50]
cmp rdx, rax
jae 0x29e85babac4
mov eax, edi
mov edx, edi
and eax, 0x1f
sub edx, eax
nop word [rax + rax]
mov eax, ebx
movdqu xmm0, xmmword [rax + rbp]
movdqu xmm1, xmmword [rsp + rax + 0x50]
pxor xmm1, xmm0
movdqu xmmword [rax + rbp], xmm1
lea eax, [rbx + 0x10]
add ebx, 0x20
movdqu xmm0, xmmword [rax + rbp]
movdqu xmm1, xmmword [rsp + rax + 0x50]
pxor xmm1, xmm0
movdqu xmmword [rax + rbp], xmm1
cmp ebx, edx
jb 0x29e85baba90
cmp ebx, edi
jae 0x29e85babaf1
lea r8, [rsp + 0x50]
mov ecx, ebx
sub r8, rbp
add rcx, rbp
sub edi, ebx
mov edx, edi
nop dword [rax]
movzx eax, byte [r8 + rcx]
lea rcx, [rcx + 1]
xor byte [rcx - 1], al
dec rdx
jne 0x29e85babae0
mov ebx, 1
mov rcx, r15
call fcn.29e85b46db8
mov eax, ebx
mov r13, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.29e85b464e0
add rsp, 0xb0
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret