// File: yukioc[P]tscrpt/t-tscrpt.cpp
// Function: t_mul()
void t_mul(){ /*{{{*/
	tscrpt_t sc;
	obj_t*o;

	//! \test 2 * 3 => 6
	o = sc.eval("2 * 3");
	mu_assert(o!=NULL);
	mu_assert(o->type=='N');
	mu_assert(o->value()==6);
	delete o;

	//! \test -4 * 5 => -20
	o = sc.eval("-4 * 5");
	mu_assert(o!=NULL);
	mu_assert(o->type=='N');
	mu_assert(o->value()==-20);
	delete o;

	//! \test 6 * -7 => -42
	o = sc.eval("6 * -7");
	mu_assert(o!=NULL);
	mu_assert(o->type=='N');
	mu_assert(o->value()==-42);
	delete o;

	//! \test -8 * -9 => 72
	o = sc.eval("-8 * -9");
	mu_assert(o!=NULL);
	mu_assert(o->type=='N');
	mu_assert(o->value()==72);
	delete o;

	//! \test 0 * -10 => 0
	o = sc.eval("0 * -10");
	mu_assert(o!=NULL);
	mu_assert(o->type=='N');
	mu_assert(o->value()==0);
	delete o;

	//! \test "+-" * 3 => "+-+-+-"
	o = sc.eval("\"+-\" * 3");
	mu_assert(o!=NULL);
	mu_assert(o->type=='S');
	mu_assert(o->str().compare("+-+-+-")==0);
	delete o;

	//! \test 10 * "mmm" => 0
	o = sc.eval("10 * \"mmm\"");
	mu_assert(o!=NULL);
	mu_assert(o->type=='N');
	mu_assert(o->value()==0);
	delete o;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xd0, %rsp
leaq -0x8(%rbp), %rdi
movq %rdi, -0x30(%rbp)
callq 0x25b0
movq -0x30(%rbp), %rdi
leaq 0x3e50(%rip), %rsi      # 0xa813
callq 0x2670
movq %rax, -0x28(%rbp)
jmp 0x69ce
movq -0x28(%rbp), %rax
movq %rax, -0x10(%rbp)
movl 0x7820(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x7817(%rip)      # 0xe1fc
cmpq $0x0, -0x10(%rbp)
jne 0x6a39
movl 0x7802(%rip), %eax      # 0xe1f4
incl %eax
movl %eax, 0x77fa(%rip)      # 0xe1f4
leaq 0x3adb(%rip), %rdi      # 0xa4dc
leaq 0x3af2(%rip), %rsi      # 0xa4fa
leaq 0x3d05(%rip), %rcx      # 0xa714
xorl %eax, %eax
movl $0xba, %edx
callq 0x2040
jmp 0x6a1d
jmp 0x6a39
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x8(%rbp), %rdi
callq 0x25d0
jmp 0x7301
jmp 0x6a3b
jmp 0x6a3d
jmp 0x6a3f
movl 0x77b7(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x77ae(%rip)      # 0xe1fc
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x4e, %eax
je 0x6a8d
movl 0x7794(%rip), %eax      # 0xe1f4
incl %eax
movl %eax, 0x778c(%rip)      # 0xe1f4
leaq 0x3a6d(%rip), %rdi      # 0xa4dc
leaq 0x3a84(%rip), %rsi      # 0xa4fa
leaq 0x3c9f(%rip), %rcx      # 0xa71c
xorl %eax, %eax
movl $0xbb, %edx
callq 0x2040
jmp 0x6a8b
jmp 0x6a8d
jmp 0x6a8f
jmp 0x6a91
jmp 0x6a93
movl 0x7763(%rip), %eax      # 0xe1fc
incl %eax
movl %eax, 0x775b(%rip)      # 0xe1fc
movq -0x10(%rbp), %rdi
callq 0x2480
movl %eax, -0x34(%rbp)
jmp 0x6aaf
movl -0x34(%rbp), %eax
cmpl $0x6, %eax
je 0x6aea
movl 0x7737(%rip), %eax      # 0xe1f4
incl %eax
movl %eax, 0x772f(%rip)      # 0xe1f4
leaq 0x3a10(%rip), %rdi      # 0xa4dc
leaq 0x3a27(%rip), %rsi      # 0xa4fa
leaq 0x3d3f(%rip), %rcx      # 0xa819
xorl %eax, %eax
movl $0xbc, %edx
callq 0x2040
jmp 0x6ae8
jmp 0x6aea
jmp 0x6aec
jmp 0x6aee
movq -0x10(%rbp), %rax
movq %rax, -0x40(%rbp)
cmpq $0x0, %rax
je 0x6b13
movq -0x40(%rbp), %rdi
callq 0x4480
movq -0x40(%rbp), %rdi
movl $0x30, %esi
callq 0x21d0
leaq 0x3d0d(%rip), %rsi      # 0xa827
leaq -0x8(%rbp), %rdi
callq 0x2670
movq %rax, -0x48(%rbp)
jmp 0x6b29
movq -0x48(%rbp), %rax
movq %rax, -0x10(%rbp)
movl 0x76c5(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x76bc(%rip)      # 0xe1fc
cmpq $0x0, -0x10(%rbp)
jne 0x6b7a
movl 0x76a7(%rip), %eax      # 0xe1f4
incl %eax
movl %eax, 0x769f(%rip)      # 0xe1f4
leaq 0x3980(%rip), %rdi      # 0xa4dc
leaq 0x3997(%rip), %rsi      # 0xa4fa
leaq 0x3baa(%rip), %rcx      # 0xa714
xorl %eax, %eax
movl $0xc1, %edx
callq 0x2040
jmp 0x6b78
jmp 0x6b7a
jmp 0x6b7c
jmp 0x6b7e
jmp 0x6b80
movl 0x7676(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x766d(%rip)      # 0xe1fc
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x4e, %eax
je 0x6bce
movl 0x7653(%rip), %eax      # 0xe1f4
incl %eax
movl %eax, 0x764b(%rip)      # 0xe1f4
leaq 0x392c(%rip), %rdi      # 0xa4dc
leaq 0x3943(%rip), %rsi      # 0xa4fa
leaq 0x3b5e(%rip), %rcx      # 0xa71c
xorl %eax, %eax
movl $0xc2, %edx
callq 0x2040
jmp 0x6bcc
jmp 0x6bce
jmp 0x6bd0
jmp 0x6bd2
jmp 0x6bd4
movl 0x7622(%rip), %eax      # 0xe1fc
incl %eax
movl %eax, 0x761a(%rip)      # 0xe1fc
movq -0x10(%rbp), %rdi
callq 0x2480
movl %eax, -0x4c(%rbp)
jmp 0x6bf0
movl -0x4c(%rbp), %eax
cmpl $-0x14, %eax
je 0x6c2b
movl 0x75f6(%rip), %eax      # 0xe1f4
incl %eax
movl %eax, 0x75ee(%rip)      # 0xe1f4
leaq 0x38cf(%rip), %rdi      # 0xa4dc
leaq 0x38e6(%rip), %rsi      # 0xa4fa
leaq 0x3c13(%rip), %rcx      # 0xa82e
xorl %eax, %eax
movl $0xc3, %edx
callq 0x2040
jmp 0x6c29
jmp 0x6c2b
jmp 0x6c2d
jmp 0x6c2f
movq -0x10(%rbp), %rax
movq %rax, -0x58(%rbp)
cmpq $0x0, %rax
je 0x6c54
movq -0x58(%rbp), %rdi
callq 0x4480
movq -0x58(%rbp), %rdi
movl $0x30, %esi
callq 0x21d0
leaq 0x3be3(%rip), %rsi      # 0xa83e
leaq -0x8(%rbp), %rdi
callq 0x2670
movq %rax, -0x60(%rbp)
jmp 0x6c6a
movq -0x60(%rbp), %rax
movq %rax, -0x10(%rbp)
movl 0x7584(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x757b(%rip)      # 0xe1fc
cmpq $0x0, -0x10(%rbp)
jne 0x6cbb
movl 0x7566(%rip), %eax      # 0xe1f4
incl %eax
movl %eax, 0x755e(%rip)      # 0xe1f4
leaq 0x383f(%rip), %rdi      # 0xa4dc
leaq 0x3856(%rip), %rsi      # 0xa4fa
leaq 0x3a69(%rip), %rcx      # 0xa714
xorl %eax, %eax
movl $0xc8, %edx
callq 0x2040
jmp 0x6cb9
jmp 0x6cbb
jmp 0x6cbd
jmp 0x6cbf
jmp 0x6cc1
movl 0x7535(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x752c(%rip)      # 0xe1fc
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x4e, %eax
je 0x6d0f
movl 0x7512(%rip), %eax      # 0xe1f4
incl %eax
movl %eax, 0x750a(%rip)      # 0xe1f4
leaq 0x37eb(%rip), %rdi      # 0xa4dc
leaq 0x3802(%rip), %rsi      # 0xa4fa
leaq 0x3a1d(%rip), %rcx      # 0xa71c
xorl %eax, %eax
movl $0xc9, %edx
callq 0x2040
jmp 0x6d0d
jmp 0x6d0f
jmp 0x6d11
jmp 0x6d13
jmp 0x6d15
movl 0x74e1(%rip), %eax      # 0xe1fc
incl %eax
movl %eax, 0x74d9(%rip)      # 0xe1fc
movq -0x10(%rbp), %rdi
callq 0x2480
movl %eax, -0x64(%rbp)
jmp 0x6d31
movl -0x64(%rbp), %eax
cmpl $-0x2a, %eax
je 0x6d6c
movl 0x74b5(%rip), %eax      # 0xe1f4
incl %eax
movl %eax, 0x74ad(%rip)      # 0xe1f4
leaq 0x378e(%rip), %rdi      # 0xa4dc
leaq 0x37a5(%rip), %rsi      # 0xa4fa
leaq 0x3ae9(%rip), %rcx      # 0xa845
xorl %eax, %eax
movl $0xca, %edx
callq 0x2040
jmp 0x6d6a
jmp 0x6d6c
jmp 0x6d6e
jmp 0x6d70
movq -0x10(%rbp), %rax
movq %rax, -0x70(%rbp)
cmpq $0x0, %rax
je 0x6d95
movq -0x70(%rbp), %rdi
callq 0x4480
movq -0x70(%rbp), %rdi
movl $0x30, %esi
callq 0x21d0
leaq 0x3ab9(%rip), %rsi      # 0xa855
leaq -0x8(%rbp), %rdi
callq 0x2670
movq %rax, -0x78(%rbp)
jmp 0x6dab
movq -0x78(%rbp), %rax
movq %rax, -0x10(%rbp)
movl 0x7443(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x743a(%rip)      # 0xe1fc
cmpq $0x0, -0x10(%rbp)
jne 0x6dfc
movl 0x7425(%rip), %eax      # 0xe1f4
incl %eax
movl %eax, 0x741d(%rip)      # 0xe1f4
leaq 0x36fe(%rip), %rdi      # 0xa4dc
leaq 0x3715(%rip), %rsi      # 0xa4fa
leaq 0x3928(%rip), %rcx      # 0xa714
xorl %eax, %eax
movl $0xcf, %edx
callq 0x2040
jmp 0x6dfa
jmp 0x6dfc
jmp 0x6dfe
jmp 0x6e00
jmp 0x6e02
movl 0x73f4(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x73eb(%rip)      # 0xe1fc
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x4e, %eax
je 0x6e50
movl 0x73d1(%rip), %eax      # 0xe1f4
incl %eax
movl %eax, 0x73c9(%rip)      # 0xe1f4
leaq 0x36aa(%rip), %rdi      # 0xa4dc
leaq 0x36c1(%rip), %rsi      # 0xa4fa
leaq 0x38dc(%rip), %rcx      # 0xa71c
xorl %eax, %eax
movl $0xd0, %edx
callq 0x2040
jmp 0x6e4e
jmp 0x6e50
jmp 0x6e52
jmp 0x6e54
jmp 0x6e56
movl 0x73a0(%rip), %eax      # 0xe1fc
incl %eax
movl %eax, 0x7398(%rip)      # 0xe1fc
movq -0x10(%rbp), %rdi
callq 0x2480
movl %eax, -0x7c(%rbp)
jmp 0x6e72
movl -0x7c(%rbp), %eax
cmpl $0x48, %eax
je 0x6ead
movl 0x7374(%rip), %eax      # 0xe1f4
incl %eax
movl %eax, 0x736c(%rip)      # 0xe1f4
leaq 0x364d(%rip), %rdi      # 0xa4dc
leaq 0x3664(%rip), %rsi      # 0xa4fa
leaq 0x39c0(%rip), %rcx      # 0xa85d
xorl %eax, %eax
movl $0xd1, %edx
callq 0x2040
jmp 0x6eab
jmp 0x6ead
jmp 0x6eaf
jmp 0x6eb1
movq -0x10(%rbp), %rax
movq %rax, -0x88(%rbp)
cmpq $0x0, %rax
je 0x6edf
movq -0x88(%rbp), %rdi
callq 0x4480
movq -0x88(%rbp), %rdi
movl $0x30, %esi
callq 0x21d0
leaq 0x3986(%rip), %rsi      # 0xa86c
leaq -0x8(%rbp), %rdi
callq 0x2670
movq %rax, -0x90(%rbp)
jmp 0x6ef8
movq -0x90(%rbp), %rax
movq %rax, -0x10(%rbp)
movl 0x72f3(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x72ea(%rip)      # 0xe1fc
cmpq $0x0, -0x10(%rbp)
jne 0x6f4c
movl 0x72d5(%rip), %eax      # 0xe1f4
incl %eax
movl %eax, 0x72cd(%rip)      # 0xe1f4
leaq 0x35ae(%rip), %rdi      # 0xa4dc
leaq 0x35c5(%rip), %rsi      # 0xa4fa
leaq 0x37d8(%rip), %rcx      # 0xa714
xorl %eax, %eax
movl $0xd6, %edx
callq 0x2040
jmp 0x6f4a
jmp 0x6f4c
jmp 0x6f4e
jmp 0x6f50
jmp 0x6f52
movl 0x72a4(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x729b(%rip)      # 0xe1fc
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x4e, %eax
je 0x6fa0
movl 0x7281(%rip), %eax      # 0xe1f4
incl %eax
movl %eax, 0x7279(%rip)      # 0xe1f4
leaq 0x355a(%rip), %rdi      # 0xa4dc
leaq 0x3571(%rip), %rsi      # 0xa4fa
leaq 0x378c(%rip), %rcx      # 0xa71c
xorl %eax, %eax
movl $0xd7, %edx
callq 0x2040
jmp 0x6f9e
jmp 0x6fa0
jmp 0x6fa2
jmp 0x6fa4
jmp 0x6fa6
movl 0x7250(%rip), %eax      # 0xe1fc
incl %eax
movl %eax, 0x7248(%rip)      # 0xe1fc
movq -0x10(%rbp), %rdi
callq 0x2480
movl %eax, -0x94(%rbp)
jmp 0x6fc5
movl -0x94(%rbp), %eax
cmpl $0x0, %eax
je 0x7003
movl 0x721e(%rip), %eax      # 0xe1f4
incl %eax
movl %eax, 0x7216(%rip)      # 0xe1f4
leaq 0x34f7(%rip), %rdi      # 0xa4dc
leaq 0x350e(%rip), %rsi      # 0xa4fa
leaq 0x3881(%rip), %rcx      # 0xa874
xorl %eax, %eax
movl $0xd8, %edx
callq 0x2040
jmp 0x7001
jmp 0x7003
jmp 0x7005
jmp 0x7007
movq -0x10(%rbp), %rax
movq %rax, -0xa0(%rbp)
cmpq $0x0, %rax
je 0x7035
movq -0xa0(%rbp), %rdi
callq 0x4480
movq -0xa0(%rbp), %rdi
movl $0x30, %esi
callq 0x21d0
leaq 0x3846(%rip), %rsi      # 0xa882
leaq -0x8(%rbp), %rdi
callq 0x2670
movq %rax, -0xa8(%rbp)
jmp 0x704e
movq -0xa8(%rbp), %rax
movq %rax, -0x10(%rbp)
movl 0x719d(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x7194(%rip)      # 0xe1fc
cmpq $0x0, -0x10(%rbp)
jne 0x70a2
movl 0x717f(%rip), %eax      # 0xe1f4
incl %eax
movl %eax, 0x7177(%rip)      # 0xe1f4
leaq 0x3458(%rip), %rdi      # 0xa4dc
leaq 0x346f(%rip), %rsi      # 0xa4fa
leaq 0x3682(%rip), %rcx      # 0xa714
xorl %eax, %eax
movl $0xdd, %edx
callq 0x2040
jmp 0x70a0
jmp 0x70a2
jmp 0x70a4
jmp 0x70a6
jmp 0x70a8
movl 0x714e(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x7145(%rip)      # 0xe1fc
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x53, %eax
je 0x70f6
movl 0x712b(%rip), %eax      # 0xe1f4
incl %eax
movl %eax, 0x7123(%rip)      # 0xe1f4
leaq 0x3404(%rip), %rdi      # 0xa4dc
leaq 0x341b(%rip), %rsi      # 0xa4fa
leaq 0x3692(%rip), %rcx      # 0xa778
xorl %eax, %eax
movl $0xde, %edx
callq 0x2040
jmp 0x70f4
jmp 0x70f6
jmp 0x70f8
jmp 0x70fa
jmp 0x70fc
movl 0x70fa(%rip), %eax      # 0xe1fc
incl %eax
movl %eax, 0x70f2(%rip)      # 0xe1fc
movq -0x10(%rbp), %rdi
callq 0x2500
movq %rax, -0xb0(%rbp)
jmp 0x711c
movq -0xb0(%rbp), %rdi
leaq 0x3761(%rip), %rsi      # 0xa88b
callq 0x20a0
cmpl $0x0, %eax
je 0x7167
movl 0x70ba(%rip), %eax      # 0xe1f4
incl %eax
movl %eax, 0x70b2(%rip)      # 0xe1f4
leaq 0x3393(%rip), %rdi      # 0xa4dc
leaq 0x33aa(%rip), %rsi      # 0xa4fa
leaq 0x373b(%rip), %rcx      # 0xa892
xorl %eax, %eax
movl $0xdf, %edx
callq 0x2040
jmp 0x7165
jmp 0x7167
jmp 0x7169
jmp 0x716b
movq -0x10(%rbp), %rax
movq %rax, -0xb8(%rbp)
cmpq $0x0, %rax
je 0x7199
movq -0xb8(%rbp), %rdi
callq 0x4480
movq -0xb8(%rbp), %rdi
movl $0x30, %esi
callq 0x21d0
leaq 0x3710(%rip), %rsi      # 0xa8b0
leaq -0x8(%rbp), %rdi
callq 0x2670
movq %rax, -0xc0(%rbp)
jmp 0x71b2
movq -0xc0(%rbp), %rax
movq %rax, -0x10(%rbp)
movl 0x7039(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x7030(%rip)      # 0xe1fc
cmpq $0x0, -0x10(%rbp)
jne 0x7206
movl 0x701b(%rip), %eax      # 0xe1f4
incl %eax
movl %eax, 0x7013(%rip)      # 0xe1f4
leaq 0x32f4(%rip), %rdi      # 0xa4dc
leaq 0x330b(%rip), %rsi      # 0xa4fa
leaq 0x351e(%rip), %rcx      # 0xa714
xorl %eax, %eax
movl $0xe4, %edx
callq 0x2040
jmp 0x7204
jmp 0x7206
jmp 0x7208
jmp 0x720a
jmp 0x720c
movl 0x6fea(%rip), %eax      # 0xe1fc
addl $0x1, %eax
movl %eax, 0x6fe1(%rip)      # 0xe1fc
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x4e, %eax
je 0x725a
movl 0x6fc7(%rip), %eax      # 0xe1f4
incl %eax
movl %eax, 0x6fbf(%rip)      # 0xe1f4
leaq 0x32a0(%rip), %rdi      # 0xa4dc
leaq 0x32b7(%rip), %rsi      # 0xa4fa
leaq 0x34d2(%rip), %rcx      # 0xa71c
xorl %eax, %eax
movl $0xe5, %edx
callq 0x2040
jmp 0x7258
jmp 0x725a
jmp 0x725c
jmp 0x725e
jmp 0x7260
movl 0x6f96(%rip), %eax      # 0xe1fc
incl %eax
movl %eax, 0x6f8e(%rip)      # 0xe1fc
movq -0x10(%rbp), %rdi
callq 0x2480
movl %eax, -0xc4(%rbp)
jmp 0x727f
movl -0xc4(%rbp), %eax
cmpl $0x0, %eax
je 0x72bd
movl 0x6f64(%rip), %eax      # 0xe1f4
incl %eax
movl %eax, 0x6f5c(%rip)      # 0xe1f4
leaq 0x323d(%rip), %rdi      # 0xa4dc
leaq 0x3254(%rip), %rsi      # 0xa4fa
leaq 0x35c7(%rip), %rcx      # 0xa874
xorl %eax, %eax
movl $0xe6, %edx
callq 0x2040
jmp 0x72bb
jmp 0x72bd
jmp 0x72bf
jmp 0x72c1
movq -0x10(%rbp), %rax
movq %rax, -0xd0(%rbp)
cmpq $0x0, %rax
je 0x72ef
movq -0xd0(%rbp), %rdi
callq 0x4480
movq -0xd0(%rbp), %rdi
movl $0x30, %esi
callq 0x21d0
leaq -0x8(%rbp), %rdi
callq 0x25d0
addq $0xd0, %rsp
popq %rbp
retq
movq -0x18(%rbp), %rdi
callq 0x2330
nopw (%rax,%rax)