// File: 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
subq $0x1b0, %rsp            # imm = 0x1B0
movq %rsi, -0x180(%rbp)
movq %rdi, %rax
movq -0x180(%rbp), %rdi
movq %rax, -0x178(%rbp)
movq %rax, %rcx
movq %rcx, -0x170(%rbp)
movq %rax, -0x8(%rbp)
movq %rdi, -0x10(%rbp)
xorl %eax, %eax
movl %eax, %esi
callq 0x1c520
movq %rax, %rsi
leaq -0x30(%rbp), %rdi
callq 0xcd060
leaq 0xe37eb(%rip), %rsi     # 0xfd25c
leaq -0x50(%rbp), %rdi
movl $0x10, %edx
callq 0x1b670
jmp 0x19a81
leaq 0xe37ea(%rip), %rcx     # 0xfd272
leaq -0x80(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0x50(%rbp), %rdx
xorl %r8d, %r8d
callq 0x1c840
jmp 0x19a9e
leaq -0x30(%rbp), %rdi
leaq -0x80(%rbp), %rsi
movq %rsi, -0x188(%rbp)
callq 0xcac20
movq -0x188(%rbp), %rdi
callq 0xcabd0
leaq 0xe3799(%rip), %rsi     # 0xfd25e
leaq -0x50(%rbp), %rdi
callq 0x1c920
jmp 0x19ad0
leaq -0xa0(%rbp), %rdi
callq 0x1c950
jmp 0x19ade
leaq 0xe391f(%rip), %rsi     # 0xfd404
leaq -0xc0(%rbp), %rdi
movl $0x10, %edx
callq 0x1b670
jmp 0x19af8
leaq -0xe1(%rbp), %rdi
movq %rdi, -0x190(%rbp)
callq 0x505b0
movq -0x190(%rbp), %rdx
leaq 0xe38eb(%rip), %rsi     # 0xfd404
leaq -0xe0(%rbp), %rdi
callq 0x1b480
jmp 0x19b27
leaq -0xe1(%rbp), %rdi
callq 0x505d0
leaq -0x30(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
leaq -0x50(%rbp), %rdx
xorl %ecx, %ecx
callq 0x1c990
movb %al, -0x191(%rbp)
jmp 0x19b51
movb -0x191(%rbp), %al
testb $0x1, %al
jne 0x19b60
jmp 0x19d24
leaq 0xe3701(%rip), %rsi     # 0xfd268
leaq -0xe0(%rbp), %rdi
callq 0xcbc20
jmp 0x19b75
leaq -0xa0(%rbp), %rdi
movl $0x1, %esi
callq 0x1c9f0
movq %rax, -0x1a0(%rbp)
jmp 0x19b8f
movq -0x1a0(%rbp), %rsi
leaq -0x108(%rbp), %rdi
callq 0x1ca60
jmp 0x19ba4
leaq -0xe0(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0xcc2f0
jmp 0x19bb9
leaq -0x108(%rbp), %rdi
callq 0xcabd0
leaq -0xc0(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x1ca90
jmp 0x19bda
leaq -0xa0(%rbp), %rdi
movl $0x1, %esi
callq 0x1c9f0
movq %rax, -0x1a8(%rbp)
jmp 0x19bf4
movq -0x1a8(%rbp), %rsi
leaq -0x148(%rbp), %rdi
callq 0x1ca60
jmp 0x19c09
xorl %eax, %eax
movl %eax, %esi
leaq -0x148(%rbp), %rdi
movl $0xa, %edx
callq 0x1c3a0
movl %eax, -0x1ac(%rbp)
jmp 0x19c26
movl -0x1ac(%rbp), %eax
decl %eax
movslq %eax, %rsi
leaq 0x13bd18(%rip), %rdi    # 0x155950
callq 0x1c520
movq %rax, %rcx
leaq -0x128(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0xc0(%rbp), %rdx
xorl %r8d, %r8d
callq 0x1cac0
jmp 0x19c5c
leaq -0x30(%rbp), %rdi
leaq -0x128(%rbp), %rsi
callq 0xcac20
leaq -0x128(%rbp), %rdi
callq 0xcabd0
leaq -0x148(%rbp), %rdi
callq 0xcabd0
jmp 0x19b33
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x19de2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x19dd9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x19dcd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xe1(%rbp), %rdi
callq 0x505d0
jmp 0x19dc1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x19db5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x108(%rbp), %rdi
callq 0xcabd0
jmp 0x19db5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x148(%rbp), %rdi
callq 0xcabd0
jmp 0x19db5
leaq -0x168(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0xcd060
jmp 0x19d36
movq -0x178(%rbp), %rdi
leaq -0x168(%rbp), %rsi
callq 0x18680
jmp 0x19d4b
leaq -0x168(%rbp), %rdi
callq 0xcabd0
leaq -0xe0(%rbp), %rdi
callq 0xcabd0
leaq -0xc0(%rbp), %rdi
callq 0x1b710
leaq -0xa0(%rbp), %rdi
callq 0x1cba0
leaq -0x50(%rbp), %rdi
callq 0x1b710
leaq -0x30(%rbp), %rdi
callq 0xcabd0
movq -0x170(%rbp), %rax
addq $0x1b0, %rsp            # imm = 0x1B0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x168(%rbp), %rdi
callq 0xcabd0
leaq -0xe0(%rbp), %rdi
callq 0xcabd0
leaq -0xc0(%rbp), %rdi
callq 0x1b710
leaq -0xa0(%rbp), %rdi
callq 0x1cba0
leaq -0x50(%rbp), %rdi
callq 0x1b710
leaq -0x30(%rbp), %rdi
callq 0xcabd0
movq -0x58(%rbp), %rdi
callq 0xfa2a0
nopw %cs:(%rax,%rax)