Function at 0x29e85baf6e0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rdi
push r12
push r14
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 r14, r9
mov r12, r8
mov r15, rdx
cmp rcx, rax
ja 0x29e85baf972
cmp rcx, r9
jb 0x29e85baf972
cmp dword [rbx + 0x174], 0
mov qword [rsp + 0x88], rbp
mov qword [rbx + 0x38], rcx
mov qword [rsp + 0x48], rsi
je 0x29e85baf769
lea rdx, [rbx + 0x60]
lea rcx, [rbx + 0x40]
call rdi
mov dword [rbx + 0x174], 0
movzx eax, byte [rbx + 0xd]
mov esi, dword [rbx + 0x170]
movzx ebp, byte [rbx + 0xc]
shl ebp, 8
mov dword [rsp + 0x80], esi
or ebp, eax
movzx eax, byte [rbx + 0xe]
shl ebp, 8
or ebp, eax
movzx eax, byte [rbx + 0xf]
shl ebp, 8
or ebp, eax
test esi, esi
je 0x29e85baf7e6
nop dword [rax]
test r14, r14
je 0x29e85baf7d4
movzx edx, byte [r15]
mov ecx, esi
inc r12
movzx eax, byte [rcx + rbx + 0x10]
inc r15
dec r14
xor al, dl
mov byte [r12 - 1], al
xor byte [rcx + rbx + 0x40], dl
inc esi
and esi, 0xf
mov dword [rsp + 0x80], esi
jne 0x29e85baf7a0
jmp 0x29e85baf7dc
test esi, esi
jne 0x29e85baf94d
lea rdx, [rbx + 0x60]
lea rcx, [rbx + 0x40]
call rdi
mov qword [rsp + 0x40], r13
mov r13, qword [rsp + 0xa0]
cmp r14, 0xc00
jb 0x29e85baf88a
movabs rax, 0xaaaaaaaaaaaaaaab
mul r14
mov rdi, rdx
shr rdi, 0xb
imul rax, rdi, 0xfffffffffffff400
add r14, rax
nop
lea rdx, [rbx + 0x60]
lea rcx, [rbx + 0x40]
mov r9d, 0xc00
mov r8, r15
call qword [rsp + 0x38]
mov r9, qword [rsp + 0x30]
mov r8d, 0xc0
mov rdx, r12
mov rcx, r15
mov qword [rsp + 0x20], rbx
call r13
add ebp, 0xc0
add r12, 0xc00
mov eax, ebp
add r15, 0xc00
mov byte [rbx + 0xf], bpl
shr eax, 0x18
mov byte [rbx + 0xc], al
mov eax, ebp
shr eax, 0x10
mov byte [rbx + 0xd], al
mov eax, ebp
shr eax, 8
mov byte [rbx + 0xe], al
dec rdi
jne 0x29e85baf820
mov esi, dword [rsp + 0x80]
mov r13, r14
and r13, 0xfffffffffffffff0
je 0x29e85baf8ed
lea rdx, [rbx + 0x60]
lea rcx, [rbx + 0x40]
mov rdi, r13
mov r9, r13
mov r8, r15
shr rdi, 4
call qword [rsp + 0x38]
mov r9, qword [rsp + 0x30]
mov r8, rdi
mov rdx, r12
mov rcx, r15
mov qword [rsp + 0x20], rbx
call qword [rsp + 0xa0]
add ebp, edi
add r12, r13
mov eax, ebp
add r15, r13
mov byte [rbx + 0xf], bpl
shr eax, 0x18
mov byte [rbx + 0xc], al
mov eax, ebp
shr eax, 0x10
mov byte [rbx + 0xd], al
mov eax, ebp
shr eax, 8
sub r14, r13
mov byte [rbx + 0xe], al
mov r13, qword [rsp + 0x40]
test r14, r14
je 0x29e85baf94d
mov r8, qword [rsp + 0x30]
lea rdx, [rbx + 0x10]
mov rcx, rbx
call qword [rbx + 0x178]
inc ebp
mov eax, ebp
mov byte [rbx + 0xf], bpl
shr eax, 0x18
mov byte [rbx + 0xc], al
mov eax, ebp
shr eax, 0x10
mov byte [rbx + 0xd], al
mov eax, ebp
shr eax, 8
mov byte [rbx + 0xe], al
nop word [rax + rax]
mov edx, esi
inc esi
movzx ecx, byte [rdx + r15]
movzx eax, byte [rdx + rbx + 0x10]
xor byte [rdx + rbx + 0x40], cl
xor al, cl
mov byte [rdx + r12], al
dec r14
jne 0x29e85baf930
mov rbp, qword [rsp + 0x88]
mov dword [rbx + 0x170], esi
mov rsi, qword [rsp + 0x48]
mov eax, 1
add rsp, 0x50
pop r15
pop r14
pop r12
pop rdi
pop rbx
ret
xor eax, eax
add rsp, 0x50
pop r15
pop r14
pop r12
pop rdi
pop rbx
ret