// File: /workspace/github_cpp_makefile_star2_O1/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 0x1bc32
leaq 0xc066c(%rip), %rsi     # 0xda1c4
leaq -0x120(%rbp), %rdi
movl $0x10, %edx
callq 0x1b2bc
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 0xc0644(%rip), %r8      # 0xda1da
leaq -0x90(%rbp), %rdi
leaq -0x120(%rbp), %rcx
movl $0x1, %r9d
callq 0x2a3f3
leaq -0x48(%rbp), %rdi
leaq -0x90(%rbp), %rbx
movq %rbx, %rsi
callq 0xa85d0
movq (%rbx), %rdi
cmpq %r14, %rdi
je 0x19bd6
movq -0x80(%rbp), %rsi
incq %rsi
callq 0x2b980
leaq 0xc05e9(%rip), %rsi     # 0xda1c6
leaq 0xc05eb(%rip), %rdx     # 0xda1cf
leaq -0x120(%rbp), %rdi
movl $0x10, %ecx
callq 0x1bda4
xorps %xmm0, %xmm0
movaps %xmm0, -0x80(%rbp)
movaps %xmm0, -0x90(%rbp)
leaq 0xc0762(%rip), %rsi     # 0xda36c
leaq -0x140(%rbp), %rdi
movl $0x10, %edx
callq 0x1b2bc
movq %r12, -0xd8(%rbp)
leaq -0xc0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0xc0738(%rip), %rdx     # 0xda36c
leaq -0xd0(%rbp), %rdi
movq %rdx, %rsi
callq 0x1bccc
leaq -0x58(%rbp), %r13
leaq -0xa0(%rbp), %r14
leaq -0xd0(%rbp), %r15
leaq -0x68(%rbp), %rbx
leaq -0x140(%rbp), %r12
movq -0x48(%rbp), %rdi
movq -0x40(%rbp), %rsi
addq %rdi, %rsi
leaq -0x90(%rbp), %rdx
leaq -0x120(%rbp), %rcx
xorl %r8d, %r8d
callq 0x2add3
testb %al, %al
je 0x19ef2
movq -0xc8(%rbp), %rdx
movl $0x2, %r8d
movq %r15, %rdi
xorl %esi, %esi
leaq 0xc052e(%rip), %rcx     # 0xda1d0
callq 0xa91d0
movq -0x90(%rbp), %rcx
movq -0x88(%rbp), %rax
cmpq %rax, %rcx
je 0x19cdf
movq %rax, %rdx
subq %rcx, %rdx
sarq $0x3, %rdx
movabsq $-0x5555555555555555, %rsi # imm = 0xAAAAAAAAAAAAAAAB
imulq %rsi, %rdx
addq $-0x5, %rdx
cmpq $-0x2, %rdx
setb %dl
jmp 0x19ce1
xorl %edx, %edx
addq $0x18, %rcx
addq $-0x48, %rax
testb %dl, %dl
cmovneq %rcx, %rax
cmpb $0x1, 0x10(%rax)
jne 0x19d0a
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq %r13, -0x68(%rbp)
movq %rbx, %rdi
callq 0x2b184
jmp 0x19d1a
movq %r13, -0x68(%rbp)
movq $0x0, -0x60(%rbp)
movb $0x0, -0x58(%rbp)
movq -0x68(%rbp), %rsi
movq -0x60(%rbp), %rdx
movq %r15, %rdi
callq 0xa9bf0
movq -0x68(%rbp), %rdi
cmpq %r13, %rdi
je 0x19d3f
movq -0x58(%rbp), %rsi
incq %rsi
callq 0x2b980
movq -0xd0(%rbp), %rsi
movq -0xc8(%rbp), %rdx
addq %rsi, %rdx
movq %r12, %rdi
movl $0x10, %ecx
callq 0x1bda4
movq -0x90(%rbp), %rcx
movq -0x88(%rbp), %rax
cmpq %rax, %rcx
je 0x19d95
movq %rax, %rdx
subq %rcx, %rdx
sarq $0x3, %rdx
movabsq $-0x5555555555555555, %rsi # imm = 0xAAAAAAAAAAAAAAAB
imulq %rsi, %rdx
addq $-0x5, %rdx
cmpq $-0x2, %rdx
setb %dl
jmp 0x19d97
xorl %edx, %edx
addq $0x18, %rcx
addq $-0x48, %rax
testb %dl, %dl
cmovneq %rcx, %rax
cmpb $0x1, 0x10(%rax)
jne 0x19dc7
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq %r14, -0xb0(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0x2b184
jmp 0x19de0
movq %r14, -0xb0(%rbp)
movq $0x0, -0xa8(%rbp)
movb $0x0, -0xa0(%rbp)
movq -0xb0(%rbp), %r14
callq 0x154c0
movq %rax, %r15
movl (%rax), %r12d
movl $0x0, (%rax)
movq %r14, %rdi
leaq -0xe0(%rbp), %rsi
movl $0xa, %edx
callq 0x15400
cmpq %r14, -0xe0(%rbp)
je 0x19fc5
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x19fd1
movl (%r15), %ecx
cmpl $0x22, %ecx
je 0x19fd1
testl %ecx, %ecx
jne 0x19e46
movl %r12d, (%r15)
shlq $0x20, %rax
movabsq $-0x100000000, %rcx     # imm = 0xFFFFFFFF00000000
addq %rcx, %rax
movq 0x105b12(%rip), %rcx    # 0x11f970
sarq $0x1b, %rax
movq %r13, -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), %r12
movq %r12, %rcx
callq 0x2a3f3
leaq -0x48(%rbp), %rdi
movq %rbx, %rsi
callq 0xa85d0
movq -0x68(%rbp), %rdi
cmpq %r13, %rdi
leaq -0xa0(%rbp), %r14
leaq -0xd0(%rbp), %r15
je 0x19ece
movq -0x58(%rbp), %rsi
incq %rsi
callq 0x2b980
movq -0xb0(%rbp), %rdi
cmpq %r14, %rdi
je 0x19c60
movq -0xa0(%rbp), %rsi
incq %rsi
callq 0x2b980
jmp 0x19c60
leaq -0xf0(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
addq %rsi, %rdx
leaq -0x100(%rbp), %rdi
callq 0x1bc32
leaq -0x100(%rbp), %rsi
movq -0xd8(%rbp), %r15
movq %r15, %rdi
leaq -0x38(%rbp), %rbx
callq 0x18749
movq -0x100(%rbp), %rdi
cmpq %r14, %rdi
je 0x19f49
movq -0xf0(%rbp), %rsi
incq %rsi
callq 0x2b980
movq -0xd0(%rbp), %rdi
leaq -0xc0(%rbp), %rax
cmpq %rax, %rdi
je 0x19f6b
movq -0xc0(%rbp), %rsi
incq %rsi
callq 0x2b980
leaq -0x140(%rbp), %rdi
callq 0x1b328
movq -0x90(%rbp), %rdi
testq %rdi, %rdi
je 0x19f8f
movq -0x80(%rbp), %rsi
subq %rdi, %rsi
callq 0x2b980
leaq -0x120(%rbp), %rdi
callq 0x1b328
movq -0x48(%rbp), %rdi
cmpq %rbx, %rdi
je 0x19fb0
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x2b980
movq %r15, %rax
addq $0x128, %rsp            # imm = 0x128
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xc031e(%rip), %rdi     # 0xda2ea
callq 0x17262
leaq 0xc0312(%rip), %rdi     # 0xda2ea
callq 0x17312
movq %rax, %rbx
movq -0x100(%rbp), %rdi
cmpq %r14, %rdi
je 0x1a0a7
movq -0xf0(%rbp), %rsi
jmp 0x1a09a
jmp 0x1a0a4
movq %rax, %rbx
leaq -0x38(%rbp), %r15
jmp 0x1a0cd
movq %rax, %rbx
jmp 0x1a0d9
movq %rax, %rbx
jmp 0x1a0f1
movq %rax, %rbx
movq -0x90(%rbp), %rdi
cmpq %r14, %rdi
je 0x1a0f1
movq -0x80(%rbp), %rsi
incq %rsi
jmp 0x1a0ec
movq %rax, %rbx
jmp 0x1a0fd
jmp 0x1a0a4
jmp 0x1a0a4
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r13, %rdi
je 0x1a0a7
movq -0x58(%rbp), %rsi
jmp 0x1a09a
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r13, %rdi
je 0x1a080
movq -0x58(%rbp), %rsi
incq %rsi
callq 0x2b980
jmp 0x1a080
movq %rax, %rbx
cmpl $0x0, (%r15)
jne 0x1a080
movl %r12d, (%r15)
movq -0xb0(%rbp), %rdi
leaq -0xa0(%rbp), %rax
cmpq %rax, %rdi
je 0x1a0a7
movq -0xa0(%rbp), %rsi
incq %rsi
callq 0x2b980
jmp 0x1a0a7
movq %rax, %rbx
leaq -0x38(%rbp), %r15
movq -0xd0(%rbp), %rdi
leaq -0xc0(%rbp), %rax
cmpq %rax, %rdi
je 0x1a0cd
movq -0xc0(%rbp), %rsi
incq %rsi
callq 0x2b980
leaq -0x140(%rbp), %rdi
callq 0x1b328
movq -0x90(%rbp), %rdi
testq %rdi, %rdi
je 0x1a0f1
movq -0x80(%rbp), %rsi
subq %rdi, %rsi
callq 0x2b980
leaq -0x120(%rbp), %rdi
callq 0x1b328
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
je 0x1a112
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x2b980
movq %rbx, %rdi
callq 0xd6fc0