// File: mhe[P]raytracerframework_cpp/yaml/map.cpp
// Function: YAML::Map::ParseBlock(YAML::Scanner*, YAML::ParserState const&)
void Map::ParseBlock(Scanner *pScanner, const ParserState& state)
	{
		// eat start token
		pScanner->pop();

		while(1) {
			if(pScanner->empty())
				throw ParserException(-1, -1, ErrorMsg::END_OF_MAP);

			Token token = pScanner->peek();
			if(token.type != TT_KEY && token.type != TT_BLOCK_END)
				throw ParserException(token.line, token.column, ErrorMsg::END_OF_MAP);

			pScanner->pop();
			if(token.type == TT_BLOCK_END)
				break;

			std::auto_ptr <Node> pKey(new Node), pValue(new Node);

			// grab key
			pKey->Parse(pScanner, state);

			// now grab value (optional)
			if(!pScanner->empty() && pScanner->peek().type == TT_VALUE) {
				pScanner->pop();
				pValue->Parse(pScanner, state);
			}

			// assign the map with the actual pointers
			m_data[pKey.release()] = pValue.release();
		}
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xe0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x98(%rbp)
movq -0x10(%rbp), %rdi
callq 0x40510
movq -0x10(%rbp), %rdi
callq 0x40460
testb $0x1, %al
jne 0x34d9a
jmp 0x34dfd
movl $0x30, %edi
callq 0x51b0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xa0(%rbp)
leaq 0x35438(%rip), %rcx     # 0x6a1f0
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movl %edx, %esi
callq 0x340e0
jmp 0x34dc6
movq -0xa0(%rbp), %rdi
leaq 0x3282c(%rip), %rsi     # 0x67600
leaq -0xcab(%rip), %rdx      # 0x34130
callq 0x5690
movq -0xa0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
callq 0x52c0
jmp 0x350cb
movq -0x10(%rbp), %rdi
callq 0x40550
movq %rax, %rsi
leaq -0x70(%rbp), %rdi
callq 0x35a00
cmpl $0xc, -0x6c(%rbp)
je 0x34e96
cmpl $0x5, -0x6c(%rbp)
je 0x34e96
movl $0x30, %edi
callq 0x51b0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xa8(%rbp)
movl -0x68(%rbp), %esi
movl -0x64(%rbp), %edx
leaq 0x353ae(%rip), %rcx     # 0x6a1f0
callq 0x340e0
jmp 0x34e49
movq -0xa8(%rbp), %rdi
leaq 0x327a9(%rip), %rsi     # 0x67600
leaq -0xd2e(%rip), %rdx      # 0x34130
callq 0x5690
jmp 0x350d4
movq -0xa8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
callq 0x52c0
jmp 0x350b7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x350b7
movq -0x10(%rbp), %rdi
callq 0x40510
jmp 0x34ea1
cmpl $0x5, -0x6c(%rbp)
jne 0x34eb3
movl $0x3, -0x74(%rbp)
jmp 0x35095
movl $0x58, %edi
callq 0x53b0
movq %rax, -0xb0(%rbp)
jmp 0x34ec6
movq -0xb0(%rbp), %rdi
callq 0x379f0
jmp 0x34ed4
movq -0xb0(%rbp), %rsi
leaq -0x80(%rbp), %rdi
callq 0x35a80
movl $0x58, %edi
callq 0x53b0
movq %rax, -0xb8(%rbp)
jmp 0x34ef7
movq -0xb8(%rbp), %rdi
callq 0x379f0
jmp 0x34f05
movq -0xb8(%rbp), %rsi
leaq -0x88(%rbp), %rdi
callq 0x35a80
leaq -0x80(%rbp), %rdi
callq 0x35aa0
movq %rax, %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x37ad0
jmp 0x34f33
movq -0x10(%rbp), %rdi
callq 0x40460
movb %al, -0xb9(%rbp)
jmp 0x34f44
movb -0xb9(%rbp), %al
testb $0x1, %al
jne 0x35014
jmp 0x34f54
movq -0x10(%rbp), %rdi
callq 0x40550
movq %rax, -0xc8(%rbp)
jmp 0x34f66
movq -0xc8(%rbp), %rax
cmpl $0xd, 0x4(%rax)
jne 0x35014
movq -0x10(%rbp), %rdi
callq 0x40510
jmp 0x34f82
leaq -0x88(%rbp), %rdi
callq 0x35aa0
movq %rax, %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x37ad0
jmp 0x34fa0
jmp 0x35014
movq -0xb0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
movl $0x58, %esi
callq 0x53c0
jmp 0x350b7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x350ae
movq -0xb8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
movl $0x58, %esi
callq 0x53c0
jmp 0x350ae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x35bc0
jmp 0x350ae
leaq -0x88(%rbp), %rdi
callq 0x35ac0
movq %rax, %rcx
movq -0x98(%rbp), %rax
movq %rcx, -0xe0(%rbp)
addq $0x8, %rax
movq %rax, -0xd8(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x35ac0
movq -0xd8(%rbp), %rdi
movq %rax, -0x90(%rbp)
leaq -0x90(%rbp), %rsi
callq 0x35ae0
movq %rax, -0xd0(%rbp)
jmp 0x35068
movq -0xd0(%rbp), %rax
movq -0xe0(%rbp), %rcx
movq %rcx, (%rax)
leaq -0x88(%rbp), %rdi
callq 0x35bc0
leaq -0x80(%rbp), %rdi
callq 0x35bc0
movl $0x0, -0x74(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x35c00
movl -0x74(%rbp), %eax
testl %eax, %eax
je 0x350a9
jmp 0x350a7
jmp 0x350c2
jmp 0x34d8b
leaq -0x80(%rbp), %rdi
callq 0x35bc0
leaq -0x70(%rbp), %rdi
callq 0x35c00
jmp 0x350cb
addq $0xe0, %rsp
popq %rbp
retq
movq -0x20(%rbp), %rdi
callq 0x56c0
nopw %cs:(%rax,%rax)