Function at 0x29e85babfc0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rdi
push r12
push r13
push r14
sub rsp, 0xf8
mov rax, qword [0x29e85cc0760]
xor rax, rsp
mov qword [rsp + 0xe0], rax
mov r13, qword [rsp + 0x160]
mov rax, qword [rsp + 0x150]
mov r12, qword [rsp + 0x168]
xor ebp, ebp
mov ebx, r9d
mov r14, r8
mov qword [rsp + 0x38], r8
mov dword [rsp + 0x30], edx
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x50], rax
test r13, r13
jne 0x29e85bac023
call fcn.29e85b724b0
mov r13, rax
test r12, r12
mov rcx, r13
mov qword [rsp + 0x138], rsi
cmove r12, r13
mov qword [rsp + 0xf0], r15
call fcn.29e85b83f30
lea ecx, [rax*2 + 2]
mov rdi, rax
cmp ebx, ecx
jb 0x29e85bac325
sub ebx, eax
dec ebx
mov ecx, ebx
call fcn.29e85b46500
mov rsi, rax
test rax, rax
je 0x29e85bac325
mov eax, edi
lea r15, [r14 + 1]
inc r14
add r14, rax
lea rcx, [rsp + 0x60]
mov r9d, ebx
mov edx, edi
mov r8, r14
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x20], r12
call fcn.29e85bab5c0
test eax, eax
jne 0x29e85bac31d
mov edx, ebp
test edi, edi
je 0x29e85bac151
cmp edi, 0x20
jb 0x29e85bac119
lea eax, [rdi - 1]
lea r8, [rsp + 0x60]
mov ecx, eax
add rax, r15
add r8, rcx
lea rcx, [rsp + 0x60]
cmp rcx, rax
ja 0x29e85bac0c9
cmp r8, r15
jae 0x29e85bac119
mov eax, edi
mov r8d, edi
and eax, 0x1f
sub r8d, eax
nop dword [rax]
nop dword [rax + rax]
mov eax, edx
movdqu xmm0, xmmword [rsp + rax + 0x60]
movdqu xmm1, xmmword [rax + r15]
pxor xmm1, xmm0
movdqu xmmword [rsp + rax + 0x60], xmm1
lea eax, [rdx + 0x10]
add edx, 0x20
movdqu xmm0, xmmword [rsp + rax + 0x60]
movdqu xmm1, xmmword [rax + r15]
pxor xmm1, xmm0
movdqu xmmword [rsp + rax + 0x60], xmm1
cmp edx, r8d
jb 0x29e85bac0e0
cmp edx, edi
jae 0x29e85bac151
mov eax, edx
lea rcx, [rsp + 0x60]
add rcx, rax
lea rax, [rsp + 0x60]
sub r15, rax
mov eax, edi
sub eax, edx
mov edx, eax
nop word [rax + rax]
movzx eax, byte [r15 + rcx]
lea rcx, [rcx + 1]
xor byte [rcx - 1], al
dec rdx
jne 0x29e85bac140
lea r8, [rsp + 0x60]
mov r9d, edi
mov edx, ebx
mov rcx, rsi
mov qword [rsp + 0x20], r12
call fcn.29e85bab5c0
test eax, eax
jne 0x29e85bac31d
mov edx, ebp
test ebx, ebx
je 0x29e85bac201
cmp ebx, 0x20
jb 0x29e85bac1d5
lea eax, [rbx - 1]
lea r8, [rax + rsi]
add rax, r14
cmp rsi, rax
ja 0x29e85bac193
cmp r8, r14
jae 0x29e85bac1d5
mov eax, ebx
mov r8d, ebx
and eax, 0x1f
sub r8d, eax
nop
mov eax, edx
movdqu xmm0, xmmword [rax + rsi]
movdqu xmm1, xmmword [rax + r14]
pxor xmm1, xmm0
movdqu xmmword [rax + rsi], xmm1
lea eax, [rdx + 0x10]
add edx, 0x20
movdqu xmm1, xmmword [rax + r14]
movdqu xmm0, xmmword [rax + rsi]
pxor xmm1, xmm0
movdqu xmmword [rax + rsi], xmm1
cmp edx, r8d
jb 0x29e85bac1a0
cmp edx, ebx
jae 0x29e85bac201
mov ecx, edx
mov eax, ebx
sub r14, rsi
add rcx, rsi
sub eax, edx
mov edx, eax
nop word [rax + rax]
movzx eax, byte [r14 + rcx]
lea rcx, [rcx + 1]
xor byte [rcx - 1], al
dec rdx
jne 0x29e85bac1f0
mov edx, dword [rsp + 0x158]
mov rcx, qword [rsp + 0x50]
lea r8, [rsp + 0xa0]
xor r9d, r9d
mov qword [rsp + 0x28], rbp
mov qword [rsp + 0x20], r13
call fcn.29e85b79c40
test eax, eax
je 0x29e85bac31d
mov r14, qword [rsp + 0x48]
lea rdx, [rsp + 0xa0]
mov rcx, rsi
mov r8, r14
call fcn.29e85b7cda0
mov r9d, 1
mov r10d, eax
mov rax, qword [rsp + 0x38]
movzx ecx, byte [rax]
or r10d, ecx
cmp edi, ebx
jae 0x29e85bac2e0
lea r11, [r14 + rsi]
nop word [rax + rax]
movzx r8d, byte [r11]
lea r11, [r11 + 1]
movzx ecx, r8b
not r8b
xor cl, 1
not cl
movzx eax, cl
shr al, 4
and cl, al
movzx eax, cl
shr al, 2
and cl, al
movzx eax, cl
mov edx, eax
shr edx, 1
and edx, eax
movzx eax, r8b
shr al, 4
and r8b, al
movzx eax, r8b
shr al, 2
and r8b, al
mov eax, edx
and eax, r9d
dec eax
and ebp, eax
mov ecx, eax
lea eax, [rdx - 1]
not ecx
and r9d, eax
movzx eax, r8b
and ecx, edi
inc edi
or ebp, ecx
mov ecx, eax
shr ecx, 1
and ecx, eax
not ecx
and ecx, r9d
or r10d, ecx
cmp edi, ebx
jb 0x29e85bac270
or r9d, r10d
jne 0x29e85bac31d
inc ebp
sub ebx, ebp
cmp dword [rsp + 0x30], ebx
jae 0x29e85bac2fe
mov rcx, rsi
or ebx, 0xffffffff
call fcn.29e85b46db8
mov eax, ebx
jmp 0x29e85bac328
mov rcx, qword [rsp + 0x40]
movsxd rdx, ebp
mov r8d, ebx
add rdx, rsi
call fcn.29e85b45d20
mov rcx, rsi
call fcn.29e85b46db8
mov eax, ebx
jmp 0x29e85bac328
mov rcx, rsi
call fcn.29e85b46db8
or eax, 0xffffffff
mov r15, qword [rsp + 0xf0]
mov rsi, qword [rsp + 0x138]
mov rcx, qword [rsp + 0xe0]
xor rcx, rsp
call fcn.29e85b464e0
add rsp, 0xf8
pop r14
pop r13
pop r12
pop rdi
pop rbp
pop rbx
ret