// File: BenLangmead[P]bowtie/ref_read.cpp
// Function: reverseRefRecords(EList<RefRecord, 128> const&, EList<RefRecord, 128>&, bool, bool)
void reverseRefRecords(const EList<RefRecord>& src,
					   EList<RefRecord>& dst,
					   bool recursive,
					   bool verbose)
{
	dst.clear();
	{
		EList<RefRecord> cur;
		for(int64_t i = (int64_t)src.size()-1; i >= 0; i--) {
			bool first = (i == (int)src.size()-1 || src[i+1].first);
			if(src[i].len) {
				cur.push_back(RefRecord(0, src[i].len, first));
				first = false;
			}
			if(src[i].off) cur.push_back(RefRecord(src[i].off, 0, first));
		}
		for(int64_t i = 0; i < (int64_t)cur.size(); i++) {
			assert(cur[i].off == 0 || cur[i].len == 0);
			if(i < (int64_t)cur.size()-1 && cur[i].off != 0 && !cur[i+1].first) {
				dst.push_back(RefRecord(cur[i].off, cur[i+1].len, cur[i].first));
				i++;
			} else {
				dst.push_back(cur[i]);
			}
		}
	}
	if(verbose) {
		cout << "Source: " << endl;
		printRecords(cout, src);
		cout << "Dest: " << endl;
		printRecords(cout, dst);
	}
#ifndef NDEBUG
	if(!recursive) {
		EList<RefRecord> tmp;
		reverseRefRecords(dst, tmp, true);
		assert_eq(tmp.size(), src.size());
		for(size_t i = 0; i < src.size(); i++) {
			assert_eq(src[i].len, tmp[i].len);
			assert_eq(src[i].off, tmp[i].off);
			assert_eq(src[i].first, tmp[i].first);
		}
	}
#endif
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x490, %rsp            # imm = 0x490
movb %cl, %al
movb %dl, %cl
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
andb $0x1, %cl
movb %cl, -0x11(%rbp)
andb $0x1, %al
movb %al, -0x12(%rbp)
movq -0x10(%rbp), %rdi
callq 0x3cb80
leaq -0x38(%rbp), %rdi
callq 0x2bcc0
movq -0x8(%rbp), %rdi
callq 0x22d00
movq %rax, -0xd0(%rbp)
jmp 0x3ad16
movq -0xd0(%rbp), %rax
subq $0x1, %rax
movq %rax, -0x40(%rbp)
cmpq $0x0, -0x40(%rbp)
jl 0x3aea9
movq -0x40(%rbp), %rax
movq %rax, -0xe0(%rbp)
movq -0x8(%rbp), %rdi
callq 0x22d00
movq %rax, -0xd8(%rbp)
jmp 0x3ad4d
movq -0xe0(%rbp), %rcx
movq -0xd8(%rbp), %rax
subl $0x1, %eax
movslq %eax, %rdx
movb $0x1, %al
cmpq %rdx, %rcx
movb %al, -0xe1(%rbp)
je 0x3ad97
movq -0x8(%rbp), %rdi
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x22d20
movq %rax, -0xf0(%rbp)
jmp 0x3ad87
movq -0xf0(%rbp), %rax
movb 0x10(%rax), %al
movb %al, -0xe1(%rbp)
movb -0xe1(%rbp), %al
andb $0x1, %al
movb %al, -0x4d(%rbp)
movq -0x8(%rbp), %rdi
movq -0x40(%rbp), %rsi
callq 0x22d20
movq %rax, -0xf8(%rbp)
jmp 0x3adb8
movq -0xf8(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x3ae2c
movq -0x8(%rbp), %rdi
movq -0x40(%rbp), %rsi
callq 0x22d20
movq %rax, -0x100(%rbp)
jmp 0x3addc
movq -0x100(%rbp), %rax
movq 0x8(%rax), %rdx
movzbl -0x4d(%rbp), %ecx
andl $0x1, %ecx
xorl %eax, %eax
movl %eax, %esi
leaq -0x68(%rbp), %rdi
callq 0x3c5f0
jmp 0x3adfd
leaq -0x38(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x2be10
jmp 0x3ae0c
movb $0x0, -0x4d(%rbp)
jmp 0x3ae2c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x2cb20
jmp 0x3bda0
movq -0x8(%rbp), %rdi
movq -0x40(%rbp), %rsi
callq 0x22d20
movq %rax, -0x108(%rbp)
jmp 0x3ae42
movq -0x108(%rbp), %rax
cmpq $0x0, (%rax)
je 0x3ae96
movq -0x8(%rbp), %rdi
movq -0x40(%rbp), %rsi
callq 0x22d20
movq %rax, -0x110(%rbp)
jmp 0x3ae65
movq -0x110(%rbp), %rax
movq (%rax), %rsi
movzbl -0x4d(%rbp), %ecx
andl $0x1, %ecx
xorl %eax, %eax
movl %eax, %edx
leaq -0x80(%rbp), %rdi
callq 0x3c5f0
jmp 0x3ae85
leaq -0x38(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x2be10
jmp 0x3ae94
jmp 0x3ae96
jmp 0x3ae98
movq -0x40(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x40(%rbp)
jmp 0x3ad25
movq $0x0, -0x88(%rbp)
movq -0x88(%rbp), %rax
movq %rax, -0x120(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x22d00
movq %rax, -0x118(%rbp)
jmp 0x3aed4
movq -0x120(%rbp), %rax
movq -0x118(%rbp), %rcx
cmpq %rcx, %rax
jge 0x3b129
movq -0x88(%rbp), %rsi
leaq -0x38(%rbp), %rdi
callq 0x2c010
movq %rax, -0x128(%rbp)
jmp 0x3af04
movq -0x128(%rbp), %rcx
movb $0x1, %al
cmpq $0x0, (%rcx)
movb %al, -0x129(%rbp)
je 0x3af47
movq -0x88(%rbp), %rsi
leaq -0x38(%rbp), %rdi
callq 0x2c010
movq %rax, -0x138(%rbp)
jmp 0x3af32
movq -0x138(%rbp), %rax
cmpq $0x0, 0x8(%rax)
sete %al
movb %al, -0x129(%rbp)
movb -0x129(%rbp), %al
testb $0x1, %al
jne 0x3af53
jmp 0x3af55
jmp 0x3af74
leaq 0x85d6(%rip), %rdi      # 0x43532
leaq 0x845b(%rip), %rsi      # 0x433be
movl $0xab, %edx
leaq 0x85e6(%rip), %rcx      # 0x43555
callq 0x51e0
movq -0x88(%rbp), %rax
movq %rax, -0x148(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x22d00
movq %rax, -0x140(%rbp)
jmp 0x3af94
movq -0x148(%rbp), %rax
movq -0x140(%rbp), %rcx
subq $0x1, %rcx
cmpq %rcx, %rax
jge 0x3b0d5
movq -0x88(%rbp), %rsi
leaq -0x38(%rbp), %rdi
callq 0x2c010
movq %rax, -0x150(%rbp)
jmp 0x3afc8
movq -0x150(%rbp), %rax
cmpq $0x0, (%rax)
je 0x3b0d5
movq -0x88(%rbp), %rsi
incq %rsi
leaq -0x38(%rbp), %rdi
callq 0x2c010
movq %rax, -0x158(%rbp)
jmp 0x3aff5
movq -0x158(%rbp), %rax
testb $0x1, 0x10(%rax)
jne 0x3b0d5
movq -0x10(%rbp), %rax
movq %rax, -0x168(%rbp)
movq -0x88(%rbp), %rsi
leaq -0x38(%rbp), %rdi
callq 0x2c010
movq %rax, -0x160(%rbp)
jmp 0x3b02a
movq -0x160(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x178(%rbp)
movq -0x88(%rbp), %rsi
incq %rsi
leaq -0x38(%rbp), %rdi
callq 0x2c010
movq %rax, -0x170(%rbp)
jmp 0x3b057
movq -0x170(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x188(%rbp)
movq -0x88(%rbp), %rsi
leaq -0x38(%rbp), %rdi
callq 0x2c010
movq %rax, -0x180(%rbp)
jmp 0x3b082
movq -0x188(%rbp), %rdx
movq -0x178(%rbp), %rsi
movq -0x180(%rbp), %rax
movzbl 0x10(%rax), %ecx
andl $0x1, %ecx
leaq -0xa0(%rbp), %rdi
callq 0x3c5f0
jmp 0x3b0ac
movq -0x168(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x2be10
jmp 0x3b0c1
movq -0x88(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x88(%rbp)
jmp 0x3b110
movq -0x10(%rbp), %rax
movq %rax, -0x198(%rbp)
movq -0x88(%rbp), %rsi
leaq -0x38(%rbp), %rdi
callq 0x2c010
movq %rax, -0x190(%rbp)
jmp 0x3b0f9
movq -0x190(%rbp), %rsi
movq -0x198(%rbp), %rdi
callq 0x2be10
jmp 0x3b10e
jmp 0x3b110
jmp 0x3b112
movq -0x88(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x88(%rbp)
jmp 0x3aeb4
leaq -0x38(%rbp), %rdi
callq 0x2cb20
testb $0x1, -0x12(%rbp)
je 0x3b19c
movq 0xee81(%rip), %rdi      # 0x49fc0
leaq 0x8460(%rip), %rsi      # 0x435a6
callq 0x5360
movq %rax, %rdi
movq 0xee2b(%rip), %rsi      # 0x49f80
callq 0x53c0
movq -0x8(%rbp), %rsi
movq 0xee5b(%rip), %rdi      # 0x49fc0
callq 0x3bdb0
movq 0xee4f(%rip), %rdi      # 0x49fc0
leaq 0x8437(%rip), %rsi      # 0x435af
callq 0x5360
movq %rax, %rdi
movq 0xedf9(%rip), %rsi      # 0x49f80
callq 0x53c0
movq -0x10(%rbp), %rsi
movq 0xee29(%rip), %rdi      # 0x49fc0
callq 0x3bdb0
testb $0x1, -0x11(%rbp)
jne 0x3bd97
leaq -0xc0(%rbp), %rdi
movq %rdi, -0x1a0(%rbp)
callq 0x2bcc0
movq -0x1a0(%rbp), %rsi
movq -0x10(%rbp), %rdi
movl $0x1, %edx
xorl %ecx, %ecx
callq 0x3acd0
jmp 0x3b1d2
leaq -0xc0(%rbp), %rdi
callq 0x22d00
movq %rax, -0x1a8(%rbp)
jmp 0x3b1e7
movq -0x8(%rbp), %rdi
callq 0x22d00
movq %rax, -0x1b0(%rbp)
jmp 0x3b1f9
movq -0x1a8(%rbp), %rax
movq -0x1b0(%rbp), %rcx
cmpq %rcx, %rax
je 0x3b482
movq 0xeda9(%rip), %rdi      # 0x49fc0
leaq 0x3efb(%rip), %rsi      # 0x3f119
callq 0x5360
movq %rax, -0x1b8(%rbp)
jmp 0x3b22c
leaq -0xc0(%rbp), %rdi
callq 0x22d00
movq %rax, -0x1c0(%rbp)
jmp 0x3b241
movq -0x1c0(%rbp), %rsi
movq -0x1b8(%rbp), %rdi
callq 0x50c0
movq %rax, -0x1c8(%rbp)
jmp 0x3b25d
movq -0x1c8(%rbp), %rdi
leaq 0x3ec4(%rip), %rsi      # 0x3f12f
callq 0x5360
movq %rax, -0x1d0(%rbp)
jmp 0x3b279
movq -0x1d0(%rbp), %rdi
leaq -0x22aa7(%rip), %rsi    # 0x187e0
callq 0x5120
movq %rax, -0x1d8(%rbp)
jmp 0x3b295
leaq -0xc0(%rbp), %rdi
callq 0x22d00
movq %rax, -0x1e0(%rbp)
jmp 0x3b2aa
movq -0x1e0(%rbp), %rsi
movq -0x1d8(%rbp), %rdi
callq 0x50c0
movq %rax, -0x1e8(%rbp)
jmp 0x3b2c6
movq -0x1e8(%rbp), %rdi
leaq -0x22ac4(%rip), %rsi    # 0x18810
callq 0x5120
movq %rax, -0x1f0(%rbp)
jmp 0x3b2e2
movq -0x1f0(%rbp), %rdi
leaq 0x3e44(%rip), %rsi      # 0x3f134
callq 0x5360
movq %rax, -0x1f8(%rbp)
jmp 0x3b2fe
movq -0x8(%rbp), %rdi
callq 0x22d00
movq %rax, -0x200(%rbp)
jmp 0x3b310
movq -0x200(%rbp), %rsi
movq -0x1f8(%rbp), %rdi
callq 0x50c0
movq %rax, -0x208(%rbp)
jmp 0x3b32c
movq -0x208(%rbp), %rdi
leaq 0x3df5(%rip), %rsi      # 0x3f12f
callq 0x5360
movq %rax, -0x210(%rbp)
jmp 0x3b348
movq -0x210(%rbp), %rdi
leaq -0x22b76(%rip), %rsi    # 0x187e0
callq 0x5120
movq %rax, -0x218(%rbp)
jmp 0x3b364
movq -0x8(%rbp), %rdi
callq 0x22d00
movq %rax, -0x220(%rbp)
jmp 0x3b376
movq -0x220(%rbp), %rsi
movq -0x218(%rbp), %rdi
callq 0x50c0
movq %rax, -0x228(%rbp)
jmp 0x3b392
movq -0x228(%rbp), %rdi
leaq -0x22b90(%rip), %rsi    # 0x18810
callq 0x5120
movq %rax, -0x230(%rbp)
jmp 0x3b3ae
movq -0x230(%rbp), %rdi
leaq 0x61fc(%rip), %rsi      # 0x415b8
callq 0x5360
movq %rax, -0x238(%rbp)
jmp 0x3b3ca
movq -0x238(%rbp), %rdi
movq 0xeba8(%rip), %rsi      # 0x49f80
callq 0x53c0
jmp 0x3b3df
movq 0xebda(%rip), %rdi      # 0x49fc0
leaq 0x7fd1(%rip), %rsi      # 0x433be
callq 0x5360
movq %rax, -0x240(%rbp)
jmp 0x3b3fb
movq -0x240(%rbp), %rdi
leaq 0x5381(%rip), %rsi      # 0x4078a
callq 0x5360
movq %rax, -0x248(%rbp)
jmp 0x3b417
movq -0x248(%rbp), %rdi
movl $0xbe, %esi
callq 0x5750
movq %rax, -0x250(%rbp)
jmp 0x3b431
movq -0x250(%rbp), %rdi
movq 0xeb41(%rip), %rsi      # 0x49f80
callq 0x53c0
jmp 0x3b446
leaq 0x521d(%rip), %rdi      # 0x4066a
leaq 0x7f6a(%rip), %rsi      # 0x433be
movl $0xbe, %edx
leaq 0x80f5(%rip), %rcx      # 0x43555
callq 0x51e0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xc0(%rbp), %rdi
callq 0x2cb20
jmp 0x3bda0
movq $0x0, -0xc8(%rbp)
movq -0xc8(%rbp), %rax
movq %rax, -0x260(%rbp)
movq -0x8(%rbp), %rdi
callq 0x22d00
movq %rax, -0x258(%rbp)
jmp 0x3b4ad
movq -0x260(%rbp), %rax
movq -0x258(%rbp), %rcx
cmpq %rcx, %rax
jae 0x3bd8b
movq -0x8(%rbp), %rdi
movq -0xc8(%rbp), %rsi
callq 0x22d20
movq %rax, -0x268(%rbp)
jmp 0x3b4dd
movq -0x268(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x278(%rbp)
movq -0xc8(%rbp), %rsi
leaq -0xc0(%rbp), %rdi
callq 0x2c010
movq %rax, -0x270(%rbp)
jmp 0x3b50b
movq -0x278(%rbp), %rax
movq -0x270(%rbp), %rcx
cmpq 0x8(%rcx), %rax
je 0x3b7a4
movq 0xea96(%rip), %rdi      # 0x49fc0
leaq 0x3be8(%rip), %rsi      # 0x3f119
callq 0x5360
movq %rax, -0x280(%rbp)
jmp 0x3b53f
movq -0x8(%rbp), %rdi
movq -0xc8(%rbp), %rsi
callq 0x22d20
movq %rax, -0x288(%rbp)
jmp 0x3b558
movq -0x280(%rbp), %rdi
movq -0x288(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x50c0
movq %rax, -0x290(%rbp)
jmp 0x3b578
movq -0x290(%rbp), %rdi
leaq 0x3ba9(%rip), %rsi      # 0x3f12f
callq 0x5360
movq %rax, -0x298(%rbp)
jmp 0x3b594
movq -0x298(%rbp), %rdi
leaq -0x22dc2(%rip), %rsi    # 0x187e0
callq 0x5120
movq %rax, -0x2a0(%rbp)
jmp 0x3b5b0
movq -0x8(%rbp), %rdi
movq -0xc8(%rbp), %rsi
callq 0x22d20
movq %rax, -0x2a8(%rbp)
jmp 0x3b5c9
movq -0x2a0(%rbp), %rdi
movq -0x2a8(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x50c0
movq %rax, -0x2b0(%rbp)
jmp 0x3b5e9
movq -0x2b0(%rbp), %rdi
leaq -0x22de7(%rip), %rsi    # 0x18810
callq 0x5120
movq %rax, -0x2b8(%rbp)
jmp 0x3b605
movq -0x2b8(%rbp), %rdi
leaq 0x3b21(%rip), %rsi      # 0x3f134
callq 0x5360
movq %rax, -0x2c0(%rbp)
jmp 0x3b621
movq -0xc8(%rbp), %rsi
leaq -0xc0(%rbp), %rdi
callq 0x2c010
movq %rax, -0x2c8(%rbp)
jmp 0x3b63d
movq -0x2c0(%rbp), %rdi
movq -0x2c8(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x50c0
movq %rax, -0x2d0(%rbp)
jmp 0x3b65d
movq -0x2d0(%rbp), %rdi
leaq 0x3ac4(%rip), %rsi      # 0x3f12f
callq 0x5360
movq %rax, -0x2d8(%rbp)
jmp 0x3b679
movq -0x2d8(%rbp), %rdi
leaq -0x22ea7(%rip), %rsi    # 0x187e0
callq 0x5120
movq %rax, -0x2e0(%rbp)
jmp 0x3b695
movq -0xc8(%rbp), %rsi
leaq -0xc0(%rbp), %rdi
callq 0x2c010
movq %rax, -0x2e8(%rbp)
jmp 0x3b6b1
movq -0x2e0(%rbp), %rdi
movq -0x2e8(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x50c0
movq %rax, -0x2f0(%rbp)
jmp 0x3b6d1
movq -0x2f0(%rbp), %rdi
leaq -0x22ecf(%rip), %rsi    # 0x18810
callq 0x5120
movq %rax, -0x2f8(%rbp)
jmp 0x3b6ed
movq -0x2f8(%rbp), %rdi
leaq 0x5ebd(%rip), %rsi      # 0x415b8
callq 0x5360
movq %rax, -0x300(%rbp)
jmp 0x3b709
movq -0x300(%rbp), %rdi
movq 0xe869(%rip), %rsi      # 0x49f80
callq 0x53c0
jmp 0x3b71e
movq 0xe89b(%rip), %rdi      # 0x49fc0
leaq 0x7c92(%rip), %rsi      # 0x433be
callq 0x5360
movq %rax, -0x308(%rbp)
jmp 0x3b73a
movq -0x308(%rbp), %rdi
leaq 0x5042(%rip), %rsi      # 0x4078a
callq 0x5360
movq %rax, -0x310(%rbp)
jmp 0x3b756
movq -0x310(%rbp), %rdi
movl $0xc0, %esi
callq 0x5750
movq %rax, -0x318(%rbp)
jmp 0x3b770
movq -0x318(%rbp), %rdi
movq 0xe802(%rip), %rsi      # 0x49f80
callq 0x53c0
jmp 0x3b785
leaq 0x4ede(%rip), %rdi      # 0x4066a
leaq 0x7c2b(%rip), %rsi      # 0x433be
movl $0xc0, %edx
leaq 0x7db6(%rip), %rcx      # 0x43555
callq 0x51e0
movq -0x8(%rbp), %rdi
movq -0xc8(%rbp), %rsi
callq 0x22d20
movq %rax, -0x320(%rbp)
jmp 0x3b7bd
movq -0x320(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x330(%rbp)
movq -0xc8(%rbp), %rsi
leaq -0xc0(%rbp), %rdi
callq 0x2c010
movq %rax, -0x328(%rbp)
jmp 0x3b7ea
movq -0x330(%rbp), %rax
movq -0x328(%rbp), %rcx
cmpq (%rcx), %rax
je 0x3ba7e
movq 0xe7b8(%rip), %rdi      # 0x49fc0
leaq 0x390a(%rip), %rsi      # 0x3f119
callq 0x5360
movq %rax, -0x338(%rbp)
jmp 0x3b81d
movq -0x8(%rbp), %rdi
movq -0xc8(%rbp), %rsi
callq 0x22d20
movq %rax, -0x340(%rbp)
jmp 0x3b836
movq -0x338(%rbp), %rdi
movq -0x340(%rbp), %rax
movq (%rax), %rsi
callq 0x50c0
movq %rax, -0x348(%rbp)
jmp 0x3b855
movq -0x348(%rbp), %rdi
leaq 0x38cc(%rip), %rsi      # 0x3f12f
callq 0x5360
movq %rax, -0x350(%rbp)
jmp 0x3b871
movq -0x350(%rbp), %rdi
leaq -0x2309f(%rip), %rsi    # 0x187e0
callq 0x5120
movq %rax, -0x358(%rbp)
jmp 0x3b88d
movq -0x8(%rbp), %rdi
movq -0xc8(%rbp), %rsi
callq 0x22d20
movq %rax, -0x360(%rbp)
jmp 0x3b8a6
movq -0x358(%rbp), %rdi
movq -0x360(%rbp), %rax
movq (%rax), %rsi
callq 0x50c0
movq %rax, -0x368(%rbp)
jmp 0x3b8c5
movq -0x368(%rbp), %rdi
leaq -0x230c3(%rip), %rsi    # 0x18810
callq 0x5120
movq %rax, -0x370(%rbp)
jmp 0x3b8e1
movq -0x370(%rbp), %rdi
leaq 0x3845(%rip), %rsi      # 0x3f134
callq 0x5360
movq %rax, -0x378(%rbp)
jmp 0x3b8fd
movq -0xc8(%rbp), %rsi
leaq -0xc0(%rbp), %rdi
callq 0x2c010
movq %rax, -0x380(%rbp)
jmp 0x3b919
movq -0x378(%rbp), %rdi
movq -0x380(%rbp), %rax
movq (%rax), %rsi
callq 0x50c0
movq %rax, -0x388(%rbp)
jmp 0x3b938
movq -0x388(%rbp), %rdi
leaq 0x37e9(%rip), %rsi      # 0x3f12f
callq 0x5360
movq %rax, -0x390(%rbp)
jmp 0x3b954
movq -0x390(%rbp), %rdi
leaq -0x23182(%rip), %rsi    # 0x187e0
callq 0x5120
movq %rax, -0x398(%rbp)
jmp 0x3b970
movq -0xc8(%rbp), %rsi
leaq -0xc0(%rbp), %rdi
callq 0x2c010
movq %rax, -0x3a0(%rbp)
jmp 0x3b98c
movq -0x398(%rbp), %rdi
movq -0x3a0(%rbp), %rax
movq (%rax), %rsi
callq 0x50c0
movq %rax, -0x3a8(%rbp)
jmp 0x3b9ab
movq -0x3a8(%rbp), %rdi
leaq -0x231a9(%rip), %rsi    # 0x18810
callq 0x5120
movq %rax, -0x3b0(%rbp)
jmp 0x3b9c7
movq -0x3b0(%rbp), %rdi
leaq 0x5be3(%rip), %rsi      # 0x415b8
callq 0x5360
movq %rax, -0x3b8(%rbp)
jmp 0x3b9e3
movq -0x3b8(%rbp), %rdi
movq 0xe58f(%rip), %rsi      # 0x49f80
callq 0x53c0
jmp 0x3b9f8
movq 0xe5c1(%rip), %rdi      # 0x49fc0
leaq 0x79b8(%rip), %rsi      # 0x433be
callq 0x5360
movq %rax, -0x3c0(%rbp)
jmp 0x3ba14
movq -0x3c0(%rbp), %rdi
leaq 0x4d68(%rip), %rsi      # 0x4078a
callq 0x5360
movq %rax, -0x3c8(%rbp)
jmp 0x3ba30
movq -0x3c8(%rbp), %rdi
movl $0xc1, %esi
callq 0x5750
movq %rax, -0x3d0(%rbp)
jmp 0x3ba4a
movq -0x3d0(%rbp), %rdi
movq 0xe528(%rip), %rsi      # 0x49f80
callq 0x53c0
jmp 0x3ba5f
leaq 0x4c04(%rip), %rdi      # 0x4066a
leaq 0x7951(%rip), %rsi      # 0x433be
movl $0xc1, %edx
leaq 0x7adc(%rip), %rcx      # 0x43555
callq 0x51e0
movq -0x8(%rbp), %rdi
movq -0xc8(%rbp), %rsi
callq 0x22d20
movq %rax, -0x3d8(%rbp)
jmp 0x3ba97
movq -0x3d8(%rbp), %rax
movzbl 0x10(%rax), %eax
andl $0x1, %eax
movl %eax, -0x3e4(%rbp)
movq -0xc8(%rbp), %rsi
leaq -0xc0(%rbp), %rdi
callq 0x2c010
movq %rax, -0x3e0(%rbp)
jmp 0x3bac7
movl -0x3e4(%rbp), %eax
movq -0x3e0(%rbp), %rcx
movb 0x10(%rcx), %cl
andb $0x1, %cl
movzbl %cl, %ecx
cmpl %ecx, %eax
je 0x3bd72
movq 0xe4d4(%rip), %rdi      # 0x49fc0
leaq 0x3626(%rip), %rsi      # 0x3f119
callq 0x5360
movq %rax, -0x3f0(%rbp)
jmp 0x3bb01
movq -0x8(%rbp), %rdi
movq -0xc8(%rbp), %rsi
callq 0x22d20
movq %rax, -0x3f8(%rbp)
jmp 0x3bb1a
movq -0x3f0(%rbp), %rdi
movq -0x3f8(%rbp), %rax
movzbl 0x10(%rax), %esi
andl $0x1, %esi
callq 0x5790
movq %rax, -0x400(%rbp)
jmp 0x3bb3d
movq -0x400(%rbp), %rdi
leaq 0x35e4(%rip), %rsi      # 0x3f12f
callq 0x5360
movq %rax, -0x408(%rbp)
jmp 0x3bb59
movq -0x408(%rbp), %rdi
leaq -0x23387(%rip), %rsi    # 0x187e0
callq 0x5120
movq %rax, -0x410(%rbp)
jmp 0x3bb75
movq -0x8(%rbp), %rdi
movq -0xc8(%rbp), %rsi
callq 0x22d20
movq %rax, -0x418(%rbp)
jmp 0x3bb8e
movq -0x410(%rbp), %rdi
movq -0x418(%rbp), %rax
movzbl 0x10(%rax), %esi
andl $0x1, %esi
callq 0x5790
movq %rax, -0x420(%rbp)
jmp 0x3bbb1
movq -0x420(%rbp), %rdi
leaq -0x233af(%rip), %rsi    # 0x18810
callq 0x5120
movq %rax, -0x428(%rbp)
jmp 0x3bbcd
movq -0x428(%rbp), %rdi
leaq 0x3559(%rip), %rsi      # 0x3f134
callq 0x5360
movq %rax, -0x430(%rbp)
jmp 0x3bbe9
movq -0xc8(%rbp), %rsi
leaq -0xc0(%rbp), %rdi
callq 0x2c010
movq %rax, -0x438(%rbp)
jmp 0x3bc05
movq -0x430(%rbp), %rdi
movq -0x438(%rbp), %rax
movzbl 0x10(%rax), %esi
andl $0x1, %esi
callq 0x5790
movq %rax, -0x440(%rbp)
jmp 0x3bc28
movq -0x440(%rbp), %rdi
leaq 0x34f9(%rip), %rsi      # 0x3f12f
callq 0x5360
movq %rax, -0x448(%rbp)
jmp 0x3bc44
movq -0x448(%rbp), %rdi
leaq -0x23472(%rip), %rsi    # 0x187e0
callq 0x5120
movq %rax, -0x450(%rbp)
jmp 0x3bc60
movq -0xc8(%rbp), %rsi
leaq -0xc0(%rbp), %rdi
callq 0x2c010
movq %rax, -0x458(%rbp)
jmp 0x3bc7c
movq -0x450(%rbp), %rdi
movq -0x458(%rbp), %rax
movzbl 0x10(%rax), %esi
andl $0x1, %esi
callq 0x5790
movq %rax, -0x460(%rbp)
jmp 0x3bc9f
movq -0x460(%rbp), %rdi
leaq -0x2349d(%rip), %rsi    # 0x18810
callq 0x5120
movq %rax, -0x468(%rbp)
jmp 0x3bcbb
movq -0x468(%rbp), %rdi
leaq 0x58ef(%rip), %rsi      # 0x415b8
callq 0x5360
movq %rax, -0x470(%rbp)
jmp 0x3bcd7
movq -0x470(%rbp), %rdi
movq 0xe29b(%rip), %rsi      # 0x49f80
callq 0x53c0
jmp 0x3bcec
movq 0xe2cd(%rip), %rdi      # 0x49fc0
leaq 0x76c4(%rip), %rsi      # 0x433be
callq 0x5360
movq %rax, -0x478(%rbp)
jmp 0x3bd08
movq -0x478(%rbp), %rdi
leaq 0x4a74(%rip), %rsi      # 0x4078a
callq 0x5360
movq %rax, -0x480(%rbp)
jmp 0x3bd24
movq -0x480(%rbp), %rdi
movl $0xc2, %esi
callq 0x5750
movq %rax, -0x488(%rbp)
jmp 0x3bd3e
movq -0x488(%rbp), %rdi
movq 0xe234(%rip), %rsi      # 0x49f80
callq 0x53c0
jmp 0x3bd53
leaq 0x4910(%rip), %rdi      # 0x4066a
leaq 0x765d(%rip), %rsi      # 0x433be
movl $0xc2, %edx
leaq 0x77e8(%rip), %rcx      # 0x43555
callq 0x51e0
jmp 0x3bd74
movq -0xc8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xc8(%rbp)
jmp 0x3b48d
leaq -0xc0(%rbp), %rdi
callq 0x2cb20
addq $0x490, %rsp            # imm = 0x490
popq %rbp
retq
movq -0x48(%rbp), %rdi
callq 0x5760
nopl (%rax)