// File: /workspace/github_cpp_makefile_star2_O1/thierry7100[P]CutOptim/include/nanosvg.h
// Function: nsvg__parseTransform(double*, char const*)
static void nsvg__parseTransform(double* xform, const char* str)
{
	double t[6];
	nsvg__xformIdentity(xform);
	while (*str)
	{
		if (strncmp(str, "matrix", 6) == 0)
			str += nsvg__parseMatrix(t, str);
		else if (strncmp(str, "translate", 9) == 0)
			str += nsvg__parseTranslate(t, str);
		else if (strncmp(str, "scale", 5) == 0)
			str += nsvg__parseScale(t, str);
		else if (strncmp(str, "rotate", 6) == 0)
			str += nsvg__parseRotate(t, str);
		else if (strncmp(str, "skewX", 5) == 0)
			str += nsvg__parseSkewX(t, str);
		else if (strncmp(str, "skewY", 5) == 0)
			str += nsvg__parseSkewY(t, str);
		else{
			++str;
			continue;
		}

		nsvg__xformPremultiply(xform, t);
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x98, %rsp
movabsq $0x3ff0000000000000, %r13 # imm = 0x3FF0000000000000
movq %r13, (%rdi)
xorpd %xmm0, %xmm0
movupd %xmm0, 0x8(%rdi)
movq %r13, 0x18(%rdi)
movupd %xmm0, 0x20(%rdi)
cmpb $0x0, (%rsi)
je 0x3a332
movq %rsi, %rbx
movq %rdi, %r14
leaq 0x30(%rsp), %rbp
leaq 0x18(%rsp), %r15
movl $0x6, %edx
movq %rbx, %rdi
leaq 0x6f5f(%rip), %rsi      # 0x40e3c
callq 0x71e0
testl %eax, %eax
je 0x39f7e
movl $0x9, %edx
movq %rbx, %rdi
leaq 0x6f4a(%rip), %rsi      # 0x40e43
callq 0x71e0
testl %eax, %eax
je 0x39fd4
movl $0x5, %edx
movq %rbx, %rdi
leaq 0x6f38(%rip), %rsi      # 0x40e4d
callq 0x71e0
testl %eax, %eax
je 0x3a02a
movl $0x6, %edx
movq %rbx, %rdi
leaq 0x6f22(%rip), %rsi      # 0x40e53
callq 0x71e0
testl %eax, %eax
je 0x3a085
movl $0x5, %edx
movq %rbx, %rdi
leaq 0x6f0d(%rip), %rsi      # 0x40e5a
callq 0x71e0
testl %eax, %eax
je 0x3a148
movl $0x5, %edx
movq %rbx, %rdi
leaq 0x6ef7(%rip), %rsi      # 0x40e60
callq 0x71e0
testl %eax, %eax
je 0x3a2b7
incq %rbx
jmp 0x3a329
movl $0x0, 0xc(%rsp)
movq %rbx, %rdi
leaq 0x40(%rsp), %rsi
movl $0x6, %edx
leaq 0xc(%rsp), %rcx
callq 0x3ae48
movl %eax, %r12d
cmpl $0x6, 0xc(%rsp)
jne 0x3a316
movapd 0x40(%rsp), %xmm0
movapd 0x50(%rsp), %xmm1
movapd 0x60(%rsp), %xmm2
movapd %xmm2, 0x30(%rsp)
movapd %xmm1, 0x20(%rsp)
movapd %xmm0, 0x10(%rsp)
jmp 0x3a316
movl $0x0, 0xc(%rsp)
movq %rbx, %rdi
leaq 0x40(%rsp), %rsi
movl $0x2, %edx
leaq 0xc(%rsp), %rcx
callq 0x3ae48
movl %eax, %r12d
cmpl $0x1, 0xc(%rsp)
jne 0x3a006
movq $0x0, 0x48(%rsp)
movapd 0x40(%rsp), %xmm0
movq %r13, 0x10(%rsp)
xorpd %xmm1, %xmm1
movupd %xmm1, (%r15)
movq %r13, 0x28(%rsp)
movapd %xmm0, 0x30(%rsp)
jmp 0x3a316
movl $0x0, 0xc(%rsp)
movq %rbx, %rdi
leaq 0x40(%rsp), %rsi
movl $0x2, %edx
leaq 0xc(%rsp), %rcx
callq 0x3ae48
movl %eax, %r12d
cmpl $0x1, 0xc(%rsp)
jne 0x3a05f
movsd 0x40(%rsp), %xmm0
movsd %xmm0, 0x48(%rsp)
movsd 0x40(%rsp), %xmm0
movsd 0x48(%rsp), %xmm1
movsd %xmm0, 0x10(%rsp)
xorpd %xmm0, %xmm0
movupd %xmm0, (%r15)
movsd %xmm1, 0x28(%rsp)
jmp 0x3a311
movq %rbp, %r15
movq %r13, %rbp
movl $0x0, 0xc(%rsp)
movq %rbx, %rdi
leaq 0x40(%rsp), %rsi
movl $0x3, %edx
leaq 0xc(%rsp), %rcx
callq 0x3ae48
movl %eax, %r12d
movl 0xc(%rsp), %r13d
cmpl $0x1, %r13d
jne 0x3a0c5
xorpd %xmm0, %xmm0
leaq 0x48(%rsp), %rax
movupd %xmm0, (%rax)
movsd 0x40(%rsp), %xmm1
movsd 0x48(%rsp), %xmm0
movsd %xmm0, 0x80(%rsp)
movsd 0x50(%rsp), %xmm0
movsd %xmm0, 0x78(%rsp)
divsd 0x508a(%rip), %xmm1     # 0x3f178
mulsd 0x508a(%rip), %xmm1     # 0x3f180
movsd %xmm1, 0x88(%rsp)
movapd %xmm1, %xmm0
callq 0x7790
movsd %xmm0, 0x90(%rsp)
movsd 0x88(%rsp), %xmm0
callq 0x70f0
xorpd %xmm7, %xmm7
xorpd %xmm1, %xmm1
cmpl $0x2, %r13d
jge 0x3a19e
xorpd %xmm8, %xmm8
movq %rbp, %r13
movsd 0x80(%rsp), %xmm10
movsd 0x78(%rsp), %xmm11
jmp 0x3a1c1
movl $0x0, 0xc(%rsp)
movq %rbx, %rdi
leaq 0x40(%rsp), %rsi
movl $0x1, %edx
leaq 0xc(%rsp), %rcx
callq 0x3ae48
movl %eax, %r12d
movsd 0x40(%rsp), %xmm0
divsd 0x5000(%rip), %xmm0     # 0x3f178
mulsd 0x5000(%rip), %xmm0     # 0x3f180
callq 0x7280
movq %r13, 0x10(%rsp)
movq $0x0, 0x18(%rsp)
movsd %xmm0, 0x20(%rsp)
jmp 0x3a308
movsd 0x80(%rsp), %xmm10
subsd %xmm10, %xmm1
xorpd %xmm8, %xmm8
movsd 0x78(%rsp), %xmm11
subsd %xmm11, %xmm8
movq %rbp, %r13
movapd %xmm0, %xmm2
mulsd %xmm7, %xmm2
movsd 0x90(%rsp), %xmm9
movapd %xmm9, %xmm6
subsd %xmm2, %xmm6
movapd %xmm9, %xmm4
mulsd %xmm7, %xmm4
movapd %xmm8, %xmm5
mulsd %xmm0, %xmm5
movapd %xmm1, %xmm3
mulsd %xmm9, %xmm3
subsd %xmm5, %xmm3
addsd %xmm7, %xmm3
movapd %xmm0, %xmm5
addsd %xmm4, %xmm5
subsd %xmm0, %xmm4
addsd %xmm9, %xmm2
mulsd %xmm9, %xmm8
mulsd %xmm0, %xmm1
addsd %xmm8, %xmm1
addsd %xmm7, %xmm1
movq %r15, %rbp
jl 0x3a28c
movapd %xmm5, %xmm0
xorpd %xmm9, %xmm9
mulsd %xmm9, %xmm0
addsd %xmm6, %xmm0
movapd %xmm2, %xmm7
mulsd %xmm9, %xmm7
addsd %xmm4, %xmm7
movapd %xmm1, %xmm8
mulsd %xmm9, %xmm8
addsd %xmm3, %xmm8
addsd %xmm8, %xmm10
mulsd %xmm9, %xmm6
addsd %xmm6, %xmm5
mulsd %xmm9, %xmm4
addsd %xmm4, %xmm2
mulsd %xmm9, %xmm3
addsd %xmm1, %xmm3
addsd %xmm3, %xmm11
movapd %xmm7, %xmm4
movapd %xmm10, %xmm3
movapd %xmm11, %xmm1
movapd %xmm0, %xmm6
leaq 0x18(%rsp), %r15
movsd %xmm6, 0x10(%rsp)
movsd %xmm5, 0x18(%rsp)
movsd %xmm4, 0x20(%rsp)
movsd %xmm2, 0x28(%rsp)
movsd %xmm3, 0x30(%rsp)
movsd %xmm1, 0x38(%rsp)
jmp 0x3a316
movl $0x0, 0xc(%rsp)
movq %rbx, %rdi
leaq 0x40(%rsp), %rsi
movl $0x1, %edx
leaq 0xc(%rsp), %rcx
callq 0x3ae48
movl %eax, %r12d
movsd 0x40(%rsp), %xmm0
divsd 0x4e91(%rip), %xmm0     # 0x3f178
mulsd 0x4e91(%rip), %xmm0     # 0x3f180
callq 0x7280
movq %r13, 0x10(%rsp)
movsd %xmm0, 0x18(%rsp)
movq $0x0, 0x20(%rsp)
movq %r13, 0x28(%rsp)
xorpd %xmm0, %xmm0
movapd %xmm0, (%rbp)
movslq %r12d, %rax
addq %rax, %rbx
movq %r14, %rdi
leaq 0x10(%rsp), %rsi
callq 0x3a9df
cmpb $0x0, (%rbx)
jne 0x39ece
addq $0x98, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq