// File: /workspace/github_cpp_makefile_star2_O1/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 %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x40, %rsp
xorl %ebp, %ebp
testq %rdi, %rdi
je 0x39a70
movq %rdx, %r14
movq %rsi, %r12
movq %rdi, %r15
movslq 0xd000(%rdi), %rbx
leaq 0x749e(%rip), %rsi      # 0x40d1d
movq %r12, %rdi
callq 0x7590
testl %eax, %eax
je 0x39a60
imulq $0x1a0, %rbx, %rbx      # imm = 0x1A0
addq %r15, %rbx
leaq 0x7483(%rip), %rsi      # 0x40d23
movq %r12, %rdi
callq 0x7590
testl %eax, %eax
je 0x39a7f
leaq 0x7479(%rip), %rsi      # 0x40d30
movq %r12, %rdi
callq 0x7590
testl %eax, %eax
je 0x39aa0
leaq 0x74b7(%rip), %rsi      # 0x40d85
movq %r12, %rdi
callq 0x7590
testl %eax, %eax
je 0x39ae3
leaq 0x7455(%rip), %rsi      # 0x40d3a
movq %r12, %rdi
callq 0x7590
testl %eax, %eax
je 0x39b09
leaq 0x744b(%rip), %rsi      # 0x40d47
movq %r12, %rdi
callq 0x7590
testl %eax, %eax
je 0x39b3e
leaq 0x743b(%rip), %rsi      # 0x40d4e
movq %r12, %rdi
callq 0x7590
testl %eax, %eax
je 0x39bce
leaq 0x7431(%rip), %rsi      # 0x40d5b
movq %r12, %rdi
callq 0x7590
testl %eax, %eax
je 0x39bfc
leaq 0x742b(%rip), %rsi      # 0x40d6c
movq %r12, %rdi
callq 0x7590
testl %eax, %eax
je 0x39c61
leaq 0x7426(%rip), %rsi      # 0x40d7e
movq %r12, %rdi
callq 0x7590
testl %eax, %eax
je 0x39cd5
leaq 0x741e(%rip), %rsi      # 0x40d8d
movq %r12, %rdi
callq 0x7590
testl %eax, %eax
je 0x39d3a
leaq 0x7416(%rip), %rsi      # 0x40d9c
movq %r12, %rdi
callq 0x7590
testl %eax, %eax
je 0x39d4d
leaq 0x740f(%rip), %rsi      # 0x40dac
movq %r12, %rdi
callq 0x7590
testl %eax, %eax
je 0x39d60
leaq 0x740a(%rip), %rsi      # 0x40dbe
movq %r12, %rdi
callq 0x7590
testl %eax, %eax
je 0x39d7d
leaq 0x73fd(%rip), %rsi      # 0x40dc8
movq %r12, %rdi
callq 0x7590
testl %eax, %eax
je 0x39d90
leaq 0x73f0(%rip), %rsi      # 0x40dd2
movq %r12, %rdi
callq 0x7590
testl %eax, %eax
je 0x39dbe
leaq 0x73e3(%rip), %rsi      # 0x40ddc
movq %r12, %rdi
callq 0x7590
testl %eax, %eax
je 0x39e1e
leaq 0x73d7(%rip), %rsi      # 0x40de7
movq %r12, %rdi
callq 0x7590
testl %eax, %eax
je 0x39e31
leaq 0x7350(%rip), %rsi      # 0x40d77
movq %r12, %rdi
callq 0x7590
testl %eax, %eax
je 0x39e5a
leaq 0x74da(%rip), %rsi      # 0x40f18
movq %r12, %rdi
callq 0x7590
testl %eax, %eax
jne 0x39a70
movl $0x3f, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x7230
movb $0x0, 0x3f(%rbx)
jmp 0x39a6b
movq %r15, %rdi
movq %r14, %rsi
callq 0x3a449
movl $0x1, %ebp
movl %ebp, %eax
addq $0x40, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
leaq 0x72a5(%rip), %rsi      # 0x40d2b
movq %r14, %rdi
callq 0x7590
movl $0x1, %ebp
testl %eax, %eax
jne 0x39a70
movb $0x0, 0x19a(%rbx)
jmp 0x39a70
leaq 0x7284(%rip), %rsi      # 0x40d2b
movq %r14, %rdi
callq 0x7590
testl %eax, %eax
je 0x39b32
leaq 0x727b(%rip), %rsi      # 0x40d35
movl $0x4, %edx
movq %r14, %rdi
callq 0x71e0
testl %eax, %eax
je 0x39b88
movb $0x1, 0x198(%rbx)
movq %r14, %rdi
callq 0x3a61a
movl %eax, 0x70(%rbx)
jmp 0x39a6b
movq %r14, %rdi
callq 0x3ab74
xorpd %xmm1, %xmm1
maxsd %xmm0, %xmm1
movsd 0x350d(%rip), %xmm0     # 0x3d008
minsd %xmm1, %xmm0
movsd %xmm0, 0x78(%rbx)
jmp 0x39a6b
movq %r14, %rdi
callq 0x3ab74
xorpd %xmm1, %xmm1
maxsd %xmm0, %xmm1
movsd 0x34e7(%rip), %xmm0     # 0x3d008
minsd %xmm1, %xmm0
movsd %xmm0, 0x80(%rbx)
jmp 0x39a6b
movb $0x0, 0x198(%rbx)
jmp 0x39a6b
leaq 0x71e6(%rip), %rsi      # 0x40d2b
movq %r14, %rdi
callq 0x7590
testl %eax, %eax
je 0x39c19
leaq 0x71d9(%rip), %rsi      # 0x40d35
movl $0x4, %edx
movq %r14, %rdi
callq 0x71e0
testl %eax, %eax
je 0x39c8f
movb $0x1, 0x199(%rbx)
movq %r14, %rdi
callq 0x3a61a
movl %eax, 0x74(%rbx)
jmp 0x39a6b
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 0x39bbf
movb %dl, 0x90(%rbx,%rax)
incq %rax
cmpq $0x3f, %rax
jne 0x39ba2
movl $0x3f, %eax
movl %eax, %eax
movb $0x0, 0x90(%rbx,%rax)
jmp 0x39a6b
movsd 0xd060(%r15), %xmm0
movsd 0xd068(%r15), %xmm1
mulsd %xmm1, %xmm1
mulsd %xmm0, %xmm0
addsd %xmm1, %xmm0
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0x39c25
sqrtsd %xmm0, %xmm0
jmp 0x39c2a
leaq 0x120(%rbx), %rdx
movq %r15, %rdi
movq %r14, %rsi
callq 0x3a78a
movl %eax, 0x160(%rbx)
jmp 0x39a6b
movb $0x0, 0x199(%rbx)
jmp 0x39a6b
callq 0x7370
divsd 0x550e(%rip), %xmm0     # 0x3f140
movsd %xmm0, 0x8(%rsp)
movq %r14, %rdi
callq 0x3a344
xorpd %xmm1, %xmm1
movq %r15, %rdi
movl %eax, %esi
movsd 0x8(%rsp), %xmm2
callq 0x3ad0d
movsd %xmm0, 0x110(%rbx)
jmp 0x39a6b
movsd 0xd060(%r15), %xmm0
movsd 0xd068(%r15), %xmm1
mulsd %xmm1, %xmm1
mulsd %xmm0, %xmm0
addsd %xmm1, %xmm0
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0x39cfe
sqrtsd %xmm0, %xmm0
jmp 0x39d03
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 0x39cc6
movb %dl, 0xd0(%rbx,%rax)
incq %rax
cmpq $0x3f, %rax
jne 0x39ca9
movl $0x3f, %eax
movl %eax, %eax
movb $0x0, 0xd0(%rbx,%rax)
jmp 0x39a6b
movq %r14, %rdi
callq 0x3ab74
xorpd %xmm1, %xmm1
maxsd %xmm0, %xmm1
movsd 0x331b(%rip), %xmm0     # 0x3d008
minsd %xmm1, %xmm0
movsd %xmm0, 0x88(%rbx)
jmp 0x39a6b
callq 0x7370
divsd 0x5435(%rip), %xmm0     # 0x3f140
movsd %xmm0, 0x8(%rsp)
movq %r14, %rdi
callq 0x3a344
xorpd %xmm1, %xmm1
movq %r15, %rdi
movl %eax, %esi
movsd 0x8(%rsp), %xmm2
callq 0x3ad0d
movsd %xmm0, 0x118(%rbx)
jmp 0x39a6b
movq %r14, %rdi
callq 0x3a923
movb %al, 0x165(%rbx)
jmp 0x39a6b
movq %r14, %rdi
callq 0x3a96a
movb %al, 0x164(%rbx)
jmp 0x39a6b
movq %r14, %rdi
callq 0x3ab74
xorpd %xmm1, %xmm1
maxsd %xmm0, %xmm1
movsd %xmm1, 0x168(%rbx)
jmp 0x39a6b
movq %r14, %rdi
callq 0x3a9b1
movb %al, 0x170(%rbx)
jmp 0x39a6b
movsd 0xd060(%r15), %xmm0
movsd 0xd068(%r15), %xmm1
mulsd %xmm1, %xmm1
mulsd %xmm0, %xmm0
addsd %xmm1, %xmm0
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0x39de2
sqrtsd %xmm0, %xmm0
jmp 0x39de7
leaq 0x10(%rsp), %r15
movq %r15, %rdi
movq %r14, %rsi
callq 0x39e85
addq $0x40, %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3a9df
jmp 0x39a6b
callq 0x7370
divsd 0x5351(%rip), %xmm0     # 0x3f140
movsd %xmm0, 0x8(%rsp)
movq %r14, %rdi
callq 0x3a344
xorpd %xmm1, %xmm1
movq %r15, %rdi
movl %eax, %esi
movsd 0x8(%rsp), %xmm2
callq 0x3ad0d
movsd %xmm0, 0x178(%rbx)
jmp 0x39a6b
movq %r14, %rdi
callq 0x3a61a
movl %eax, 0x180(%rbx)
jmp 0x39a6b
movq %r14, %rdi
callq 0x3ab74
xorpd %xmm1, %xmm1
maxsd %xmm0, %xmm1
movsd 0x31bf(%rip), %xmm0     # 0x3d008
minsd %xmm1, %xmm0
movsd %xmm0, 0x188(%rbx)
jmp 0x39a6b
movq %r14, %rdi
callq 0x3a344
movsd 0x319e(%rip), %xmm2     # 0x3d008
xorpd %xmm1, %xmm1
movq %r15, %rdi
movl %eax, %esi
callq 0x3ad0d
movsd %xmm0, 0x190(%rbx)
jmp 0x39a6b