Function at 0x68f890
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x68
mov rax, qword [rsp + 0xe0]
mov rbx, qword [rsp + 0xd0]
mov edi, dword [rax]
mov esi, dword [rax + 4]
mov rax, qword [rsp + 0xd0]
mov ebx, dword [rbx + 4]
mov qword [rsp + 0xb8], rdx
mov rdx, qword [rsp + 0xd8]
mov rbp, rcx
mov ecx, r8d
mov qword [rsp + 0xc8], r9
mov r9d, dword [rsp + 0xe8]
sub ecx, 8
mov r11d, dword [rdx]
mov r12d, dword [rdx + 4]
mov dword [rsp + 0xc0], r8d
mov eax, dword [rax]
mov dword [rsp + 0x40], ecx
mov dword [rsp + 0x28], r11d
test r9d, r9d
je 0x68fa30
test ecx, ecx
js 0x68f9f5
shr ecx, 3
mov r13, qword [rsp + 0xb8]
mov edx, ecx
mov dword [rsp + 0x2c], ecx
lea rcx, [rsp + 0x58]
lea r14, [rdx*8 + 8]
mov edx, ebx
mov rbx, r13
mov r13d, r11d
lea r15, [rbp + r14]
mov qword [rsp + 0x30], r14
mov r14, rcx
nop word [rax + rax]
mov r8d, dword [rbp]
mov ecx, dword [rbp + 4]
add rbx, 8
add rbp, 8
xor r8d, r13d
xor eax, r8d
mov r8d, 1
mov dword [rsp + 0x58], eax
mov eax, ecx
mov rcx, r14
xor eax, r12d
xor edx, eax
mov dword [rsp + 0x5c], edx
mov rdx, qword [rsp + 0xc8]
call fcn.0060de50
mov eax, dword [rsp + 0x58]
xor eax, edi
mov edx, eax
mov byte [rbx - 8], al
shr edx, 0x10
mov byte [rbx - 7], ah
mov byte [rbx - 6], dl
mov edx, eax
shr edx, 0x18
mov byte [rbx - 5], dl
mov edx, dword [rsp + 0x5c]
xor edx, esi
mov ecx, edx
mov byte [rbx - 4], dl
shr ecx, 0x10
mov byte [rbx - 3], dh
mov byte [rbx - 2], cl
mov ecx, edx
shr ecx, 0x18
mov byte [rbx - 1], cl
cmp r15, rbp
jne 0x68f950
mov ebx, edx
mov edx, dword [rsp + 0x2c]
mov ecx, dword [rsp + 0xc0]
mov r14, qword [rsp + 0x30]
add qword [rsp + 0xb8], r14
neg edx
shl edx, 3
lea ecx, [rcx + rdx - 0x10]
add edx, dword [rsp + 0x40]
mov dword [rsp + 0xc0], edx
cmp ecx, 0xfffffff8
je 0x68fc40
movsxd rcx, ecx
cmp dword [rsp + 0xc0], 7
lea rdx, [rbp + rcx + 8]
ja case.0x68fa29.0
mov ecx, dword [rsp + 0xc0]
lea r8, [0x00907720]
movsxd rcx, dword [r8 + rcx*4]
add rcx, r8
jmp rcx
mov edx, dword [rsp + 0x40]
test edx, edx
jle 0x68fbc0
lea edx, [r8 - 9]
mov dword [rsp + 0x2c], esi
mov r13d, ebx
mov r14, rbp
shr edx, 3
mov r15, qword [rsp + 0xb8]
mov ebx, eax
lea rcx, [rdx*8 + 8]
mov dword [rsp + 0x44], edx
mov qword [rsp + 0x48], rcx
add rcx, rbp
mov rbp, r15
mov qword [rsp + 0x38], rcx
lea rcx, [rsp + 0x58]
mov qword [rsp + 0x30], rcx
nop dword [rax]
mov esi, dword [r14]
mov edx, edi
mov rcx, qword [rsp + 0x30]
xor r8d, r8d
add rbp, 8
add r14, 8
xor edx, esi
mov dword [rsp + 0x58], edx
mov edx, dword [rsp + 0x2c]
mov r15d, dword [r14 - 4]
xor edx, r15d
mov dword [rsp + 0x5c], edx
mov rdx, qword [rsp + 0xc8]
call fcn.0060de50
mov edx, dword [rsp + 0x28]
xor edx, dword [rsp + 0x58]
xor ebx, edx
mov edx, dword [rsp + 0x5c]
mov byte [rbp - 8], bl
xor edx, r12d
mov byte [rbp - 7], bh
xor r13d, edx
mov edx, ebx
shr ebx, 0x18
shr edx, 0x10
mov eax, r13d
mov byte [rbp - 5], bl
mov ebx, esi
mov byte [rbp - 6], dl
mov edx, r13d
shr edx, 0x10
mov byte [rbp - 4], r13b
shr r13d, 0x18
mov byte [rbp - 3], ah
mov byte [rbp - 2], dl
mov byte [rbp - 1], r13b
mov r13d, r15d
cmp qword [rsp + 0x38], r14
jne 0x68fa80
mov rax, qword [rsp + 0x48]
mov ebx, dword [rsp + 0xc0]
mov rbp, r14
mov r14d, r15d
add qword [rsp + 0xb8], rax
mov eax, dword [rsp + 0x44]
mov r13d, esi
mov esi, dword [rsp + 0x2c]
neg eax
shl eax, 3
lea r15d, [rbx + rax - 0x10]
add eax, dword [rsp + 0x40]
mov dword [rsp + 0xc0], eax
mov eax, dword [rbp]
mov rcx, qword [rsp + 0x30]
xor r8d, r8d
movsxd r15, r15d
mov rdx, qword [rsp + 0xc8]
xor edi, eax
mov dword [rsp + 0x2c], eax
mov dword [rsp + 0x58], edi
mov ebx, dword [rbp + 4]
xor esi, ebx
mov dword [rsp + 0x5c], esi
call fcn.0060de50
xor r12d, dword [rsp + 0x5c]
mov ebp, dword [rsp + 0x28]
xor ebp, dword [rsp + 0x58]
mov rax, qword [rsp + 0xb8]
mov r9d, r12d
mov r11d, ebp
xor r9d, r14d
xor r11d, r13d
cmp dword [rsp + 0xc0], 8
lea rdi, [rax + r15 + 8]
mov eax, dword [rsp + 0x2c]
ja case.0x68fbbb.0
mov edx, dword [rsp + 0xc0]
lea r8, [0x00907740]
movsxd rdx, dword [r8 + rdx*4]
add rdx, r8
jmp rdx
cmp dword [rsp + 0x40], 0xfffffff8
jne 0x68fdba
mov rdi, qword [rsp + 0xd0]
mov dword [rdi], eax
mov dword [rdi + 4], ebx
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov edx, r9d
sub rdi, 1
shr edx, 0x18
mov byte [rdi], dl
mov edx, r9d
sub rdi, 1
shr edx, 0x10
mov byte [rdi], dl
mov ecx, r9d
lea rdx, [rdi - 1]
mov byte [rdi - 1], ch
mov byte [rdx - 1], r9b
lea rdi, [rdx - 1]
mov edx, r11d
lea r8, [rdi - 1]
shr edx, 0x18
mov byte [rdi - 1], dl
mov ecx, r11d
lea rdx, [r8 - 1]
shr ecx, 0x10
mov byte [r8 - 1], cl
mov ecx, r11d
lea rdi, [rdx - 1]
mov byte [rdx - 1], ch
mov byte [rdi - 1], r11b
jmp case.0x68fbbb.0
movzx edi, ah
mov ecx, eax
mov edx, ebx
mov r9d, eax
shr ecx, 0x10
mov r8d, edi
mov r10d, ebx
movzx edi, bh
shr eax, 0x18
shr edx, 0x10
shr ebx, 0x18
mov rsi, qword [rsp + 0xd0]
mov byte [rsi], r9b
mov byte [rsi + 1], r8b
mov byte [rsi + 2], cl
mov byte [rsi + 3], al
mov byte [rsi + 4], r10b
mov byte [rsi + 5], dil
mov byte [rsi + 6], dl
mov byte [rsi + 7], bl
jmp 0x68fbd8
movzx r9d, byte [rdx - 1]
sub rdx, 1
shl r9d, 0x10
mov r8d, r9d
movzx r9d, byte [rdx - 1]
lea rcx, [rdx - 1]
shl r9d, 8
or r9d, r8d
lea rdx, [rcx - 1]
movzx ecx, byte [rcx - 1]
or r9d, ecx
movzx r8d, byte [rdx - 1]
lea rcx, [rdx - 1]
shl r8d, 0x18
lea r10, [rcx - 1]
movzx ecx, byte [rcx - 1]
shl ecx, 0x10
or r8d, ecx
movzx ecx, byte [r10 - 1]
lea rdx, [r10 - 1]
shl ecx, 8
or ecx, r8d
movzx edx, byte [rdx - 1]
or ecx, edx
xor eax, dword [rsp + 0x28]
xor ebx, r12d
mov rdx, qword [rsp + 0xc8]
mov r8d, 1
xor eax, ecx
xor r9d, ebx
lea rcx, [rsp + 0x58]
mov dword [rsp + 0x58], eax
mov dword [rsp + 0x5c], r9d
call fcn.0060de50
xor edi, dword [rsp + 0x58]
mov r11, qword [rsp + 0xb8]
mov edx, edi
mov ecx, edi
mov r9d, edi
movzx eax, dh
shr ecx, 0x10
mov r8d, eax
mov eax, edi
mov rdi, qword [rsp + 0xb8]
shr eax, 0x18
mov dword [rdi], edx
xor esi, dword [rsp + 0x5c]
mov ebx, esi
mov edx, esi
mov r10d, esi
mov dword [r11 + 4], esi
movzx edi, bh
shr edx, 0x10
shr ebx, 0x18
jmp 0x68fc5f
xor r8d, r8d
jmp 0x68fc97
xor r9d, r9d
xor ecx, ecx
jmp 0x68fcdc
mov r10, rdx
xor r9d, r9d
xor r8d, r8d
jmp 0x68fccd
mov rcx, rdx
xor r9d, r9d
xor r8d, r8d
jmp 0x68fcbf
xor r9d, r9d
jmp 0x68fcb2
mov rcx, rdx
xor r9d, r9d
jmp 0x68fca7
mov rdx, rdi
jmp 0x68fc0b
mov rdx, rdi
jmp 0x68fc2e
mov r8, rdi
jmp 0x68fc20
xor r9d, r9d
xor ecx, ecx
jmp 0x68fce2
mov r13d, eax
lea rax, [rsp + 0x58]
mov r15d, dword [rsp + 0x40]
mov r14d, ebx
mov qword [rsp + 0x30], rax
jmp 0x68fb44