Function at 0x14007d240
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], rbx
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xc0
mov rbp, qword [rcx]
mov r14, rcx
mov r12, qword [rcx + 8]
mov rsi, qword [rcx + 0x10]
mov r15, qword [rsp + 0x150]
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x78], xmm9
mov rax, qword [rsp + 0x120]
movaps xmmword [rsp + 0x70], xmm10
movaps xmm10, xmm3
mov qword [rsp + 0x58], rbp
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x100], rsi
cmp qword [rax], rbp
jge 0x14007d2b7
mov r8, r15
mov rdx, rbp
mov rcx, rax
call fcn.14003e440
mov rbx, qword [rsp + 0x148]
lea rdx, [r12 + rbp]
mov rdi, qword [rsp + 0x128]
test rdx, rdx
jle 0x14007d2f4
test r12, r12
jle 0x14007d2f4
cmp qword [rdi], rdx
jl 0x14007d2e0
cmp qword [rdi + 8], r12
jge 0x14007d2f4
mov r9, r15
mov r8, r12
mov rcx, rdi
call fcn.14003e950
lea r8, [rsi + r12]
jmp 0x14007d2fd
lea r8, [rsi + r12]
test r12, r12
jle 0x14007d31b
test r8, r8
jle 0x14007d31b
cmp qword [rbx], r12
jl 0x14007d30d
cmp qword [rbx + 8], r8
jge 0x14007d31b
mov r9, r15
mov rdx, r12
mov rcx, rbx
call fcn.14003e950
movsd xmm6, qword [0x140216560]
lea r13, [rbp - 1]
xor esi, esi
xorps xmm9, xmm9
test r13, r13
js 0x14007d571
mov rbp, qword [rsp + 0x120]
lea r15, [r12 - 1]
movaps xmmword [rsp + 0xa0], xmm7
movaps xmmword [rsp + 0x90], xmm8
movsd xmm8, qword [0x140215ec0]
nop dword [rax]
mov rax, qword [r14 + 0xe0]
movaps xmm7, xmm8
cmp byte [rsi + rax], 0
je 0x14007d3ad
mov rax, qword [rsp + 0x108]
mov rax, qword [rax + 0x38]
movsd xmm0, qword [rax + rsi*8]
movsd qword [rsp + 0x120], xmm0
movsd qword [rsp + 0x40], xmm9
movsd xmm1, qword [rsp + 0x120]
movsd xmm0, qword [rsp + 0x40]
ucomisd xmm1, xmm0
jp 0x14007d3ad
jne 0x14007d3ad
movaps xmm7, xmm9
lea rax, [rsp + 0x68]
movaps xmm1, xmm10
lea r9, [rsp + 0x50]
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x48]
movaps xmm0, xmm7
call fcn.14003b7d0
movsd xmm4, qword [rsp + 0x48]
xor edx, edx
movsd xmm3, qword [rsp + 0x50]
movaps xmm1, xmm4
mov rax, qword [rbp + 0x38]
movaps xmm0, xmm3
mulsd xmm1, xmm7
mulsd xmm0, xmm10
addsd xmm1, xmm0
movsd qword [rax + rsi*8], xmm1
test r15, r15
js 0x14007d54f
cmp r12, 4
jl 0x14007d50a
movaps xmm5, xmm3
lea r8, [r15 - 3]
xorps xmm5, xmm6
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [r14 + 0x60]
movaps xmm0, xmm4
movaps xmm1, xmm5
mov rcx, qword [rax + rsi*8]
mov rax, qword [rdi + 0x48]
movsd xmm2, qword [rcx + rdx*8]
mov rcx, qword [rax + rsi*8]
mulsd xmm0, xmm2
mulsd xmm1, xmm2
movsd qword [rcx + rdx*8], xmm0
movaps xmm0, xmm4
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + rdx*8]
movsd qword [rcx + rsi*8], xmm1
movaps xmm1, xmm5
mov rax, qword [r14 + 0x60]
mov rcx, qword [rax + rsi*8]
mov rax, qword [rdi + 0x48]
movsd xmm2, qword [rcx + rdx*8 + 8]
mov rcx, qword [rax + rsi*8]
mulsd xmm0, xmm2
mulsd xmm1, xmm2
movsd qword [rcx + rdx*8 + 8], xmm0
movaps xmm0, xmm4
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + rdx*8 + 8]
movsd qword [rcx + rsi*8], xmm1
movaps xmm1, xmm5
mov rax, qword [r14 + 0x60]
mov rcx, qword [rax + rsi*8]
mov rax, qword [rdi + 0x48]
movsd xmm2, qword [rcx + rdx*8 + 0x10]
mov rcx, qword [rax + rsi*8]
mulsd xmm0, xmm2
mulsd xmm1, xmm2
movsd qword [rcx + rdx*8 + 0x10], xmm0
movaps xmm0, xmm4
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + rdx*8 + 0x10]
movsd qword [rcx + rsi*8], xmm1
movaps xmm1, xmm5
mov rax, qword [r14 + 0x60]
mov rcx, qword [rax + rsi*8]
mov rax, qword [rdi + 0x48]
movsd xmm2, qword [rcx + rdx*8 + 0x18]
mov rcx, qword [rax + rsi*8]
mulsd xmm0, xmm2
mulsd xmm1, xmm2
movsd qword [rcx + rdx*8 + 0x18], xmm0
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + rdx*8 + 0x18]
add rdx, 4
movsd qword [rcx + rsi*8], xmm1
cmp rdx, r8
jle 0x14007d420
cmp rdx, r15
jg 0x14007d54f
xorps xmm3, xmm6
mov rax, qword [r14 + 0x60]
movaps xmm0, xmm4
movaps xmm1, xmm3
mov rcx, qword [rax + rsi*8]
mov rax, qword [rdi + 0x48]
movsd xmm2, qword [rcx + rdx*8]
mov rcx, qword [rax + rsi*8]
mulsd xmm0, xmm2
mulsd xmm1, xmm2
movsd qword [rcx + rdx*8], xmm0
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + rdx*8]
inc rdx
movsd qword [rcx + rsi*8], xmm1
cmp rdx, r15
jle 0x14007d512
inc rsi
cmp rsi, r13
jle 0x14007d360
movaps xmm8, xmmword [rsp + 0x90]
movaps xmm7, xmmword [rsp + 0xa0]
mov rbp, qword [rsp + 0x58]
mov r13, qword [rsp + 0x100]
lea rsi, [r12 - 1]
xor r9d, r9d
test rsi, rsi
js 0x14007d896
lea r10, [r13 - 1]
nop
mov r8, rbp
cmp rbp, r10
jg 0x14007d660
mov rax, r10
sub rax, rbp
inc rax
cmp rax, 4
jl 0x14007d640
lea r11, [r10 - 3]
nop dword [rax]
nop word [rax + rax]
mov rax, qword [r14 + 0x60]
mov rdx, qword [rax + r8*8]
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + r9*8]
mov rax, qword [rdx + r9*8]
mov qword [rcx + r8*8], rax
mov rax, qword [r14 + 0x60]
mov rdx, qword [rax + r8*8 + 8]
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + r9*8]
mov rax, qword [rdx + r9*8]
mov qword [rcx + r8*8 + 8], rax
mov rax, qword [r14 + 0x60]
mov rdx, qword [rax + r8*8 + 0x10]
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + r9*8]
mov rax, qword [rdx + r9*8]
mov qword [rcx + r8*8 + 0x10], rax
mov rax, qword [r14 + 0x60]
mov rdx, qword [rax + r8*8 + 0x18]
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + r9*8]
mov rax, qword [rdx + r9*8]
mov qword [rcx + r8*8 + 0x18], rax
add r8, 4
cmp r8, r11
jle 0x14007d5c0
cmp r8, r10
jg 0x14007d660
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [r14 + 0x60]
mov rdx, qword [rax + r8*8]
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + r9*8]
mov rax, qword [rdx + r9*8]
mov qword [rcx + r8*8], rax
inc r8
cmp r8, r10
jle 0x14007d640
inc r9
cmp r9, rsi
jle 0x14007d590
lea r15, [r12 - 1]
xor r8d, r8d
mov r12, qword [rsp + 0x108]
lea r10, [rbp - 1]
mov rax, qword [r14 + 0xe0]
lea rcx, [r8 + rbp]
cmp byte [rcx + rax], 0
je 0x14007d7b5
mov rax, qword [r12 + 0x38]
lea rcx, [rax + rbp*8]
movsd xmm0, qword [rcx + r8*8]
movsd qword [rsp + 0x120], xmm0
movsd qword [rsp + 0x58], xmm9
movsd xmm1, qword [rsp + 0x120]
movsd xmm0, qword [rsp + 0x58]
ucomisd xmm1, xmm0
jp 0x14007d7b5
jne 0x14007d7b5
lea r9, [r13 - 1]
xor edx, edx
xor esi, esi
test r9, r9
js 0x14007d745
cmp r13, 4
jl 0x14007d731
lea r11, [r9 - 3]
nop word [rax + rax]
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + r8*8]
mov qword [rcx + rdx*8], rsi
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + r8*8]
mov qword [rcx + rdx*8 + 8], rsi
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + r8*8]
mov qword [rcx + rdx*8 + 0x10], rsi
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + r8*8]
mov qword [rcx + rdx*8 + 0x18], rsi
add rdx, 4
cmp rdx, r11
jle 0x14007d6f0
cmp rdx, r9
jg 0x14007d745
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + r8*8]
mov qword [rcx + rdx*8], rsi
inc rdx
cmp rdx, r9
jle 0x14007d731
mov rdx, rsi
test r10, r10
js 0x14007d7b5
cmp rbp, 4
jl 0x14007d7a1
lea r9, [r10 - 3]
nop word [rax + rax]
mov rax, qword [rdi + 0x48]
mov rcx, qword [rax + rdx*8]
mov qword [rcx + r8*8], rsi
mov rax, qword [rdi + 0x48]
mov rcx, qword [rax + rdx*8 + 8]
mov qword [rcx + r8*8], rsi
mov rax, qword [rdi + 0x48]
mov rcx, qword [rax + rdx*8 + 0x10]
mov qword [rcx + r8*8], rsi
mov rax, qword [rdi + 0x48]
mov rcx, qword [rax + rdx*8 + 0x18]
add rdx, 4
mov qword [rcx + r8*8], rsi
cmp rdx, r9
jle 0x14007d760
cmp rdx, r10
jg 0x14007d7b5
mov rax, qword [rdi + 0x48]
mov rcx, qword [rax + rdx*8]
inc rdx
mov qword [rcx + r8*8], rsi
cmp rdx, r10
jle 0x14007d7a1
inc r8
cmp r8, r15
jle 0x14007d680
mov r12, qword [rsp + 0x60]
lea r10, [r13*8]
mov r15, qword [rsp + 0x110]
mov r14, r13
neg r14
mov rsi, r12
lea r9, [r12 - 1]
xor edx, edx
mov r8, r10
cmp r12, 4
jl 0x14007d851
lea r11, [r9 - 3]
nop dword [rax]
nop word [rax + rax]
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + rdx*8]
mov qword [r10 + rcx], 0
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + rdx*8 + 8]
mov qword [r10 + rcx], 0
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + rdx*8 + 0x10]
mov qword [r10 + rcx], 0
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + rdx*8 + 0x18]
add rdx, 4
mov qword [r10 + rcx], 0
cmp rdx, r11
jle 0x14007d800
cmp rdx, r9
jg 0x14007d869
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + rdx*8]
inc rdx
mov qword [r8 + rcx], 0
cmp rdx, r9
jle 0x14007d851
mov rax, qword [r15 + 0x38]
lea rcx, [r10 + r14*8]
movaps xmm0, xmm10
mulsd xmm0, qword [rcx + rax]
mov rax, qword [rbx + 0x48]
mov rcx, qword [rcx + rax]
movsd qword [r10 + rcx], xmm0
add r10, 8
sub rsi, 1
jne 0x14007d7e4
movaps xmm10, xmmword [rsp + 0x70]
lea rsi, [r13 + 1]
mov r13, qword [rsp + 0x130]
add rsi, r12
mov r14, qword [rsp + 0x150]
cmp qword [r13], rsi
jge 0x14007d8c7
mov r8, r14
mov rdx, rsi
mov rcx, r13
call fcn.14003e440
mov r15, qword [rsp + 0x138]
cmp qword [r15], rsi
jge 0x14007d8e2
mov r8, r14
mov rdx, rsi
mov rcx, r15
call fcn.14003e440
mov r14, qword [rsp + 0x140]
cmp qword [r14], rsi
jge 0x14007d902
mov r8, qword [rsp + 0x150]
mov rdx, rsi
mov rcx, r14
call fcn.14003e440
mov rax, qword [rsp + 0x150]
mov r9, r13
mov r8, qword [rsp + 0x100]
mov rdx, r12
mov qword [rsp + 0x30], rax
add r8, r12
mov qword [rsp + 0x28], r14
mov rcx, rbx
mov qword [rsp + 0x20], r15
call fcn.14004d760
xor r8d, r8d
lea rsi, [r12 - 1]
test rsi, rsi
js 0x14007db60
lea r9, [r12 - 1]
lea r11, [r9 + 1]
nop dword [rax]
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + r8*8]
movsd xmm0, qword [rcx + r8*8]
movsd qword [rsp + 0x120], xmm0
movsd qword [rsp + 0x130], xmm9
movsd xmm1, qword [rsp + 0x120]
movsd xmm0, qword [rsp + 0x130]
comisd xmm0, xmm1
jbe 0x14007da2f
mov rdx, r8
cmp r11, 4
jl 0x14007da10
lea r10, [r9 - 3]
nop word [rax + rax]
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + rdx*8]
movsd xmm0, qword [rcx + r8*8]
xorps xmm0, xmm6
movsd qword [rcx + r8*8], xmm0
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + rdx*8 + 8]
movsd xmm0, qword [rcx + r8*8]
xorps xmm0, xmm6
movsd qword [rcx + r8*8], xmm0
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + rdx*8 + 0x10]
movsd xmm0, qword [rcx + r8*8]
xorps xmm0, xmm6
movsd qword [rcx + r8*8], xmm0
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + rdx*8 + 0x18]
add rdx, 4
movsd xmm0, qword [rcx + r8*8]
xorps xmm0, xmm6
movsd qword [rcx + r8*8], xmm0
cmp rdx, r10
jle 0x14007d9a0
cmp rdx, r9
jg 0x14007da2f
nop dword [rax]
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + rdx*8]
inc rdx
movsd xmm0, qword [rcx + r8*8]
xorps xmm0, xmm6
movsd qword [rcx + r8*8], xmm0
cmp rdx, r9
jle 0x14007da10
inc r8
dec r11
cmp r8, rsi
jle 0x14007d950
lea r13, [r12 - 1]
xor r9d, r9d
nop word [rax + rax]
xor r10d, r10d
test r9, r9
js 0x14007db54
lea rsi, [r9 + 1]
cmp rsi, 4
jl 0x14007db30
mov r14, 0xffffffffffffffff
lea r11, [rbp*8 + 0x18]
sub r14, rbp
mov r15, rbp
mov r12, 0xfffffffffffffffd
shl r14, 3
neg r15
sub r12, rbp
shr rsi, 2
lea r10, [rsi*4]
nop dword [rax]
mov rax, qword [rbx + 0x48]
lea r8, [r11 + r12*8]
lea r11, [r11 + 0x20]
mov rdx, qword [rax + r9*8]
mov rax, qword [rdi + 0x48]
mov rcx, qword [rax + r11 - 0x38]
mov rax, qword [r8 + rdx]
mov qword [rcx + r9*8], rax
mov rax, qword [rbx + 0x48]
mov rdx, qword [rax + r9*8]
mov rax, qword [rdi + 0x48]
mov rcx, qword [rax + r11 - 0x30]
mov rax, qword [rdx + r8 + 8]
mov qword [rcx + r9*8], rax
mov rax, qword [rbx + 0x48]
mov rdx, qword [rax + r9*8]
mov rax, qword [rdi + 0x48]
add rdx, r14
mov rcx, qword [rax + r11 - 0x28]
mov rax, qword [rdx + r11 - 0x20]
mov qword [rcx + r9*8], rax
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + r9*8]
mov rax, qword [rdi + 0x48]
lea rdx, [rcx + r15*8]
mov rcx, qword [rax + r11 - 0x20]
mov rax, qword [rdx + r11 - 0x20]
mov qword [rcx + r9*8], rax
sub rsi, 1
jne 0x14007daa0
cmp r10, r9
jg 0x14007db54
nop dword [rax]
nop word [rax + rax]
mov rax, qword [rbx + 0x48]
mov r8, qword [rax + r9*8]
mov rax, qword [rdi + 0x48]
lea rcx, [rax + rbp*8]
mov rax, qword [r8 + r10*8]
mov rdx, qword [rcx + r10*8]
inc r10
mov qword [rdx + r9*8], rax
cmp r10, r9
jle 0x14007db30
inc r9
cmp r9, r13
jle 0x14007da50
lea r11, [rsp + 0xc0]
mov rbx, qword [r11 + 0x58]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm9, xmmword [r11 - 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret