// File: 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
movq %rsp, %rbp
subq $0x90, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rdi
callq 0x7a330
movq %rax, -0x58(%rbp)
cmpq $0x0, -0x58(%rbp)
jne 0x79bc7
movl $0x0, -0x4(%rbp)
jmp 0x7a111
movq -0x18(%rbp), %rdi
leaq 0xc1e9(%rip), %rsi      # 0x85dbb
callq 0x9770
cmpl $0x0, %eax
jne 0x79bee
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x7a360
jmp 0x7a10a
movq -0x18(%rbp), %rdi
leaq 0xc1c8(%rip), %rsi      # 0x85dc1
callq 0x9770
cmpl $0x0, %eax
jne 0x79c28
movq -0x20(%rbp), %rdi
leaq 0xc1bb(%rip), %rsi      # 0x85dc9
callq 0x9770
cmpl $0x0, %eax
jne 0x79c23
movq -0x58(%rbp), %rax
movb $0x0, 0x19a(%rax)
jmp 0x7a108
movq -0x18(%rbp), %rdi
leaq 0xc19b(%rip), %rsi      # 0x85dce
callq 0x9770
cmpl $0x0, %eax
jne 0x79cc2
movq -0x20(%rbp), %rdi
leaq 0xc17d(%rip), %rsi      # 0x85dc9
callq 0x9770
cmpl $0x0, %eax
jne 0x79c63
movq -0x58(%rbp), %rax
movb $0x0, 0x198(%rax)
jmp 0x79cbd
movq -0x20(%rbp), %rdi
leaq 0xc165(%rip), %rsi      # 0x85dd3
movl $0x4, %edx
callq 0x9280
cmpl $0x0, %eax
jne 0x79c9e
movq -0x58(%rbp), %rax
movb $0x2, 0x198(%rax)
movq -0x58(%rbp), %rdi
addq $0x90, %rdi
movq -0x20(%rbp), %rsi
callq 0x7a490
jmp 0x79cbb
movq -0x58(%rbp), %rax
movb $0x1, 0x198(%rax)
movq -0x20(%rbp), %rdi
callq 0x7a530
movl %eax, %ecx
movq -0x58(%rbp), %rax
movl %ecx, 0x70(%rax)
jmp 0x79cbd
jmp 0x7a106
movq -0x18(%rbp), %rdi
leaq 0xc156(%rip), %rsi      # 0x85e23
callq 0x9770
cmpl $0x0, %eax
jne 0x79cee
movq -0x20(%rbp), %rdi
callq 0x7a5f0
movq -0x58(%rbp), %rax
movsd %xmm0, 0x78(%rax)
jmp 0x7a104
movq -0x18(%rbp), %rdi
leaq 0xc0df(%rip), %rsi      # 0x85dd8
callq 0x9770
cmpl $0x0, %eax
jne 0x79d1d
movq -0x20(%rbp), %rdi
callq 0x7a5f0
movq -0x58(%rbp), %rax
movsd %xmm0, 0x80(%rax)
jmp 0x7a102
movq -0x18(%rbp), %rdi
leaq 0xc0bd(%rip), %rsi      # 0x85de5
callq 0x9770
cmpl $0x0, %eax
jne 0x79db7
movq -0x20(%rbp), %rdi
leaq 0xc088(%rip), %rsi      # 0x85dc9
callq 0x9770
cmpl $0x0, %eax
jne 0x79d58
movq -0x58(%rbp), %rax
movb $0x0, 0x199(%rax)
jmp 0x79db2
movq -0x20(%rbp), %rdi
leaq 0xc070(%rip), %rsi      # 0x85dd3
movl $0x4, %edx
callq 0x9280
cmpl $0x0, %eax
jne 0x79d93
movq -0x58(%rbp), %rax
movb $0x2, 0x199(%rax)
movq -0x58(%rbp), %rdi
addq $0xd0, %rdi
movq -0x20(%rbp), %rsi
callq 0x7a490
jmp 0x79db0
movq -0x58(%rbp), %rax
movb $0x1, 0x199(%rax)
movq -0x20(%rbp), %rdi
callq 0x7a530
movl %eax, %ecx
movq -0x58(%rbp), %rax
movl %ecx, 0x74(%rax)
jmp 0x79db2
jmp 0x7a100
movq -0x18(%rbp), %rdi
leaq 0xc02a(%rip), %rsi      # 0x85dec
callq 0x9770
cmpl $0x0, %eax
jne 0x79e09
movq -0x10(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x10(%rbp), %rdi
callq 0x7a6b0
movq -0x68(%rbp), %rdi
movq -0x60(%rbp), %rsi
movaps %xmm0, %xmm1
xorps %xmm0, %xmm0
callq 0x7a650
movq -0x58(%rbp), %rax
movsd %xmm0, 0x110(%rax)
jmp 0x7a0fe
movq -0x18(%rbp), %rdi
leaq 0xbfe5(%rip), %rsi      # 0x85df9
callq 0x9770
cmpl $0x0, %eax
jne 0x79e47
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x58(%rbp), %rdx
addq $0x120, %rdx            # imm = 0x120
callq 0x7a720
movl %eax, %ecx
movq -0x58(%rbp), %rax
movl %ecx, 0x160(%rax)
jmp 0x7a0fc
movq -0x18(%rbp), %rdi
leaq 0xbfb8(%rip), %rsi      # 0x85e0a
callq 0x9770
cmpl $0x0, %eax
jne 0x79e99
movq -0x10(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x10(%rbp), %rdi
callq 0x7a6b0
movq -0x78(%rbp), %rdi
movq -0x70(%rbp), %rsi
movaps %xmm0, %xmm1
xorps %xmm0, %xmm0
callq 0x7a650
movq -0x58(%rbp), %rax
movsd %xmm0, 0x118(%rax)
jmp 0x7a0fa
movq -0x18(%rbp), %rdi
leaq 0xbf78(%rip), %rsi      # 0x85e1c
callq 0x9770
cmpl $0x0, %eax
jne 0x79ec8
movq -0x20(%rbp), %rdi
callq 0x7a5f0
movq -0x58(%rbp), %rax
movsd %xmm0, 0x88(%rax)
jmp 0x7a0f8
movq -0x18(%rbp), %rdi
leaq 0xbf58(%rip), %rsi      # 0x85e2b
callq 0x9770
cmpl $0x0, %eax
jne 0x79ef7
movq -0x20(%rbp), %rdi
callq 0x7a840
movb %al, %cl
movq -0x58(%rbp), %rax
movb %cl, 0x165(%rax)
jmp 0x7a0f6
movq -0x18(%rbp), %rdi
leaq 0xbf38(%rip), %rsi      # 0x85e3a
callq 0x9770
cmpl $0x0, %eax
jne 0x79f26
movq -0x20(%rbp), %rdi
callq 0x7a8b0
movb %al, %cl
movq -0x58(%rbp), %rax
movb %cl, 0x164(%rax)
jmp 0x7a0f4
movq -0x18(%rbp), %rdi
leaq 0xbf19(%rip), %rsi      # 0x85e4a
callq 0x9770
cmpl $0x0, %eax
jne 0x79f55
movq -0x20(%rbp), %rdi
callq 0x7a920
movq -0x58(%rbp), %rax
movsd %xmm0, 0x168(%rax)
jmp 0x7a0f2
movq -0x18(%rbp), %rdi
leaq 0xbefc(%rip), %rsi      # 0x85e5c
callq 0x9770
cmpl $0x0, %eax
jne 0x79f84
movq -0x20(%rbp), %rdi
callq 0x7a960
movb %al, %cl
movq -0x58(%rbp), %rax
movb %cl, 0x170(%rax)
jmp 0x7a0f0
movq -0x18(%rbp), %rdi
leaq 0xbed7(%rip), %rsi      # 0x85e66
callq 0x9770
cmpl $0x0, %eax
jne 0x79fdc
movq -0x10(%rbp), %rax
movq %rax, -0x88(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x80(%rbp)
movq -0x10(%rbp), %rdi
callq 0x7a6b0
movq -0x88(%rbp), %rdi
movq -0x80(%rbp), %rsi
movaps %xmm0, %xmm1
xorps %xmm0, %xmm0
callq 0x7a650
movq -0x58(%rbp), %rax
movsd %xmm0, 0x178(%rax)
jmp 0x7a0ee
movq -0x18(%rbp), %rdi
leaq 0xbe89(%rip), %rsi      # 0x85e70
callq 0x9770
cmpl $0x0, %eax
jne 0x7a014
leaq -0x50(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x7a120
movq -0x58(%rbp), %rdi
addq $0x40, %rdi
leaq -0x50(%rbp), %rsi
callq 0x7a9c0
jmp 0x7a0ec
movq -0x18(%rbp), %rdi
leaq 0xbe5b(%rip), %rsi      # 0x85e7a
callq 0x9770
cmpl $0x0, %eax
jne 0x7a043
movq -0x20(%rbp), %rdi
callq 0x7a530
movl %eax, %ecx
movq -0x58(%rbp), %rax
movl %ecx, 0x180(%rax)
jmp 0x7a0ea
movq -0x18(%rbp), %rdi
leaq 0xbe37(%rip), %rsi      # 0x85e85
callq 0x9770
cmpl $0x0, %eax
jne 0x7a06f
movq -0x20(%rbp), %rdi
callq 0x7a5f0
movq -0x58(%rbp), %rax
movsd %xmm0, 0x188(%rax)
jmp 0x7a0e8
movq -0x18(%rbp), %rdi
leaq 0xbd9b(%rip), %rsi      # 0x85e15
callq 0x9770
cmpl $0x0, %eax
jne 0x7a0aa
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rsi
xorps %xmm0, %xmm0
movsd 0xa061(%rip), %xmm1     # 0x840f8
callq 0x7a650
movq -0x58(%rbp), %rax
movsd %xmm0, 0x190(%rax)
jmp 0x7a0e6
movq -0x18(%rbp), %rdi
leaq 0xbf01(%rip), %rsi      # 0x85fb6
callq 0x9770
cmpl $0x0, %eax
jne 0x7a0db
movq -0x58(%rbp), %rdi
movq -0x20(%rbp), %rsi
movl $0x3f, %edx
callq 0x92c0
movq -0x58(%rbp), %rax
movb $0x0, 0x3f(%rax)
jmp 0x7a0e4
movl $0x0, -0x4(%rbp)
jmp 0x7a111
jmp 0x7a0e6
jmp 0x7a0e8
jmp 0x7a0ea
jmp 0x7a0ec
jmp 0x7a0ee
jmp 0x7a0f0
jmp 0x7a0f2
jmp 0x7a0f4
jmp 0x7a0f6
jmp 0x7a0f8
jmp 0x7a0fa
jmp 0x7a0fc
jmp 0x7a0fe
jmp 0x7a100
jmp 0x7a102
jmp 0x7a104
jmp 0x7a106
jmp 0x7a108
jmp 0x7a10a
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x90, %rsp
popq %rbp
retq
nopl (%rax)