// File: /workspace/github_c_makefile_star2_O0/coyove[P]chann/./src/tags.h
// Function: HTMLTemplate::build(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, bool, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, bool>>>&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::queue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::deque<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::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, std::queue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::deque<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>>>>>>>>&)
string build(map<string, string> &vars, map<string, bool> &stats, map<string, queue<string>> &loops) {
		int var_pointer = 0;
		string ret = "", tmp = "";

		for (auto i = 0; i < vec.size(); ++i) {
			// std::cout  << vec[i].second << "  =" << vec[i].second.size() << std::endl;

			switch (vec[i].first) {
			case VARIABLE:
				ret.append(vars[vec[i].second]);
				break;
			case PLAIN:
				ret.append(vec[i].second);
				break;
			case IF:
				tmp = vec[i].second;

				if (tmp[0] == '!') {
					if (stats[tmp.substr(1)]) i = fi_pos[i];
				}
				else
					if (!stats[tmp]) i = fi_pos[i];
				break;
			case IFTEST:
				tmp = if_test[i].first;

				if (tmp[0] == '!') {
					if (vars[tmp.substr(1)] == if_test[i].second) i = fi_pos[i];
				}
				else
					if (vars[tmp] != if_test[i].second) i = fi_pos[i];
				break;
			case LOOP:
				if (loops[vec[i].second].empty())
					i = loop_pos[i];
				else {
					vars[vec[i].second] = loops[vec[i].second].front();
					loops[vec[i].second].pop();
				}
				break;
			case ENDLOOP:
				if (!loops[vec[i].second].empty())
					i = loop_pos_rev[i] - 1;
				break;
			case ENDIF:
			default:
				break;
			}
		}
		return ret;
	}

