Function at 0x1401249c0
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov dword [rax + 0x18], r8d
mov dword [rax + 0x10], edx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x70
mov qword [rax - 0x70], 0xfffffffffffffffe
mov qword [rax + 8], rbx
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
mov rsi, r9
mov r14d, ecx
xor edi, edi
test r9, r9
je 0x140125348
test ecx, ecx
jle 0x140125348
test edx, edx
jle 0x140125348
test r8d, r8d
jle 0x140125348
lea ebp, [rdx*4]
mov dword [rsp + 0x28], ebp
mov eax, ebp
imul eax, r8d
mov dword [rsp + 0x20], eax
lea ebx, [rcx + rcx]
lea eax, [rbx + 1]
mov dword [rsp + 0xc8], eax
movsxd r12, eax
mov eax, 8
mul r12
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.140160c3c
mov r13, rax
mov qword [rsp + 0x30], rax
movsxd r8, ebx
add r8, 8
xor edx, edx
mov rcx, rax
call fcn.1401afc90
mov eax, dword [0x1402ba2e0]
test al, 1
jne 0x140124aa2
or eax, 1
mov dword [0x1402ba2e0], eax
movsd xmm0, qword [0x140222ec8]
call fcn.1401cdc58
movaps xmm6, xmm0
movsd qword [0x1402ba2d8], xmm0
jmp 0x140124aaa
movsd xmm6, qword [0x1402ba2d8]
movd xmm0, r14d
cvtdq2pd xmm0, xmm0
divsd xmm0, qword [0x140218fc0]
movaps xmm7, xmm0
addsd xmm7, xmm0
mulsd xmm7, xmm0
mulsd xmm6, xmm0
mov r15d, r14d
neg r15d
mov dword [rsp + 0x24], r15d
mov ebx, r15d
cmp r15d, r14d
jg 0x140124b22
mov rbp, r13
movsd xmm8, qword [0x14024ae80]
nop dword [rax]
mov eax, ebx
imul eax, ebx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
divsd xmm0, xmm7
xorps xmm0, xmm8
call fcn.1401cd860
divsd xmm0, xmm6
movsd qword [rbp], xmm0
inc ebx
lea rbp, [rbp + 8]
cmp ebx, r14d
jle 0x140124af0
mov ebp, dword [rsp + 0x28]
xorps xmm2, xmm2
mov rcx, rdi
cmp r12, 4
jl 0x140124b6d
lea rax, [r13 + 0x10]
lea rdx, [r12 - 4]
shr rdx, 2
inc rdx
lea rcx, [rdx*4]
nop word [rax + rax]
addsd xmm2, qword [rax - 0x10]
addsd xmm2, qword [rax - 8]
addsd xmm2, qword [rax]
addsd xmm2, qword [rax + 8]
add rax, 0x20
sub rdx, 1
jne 0x140124b50
cmp rcx, r12
jge 0x140124b81
addsd xmm2, qword [r13 + rcx*8]
inc rcx
cmp rcx, r12
jl 0x140124b72
unpcklpd xmm2, xmm2
movaps xmm3, xmm2
unpcklpd xmm3, xmm3
movaps xmm1, xmm2
subsd xmm1, qword [0x14024ae68]
andps xmm1, xmmword [0x1401fbb90]
movsd xmm0, qword [0x140214658]
comisd xmm0, xmm1
jbe 0x140124bc2
test r13, r13
je 0x140125348
mov rcx, r13
call fcn.1401606e8
jmp 0x140125348
mov edx, edi
mov ecx, dword [rsp + 0xc8]
test ecx, ecx
jle 0x140124c2e
cmp ecx, 8
jb 0x140124c2e
mov eax, ecx
and eax, 0x80000007
jge 0x140124be4
dec eax
or eax, 0xfffffff8
inc eax
sub ecx, eax
movsxd r8, ecx
mov rcx, rdi
lea rax, [r13 + 0x20]
movups xmm0, xmmword [rax - 0x20]
divpd xmm0, xmm3
movups xmmword [rax - 0x20], xmm0
movups xmm0, xmmword [rax - 0x10]
divpd xmm0, xmm3
movups xmmword [rax - 0x10], xmm0
movups xmm1, xmmword [rax]
divpd xmm1, xmm3
movups xmmword [rax], xmm1
movups xmm0, xmmword [rax + 0x10]
divpd xmm0, xmm3
movups xmmword [rax + 0x10], xmm0
add edx, 8
add rcx, 8
lea rax, [rax + 0x40]
cmp rcx, r8
jl 0x140124bf0
movsxd rcx, edx
cmp rcx, r12
jge 0x140124c9f
mov rax, r12
sub rax, rcx
cmp rax, 4
jl 0x140124c80
lea rax, [r13 + 0x10]
lea rax, [rax + rcx*8]
mov rdx, r12
sub rdx, rcx
sub rdx, 4
shr rdx, 2
inc rdx
lea rcx, [rcx + rdx*4]
nop
movups xmm0, xmmword [rax - 0x10]
divpd xmm0, xmm2
movups xmmword [rax - 0x10], xmm0
movups xmm0, xmmword [rax]
divpd xmm0, xmm2
movups xmmword [rax], xmm0
lea rax, [rax + 0x20]
sub rdx, 1
jne 0x140124c60
cmp rcx, r12
jge 0x140124c9f
movsd xmm0, qword [r13 + rcx*8]
divsd xmm0, xmm2
movsd qword [r13 + rcx*8], xmm0
inc rcx
cmp rcx, r12
jl 0x140124c85
mov eax, dword [rsp + 0x20]
lea r12, [rax + rax*2]
shl r12, 3
mov rcx, r12
call fcn.14015cd30
mov rbx, rax
test rax, rax
je 0x140124bac
mov r8, r12
xor edx, edx
mov rcx, rax
call fcn.1401afc90
mov ecx, edi
mov dword [rsp + 0x20], ecx
mov edx, edi
mov dword [rsp + 0xc8], edx
mov eax, dword [rsp + 0xb8]
mov r12d, edi
nop word [rax + rax]
mov r8, rdi
mov r10d, r15d
cmp r15d, r14d
jg 0x140125033
mov eax, r14d
sub eax, r15d
inc eax
cmp eax, 4
jl 0x140124f63
mov r15d, dword [rsp + 0xb8]
dec r15d
mov eax, ecx
mov r9d, edx
imul r9d, ebp
shr rax, 2
lea rdx, [rax + rax*2]
lea ebp, [r12 + 2]
add ebp, r10d
lea r8, [r13 + 0x10]
mov eax, r14d
sub eax, r10d
sub eax, 3
shr eax, 2
inc eax
mov r11d, eax
lea r10d, [r10 + rax*4]
lea rax, [rax*4]
mov qword [rsp + 0x30], rax
nop word [rax + rax]
lea eax, [rbp - 2]
mov ecx, edi
test eax, eax
cmovns ecx, eax
mov eax, r15d
cmp ecx, r15d
cmovl eax, ecx
lea ecx, [r9 + rax*4]
shr rcx, 2
movzx eax, byte [rsi + rcx*4 + 2]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [r8 - 0x10]
addsd xmm0, qword [rbx + rdx*8]
movsd qword [rbx + rdx*8], xmm0
mov eax, dword [rsi + rcx*4]
shr eax, 8
movzx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [r8 - 0x10]
addsd xmm0, qword [rbx + rdx*8 + 8]
movsd qword [rbx + rdx*8 + 8], xmm0
movzx eax, byte [rsi + rcx*4]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
mulsd xmm1, qword [r8 - 0x10]
addsd xmm1, qword [rbx + rdx*8 + 0x10]
movsd qword [rbx + rdx*8 + 0x10], xmm1
lea eax, [rbp - 1]
mov ecx, edi
test eax, eax
cmovns ecx, eax
mov eax, r15d
cmp ecx, r15d
cmovl eax, ecx
lea ecx, [r9 + rax*4]
shr rcx, 2
movzx eax, byte [rsi + rcx*4 + 2]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [r8 - 8]
addsd xmm0, qword [rbx + rdx*8]
movsd qword [rbx + rdx*8], xmm0
mov eax, dword [rsi + rcx*4]
shr eax, 8
movzx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [r8 - 8]
addsd xmm0, qword [rbx + rdx*8 + 8]
movsd qword [rbx + rdx*8 + 8], xmm0
movzx eax, byte [rsi + rcx*4]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
mulsd xmm1, qword [r8 - 8]
addsd xmm1, qword [rbx + rdx*8 + 0x10]
movsd qword [rbx + rdx*8 + 0x10], xmm1
mov ecx, edi
test ebp, ebp
cmovns ecx, ebp
mov eax, r15d
cmp ecx, r15d
cmovl eax, ecx
lea ecx, [r9 + rax*4]
shr rcx, 2
movzx eax, byte [rsi + rcx*4 + 2]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [r8]
addsd xmm0, qword [rbx + rdx*8]
movsd qword [rbx + rdx*8], xmm0
mov eax, dword [rsi + rcx*4]
shr eax, 8
movzx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [r8]
addsd xmm0, qword [rbx + rdx*8 + 8]
movsd qword [rbx + rdx*8 + 8], xmm0
movzx eax, byte [rsi + rcx*4]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
mulsd xmm1, qword [r8]
addsd xmm1, qword [rbx + rdx*8 + 0x10]
movsd qword [rbx + rdx*8 + 0x10], xmm1
lea eax, [rbp + 1]
mov ecx, edi
test eax, eax
cmovns ecx, eax
mov eax, r15d
cmp ecx, r15d
cmovl eax, ecx
lea ecx, [r9 + rax*4]
shr rcx, 2
movzx eax, byte [rsi + rcx*4 + 2]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [r8 + 8]
addsd xmm0, qword [rbx + rdx*8]
movsd qword [rbx + rdx*8], xmm0
mov eax, dword [rsi + rcx*4]
shr eax, 8
movzx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [r8 + 8]
addsd xmm0, qword [rbx + rdx*8 + 8]
movsd qword [rbx + rdx*8 + 8], xmm0
movzx eax, byte [rsi + rcx*4]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
mulsd xmm1, qword [r8 + 8]
addsd xmm1, qword [rbx + rdx*8 + 0x10]
movsd qword [rbx + rdx*8 + 0x10], xmm1
add r8, 0x20
add ebp, 4
sub r11, 1
jne 0x140124d60
mov ebp, dword [rsp + 0x28]
mov ecx, dword [rsp + 0x20]
mov r8, qword [rsp + 0x30]
mov edx, dword [rsp + 0xc8]
cmp r10d, r14d
jg 0x14012502c
mov r11d, dword [rsp + 0xb8]
dec r11d
mov r15d, edx
imul r15d, ebp
mov eax, ecx
shr rax, 2
lea rdx, [rax + rax*2]
lea r9d, [r10 + r12]
lea r8, [r8*8]
add r8, r13
mov eax, r14d
sub eax, r10d
inc eax
movsxd r10, eax
mov ecx, edi
test r9d, r9d
cmovns ecx, r9d
mov eax, r11d
cmp ecx, r11d
cmovl eax, ecx
lea ecx, [r15 + rax*4]
shr rcx, 2
movzx eax, byte [rsi + rcx*4 + 2]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [r8]
addsd xmm0, qword [rbx + rdx*8]
movsd qword [rbx + rdx*8], xmm0
mov eax, dword [rsi + rcx*4]
shr eax, 8
movzx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [r8]
addsd xmm0, qword [rbx + rdx*8 + 8]
movsd qword [rbx + rdx*8 + 8], xmm0
movzx eax, byte [rsi + rcx*4]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
mulsd xmm1, qword [r8]
addsd xmm1, qword [rbx + rdx*8 + 0x10]
movsd qword [rbx + rdx*8 + 0x10], xmm1
add r8, 8
inc r9d
sub r10, 1
jne 0x140124fa2
mov ecx, dword [rsp + 0x20]
mov eax, dword [rsp + 0xb8]
add ecx, 4
mov dword [rsp + 0x20], ecx
inc r12d
cmp r12d, eax
mov r15d, dword [rsp + 0x24]
mov edx, dword [rsp + 0xc8]
jl 0x140124cf0
inc edx
mov dword [rsp + 0xc8], edx
mov r8d, dword [rsp + 0xc0]
cmp edx, r8d
jl 0x140124ce2
mov r15d, edi
mov dword [rsp + 0xc8], edi
movsd xmm6, qword [0x140218fe8]
nop
mov r12d, edi
mov eax, r15d
imul eax, ebp
mov dword [rsp + 0x20], eax
nop dword [rax]
lea r9d, [r12*4]
add eax, r9d
mov dword [rsp + 0x28], eax
xorps xmm3, xmm3
xorps xmm4, xmm4
xorps xmm5, xmm5
mov rcx, rdi
mov edx, dword [rsp + 0x24]
mov r10d, edx
cmp edx, r14d
jg 0x1401252be
mov eax, r14d
sub eax, edx
inc eax
cmp eax, 4
jl 0x140125248
lea edx, [r8 - 1]
lea r8d, [r10 + 2]
add r8d, r15d
lea r11, [r13 + 0x10]
mov eax, r14d
sub eax, r10d
sub eax, 3
shr eax, 2
inc eax
mov r15d, eax
lea r10d, [r10 + rax*4]
lea rax, [rax*4]
mov qword [rsp + 0x30], rax
nop dword [rax]
lea eax, [r8 - 2]
mov ecx, edi
test eax, eax
cmovns ecx, eax
movsd xmm2, qword [r11 - 0x10]
mov eax, edx
cmp ecx, edx
cmovl eax, ecx
imul eax, ebp
add eax, r9d
shr rax, 2
lea rcx, [rax + rax*2]
movaps xmm0, xmm2
mulsd xmm0, qword [rbx + rcx*8]
addsd xmm3, xmm0
movaps xmm1, xmm2
mulsd xmm1, qword [rbx + rcx*8 + 8]
addsd xmm4, xmm1
mulsd xmm2, qword [rbx + rcx*8 + 0x10]
addsd xmm5, xmm2
lea eax, [r8 - 1]
mov ecx, edi
test eax, eax
cmovns ecx, eax
movsd xmm2, qword [r11 - 8]
mov eax, edx
cmp ecx, edx
cmovl eax, ecx
imul eax, ebp
add eax, r9d
shr rax, 2
lea rcx, [rax + rax*2]
movaps xmm0, xmm2
mulsd xmm0, qword [rbx + rcx*8]
addsd xmm3, xmm0
movaps xmm1, xmm2
mulsd xmm1, qword [rbx + rcx*8 + 8]
addsd xmm4, xmm1
mulsd xmm2, qword [rbx + rcx*8 + 0x10]
addsd xmm5, xmm2
mov ecx, edi
test r8d, r8d
cmovns ecx, r8d
movsd xmm2, qword [r11]
mov eax, edx
cmp ecx, edx
cmovl eax, ecx
imul eax, ebp
add eax, r9d
shr rax, 2
lea rcx, [rax + rax*2]
movaps xmm0, xmm2
mulsd xmm0, qword [rbx + rcx*8]
addsd xmm3, xmm0
movaps xmm1, xmm2
mulsd xmm1, qword [rbx + rcx*8 + 8]
addsd xmm4, xmm1
mulsd xmm2, qword [rbx + rcx*8 + 0x10]
addsd xmm5, xmm2
lea eax, [r8 + 1]
mov ecx, edi
test eax, eax
cmovns ecx, eax
mov eax, edx
cmp ecx, edx
cmovl eax, ecx
imul eax, ebp
add eax, r9d
movsd xmm2, qword [r11 + 8]
shr rax, 2
lea rcx, [rax + rax*2]
movaps xmm0, xmm2
mulsd xmm0, qword [rbx + rcx*8]
addsd xmm3, xmm0
movaps xmm1, xmm2
mulsd xmm1, qword [rbx + rcx*8 + 8]
addsd xmm4, xmm1
mulsd xmm2, qword [rbx + rcx*8 + 0x10]
addsd xmm5, xmm2
add r11, 0x20
add r8d, 4
sub r15, 1
jne 0x140125100
mov rcx, qword [rsp + 0x30]
mov r15d, dword [rsp + 0xc8]
mov r8d, dword [rsp + 0xc0]
cmp r10d, r14d
jg 0x1401252be
lea r11d, [r8 - 1]
lea edx, [r10 + r15]
lea r8, [rcx*8]
add r8, r13
mov eax, r14d
sub eax, r10d
inc eax
movsxd r10, eax
mov eax, edi
test edx, edx
cmovns eax, edx
mov ecx, r11d
cmp eax, r11d
cmovl ecx, eax
imul ecx, ebp
lea eax, [r9 + rcx]
movsd xmm2, qword [r8]
shr rax, 2
lea rcx, [rax + rax*2]
movaps xmm0, xmm2
mulsd xmm0, qword [rbx + rcx*8]
addsd xmm3, xmm0
movaps xmm1, xmm2
mulsd xmm1, qword [rbx + rcx*8 + 8]
addsd xmm4, xmm1
mulsd xmm2, qword [rbx + rcx*8 + 0x10]
addsd xmm5, xmm2
add r8, 8
inc edx
sub r10, 1
jne 0x14012526b
movaps xmm0, xmm6
minsd xmm0, xmm3
movaps xmm1, xmm6
minsd xmm1, xmm4
movaps xmm2, xmm6
minsd xmm2, xmm5
cvttsd2si eax, xmm0
movzx edx, al
shl edx, 8
cvttsd2si eax, xmm1
movzx ecx, al
or edx, ecx
shl edx, 8
cvttsd2si eax, xmm2
movzx ecx, al
or edx, ecx
mov eax, dword [rsp + 0x28]
shr rax, 2
mov dword [rsi + rax*4], edx
inc r12d
cmp r12d, dword [rsp + 0xb8]
mov eax, dword [rsp + 0x20]
mov r8d, dword [rsp + 0xc0]
jl 0x140125090
inc r15d
mov dword [rsp + 0xc8], r15d
cmp r15d, r8d
jl 0x140125080
mov edi, 1
test r13, r13
je 0x140125340
mov rcx, r13
call fcn.1401606e8
mov rcx, rbx
call fcn.14015cd50
mov eax, edi
mov rbx, qword [rsp + 0xb0]
movaps xmm6, xmmword [rsp + 0x60]
movaps xmm7, xmmword [rsp + 0x50]
movaps xmm8, xmmword [rsp + 0x40]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret