// File: /workspace/github_cpp_makefile_star2_O1/jeffchan[P]blockchain-parser/BlockChain.cpp
// Function: BitcoinTransactionFactory::BitcoinTransactionFactory()
BitcoinTransactionFactory(void)
	{
		mTransactionReferences = NULL;
		mTransactions = NULL;
		mInputs = NULL;
		mOutputs = NULL;
		mBlocks = NULL;
		mTransactionCount = 0;
		mTotalInputCount = 0;
		mTotalOutputCount = 0;
		mBlockCount = 0;
		mStatCount = 0;

		mStatLimits[SS_ZERO] = 0;
		mStatLimits[SS_ONE_MBTC] = ONE_MBTC;
		mStatLimits[SS_FIVE_MBTC] = ONE_MBTC*5;

		mStatLimits[SS_TEN_MBTC] = ONE_MBTC*10;
		mStatLimits[SS_FIFTY_MBTC] = ONE_MBTC*50;

		mStatLimits[SS_HUNDRED_MBTC] = ONE_MBTC*100;
		mStatLimits[SS_FIVE_HUNDRED_MBTC] = ONE_MBTC*500;


		mStatLimits[SS_ONE_BTC] = ONE_BTC;
		mStatLimits[SS_FIVE_BTC] = ONE_BTC*5;

		mStatLimits[SS_TEN_BTC] = ONE_BTC*10;
		mStatLimits[SS_FIFTY_BTC] = (uint64_t)ONE_BTC*(uint64_t)50;

		mStatLimits[SS_HUNDRED_BTC] = (uint64_t)ONE_BTC*(uint64_t)100;
		mStatLimits[SS_FIVE_HUNDRED_BTC] = (uint64_t)ONE_BTC*(uint64_t)500;

		mStatLimits[SS_ONE_THOUSAND_BTC] = (uint64_t)ONE_BTC*(uint64_t)1000;
		mStatLimits[SS_FIVE_THOUSAND_BTC] = (uint64_t)ONE_BTC*(uint64_t)5000;

		mStatLimits[SS_TEN_THOUSAND_BTC] = (uint64_t)ONE_BTC*(uint64_t)10000;
		mStatLimits[SS_FIFTY_THOUSAND_BTC] = (uint64_t)ONE_BTC*(uint64_t)50000;
		mStatLimits[SS_HUNDRED_THOUSAND_BTC] = (uint64_t)ONE_BTC*(uint64_t)100000;
		mStatLimits[SS_MAX_BTC] = (uint64_t)ONE_BTC*(uint64_t)21000000;


		mStatLabel[SS_ZERO] = "ZERO";
		mStatLabel[SS_ONE_MBTC] = "<1MBTC";
		mStatLabel[SS_FIVE_MBTC] = "<5MBTC";
		mStatLabel[SS_TEN_MBTC] = "<10MBTC";
		mStatLabel[SS_FIFTY_MBTC] = "<50MBTC";
		mStatLabel[SS_HUNDRED_MBTC] = "<100MBTC";
		mStatLabel[SS_FIVE_HUNDRED_MBTC] = "<500MBTC";
		mStatLabel[SS_ONE_BTC] = "<1BTC";
		mStatLabel[SS_FIVE_BTC] = "<5BTC";
		mStatLabel[SS_TEN_BTC] = "<10BTC";
		mStatLabel[SS_FIFTY_BTC] = "<50BTC";
		mStatLabel[SS_HUNDRED_BTC] = "<100BTC";
		mStatLabel[SS_FIVE_HUNDRED_BTC] = "<500BTC";
		mStatLabel[SS_ONE_THOUSAND_BTC] = "<1KBTC";
		mStatLabel[SS_FIVE_THOUSAND_BTC] = "<5KBTC";
		mStatLabel[SS_TEN_THOUSAND_BTC] = "<10KBTC";
		mStatLabel[SS_FIFTY_THOUSAND_BTC] = "<50KBTC";
		mStatLabel[SS_HUNDRED_THOUSAND_BTC] = "<100KBTC";
		mStatLabel[SS_MAX_BTC] = ">100KBTC";

	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq %rdi, %rbx
movq $0x0, 0x2000008(%rdi)
xorl %r14d, %r14d
movl $0x2000004, %edx        # imm = 0x2000004
xorl %esi, %esi
callq 0x20b0
leaq 0x2000080(%rbx), %rax
movl $0x2000058, %ecx        # imm = 0x2000058
xorps %xmm0, %xmm0
movl $0x190, %edx            # imm = 0x190
leaq (%rbx,%rcx), %rsi
xorl %edi, %edi
movl $0x0, -0x8(%rax,%rdi)
movq $0x0, (%rax,%rdi)
addq $0x10, %rdi
cmpq $0x130, %rdi            # imm = 0x130
jne 0xb8d0
movq %r14, 0x18(%rsi)
movl %r14d, 0x150(%rsi)
movups %xmm0, (%rsi)
movl %r14d, 0x10(%rsi)
movups %xmm0, 0x158(%rsi)
movups %xmm0, 0x168(%rsi)
movups %xmm0, 0x178(%rsi)
movq %r14, 0x188(%rsi)
addq %rdx, %rcx
addq %rdx, %rax
cmpq $0x20d5e38, %rcx        # imm = 0x20D5E38
jne 0xb8ca
xorl %eax, %eax
movq %rax, 0x2000010(%rbx)
movl %eax, 0x2000018(%rbx)
movq %rax, 0x20d5ed0(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x2000020(%rbx)
movups %xmm0, 0x200002c(%rbx)
movups %xmm0, 0x2000040(%rbx)
movl %eax, 0x2000050(%rbx)
movq $0x186a0, 0x20d5ed8(%rbx) # imm = 0x186A0
movq $0x7a120, 0x20d5ee0(%rbx) # imm = 0x7A120
movq $0xf4240, 0x20d5ee8(%rbx) # imm = 0xF4240
movq $0x4c4b40, 0x20d5ef0(%rbx) # imm = 0x4C4B40
movq $0x989680, 0x20d5ef8(%rbx) # imm = 0x989680
movq $0x2faf080, 0x20d5f00(%rbx) # imm = 0x2FAF080
movq $0x5f5e100, 0x20d5f08(%rbx) # imm = 0x5F5E100
movq $0x1dcd6500, 0x20d5f10(%rbx) # imm = 0x1DCD6500
movq $0x3b9aca00, 0x20d5f18(%rbx) # imm = 0x3B9ACA00
movabsq $0x12a05f200, %rax      # imm = 0x12A05F200
movq %rax, 0x20d5f20(%rbx)
movabsq $0x2540be400, %rax      # imm = 0x2540BE400
movq %rax, 0x20d5f28(%rbx)
movabsq $0xba43b7400, %rax      # imm = 0xBA43B7400
movq %rax, 0x20d5f30(%rbx)
movabsq $0x174876e800, %rax     # imm = 0x174876E800
movq %rax, 0x20d5f38(%rbx)
movabsq $0x746a528800, %rax     # imm = 0x746A528800
movq %rax, 0x20d5f40(%rbx)
movabsq $0xe8d4a51000, %rax     # imm = 0xE8D4A51000
movq %rax, 0x20d5f48(%rbx)
movabsq $0x48c27395000, %rax    # imm = 0x48C27395000
movq %rax, 0x20d5f50(%rbx)
movabsq $0x9184e72a000, %rax    # imm = 0x9184E72A000
movq %rax, 0x20d5f58(%rbx)
movabsq $0x775f05a074000, %rax  # imm = 0x775F05A074000
movq %rax, 0x20d5f60(%rbx)
leaq 0xbf62(%rip), %rax      # 0x179c3
movq %rax, 0x20d5e38(%rbx)
leaq 0xbf59(%rip), %rax      # 0x179c8
movq %rax, 0x20d5e40(%rbx)
leaq 0xbf52(%rip), %rax      # 0x179cf
movq %rax, 0x20d5e48(%rbx)
leaq 0xbf4b(%rip), %rax      # 0x179d6
movq %rax, 0x20d5e50(%rbx)
leaq 0xbf45(%rip), %rax      # 0x179de
movq %rax, 0x20d5e58(%rbx)
leaq 0xbf3f(%rip), %rax      # 0x179e6
movq %rax, 0x20d5e60(%rbx)
leaq 0xbf3a(%rip), %rax      # 0x179ef
movq %rax, 0x20d5e68(%rbx)
leaq 0xbf35(%rip), %rax      # 0x179f8
movq %rax, 0x20d5e70(%rbx)
leaq 0xbf2d(%rip), %rax      # 0x179fe
movq %rax, 0x20d5e78(%rbx)
leaq 0xbf25(%rip), %rax      # 0x17a04
movq %rax, 0x20d5e80(%rbx)
leaq 0xbf1e(%rip), %rax      # 0x17a0b
movq %rax, 0x20d5e88(%rbx)
leaq 0xbf17(%rip), %rax      # 0x17a12
movq %rax, 0x20d5e90(%rbx)
leaq 0xbf11(%rip), %rax      # 0x17a1a
movq %rax, 0x20d5e98(%rbx)
leaq 0xbf0b(%rip), %rax      # 0x17a22
movq %rax, 0x20d5ea0(%rbx)
leaq 0xbf04(%rip), %rax      # 0x17a29
movq %rax, 0x20d5ea8(%rbx)
leaq 0xbefd(%rip), %rax      # 0x17a30
movq %rax, 0x20d5eb0(%rbx)
leaq 0xbef7(%rip), %rax      # 0x17a38
movq %rax, 0x20d5eb8(%rbx)
leaq 0xbef1(%rip), %rax      # 0x17a40
movq %rax, 0x20d5ec0(%rbx)
leaq 0xbeec(%rip), %rax      # 0x17a49
movq %rax, 0x20d5ec8(%rbx)
popq %rbx
popq %r14
popq %rbp
retq
nop