// File: /workspace/github_cpp_makefile_star2_O3/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 %r12
pushq %rbx
subq $0x60, %rsp
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x4723(%rip), %rsi      # 0x83a2
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x3e74
leaq 0x471a(%rip), %rsi      # 0x83b0
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x3e7a
leaq 0x4715(%rip), %rsi      # 0x83c2
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x3e85
leaq 0x470e(%rip), %rsi      # 0x83d2
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x3e90
leaq 0x470b(%rip), %rsi      # 0x83e6
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x3e9b
leaq 0x470c(%rip), %rsi      # 0x83fe
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x3ea6
leaq 0x470e(%rip), %rsi      # 0x8417
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x3eb1
leaq 0x4715(%rip), %rsi      # 0x8435
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x3ebc
leaq 0x4711(%rip), %rsi      # 0x8448
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x3ec9
leaq 0x470f(%rip), %rsi      # 0x845d
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x3ed4
leaq 0x4710(%rip), %rsi      # 0x8475
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x3ee1
cmpq $0x13, 0x8(%r14)
jb 0x3efc
xorl %r12d, %r12d
leaq 0x20(%rsp), %r15
movl $0xa, %ecx
movq %r15, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x2160
leaq 0x46e4(%rip), %rsi      # 0x8485
movq %r15, %rdi
callq 0x2050
testl %eax, %eax
jne 0x3dfd
movq 0x8(%r14), %rdx
addq $-0x9, %rdx
leaq 0x40(%rsp), %rdi
movq %r14, %rsi
movq $-0x1, %rcx
callq 0x2160
leaq 0x46c0(%rip), %rsi      # 0x8490
leaq 0x40(%rsp), %r15
movq %r15, %rdi
callq 0x2050
testl %eax, %eax
sete %r12b
movq (%r15), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x3dfd
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x2150
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3e18
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x2150
testb %r12b, %r12b
je 0x3efc
movq 0x8(%r14), %rcx
addq $-0x13, %rcx
movq %rsp, %r15
movl $0xa, %edx
movq %r15, %rdi
movq %r14, %rsi
callq 0x2160
movq %r15, %rdi
callq 0x7c78
movl %eax, %ebp
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3e61
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2150
testl %ebp, %ebp
js 0x3f04
orl $0xc0, %ebp
movl %ebp, 0xc(%rbx)
jmp 0x3eef
andl $0xf, 0xc(%rbx)
jmp 0x3eef
movl 0xc(%rbx), %eax
andl $0xf, %eax
orl $0x10, %eax
jmp 0x3eec
movl 0xc(%rbx), %eax
andl $0xf, %eax
orl $0x20, %eax
jmp 0x3eec
movl 0xc(%rbx), %eax
andl $0xf, %eax
orl $0x30, %eax
jmp 0x3eec
movl 0xc(%rbx), %eax
andl $0xf, %eax
orl $0x40, %eax
jmp 0x3eec
movl 0xc(%rbx), %eax
andl $0xf, %eax
orl $0x50, %eax
jmp 0x3eec
movl 0xc(%rbx), %eax
andl $0xf, %eax
orl $0x60, %eax
jmp 0x3eec
movl 0xc(%rbx), %eax
andl $0x1f, %eax
orl $0x80, %eax
jmp 0x3eec
movl 0xc(%rbx), %eax
andl $0xf, %eax
orl $0x70, %eax
jmp 0x3eec
movl 0xc(%rbx), %eax
andl $0xf, %eax
orl $0xa0, %eax
jmp 0x3eec
movl 0xc(%rbx), %eax
andl $0xf, %eax
orl $0xb0, %eax
movl %eax, 0xc(%rbx)
addq $0x60, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %r14, %rdi
callq 0x22f9
movq %r14, %rdi
callq 0x2334
movq %rax, %rbx
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3f42
movq 0x30(%rsp), %rsi
jmp 0x3f3a
movq %rax, %rbx
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3f42
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2150
movq %rbx, %rdi
callq 0x2220