// File: /workspace/github_cpp_makefile_star2_O3/thierry7100[P]CutOptim/include/nanosvg.h
// Function: nsvg__parseAttr(NSVGparser*, char const*, char const*)
static int nsvg__parseAttr(NSVGparser* p, const char* name, const char* value)
{
	double xform[6];
	NSVGattrib* attr = nsvg__getAttr(p);
	if (!attr) return 0;

	if (strcmp(name, "style") == 0) {
		nsvg__parseStyle(p, value);
	} else if (strcmp(name, "display") == 0) {
		if (strcmp(value, "none") == 0)
			attr->visible = 0;
		// Don't reset ->visible on display:inline, one display:none hides the whole subtree

	} else if (strcmp(name, "fill") == 0) {
		if (strcmp(value, "none") == 0) {
			attr->hasFill = 0;
		} else if (strncmp(value, "url(", 4) == 0) {
			attr->hasFill = 2;
			nsvg__parseUrl(attr->fillGradient, value);
		} else {
			attr->hasFill = 1;
			attr->fillColor = nsvg__parseColor(value);
		}
	} else if (strcmp(name, "opacity") == 0) {
		attr->opacity = nsvg__parseOpacity(value);
	} else if (strcmp(name, "fill-opacity") == 0) {
		attr->fillOpacity = nsvg__parseOpacity(value);
	} else if (strcmp(name, "stroke") == 0) {
		if (strcmp(value, "none") == 0) {
			attr->hasStroke = 0;
		} else if (strncmp(value, "url(", 4) == 0) {
			attr->hasStroke = 2;
			nsvg__parseUrl(attr->strokeGradient, value);
		} else {
			attr->hasStroke = 1;
			attr->strokeColor = nsvg__parseColor(value);
		}
	} else if (strcmp(name, "stroke-width") == 0) {
		attr->strokeWidth = nsvg__parseCoordinate(p, value, 0.0, nsvg__actualLength(p));
	} else if (strcmp(name, "stroke-dasharray") == 0) {
		attr->strokeDashCount = nsvg__parseStrokeDashArray(p, value, attr->strokeDashArray);
	} else if (strcmp(name, "stroke-dashoffset") == 0) {
		attr->strokeDashOffset = nsvg__parseCoordinate(p, value, 0.0, nsvg__actualLength(p));
	} else if (strcmp(name, "stroke-opacity") == 0) {
		attr->strokeOpacity = nsvg__parseOpacity(value);
	} else if (strcmp(name, "stroke-linecap") == 0) {
		attr->strokeLineCap = nsvg__parseLineCap(value);
	} else if (strcmp(name, "stroke-linejoin") == 0) {
		attr->strokeLineJoin = nsvg__parseLineJoin(value);
	} else if (strcmp(name, "stroke-miterlimit") == 0) {
		attr->miterLimit = nsvg__parseMiterLimit(value);
	} else if (strcmp(name, "fill-rule") == 0) {
		attr->fillRule = nsvg__parseFillRule(value);
	} else if (strcmp(name, "font-size") == 0) {
		attr->fontSize = nsvg__parseCoordinate(p, value, 0.0, nsvg__actualLength(p));
	} else if (strcmp(name, "transform") == 0) {
		nsvg__parseTransform(xform, value);
		nsvg__xformPremultiply(attr->xform, xform);
	} else if (strcmp(name, "stop-color") == 0) {
		attr->stopColor = nsvg__parseColor(value);
	} else if (strcmp(name, "stop-opacity") == 0) {
		attr->stopOpacity = nsvg__parseOpacity(value);
	} else if (strcmp(name, "offset") == 0) {
		attr->stopOffset = nsvg__parseCoordinate(p, value, 0.0, 1.0);
	} else if (strcmp(name, "id") == 0) {
		strncpy(attr->id, value, 63);
		attr->id[63] = '\0';
	} else {
		return 0;
	}
	return 1;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq %rdx, %r14
movq %rsi, %r12
movq %rdi, %r15
movslq 0xd000(%rdi), %rbx
leaq 0x72b2(%rip), %rsi      # 0x3fda1
movq %r12, %rdi
callq 0x75a0
testl %eax, %eax
je 0x38cd6
imulq $0x1a0, %rbx, %rbx      # imm = 0x1A0
addq %r15, %rbx
leaq 0x7297(%rip), %rsi      # 0x3fda7
movq %r12, %rdi
callq 0x75a0
testl %eax, %eax
je 0x38cf2
leaq 0x728d(%rip), %rsi      # 0x3fdb4
movq %r12, %rdi
callq 0x75a0
testl %eax, %eax
je 0x38d15
leaq 0x72cb(%rip), %rsi      # 0x3fe09
movq %r12, %rdi
callq 0x75a0
testl %eax, %eax
je 0x38d58
leaq 0x7269(%rip), %rsi      # 0x3fdbe
movq %r12, %rdi
callq 0x75a0
testl %eax, %eax
je 0x38d7e
leaq 0x725f(%rip), %rsi      # 0x3fdcb
movq %r12, %rdi
callq 0x75a0
testl %eax, %eax
je 0x38db3
leaq 0x724f(%rip), %rsi      # 0x3fdd2
movq %r12, %rdi
callq 0x75a0
testl %eax, %eax
je 0x38e43
leaq 0x7245(%rip), %rsi      # 0x3fddf
movq %r12, %rdi
callq 0x75a0
testl %eax, %eax
je 0x38e9c
leaq 0x723f(%rip), %rsi      # 0x3fdf0
movq %r12, %rdi
callq 0x75a0
testl %eax, %eax
je 0x38ec5
leaq 0x723a(%rip), %rsi      # 0x3fe02
movq %r12, %rdi
callq 0x75a0
testl %eax, %eax
je 0x38f64
leaq 0x7232(%rip), %rsi      # 0x3fe11
movq %r12, %rdi
callq 0x75a0
testl %eax, %eax
je 0x38f8d
leaq 0x722a(%rip), %rsi      # 0x3fe20
movq %r12, %rdi
callq 0x75a0
testl %eax, %eax
je 0x38fa0
leaq 0x7223(%rip), %rsi      # 0x3fe30
movq %r12, %rdi
callq 0x75a0
testl %eax, %eax
je 0x38fb3
leaq 0x721e(%rip), %rsi      # 0x3fe42
movq %r12, %rdi
callq 0x75a0
testl %eax, %eax
je 0x38fd0
leaq 0x7211(%rip), %rsi      # 0x3fe4c
movq %r12, %rdi
callq 0x75a0
testl %eax, %eax
je 0x38fe3
leaq 0x7204(%rip), %rsi      # 0x3fe56
movq %r12, %rdi
callq 0x75a0
testl %eax, %eax
je 0x3903c
leaq 0x71f7(%rip), %rsi      # 0x3fe60
movq %r12, %rdi
callq 0x75a0
testl %eax, %eax
je 0x39060
leaq 0x71eb(%rip), %rsi      # 0x3fe6b
movq %r12, %rdi
callq 0x75a0
testl %eax, %eax
je 0x39073
leaq 0x7164(%rip), %rsi      # 0x3fdfb
movq %r12, %rdi
callq 0x75a0
testl %eax, %eax
je 0x3909c
xorl %eax, %eax
cmpb $0x69, (%r12)
jne 0x38ce6
cmpb $0x64, 0x1(%r12)
jne 0x38ce6
cmpb $0x0, 0x2(%r12)
jne 0x38ce6
movl $0x3f, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x7230
movb $0x0, 0x3f(%rbx)
jmp 0x38ce1
movq %r15, %rdi
movq %r14, %rsi
callq 0x3960c
movl $0x1, %eax
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
leaq 0x70b6(%rip), %rsi      # 0x3fdaf
movq %r14, %rdi
callq 0x75a0
movl %eax, %ecx
movl $0x1, %eax
testl %ecx, %ecx
jne 0x38ce6
movb $0x0, 0x19a(%rbx)
jmp 0x38ce6
leaq 0x7093(%rip), %rsi      # 0x3fdaf
movq %r14, %rdi
callq 0x75a0
testl %eax, %eax
je 0x38da7
leaq 0x708a(%rip), %rsi      # 0x3fdb9
movl $0x4, %edx
movq %r14, %rdi
callq 0x71e0
testl %eax, %eax
je 0x38dfd
movb $0x1, 0x198(%rbx)
movq %r14, %rdi
callq 0x39806
movl %eax, 0x70(%rbx)
jmp 0x38ce1
movq %r14, %rdi
callq 0x39d04
xorpd %xmm1, %xmm1
maxsd %xmm0, %xmm1
movsd 0x3298(%rip), %xmm0     # 0x3c008
minsd %xmm1, %xmm0
movsd %xmm0, 0x78(%rbx)
jmp 0x38ce1
movq %r14, %rdi
callq 0x39d04
xorpd %xmm1, %xmm1
maxsd %xmm0, %xmm1
movsd 0x3272(%rip), %xmm0     # 0x3c008
minsd %xmm1, %xmm0
movsd %xmm0, 0x80(%rbx)
jmp 0x38ce1
movb $0x0, 0x198(%rbx)
jmp 0x38ce1
leaq 0x6ff5(%rip), %rsi      # 0x3fdaf
movq %r14, %rdi
callq 0x75a0
testl %eax, %eax
je 0x38eb9
leaq 0x6fe8(%rip), %rsi      # 0x3fdb9
movl $0x4, %edx
movq %r14, %rdi
callq 0x71e0
testl %eax, %eax
je 0x38f1e
movb $0x1, 0x199(%rbx)
movq %r14, %rdi
callq 0x39806
movl %eax, 0x74(%rbx)
jmp 0x38ce1
movb $0x2, 0x198(%rbx)
leaq 0x4(%r14), %rcx
cmpb $0x23, 0x4(%r14)
leaq 0x5(%r14), %rax
cmoveq %rax, %rcx
xorl %eax, %eax
movb (%rcx,%rax), %dl
cmpb $0x29, %dl
je 0x38e34
movb %dl, 0x90(%rbx,%rax)
incq %rax
cmpq $0x3f, %rax
jne 0x38e17
movl $0x3f, %eax
movl %eax, %eax
movb $0x0, 0x90(%rbx,%rax)
jmp 0x38ce1
movsd 0xd060(%r15), %xmm0
movsd 0xd068(%r15), %xmm1
mulsd %xmm1, %xmm1
mulsd %xmm0, %xmm0
addsd %xmm1, %xmm0
sqrtsd %xmm0, %xmm0
divsd 0x536b(%rip), %xmm0     # 0x3e1d8
movsd %xmm0, 0x8(%rsp)
movq %r14, %rdi
callq 0x39560
xorpd %xmm1, %xmm1
movq %r15, %rdi
movl %eax, %esi
movsd 0x8(%rsp), %xmm2
callq 0x39e80
movsd %xmm0, 0x110(%rbx)
jmp 0x38ce1
leaq 0x120(%rbx), %rdx
movq %r15, %rdi
movq %r14, %rsi
callq 0x39980
movl %eax, 0x160(%rbx)
jmp 0x38ce1
movb $0x0, 0x199(%rbx)
jmp 0x38ce1
movsd 0xd060(%r15), %xmm0
movsd 0xd068(%r15), %xmm1
mulsd %xmm1, %xmm1
mulsd %xmm0, %xmm0
addsd %xmm1, %xmm0
sqrtsd %xmm0, %xmm0
divsd 0x52e9(%rip), %xmm0     # 0x3e1d8
movsd %xmm0, 0x8(%rsp)
movq %r14, %rdi
callq 0x39560
xorpd %xmm1, %xmm1
movq %r15, %rdi
movl %eax, %esi
movsd 0x8(%rsp), %xmm2
callq 0x39e80
movsd %xmm0, 0x118(%rbx)
jmp 0x38ce1
movb $0x2, 0x199(%rbx)
leaq 0x4(%r14), %rcx
cmpb $0x23, 0x4(%r14)
leaq 0x5(%r14), %rax
cmoveq %rax, %rcx
xorl %eax, %eax
movb (%rcx,%rax), %dl
cmpb $0x29, %dl
je 0x38f55
movb %dl, 0xd0(%rbx,%rax)
incq %rax
cmpq $0x3f, %rax
jne 0x38f38
movl $0x3f, %eax
movl %eax, %eax
movb $0x0, 0xd0(%rbx,%rax)
jmp 0x38ce1
movq %r14, %rdi
callq 0x39d04
xorpd %xmm1, %xmm1
maxsd %xmm0, %xmm1
movsd 0x308c(%rip), %xmm0     # 0x3c008
minsd %xmm1, %xmm0
movsd %xmm0, 0x88(%rbx)
jmp 0x38ce1
movq %r14, %rdi
callq 0x39afb
movb %al, 0x165(%rbx)
jmp 0x38ce1
movq %r14, %rdi
callq 0x39b42
movb %al, 0x164(%rbx)
jmp 0x38ce1
movq %r14, %rdi
callq 0x39d04
xorpd %xmm1, %xmm1
maxsd %xmm0, %xmm1
movsd %xmm1, 0x168(%rbx)
jmp 0x38ce1
movq %r14, %rdi
callq 0x39b89
movb %al, 0x170(%rbx)
jmp 0x38ce1
movsd 0xd060(%r15), %xmm0
movsd 0xd068(%r15), %xmm1
mulsd %xmm1, %xmm1
mulsd %xmm0, %xmm0
addsd %xmm1, %xmm0
sqrtsd %xmm0, %xmm0
divsd 0x51cb(%rip), %xmm0     # 0x3e1d8
movsd %xmm0, 0x8(%rsp)
movq %r14, %rdi
callq 0x39560
xorpd %xmm1, %xmm1
movq %r15, %rdi
movl %eax, %esi
movsd 0x8(%rsp), %xmm2
callq 0x39e80
movsd %xmm0, 0x178(%rbx)
jmp 0x38ce1
leaq 0x10(%rsp), %r15
movq %r15, %rdi
movq %r14, %rsi
callq 0x390c7
addq $0x40, %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x39bb7
jmp 0x38ce1
movq %r14, %rdi
callq 0x39806
movl %eax, 0x180(%rbx)
jmp 0x38ce1
movq %r14, %rdi
callq 0x39d04
xorpd %xmm1, %xmm1
maxsd %xmm0, %xmm1
movsd 0x2f7d(%rip), %xmm0     # 0x3c008
minsd %xmm1, %xmm0
movsd %xmm0, 0x188(%rbx)
jmp 0x38ce1
movq %r14, %rdi
callq 0x39560
movsd 0x2f5c(%rip), %xmm2     # 0x3c008
xorpd %xmm1, %xmm1
movq %r15, %rdi
movl %eax, %esi
callq 0x39e80
movsd %xmm0, 0x190(%rbx)
jmp 0x38ce1