Function at 0x29e85bafcb0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
push rdi
push r12
push r15
sub rsp, 0x50
mov rax, qword [rcx + 0x180]
mov rdi, qword [rcx + 0x160]
mov rbx, rcx
mov qword [rsp + 0x30], rax
mov rax, qword [rcx + 0x168]
mov rcx, qword [rcx + 0x38]
mov qword [rsp + 0x38], rax
add rcx, r9
movabs rax, 0xfffffffe0
mov rsi, r9
mov r15, r8
mov r12, rdx
cmp rcx, rax
ja 0x29e85baff61
cmp rcx, r9
jb 0x29e85baff61
cmp dword [rbx + 0x174], 0
mov qword [rsp + 0x88], rbp
mov qword [rbx + 0x38], rcx
mov qword [rsp + 0x40], r14
je 0x29e85bafd38
lea rdx, [rbx + 0x60]
lea rcx, [rbx + 0x40]
call rdi
mov dword [rbx + 0x174], 0
movzx eax, byte [rbx + 0xd]
mov ebp, dword [rbx + 0x170]
movzx r14d, byte [rbx + 0xc]
shl r14d, 8
mov dword [rsp + 0x80], ebp
or r14d, eax
movzx eax, byte [rbx + 0xe]
shl r14d, 8
or r14d, eax
movzx eax, byte [rbx + 0xf]
shl r14d, 8
or r14d, eax
test ebp, ebp
je 0x29e85bafdb4
nop
test rsi, rsi
je 0x29e85bafda2
mov ecx, ebp
inc r15
inc r12
movzx eax, byte [rcx + rbx + 0x10]
dec rsi
xor al, byte [r12 - 1]
mov byte [r15 - 1], al
xor byte [rcx + rbx + 0x40], al
inc ebp
and ebp, 0xf
mov dword [rsp + 0x80], ebp
jne 0x29e85bafd70
jmp 0x29e85bafdaa
test ebp, ebp
jne 0x29e85baff3d
lea rdx, [rbx + 0x60]
lea rcx, [rbx + 0x40]
call rdi
mov r10, qword [rsp + 0xa0]
mov qword [rsp + 0x48], r13
cmp rsi, 0xc00
jb 0x29e85bafe7c
movabs rax, 0xaaaaaaaaaaaaaaab
mul rsi
mov rdi, rdx
shr rdi, 0xb
imul rax, rdi, 0xfffffffffffff400
add rsi, rax
mov qword [rsp + 0x98], rsi
mov rsi, qword [rsp + 0x30]
nop dword [rax]
mov r9, rsi
mov r8d, 0xc0
mov rdx, r15
mov rcx, r12
mov qword [rsp + 0x20], rbx
call r10
add r14d, 0xc0
lea rdx, [rbx + 0x60]
mov eax, r14d
lea rcx, [rbx + 0x40]
mov r9d, 0xc00
shr eax, 0x18
mov r8, r15
mov byte [rbx + 0xf], r14b
mov byte [rbx + 0xc], al
mov eax, r14d
shr eax, 0x10
mov byte [rbx + 0xd], al
mov eax, r14d
shr eax, 8
mov byte [rbx + 0xe], al
call qword [rsp + 0x38]
mov r10, qword [rsp + 0xa0]
add r15, 0xc00
add r12, 0xc00
dec rdi
jne 0x29e85bafe00
mov rsi, qword [rsp + 0x98]
mov ebp, dword [rsp + 0x80]
mov r13, rsi
and r13, 0xfffffffffffffff0
je 0x29e85bafedf
mov r9, qword [rsp + 0x30]
mov rdi, r13
mov rdx, r15
shr rdi, 4
mov rcx, r12
mov qword [rsp + 0x20], rbx
mov r8, rdi
call r10
add r14d, edi
lea rdx, [rbx + 0x60]
mov eax, r14d
lea rcx, [rbx + 0x40]
mov r9, r13
shr eax, 0x18
mov r8, r15
mov byte [rbx + 0xf], r14b
mov byte [rbx + 0xc], al
mov eax, r14d
add r12, r13
shr eax, 0x10
sub rsi, r13
mov byte [rbx + 0xd], al
mov eax, r14d
shr eax, 8
mov byte [rbx + 0xe], al
call qword [rsp + 0x38]
add r15, r13
mov r13, qword [rsp + 0x48]
test rsi, rsi
je 0x29e85baff3d
mov r8, qword [rsp + 0x30]
lea rdx, [rbx + 0x10]
mov rcx, rbx
call qword [rbx + 0x178]
inc r14d
mov eax, r14d
mov byte [rbx + 0xf], r14b
shr eax, 0x18
mov byte [rbx + 0xc], al
mov eax, r14d
shr eax, 0x10
mov byte [rbx + 0xd], al
mov eax, r14d
shr eax, 8
mov byte [rbx + 0xe], al
nop dword [rax]
mov ecx, ebp
inc ebp
movzx edx, byte [rcx + r12]
movzx eax, byte [rcx + rbx + 0x10]
xor edx, eax
mov byte [rcx + r15], dl
xor byte [rcx + rbx + 0x40], dl
dec rsi
jne 0x29e85baff20
mov r14, qword [rsp + 0x40]
mov dword [rbx + 0x170], ebp
mov rbp, qword [rsp + 0x88]
mov eax, 1
add rsp, 0x50
pop r15
pop r12
pop rdi
pop rsi
pop rbx
ret
xor eax, eax
add rsp, 0x50
pop r15
pop r12
pop rdi
pop rsi
pop rbx
ret