Function at 0x29e85babb30
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
push rbx
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0x68
mov r15, rcx
mov rcx, qword [rsp + 0xc0]
xor edi, edi
test rcx, rcx
mov r14, rdx
mov esi, edi
cmove rcx, r9
mov qword [rsp + 0xc0], rcx
mov rcx, r9
call fcn.29e85b83f30
mov ebx, dword [rsp + 0xc8]
mov rbp, rax
cmp ebx, 0xffffffff
jne 0x29e85babb82
mov ebx, eax
jmp 0x29e85babb8f
cmp ebx, 0xfffffffe
jne 0x29e85babb89
jmp 0x29e85babb8f
jl 0x29e85babe03
mov rcx, qword [r15 + 0x10]
call fcn.29e85b89f60
test eax, eax
jne 0x29e85babe03
mov rcx, qword [r15 + 0x10]
mov qword [rsp + 0x60], r13
call fcn.29e85b6cd30
mov rcx, r15
lea r13d, [rax - 1]
and r13d, 7
call fcn.29e85b6f0f0
mov r15d, eax
test r13, r13
jne 0x29e85babbcf
mov byte [r14], sil
inc r14
dec r15
cmp ebx, 0xfffffffe
jne 0x29e85babbeb
lea rax, [rbp + 2]
cmp r15, rax
jb 0x29e85babdff
mov ebx, r15d
sub ebx, ebp
sub ebx, 2
jmp 0x29e85babbfe
lea rcx, [rbp + 2]
movsxd rax, ebx
add rcx, rax
cmp r15, rcx
jb 0x29e85babdff
mov qword [rsp + 0xa0], r12
test ebx, ebx
jle 0x29e85babc34
movsxd r12, ebx
mov rcx, r12
call fcn.29e85b46500
mov rsi, rax
test rax, rax
je 0x29e85babde3
mov rdx, r12
mov rcx, rax
call fcn.29e85b8a700
test eax, eax
jle 0x29e85babdd6
mov r12, r15
lea rcx, [rsp + 0x30]
sub r12, rbp
dec r12
call fcn.29e85b7a140
mov rdx, qword [rsp + 0xb8]
lea rcx, [rsp + 0x30]
xor r8d, r8d
call fcn.29e85b79eb0
test eax, eax
je 0x29e85babdd6
lea rdx, [0x29e85c79d50]
lea rcx, [rsp + 0x30]
mov r8d, 8
call fcn.29e85b79f50
test eax, eax
je 0x29e85babdd6
mov rdx, qword [rsp + 0xb0]
lea rcx, [rsp + 0x30]
mov r8, rbp
call fcn.29e85b79f50
test eax, eax
je 0x29e85babdd6
test ebx, ebx
je 0x29e85babcbc
lea rcx, [rsp + 0x30]
movsxd r8, ebx
mov rdx, rsi
call fcn.29e85b79f50
test eax, eax
je 0x29e85babdd6
lea rdx, [r12 + r14]
lea rcx, [rsp + 0x30]
xor r8d, r8d
call fcn.29e85b79e60
test eax, eax
je 0x29e85babdd6
lea rcx, [rsp + 0x30]
call fcn.29e85b79f60
mov rax, qword [rsp + 0xc0]
lea r8, [r12 + r14]
mov r9d, ebp
mov edx, r12d
mov rcx, r14
mov qword [rsp + 0x20], rax
call fcn.29e85bab5c0
test eax, eax
jne 0x29e85babdd6
movsxd r8, ebx
mov rdx, r15
sub rdx, r8
sub rdx, rbp
add rdx, r14
dec rdx
xor byte [rdx - 1], 1
test ebx, ebx
jle 0x29e85babdb4
cmp ebx, 0x20
jb 0x29e85babd99
lea eax, [rbx - 1]
movsxd rcx, eax
lea rax, [rcx + rsi]
lea r9, [rcx + rdx]
cmp rdx, rax
ja 0x29e85babd41
cmp r9, rsi
jae 0x29e85babd99
mov eax, ebx
and eax, 0x8000001f
jge 0x29e85babd51
dec eax
or eax, 0xffffffe0
inc eax
sub ebx, eax
nop dword [rax]
nop word [rax + rax]
movdqu xmm0, xmmword [rdx]
movsxd rax, edi
add rdx, 0x20
movdqu xmm1, xmmword [rax + rsi]
lea eax, [rdi + 0x10]
add edi, 0x20
movsxd rcx, eax
pxor xmm1, xmm0
movdqu xmmword [rdx - 0x20], xmm1
movdqu xmm0, xmmword [rdx - 0x10]
movdqu xmm1, xmmword [rcx + rsi]
pxor xmm1, xmm0
movdqu xmmword [rdx - 0x10], xmm1
cmp edi, ebx
jl 0x29e85babd60
movsxd rcx, edi
cmp rcx, r8
jge 0x29e85babdb4
movzx eax, byte [rcx + rsi]
inc rcx
lea rdx, [rdx + 1]
xor byte [rdx - 1], al
cmp rcx, r8
jl 0x29e85babda1
test r13, r13
je 0x29e85babdcb
mov ecx, 8
mov edx, 0xff
sub cl, r13b
sar edx, cl
and byte [r14], dl
mov byte [r15 + r14 - 1], 0xbc
mov edi, 1
test rsi, rsi
je 0x29e85babde3
mov rcx, rsi
call fcn.29e85b46db8
mov r12, qword [rsp + 0xa0]
mov eax, edi
mov r13, qword [rsp + 0x60]
add rsp, 0x68
pop r15
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov eax, edi
jmp 0x29e85babded
mov eax, edi
add rsp, 0x68
pop r15
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret