// File: mniip[P]sandbox/config.cpp
// Function: read_block_until(std::basic_ifstream<char, std::char_traits<char>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
static void read_block_until(std::ifstream &file, std::string until)
{
	std::string line;
	while(std::getline(file, line))
	{
		std::istringstream iss(line);
		std::string key;
		if(!(iss >> key)) continue;
		if(key == until) break;
		
		if(key == "ident")
		{
			std::string id;
			if(!(iss >> id)) continue;
			if(id == ident)
				read_block_until(file, "end");
			else
				skip_block_until(file, "end");
		}
		else if(key != "#")
			process_line(key, iss);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2f0, %rsp            # imm = 0x2F0
movq %rsi, -0x280(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x5700
movq -0x8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x50d0
movq %rax, -0x288(%rbp)
jmp 0x15e99
movq -0x288(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x5620
movb %al, -0x289(%rbp)
jmp 0x15eb7
movb -0x289(%rbp), %al
testb $0x1, %al
jne 0x15ec6
jmp 0x162bc
leaq -0x1c0(%rbp), %rdi
leaq -0x30(%rbp), %rsi
movl $0x8, %edx
callq 0x5890
jmp 0x15edd
leaq -0x1e0(%rbp), %rdi
movq %rdi, -0x2a0(%rbp)
callq 0x5700
movq -0x2a0(%rbp), %rsi
leaq -0x1c0(%rbp), %rdi
callq 0x5630
movq %rax, -0x298(%rbp)
jmp 0x15f0c
movq -0x298(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x5240
movb %al, -0x2a1(%rbp)
jmp 0x15f2a
movb -0x2a1(%rbp), %al
testb $0x1, %al
jne 0x15f36
jmp 0x15f67
movl $0x2, -0x1e4(%rbp)
jmp 0x16260
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x162ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x162a2
movq -0x280(%rbp), %rsi
leaq -0x1e0(%rbp), %rdi
callq 0x14330
testb $0x1, %al
jne 0x15f80
jmp 0x15f8f
movl $0x3, -0x1e4(%rbp)
jmp 0x16260
leaq 0x655c(%rip), %rsi      # 0x1c4f2
leaq -0x1e0(%rbp), %rdi
callq 0x72a0
movb %al, -0x2a2(%rbp)
jmp 0x15faa
movb -0x2a2(%rbp), %al
testb $0x1, %al
jne 0x15fb9
jmp 0x161db
leaq -0x208(%rbp), %rdi
movq %rdi, -0x2b8(%rbp)
callq 0x5700
movq -0x2b8(%rbp), %rsi
leaq -0x1c0(%rbp), %rdi
callq 0x5630
movq %rax, -0x2b0(%rbp)
jmp 0x15fe8
movq -0x2b0(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x5240
movb %al, -0x2b9(%rbp)
jmp 0x16006
movb -0x2b9(%rbp), %al
testb $0x1, %al
jne 0x16012
jmp 0x16032
movl $0x2, -0x1e4(%rbp)
jmp 0x161a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x161ca
leaq 0x1150f(%rip), %rax     # 0x27548
movq (%rax), %rsi
leaq -0x208(%rbp), %rdi
callq 0x72a0
movb %al, -0x2ba(%rbp)
jmp 0x16050
movb -0x2ba(%rbp), %al
testb $0x1, %al
jne 0x1605f
jmp 0x16102
movq -0x8(%rbp), %rax
movq %rax, -0x2d0(%rbp)
leaq -0x229(%rbp), %rdi
movq %rdi, -0x2c8(%rbp)
callq 0x5900
movq -0x2c8(%rbp), %rdx
leaq 0x646d(%rip), %rsi      # 0x1c4f8
leaq -0x228(%rbp), %rdi
callq 0x72d0
jmp 0x16099
movq -0x2d0(%rbp), %rdi
leaq -0x228(%rbp), %rsi
callq 0x15e60
jmp 0x160ae
leaq -0x228(%rbp), %rdi
callq 0x59b8
leaq -0x229(%rbp), %rdi
callq 0x5560
jmp 0x1619f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x160f1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x228(%rbp), %rdi
callq 0x59b8
leaq -0x229(%rbp), %rdi
callq 0x5560
jmp 0x161ca
movq -0x8(%rbp), %rax
movq %rax, -0x2e0(%rbp)
leaq -0x251(%rbp), %rdi
movq %rdi, -0x2d8(%rbp)
callq 0x5900
movq -0x2d8(%rbp), %rdx
leaq 0x63ca(%rip), %rsi      # 0x1c4f8
leaq -0x250(%rbp), %rdi
callq 0x72d0
jmp 0x1613c
movq -0x2e0(%rbp), %rdi
leaq -0x250(%rbp), %rsi
callq 0x162e0
jmp 0x16151
leaq -0x250(%rbp), %rdi
callq 0x59b8
leaq -0x251(%rbp), %rdi
callq 0x5560
jmp 0x1619f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x16191
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x250(%rbp), %rdi
callq 0x59b8
leaq -0x251(%rbp), %rdi
callq 0x5560
jmp 0x161ca
movl $0x0, -0x1e4(%rbp)
leaq -0x208(%rbp), %rdi
callq 0x59b8
movl -0x1e4(%rbp), %eax
testl %eax, %eax
jne 0x16260
jmp 0x161c5
jmp 0x16256
leaq -0x208(%rbp), %rdi
callq 0x59b8
jmp 0x162a2
leaq 0x631a(%rip), %rsi      # 0x1c4fc
leaq -0x1e0(%rbp), %rdi
callq 0x141c0
movb %al, -0x2e1(%rbp)
jmp 0x161f6
movb -0x2e1(%rbp), %al
testb $0x1, %al
jne 0x16202
jmp 0x16254
leaq -0x278(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
callq 0x5210
jmp 0x16217
leaq -0x278(%rbp), %rdi
leaq -0x1c0(%rbp), %rsi
callq 0x16560
jmp 0x1622c
leaq -0x278(%rbp), %rdi
callq 0x59b8
jmp 0x16254
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x278(%rbp), %rdi
callq 0x59b8
jmp 0x162a2
jmp 0x16256
movl $0x0, -0x1e4(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x59b8
leaq -0x1c0(%rbp), %rdi
callq 0x5260
movl -0x1e4(%rbp), %eax
movl %eax, -0x2e8(%rbp)
testl %eax, %eax
je 0x1629d
jmp 0x1628a
movl -0x2e8(%rbp), %eax
subl $0x2, %eax
je 0x15e83
jmp 0x1629b
jmp 0x162bc
jmp 0x15e83
leaq -0x1e0(%rbp), %rdi
callq 0x59b8
leaq -0x1c0(%rbp), %rdi
callq 0x5260
jmp 0x162ce
leaq -0x30(%rbp), %rdi
callq 0x59b8
addq $0x2f0, %rsp            # imm = 0x2F0
popq %rbp
retq
leaq -0x30(%rbp), %rdi
callq 0x59b8
movq -0x38(%rbp), %rdi
callq 0x58f0