Function at 0x706f40
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r13
push rdi
push rsi
push rbx
sub rsp, 0x40
mov rbp, rsp
mov rbx, rcx
mov rax, qword [rbx + 0x30]
movzx rcx, byte [rax + 0x84]
cmp cl, 7
ja 0x706f75
mov al, 1
shl eax, cl
movzx rcx, byte [0x00707270]
test al, cl
setne r13b
jmp 0x706f78
xor r13, r13
mov rax, qword [rbx + 0x30]
mov rdi, qword [rax + 0x58]
lea rsi, [rdi + 0x200]
lea rcx, [rbp + 0x2e]
mov edx, 0x12
xor r8, r8
call fcn.0040c190
mov ecx, dword [rbx + 0x40]
cmp ecx, 8
jle 0x706fa5
mov ecx, 8
mov rax, qword [rbx + 0x38]
lea rdx, [rbp + 0x2e]
movsxd r8, ecx
mov rcx, rax
call fcn.00409690
mov rax, qword [rbx + 0x30]
movzx rcx, byte [rax + 0x84]
cmp cl, 7
ja 0x706fdc
mov al, 1
shl eax, cl
movzx rcx, byte [0x00707271]
test al, cl
setne al
jmp 0x706fde
xor eax, eax
test al, al
je 0x707035
movzx rax, byte [rbp + 0x2e]
xor al, byte [rbp + 0x30]
xor al, 0x81
mov byte [rbp + 0x33], al
movzx rax, byte [rbp + 0x2e]
xor al, byte [rbp + 0x31]
xor al, byte [rbp + 0x32]
xor al, 0x42
mov byte [rbp + 0x34], al
movzx rax, byte [rbp + 0x2f]
xor al, byte [rbp + 0x30]
xor al, byte [rbp + 0x32]
xor al, 0x24
mov byte [rbp + 0x35], al
movzx rax, byte [rbp + 0x2f]
xor al, byte [rbp + 0x31]
xor al, 0x18
mov byte [rbp + 0x36], al
lea rcx, [rbp + 0x2e]
lea rdx, [rbp + 0x37]
mov r8d, 9
call fcn.00409690
jmp 0x7070a3
cmp dword [rbx + 0x40], 8
jle 0x707064
mov ecx, dword [rbx + 0x40]
sub ecx, 8
cmp ecx, 8
jle 0x70704b
mov ecx, 8
mov rax, qword [rbx + 0x38]
lea rax, [rax + 8]
lea rdx, [rbp + 0x37]
movsxd r8, ecx
mov rcx, rax
call fcn.00409690
jmp 0x707077
lea rcx, [rbp + 0x2e]
lea rdx, [rbp + 0x37]
mov r8d, 9
call fcn.00409690
mov ecx, 8
lea rax, [rbp + 0x2e]
lea rdx, [rbp + 0x36]
movzx r8, byte [rax]
xor byte [rdx], r8b
lea rdx, [rbp + 0x3f]
movzx r8, byte [rax + 9]
xor byte [rdx], r8b
add rax, 1
sub ecx, 1
test ecx, ecx
jne 0x707080
nop
lea rcx, [rbp + 0x37]
mov rdx, rsi
mov r8d, 8
call fcn.00409690
add rsi, 8
mov edx, 9
lea rax, [rbp + 0x2e]
movzx rcx, byte [rax]
movzx r8, cl
shr r8d, 3
shl ecx, 5
or r8b, cl
mov byte [rax], r8b
add rax, 1
sub edx, 1
test edx, edx
jne 0x7070c2
nop
mov eax, 1
mov rcx, qword [rbx + 0x30]
mov r10d, dword [rcx + 0x80]
mov ecx, eax
cmp ecx, r10d
jg 0x707254
sub r10d, eax
add r10d, 1
mov r8d, 9
lea rax, [rbp + 0x2e]
movzx rdx, byte [rax]
mov r9d, edx
shl r9d, 6
movzx rdx, dl
shr edx, 2
or r9b, dl
mov byte [rax], r9b
movzx rdx, byte [rax + 9]
mov r9d, edx
shl r9d, 6
movzx rdx, dl
shr edx, 2
or r9b, dl
mov byte [rax + 9], r9b
add rax, 1
sub r8d, 1
test r8d, r8d
jne 0x70710f
nop
xor r8, r8
lea r9, [rbp + 0x2e]
test r13b, r13b
je 0x707199
mov eax, ecx
add eax, eax
mov edx, r8d
add edx, eax
sub edx, 1
mov r11d, 9
mov eax, edx
cdq
idiv r11d
movsxd rdx, edx
mov eax, ecx
add eax, eax
lea rax, [rax + rax*8]
add eax, r8d
add eax, 1
movsxd rax, eax
movzx rax, byte [rdi + rax]
movzx rdx, byte [rdx + rbp + 0x2e]
add dl, byte [rdi + rax]
mov byte [rsi], dl
jmp 0x7071b8
mov eax, ecx
add eax, eax
lea rax, [rax + rax*8]
add eax, r8d
add eax, 1
movsxd rax, eax
movzx rax, byte [rdi + rax]
movzx rdx, byte [r9]
add dl, byte [rdi + rax]
mov byte [rsi], dl
add rsi, 1
add r8d, 1
add r9, 1
cmp r8d, 8
jne 0x707156
nop
xor r8, r8
lea r9, [rbp + 0x37]
test r13b, r13b
je 0x707212
mov eax, ecx
add eax, eax
mov edx, r8d
add edx, eax
mov r11d, 9
mov eax, edx
cdq
idiv r11d
movsxd rdx, edx
mov eax, ecx
add eax, eax
lea rax, [rax + rax*8]
add eax, r8d
add eax, 0xa
movsxd rax, eax
movzx rax, byte [rdi + rax]
movzx rdx, byte [rdx + rbp + 0x37]
add dl, byte [rdi + rax]
mov byte [rsi], dl
jmp 0x707231
mov eax, ecx
add eax, eax
lea rax, [rax + rax*8]
add eax, r8d
add eax, 0xa
movsxd rax, eax
movzx rax, byte [rdi + rax]
movzx rdx, byte [r9]
add dl, byte [rdi + rax]
mov byte [rsi], dl
add rsi, 1
add r8d, 1
add r9, 1
cmp r8d, 8
jne 0x7071d2
nop
add ecx, 1
sub r10d, 1
test r10d, r10d
jne 0x707105
nop
lea rcx, [rbp + 0x2e]
mov edx, 0x12
call fcn.006e8c90
lea rsp, [rbp + 0x40]
pop rbx
pop rsi
pop rdi
pop r13
pop rbp
ret