Function at 0x29e85bac4c0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
sub rsp, 0xe8
mov rax, qword [0x29e85cc0760]
xor rax, rsp
mov qword [rsp + 0xc0], rax
mov rbx, qword [rsp + 0x140]
mov rsi, rcx
lea rcx, [rsp + 0x50]
mov rdi, r9
mov rbp, r8
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x40], rdx
xor r12d, r12d
call fcn.29e85b7a140
test rdi, rdi
mov rcx, rbp
cmove rdi, rbp
mov qword [rsp + 0x48], rdi
call fcn.29e85b83f30
mov ebp, dword [rsp + 0x148]
mov r13, rax
cmp ebp, 0xffffffff
jne 0x29e85bac531
mov ebp, eax
jmp 0x29e85bac53e
cmp ebp, 0xfffffffe
jne 0x29e85bac538
jmp 0x29e85bac53e
jl 0x29e85bac792
mov rcx, qword [rsi + 0x10]
mov qword [rsp + 0xd8], r15
call fcn.29e85b6cd30
mov rcx, rsi
lea r15d, [rax - 1]
and r15d, 7
call fcn.29e85b6f0f0
mov ecx, r15d
mov edx, 0xff
mov edi, eax
shl edx, cl
test byte [rbx], dl
jne 0x29e85bac78a
test r15d, r15d
jne 0x29e85bac57d
inc rbx
dec edi
lea eax, [r13 + 2]
add eax, ebp
cmp edi, eax
jl 0x29e85bac78a
movsxd rax, edi
cmp byte [rax + rbx - 1], 0xbc
jne 0x29e85bac78a
sub edi, r13d
mov qword [rsp + 0xe0], r14
dec edi
movsxd r14, edi
mov rcx, r14
lea rax, [r14 + rbx]
mov qword [rsp + 0x30], rax
call fcn.29e85b46500
mov rsi, rax
test rax, rax
je 0x29e85bac782
mov rax, qword [rsp + 0x48]
mov r8, qword [rsp + 0x30]
mov r9d, r13d
mov edx, edi
mov rcx, rsi
mov qword [rsp + 0x20], rax
call fcn.29e85bab5c0
test eax, eax
js 0x29e85bac77a
mov edx, r12d
test edi, edi
jle 0x29e85bac667
cmp edi, 0x20
jb 0x29e85bac667
lea eax, [rdi - 1]
movsxd rcx, eax
lea rax, [rcx + rbx]
lea r8, [rcx + rsi]
cmp rsi, rax
ja 0x29e85bac60e
cmp r8, rbx
jae 0x29e85bac667
mov eax, edi
and eax, 0x8000001f
jge 0x29e85bac61e
dec eax
or eax, 0xffffffe0
inc eax
mov r8d, edi
sub r8d, eax
nop dword [rax]
nop dword [rax + rax]
movsxd rax, edx
movdqu xmm0, xmmword [rax + rsi]
movdqu xmm1, xmmword [rax + rbx]
pxor xmm1, xmm0
movdqu xmmword [rax + rsi], xmm1
lea eax, [rdx + 0x10]
add edx, 0x20
movsxd rcx, eax
movdqu xmm1, xmmword [rcx + rbx]
movdqu xmm0, xmmword [rcx + rsi]
pxor xmm1, xmm0
movdqu xmmword [rcx + rsi], xmm1
cmp edx, r8d
jl 0x29e85bac630
movsxd rax, edx
cmp rax, r14
jge 0x29e85bac690
sub rbx, rsi
lea rcx, [rax + rsi]
sub r14, rax
nop dword [rax]
movzx eax, byte [rbx + rcx]
lea rcx, [rcx + 1]
xor byte [rcx - 1], al
dec r14
jne 0x29e85bac680
test r15d, r15d
je 0x29e85bac6a6
mov ecx, 8
mov eax, 0xff
sub ecx, r15d
sar eax, cl
and byte [rsi], al
mov ebx, r12d
cmp byte [rsi], bl
jne 0x29e85bac6c1
lea ecx, [rdi - 1]
mov rax, rsi
cmp ebx, ecx
jge 0x29e85bac6c1
inc rax
inc ebx
cmp byte [rax], r12b
je 0x29e85bac6b3
movsxd rax, ebx
inc ebx
cmp byte [rax + rsi], 1
jne 0x29e85bac77a
test ebp, ebp
js 0x29e85bac6e0
mov eax, edi
sub eax, ebx
cmp eax, ebp
jne 0x29e85bac77a
mov rdx, qword [rsp + 0x38]
lea rcx, [rsp + 0x50]
xor r8d, r8d
call fcn.29e85b79eb0
test eax, eax
je 0x29e85bac77a
lea rdx, [0x29e85c79d50]
lea rcx, [rsp + 0x50]
mov r8d, 8
call fcn.29e85b79f50
test eax, eax
je 0x29e85bac77a
mov rdx, qword [rsp + 0x40]
lea rcx, [rsp + 0x50]
mov r8, r13
call fcn.29e85b79f50
test eax, eax
je 0x29e85bac77a
sub edi, ebx
je 0x29e85bac746
movsxd rdx, ebx
lea rcx, [rsp + 0x50]
movsxd r8, edi
add rdx, rsi
call fcn.29e85b79f50
test eax, eax
je 0x29e85bac77a
lea rdx, [rsp + 0x80]
lea rcx, [rsp + 0x50]
xor r8d, r8d
call fcn.29e85b79e60
test eax, eax
je 0x29e85bac77a
mov rdx, qword [rsp + 0x30]
lea rcx, [rsp + 0x80]
mov r8, r13
call fcn.29e85b45c40
test eax, eax
sete r12b
mov rcx, rsi
call fcn.29e85b46db8
mov r14, qword [rsp + 0xe0]
mov r15, qword [rsp + 0xd8]
lea rcx, [rsp + 0x50]
call fcn.29e85b79f60
mov eax, r12d
mov rcx, qword [rsp + 0xc0]
xor rcx, rsp
call fcn.29e85b464e0
add rsp, 0xe8
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret