// File: /workspace/github_cpp_makefile_star2_O3/krig[P]easing/test_easing.cpp
// Function: void plotline<main::$_0>(main::$_0, char, char, float, int, int, float, std::vector<float, std::allocator<float>> const&, std::vector<char, std::allocator<char>>&)
void plotline(Fn fn, char head, char filler, float y, int from, int to, float step,
              vector<float> const& values, vector<char>& line) {
	line.clear();
	line.push_back(head);
	bool hit = false;
	for (int x = from; x < to; ++x) {
		if (fabs(values[x] - y) <= step) {
			hit = true;
			line.push_back('*');
		} else {
			line.push_back(filler);
		}
	}
	if (!hit) {
		int minx = from;
		for (int x = from + 1; x < to; ++x) {
			if (fabs(values[x] - y) < fabs(values[minx] - y))
				minx = x;
		}
		if (fabs(values[minx] - y) < step * 1.25)
			line[minx + 1] = '*';
	}
	line.push_back(0);
	cout << line.data() << endl;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rcx, %rbx
movq %rdx, %r14
movb %dil, -0x2c(%rbp)
movb %sil, -0x29(%rbp)
movq (%rcx), %rax
movq 0x8(%rcx), %rsi
cmpq %rax, %rsi
je 0x7586
movq %rax, 0x8(%rbx)
movq %rax, %rsi
cmpq 0x10(%rbx), %rsi
movss %xmm0, -0x30(%rbp)
je 0x759a
movb %dil, (%rsi)
incq 0x8(%rbx)
jmp 0x75ab
leaq -0x2c(%rbp), %rdx
movq %rbx, %rdi
callq 0xb7f8
movss -0x30(%rbp), %xmm0
xorl %r13d, %r13d
movaps 0x4bab(%rip), %xmm3     # 0xc160
movss 0x4a4b(%rip), %xmm2     # 0xc008
leaq -0x29(%rbp), %r15
xorl %r12d, %r12d
incq %r13
movq (%r14), %rax
movss -0x4(%rax,%r13,4), %xmm1
subss %xmm0, %xmm1
andps %xmm3, %xmm1
ucomiss %xmm1, %xmm2
jae 0x761c
movq 0x8(%rbx), %rsi
cmpq 0x10(%rbx), %rsi
je 0x75f2
movb -0x29(%rbp), %al
movb %al, (%rsi)
incq 0x8(%rbx)
jmp 0x7611
movq %rbx, %rdi
movq %r15, %rdx
callq 0xb7f8
movss 0x4a03(%rip), %xmm2     # 0xc008
movaps 0x4b54(%rip), %xmm3     # 0xc160
movss -0x30(%rbp), %xmm0
incq %r13
cmpq $0x3d, %r13
jne 0x75c7
jmp 0x7662
movb $0x2a, -0x2b(%rbp)
movq 0x8(%rbx), %rsi
cmpq 0x10(%rbx), %rsi
je 0x7633
movb $0x2a, (%rsi)
incq 0x8(%rbx)
jmp 0x7653
movq %rbx, %rdi
leaq -0x2b(%rbp), %rdx
callq 0xb8ea
movss 0x49c1(%rip), %xmm2     # 0xc008
movaps 0x4b12(%rip), %xmm3     # 0xc160
movss -0x30(%rbp), %xmm0
movb $0x1, %r12b
cmpq $0x3c, %r13
jne 0x75c4
jmp 0x76d1
testb $0x1, %r12b
jne 0x76d1
movq (%r14), %rax
xorl %edx, %edx
movl $0x1, %ecx
movss (%rax,%rcx,4), %xmm2
subss %xmm0, %xmm2
andps %xmm3, %xmm2
movslq %edx, %rsi
movss (%rax,%rsi,4), %xmm1
subss %xmm0, %xmm1
andps %xmm3, %xmm1
ucomiss %xmm2, %xmm1
movl %ecx, %esi
ja 0x7696
movl %edx, %esi
incq %rcx
movl %esi, %edx
cmpq $0x3c, %rcx
jne 0x7672
movslq %esi, %rcx
movss (%rax,%rcx,4), %xmm1
subss %xmm0, %xmm1
andps 0x4aac(%rip), %xmm1     # 0xc160
xorps %xmm0, %xmm0
cvtss2sd %xmm1, %xmm0
movsd 0x4a05(%rip), %xmm1     # 0xc0c8
ucomisd %xmm0, %xmm1
jbe 0x76d1
movq (%rbx), %rax
movb $0x2a, 0x1(%rax,%rcx)
movb $0x0, -0x2a(%rbp)
movq 0x8(%rbx), %rsi
cmpq 0x10(%rbx), %rsi
je 0x76e8
movb $0x0, (%rsi)
incq 0x8(%rbx)
jmp 0x76f4
leaq -0x2a(%rbp), %rdx
movq %rbx, %rdi
callq 0xb8ea
movq (%rbx), %rbx
testq %rbx, %rbx
je 0x7718
movq %rbx, %rdi
callq 0x1060
movq 0x78cd(%rip), %rdi      # 0xefd8
movq %rbx, %rsi
movq %rax, %rdx
callq 0x1100
jmp 0x7736
movq 0x78b9(%rip), %rax      # 0xefd8
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
leaq (%rax,%rcx), %rdi
movl 0x20(%rax,%rcx), %esi
orl $0x1, %esi
callq 0x1130
movq 0x789b(%rip), %rbx      # 0xefd8
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x10e0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x1030
movq %rax, %rdi
callq 0x1080
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq