// File: /workspace/github_cpp_makefile_star2_O2/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 $0xe8, %rsp
movq %rsi, %rbx
movq %rdi, %r14
movabsq $0x3ff0000000000000, %r13 # imm = 0x3FF0000000000000
movq %r13, (%rdi)
xorpd %xmm0, %xmm0
movupd %xmm0, 0x8(%rdi)
movq %r13, 0x18(%rdi)
movupd %xmm0, 0x20(%rdi)
leaq 0x78(%rsp), %rbp
pushq $0x6
popq %r12
movhpd 0x30a0(%rip), %xmm0     # xmm0 = xmm0[0],mem[0]
movapd %xmm0, 0xd0(%rsp)
pushq $0x5
popq %r15
cmpb $0x0, (%rbx)
je 0x31377
movq %rbx, %rdi
leaq 0x6ef8(%rip), %rsi      # 0x37e80
movq %r12, %rdx
callq 0x81e0
testl %eax, %eax
je 0x31022
movq %rbx, %rdi
leaq 0x6ee5(%rip), %rsi      # 0x37e87
pushq $0x9
popq %rdx
callq 0x81e0
testl %eax, %eax
je 0x31077
movq %rbx, %rdi
leaq 0x6ed5(%rip), %rsi      # 0x37e91
movq %r15, %rdx
callq 0x81e0
testl %eax, %eax
je 0x310d6
movq %rbx, %rdi
leaq 0x6ec1(%rip), %rsi      # 0x37e97
movq %r12, %rdx
callq 0x81e0
testl %eax, %eax
je 0x31127
movq %rbx, %rdi
leaq 0x6eae(%rip), %rsi      # 0x37e9e
movq %r15, %rdx
callq 0x81e0
testl %eax, %eax
je 0x312a8
movq %rbx, %rdi
leaq 0x6e9a(%rip), %rsi      # 0x37ea4
movq %r15, %rdx
callq 0x81e0
testl %eax, %eax
je 0x31301
incq %rbx
jmp 0x30f75
andl $0x0, 0x10(%rsp)
movq %rbx, %rdi
leaq 0x40(%rsp), %rsi
pushq $0x6
popq %rdx
leaq 0x10(%rsp), %rcx
callq 0x31b2b
movl %eax, %r15d
cmpl $0x6, 0x10(%rsp)
jne 0x3135f
movapd 0x40(%rsp), %xmm0
movapd 0x50(%rsp), %xmm1
movaps 0x60(%rsp), %xmm2
movaps %xmm2, 0x90(%rsp)
movapd %xmm1, 0x80(%rsp)
movapd %xmm0, 0x70(%rsp)
jmp 0x3135f
andl $0x0, 0x10(%rsp)
movq %rbx, %rdi
leaq 0x40(%rsp), %rsi
pushq $0x2
popq %rdx
leaq 0x10(%rsp), %rcx
callq 0x31b2b
movl %eax, %r15d
cmpl $0x1, 0x10(%rsp)
xorpd %xmm0, %xmm0
je 0x310a5
movsd 0x48(%rsp), %xmm0
movsd 0x40(%rsp), %xmm1
movq %r13, 0x70(%rsp)
xorps %xmm2, %xmm2
movups %xmm2, (%rbp)
movq %r13, 0x88(%rsp)
movsd %xmm1, 0x90(%rsp)
movsd %xmm0, 0x98(%rsp)
jmp 0x3135f
andl $0x0, 0x10(%rsp)
movq %rbx, %rdi
leaq 0x40(%rsp), %rsi
pushq $0x2
popq %rdx
leaq 0x10(%rsp), %rcx
callq 0x31b2b
movl %eax, %r15d
cmpl $0x1, 0x10(%rsp)
movsd 0x40(%rsp), %xmm0
movapd %xmm0, %xmm1
je 0x3110a
movsd 0x48(%rsp), %xmm1
movsd %xmm0, 0x70(%rsp)
xorpd %xmm0, %xmm0
movupd %xmm0, (%rbp)
movsd %xmm1, 0x88(%rsp)
jmp 0x3135a
movq %r13, %rbp
andl $0x0, 0xc(%rsp)
movq %rbx, %rdi
leaq 0xb0(%rsp), %rsi
pushq $0x3
popq %rdx
leaq 0xc(%rsp), %rcx
callq 0x31b2b
movl %eax, %r15d
movl 0xc(%rsp), %r13d
cmpl $0x1, %r13d
xorpd %xmm0, %xmm0
jne 0x31165
leaq 0xb8(%rsp), %rax
movupd %xmm0, (%rax)
movq %rbp, 0x40(%rsp)
leaq 0x48(%rsp), %rcx
movupd %xmm0, (%rcx)
movq %rbp, 0x58(%rsp)
movapd %xmm0, 0x18(%rcx)
cmpl $0x2, %r13d
jl 0x311bc
movq %rbp, 0x10(%rsp)
leaq 0x18(%rsp), %rcx
movupd %xmm0, (%rcx)
movq %rbp, 0x28(%rsp)
movupd 0xb8(%rsp), %xmm0
xorpd 0x4f19(%rip), %xmm0     # 0x360c0
movapd %xmm0, 0x30(%rsp)
leaq 0x40(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x31a7c
movsd 0xb0(%rsp), %xmm0
divsd 0x5003(%rip), %xmm0     # 0x361d0
mulsd 0x5003(%rip), %xmm0     # 0x361d8
movsd %xmm0, 0xa0(%rsp)
callq 0x87d0
movsd %xmm0, 0xa8(%rsp)
movsd 0xa0(%rsp), %xmm0
callq 0x80e0
movsd 0xa8(%rsp), %xmm1
movsd %xmm1, 0x10(%rsp)
movsd %xmm0, 0x18(%rsp)
xorps 0x4eaa(%rip), %xmm0     # 0x360c0
movlps %xmm0, 0x20(%rsp)
movsd %xmm1, 0x28(%rsp)
leaq 0x18(%rsp), %rax
xorps %xmm0, %xmm0
movaps %xmm0, 0x18(%rax)
leaq 0x40(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x31a7c
cmpl $0x2, %r13d
movq %rbp, %r13
jl 0x31276
movq %r13, 0x10(%rsp)
xorps %xmm0, %xmm0
leaq 0x18(%rsp), %rax
movups %xmm0, (%rax)
movq %r13, 0x28(%rsp)
movups 0xb8(%rsp), %xmm0
movaps %xmm0, 0x30(%rsp)
leaq 0x40(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x31a7c
movapd 0x40(%rsp), %xmm0
movapd 0x50(%rsp), %xmm1
movaps 0x60(%rsp), %xmm2
movaps %xmm2, 0x90(%rsp)
movapd %xmm1, 0x80(%rsp)
movapd %xmm0, 0x70(%rsp)
leaq 0x78(%rsp), %rbp
jmp 0x3135f
andl $0x0, 0x10(%rsp)
movq %rbx, %rdi
leaq 0x40(%rsp), %rsi
pushq $0x1
popq %rdx
leaq 0x10(%rsp), %rcx
callq 0x31b2b
movl %eax, %r15d
movsd 0x40(%rsp), %xmm0
divsd 0x4efd(%rip), %xmm0     # 0x361d0
mulsd 0x4efd(%rip), %xmm0     # 0x361d8
callq 0x8290
movsd 0x2d20(%rip), %xmm1     # 0x34008
movapd %xmm1, 0x70(%rsp)
movsd %xmm0, 0x80(%rsp)
movq %r13, 0x88(%rsp)
jmp 0x31356
andl $0x0, 0x10(%rsp)
movq %rbx, %rdi
leaq 0x40(%rsp), %rsi
pushq $0x1
popq %rdx
leaq 0x10(%rsp), %rcx
callq 0x31b2b
movl %eax, %r15d
movsd 0x40(%rsp), %xmm0
divsd 0x4ea4(%rip), %xmm0     # 0x361d0
mulsd 0x4ea4(%rip), %xmm0     # 0x361d8
callq 0x8290
movq %r13, 0x70(%rsp)
movsd %xmm0, 0x78(%rsp)
movapd 0xd0(%rsp), %xmm0
movapd %xmm0, 0x80(%rsp)
xorpd %xmm0, %xmm0
movapd %xmm0, 0x18(%rbp)
movslq %r15d, %rax
addq %rax, %rbx
movq %r14, %rdi
leaq 0x70(%rsp), %rsi
callq 0x31840
jmp 0x30f71
addq $0xe8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq