// File: BenLangmead[P]bowtie/./diff_sample.h
// Function: DifferenceCoverSample<S2bDnaString>::tieBreakOff(unsigned long, unsigned long) const
uint32_t DifferenceCoverSample<TStr>::tieBreakOff(TIndexOffU i, TIndexOffU j) const {
	const TStr& t = this->text();
	const EList<uint32_t>& dmap = this->dmap();
	assert(built());
	// It's actually convenient to allow this, but we're permitted to
	// return nonsense in that case
	if(t[i] != t[j]) return 0xffffffff;
	//assert_eq(t[i], t[j]); // if they're unequal, there's no tie to break
	uint32_t v = this->v();
	assert_neq(i, j);
	assert_lt(i, t.length());
	assert_lt(j, t.length());
	uint32_t imod = this->modv(i);
	uint32_t jmod = this->modv(j);
	uint32_t diffLeft = (jmod >= imod)? (jmod - imod) : (jmod + v - imod);
	uint32_t diffRight = (imod >= jmod)? (imod - jmod) : (imod + v - jmod);
	assert_lt(diffLeft, dmap.size());
	assert_lt(diffRight, dmap.size());
	uint32_t destLeft = dmap[diffLeft];   // offset where i needs to be
	uint32_t destRight = dmap[diffRight]; // offset where i needs to be
	assert(isCovered(destLeft));
	assert(isCovered(destLeft+diffLeft));
	assert(isCovered(destRight));
	assert(isCovered(destRight+diffRight));
	assert_lt(destLeft, v);
	assert_lt(destRight, v);
	uint32_t deltaLeft = (destLeft >= imod)? (destLeft - imod) : (destLeft + v - imod);
	if(deltaLeft == v) deltaLeft = 0;
	uint32_t deltaRight = (destRight >= jmod)? (destRight - jmod) : (destRight + v - jmod);
	if(deltaRight == v) deltaRight = 0;
	assert_lt(deltaLeft, v);
	assert_lt(deltaRight, v);
	assert(isCovered(i+deltaLeft));
	assert(isCovered(j+deltaLeft));
	assert(isCovered(i+deltaRight));
	assert(isCovered(j+deltaRight));
	return min(deltaLeft, deltaRight);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x60(%rbp)
callq 0x36a00
movq -0x60(%rbp), %rdi
movq %rax, -0x28(%rbp)
callq 0x36a20
movq -0x60(%rbp), %rdi
movq %rax, -0x30(%rbp)
callq 0x36a40
testb $0x1, %al
jne 0x34b64
jmp 0x34b66
jmp 0x34b85
leaq 0xd72f(%rip), %rdi      # 0x4229c
leaq 0xd730(%rip), %rsi      # 0x422a4
movl $0x431, %edx            # imm = 0x431
leaq 0xd734(%rip), %rcx      # 0x422b4
callq 0x51e0
movq -0x28(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x356a0
movsbl %al, %eax
movl %eax, -0x64(%rbp)
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x356a0
movb %al, %cl
movl -0x64(%rbp), %eax
movsbl %cl, %ecx
cmpl %ecx, %eax
je 0x34bbd
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x35694
movq -0x60(%rbp), %rdi
callq 0x33470
movl %eax, -0x34(%rbp)
movq -0x18(%rbp), %rax
cmpq -0x20(%rbp), %rax
jne 0x34cfe
movq 0x153e2(%rip), %rdi     # 0x49fc0
leaq 0xa705(%rip), %rsi      # 0x3f2ea
callq 0x5360
movq %rax, %rdi
movq -0x18(%rbp), %rsi
callq 0x50c0
movq %rax, %rdi
leaq 0xa52f(%rip), %rsi      # 0x3f12f
callq 0x5360
movq %rax, %rdi
leaq -0x1c42f(%rip), %rsi    # 0x187e0
callq 0x5120
movq %rax, %rdi
movq -0x18(%rbp), %rsi
callq 0x50c0
movq %rax, %rdi
leaq -0x1c41a(%rip), %rsi    # 0x18810
callq 0x5120
movq %rax, %rdi
leaq 0xa4fb(%rip), %rsi      # 0x3f134
callq 0x5360
movq %rax, %rdi
movq -0x20(%rbp), %rsi
callq 0x50c0
movq %rax, %rdi
leaq 0xa4db(%rip), %rsi      # 0x3f12f
callq 0x5360
movq %rax, %rdi
leaq -0x1c483(%rip), %rsi    # 0x187e0
callq 0x5120
movq %rax, %rdi
movq -0x20(%rbp), %rsi
callq 0x50c0
movq %rax, %rdi
leaq -0x1c46e(%rip), %rsi    # 0x18810
callq 0x5120
movq %rax, %rdi
leaq 0xc92b(%rip), %rsi      # 0x415b8
callq 0x5360
movq %rax, %rdi
movq 0x152e4(%rip), %rsi     # 0x49f80
callq 0x53c0
movq 0x15318(%rip), %rdi     # 0x49fc0
leaq 0xd5f5(%rip), %rsi      # 0x422a4
callq 0x5360
movq %rax, %rdi
leaq 0xbacc(%rip), %rsi      # 0x4078a
callq 0x5360
movq %rax, %rdi
movl $0x437, %esi            # imm = 0x437
callq 0x5750
movq %rax, %rdi
movq 0x152a6(%rip), %rsi     # 0x49f80
callq 0x53c0
leaq 0xb984(%rip), %rdi      # 0x4066a
leaq 0xd5b7(%rip), %rsi      # 0x422a4
movl $0x437, %edx            # imm = 0x437
leaq 0xd5bb(%rip), %rcx      # 0x422b4
callq 0x51e0
movq -0x18(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x28(%rbp), %rdi
callq 0x17c60
movq %rax, %rcx
movq -0x70(%rbp), %rax
cmpq %rcx, %rax
jb 0x34de1
movq 0x1529a(%rip), %rdi     # 0x49fc0
leaq 0xa51a(%rip), %rsi      # 0x3f247
callq 0x5360
movq %rax, %rdi
movq -0x18(%rbp), %rsi
callq 0x50c0
movq %rax, %rdi
leaq 0xa515(%rip), %rsi      # 0x3f25d
callq 0x5360
movq %rax, -0x78(%rbp)
movq -0x28(%rbp), %rdi
callq 0x17c60
movq -0x78(%rbp), %rdi
movq %rax, %rsi
callq 0x50c0
movq %rax, %rdi
leaq 0xc848(%rip), %rsi      # 0x415b8
callq 0x5360
movq %rax, %rdi
movq 0x15201(%rip), %rsi     # 0x49f80
callq 0x53c0
movq 0x15235(%rip), %rdi     # 0x49fc0
leaq 0xd512(%rip), %rsi      # 0x422a4
callq 0x5360
movq %rax, %rdi
leaq 0xb9e9(%rip), %rsi      # 0x4078a
callq 0x5360
movq %rax, %rdi
movl $0x438, %esi            # imm = 0x438
callq 0x5750
movq %rax, %rdi
movq 0x151c3(%rip), %rsi     # 0x49f80
callq 0x53c0
leaq 0xb8a1(%rip), %rdi      # 0x4066a
leaq 0xd4d4(%rip), %rsi      # 0x422a4
movl $0x438, %edx            # imm = 0x438
leaq 0xd4d8(%rip), %rcx      # 0x422b4
callq 0x51e0
movq -0x20(%rbp), %rax
movq %rax, -0x80(%rbp)
movq -0x28(%rbp), %rdi
callq 0x17c60
movq %rax, %rcx
movq -0x80(%rbp), %rax
cmpq %rcx, %rax
jb 0x34eca
movq 0x151b7(%rip), %rdi     # 0x49fc0
leaq 0xa437(%rip), %rsi      # 0x3f247
callq 0x5360
movq %rax, %rdi
movq -0x20(%rbp), %rsi
callq 0x50c0
movq %rax, %rdi
leaq 0xa432(%rip), %rsi      # 0x3f25d
callq 0x5360
movq %rax, -0x88(%rbp)
movq -0x28(%rbp), %rdi
callq 0x17c60
movq -0x88(%rbp), %rdi
movq %rax, %rsi
callq 0x50c0
movq %rax, %rdi
leaq 0xc75f(%rip), %rsi      # 0x415b8
callq 0x5360
movq %rax, %rdi
movq 0x15118(%rip), %rsi     # 0x49f80
callq 0x53c0
movq 0x1514c(%rip), %rdi     # 0x49fc0
leaq 0xd429(%rip), %rsi      # 0x422a4
callq 0x5360
movq %rax, %rdi
leaq 0xb900(%rip), %rsi      # 0x4078a
callq 0x5360
movq %rax, %rdi
movl $0x439, %esi            # imm = 0x439
callq 0x5750
movq %rax, %rdi
movq 0x150da(%rip), %rsi     # 0x49f80
callq 0x53c0
leaq 0xb7b8(%rip), %rdi      # 0x4066a
leaq 0xd3eb(%rip), %rsi      # 0x422a4
movl $0x439, %edx            # imm = 0x439
leaq 0xd3ef(%rip), %rcx      # 0x422b4
callq 0x51e0
movq -0x60(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x36a70
movq -0x60(%rbp), %rdi
movl %eax, -0x38(%rbp)
movq -0x20(%rbp), %rsi
callq 0x36a70
movl %eax, -0x3c(%rbp)
movl -0x3c(%rbp), %eax
cmpl -0x38(%rbp), %eax
jb 0x34f00
movl -0x3c(%rbp), %eax
subl -0x38(%rbp), %eax
movl %eax, -0x8c(%rbp)
jmp 0x34f0f
movl -0x3c(%rbp), %eax
addl -0x34(%rbp), %eax
subl -0x38(%rbp), %eax
movl %eax, -0x8c(%rbp)
movl -0x8c(%rbp), %eax
movl %eax, -0x40(%rbp)
movl -0x38(%rbp), %eax
cmpl -0x3c(%rbp), %eax
jb 0x34f2e
movl -0x38(%rbp), %eax
subl -0x3c(%rbp), %eax
movl %eax, -0x90(%rbp)
jmp 0x34f3d
movl -0x38(%rbp), %eax
addl -0x34(%rbp), %eax
subl -0x3c(%rbp), %eax
movl %eax, -0x90(%rbp)
movl -0x90(%rbp), %eax
movl %eax, -0x44(%rbp)
movl -0x40(%rbp), %eax
movq %rax, -0x98(%rbp)
movq -0x30(%rbp), %rdi
callq 0x2c260
movq %rax, %rcx
movq -0x98(%rbp), %rax
cmpq %rcx, %rax
jb 0x35033
movq 0x1504d(%rip), %rdi     # 0x49fc0
leaq 0xa2cd(%rip), %rsi      # 0x3f247
callq 0x5360
movq %rax, %rdi
movl -0x40(%rbp), %esi
callq 0x5530
movq %rax, %rdi
leaq 0xa2c9(%rip), %rsi      # 0x3f25d
callq 0x5360
movq %rax, -0xa0(%rbp)
movq -0x30(%rbp), %rdi
callq 0x2c260
movq -0xa0(%rbp), %rdi
movq %rax, %rsi
callq 0x50c0
movq %rax, %rdi
leaq 0xc5f6(%rip), %rsi      # 0x415b8
callq 0x5360
movq %rax, %rdi
movq 0x14faf(%rip), %rsi     # 0x49f80
callq 0x53c0
movq 0x14fe3(%rip), %rdi     # 0x49fc0
leaq 0xd2c0(%rip), %rsi      # 0x422a4
callq 0x5360
movq %rax, %rdi
leaq 0xb797(%rip), %rsi      # 0x4078a
callq 0x5360
movq %rax, %rdi
movl $0x43e, %esi            # imm = 0x43E
callq 0x5750
movq %rax, %rdi
movq 0x14f71(%rip), %rsi     # 0x49f80
callq 0x53c0
leaq 0xb64f(%rip), %rdi      # 0x4066a
leaq 0xd282(%rip), %rsi      # 0x422a4
movl $0x43e, %edx            # imm = 0x43E
leaq 0xd286(%rip), %rcx      # 0x422b4
callq 0x51e0
movl -0x44(%rbp), %eax
movq %rax, -0xa8(%rbp)
movq -0x30(%rbp), %rdi
callq 0x2c260
movq %rax, %rcx
movq -0xa8(%rbp), %rax
cmpq %rcx, %rax
jb 0x35120
movq 0x14f60(%rip), %rdi     # 0x49fc0
leaq 0xa1e0(%rip), %rsi      # 0x3f247
callq 0x5360
movq %rax, %rdi
movl -0x44(%rbp), %esi
callq 0x5530
movq %rax, %rdi
leaq 0xa1dc(%rip), %rsi      # 0x3f25d
callq 0x5360
movq %rax, -0xb0(%rbp)
movq -0x30(%rbp), %rdi
callq 0x2c260
movq -0xb0(%rbp), %rdi
movq %rax, %rsi
callq 0x50c0
movq %rax, %rdi
leaq 0xc509(%rip), %rsi      # 0x415b8
callq 0x5360
movq %rax, %rdi
movq 0x14ec2(%rip), %rsi     # 0x49f80
callq 0x53c0
movq 0x14ef6(%rip), %rdi     # 0x49fc0
leaq 0xd1d3(%rip), %rsi      # 0x422a4
callq 0x5360
movq %rax, %rdi
leaq 0xb6aa(%rip), %rsi      # 0x4078a
callq 0x5360
movq %rax, %rdi
movl $0x43f, %esi            # imm = 0x43F
callq 0x5750
movq %rax, %rdi
movq 0x14e84(%rip), %rsi     # 0x49f80
callq 0x53c0
leaq 0xb562(%rip), %rdi      # 0x4066a
leaq 0xd195(%rip), %rsi      # 0x422a4
movl $0x43f, %edx            # imm = 0x43F
leaq 0xd199(%rip), %rcx      # 0x422b4
callq 0x51e0
movq -0x30(%rbp), %rdi
movl -0x40(%rbp), %eax
movl %eax, %esi
callq 0x2fa20
movl (%rax), %eax
movl %eax, -0x48(%rbp)
movq -0x30(%rbp), %rdi
movl -0x44(%rbp), %eax
movl %eax, %esi
callq 0x2fa20
movq -0x60(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x4c(%rbp)
movl -0x48(%rbp), %eax
movl %eax, %esi
callq 0x36aa0
testb $0x1, %al
jne 0x3515a
jmp 0x3515c
jmp 0x3517b
leaq 0xd1bf(%rip), %rdi      # 0x42322
leaq 0xd13a(%rip), %rsi      # 0x422a4
movl $0x442, %edx            # imm = 0x442
leaq 0xd13e(%rip), %rcx      # 0x422b4
callq 0x51e0
movq -0x60(%rbp), %rdi
movl -0x48(%rbp), %eax
addl -0x40(%rbp), %eax
movl %eax, %eax
movl %eax, %esi
callq 0x36aa0
testb $0x1, %al
jne 0x35194
jmp 0x35196
jmp 0x351b5
leaq 0xd199(%rip), %rdi      # 0x42336
leaq 0xd100(%rip), %rsi      # 0x422a4
movl $0x443, %edx            # imm = 0x443
leaq 0xd104(%rip), %rcx      # 0x422b4
callq 0x51e0
movq -0x60(%rbp), %rdi
movl -0x4c(%rbp), %eax
movl %eax, %esi
callq 0x36aa0
testb $0x1, %al
jne 0x351c9
jmp 0x351cb
jmp 0x351ea
leaq 0xd181(%rip), %rdi      # 0x42353
leaq 0xd0cb(%rip), %rsi      # 0x422a4
movl $0x444, %edx            # imm = 0x444
leaq 0xd0cf(%rip), %rcx      # 0x422b4
callq 0x51e0
movq -0x60(%rbp), %rdi
movl -0x4c(%rbp), %eax
addl -0x44(%rbp), %eax
movl %eax, %eax
movl %eax, %esi
callq 0x36aa0
testb $0x1, %al
jne 0x35203
jmp 0x35205
jmp 0x35224
leaq 0xd15c(%rip), %rdi      # 0x42368
leaq 0xd091(%rip), %rsi      # 0x422a4
movl $0x445, %edx            # imm = 0x445
leaq 0xd095(%rip), %rcx      # 0x422b4
callq 0x51e0
movl -0x48(%rbp), %eax
cmpl -0x34(%rbp), %eax
jb 0x352e3
movq 0x14d89(%rip), %rdi     # 0x49fc0
leaq 0xa009(%rip), %rsi      # 0x3f247
callq 0x5360
movq %rax, %rdi
movl -0x48(%rbp), %esi
callq 0x5530
movq %rax, %rdi
leaq 0xa005(%rip), %rsi      # 0x3f25d
callq 0x5360
movq %rax, %rdi
movl -0x34(%rbp), %esi
callq 0x5530
movq %rax, %rdi
leaq 0xc346(%rip), %rsi      # 0x415b8
callq 0x5360
movq %rax, %rdi
movq 0x14cff(%rip), %rsi     # 0x49f80
callq 0x53c0
movq 0x14d33(%rip), %rdi     # 0x49fc0
leaq 0xd010(%rip), %rsi      # 0x422a4
callq 0x5360
movq %rax, %rdi
leaq 0xb4e7(%rip), %rsi      # 0x4078a
callq 0x5360
movq %rax, %rdi
movl $0x446, %esi            # imm = 0x446
callq 0x5750
movq %rax, %rdi
movq 0x14cc1(%rip), %rsi     # 0x49f80
callq 0x53c0
leaq 0xb39f(%rip), %rdi      # 0x4066a
leaq 0xcfd2(%rip), %rsi      # 0x422a4
movl $0x446, %edx            # imm = 0x446
leaq 0xcfd6(%rip), %rcx      # 0x422b4
callq 0x51e0
movl -0x4c(%rbp), %eax
cmpl -0x34(%rbp), %eax
jb 0x353a2
movq 0x14cca(%rip), %rdi     # 0x49fc0
leaq 0x9f4a(%rip), %rsi      # 0x3f247
callq 0x5360
movq %rax, %rdi
movl -0x4c(%rbp), %esi
callq 0x5530
movq %rax, %rdi
leaq 0x9f46(%rip), %rsi      # 0x3f25d
callq 0x5360
movq %rax, %rdi
movl -0x34(%rbp), %esi
callq 0x5530
movq %rax, %rdi
leaq 0xc287(%rip), %rsi      # 0x415b8
callq 0x5360
movq %rax, %rdi
movq 0x14c40(%rip), %rsi     # 0x49f80
callq 0x53c0
movq 0x14c74(%rip), %rdi     # 0x49fc0
leaq 0xcf51(%rip), %rsi      # 0x422a4
callq 0x5360
movq %rax, %rdi
leaq 0xb428(%rip), %rsi      # 0x4078a
callq 0x5360
movq %rax, %rdi
movl $0x447, %esi            # imm = 0x447
callq 0x5750
movq %rax, %rdi
movq 0x14c02(%rip), %rsi     # 0x49f80
callq 0x53c0
leaq 0xb2e0(%rip), %rdi      # 0x4066a
leaq 0xcf13(%rip), %rsi      # 0x422a4
movl $0x447, %edx            # imm = 0x447
leaq 0xcf17(%rip), %rcx      # 0x422b4
callq 0x51e0
movl -0x48(%rbp), %eax
cmpl -0x38(%rbp), %eax
jb 0x353b8
movl -0x48(%rbp), %eax
subl -0x38(%rbp), %eax
movl %eax, -0xb4(%rbp)
jmp 0x353c7
movl -0x48(%rbp), %eax
addl -0x34(%rbp), %eax
subl -0x38(%rbp), %eax
movl %eax, -0xb4(%rbp)
movl -0xb4(%rbp), %eax
movl %eax, -0x50(%rbp)
movl -0x50(%rbp), %eax
cmpl -0x34(%rbp), %eax
jne 0x353df
movl $0x0, -0x50(%rbp)
movl -0x4c(%rbp), %eax
cmpl -0x3c(%rbp), %eax
jb 0x353f5
movl -0x4c(%rbp), %eax
subl -0x3c(%rbp), %eax
movl %eax, -0xb8(%rbp)
jmp 0x35404
movl -0x4c(%rbp), %eax
addl -0x34(%rbp), %eax
subl -0x3c(%rbp), %eax
movl %eax, -0xb8(%rbp)
movl -0xb8(%rbp), %eax
movl %eax, -0x54(%rbp)
movl -0x54(%rbp), %eax
cmpl -0x34(%rbp), %eax
jne 0x3541c
movl $0x0, -0x54(%rbp)
movl -0x50(%rbp), %eax
cmpl -0x34(%rbp), %eax
jb 0x354db
movq 0x14b91(%rip), %rdi     # 0x49fc0
leaq 0x9e11(%rip), %rsi      # 0x3f247
callq 0x5360
movq %rax, %rdi
movl -0x50(%rbp), %esi
callq 0x5530
movq %rax, %rdi
leaq 0x9e0d(%rip), %rsi      # 0x3f25d
callq 0x5360
movq %rax, %rdi
movl -0x34(%rbp), %esi
callq 0x5530
movq %rax, %rdi
leaq 0xc14e(%rip), %rsi      # 0x415b8
callq 0x5360
movq %rax, %rdi
movq 0x14b07(%rip), %rsi     # 0x49f80
callq 0x53c0
movq 0x14b3b(%rip), %rdi     # 0x49fc0
leaq 0xce18(%rip), %rsi      # 0x422a4
callq 0x5360
movq %rax, %rdi
leaq 0xb2ef(%rip), %rsi      # 0x4078a
callq 0x5360
movq %rax, %rdi
movl $0x44c, %esi            # imm = 0x44C
callq 0x5750
movq %rax, %rdi
movq 0x14ac9(%rip), %rsi     # 0x49f80
callq 0x53c0
leaq 0xb1a7(%rip), %rdi      # 0x4066a
leaq 0xcdda(%rip), %rsi      # 0x422a4
movl $0x44c, %edx            # imm = 0x44C
leaq 0xcdde(%rip), %rcx      # 0x422b4
callq 0x51e0
movl -0x54(%rbp), %eax
cmpl -0x34(%rbp), %eax
jb 0x3559a
movq 0x14ad2(%rip), %rdi     # 0x49fc0
leaq 0x9d52(%rip), %rsi      # 0x3f247
callq 0x5360
movq %rax, %rdi
movl -0x54(%rbp), %esi
callq 0x5530
movq %rax, %rdi
leaq 0x9d4e(%rip), %rsi      # 0x3f25d
callq 0x5360
movq %rax, %rdi
movl -0x34(%rbp), %esi
callq 0x5530
movq %rax, %rdi
leaq 0xc08f(%rip), %rsi      # 0x415b8
callq 0x5360
movq %rax, %rdi
movq 0x14a48(%rip), %rsi     # 0x49f80
callq 0x53c0
movq 0x14a7c(%rip), %rdi     # 0x49fc0
leaq 0xcd59(%rip), %rsi      # 0x422a4
callq 0x5360
movq %rax, %rdi
leaq 0xb230(%rip), %rsi      # 0x4078a
callq 0x5360
movq %rax, %rdi
movl $0x44d, %esi            # imm = 0x44D
callq 0x5750
movq %rax, %rdi
movq 0x14a0a(%rip), %rsi     # 0x49f80
callq 0x53c0
leaq 0xb0e8(%rip), %rdi      # 0x4066a
leaq 0xcd1b(%rip), %rsi      # 0x422a4
movl $0x44d, %edx            # imm = 0x44D
leaq 0xcd1f(%rip), %rcx      # 0x422b4
callq 0x51e0
movq -0x60(%rbp), %rdi
movq -0x18(%rbp), %rsi
movl -0x50(%rbp), %eax
addq %rax, %rsi
callq 0x36aa0
testb $0x1, %al
jne 0x355b3
jmp 0x355b5
jmp 0x355d4
leaq 0xcdcb(%rip), %rdi      # 0x42387
leaq 0xcce1(%rip), %rsi      # 0x422a4
movl $0x44e, %edx            # imm = 0x44E
leaq 0xcce5(%rip), %rcx      # 0x422b4
callq 0x51e0
movq -0x60(%rbp), %rdi
movq -0x20(%rbp), %rsi
movl -0x50(%rbp), %eax
addq %rax, %rsi
callq 0x36aa0
testb $0x1, %al
jne 0x355ed
jmp 0x355ef
jmp 0x3560e
leaq 0xcda8(%rip), %rdi      # 0x4239e
leaq 0xcca7(%rip), %rsi      # 0x422a4
movl $0x44f, %edx            # imm = 0x44F
leaq 0xccab(%rip), %rcx      # 0x422b4
callq 0x51e0
movq -0x60(%rbp), %rdi
movq -0x18(%rbp), %rsi
movl -0x54(%rbp), %eax
addq %rax, %rsi
callq 0x36aa0
testb $0x1, %al
jne 0x35627
jmp 0x35629
jmp 0x35648
leaq 0xcd85(%rip), %rdi      # 0x423b5
leaq 0xcc6d(%rip), %rsi      # 0x422a4
movl $0x450, %edx            # imm = 0x450
leaq 0xcc71(%rip), %rcx      # 0x422b4
callq 0x51e0
movq -0x60(%rbp), %rdi
movq -0x20(%rbp), %rsi
movl -0x54(%rbp), %eax
addq %rax, %rsi
callq 0x36aa0
testb $0x1, %al
jne 0x35661
jmp 0x35663
jmp 0x35682
leaq 0xcd63(%rip), %rdi      # 0x423cd
leaq 0xcc33(%rip), %rsi      # 0x422a4
movl $0x451, %edx            # imm = 0x451
leaq 0xcc37(%rip), %rcx      # 0x422b4
callq 0x51e0
leaq -0x50(%rbp), %rdi
leaq -0x54(%rbp), %rsi
callq 0x36c10
movl (%rax), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0xc0, %rsp
popq %rbp
retq