// Assembly:
subq $0x218, %rsp            # imm = 0x218
movq %rdi, 0x138(%rsp)
movq %rdi, %rax
movq %rax, 0x128(%rsp)
movq %rdi, 0x210(%rsp)
movq %rsi, 0x208(%rsp)
movq %rdx, 0x200(%rsp)
movq %rcx, 0x1f8(%rsp)
movq %r8, 0x1f0(%rsp)
movq 0x208(%rsp), %rax
movq %rax, 0x130(%rsp)
movl $0x0, 0x1ec(%rsp)
movb $0x0, 0x1eb(%rsp)
leaq 0x1ea(%rsp), %rdi
movq %rdi, 0x140(%rsp)
callq 0xdc30
movq 0x138(%rsp), %rdi
movq 0x140(%rsp), %rdx
leaq 0x95c9a(%rip), %rsi     # 0xc5b4b
callq 0xdad0
jmp 0x2feb8
leaq 0x1ea(%rsp), %rdi
callq 0xdf30
leaq 0x1b7(%rsp), %rdi
movq %rdi, 0x120(%rsp)
callq 0xdc30
movq 0x120(%rsp), %rdx
leaq 0x95c62(%rip), %rsi     # 0xc5b4b
leaq 0x1b8(%rsp), %rdi
callq 0xdad0
jmp 0x2fef8
leaq 0x1b7(%rsp), %rdi
callq 0xdf30
movl $0x0, 0x1b0(%rsp)
movq 0x130(%rsp), %rdi
movslq 0x1b0(%rsp), %rax
movq %rax, 0x118(%rsp)
addq $0x20, %rdi
callq 0x2abe0
movq %rax, %rcx
movq 0x118(%rsp), %rax
cmpq %rcx, %rax
jae 0x306eb
movq 0x130(%rsp), %rdi
addq $0x20, %rdi
movslq 0x1b0(%rsp), %rsi
callq 0x30760
movl (%rax), %eax
movq %rax, 0x110(%rsp)
subq $0x6, %rax
ja 0x306d1
movq 0x110(%rsp), %rax
leaq 0x8f73f(%rip), %rcx     # 0xbf6c0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1e0(%rsp)
movl %eax, 0x1dc(%rsp)
leaq 0x1ea(%rsp), %rdi
callq 0xdf30
jmp 0x30745
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1e0(%rsp)
movl %eax, 0x1dc(%rsp)
leaq 0x1b7(%rsp), %rdi
callq 0xdf30
jmp 0x30738
movq 0x130(%rsp), %rdi
movq 0x200(%rsp), %rax
movq %rax, 0x100(%rsp)
addq $0x20, %rdi
movslq 0x1b0(%rsp), %rsi
callq 0x30760
movq 0x100(%rsp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0x237b0
movq %rax, 0x108(%rsp)
jmp 0x3001d
movq 0x108(%rsp), %rsi
movq 0x138(%rsp), %rdi
callq 0xdb00
jmp 0x30034
jmp 0x306d3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1e0(%rsp)
movl %eax, 0x1dc(%rsp)
jmp 0x3070c
movq 0x130(%rsp), %rdi
addq $0x20, %rdi
movslq 0x1b0(%rsp), %rsi
callq 0x30760
movq 0x138(%rsp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0xdb00
jmp 0x30081
jmp 0x306d3
movq 0x130(%rsp), %rdi
addq $0x20, %rdi
movslq 0x1b0(%rsp), %rsi
callq 0x30760
movq %rax, %rsi
addq $0x8, %rsi
leaq 0x1b8(%rsp), %rdi
callq 0xde60
jmp 0x300b5
xorl %eax, %eax
movl %eax, %esi
leaq 0x1b8(%rsp), %rdi
callq 0xde40
movq %rax, 0xf8(%rsp)
jmp 0x300d0
movq 0xf8(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x21, %eax
jne 0x301ce
movq 0x1f8(%rsp), %rax
movq %rax, 0xf0(%rsp)
leaq 0x190(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
movl $0x1, %edx
movq $-0x1, %rcx
callq 0xdca0
jmp 0x30117
movq 0xf0(%rsp), %rdi
leaq 0x190(%rsp), %rsi
callq 0x30780
movq %rax, 0xe8(%rsp)
jmp 0x30136
movq 0xe8(%rsp), %rax
movb (%rax), %al
movb %al, 0xe7(%rsp)
leaq 0x190(%rsp), %rdi
callq 0xdf50
movb 0xe7(%rsp), %al
testb $0x1, %al
je 0x301cc
movq 0x130(%rsp), %rdi
addq $0xd8, %rdi
movl 0x1b0(%rsp), %eax
movl %eax, 0x18c(%rsp)
leaq 0x18c(%rsp), %rsi
callq 0x30870
movq %rax, 0xd8(%rsp)
jmp 0x30193
movq 0xd8(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x1b0(%rsp)
jmp 0x301cc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1e0(%rsp)
movl %eax, 0x1dc(%rsp)
leaq 0x190(%rsp), %rdi
callq 0xdf50
jmp 0x3070c
jmp 0x30241
movq 0x1f8(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
callq 0x2f090
movq %rax, 0xd0(%rsp)
jmp 0x301ed
movq 0xd0(%rsp), %rax
testb $0x1, (%rax)
jne 0x3023f
movq 0x130(%rsp), %rdi
addq $0xd8, %rdi
movl 0x1b0(%rsp), %eax
movl %eax, 0x188(%rsp)
leaq 0x188(%rsp), %rsi
callq 0x30870
movq %rax, 0xc8(%rsp)
jmp 0x3022e
movq 0xc8(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x1b0(%rsp)
jmp 0x30241
jmp 0x306d3
movq 0x130(%rsp), %rdi
addq $0x168, %rdi            # imm = 0x168
movl 0x1b0(%rsp), %eax
movl %eax, 0x184(%rsp)
leaq 0x184(%rsp), %rsi
callq 0x30960
movq %rax, 0xc0(%rsp)
jmp 0x3027a
movq 0xc0(%rsp), %rsi
leaq 0x1b8(%rsp), %rdi
callq 0xde60
jmp 0x30291
xorl %eax, %eax
movl %eax, %esi
leaq 0x1b8(%rsp), %rdi
callq 0xde40
movq %rax, 0xb8(%rsp)
jmp 0x302ac
movq 0xb8(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x21, %eax
jne 0x303f2
movq 0x200(%rsp), %rax
movq %rax, 0xb0(%rsp)
leaq 0x160(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
movl $0x1, %edx
movq $-0x1, %rcx
callq 0xdca0
jmp 0x302f3
movq 0xb0(%rsp), %rdi
leaq 0x160(%rsp), %rsi
callq 0x30a50
movq %rax, 0xa8(%rsp)
jmp 0x30312
movq 0x130(%rsp), %rdi
addq $0x168, %rdi            # imm = 0x168
movl 0x1b0(%rsp), %eax
movl %eax, 0x15c(%rsp)
leaq 0x15c(%rsp), %rsi
callq 0x30960
movq %rax, 0xa0(%rsp)
jmp 0x30346
movq 0xa8(%rsp), %rdi
movq 0xa0(%rsp), %rsi
addq $0x20, %rsi
callq 0x14500
movb %al, 0x9f(%rsp)
leaq 0x160(%rsp), %rdi
callq 0xdf50
movb 0x9f(%rsp), %al
testb $0x1, %al
jne 0x30380
jmp 0x303ed
movq 0x130(%rsp), %rdi
addq $0xd8, %rdi
movl 0x1b0(%rsp), %eax
movl %eax, 0x158(%rsp)
leaq 0x158(%rsp), %rsi
callq 0x30870
movq %rax, 0x90(%rsp)
jmp 0x303b4
movq 0x90(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x1b0(%rsp)
jmp 0x303ed
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1e0(%rsp)
movl %eax, 0x1dc(%rsp)
leaq 0x160(%rsp), %rdi
callq 0xdf50
jmp 0x3070c
jmp 0x304a5
movq 0x200(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
callq 0x237b0
movq %rax, 0x88(%rsp)
jmp 0x30411
movq 0x130(%rsp), %rdi
addq $0x168, %rdi            # imm = 0x168
movl 0x1b0(%rsp), %eax
movl %eax, 0x154(%rsp)
leaq 0x154(%rsp), %rsi
callq 0x30960
movq %rax, 0x80(%rsp)
jmp 0x30445
movq 0x88(%rsp), %rdi
movq 0x80(%rsp), %rsi
addq $0x20, %rsi
callq 0x30b40
testb $0x1, %al
jne 0x30464
jmp 0x304a3
movq 0x130(%rsp), %rdi
addq $0xd8, %rdi
movl 0x1b0(%rsp), %eax
movl %eax, 0x150(%rsp)
leaq 0x150(%rsp), %rsi
callq 0x30870
movq %rax, 0x78(%rsp)
jmp 0x30495
movq 0x78(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x1b0(%rsp)
jmp 0x304a5
jmp 0x306d3
movq 0x130(%rsp), %rdi
movq 0x1f0(%rsp), %rax
movq %rax, 0x68(%rsp)
addq $0x20, %rdi
movslq 0x1b0(%rsp), %rsi
callq 0x30760
movq 0x68(%rsp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0x30b70
movq %rax, 0x70(%rsp)
jmp 0x304e8
movq 0x70(%rsp), %rdi
callq 0x30c60
movb %al, 0x67(%rsp)
jmp 0x304f8
movb 0x67(%rsp), %al
testb $0x1, %al
jne 0x30502
jmp 0x30546
movq 0x130(%rsp), %rdi
addq $0x108, %rdi            # imm = 0x108
movl 0x1b0(%rsp), %eax
movl %eax, 0x14c(%rsp)
leaq 0x14c(%rsp), %rsi
callq 0x30870
movq %rax, 0x58(%rsp)
jmp 0x30533
movq 0x58(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x1b0(%rsp)
jmp 0x30630
movq 0x130(%rsp), %rdi
movq 0x1f0(%rsp), %rax
movq %rax, 0x48(%rsp)
addq $0x20, %rdi
movslq 0x1b0(%rsp), %rsi
callq 0x30760
movq 0x48(%rsp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0x30b70
movq %rax, 0x50(%rsp)
jmp 0x30584
movq 0x50(%rsp), %rdi
callq 0x30c80
movq %rax, 0x40(%rsp)
jmp 0x30595
movq 0x130(%rsp), %rdi
movq 0x200(%rsp), %rax
movq %rax, 0x30(%rsp)
addq $0x20, %rdi
movslq 0x1b0(%rsp), %rsi
callq 0x30760
movq 0x30(%rsp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0x237b0
movq %rax, 0x38(%rsp)
jmp 0x305d3
movq 0x40(%rsp), %rsi
movq 0x38(%rsp), %rdi
callq 0xde60
jmp 0x305e4
movq 0x130(%rsp), %rdi
movq 0x1f0(%rsp), %rax
movq %rax, 0x20(%rsp)
addq $0x20, %rdi
movslq 0x1b0(%rsp), %rsi
callq 0x30760
movq 0x20(%rsp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0x30b70
movq %rax, 0x28(%rsp)
jmp 0x30622
movq 0x28(%rsp), %rdi
callq 0x30c90
jmp 0x3062e
jmp 0x30630
jmp 0x306d3
movq 0x130(%rsp), %rdi
movq 0x1f0(%rsp), %rax
movq %rax, 0x10(%rsp)
addq $0x20, %rdi
movslq 0x1b0(%rsp), %rsi
callq 0x30760
movq 0x10(%rsp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0x30b70
movq %rax, 0x18(%rsp)
jmp 0x30673
movq 0x18(%rsp), %rdi
callq 0x30c60
movb %al, 0xf(%rsp)
jmp 0x30683
movb 0xf(%rsp), %al
testb $0x1, %al
jne 0x306cd
jmp 0x3068d
movq 0x130(%rsp), %rdi
addq $0x138, %rdi            # imm = 0x138
movl 0x1b0(%rsp), %eax
movl %eax, 0x148(%rsp)
leaq 0x148(%rsp), %rsi
callq 0x30870
movq %rax, (%rsp)
jmp 0x306bd
movq (%rsp), %rax
movl (%rax), %eax
subl $0x1, %eax
movl %eax, 0x1b0(%rsp)
jmp 0x306d3
jmp 0x306d1
jmp 0x306d3
jmp 0x306d5
movl 0x1b0(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x1b0(%rsp)
jmp 0x2ff10
movb $0x1, 0x1eb(%rsp)
leaq 0x1b8(%rsp), %rdi
callq 0xdf50
testb $0x1, 0x1eb(%rsp)
jne 0x30728
jmp 0x3071b
leaq 0x1b8(%rsp), %rdi
callq 0xdf50
jmp 0x30738
movq 0x138(%rsp), %rdi
callq 0xdf50
movq 0x128(%rsp), %rax
addq $0x218, %rsp            # imm = 0x218
retq
movq 0x138(%rsp), %rdi
callq 0xdf50
movq 0x1e0(%rsp), %rdi
callq 0xd8a0
nopw %cs:(%rax,%rax)
nopl (%rax)