// File: /workspace/github_cpp_makefile_star2_O1/jeffchan[P]blockchain-parser/BlockChain.cpp
// Function: BlockImpl::processBlockData(void const*, unsigned int, unsigned int&)
bool processBlockData(const void *blockData,uint32_t blockLength,uint32_t &transactionIndex)
	{
		bool ret = true;
		mBlockData = (const uint8_t *)blockData;
		mBlockRead = mBlockData;	// Set the block-read scan pointer.
		mBlockEnd = &mBlockData[blockLength]; // Mark the end of block pointer
		blockFormatVersion = readU32();	// Read the format version
		previousBlockHash = readHash();  // get the address of the hash
		merkleRoot = readHash();	// Get the address of the merkle root hash
		timeStamp = readU32();	// Get the timestamp
		bits = readU32();	// Get the bits field
		nonce = readU32();	// Get the 'nonce' random number.
		transactionCount = readVariableLengthInteger();	// Read the number of transactions
		if ( transactionCount < MAX_BLOCK_TRANSACTION )
		{
			transactions = mTransactions;	// Assign the transactions buffer pointer
			for (uint32_t i=0; i<transactionCount; i++)
			{
				gTransactionIndex = i;
				BlockChain::BlockTransaction &b = transactions[i];
				if ( !readTransation(b,transactionIndex,i) )	// Read the transaction; if it failed; then abort processing the block chain
				{
					ret = false;
					break;
				}
			}
		}
		return ret;
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rcx, -0x30(%rbp)
movq %rsi, 0x90(%rdi)
movq %rsi, 0x80(%rdi)
movl %edx, %eax
addq %rsi, %rax
movq %rax, 0x88(%rdi)
cmpl $0x3, %edx
jbe 0x111e9
movq %rdi, %r14
leaq 0x4(%rsi), %rax
movl (%rsi), %ecx
movq %rax, 0x80(%rdi)
movl %ecx, 0x4(%rdi)
cmpl $0x23, %edx
jbe 0x11208
leaq 0x24(%rsi), %rcx
movq %rcx, 0x80(%r14)
movq %rax, 0x8(%r14)
cmpl $0x43, %edx
jbe 0x11208
leaq 0x44(%rsi), %rax
movq %rax, 0x80(%r14)
movq %rcx, 0x10(%r14)
cmpl $0x47, %edx
jbe 0x111e9
leaq 0x48(%rsi), %rax
movl 0x44(%rsi), %ecx
movq %rax, 0x80(%r14)
movl %ecx, 0x18(%r14)
cmpl $0x4b, %edx
jbe 0x111e9
leaq 0x4c(%rsi), %rax
movl 0x48(%rsi), %ecx
movq %rax, 0x80(%r14)
movl %ecx, 0x1c(%r14)
cmpl $0x4f, %edx
jbe 0x111e9
leaq 0x50(%rsi), %rax
movl 0x4c(%rsi), %ecx
movq %rax, 0x80(%r14)
movl %ecx, 0x20(%r14)
cmpl $0x50, %edx
je 0x11227
leaq 0x51(%rsi), %rcx
movzbl (%rax), %eax
movq %rcx, 0x80(%r14)
cmpl $0xfc, %eax
jbe 0x1116f
cmpl $0x52, %edx
jbe 0x11246
leaq 0x53(%rsi), %rdi
movzwl (%rcx), %eax
movq %rdi, 0x80(%r14)
cmpl $0xffff, %eax           # imm = 0xFFFF
jne 0x1116f
cmpl $0x56, %edx
jbe 0x111e9
movl 0x53(%rsi), %eax
addq $0x57, %rsi
movq %rsi, 0x80(%r14)
cmpl $-0x1, %eax
je 0x11265
movl %eax, 0x24(%r14)
movb $0x1, %r15b
cmpl $0x1fff, %eax           # imm = 0x1FFF
ja 0x111d3
leaq 0x98(%r14), %rax
movq %rax, 0x28(%r14)
cmpl $0x0, 0x24(%r14)
je 0x111d3
movb $0x1, %r15b
xorl %r13d, %r13d
xorl %ebx, %ebx
xorl %r12d, %r12d
movl %r12d, 0xe667(%rip)     # 0x1f808
movq 0x28(%r14), %rsi
addq %rbx, %rsi
movq %r14, %rdi
movq -0x30(%rbp), %rdx
movl %r12d, %ecx
callq 0x1150a
movzbl %r15b, %r15d
testb %al, %al
cmovel %r13d, %r15d
je 0x111d3
incq %r12
movl 0x24(%r14), %eax
addq $0x58, %rbx
cmpq %rax, %r12
jb 0x1119a
andb $0x1, %r15b
movl %r15d, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x8168(%rip), %rdi      # 0x19358
leaq 0x65f9(%rip), %rsi      # 0x177f0
leaq 0x8185(%rip), %rcx      # 0x19383
movl $0x7ee, %edx            # imm = 0x7EE
callq 0x20c0
leaq 0x8192(%rip), %rdi      # 0x193a1
leaq 0x65da(%rip), %rsi      # 0x177f0
leaq 0x81a1(%rip), %rcx      # 0x193be
movl $0x801, %edx            # imm = 0x801
callq 0x20c0
leaq 0x81e5(%rip), %rdi      # 0x19413
leaq 0x65bb(%rip), %rsi      # 0x177f0
leaq 0x8201(%rip), %rcx      # 0x1943d
movl $0x7dc, %edx            # imm = 0x7DC
callq 0x20c0
leaq 0x820c(%rip), %rdi      # 0x19459
leaq 0x659c(%rip), %rsi      # 0x177f0
leaq 0x8229(%rip), %rcx      # 0x19484
movl $0x7e5, %edx            # imm = 0x7E5
callq 0x20c0
leaq 0x6b04(%rip), %rdi      # 0x17d70
leaq 0x657d(%rip), %rsi      # 0x177f0
leaq 0x8169(%rip), %rcx      # 0x193e3
movl $0x821, %edx            # imm = 0x821
callq 0x20c0