Function at 0x46c69c
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x20
mov r13d, 7
mov esi, r8d
mov rbp, rdx
test r13b, r8b
mov rbx, rcx
jne 0x46ca21
lea eax, [r8 - 0x10]
cmp eax, 0x10
ja 0x46ca21
mov rcx, rdx
call fcn.00553be0
lea ecx, [rax + 0x20]
call fcn.004af6ac
test rax, rax
mov rdi, rax
je 0x46ca21
mov rdx, rbp
mov rcx, rax
call fcn.00554a10
cmp esi, 0x10
mov dword [rbx], esi
mov eax, dword [rdi]
mov dword [rbx + 4], eax
mov eax, dword [rdi + 4]
mov dword [rbx + 8], eax
mov eax, dword [rdi + 8]
mov dword [rbx + 0xc], eax
mov edx, dword [rdi + 0xc]
mov dword [rbx + 0x10], edx
je 0x46c8cf
cmp esi, 0x18
je 0x46c828
cmp esi, 0x20
jne 0x46c955
mov eax, dword [rdi + 0x10]
lea r11, [0x007c8880]
lea r14, [rbx + 8]
mov dword [rbx + 0x14], eax
mov eax, dword [rdi + 0x14]
lea r10, [0x007c89b0]
mov dword [rbx + 0x18], eax
mov eax, dword [rdi + 0x18]
mov dword [rbx + 0x1c], eax
mov r12d, dword [rdi + 0x1c]
mov dword [rbx + 0x20], r12d
ror r12d, 8
mov eax, r12d
shr eax, 0x18
movzx edx, al
mov eax, r12d
mov r9d, dword [r10 + rdx*4 + 0xc00]
shr eax, 0x10
movzx ecx, al
mov eax, r12d
xor r9d, dword [r10 + rcx*4 + 0x800]
shr eax, 8
movzx ecx, al
movzx eax, r12b
xor r9d, dword [r10 + rcx*4 + 0x400]
xor r9d, dword [r10 + rax*4]
xor r9d, dword [r14 - 4]
xor r9d, dword [r11]
add r11, 4
mov dword [r14 + 0x1c], r9d
xor r9d, dword [r14]
add r14, 0x20
mov dword [r14], r9d
xor r9d, dword [r14 - 0x1c]
mov dword [r14 + 4], r9d
xor r9d, dword [r14 - 0x18]
mov dword [r14 + 8], r9d
mov eax, r9d
shr eax, 0x18
movzx edx, al
mov eax, r9d
mov r12d, dword [r10 + rdx*4 + 0xc00]
shr eax, 0x10
movzx ecx, al
mov eax, r9d
xor r12d, dword [r10 + rcx*4 + 0x800]
shr eax, 8
movzx ecx, al
movzx eax, r9b
xor r12d, dword [r10 + rcx*4 + 0x400]
xor r12d, dword [r10 + rax*4]
xor r12d, dword [r14 - 0x14]
mov dword [r14 + 0xc], r12d
xor r12d, dword [r14 - 0x10]
mov dword [r14 + 0x10], r12d
xor r12d, dword [r14 - 0xc]
mov dword [r14 + 0x14], r12d
xor r12d, dword [r14 - 8]
dec r13
mov dword [r14 + 0x18], r12d
jne 0x46c757
jmp 0x46c955
mov eax, dword [rdi + 0x10]
lea r11, [0x007c8880]
lea r9, [rbx + 8]
mov dword [rbx + 0x14], eax
mov edx, dword [rdi + 0x14]
mov r12d, 8
mov dword [rbx + 0x18], edx
lea r10, [0x007c89b0]
ror edx, 8
mov r8d, edx
mov eax, edx
shr eax, 0x18
movzx edx, al
mov eax, r8d
mov edx, dword [r10 + rdx*4 + 0xc00]
shr eax, 0x10
movzx ecx, al
mov eax, r8d
xor edx, dword [r10 + rcx*4 + 0x800]
shr eax, 8
movzx ecx, al
movzx eax, r8b
xor edx, dword [r10 + rcx*4 + 0x400]
xor edx, dword [r10 + rax*4]
xor edx, dword [r9 - 4]
xor edx, dword [r11]
add r11, 4
mov dword [r9 + 0x14], edx
xor edx, dword [r9]
add r9, 0x18
mov dword [r9], edx
xor edx, dword [r9 - 0x14]
mov dword [r9 + 4], edx
xor edx, dword [r9 - 0x10]
mov dword [r9 + 8], edx
xor edx, dword [r9 - 0xc]
mov dword [r9 + 0xc], edx
xor edx, dword [r9 - 8]
dec r12
mov dword [r9 + 0x10], edx
jne 0x46c84c
jmp 0x46c955
lea r11, [0x007c8880]
lea r9, [rbx + 8]
mov r12d, 0xa
lea r10, [0x007c89b0]
ror edx, 8
mov r8d, edx
mov eax, edx
shr eax, 0x18
movzx edx, al
mov eax, r8d
mov edx, dword [r10 + rdx*4 + 0xc00]
shr eax, 0x10
movzx ecx, al
mov eax, r8d
xor edx, dword [r10 + rcx*4 + 0x800]
shr eax, 8
movzx ecx, al
movzx eax, r8b
xor edx, dword [r10 + rcx*4 + 0x400]
xor edx, dword [r10 + rax*4]
xor edx, dword [r9 - 4]
xor edx, dword [r11]
add r11, 4
mov dword [r9 + 0xc], edx
xor edx, dword [r9]
add r9, 0x10
mov dword [r9], edx
xor edx, dword [r9 - 0xc]
mov dword [r9 + 4], edx
xor edx, dword [r9 - 8]
dec r12
mov dword [r9 + 8], edx
jne 0x46c8e7
mov eax, dword [rbx + 4]
mov dword [rbx + 0xf4], eax
mov eax, dword [rbx + 8]
mov dword [rbx + 0xf8], eax
mov eax, dword [rbx + 0xc]
mov dword [rbx + 0xfc], eax
mov eax, dword [rbx + 0x10]
mov dword [rbx + 0x100], eax
lea eax, [rsi + 0x18]
cmp eax, 4
jbe 0x46ca15
add rbx, 0x14
add eax, 0xfffffffc
mov esi, 0x1010101
mov r11d, eax
mov ebp, 0xff7f7f7f
mov r9d, dword [rbx]
add rbx, 4
mov r10d, r9d
mov eax, r9d
and eax, ebp
shr r10d, 7
add eax, eax
and r10d, esi
imul r10d, r10d, 0x1b
xor r10d, eax
mov r8d, r10d
mov eax, r10d
and eax, ebp
shr r8d, 7
add eax, eax
and r8d, esi
imul r8d, r8d, 0x1b
xor r8d, eax
mov edx, r8d
mov eax, r8d
mov ecx, r8d
shr edx, 7
and eax, ebp
add eax, eax
and edx, esi
imul edx, edx, 0x1b
xor edx, eax
mov eax, r10d
xor r9d, edx
xor ecx, r9d
xor eax, r9d
ror ecx, 0x10
ror eax, 8
xor ecx, eax
rol r9d, 8
xor ecx, r9d
xor ecx, edx
xor ecx, r8d
xor ecx, r10d
dec r11
mov dword [rbx + 0xec], ecx
jne 0x46c999
mov rcx, rdi
call fcn.004af6dc
xor eax, eax
jmp 0x46ca26
mov eax, 0xffffffff
add rsp, 0x20
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret