// File: /workspace/github_cpp_makefile_star2_O2/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 %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %rdx, %r14
movq %rsi, %r12
movq %rdi, %r15
movslq 0xd000(%rdi), %rbx
leaq 0x74e7(%rip), %rsi      # 0x37d61
movq %r12, %rdi
callq 0x85d0
testl %eax, %eax
je 0x30a5f
imulq $0x1a0, %rbx, %rbx      # imm = 0x1A0
addq %r15, %rbx
leaq 0x74cc(%rip), %rsi      # 0x37d67
movq %r12, %rdi
callq 0x85d0
testl %eax, %eax
je 0x30a7c
leaq 0x74c2(%rip), %rsi      # 0x37d74
movq %r12, %rdi
callq 0x85d0
testl %eax, %eax
je 0x30a9d
leaq 0x7500(%rip), %rsi      # 0x37dc9
movq %r12, %rdi
callq 0x85d0
testl %eax, %eax
je 0x30ade
leaq 0x749e(%rip), %rsi      # 0x37d7e
movq %r12, %rdi
callq 0x85d0
testl %eax, %eax
je 0x30af0
leaq 0x7494(%rip), %rsi      # 0x37d8b
movq %r12, %rdi
callq 0x85d0
testl %eax, %eax
je 0x30b11
leaq 0x7484(%rip), %rsi      # 0x37d92
movq %r12, %rdi
callq 0x85d0
testl %eax, %eax
je 0x30b77
leaq 0x747a(%rip), %rsi      # 0x37d9f
movq %r12, %rdi
callq 0x85d0
testl %eax, %eax
je 0x30bbd
leaq 0x7474(%rip), %rsi      # 0x37db0
movq %r12, %rdi
callq 0x85d0
testl %eax, %eax
je 0x30cb0
leaq 0x746f(%rip), %rsi      # 0x37dc2
movq %r12, %rdi
callq 0x85d0
testl %eax, %eax
je 0x30d48
leaq 0x7467(%rip), %rsi      # 0x37dd1
movq %r12, %rdi
callq 0x85d0
testl %eax, %eax
je 0x30d5d
leaq 0x745f(%rip), %rsi      # 0x37de0
movq %r12, %rdi
callq 0x85d0
testl %eax, %eax
je 0x30da6
leaq 0x7458(%rip), %rsi      # 0x37df0
movq %r12, %rdi
callq 0x85d0
testl %eax, %eax
je 0x30def
leaq 0x7453(%rip), %rsi      # 0x37e02
movq %r12, %rdi
callq 0x85d0
testl %eax, %eax
je 0x30e10
leaq 0x7446(%rip), %rsi      # 0x37e0c
movq %r12, %rdi
callq 0x85d0
testl %eax, %eax
je 0x30e51
leaq 0x7439(%rip), %rsi      # 0x37e16
movq %r12, %rdi
callq 0x85d0
testl %eax, %eax
je 0x30ea4
leaq 0x742c(%rip), %rsi      # 0x37e20
movq %r12, %rdi
callq 0x85d0
testl %eax, %eax
je 0x30ed5
leaq 0x7420(%rip), %rsi      # 0x37e2b
movq %r12, %rdi
callq 0x85d0
testl %eax, %eax
je 0x30ee8
leaq 0x7399(%rip), %rsi      # 0x37dbb
movq %r12, %rdi
callq 0x85d0
testl %eax, %eax
je 0x30efd
xorl %eax, %eax
cmpb $0x69, (%r12)
jne 0x30a6d
cmpb $0x64, 0x1(%r12)
jne 0x30a6d
cmpb $0x0, 0x2(%r12)
jne 0x30a6d
pushq $0x3f
popq %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x8230
movb $0x0, 0x3f(%rbx)
jmp 0x30a6a
movq %r15, %rdi
movq %r14, %rsi
callq 0x31422
pushq $0x1
popq %rax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x72ec(%rip), %rsi      # 0x37d6f
movq %r14, %rdi
callq 0x85d0
movl %eax, %ecx
pushq $0x1
popq %rax
testl %ecx, %ecx
jne 0x30a6d
movb $0x0, 0x19a(%rbx)
jmp 0x30a6d
leaq 0x72cb(%rip), %rsi      # 0x37d6f
movq %r14, %rdi
callq 0x85d0
testl %eax, %eax
je 0x30b05
leaq 0x72c2(%rip), %rsi      # 0x37d79
pushq $0x4
popq %rdx
movq %r14, %rdi
callq 0x81e0
testl %eax, %eax
je 0x30b59
movb $0x1, 0x198(%rbx)
movq %r14, %rdi
callq 0x315e0
movl %eax, 0x70(%rbx)
jmp 0x30a6a
movq %r14, %rdi
callq 0x317ef
movsd %xmm0, 0x78(%rbx)
jmp 0x30a6a
movq %r14, %rdi
callq 0x317ef
movsd %xmm0, 0x80(%rbx)
jmp 0x30a6a
movb $0x0, 0x198(%rbx)
jmp 0x30a6a
leaq 0x7257(%rip), %rsi      # 0x37d6f
movq %r14, %rdi
callq 0x85d0
testl %eax, %eax
je 0x30ca4
leaq 0x724a(%rip), %rsi      # 0x37d79
pushq $0x4
popq %rdx
movq %r14, %rdi
callq 0x81e0
testl %eax, %eax
je 0x30cf6
movb $0x1, 0x199(%rbx)
movq %r14, %rdi
callq 0x315e0
movl %eax, 0x74(%rbx)
jmp 0x30a6a
movb $0x2, 0x198(%rbx)
addq $0x90, %rbx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x315b3
jmp 0x30a6a
movsd 0xd060(%r15), %xmm0
movsd 0xd068(%r15), %xmm1
mulsd %xmm1, %xmm1
mulsd %xmm0, %xmm0
addsd %xmm1, %xmm0
sqrtsd %xmm0, %xmm1
divsd 0x55f7(%rip), %xmm1     # 0x36198
xorpd %xmm0, %xmm0
movq %r15, %rdi
movq %r14, %rsi
callq 0x3180b
movsd %xmm0, 0x110(%rbx)
jmp 0x30a6a
movb (%r14), %al
xorl %ecx, %ecx
cmpb $0x6e, %al
je 0x30d3d
xorl %ebp, %ebp
testb %al, %al
je 0x30d09
movb $0x0, 0x10(%rsp)
movb (%r14), %r13b
testb %r13b, %r13b
je 0x30bf9
movsbl %r13b, %edi
callq 0x30174
cmpb $0x2c, %r13b
je 0x30bf4
testl %eax, %eax
je 0x30bf9
incq %r14
jmp 0x30bd9
movl %ebp, 0xc(%rsp)
xorl %r12d, %r12d
movslq %r12d, %rbp
testb %r13b, %r13b
je 0x30c32
movsbl %r13b, %edi
callq 0x30174
cmpb $0x2c, %r13b
je 0x30c32
testl %eax, %eax
jne 0x30c32
cmpl $0x3e, %r12d
jg 0x30c29
incl %r12d
movb %r13b, 0x10(%rsp,%rbp)
movb 0x1(%r14), %r13b
incq %r14
jmp 0x30c00
movb $0x0, 0x10(%rsp,%rbp)
cmpb $0x0, 0x10(%rsp)
movl 0xc(%rsp), %ebp
je 0x30d09
cmpl $0x7, %ebp
jg 0x30c9c
movsd 0xd060(%r15), %xmm0
movsd 0xd068(%r15), %xmm1
mulsd %xmm1, %xmm1
mulsd %xmm0, %xmm0
addsd %xmm1, %xmm0
sqrtsd %xmm0, %xmm1
divsd 0x5523(%rip), %xmm1     # 0x36198
xorpd %xmm0, %xmm0
movq %r15, %rdi
leaq 0x10(%rsp), %rsi
callq 0x3180b
andpd 0x53a2(%rip), %xmm0     # 0x36030
movslq %ebp, %rax
incl %ebp
movlpd %xmm0, 0x120(%rbx,%rax,8)
movb (%r14), %al
jmp 0x30bcc
movb $0x0, 0x199(%rbx)
jmp 0x30a6a
movsd 0xd060(%r15), %xmm0
movsd 0xd068(%r15), %xmm1
mulsd %xmm1, %xmm1
mulsd %xmm0, %xmm0
addsd %xmm1, %xmm0
sqrtsd %xmm0, %xmm1
divsd 0x54be(%rip), %xmm1     # 0x36198
xorpd %xmm0, %xmm0
movq %r15, %rdi
movq %r14, %rsi
callq 0x3180b
movsd %xmm0, 0x118(%rbx)
jmp 0x30a6a
movb $0x2, 0x199(%rbx)
addq $0xd0, %rbx
jmp 0x30b67
xorl %eax, %eax
testl %ebp, %ebp
movl $0x0, %ecx
cmovgl %ebp, %ecx
xorpd %xmm0, %xmm0
cmpq %rax, %rcx
je 0x30d2c
addsd 0x120(%rbx,%rax,8), %xmm0
incq %rax
jmp 0x30d19
xorl %ecx, %ecx
movsd 0x553a(%rip), %xmm1     # 0x36270
ucomisd %xmm0, %xmm1
cmovbl %ebp, %ecx
movl %ecx, 0x160(%rbx)
jmp 0x30a6a
movq %r14, %rdi
callq 0x317ef
movsd %xmm0, 0x88(%rbx)
jmp 0x30a6a
leaq 0x70ee(%rip), %rsi      # 0x37e52
movq %r14, %rdi
callq 0x85d0
testl %eax, %eax
je 0x30e0c
leaq 0x70dc(%rip), %rsi      # 0x37e57
movq %r14, %rdi
callq 0x85d0
testl %eax, %eax
je 0x30e40
leaq 0x70cb(%rip), %rsi      # 0x37e5d
movq %r14, %rdi
callq 0x85d0
testl %eax, %eax
sete %al
addb %al, %al
jmp 0x30e42
leaq 0x70b7(%rip), %rsi      # 0x37e64
movq %r14, %rdi
callq 0x85d0
testl %eax, %eax
je 0x30e4d
leaq 0x7093(%rip), %rsi      # 0x37e57
movq %r14, %rdi
callq 0x85d0
testl %eax, %eax
je 0x30e97
leaq 0x708f(%rip), %rsi      # 0x37e6a
movq %r14, %rdi
callq 0x85d0
testl %eax, %eax
sete %al
addb %al, %al
jmp 0x30e99
movq %r14, %rdi
callq 0x31892
xorpd %xmm1, %xmm1
maxsd %xmm0, %xmm1
movsd %xmm1, 0x168(%rbx)
jmp 0x30a6a
xorl %eax, %eax
jmp 0x30e42
leaq 0x7059(%rip), %rsi      # 0x37e70
movq %r14, %rdi
callq 0x85d0
testl %eax, %eax
je 0x30ec8
leaq 0x704a(%rip), %rsi      # 0x37e78
movq %r14, %rdi
callq 0x85d0
testl %eax, %eax
sete %al
jmp 0x30eca
movb $0x1, %al
movb %al, 0x165(%rbx)
jmp 0x30a6a
xorl %eax, %eax
jmp 0x30e99
movsd 0xd060(%r15), %xmm0
movsd 0xd068(%r15), %xmm1
mulsd %xmm1, %xmm1
mulsd %xmm0, %xmm0
addsd %xmm1, %xmm0
sqrtsd %xmm0, %xmm1
divsd 0x531d(%rip), %xmm1     # 0x36198
xorpd %xmm0, %xmm0
movq %r15, %rdi
movq %r14, %rsi
callq 0x3180b
movsd %xmm0, 0x178(%rbx)
jmp 0x30a6a
movb $0x1, %al
movb %al, 0x164(%rbx)
jmp 0x30a6a
leaq 0x10(%rsp), %r15
movq %r15, %rdi
movq %r14, %rsi
callq 0x30f21
addq $0x40, %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x31840
jmp 0x30a6a
xorl %eax, %eax
movb %al, 0x170(%rbx)
jmp 0x30a6a
movq %r14, %rdi
callq 0x315e0
movl %eax, 0x180(%rbx)
jmp 0x30a6a
movq %r14, %rdi
callq 0x317ef
movsd %xmm0, 0x188(%rbx)
jmp 0x30a6a
movsd 0x3103(%rip), %xmm1     # 0x34008
xorpd %xmm0, %xmm0
movq %r15, %rdi
movq %r14, %rsi
callq 0x3180b
movsd %xmm0, 0x190(%rbx)
jmp 0x30a6a