Function at 0x1800270f8
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r12
push r13
push r14
push r15
sub rsp, 0xd0
lea rbp, [rsp + 0x20]
mov qword [rbp + 0xe0], rbx
mov qword [rbp + 0xe8], rsi
mov qword [rbp + 0xf0], rdi
movaps xmmword [rbp + 0xa0], xmm6
movaps xmmword [rbp + 0x90], xmm7
movaps xmmword [rbp + 0x80], xmm8
movaps xmmword [rbp + 0x70], xmm9
mov rax, qword [0x180071020]
xor rax, rbp
mov qword [rbp + 0x68], rax
movsxd r12, r8d
mov eax, 2
mov dword [rbp + 0x34], r9d
mov r15d, r9d
mov qword [rbp + 0x10], rdx
mov rbx, rdx
mov qword [rbp + 0x38], rcx
mov rdi, rcx
cmp r12d, eax
jl 0x180027c22
mov rax, qword [rcx + 0x38]
lea r13d, [r12 - 1]
movss xmm6, dword [rbp + 0x108]
xor esi, esi
cmp byte [rbp + 0x100], sil
movss xmm7, dword [0x18006af10]
movss xmm8, dword [rax]
cmovne r13d, r12d
movss xmm9, dword [rax + 4]
lea eax, [rsi + 1]
comiss xmm6, xmm7
movsxd r14, r13d
mov dword [rbp + 0x28], r13d
mov qword [rbp + 8], r14
seta cl
mov byte [rbp], cl
test byte [rdi + 0x30], al
je 0x180027a38
movzx ebx, cl
mov eax, r9d
and eax, 0xffffff
mov dword [rbp + 0x30], eax
mov al, cl
mov rcx, rdi
lea r8d, [rbx + 3]
imul r8d, r12d
neg al
sbb edx, edx
and edx, 6
add edx, 0xc
mov dword [rbp + 0x2c], r8d
imul edx, r13d
call fcn.180026e14
lea eax, [rbx*2 + 3]
imul eax, r12d
movsxd rcx, eax
shl rcx, 3
lea rax, [rcx + 0xf]
cmp rax, rcx
ja 0x18002721a
movabs rax, 0xffffffffffffff0
and rax, 0xfffffffffffffff0
call fcn.18002e530
sub rsp, rax
mov rbx, r12
mov ecx, esi
lea r15, [rsp + 0x20]
lea r14, [r15 + r12*8]
mov qword [rbp + 0x20], r14
test r13d, r13d
jle 0x1800272c9
mov r13, qword [rbp + 0x10]
mov rdi, rsi
mov r14, qword [rbp + 8]
mov eax, ecx
lea ebx, [rcx + 1]
lea rcx, [rbp + 0x18]
lea r8, [rax*8]
mov eax, ebx
add r8, r13
cmp ebx, r12d
cmove eax, esi
cdqe
lea rdx, [rax*8]
add rdx, r13
call fcn.18000ebdc
movaps xmm1, xmm7
lea rcx, [rbp + 0x18]
call fcn.18002053c
movaps xmm1, xmm0
lea rcx, [rbp + 0x18]
call fcn.18000ec94
movss xmm0, dword [rbp + 0x18]
mov ecx, ebx
xorps xmm0, xmmword [0x18006b0a0]
movss xmm2, dword [rbp + 0x1c]
movss dword [r15 + rdi*8 + 4], xmm0
movss dword [r15 + rdi*8], xmm2
inc rdi
cmp rdi, r14
jl 0x18002724c
mov rdi, qword [rbp + 0x38]
mov rbx, r12
mov r14, qword [rbp + 0x20]
mov r13d, dword [rbp + 0x28]
mov al, byte [rbp + 0x100]
test al, al
jne 0x1800272e1
movsd xmm0, qword [r15 + rbx*8 - 0x10]
movsd qword [r15 + rbx*8 - 8], xmm0
cmp byte [rbp], sil
jne 0x1800275d8
test al, al
jne 0x1800273ab
movaps xmm2, xmm7
lea rcx, [rbp + 0x20]
mov rdx, r15
call fcn.18000eb94
mov r9, qword [rbp + 0x10]
lea rcx, [rbp + 8]
mov rdx, r9
mov r8, rax
call fcn.18000ebb4
movaps xmm2, xmm7
lea rcx, [rbp + 0x20]
mov rdx, r15
movsd xmm0, qword [rax]
movsd qword [r14], xmm0
call fcn.18000eb94
mov r8, rax
lea rcx, [rbp + 8]
mov rdx, r9
call fcn.18000ebdc
lea r10, [r15 + rbx*8]
movaps xmm2, xmm7
lea rdx, [r10 - 8]
lea rcx, [rbp + 0x20]
movsd xmm0, qword [rax]
lea r11, [r9 + rbx*8]
movsd qword [r14 + 8], xmm0
call fcn.18000eb94
mov r8, rax
lea rdx, [r11 - 8]
lea rcx, [rbp + 8]
call fcn.18000ebb4
lea ecx, [r12 + r12]
movaps xmm2, xmm7
movsxd r9, ecx
lea rdx, [r10 - 8]
lea rcx, [rbp + 0x20]
movsd xmm0, qword [rax]
movsd qword [r14 + r9*8 - 0x10], xmm0
call fcn.18000eb94
mov r8, rax
lea rdx, [r11 - 8]
lea rcx, [rbp + 8]
call fcn.18000ebdc
movsd xmm0, qword [rax]
movsd qword [r14 + r9*8 - 8], xmm0
mov eax, dword [rdi + 0x48]
mov r11d, esi
mov r10, qword [rbp + 0x10]
mov dword [rbp + 0x28], eax
test r13d, r13d
jle 0x180027525
mov ebx, eax
mov ecx, r11d
inc r11d
cmp r11d, r12d
mov r9d, r11d
cmove r9d, esi
jne 0x1800273da
mov eax, dword [rdi + 0x48]
jmp 0x1800273dd
lea eax, [rbx + 3]
mov dword [rbp], eax
lea rdx, [r15 + rcx*8]
movsxd rax, r9d
lea rcx, [rbp + 0x20]
lea r8, [r15 + rax*8]
call fcn.18000ebb4
movss xmm2, dword [0x18006aea8]
lea rcx, [rbp + 0x10]
mov rdx, rax
call fcn.18000eb94
movss xmm3, dword [rbp + 0x14]
movss xmm0, dword [rbp + 0x10]
mulss xmm3, xmm3
mulss xmm0, xmm0
addss xmm3, xmm0
comiss xmm3, dword [0x18006ae38]
jbe 0x180027443
movss xmm1, dword [0x18006afc8]
lea rcx, [rbp + 0x10]
movaps xmm0, xmm7
divss xmm0, xmm3
minss xmm1, xmm0
call fcn.18000ec94
movaps xmm1, xmm7
lea rcx, [rbp + 0x10]
call fcn.18000ec94
movsxd rcx, r9d
lea r8, [rbp + 0x10]
lea rdx, [r10 + rcx*8]
lea rcx, [rbp + 8]
call fcn.18000ebb4
lea ecx, [r9 + r9]
movsxd r9, ecx
lea r8, [rbp + 0x10]
lea rcx, [rbp + 0x38]
movsd xmm0, qword [rax]
movsd qword [r14 + r9*8], xmm0
call fcn.18000ebdc
mov edx, dword [rbp]
mov r8d, 2
movsd xmm0, qword [rax]
movsd qword [r14 + r9*8 + 8], xmm0
lea ecx, [r8 + rbx]
mov rax, qword [rdi + 0x58]
lea r9d, [r8 - 1]
mov word [rax], dx
mov rax, qword [rdi + 0x58]
mov word [rax + 2], bx
mov rax, qword [rdi + 0x58]
mov word [rax + 4], cx
mov rax, qword [rdi + 0x58]
mov word [rax + 6], cx
lea ecx, [r8 + rdx]
mov rax, qword [rdi + 0x58]
lea r8d, [r9 + rdx]
mov word [rax + 8], cx
lea ecx, [r9 + rbx]
mov rax, qword [rdi + 0x58]
mov word [rax + 0xa], dx
mov rax, qword [rdi + 0x58]
mov word [rax + 0xc], r8w
mov rax, qword [rdi + 0x58]
mov word [rax + 0xe], cx
lea ecx, [r9 + 0xf]
mov rax, qword [rdi + 0x58]
mov word [rcx + rax], bx
add rcx, 2
cmp rcx, 0x14
jl 0x1800274ed
mov rax, qword [rdi + 0x58]
mov ebx, edx
mov word [rax + 0x14], dx
mov rax, qword [rdi + 0x58]
mov word [rax + 0x16], r8w
add qword [rdi + 0x58], 0x18
cmp r11d, r13d
jl 0x1800273c3
mov rbx, r12
jmp 0x18002752b
mov r9d, 1
test rbx, rbx
je 0x180027a2c
mov edx, dword [rbp + 0x30]
lea rcx, [rbx*8]
mov r8d, dword [rbp + 0x34]
sub rcx, r14
add rcx, r15
movsd xmm0, qword [r10]
add rsi, r9
mov rax, qword [rdi + 0x50]
lea r10, [r10 + 8]
movsd qword [rax], xmm0
mov rax, qword [rdi + 0x50]
movss dword [rax + 8], xmm8
movss dword [rax + 0xc], xmm9
mov rax, qword [rdi + 0x50]
mov dword [rax + 0x10], r8d
movsd xmm0, qword [r14]
lea r14, [r14 + 0x10]
mov rax, qword [rdi + 0x50]
movsd qword [rax + 0x14], xmm0
mov rax, qword [rdi + 0x50]
movss dword [rax + 0x1c], xmm8
movss dword [rax + 0x20], xmm9
mov rax, qword [rdi + 0x50]
mov dword [rax + 0x24], edx
mov rax, qword [rdi + 0x50]
movsd xmm0, qword [rcx + r14 - 8]
movsd qword [rax + 0x28], xmm0
mov rax, qword [rdi + 0x50]
movss dword [rax + 0x30], xmm8
movss dword [rax + 0x34], xmm9
mov rax, qword [rdi + 0x50]
mov dword [rax + 0x38], edx
add qword [rdi + 0x50], 0x3c
cmp rsi, rbx
jl 0x180027549
jmp 0x180027a2c
movss xmm5, dword [0x18006aea8]
subss xmm6, xmm7
mulss xmm6, xmm5
movaps xmm4, xmm6
addss xmm4, xmm7
test al, al
jne 0x180027759
movaps xmm2, xmm4
lea rcx, [rbp + 0x20]
mov rdx, r15
call fcn.18000eb94
mov r9, qword [rbp + 0x10]
lea rcx, [rbp + 8]
mov rdx, r9
mov r8, rax
call fcn.18000ebb4
movaps xmm2, xmm6
lea rcx, [rbp + 0x20]
mov rdx, r15
movsd xmm0, qword [rax]
movsd qword [r14], xmm0
call fcn.18000eb94
mov r8, rax
lea rcx, [rbp + 8]
mov rdx, r9
call fcn.18000ebb4
movaps xmm2, xmm6
lea rcx, [rbp + 0x20]
mov rdx, r15
movsd xmm0, qword [rax]
movsd qword [r14 + 8], xmm0
call fcn.18000eb94
mov r8, rax
lea rcx, [rbp + 8]
mov rdx, r9
call fcn.18000ebdc
movaps xmm2, xmm4
lea rcx, [rbp + 0x20]
mov rdx, r15
movsd xmm0, qword [rax]
movsd qword [r14 + 0x10], xmm0
call fcn.18000eb94
mov r8, rax
lea rcx, [rbp + 8]
mov rdx, r9
call fcn.18000ebdc
lea r10, [r15 - 8]
movaps xmm2, xmm4
lea r10, [r10 + rbx*8]
lea r11, [r9 - 8]
mov rdx, r10
movsd xmm0, qword [rax]
lea rcx, [rbp + 0x20]
movsd qword [r14 + 0x18], xmm0
lea r11, [r11 + rbx*8]
call fcn.18000eb94
mov r8, rax
lea rcx, [rbp + 8]
mov rdx, r11
call fcn.18000ebb4
lea ecx, [r12*4]
movaps xmm2, xmm6
movsxd r9, ecx
mov rdx, r10
lea rcx, [rbp + 0x20]
movsd xmm0, qword [rax]
movsd qword [r14 + r9*8 - 0x20], xmm0
call fcn.18000eb94
mov r8, rax
lea rcx, [rbp + 8]
mov rdx, r11
call fcn.18000ebb4
movaps xmm2, xmm6
lea rcx, [rbp + 0x20]
mov rdx, r10
movsd xmm0, qword [rax]
movsd qword [r14 + r9*8 - 0x18], xmm0
call fcn.18000eb94
mov r8, rax
lea rcx, [rbp + 8]
mov rdx, r11
call fcn.18000ebdc
movaps xmm2, xmm4
lea rcx, [rbp + 0x20]
mov rdx, r10
movsd xmm0, qword [rax]
movsd qword [r14 + r9*8 - 0x10], xmm0
call fcn.18000eb94
mov r8, rax
lea rcx, [rbp + 8]
mov rdx, r11
call fcn.18000ebdc
movsd xmm0, qword [rax]
movsd qword [r14 + r9*8 - 8], xmm0
mov r11d, dword [rdi + 0x48]
mov eax, esi
test r13d, r13d
jle 0x180027960
mov r10, qword [rbp + 0x10]
mov ebx, 1
mov ecx, eax
inc eax
cmp eax, r12d
mov dword [rbp + 0x10], eax
mov r9d, eax
cmove r9d, esi
jne 0x180027789
mov eax, dword [rdi + 0x48]
jmp 0x18002778d
lea eax, [r11 + 4]
mov dword [rbp], eax
lea rdx, [r15 + rcx*8]
movsxd rax, r9d
lea rcx, [rbp + 0x20]
lea r8, [r15 + rax*8]
call fcn.18000ebb4
mov rdx, rax
lea rcx, [rbp + 0x18]
movaps xmm2, xmm5
call fcn.18000eb94
movss xmm3, dword [rbp + 0x1c]
movss xmm0, dword [rbp + 0x18]
mulss xmm3, xmm3
mulss xmm0, xmm0
addss xmm3, xmm0
comiss xmm3, dword [0x18006ae38]
jbe 0x1800277ee
movss xmm1, dword [0x18006afc8]
lea rcx, [rbp + 0x18]
movaps xmm0, xmm7
divss xmm0, xmm3
minss xmm1, xmm0
call fcn.18000ec94
movaps xmm2, xmm4
lea rdx, [rbp + 0x18]
lea rcx, [rbp + 8]
call fcn.18000eb94
movaps xmm2, xmm6
lea rdx, [rbp + 0x18]
lea rcx, [rbp + 0x38]
call fcn.18000eb94
movsxd rcx, r9d
lea r8, [rbp + 8]
lea rdx, [r10 + rcx*8]
lea rcx, [rbp + 0x48]
call fcn.18000ebb4
lea ecx, [r9*4]
movsxd r9, ecx
lea r8, [rbp + 0x38]
lea rcx, [rbp + 0x50]
movsd xmm0, qword [rax]
movsd qword [r14 + r9*8], xmm0
call fcn.18000ebb4
lea r8, [rbp + 0x38]
lea rcx, [rbp + 0x58]
movsd xmm0, qword [rax]
movsd qword [r14 + r9*8 + 8], xmm0
call fcn.18000ebdc
lea r8, [rbp + 8]
lea rcx, [rbp + 0x60]
movsd xmm0, qword [rax]
movsd qword [r14 + r9*8 + 0x10], xmm0
call fcn.18000ebdc
mov edx, dword [rbp]
lea ecx, [rbx + r11]
mov r13d, 2
movsd xmm0, qword [rax]
movsd qword [r14 + r9*8 + 0x18], xmm0
lea r9d, [rbx + rdx]
mov rax, qword [rdi + 0x58]
lea r8d, [r11 + r13]
mov word [rbp], r8w
mov word [rax], r9w
mov rax, qword [rdi + 0x58]
mov word [rax + 2], cx
mov rax, qword [rdi + 0x58]
mov word [rax + 4], r8w
mov rax, qword [rdi + 0x58]
mov word [rax + 6], r8w
lea r8d, [rdx + r13]
mov rax, qword [rdi + 0x58]
mov word [rax + 8], r8w
mov rax, qword [rdi + 0x58]
mov word [rax + 0xa], r9w
mov rax, qword [rdi + 0x58]
mov word [rax + 0xc], r9w
mov rax, qword [rdi + 0x58]
mov word [rax + 0xe], cx
lea ecx, [r13 + 0xe]
mov rax, qword [rdi + 0x58]
mov word [rcx + rax], r11w
add rcx, r13
cmp rcx, 0x14
jl 0x1800278e6
mov rax, qword [rdi + 0x58]
add r11w, 3
movzx ecx, word [rbp]
mov word [rax + 0x14], dx
mov rax, qword [rdi + 0x58]
mov word [rax + 0x16], r9w
mov rax, qword [rdi + 0x58]
mov word [rax + 0x18], r8w
mov rax, qword [rdi + 0x58]
mov word [rax + 0x1a], cx
lea ecx, [rdx + 3]
mov rax, qword [rdi + 0x58]
mov word [rax + 0x1c], r11w
mov rax, qword [rdi + 0x58]
mov word [rax + 0x1e], r11w
mov r11d, edx
mov rax, qword [rdi + 0x58]
mov word [rax + 0x20], cx
mov rax, qword [rdi + 0x58]
mov word [rax + 0x22], r8w
add qword [rdi + 0x58], 0x24
mov eax, dword [rbp + 0x10]
cmp eax, dword [rbp + 0x28]
jl 0x180027771
mov rbx, r12
test rbx, rbx
je 0x180027a2c
mov edx, dword [rbp + 0x30]
lea rax, [rbx*8 + 0x10]
mov r8d, dword [rbp + 0x34]
lea rcx, [rax + r15]
sub r14, rax
sub r14, r15
movsd xmm0, qword [r14 + rcx]
inc rsi
mov rax, qword [rdi + 0x50]
movsd qword [rax], xmm0
mov rax, qword [rdi + 0x50]
movss dword [rax + 8], xmm8
movss dword [rax + 0xc], xmm9
mov rax, qword [rdi + 0x50]
mov dword [rax + 0x10], edx
movsd xmm0, qword [rcx - 8]
mov rax, qword [rdi + 0x50]
movsd qword [rax + 0x14], xmm0
mov rax, qword [rdi + 0x50]
movss dword [rax + 0x1c], xmm8
movss dword [rax + 0x20], xmm9
mov rax, qword [rdi + 0x50]
mov dword [rax + 0x24], r8d
movsd xmm0, qword [rcx]
lea rcx, [rcx + 0x20]
mov rax, qword [rdi + 0x50]
movsd qword [rax + 0x28], xmm0
mov rax, qword [rdi + 0x50]
movss dword [rax + 0x30], xmm8
movss dword [rax + 0x34], xmm9
mov rax, qword [rdi + 0x50]
mov dword [rax + 0x38], r8d
mov rax, qword [rdi + 0x50]
movsd xmm0, qword [rcx - 0x18]
movsd qword [rax + 0x3c], xmm0
mov rax, qword [rdi + 0x50]
movss dword [rax + 0x44], xmm8
movss dword [rax + 0x48], xmm9
mov rax, qword [rdi + 0x50]
mov dword [rax + 0x4c], edx
add qword [rdi + 0x50], 0x50
cmp rsi, rbx
jl 0x180027982
movzx eax, word [rbp + 0x2c]
add dword [rdi + 0x48], eax
jmp 0x180027c22
lea edx, [r13*2]
mov rcx, rdi
add edx, r13d
lea r8d, [r13*4]
add edx, edx
call fcn.180026e14
mov ecx, esi
test r13d, r13d
jle 0x180027c22
mulss xmm6, dword [0x18006aea8]
mov r13, rbx
inc ecx
mov r8, r13
mov eax, ecx
mov dword [rbp + 0x2c], ecx
cmp ecx, r12d
lea rcx, [rbp + 0x18]
cmove eax, esi
cdqe
lea rbx, [rbx + rax*8]
mov rdx, rbx
call fcn.18000ebdc
movaps xmm1, xmm7
lea rcx, [rbp + 0x18]
call fcn.18002053c
movaps xmm1, xmm0
lea rcx, [rbp + 0x18]
call fcn.18000ec94
mov rax, qword [rdi + 0x50]
mov edx, 1
movss xmm2, dword [rbp + 0x1c]
movss xmm3, dword [rbp + 0x18]
mulss xmm2, xmm6
mulss xmm3, xmm6
movaps xmm0, xmm2
addss xmm0, dword [r13]
movss dword [rax], xmm0
movaps xmm0, xmm2
movss xmm1, dword [r13 + 4]
mov rax, qword [rdi + 0x50]
subss xmm1, xmm3
movss dword [rax + 4], xmm1
mov rax, qword [rdi + 0x50]
movss dword [rax + 8], xmm8
movss dword [rax + 0xc], xmm9
mov rax, qword [rdi + 0x50]
mov dword [rax + 0x10], r15d
addss xmm0, dword [rbx]
mov rax, qword [rdi + 0x50]
movss dword [rax + 0x14], xmm0
movss xmm1, dword [rbx + 4]
mov rax, qword [rdi + 0x50]
subss xmm1, xmm3
movss dword [rax + 0x18], xmm1
movaps xmm1, xmm3
mov rax, qword [rdi + 0x50]
movss dword [rax + 0x1c], xmm8
movss dword [rax + 0x20], xmm9
mov rax, qword [rdi + 0x50]
mov dword [rax + 0x24], r15d
movss xmm0, dword [rbx]
mov rax, qword [rdi + 0x50]
subss xmm0, xmm2
movss dword [rax + 0x28], xmm0
mov rax, qword [rdi + 0x50]
addss xmm1, dword [rbx + 4]
movss dword [rax + 0x2c], xmm1
mov rax, qword [rdi + 0x50]
movss dword [rax + 0x30], xmm8
movss dword [rax + 0x34], xmm9
mov rax, qword [rdi + 0x50]
mov dword [rax + 0x38], r15d
movss xmm0, dword [r13]
mov rax, qword [rdi + 0x50]
subss xmm0, xmm2
movss dword [rax + 0x3c], xmm0
mov rax, qword [rdi + 0x50]
addss xmm3, dword [r13 + 4]
movss dword [rax + 0x40], xmm3
mov rax, qword [rdi + 0x50]
movss dword [rax + 0x44], xmm8
movss dword [rax + 0x48], xmm9
mov rax, qword [rdi + 0x50]
mov dword [rax + 0x4c], r15d
mov rcx, qword [rdi + 0x58]
movzx eax, word [rdi + 0x48]
add qword [rdi + 0x50], 0x50
mov word [rcx], ax
movzx ecx, word [rdi + 0x48]
mov rax, qword [rdi + 0x58]
add cx, dx
mov word [rax + 2], cx
mov rax, qword [rdi + 0x58]
lea r8d, [rdx + 1]
movzx ecx, word [rdi + 0x48]
add r13, 8
mov rbx, qword [rbp + 0x10]
add cx, r8w
mov word [rax + 4], cx
mov rcx, qword [rdi + 0x58]
movzx eax, word [rdi + 0x48]
mov word [rcx + 6], ax
movzx ecx, word [rdi + 0x48]
mov rax, qword [rdi + 0x58]
add cx, r8w
mov word [rax + 8], cx
movzx ecx, word [rdi + 0x48]
mov rax, qword [rdi + 0x58]
add cx, 3
mov word [rax + 0xa], cx
add qword [rdi + 0x58], 0xc
add dword [rdi + 0x48], 4
mov ecx, dword [rbp + 0x2c]
sub r14, rdx
jne 0x180027a6b
mov rcx, qword [rbp + 0x68]
xor rcx, rbp
call fcn.18002d900
mov rbx, qword [rbp + 0xe0]
mov rsi, qword [rbp + 0xe8]
mov rdi, qword [rbp + 0xf0]
movaps xmm6, xmmword [rbp + 0xa0]
movaps xmm7, xmmword [rbp + 0x90]
movaps xmm8, xmmword [rbp + 0x80]
movaps xmm9, xmmword [rbp + 0x70]
lea rsp, [rbp + 0xb0]
pop r15
pop r14
pop r13
pop r12
pop rbp
ret