Function at 0x29e85baf990
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
push r12
push r14
push r15
sub rsp, 0x50
mov rax, qword [rcx + 0x178]
mov r12, qword [rcx + 0x160]
mov rbx, rcx
mov qword [rsp + 0x28], rax
mov rax, qword [rcx + 0x180]
mov r15, r9
mov qword [rsp + 0x20], rax
mov rax, qword [rcx + 0x168]
mov rcx, qword [rcx + 0x38]
mov qword [rsp + 0x38], rax
add rcx, r9
movabs rax, 0xfffffffe0
mov rsi, r8
mov r14, rdx
cmp rcx, rax
ja 0x29e85bafca1
cmp rcx, r9
jb 0x29e85bafca1
cmp dword [rbx + 0x174], 0
mov qword [rsp + 0x88], rbp
mov qword [rbx + 0x38], rcx
mov qword [rsp + 0x48], rdi
je 0x29e85bafa26
lea rdx, [rbx + 0x60]
lea rcx, [rbx + 0x40]
call r12
mov dword [rbx + 0x174], 0
movzx eax, byte [rbx + 0xd]
mov ebp, dword [rbx + 0x170]
movzx edi, byte [rbx + 0xc]
shl edi, 8
mov dword [rsp + 0x80], ebp
or edi, eax
movzx eax, byte [rbx + 0xe]
shl edi, 8
or edi, eax
movzx eax, byte [rbx + 0xf]
shl edi, 8
or edi, eax
test ebp, ebp
je 0x29e85bafa99
test r15, r15
je 0x29e85bafa86
mov ecx, ebp
inc rsi
inc r14
movzx eax, byte [rcx + rbx + 0x10]
dec r15
xor al, byte [r14 - 1]
mov byte [rsi - 1], al
xor byte [rcx + rbx + 0x40], al
inc ebp
and ebp, 0xf
mov dword [rsp + 0x80], ebp
jne 0x29e85bafa56
jmp 0x29e85bafa8e
test ebp, ebp
jne 0x29e85bafc7c
lea rdx, [rbx + 0x60]
lea rcx, [rbx + 0x40]
call r12
mov qword [rsp + 0x40], r13
cmp r15, 0xc00
jb 0x29e85bafb6e
mov rbp, qword [rsp + 0x28]
movabs rax, 0xaaaaaaaaaaaaaaab
mul r15
mov rcx, rdx
shr rcx, 0xb
mov qword [rsp + 0x30], rcx
imul rax, rcx, 0xfffffffffffff400
add r15, rax
mov qword [rsp + 0x98], r15
mov r15, qword [rsp + 0x20]
mov r12d, 0xc0
nop word [rax + rax]
lea rdx, [rbx + 0x10]
mov r8, r15
mov rcx, rbx
call rbp
inc edi
add rsi, 0x10
mov byte [rbx + 0xf], dil
mov eax, edi
add r14, 0x10
shr eax, 0x18
mov byte [rbx + 0xc], al
mov eax, edi
shr eax, 0x10
mov byte [rbx + 0xd], al
mov eax, edi
shr eax, 8
mov byte [rbx + 0xe], al
mov rax, qword [r14 - 0x10]
xor rax, qword [rbx + 0x10]
mov qword [rsi - 0x10], rax
mov rax, qword [r14 - 8]
xor rax, qword [rbx + 0x18]
mov qword [rsi - 8], rax
dec r12
jne 0x29e85bafaf0
lea r8, [rsi - 0xc00]
lea rdx, [rbx + 0x60]
lea rcx, [rbx + 0x40]
mov r9d, 0xc00
call qword [rsp + 0x38]
dec qword [rsp + 0x30]
jne 0x29e85bafae0
mov r15, qword [rsp + 0x98]
mov ebp, dword [rsp + 0x80]
mov rax, r15
and rax, 0xfffffffffffffff0
mov qword [rsp + 0x30], rax
je 0x29e85bafc28
cmp r15, 0x10
jb 0x29e85bafc13
mov rbp, qword [rsp + 0x28]
mov r12, r15
shr r12, 4
imul rax, r12, 0xfffffffffffffff0
add r15, rax
mov qword [rsp + 0x98], r15
mov r15, qword [rsp + 0x20]
nop word [rax + rax]
lea rdx, [rbx + 0x10]
mov r8, r15
mov rcx, rbx
call rbp
inc edi
add rsi, 0x10
mov byte [rbx + 0xf], dil
mov eax, edi
add r14, 0x10
shr eax, 0x18
mov byte [rbx + 0xc], al
mov eax, edi
shr eax, 0x10
mov byte [rbx + 0xd], al
mov eax, edi
shr eax, 8
mov byte [rbx + 0xe], al
mov rax, qword [r14 - 0x10]
xor rax, qword [rbx + 0x10]
mov qword [rsi - 0x10], rax
mov rax, qword [r14 - 8]
xor rax, qword [rbx + 0x18]
mov qword [rsi - 8], rax
dec r12
jne 0x29e85bafbb0
mov r15, qword [rsp + 0x98]
mov ebp, dword [rsp + 0x80]
mov rax, qword [rsp + 0x30]
mov r8, rsi
lea rdx, [rbx + 0x60]
lea rcx, [rbx + 0x40]
sub r8, rax
mov r9, rax
call qword [rsp + 0x38]
mov r13, qword [rsp + 0x40]
test r15, r15
je 0x29e85bafc7c
mov r8, qword [rsp + 0x20]
lea rdx, [rbx + 0x10]
mov rcx, rbx
call qword [rsp + 0x28]
inc edi
mov eax, edi
mov byte [rbx + 0xf], dil
shr eax, 0x18
mov byte [rbx + 0xc], al
mov eax, edi
shr eax, 0x10
mov byte [rbx + 0xd], al
mov eax, edi
shr eax, 8
mov byte [rbx + 0xe], al
mov ecx, ebp
inc ebp
movzx edx, byte [rcx + r14]
movzx eax, byte [rcx + rbx + 0x10]
xor edx, eax
mov byte [rcx + rsi], dl
xor byte [rcx + rbx + 0x40], dl
dec r15
jne 0x29e85bafc60
mov rdi, qword [rsp + 0x48]
mov dword [rbx + 0x170], ebp
mov rbp, qword [rsp + 0x88]
mov eax, 1
add rsp, 0x50
pop r15
pop r14
pop r12
pop rsi
pop rbx
ret
xor eax, eax
add rsp, 0x50
pop r15
pop r14
pop r12
pop rsi
pop rbx
ret