// File: BenLangmead[P]bowtie/./aligner.h
// Function: PairedBWAlignerV1<EbwtRangeSource>::PairedBWAlignerV1(EbwtSearchParams*, RangeSourceDriver<EbwtRangeSource>*, RangeSourceDriver<EbwtRangeSource>*, RangeSourceDriver<EbwtRangeSource>*, RangeSourceDriver<EbwtRangeSource>*, RefAligner*, RangeChaser*, HitSink&, HitSinkPerThreadFactory const&, HitSinkPerThread*, bool, bool, unsigned int, unsigned int, bool, unsigned int, unsigned int, unsigned int, BitPairReference const*, bool, bool, bool, int, ChunkPool*, int*)
PairedBWAlignerV1(
		EbwtSearchParams* params,
		TDriver* driver1Fw, TDriver* driver1Rc,
		TDriver* driver2Fw, TDriver* driver2Rc,
		RefAligner* refAligner,
		RangeChaser* rchase,
		HitSink& sink,
		const HitSinkPerThreadFactory& sinkPtFactory,
		HitSinkPerThread* sinkPt,
		bool fw1, bool fw2,
		uint32_t minInsert,
		uint32_t maxInsert,
		bool dontReconcile,
		uint32_t symCeiling,
		uint32_t mixedThresh,
		uint32_t mixedAttemptLim,
		const BitPairReference* refs,
		bool rangeMode,
		bool verbose,
		bool quiet,
		int maxBts,
		ChunkPool *pool,
		int *btCnt) :
		Aligner(true, rangeMode),
		refs_(refs),
		patsrc_(NULL), qlen1_(0), qlen2_(0), doneFw_(true),
		doneFwFirst_(true),
		chase1Fw_(false), chase1Rc_(false),
		chase2Fw_(false), chase2Rc_(false),
		delayedChase1Fw_(false), delayedChase1Rc_(false),
		delayedChase2Fw_(false), delayedChase2Rc_(false),
		refAligner_(refAligner),
		sinkPtFactory_(sinkPtFactory),
		sinkPt_(sinkPt),
		params_(params),
		minInsert_(minInsert),
		maxInsert_(maxInsert),
		dontReconcile_(dontReconcile),
		symCeiling_(symCeiling),
		mixedThresh_(mixedThresh),
		mixedAttemptLim_(mixedAttemptLim),
		mixedAttempts_(0),
		fw1_(fw1), fw2_(fw2),
		rchase_(rchase),
		verbose_(verbose),
		quiet_(quiet),
		maxBts_(maxBts),
		pool_(pool),
		btCnt_(btCnt),
		driver1Fw_(driver1Fw), driver1Rc_(driver1Rc),
		offs1FwSz_(0), offs1RcSz_(0),
		driver2Fw_(driver2Fw), driver2Rc_(driver2Rc),
		offs2FwSz_(0), offs2RcSz_(0),

		chaseL_fw_       (fw1_ ? chase1Fw_        : chase1Rc_),
		chaseR_fw_       (fw2_ ? chase2Fw_        : chase2Rc_),
		delayedchaseL_fw_(fw1_ ? delayedChase1Fw_ : delayedChase1Rc_),
		delayedchaseR_fw_(fw2_ ? delayedChase2Fw_ : delayedChase2Rc_),
		drL_fw_          (fw1_ ? *driver1Fw_      : *driver1Rc_),
		drR_fw_          (fw2_ ? *driver2Fw_      : *driver2Rc_),
		offsLarr_fw_     (fw1_ ? offs1FwArr_      : offs1RcArr_),
		offsRarr_fw_     (fw2_ ? offs2FwArr_      : offs2RcArr_),
		rangesLarr_fw_   (fw1_ ? ranges1FwArr_    : ranges1RcArr_),
		rangesRarr_fw_   (fw2_ ? ranges2FwArr_    : ranges2RcArr_),
		offsLsz_fw_      (fw1_ ? offs1FwSz_       : offs1RcSz_),
		offsRsz_fw_      (fw2_ ? offs2FwSz_       : offs2RcSz_),

		chaseL_rc_       (fw2_ ? chase2Rc_        : chase2Fw_),
		chaseR_rc_       (fw1_ ? chase1Rc_        : chase1Fw_),
		delayedchaseL_rc_(fw2_ ? delayedChase2Rc_ : delayedChase2Fw_),
		delayedchaseR_rc_(fw1_ ? delayedChase1Rc_ : delayedChase1Fw_),
		drL_rc_          (fw2_ ? *driver2Rc_      : *driver2Fw_),
		drR_rc_          (fw1_ ? *driver1Rc_      : *driver1Fw_),
		offsLarr_rc_     (fw2_ ? offs2RcArr_      : offs2FwArr_),
		offsRarr_rc_     (fw1_ ? offs1RcArr_      : offs1FwArr_),
		rangesLarr_rc_   (fw2_ ? ranges2RcArr_    : ranges2FwArr_),
		rangesRarr_rc_   (fw1_ ? ranges1RcArr_    : ranges1FwArr_),
		offsLsz_rc_      (fw2_ ? offs2RcSz_       : offs2FwSz_),
		offsRsz_rc_      (fw1_ ? offs1RcSz_       : offs1FwSz_),

		chaseL_       (&chaseL_fw_),
		chaseR_       (&chaseR_fw_),
		delayedchaseL_(&delayedchaseL_fw_),
		delayedchaseR_(&delayedchaseR_fw_),
		drL_          (&drL_fw_),
		drR_          (&drR_fw_),
		offsLarr_     (offsLarr_fw_),
		offsRarr_     (offsRarr_fw_),
		rangesLarr_   (rangesLarr_fw_),
		rangesRarr_   (rangesRarr_fw_),
		offsLsz_      (&offsLsz_fw_),
		offsRsz_      (&offsRsz_fw_),
		donePair_     (&doneFw_),
		fwL_(fw1),
		fwR_(fw2),
		verbose2_(false)
	{
		assert(pool_      != NULL);
		assert(sinkPt_    != NULL);
		assert(params_    != NULL);
		assert(driver1Fw_ != NULL);
		assert(driver1Rc_ != NULL);
		assert(driver2Fw_ != NULL);
		assert(driver2Rc_ != NULL);
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x3c0, %rsp            # imm = 0x3C0
movq %r8, %r10
movq %rcx, %r11
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r15
movq 0xa8(%rbp), %rax
movq 0xa0(%rbp), %rax
movl 0x98(%rbp), %eax
movb 0x90(%rbp), %al
movb 0x88(%rbp), %cl
movb 0x80(%rbp), %dl
movq 0x78(%rbp), %rsi
movl 0x70(%rbp), %esi
movl 0x68(%rbp), %esi
movl 0x60(%rbp), %esi
movb 0x58(%rbp), %sil
movl 0x50(%rbp), %edi
movl 0x48(%rbp), %edi
movb 0x40(%rbp), %dil
movb 0x38(%rbp), %r8b
movq 0x30(%rbp), %r12
movq 0x28(%rbp), %r12
movq 0x20(%rbp), %r12
movq 0x18(%rbp), %r12
movq 0x10(%rbp), %r12
movq %r15, -0x28(%rbp)
movq %r14, -0x30(%rbp)
movq %rbx, -0x38(%rbp)
movq %r11, -0x40(%rbp)
movq %r10, -0x48(%rbp)
movq %r9, -0x50(%rbp)
andb $0x1, %r8b
movb %r8b, -0x51(%rbp)
andb $0x1, %dil
movb %dil, -0x52(%rbp)
andb $0x1, %sil
movb %sil, -0x53(%rbp)
andb $0x1, %dl
movb %dl, -0x54(%rbp)
andb $0x1, %cl
movb %cl, -0x55(%rbp)
andb $0x1, %al
movb %al, -0x56(%rbp)
movq -0x28(%rbp), %rdi
movq %rdi, -0x88(%rbp)
movb -0x54(%rbp), %al
movl $0x1, %esi
andb $0x1, %al
movzbl %al, %edx
callq 0x4b700
movq -0x88(%rbp), %rax
leaq 0x503da(%rip), %rcx     # 0xa7450
addq $0x10, %rcx
movq %rcx, (%rax)
movq 0x78(%rbp), %rcx
movq %rcx, 0x50(%rax)
movq $0x0, 0x58(%rax)
movl $0x0, 0x60(%rax)
movl $0x0, 0x64(%rax)
movb $0x1, 0x68(%rax)
movb $0x1, 0x69(%rax)
movb $0x0, 0x6a(%rax)
movb $0x0, 0x6b(%rax)
movb $0x0, 0x6c(%rax)
movb $0x0, 0x6d(%rax)
movb $0x0, 0x6e(%rax)
movb $0x0, 0x6f(%rax)
movb $0x0, 0x70(%rax)
movb $0x0, 0x71(%rax)
movq 0x10(%rbp), %rcx
movq %rcx, 0x78(%rax)
movq 0x28(%rbp), %rcx
movq %rcx, 0x80(%rax)
movq 0x30(%rbp), %rcx
movq %rcx, 0x88(%rax)
movq -0x30(%rbp), %rcx
movq %rcx, 0x90(%rax)
movl 0x48(%rbp), %ecx
movl %ecx, 0x98(%rax)
movl 0x50(%rbp), %ecx
movl %ecx, 0x9c(%rax)
movb -0x53(%rbp), %cl
andb $0x1, %cl
movb %cl, 0xa0(%rax)
movl 0x60(%rbp), %ecx
movl %ecx, 0xa4(%rax)
movl 0x68(%rbp), %ecx
movl %ecx, 0xa8(%rax)
movl 0x70(%rbp), %ecx
movl %ecx, 0xac(%rax)
movl $0x0, 0xb0(%rax)
movb -0x51(%rbp), %cl
andb $0x1, %cl
movb %cl, 0xb4(%rax)
movb -0x52(%rbp), %cl
andb $0x1, %cl
movb %cl, 0xb5(%rax)
movq 0x18(%rbp), %rcx
movq %rcx, 0xb8(%rax)
movb -0x55(%rbp), %cl
andb $0x1, %cl
movb %cl, 0xc0(%rax)
movb -0x56(%rbp), %cl
andb $0x1, %cl
movb %cl, 0xc1(%rax)
movl 0x98(%rbp), %ecx
movl %ecx, 0xc4(%rax)
movq 0xa0(%rbp), %rcx
movq %rcx, 0xc8(%rax)
movq 0xa8(%rbp), %rcx
movq %rcx, 0xd0(%rax)
movq -0x38(%rbp), %rcx
movq %rcx, 0xd8(%rax)
movq -0x40(%rbp), %rcx
movq %rcx, 0xe0(%rax)
addq $0xe8, %rax
movq %rax, -0x80(%rbp)
movq %rax, %rcx
addq $0x400, %rcx            # imm = 0x400
movq %rcx, -0x78(%rbp)
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rdi
movq %rdi, -0x90(%rbp)
callq 0x5fd90
jmp 0x571d6
movq -0x78(%rbp), %rcx
movq -0x90(%rbp), %rax
addq $0x20, %rax
cmpq %rcx, %rax
movq %rax, -0x70(%rbp)
jne 0x571c4
movq -0x88(%rbp), %rax
addq $0x4e8, %rax            # imm = 0x4E8
movq %rax, -0xa8(%rbp)
movq %rax, %rcx
addq $0x400, %rcx            # imm = 0x400
movq %rcx, -0xa0(%rbp)
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rdi
movq %rdi, -0xb0(%rbp)
callq 0x5fe00
jmp 0x5722f
movq -0xa0(%rbp), %rcx
movq -0xb0(%rbp), %rax
addq $0x20, %rax
cmpq %rcx, %rax
movq %rax, -0x98(%rbp)
jne 0x5721a
movq -0x88(%rbp), %rax
movl $0x0, 0x8e8(%rax)
addq $0x8f0, %rax            # imm = 0x8F0
movq %rax, -0xc8(%rbp)
movq %rax, %rcx
addq $0x400, %rcx            # imm = 0x400
movq %rcx, -0xc0(%rbp)
movq %rax, -0xb8(%rbp)
movq -0xb8(%rbp), %rdi
movq %rdi, -0xd0(%rbp)
callq 0x5fd90
jmp 0x57298
movq -0xc0(%rbp), %rcx
movq -0xd0(%rbp), %rax
addq $0x20, %rax
cmpq %rcx, %rax
movq %rax, -0xb8(%rbp)
jne 0x57283
movq -0x88(%rbp), %rax
addq $0xcf0, %rax            # imm = 0xCF0
movq %rax, -0xe8(%rbp)
movq %rax, %rcx
addq $0x400, %rcx            # imm = 0x400
movq %rcx, -0xe0(%rbp)
movq %rax, -0xd8(%rbp)
movq -0xd8(%rbp), %rdi
movq %rdi, -0xf0(%rbp)
callq 0x5fe00
jmp 0x572f7
movq -0xe0(%rbp), %rcx
movq -0xf0(%rbp), %rax
addq $0x20, %rax
cmpq %rcx, %rax
movq %rax, -0xd8(%rbp)
jne 0x572e2
movq -0x88(%rbp), %rax
movl $0x0, 0x10f0(%rax)
movq -0x48(%rbp), %rcx
movq %rcx, 0x10f8(%rax)
movq -0x50(%rbp), %rcx
movq %rcx, 0x1100(%rax)
addq $0x1108, %rax           # imm = 0x1108
movq %rax, -0x108(%rbp)
movq %rax, %rcx
addq $0x400, %rcx            # imm = 0x400
movq %rcx, -0x100(%rbp)
movq %rax, -0xf8(%rbp)
movq -0xf8(%rbp), %rdi
movq %rdi, -0x110(%rbp)
callq 0x5fd90
jmp 0x57376
movq -0x100(%rbp), %rcx
movq -0x110(%rbp), %rax
addq $0x20, %rax
cmpq %rcx, %rax
movq %rax, -0xf8(%rbp)
jne 0x57361
movq -0x88(%rbp), %rax
addq $0x1508, %rax           # imm = 0x1508
movq %rax, -0x128(%rbp)
movq %rax, %rcx
addq $0x400, %rcx            # imm = 0x400
movq %rcx, -0x120(%rbp)
movq %rax, -0x118(%rbp)
movq -0x118(%rbp), %rdi
movq %rdi, -0x130(%rbp)
callq 0x5fe00
jmp 0x573d5
movq -0x120(%rbp), %rcx
movq -0x130(%rbp), %rax
addq $0x20, %rax
cmpq %rcx, %rax
movq %rax, -0x118(%rbp)
jne 0x573c0
movq -0x88(%rbp), %rax
movl $0x0, 0x1908(%rax)
addq $0x1910, %rax           # imm = 0x1910
movq %rax, -0x148(%rbp)
movq %rax, %rcx
addq $0x400, %rcx            # imm = 0x400
movq %rcx, -0x140(%rbp)
movq %rax, -0x138(%rbp)
movq -0x138(%rbp), %rdi
movq %rdi, -0x150(%rbp)
callq 0x5fd90
jmp 0x5743e
movq -0x140(%rbp), %rcx
movq -0x150(%rbp), %rax
addq $0x20, %rax
cmpq %rcx, %rax
movq %rax, -0x138(%rbp)
jne 0x57429
movq -0x88(%rbp), %rax
addq $0x1d10, %rax           # imm = 0x1D10
movq %rax, -0x168(%rbp)
movq %rax, %rcx
addq $0x400, %rcx            # imm = 0x400
movq %rcx, -0x160(%rbp)
movq %rax, -0x158(%rbp)
movq -0x158(%rbp), %rdi
movq %rdi, -0x170(%rbp)
callq 0x5fe00
jmp 0x5749d
movq -0x160(%rbp), %rcx
movq -0x170(%rbp), %rax
addq $0x20, %rax
cmpq %rcx, %rax
movq %rax, -0x158(%rbp)
jne 0x57488
movq -0x88(%rbp), %rax
movl $0x0, 0x2110(%rax)
movq %rax, %rcx
addq $0x2118, %rcx           # imm = 0x2118
movq %rcx, -0x178(%rbp)
testb $0x1, 0xb4(%rax)
je 0x574fa
movq -0x88(%rbp), %rax
addq $0x6a, %rax
movq %rax, -0x180(%rbp)
jmp 0x5750c
movq -0x88(%rbp), %rax
addq $0x6b, %rax
movq %rax, -0x180(%rbp)
movq -0x88(%rbp), %rax
movq -0x178(%rbp), %rcx
movq -0x180(%rbp), %rdx
movq %rdx, (%rcx)
movq %rax, %rcx
addq $0x2120, %rcx           # imm = 0x2120
movq %rcx, -0x188(%rbp)
testb $0x1, 0xb5(%rax)
je 0x57552
movq -0x88(%rbp), %rax
addq $0x6c, %rax
movq %rax, -0x190(%rbp)
jmp 0x57564
movq -0x88(%rbp), %rax
addq $0x6d, %rax
movq %rax, -0x190(%rbp)
movq -0x88(%rbp), %rax
movq -0x188(%rbp), %rcx
movq -0x190(%rbp), %rdx
movq %rdx, (%rcx)
movq %rax, %rcx
addq $0x2128, %rcx           # imm = 0x2128
movq %rcx, -0x198(%rbp)
testb $0x1, 0xb4(%rax)
je 0x575aa
movq -0x88(%rbp), %rax
addq $0x6e, %rax
movq %rax, -0x1a0(%rbp)
jmp 0x575bc
movq -0x88(%rbp), %rax
addq $0x6f, %rax
movq %rax, -0x1a0(%rbp)
movq -0x88(%rbp), %rax
movq -0x198(%rbp), %rcx
movq -0x1a0(%rbp), %rdx
movq %rdx, (%rcx)
movq %rax, %rcx
addq $0x2130, %rcx           # imm = 0x2130
movq %rcx, -0x1a8(%rbp)
testb $0x1, 0xb5(%rax)
je 0x57602
movq -0x88(%rbp), %rax
addq $0x70, %rax
movq %rax, -0x1b0(%rbp)
jmp 0x57614
movq -0x88(%rbp), %rax
addq $0x71, %rax
movq %rax, -0x1b0(%rbp)
movq -0x88(%rbp), %rax
movq -0x1a8(%rbp), %rcx
movq -0x1b0(%rbp), %rdx
movq %rdx, (%rcx)
movq %rax, %rcx
addq $0x2138, %rcx           # imm = 0x2138
movq %rcx, -0x1b8(%rbp)
testb $0x1, 0xb4(%rax)
je 0x5765d
movq -0x88(%rbp), %rax
movq 0xd8(%rax), %rax
movq %rax, -0x1c0(%rbp)
jmp 0x57672
movq -0x88(%rbp), %rax
movq 0xe0(%rax), %rax
movq %rax, -0x1c0(%rbp)
movq -0x88(%rbp), %rax
movq -0x1b8(%rbp), %rcx
movq -0x1c0(%rbp), %rdx
movq %rdx, (%rcx)
movq %rax, %rcx
addq $0x2140, %rcx           # imm = 0x2140
movq %rcx, -0x1c8(%rbp)
testb $0x1, 0xb5(%rax)
je 0x576bb
movq -0x88(%rbp), %rax
movq 0x10f8(%rax), %rax
movq %rax, -0x1d0(%rbp)
jmp 0x576d0
movq -0x88(%rbp), %rax
movq 0x1100(%rax), %rax
movq %rax, -0x1d0(%rbp)
movq -0x88(%rbp), %rax
movq -0x1c8(%rbp), %rcx
movq -0x1d0(%rbp), %rdx
movq %rdx, (%rcx)
movq %rax, %rcx
addq $0x2148, %rcx           # imm = 0x2148
movq %rcx, -0x1d8(%rbp)
testb $0x1, 0xb4(%rax)
je 0x57718
movq -0x88(%rbp), %rax
addq $0xe8, %rax
movq %rax, -0x1e0(%rbp)
jmp 0x5772c
movq -0x88(%rbp), %rax
addq $0x8f0, %rax            # imm = 0x8F0
movq %rax, -0x1e0(%rbp)
movq -0x88(%rbp), %rax
movq -0x1d8(%rbp), %rcx
movq -0x1e0(%rbp), %rdx
movq %rdx, (%rcx)
movq %rax, %rcx
addq $0x2150, %rcx           # imm = 0x2150
movq %rcx, -0x1e8(%rbp)
testb $0x1, 0xb5(%rax)
je 0x57774
movq -0x88(%rbp), %rax
addq $0x1108, %rax           # imm = 0x1108
movq %rax, -0x1f0(%rbp)
jmp 0x57788
movq -0x88(%rbp), %rax
addq $0x1910, %rax           # imm = 0x1910
movq %rax, -0x1f0(%rbp)
movq -0x88(%rbp), %rax
movq -0x1e8(%rbp), %rcx
movq -0x1f0(%rbp), %rdx
movq %rdx, (%rcx)
movq %rax, %rcx
addq $0x2158, %rcx           # imm = 0x2158
movq %rcx, -0x1f8(%rbp)
testb $0x1, 0xb4(%rax)
je 0x577d0
movq -0x88(%rbp), %rax
addq $0x4e8, %rax            # imm = 0x4E8
movq %rax, -0x200(%rbp)
jmp 0x577e4
movq -0x88(%rbp), %rax
addq $0xcf0, %rax            # imm = 0xCF0
movq %rax, -0x200(%rbp)
movq -0x88(%rbp), %rax
movq -0x1f8(%rbp), %rcx
movq -0x200(%rbp), %rdx
movq %rdx, (%rcx)
movq %rax, %rcx
addq $0x2160, %rcx           # imm = 0x2160
movq %rcx, -0x208(%rbp)
testb $0x1, 0xb5(%rax)
je 0x5782c
movq -0x88(%rbp), %rax
addq $0x1508, %rax           # imm = 0x1508
movq %rax, -0x210(%rbp)
jmp 0x57840
movq -0x88(%rbp), %rax
addq $0x1d10, %rax           # imm = 0x1D10
movq %rax, -0x210(%rbp)
movq -0x88(%rbp), %rax
movq -0x208(%rbp), %rcx
movq -0x210(%rbp), %rdx
movq %rdx, (%rcx)
movq %rax, %rcx
addq $0x2168, %rcx           # imm = 0x2168
movq %rcx, -0x218(%rbp)
testb $0x1, 0xb4(%rax)
je 0x57888
movq -0x88(%rbp), %rax
addq $0x8e8, %rax            # imm = 0x8E8
movq %rax, -0x220(%rbp)
jmp 0x5789c
movq -0x88(%rbp), %rax
addq $0x10f0, %rax           # imm = 0x10F0
movq %rax, -0x220(%rbp)
movq -0x88(%rbp), %rax
movq -0x218(%rbp), %rcx
movq -0x220(%rbp), %rdx
movq %rdx, (%rcx)
movq %rax, %rcx
addq $0x2170, %rcx           # imm = 0x2170
movq %rcx, -0x228(%rbp)
testb $0x1, 0xb5(%rax)
je 0x578e4
movq -0x88(%rbp), %rax
addq $0x1908, %rax           # imm = 0x1908
movq %rax, -0x230(%rbp)
jmp 0x578f8
movq -0x88(%rbp), %rax
addq $0x2110, %rax           # imm = 0x2110
movq %rax, -0x230(%rbp)
movq -0x88(%rbp), %rax
movq -0x228(%rbp), %rcx
movq -0x230(%rbp), %rdx
movq %rdx, (%rcx)
movq %rax, %rcx
addq $0x2178, %rcx           # imm = 0x2178
movq %rcx, -0x238(%rbp)
testb $0x1, 0xb5(%rax)
je 0x5793e
movq -0x88(%rbp), %rax
addq $0x6d, %rax
movq %rax, -0x240(%rbp)
jmp 0x57950
movq -0x88(%rbp), %rax
addq $0x6c, %rax
movq %rax, -0x240(%rbp)
movq -0x88(%rbp), %rax
movq -0x238(%rbp), %rcx
movq -0x240(%rbp), %rdx
movq %rdx, (%rcx)
movq %rax, %rcx
addq $0x2180, %rcx           # imm = 0x2180
movq %rcx, -0x248(%rbp)
testb $0x1, 0xb4(%rax)
je 0x57996
movq -0x88(%rbp), %rax
addq $0x6b, %rax
movq %rax, -0x250(%rbp)
jmp 0x579a8
movq -0x88(%rbp), %rax
addq $0x6a, %rax
movq %rax, -0x250(%rbp)
movq -0x88(%rbp), %rax
movq -0x248(%rbp), %rcx
movq -0x250(%rbp), %rdx
movq %rdx, (%rcx)
movq %rax, %rcx
addq $0x2188, %rcx           # imm = 0x2188
movq %rcx, -0x258(%rbp)
testb $0x1, 0xb5(%rax)
je 0x579ee
movq -0x88(%rbp), %rax
addq $0x71, %rax
movq %rax, -0x260(%rbp)
jmp 0x57a00
movq -0x88(%rbp), %rax
addq $0x70, %rax
movq %rax, -0x260(%rbp)
movq -0x88(%rbp), %rax
movq -0x258(%rbp), %rcx
movq -0x260(%rbp), %rdx
movq %rdx, (%rcx)
movq %rax, %rcx
addq $0x2190, %rcx           # imm = 0x2190
movq %rcx, -0x268(%rbp)
testb $0x1, 0xb4(%rax)
je 0x57a46
movq -0x88(%rbp), %rax
addq $0x6f, %rax
movq %rax, -0x270(%rbp)
jmp 0x57a58
movq -0x88(%rbp), %rax
addq $0x6e, %rax
movq %rax, -0x270(%rbp)
movq -0x88(%rbp), %rax
movq -0x268(%rbp), %rcx
movq -0x270(%rbp), %rdx
movq %rdx, (%rcx)
movq %rax, %rcx
addq $0x2198, %rcx           # imm = 0x2198
movq %rcx, -0x278(%rbp)
testb $0x1, 0xb5(%rax)
je 0x57aa1
movq -0x88(%rbp), %rax
movq 0x1100(%rax), %rax
movq %rax, -0x280(%rbp)
jmp 0x57ab6
movq -0x88(%rbp), %rax
movq 0x10f8(%rax), %rax
movq %rax, -0x280(%rbp)
movq -0x88(%rbp), %rax
movq -0x278(%rbp), %rcx
movq -0x280(%rbp), %rdx
movq %rdx, (%rcx)
movq %rax, %rcx
addq $0x21a0, %rcx           # imm = 0x21A0
movq %rcx, -0x288(%rbp)
testb $0x1, 0xb4(%rax)
je 0x57aff
movq -0x88(%rbp), %rax
movq 0xe0(%rax), %rax
movq %rax, -0x290(%rbp)
jmp 0x57b14
movq -0x88(%rbp), %rax
movq 0xd8(%rax), %rax
movq %rax, -0x290(%rbp)
movq -0x88(%rbp), %rax
movq -0x288(%rbp), %rcx
movq -0x290(%rbp), %rdx
movq %rdx, (%rcx)
movq %rax, %rcx
addq $0x21a8, %rcx           # imm = 0x21A8
movq %rcx, -0x298(%rbp)
testb $0x1, 0xb5(%rax)
je 0x57b5c
movq -0x88(%rbp), %rax
addq $0x1910, %rax           # imm = 0x1910
movq %rax, -0x2a0(%rbp)
jmp 0x57b70
movq -0x88(%rbp), %rax
addq $0x1108, %rax           # imm = 0x1108
movq %rax, -0x2a0(%rbp)
movq -0x88(%rbp), %rax
movq -0x298(%rbp), %rcx
movq -0x2a0(%rbp), %rdx
movq %rdx, (%rcx)
movq %rax, %rcx
addq $0x21b0, %rcx           # imm = 0x21B0
movq %rcx, -0x2a8(%rbp)
testb $0x1, 0xb4(%rax)
je 0x57bb8
movq -0x88(%rbp), %rax
addq $0x8f0, %rax            # imm = 0x8F0
movq %rax, -0x2b0(%rbp)
jmp 0x57bcc
movq -0x88(%rbp), %rax
addq $0xe8, %rax
movq %rax, -0x2b0(%rbp)
movq -0x88(%rbp), %rax
movq -0x2a8(%rbp), %rcx
movq -0x2b0(%rbp), %rdx
movq %rdx, (%rcx)
movq %rax, %rcx
addq $0x21b8, %rcx           # imm = 0x21B8
movq %rcx, -0x2b8(%rbp)
testb $0x1, 0xb5(%rax)
je 0x57c14
movq -0x88(%rbp), %rax
addq $0x1d10, %rax           # imm = 0x1D10
movq %rax, -0x2c0(%rbp)
jmp 0x57c28
movq -0x88(%rbp), %rax
addq $0x1508, %rax           # imm = 0x1508
movq %rax, -0x2c0(%rbp)
movq -0x88(%rbp), %rax
movq -0x2b8(%rbp), %rcx
movq -0x2c0(%rbp), %rdx
movq %rdx, (%rcx)
movq %rax, %rcx
addq $0x21c0, %rcx           # imm = 0x21C0
movq %rcx, -0x2c8(%rbp)
testb $0x1, 0xb4(%rax)
je 0x57c70
movq -0x88(%rbp), %rax
addq $0xcf0, %rax            # imm = 0xCF0
movq %rax, -0x2d0(%rbp)
jmp 0x57c84
movq -0x88(%rbp), %rax
addq $0x4e8, %rax            # imm = 0x4E8
movq %rax, -0x2d0(%rbp)
movq -0x88(%rbp), %rax
movq -0x2c8(%rbp), %rcx
movq -0x2d0(%rbp), %rdx
movq %rdx, (%rcx)
movq %rax, %rcx
addq $0x21c8, %rcx           # imm = 0x21C8
movq %rcx, -0x2d8(%rbp)
testb $0x1, 0xb5(%rax)
je 0x57ccc
movq -0x88(%rbp), %rax
addq $0x2110, %rax           # imm = 0x2110
movq %rax, -0x2e0(%rbp)
jmp 0x57ce0
movq -0x88(%rbp), %rax
addq $0x1908, %rax           # imm = 0x1908
movq %rax, -0x2e0(%rbp)
movq -0x88(%rbp), %rax
movq -0x2d8(%rbp), %rcx
movq -0x2e0(%rbp), %rdx
movq %rdx, (%rcx)
movq %rax, %rcx
addq $0x21d0, %rcx           # imm = 0x21D0
movq %rcx, -0x2e8(%rbp)
testb $0x1, 0xb4(%rax)
je 0x57d28
movq -0x88(%rbp), %rax
addq $0x10f0, %rax           # imm = 0x10F0
movq %rax, -0x2f0(%rbp)
jmp 0x57d3c
movq -0x88(%rbp), %rax
addq $0x8e8, %rax            # imm = 0x8E8
movq %rax, -0x2f0(%rbp)
movq -0x88(%rbp), %rdi
movq -0x2e8(%rbp), %rax
movq -0x2f0(%rbp), %rcx
movq %rcx, (%rax)
movq 0x2118(%rdi), %rax
movq %rax, 0x21d8(%rdi)
movq 0x2120(%rdi), %rax
movq %rax, 0x21e0(%rdi)
movq 0x2128(%rdi), %rax
movq %rax, 0x21e8(%rdi)
movq 0x2130(%rdi), %rax
movq %rax, 0x21f0(%rdi)
movq 0x2138(%rdi), %rax
movq %rax, 0x21f8(%rdi)
movq 0x2140(%rdi), %rax
movq %rax, 0x2200(%rdi)
movq 0x2148(%rdi), %rax
movq %rax, 0x2208(%rdi)
movq 0x2150(%rdi), %rax
movq %rax, 0x2210(%rdi)
movq 0x2158(%rdi), %rax
movq %rax, 0x2218(%rdi)
movq 0x2160(%rdi), %rax
movq %rax, 0x2220(%rdi)
movq 0x2168(%rdi), %rax
movq %rax, 0x2228(%rdi)
movq 0x2170(%rdi), %rax
movq %rax, 0x2230(%rdi)
movq %rdi, %rax
addq $0x68, %rax
movq %rax, 0x2238(%rdi)
movb -0x51(%rbp), %al
andb $0x1, %al
movb %al, 0x2240(%rdi)
movb -0x52(%rbp), %al
andb $0x1, %al
movb %al, 0x2241(%rdi)
addq $0x2248, %rdi           # imm = 0x2248
callq 0x5fe60
movq -0x88(%rbp), %rdi
addq $0x2278, %rdi           # imm = 0x2278
callq 0x5fe60
movq -0x88(%rbp), %rax
movb $0x0, 0x22a8(%rax)
addq $0x3c0, %rsp            # imm = 0x3C0
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq -0x80(%rbp), %rcx
movq %rax, %rsi
movq -0x90(%rbp), %rax
movq %rsi, -0x60(%rbp)
movl %edx, -0x64(%rbp)
cmpq %rax, %rcx
movq %rax, -0x2f8(%rbp)
je 0x57eac
movq -0x2f8(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x300(%rbp)
callq 0x5fdd0
movq -0x80(%rbp), %rcx
movq -0x300(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x2f8(%rbp)
jne 0x57e7e
jmp 0x5830d
movq -0xa8(%rbp), %rcx
movq %rax, %rsi
movq -0xb0(%rbp), %rax
movq %rsi, -0x60(%rbp)
movl %edx, -0x64(%rbp)
cmpq %rax, %rcx
movq %rax, -0x308(%rbp)
je 0x57f06
movq -0x308(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x310(%rbp)
callq 0x5fe40
movq -0xa8(%rbp), %rcx
movq -0x310(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x308(%rbp)
jne 0x57ed5
jmp 0x582cc
movq -0xc8(%rbp), %rcx
movq %rax, %rsi
movq -0xd0(%rbp), %rax
movq %rsi, -0x60(%rbp)
movl %edx, -0x64(%rbp)
cmpq %rax, %rcx
movq %rax, -0x318(%rbp)
je 0x57f60
movq -0x318(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x320(%rbp)
callq 0x5fdd0
movq -0xc8(%rbp), %rcx
movq -0x320(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x318(%rbp)
jne 0x57f2f
jmp 0x58285
movq -0xe8(%rbp), %rcx
movq %rax, %rsi
movq -0xf0(%rbp), %rax
movq %rsi, -0x60(%rbp)
movl %edx, -0x64(%rbp)
cmpq %rax, %rcx
movq %rax, -0x328(%rbp)
je 0x57fba
movq -0x328(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x330(%rbp)
callq 0x5fe40
movq -0xe8(%rbp), %rcx
movq -0x330(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x328(%rbp)
jne 0x57f89
jmp 0x5823e
movq -0x108(%rbp), %rcx
movq %rax, %rsi
movq -0x110(%rbp), %rax
movq %rsi, -0x60(%rbp)
movl %edx, -0x64(%rbp)
cmpq %rax, %rcx
movq %rax, -0x338(%rbp)
je 0x58014
movq -0x338(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x340(%rbp)
callq 0x5fdd0
movq -0x108(%rbp), %rcx
movq -0x340(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x338(%rbp)
jne 0x57fe3
jmp 0x581f7
movq -0x128(%rbp), %rcx
movq %rax, %rsi
movq -0x130(%rbp), %rax
movq %rsi, -0x60(%rbp)
movl %edx, -0x64(%rbp)
cmpq %rax, %rcx
movq %rax, -0x348(%rbp)
je 0x5806e
movq -0x348(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x350(%rbp)
callq 0x5fe40
movq -0x128(%rbp), %rcx
movq -0x350(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x348(%rbp)
jne 0x5803d
jmp 0x581b0
movq -0x148(%rbp), %rcx
movq %rax, %rsi
movq -0x150(%rbp), %rax
movq %rsi, -0x60(%rbp)
movl %edx, -0x64(%rbp)
cmpq %rax, %rcx
movq %rax, -0x358(%rbp)
je 0x580c8
movq -0x358(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x360(%rbp)
callq 0x5fdd0
movq -0x148(%rbp), %rcx
movq -0x360(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x358(%rbp)
jne 0x58097
jmp 0x58169
movq -0x168(%rbp), %rcx
movq %rax, %rsi
movq -0x170(%rbp), %rax
movq %rsi, -0x60(%rbp)
movl %edx, -0x64(%rbp)
cmpq %rax, %rcx
movq %rax, -0x368(%rbp)
je 0x58122
movq -0x368(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x370(%rbp)
callq 0x5fe40
movq -0x168(%rbp), %rcx
movq -0x370(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x368(%rbp)
jne 0x580f1
movq -0x148(%rbp), %rax
addq $0x400, %rax            # imm = 0x400
movq %rax, -0x378(%rbp)
movq -0x378(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x380(%rbp)
callq 0x5fdd0
movq -0x148(%rbp), %rcx
movq -0x380(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x378(%rbp)
jne 0x58136
jmp 0x58169
movq -0x128(%rbp), %rax
addq $0x400, %rax            # imm = 0x400
movq %rax, -0x388(%rbp)
movq -0x388(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x390(%rbp)
callq 0x5fe40
movq -0x128(%rbp), %rcx
movq -0x390(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x388(%rbp)
jne 0x5817d
jmp 0x581b0
movq -0x108(%rbp), %rax
addq $0x400, %rax            # imm = 0x400
movq %rax, -0x398(%rbp)
movq -0x398(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x3a0(%rbp)
callq 0x5fdd0
movq -0x108(%rbp), %rcx
movq -0x3a0(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x398(%rbp)
jne 0x581c4
jmp 0x581f7
movq -0xe8(%rbp), %rax
addq $0x400, %rax            # imm = 0x400
movq %rax, -0x3a8(%rbp)
movq -0x3a8(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x3b0(%rbp)
callq 0x5fe40
movq -0xe8(%rbp), %rcx
movq -0x3b0(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x3a8(%rbp)
jne 0x5820b
jmp 0x5823e
movq -0xc8(%rbp), %rax
addq $0x400, %rax            # imm = 0x400
movq %rax, -0x3b8(%rbp)
movq -0x3b8(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x3c0(%rbp)
callq 0x5fdd0
movq -0xc8(%rbp), %rcx
movq -0x3c0(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x3b8(%rbp)
jne 0x58252
jmp 0x58285
movq -0xa8(%rbp), %rax
addq $0x400, %rax            # imm = 0x400
movq %rax, -0x3c8(%rbp)
movq -0x3c8(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x3d0(%rbp)
callq 0x5fe40
movq -0xa8(%rbp), %rcx
movq -0x3d0(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x3c8(%rbp)
jne 0x58299
jmp 0x582cc
movq -0x80(%rbp), %rax
addq $0x400, %rax            # imm = 0x400
movq %rax, -0x3d8(%rbp)
movq -0x3d8(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x3e0(%rbp)
callq 0x5fdd0
movq -0x80(%rbp), %rcx
movq -0x3e0(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x3d8(%rbp)
jne 0x582dd
jmp 0x5830d
movq -0x88(%rbp), %rdi
callq 0x4be00
movq -0x60(%rbp), %rdi
callq 0xab60
nopw %cs:(%rax,%rax)
nopl (%rax)