Function at 0x140099080
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r13
push r14
sub rsp, 0x78
mov rax, qword [0x14029fd68]
xor rax, rsp
mov qword [rsp + 0x60], rax
mov rsi, qword [rsp + 0xd0]
mov rax, r9
mov qword [rsp + 0x48], rax
mov rdi, rdx
cqo
mov qword [rsp + 0x40], rsi
and edx, 0xf
mov rbx, r8
add rax, rdx
mov r13, rcx
mov rbp, rax
and eax, 0xf
sub rax, rdx
sar rbp, 4
mov qword [rsp + 0x30], rax
mov r14, rax
test rax, rax
je 0x1400990f0
test rbp, rbp
jne 0x1400990e8
xor eax, eax
jmp 0x14009931f
dec rbp
nop dword [rax + rax]
mov eax, dword [rsi + 8]
mov ecx, dword [rsi + 0xc]
mov qword [rsp + 0xb8], r12
mov r12d, dword [rsi + 4]
mov qword [rsp + 0x70], r15
mov r15d, dword [rsi]
mov dword [rsp + 0x20], r15d
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x2c], ecx
test rbp, rbp
je 0x14009919f
mov r14d, dword [rsp + 0x20]
mov r15, rdi
sub r15, rbx
mov esi, r12d
nop
mov edx, dword [r13 + 4]
lea rcx, [r13 + 0xf8]
mov r9, rbx
mov r8, rdi
call fcn.140097430
xor dword [rbx], r14d
xor dword [rbx + 4], esi
mov eax, dword [rsp + 0x28]
xor dword [rbx + 8], eax
mov eax, dword [rsp + 0x2c]
xor dword [rbx + 0xc], eax
mov eax, dword [rbx + r15 + 8]
mov ecx, dword [rbx + r15 + 0xc]
mov r14d, dword [rdi]
add rdi, 0x10
mov esi, dword [rbx + r15 + 4]
add rbx, 0x10
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x2c], ecx
sub rbp, 1
jne 0x140099130
mov dword [rsp + 0x24], esi
mov r12d, dword [rsp + 0x24]
mov rsi, qword [rsp + 0x40]
mov dword [rsp + 0x20], r14d
mov r15d, dword [rsp + 0x20]
mov r14, qword [rsp + 0x30]
test r14, r14
je 0x140099300
mov edx, dword [rdi + 4]
lea r9, [rsp + 0x50]
mov r8d, dword [rdi]
mov ecx, dword [rdi + 8]
mov eax, dword [rdi + 0xc]
mov dword [rsi], r8d
mov dword [rsi + 4], edx
mov dword [rsi + 8], ecx
mov dword [rsi + 0xc], eax
mov dword [rsp + 0x30], r8d
lea r8, [rsp + 0x30]
mov dword [rsp + 0x34], edx
mov edx, dword [r13 + 4]
mov dword [rsp + 0x38], ecx
lea rcx, [r13 + 0xf8]
mov dword [rsp + 0x3c], eax
call fcn.140097430
xor ecx, ecx
test r14, r14
je 0x1400992c5
cmp r14, 0x10
jb 0x140099283
lea rdx, [rbx + 0xf]
lea r10, [rdi + 0xf]
add rdx, r14
add r10, r14
lea r9, [rbx + 0x10]
lea r8, [rdi + 0x10]
cmp r9, r10
ja 0x140099220
cmp rdx, r8
jae 0x140099283
lea rax, [rsp + r14 + 0x4f]
cmp r9, rax
ja 0x140099234
lea r9, [rsp + 0x50]
cmp rdx, r9
jae 0x140099283
lea rdx, [rsp + 0x50]
cmp rdx, r10
ja 0x140099243
cmp rax, r8
jae 0x140099283
mov rax, r14
mov rdx, r14
and eax, 0xf
sub rdx, rax
mov r8, rdi
sub r8, rbx
movdqu xmm0, xmmword [rsp + rcx + 0x50]
lea rax, [rbx + rcx]
movdqu xmm1, xmmword [rax + r8 + 0x10]
movdqu xmmword [rsp + rcx + 0x50], xmm1
add rcx, 0x10
pxor xmm1, xmm0
movdqu xmmword [rax + 0x10], xmm1
cmp rcx, rdx
jb 0x140099255
cmp rcx, r14
jae 0x1400992c5
lea rdx, [rsp + 0x50]
mov r10, rbx
sub r10, rdx
sub rdi, rbx
add r10, 0x10
nop word [rax + rax]
lea r9, [rsp + 0x50]
add r9, rcx
inc rcx
lea r8, [r10 + r9]
movzx eax, byte [r8 + rdi]
movzx edx, al
xor dl, byte [r9]
mov byte [r9], al
mov byte [r8], dl
cmp rcx, r14
jb 0x1400992a0
mov edx, dword [r13 + 4]
lea r8, [rsp + 0x50]
mov r9, rbx
lea rcx, [r13 + 0xf8]
call fcn.140097430
xor dword [rbx], r15d
xor dword [rbx + 4], r12d
mov eax, dword [rsp + 0x28]
xor dword [rbx + 8], eax
mov eax, dword [rsp + 0x2c]
xor dword [rbx + 0xc], eax
jmp 0x14009930d
mov dword [rsi], r15d
mov dword [rsi + 4], r12d
mov dword [rsi + 8], eax
mov dword [rsi + 0xc], ecx
mov rax, qword [rsp + 0x48]
mov r15, qword [rsp + 0x70]
mov r12, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.14017f910
add rsp, 0x78
pop r14
pop r13
pop rdi
pop rsi
pop rbp
pop rbx
ret