// File: /workspace/github_cpp_makefile_star2_O3/TsukiGva2[P]Blade-lang/blade.cpp
// Function: execfun(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>)
std::string execfun(std::vector<std::string> args){
	// replace all ('s and )'s for ['s and ]'s
	// also replace single quotes for double quotes
	// then finally replace $X's for the right globl_args's index
	// pass the resulting string to lc_eval
	std::string txt = args[0];
	std::regex re("'");
	txt = std::regex_replace(txt,re,"\"");
	re = "\\$([1-9])";
	std::smatch m;
	std::regex sx("");
	std::string temp_ = "";
	while (std::regex_search(txt,m,re)){
		temp_ = "\\$";
		temp_ += m[1];
		sx = temp_;
		txt = std::regex_replace(txt,sx,globl_args[std::stoi(m[1])-1]);
	}
	return lc_eval(txt);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x128, %rsp            # imm = 0x128
movq %rdi, %r12
movq (%rsi), %rax
leaq -0x38(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq -0x48(%rbp), %rdi
callq 0x1abf2
leaq 0xc069e(%rip), %rsi     # 0xd91c4
leaq -0x120(%rbp), %rdi
movl $0x10, %edx
callq 0x1a25c
leaq -0x80(%rbp), %r14
movq %r14, -0x10(%r14)
movq $0x0, -0x8(%r14)
movb $0x0, (%r14)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
addq %rsi, %rdx
movl $0x0, (%rsp)
leaq 0xc0676(%rip), %r8      # 0xd91da
leaq -0x90(%rbp), %rdi
leaq -0x120(%rbp), %rcx
movl $0x1, %r9d
callq 0x29461
leaq -0x48(%rbp), %rdi
leaq -0x90(%rbp), %rbx
movq %rbx, %rsi
callq 0xa7590
movq (%rbx), %rdi
cmpq %r14, %rdi
je 0x18ba4
movq -0x80(%rbp), %rsi
incq %rsi
callq 0x2a9a0
leaq 0xc061b(%rip), %rsi     # 0xd91c6
leaq 0xc061d(%rip), %rdx     # 0xd91cf
leaq -0x120(%rbp), %rdi
movl $0x10, %ecx
callq 0x1ad6e
xorps %xmm0, %xmm0
movaps %xmm0, -0x80(%rbp)
movaps %xmm0, -0x90(%rbp)
leaq 0xc0794(%rip), %rsi     # 0xd936c
leaq -0x140(%rbp), %rdi
movl $0x10, %edx
callq 0x1a25c
movq %r12, -0xd8(%rbp)
leaq -0xc0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xc076a(%rip), %rdx     # 0xd936c
leaq -0xd0(%rbp), %rdi
movq %rdx, %rsi
callq 0x1ac90
leaq -0x58(%rbp), %r12
leaq -0xa0(%rbp), %r14
leaq -0xd0(%rbp), %r15
leaq -0x68(%rbp), %rbx
leaq -0x140(%rbp), %r13
movq -0x48(%rbp), %rdi
movq -0x40(%rbp), %rsi
addq %rdi, %rsi
leaq -0x90(%rbp), %rdx
leaq -0x120(%rbp), %rcx
xorl %r8d, %r8d
callq 0x29df5
testb %al, %al
je 0x18eb7
movq -0xc8(%rbp), %rdx
movl $0x2, %r8d
movq %r15, %rdi
xorl %esi, %esi
leaq 0xc0560(%rip), %rcx     # 0xd91d0
callq 0xa8190
movq -0x90(%rbp), %rax
movq -0x88(%rbp), %rcx
subq %rax, %rcx
je 0x18cad
movq %rcx, %rdx
sarq $0x3, %rdx
movabsq $-0x5555555555555555, %rsi # imm = 0xAAAAAAAAAAAAAAAB
imulq %rsi, %rdx
addq $-0x5, %rdx
cmpq $-0x3, %rdx
ja 0x18cad
addq $0x18, %rax
jmp 0x18cb4
addq %rcx, %rax
addq $-0x48, %rax
cmpb $0x1, 0x10(%rax)
jne 0x18cd7
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq %r12, -0x68(%rbp)
movq %rbx, %rdi
callq 0x2a19a
movq -0x68(%rbp), %rsi
movq -0x60(%rbp), %rdx
jmp 0x18cec
movq %r12, -0x68(%rbp)
movq $0x0, -0x60(%rbp)
movb $0x0, -0x58(%rbp)
xorl %edx, %edx
movq %r12, %rsi
movq %r15, %rdi
callq 0xa8bb0
movq -0x68(%rbp), %rdi
cmpq %r12, %rdi
je 0x18d09
movq -0x58(%rbp), %rsi
incq %rsi
callq 0x2a9a0
movq -0xd0(%rbp), %rsi
movq -0xc8(%rbp), %rdx
addq %rsi, %rdx
movq %r13, %rdi
movl $0x10, %ecx
callq 0x1ad6e
movq -0x90(%rbp), %rax
movq -0x88(%rbp), %rcx
subq %rax, %rcx
je 0x18d5f
movq %rcx, %rdx
sarq $0x3, %rdx
movabsq $-0x5555555555555555, %rsi # imm = 0xAAAAAAAAAAAAAAAB
imulq %rsi, %rdx
addq $-0x5, %rdx
cmpq $-0x3, %rdx
ja 0x18d5f
addq $0x18, %rax
jmp 0x18d66
addq %rcx, %rax
addq $-0x48, %rax
cmpb $0x1, 0x10(%rax)
jne 0x18d8f
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq %r14, -0xb0(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0x2a19a
movq -0xb0(%rbp), %r14
jmp 0x18da8
movq %r14, -0xb0(%rbp)
movq $0x0, -0xa8(%rbp)
movb $0x0, -0xa0(%rbp)
callq 0x144c0
movq %rax, %r15
movl (%rax), %r13d
movl $0x0, (%rax)
movq %r14, %rdi
leaq -0xe0(%rbp), %rsi
movl $0xa, %edx
callq 0x14400
cmpq %r14, -0xe0(%rbp)
je 0x18f8a
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x18f96
movl (%r15), %ecx
cmpl $0x22, %ecx
je 0x18f96
testl %ecx, %ecx
jne 0x18e07
movl %r13d, (%r15)
shlq $0x20, %rax
movabsq $-0x100000000, %rcx     # imm = 0xFFFFFFFF00000000
addq %rcx, %rax
movq 0x105b51(%rip), %rcx    # 0x11e970
sarq $0x1b, %rax
leaq -0x58(%rbp), %r14
movq %r14, -0x68(%rbp)
movq $0x0, -0x60(%rbp)
movb $0x0, -0x58(%rbp)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
addq %rsi, %rdx
movq (%rcx,%rax), %r8
movq 0x8(%rcx,%rax), %r9
movl $0x0, (%rsp)
movq %rbx, %rdi
leaq -0x140(%rbp), %r13
movq %r13, %rcx
callq 0x29461
leaq -0x48(%rbp), %rdi
movq %rbx, %rsi
callq 0xa7590
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
leaq -0xa0(%rbp), %r14
leaq -0xd0(%rbp), %r15
je 0x18e93
movq -0x58(%rbp), %rsi
incq %rsi
callq 0x2a9a0
movq -0xb0(%rbp), %rdi
cmpq %r14, %rdi
je 0x18c2e
movq -0xa0(%rbp), %rsi
incq %rsi
callq 0x2a9a0
jmp 0x18c2e
leaq -0xf0(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
addq %rsi, %rdx
leaq -0x100(%rbp), %rdi
callq 0x1abf2
leaq -0x100(%rbp), %rsi
movq -0xd8(%rbp), %r15
movq %r15, %rdi
leaq -0x38(%rbp), %rbx
callq 0x17749
movq -0x100(%rbp), %rdi
cmpq %r14, %rdi
je 0x18f0e
movq -0xf0(%rbp), %rsi
incq %rsi
callq 0x2a9a0
movq -0xd0(%rbp), %rdi
leaq -0xc0(%rbp), %rax
cmpq %rax, %rdi
je 0x18f30
movq -0xc0(%rbp), %rsi
incq %rsi
callq 0x2a9a0
leaq -0x140(%rbp), %rdi
callq 0x1a2c8
movq -0x90(%rbp), %rdi
testq %rdi, %rdi
je 0x18f54
movq -0x80(%rbp), %rsi
subq %rdi, %rsi
callq 0x2a9a0
leaq -0x120(%rbp), %rdi
callq 0x1a2c8
movq -0x48(%rbp), %rdi
cmpq %rbx, %rdi
je 0x18f75
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x2a9a0
movq %r15, %rax
addq $0x128, %rsp            # imm = 0x128
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xc0359(%rip), %rdi     # 0xd92ea
callq 0x1625c
leaq 0xc034d(%rip), %rdi     # 0xd92ea
callq 0x1630c
movq %rax, %rbx
movq -0x100(%rbp), %rdi
cmpq %r14, %rdi
je 0x1906c
movq -0xf0(%rbp), %rsi
jmp 0x1905f
jmp 0x19069
movq %rax, %rbx
leaq -0x38(%rbp), %r15
jmp 0x19092
movq %rax, %rbx
jmp 0x1909e
movq %rax, %rbx
jmp 0x190b6
movq %rax, %rbx
movq -0x90(%rbp), %rdi
cmpq %r14, %rdi
je 0x190b6
movq -0x80(%rbp), %rsi
incq %rsi
jmp 0x190b1
movq %rax, %rbx
jmp 0x190c2
jmp 0x19069
jmp 0x19069
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r12, %rdi
je 0x1906c
movq -0x58(%rbp), %rsi
jmp 0x1905f
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r14, %rdi
je 0x19045
movq -0x58(%rbp), %rsi
incq %rsi
callq 0x2a9a0
jmp 0x19045
movq %rax, %rbx
cmpl $0x0, (%r15)
jne 0x19045
movl %r13d, (%r15)
movq -0xb0(%rbp), %rdi
leaq -0xa0(%rbp), %rax
cmpq %rax, %rdi
je 0x1906c
movq -0xa0(%rbp), %rsi
incq %rsi
callq 0x2a9a0
jmp 0x1906c
movq %rax, %rbx
leaq -0x38(%rbp), %r15
movq -0xd0(%rbp), %rdi
leaq -0xc0(%rbp), %rax
cmpq %rax, %rdi
je 0x19092
movq -0xc0(%rbp), %rsi
incq %rsi
callq 0x2a9a0
leaq -0x140(%rbp), %rdi
callq 0x1a2c8
movq -0x90(%rbp), %rdi
testq %rdi, %rdi
je 0x190b6
movq -0x80(%rbp), %rsi
subq %rdi, %rsi
callq 0x2a9a0
leaq -0x120(%rbp), %rdi
callq 0x1a2c8
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
je 0x190d7
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x2a9a0
movq %rbx, %rdi
callq 0xd5f80