// File: jeffchan[P]blockchain-parser/BlockChain.cpp
// Function: BlockChainImpl::processTransactions(BlockChain::Block&)
void processTransactions(Block &block)
	{
		mTotalTransactionCount+=block.transactionCount;
		for (uint32_t i=0; i<block.transactionCount; i++)
		{
			BlockTransaction &t = block.transactions[i];
			Hash256 hash(t.transactionHash);
			FileLocation f(hash,t.fileIndex,t.fileOffset,t.transactionLength,t.transactionIndex);
			mTransactionMap.insert(f);
		}
		// ok.. now make sure we can locate every input transaction!
		for (uint32_t i=0; i<block.transactionCount; i++)
		{
			BlockTransaction &t = block.transactions[i];
			mTotalInputCount+=t.inputCount;
			mTotalOutputCount+=t.outputCount;
			for (uint32_t j=0; j<t.inputCount; j++)
			{
				BlockInput &input = t.inputs[j];
				if ( input.transactionIndex != 0xFFFFFFFF )
				{
					Hash256 thash(input.transactionHash);
					FileLocation key(thash,0,0,0,0);
					FileLocation *found = mTransactionMap.find(key);
					if ( found == NULL )
					{
						block.warning = true;
					}
				}
			}
		}
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xf0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0xf0(%rbp)
movq -0x10(%rbp), %rcx
movl 0x24(%rcx), %ecx
addl 0x36f1304(%rax), %ecx
movl %ecx, 0x36f1304(%rax)
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x24(%rcx), %eax
jae 0x23508
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movl -0x14(%rbp), %ecx
imulq $0x58, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rsi
addq $0x24, %rsi
leaq -0x40(%rbp), %rdi
callq 0x1c660
movq -0x20(%rbp), %rax
movl 0x48(%rax), %edx
movq -0x20(%rbp), %rax
movl 0x4c(%rax), %ecx
movq -0x20(%rbp), %rax
movl 0x44(%rax), %r8d
movq -0x20(%rbp), %rax
movl 0x50(%rax), %r9d
leaq -0x70(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x1c6a0
movq -0xf0(%rbp), %rdi
addq $0x16f12f0, %rdi        # imm = 0x16F12F0
leaq -0x70(%rbp), %rsi
callq 0x24210
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x23488
movl $0x0, -0x74(%rbp)
movl -0x74(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x24(%rcx), %eax
jae 0x23638
movq -0xf0(%rbp), %rax
movq -0x10(%rbp), %rcx
movq 0x28(%rcx), %rcx
movl -0x74(%rbp), %edx
imulq $0x58, %rdx, %rdx
addq %rdx, %rcx
movq %rcx, -0x80(%rbp)
movq -0x80(%rbp), %rcx
movl 0x4(%rcx), %ecx
addl 0x36f1308(%rax), %ecx
movl %ecx, 0x36f1308(%rax)
movq -0x80(%rbp), %rcx
movl 0x10(%rcx), %ecx
addl 0x36f130c(%rax), %ecx
movl %ecx, 0x36f130c(%rax)
movl $0x0, -0x84(%rbp)
movl -0x84(%rbp), %eax
movq -0x80(%rbp), %rcx
cmpl 0x4(%rcx), %eax
jae 0x23628
movq -0x80(%rbp), %rax
movq 0x8(%rax), %rax
movl -0x84(%rbp), %ecx
shlq $0x5, %rcx
addq %rcx, %rax
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rax
cmpl $-0x1, 0x8(%rax)
je 0x23612
movq -0x90(%rbp), %rax
movq (%rax), %rsi
leaq -0xb0(%rbp), %rdi
callq 0x1c660
leaq -0xe0(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
xorl %r9d, %r9d
movl %r9d, %edx
movl %r9d, %ecx
movl %r9d, %r8d
callq 0x1c6a0
movq -0xf0(%rbp), %rdi
addq $0x16f12f0, %rdi        # imm = 0x16F12F0
leaq -0xe0(%rbp), %rsi
callq 0x1c700
movq %rax, -0xe8(%rbp)
cmpq $0x0, -0xe8(%rbp)
jne 0x23610
movq -0x10(%rbp), %rax
movb $0x1, 0x78(%rax)
jmp 0x23612
jmp 0x23614
movl -0x84(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x84(%rbp)
jmp 0x2356c
jmp 0x2362a
movl -0x74(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rbp)
jmp 0x2350f
addq $0xf0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nopl (%rax,%rax)