// File: /workspace/github_cpp_makefile_star2_O1/kipa00[P]AplusB-mc/compiler/chunk.cpp
// Function: chunk::feed(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void chunk::feed(string name) {
	if (name == "minecraft:air") {
		(this->block &= 15) |= AIR;
	} else if (name == "minecraft:bedrock") {
		(this->block &= 15) |= BEDROCK;
	} else if (name == "minecraft:stone") {
		(this->block &= 15) |= STONE;
	} else if (name == "minecraft:sandstone") {
		(this->block &= 15) |= SANDSTONE;
	} else if (name == "minecraft:redstone_wire") {
		(this->block &= 15) |= REDSTONE_WIRE;
	} else if (name == "minecraft:redstone_torch") {
		(this->block &= 15) |= REDSTONE_TORCH;
	} else if (name == "minecraft:redstone_wall_torch") {
		(this->block &= 15) |= REDSTONE_WALL_TORCH;
	} else if (name == "minecraft:repeater") {
		(this->block &= 31) |= REPEATER;
	} else if (name == "minecraft:comparator") {
		(this->block &= 15) |= COMPARATOR;
	} else if (name == "minecraft:redstone_lamp") {
		(this->block &= 15) |= REDSTONE_LAMP;
	} else if (name == "minecraft:lever") {
		(this->block &= 15) |= LEVER;
	} else if (name.length() >= 19 && name.substr(0, 10) == "minecraft:" && name.substr(name.length() - 9) == "_concrete") {
		int color = color_to_int(name.substr(10, name.length() - 19));
		if (color < 0) {
			fprintf(stderr, "Error: unknown block name '%s'\n", name.c_str());
			throw UNKNOWN_BLOCK_ERROR;
		}
		this->block = CONCRETE | color;
	} else {
		fprintf(stderr, "Error: unknown block name '%s'\n", name.c_str());
		throw UNKNOWN_BLOCK_ERROR;
	}
#ifdef CHUNK_DEBUG
	printf("  Block : %s\n", name.c_str());
#endif
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x46a3(%rip), %rsi      # 0x83b2
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x3e85
leaq 0x469a(%rip), %rsi      # 0x83c0
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x3e8b
leaq 0x4695(%rip), %rsi      # 0x83d2
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x3e96
leaq 0x468e(%rip), %rsi      # 0x83e2
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x3ea1
leaq 0x468b(%rip), %rsi      # 0x83f6
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x3eac
leaq 0x468c(%rip), %rsi      # 0x840e
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x3eb7
leaq 0x468e(%rip), %rsi      # 0x8427
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x3ec2
leaq 0x4695(%rip), %rsi      # 0x8445
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x3ecd
leaq 0x4691(%rip), %rsi      # 0x8458
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x3eda
leaq 0x468f(%rip), %rsi      # 0x846d
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x3ee5
leaq 0x4690(%rip), %rsi      # 0x8485
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x3ef2
movq 0x8(%r14), %r12
xorl %r13d, %r13d
cmpq $0x13, %r12
jb 0x3f0f
leaq 0x28(%rsp), %r15
movl $0xa, %ecx
movq %r15, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x2160
leaq 0x4661(%rip), %rsi      # 0x8495
movq %r15, %rdi
callq 0x2050
movl $0x0, %r15d
testl %eax, %eax
jne 0x3f12
movq 0x8(%r14), %rdx
addq $-0x9, %rdx
leaq 0x48(%rsp), %rdi
movq %r14, %rsi
movq $-0x1, %rcx
callq 0x2160
leaq 0x4633(%rip), %rsi      # 0x84a0
leaq 0x48(%rsp), %rdi
callq 0x2050
testl %eax, %eax
sete %r15b
movb $0x1, %r13b
jmp 0x3f12
andl $0xf, 0xc(%rbx)
jmp 0x3f00
movl 0xc(%rbx), %eax
andl $0xf, %eax
orl $0x10, %eax
jmp 0x3efd
movl 0xc(%rbx), %eax
andl $0xf, %eax
orl $0x20, %eax
jmp 0x3efd
movl 0xc(%rbx), %eax
andl $0xf, %eax
orl $0x30, %eax
jmp 0x3efd
movl 0xc(%rbx), %eax
andl $0xf, %eax
orl $0x40, %eax
jmp 0x3efd
movl 0xc(%rbx), %eax
andl $0xf, %eax
orl $0x50, %eax
jmp 0x3efd
movl 0xc(%rbx), %eax
andl $0xf, %eax
orl $0x60, %eax
jmp 0x3efd
movl 0xc(%rbx), %eax
andl $0x1f, %eax
orl $0x80, %eax
jmp 0x3efd
movl 0xc(%rbx), %eax
andl $0xf, %eax
orl $0x70, %eax
jmp 0x3efd
movl 0xc(%rbx), %eax
andl $0xf, %eax
orl $0xa0, %eax
jmp 0x3efd
movl 0xc(%rbx), %eax
andl $0xf, %eax
orl $0xb0, %eax
movl %eax, 0xc(%rbx)
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
xorl %r15d, %r15d
testb %r13b, %r13b
je 0x3f32
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3f32
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x2150
cmpq $0x13, %r12
jb 0x3f53
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3f53
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x2150
testb %r15b, %r15b
je 0x3fac
movq 0x8(%r14), %rcx
addq $-0x13, %rcx
leaq 0x8(%rsp), %r15
movl $0xa, %edx
movq %r15, %rdi
movq %r14, %rsi
callq 0x2160
movq %r15, %rdi
callq 0x7d1c
movl %eax, %ebp
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3f9a
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x2150
testl %ebp, %ebp
js 0x3fb4
orl $0xc0, %ebp
movl %ebp, 0xc(%rbx)
jmp 0x3f00
movq %r14, %rdi
callq 0x230c
movq %r14, %rdi
callq 0x2347
movq %rax, %rbx
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3ff2
movq 0x38(%rsp), %rsi
jmp 0x3fea
movq %rax, %rbx
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3ff2
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x2150
movq %rbx, %rdi
callq 0x2220