Function at 0x140090ab0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xd8
mov r14, r9
mov rbx, r8
mov rdi, rdx
mov rdx, qword [rsp + 0x140]
mov rax, qword [0x14039fd98]
xor rax, rsp
mov qword [rsp + 0xd0], rax
cmp rdx, 1
mov qword [rsp + 0x48], rcx
jne 0x140090bec
mov rax, qword [r14]
mov rdx, qword [r14 + 8]
mov rcx, qword [rax]
mov r11, qword [rdx]
mov rax, qword [rbx]
mov rdx, qword [rbx + 8]
mov r9, qword [rax]
mov r10, qword [rdx]
mov r8d, r11d
and r8d, 1
neg r8
mov edi, ecx
and edi, 1
neg rdi
and r8, r10
xor rdi, r9
and rdi, r8
mov eax, 1
mov edx, 0x3f
xor ebx, ebx
xor r14d, r14d
mov r15, r11
mov r12, rcx
nop
shr r15, 1
shr r12, 1
shl r11, 0x3e
sar r11, 0x3f
and r11, r10
bt ecx, 1
mov r13d, 0
sbb r13, r13
xor r13, r9
and r13, r11
mov rbp, r13
mov ecx, eax
shl rbp, cl
mov ecx, edx
shr r13, cl
mov rsi, r11
mov ecx, eax
shl rsi, cl
mov ecx, edx
shr r11, cl
mov rcx, rdi
xor rcx, rsi
mov rdi, rbp
xor rdi, r8
and rdi, rcx
xor rsi, r8
xor rcx, rbp
mov r8, rcx
or r8, rsi
mov rcx, rbx
xor rcx, r11
mov rbx, r13
xor rbx, r14
and rbx, rcx
xor r11, r14
xor rcx, r13
mov r14, rcx
or r14, r11
inc rax
mov rcx, r12
mov r11, r15
dec rdx
jne 0x140090b40
mov rcx, qword [rsp + 0x48]
mov rax, qword [rcx]
mov qword [rax], rdi
mov rax, qword [rcx]
mov qword [rax + 8], rbx
mov rax, qword [rcx + 8]
mov qword [rax], r8
mov rax, qword [rcx + 8]
mov qword [rax + 8], r14
jmp 0x140090f5c
mov r13, rdx
shr r13, 1
mov r12, rdx
sub r12, r13
lea rax, [r13*8]
mov r8, qword [rbx]
add r8, rax
mov qword [rsp + 0x28], r8
mov qword [rsp + 0xc0], r8
mov r8, qword [rbx + 8]
add r8, rax
mov qword [rsp + 0x30], r8
mov qword [rsp + 0xc8], r8
mov r11, qword [r14]
add r11, rax
mov qword [rsp + 0xb0], r11
add rax, qword [r14 + 8]
mov qword [rsp + 0xb8], rax
movups xmm0, xmmword [rcx]
movaps xmmword [rsp + 0xa0], xmm0
mov r8, qword [rcx]
mov qword [rsp + 0x38], r8
lea r8, [r8 + r12*8]
mov qword [rsp + 0x90], r8
mov rcx, qword [rcx + 8]
mov qword [rsp + 0x68], rcx
lea r15, [rcx + r12*8]
mov qword [rsp + 0x98], r15
test rdx, rdx
mov qword [rsp + 0x40], r12
je 0x140090d4d
mov qword [rsp + 0x50], r8
mov qword [rsp + 0x58], r11
mov qword [rsp + 0x60], rax
mov r12, qword [rsp + 0xa0]
mov rax, qword [rsp + 0x28]
mov rbp, qword [rsp + 0xa8]
xor r9d, r9d
mov r11, qword [rsp + 0x30]
nop
mov rsi, qword [r11 + r9*8]
mov r10, qword [rax + r9*8]
mov rcx, qword [rbx]
mov rdx, qword [rbx + 8]
mov r8, qword [rdx + r9*8]
mov rcx, qword [rcx + r9*8]
xor rcx, rsi
mov rdx, r8
xor rdx, r10
and rdx, rcx
mov qword [r12 + r9*8], rdx
xor r8, rsi
xor rcx, r10
or rcx, r8
mov qword [rbp + r9*8], rcx
inc r9
cmp r13, r9
jne 0x140090cb0
xor r9d, r9d
mov r12, qword [rsp + 0x40]
mov rax, qword [rsp + 0x60]
mov r11, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x50]
nop word cs:[rax + rax]
mov rcx, qword [rax + r9*8]
mov rdx, qword [r11 + r9*8]
mov r8, qword [r14]
mov r10, qword [r14 + 8]
mov r10, qword [r10 + r9*8]
mov r8, qword [r8 + r9*8]
xor r8, rcx
mov rsi, r10
xor rsi, rdx
and rsi, r8
mov qword [rbp + r9*8], rsi
xor r10, rcx
xor r8, rdx
or r8, r10
mov qword [r15 + r9*8], r8
inc r9
cmp r13, r9
jne 0x140090d10
cmp r12, r13
je 0x140090d9e
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx + r13*8]
mov rdx, qword [rsp + 0xa0]
mov qword [rdx + r13*8], rcx
mov rcx, qword [rsp + 0x30]
mov rcx, qword [rcx + r13*8]
mov rdx, qword [rsp + 0xa8]
mov qword [rdx + r13*8], rcx
mov rcx, qword [r11 + r13*8]
mov rdx, qword [rsp + 0x140]
mov r8, qword [rsp + 0x38]
mov qword [r8 + rdx*8], rcx
mov rax, qword [rax + r13*8]
mov rcx, qword [rsp + 0x68]
mov qword [rcx + rdx*8], rax
lea rbp, [r12 + r12]
mov rax, r12
shl rax, 4
mov rcx, qword [rdi]
add rcx, rax
mov qword [rsp + 0x80], rcx
add rax, qword [rdi + 8]
mov qword [rsp + 0x88], rax
mov rsi, qword [rsp + 0x48]
mov rcx, qword [rsi]
mov rdx, qword [rsi + 8]
mov rax, qword [rsp + 0x140]
and rax, 0xfffffffffffffffe
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rcx
lea r15, [rcx + rax*8]
mov qword [rsp + 0x70], r15
mov rcx, r12
mov qword [rsp + 0x38], rdx
lea r12, [rdx + rax*8]
mov qword [rsp + 0x78], r12
mov qword [rsp + 0x20], rcx
lea rdx, [rsp + 0x80]
lea r8, [rsp + 0xa0]
lea r9, [rsp + 0x90]
mov rcx, rdi
call fcn.140090ab0
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x70]
lea r8, [rsp + 0xc0]
lea r9, [rsp + 0xb0]
lea rdx, [rsp + 0x80]
call fcn.140090ab0
mov qword [rsp + 0x20], r13
mov rcx, rsi
lea rdx, [rsp + 0x80]
mov r8, rbx
mov rbx, qword [rsp + 0x30]
mov r9, r14
call fcn.140090ab0
test rbx, rbx
je 0x140090ec0
xor eax, eax
nop word [rax + rax]
mov rcx, qword [rsi]
mov rdx, qword [rsi + 8]
mov rdx, qword [rdx + rax*8]
mov rcx, qword [rcx + rax*8]
mov r8, qword [rdi]
mov r9, qword [rdi + 8]
mov r10, qword [r8 + rax*8]
mov r11, qword [r9 + rax*8]
xor r11, rdx
xor rdx, r10
xor r10, rcx
or r10, r11
xor r11, rcx
and r11, rdx
mov qword [r8 + rax*8], r11
mov qword [r9 + rax*8], r10
inc rax
cmp rbx, rax
jne 0x140090e80
test rbp, rbp
je 0x140090f5c
mov rax, qword [rsp + 0x28]
lea rax, [rax + r13*8]
mov rcx, qword [rsp + 0x38]
lea rcx, [rcx + r13*8]
xor edx, edx
nop dword [rax]
mov r8, qword [r12 + rdx*8]
mov r9, qword [r15 + rdx*8]
mov r10, qword [rdi]
mov r11, qword [rdi + 8]
mov rsi, qword [r10 + rdx*8]
mov rbx, qword [r11 + rdx*8]
xor rbx, r8
xor r8, rsi
xor rsi, r9
or rsi, rbx
xor rbx, r9
and rbx, r8
mov qword [r10 + rdx*8], rbx
mov qword [r11 + rdx*8], rsi
inc rdx
cmp rbp, rdx
jne 0x140090ee0
xor edx, edx
nop dword [rax + rax]
mov r8, qword [rdi]
mov r9, qword [rdi + 8]
mov r9, qword [r9 + rdx*8]
mov r8, qword [r8 + rdx*8]
mov r10, qword [rcx + rdx*8]
mov r11, qword [rax + rdx*8]
xor r11, r9
mov rsi, r10
xor rsi, r8
and rsi, r11
mov qword [rax + rdx*8], rsi
xor r10, r9
xor r11, r8
or r11, r10
mov qword [rcx + rdx*8], r11
inc rdx
cmp rbp, rdx
jne 0x140090f20
mov rcx, qword [rsp + 0xd0]
xor rcx, rsp
call fcn.140265fe0
nop
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret