// File: /workspace/github_cpp_makefile_star2_O1/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
cmpq %rax, 0x8(%rcx)
je 0x759c
movq %rax, 0x8(%rbx)
movq 0x8(%rbx), %rsi
cmpq 0x10(%rbx), %rsi
movss %xmm0, -0x30(%rbp)
je 0x75b4
movb %dil, (%rsi)
incq 0x8(%rbx)
jmp 0x75c5
leaq -0x2c(%rbp), %rdx
movq %rbx, %rdi
callq 0xb6be
movss -0x30(%rbp), %xmm0
xorl %r13d, %r13d
movaps 0x4b91(%rip), %xmm3     # 0xc160
movss 0x4a31(%rip), %xmm2     # 0xc008
leaq -0x2b(%rbp), %r12
xorl %r15d, %r15d
movq (%r14), %rax
movss (%rax,%r13,4), %xmm1
subss %xmm0, %xmm1
andps %xmm3, %xmm1
ucomiss %xmm1, %xmm2
jae 0x7608
movq 0x8(%rbx), %rsi
cmpq 0x10(%rbx), %rsi
je 0x761f
movb -0x29(%rbp), %al
movb %al, (%rsi)
incq 0x8(%rbx)
jmp 0x7663
movb $0x2a, -0x2b(%rbp)
movq 0x8(%rbx), %rsi
cmpq 0x10(%rbx), %rsi
je 0x7641
movb $0x2a, (%rsi)
incq 0x8(%rbx)
jmp 0x7660
movq %rbx, %rdi
leaq -0x29(%rbp), %rdx
callq 0xb6be
movss 0x49d5(%rip), %xmm2     # 0xc008
movaps 0x4b26(%rip), %xmm3     # 0xc160
movss -0x30(%rbp), %xmm0
jmp 0x7663
movq %rbx, %rdi
movq %r12, %rdx
callq 0xb7b0
movss 0x49b4(%rip), %xmm2     # 0xc008
movaps 0x4b05(%rip), %xmm3     # 0xc160
movss -0x30(%rbp), %xmm0
movb $0x1, %r15b
incq %r13
cmpq $0x3c, %r13
jne 0x75de
testb $0x1, %r15b
jne 0x76e2
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 0x76a4
movl %edx, %esi
incq %rcx
movl %esi, %edx
cmpq $0x3c, %rcx
jne 0x7680
movslq %esi, %rax
movq (%r14), %rcx
movss (%rcx,%rax,4), %xmm1
subss %xmm0, %xmm1
andps 0x4a9b(%rip), %xmm1     # 0xc160
xorps %xmm0, %xmm0
cvtss2sd %xmm1, %xmm0
movsd 0x49f4(%rip), %xmm1     # 0xc0c8
ucomisd %xmm0, %xmm1
jbe 0x76e2
movq (%rbx), %rcx
movb $0x2a, 0x1(%rcx,%rax)
movb $0x0, -0x2a(%rbp)
movq 0x8(%rbx), %rsi
cmpq 0x10(%rbx), %rsi
je 0x76f9
movb $0x0, (%rsi)
incq 0x8(%rbx)
jmp 0x7705
leaq -0x2a(%rbp), %rdx
movq %rbx, %rdi
callq 0xb7b0
movq (%rbx), %rbx
testq %rbx, %rbx
je 0x7729
movq %rbx, %rdi
callq 0x1060
movq 0x78bc(%rip), %rdi      # 0xefd8
movq %rbx, %rsi
movq %rax, %rdx
callq 0x1100
jmp 0x7747
movq 0x78a8(%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 0x788a(%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