// File: szmer[P]brill/./src/rules.cpp
// Function: Rule::transform_corp(Corpus*)
Corpus Rule::transform_corp(Corpus * corp) {

	Corpus new_corp;
	new_corp.sentences.reserve(corp->sentences.size());

	// Change from tag X to Y when preceding tag is Z:
	if(id < (RL_PRECEDING+1) * RULE_RANGE) 
		for(unsigned int si = 0; si < corp->sentences.size(); si++) {
			vector<TaggedWord> new_stc(corp->sentences[si]); // make a copy
			for(unsigned int i = 1; i < corp->sentences[si].size(); i++)
				if(corp->sentences[si][i-1].tag == cue1
						&& corp->sentences[si][i].tag == alter_tag)
					new_stc[i].tag = target;
			new_corp.sentences.push_back(new_stc);
		}

	// Change from tag X to Y when following tag is Z:
	if(id >= RL_FOLLOWING * RULE_RANGE && id < (RL_FOLLOWING+1) * RULE_RANGE)
		for(unsigned int si = 0; si < corp->sentences.size(); si++) {
			vector<TaggedWord> new_stc(corp->sentences[si]); // make a copy
			for(unsigned int i = 0; i+1 < corp->sentences[si].size(); i++)
				if(corp->sentences[si][i+1].tag == cue1
						&& corp->sentences[si][i].tag == alter_tag)
					new_stc[i].tag = target;
			new_corp.sentences.push_back(new_stc);
		}

	// Change from tag X to Y when the tag two before is Z:
	if(id >= RL_2BEFORE * RULE_RANGE && id < (RL_2BEFORE+1) * RULE_RANGE)
		for(unsigned int si = 0; si < corp->sentences.size(); si++) {
			vector<TaggedWord> new_stc(corp->sentences[si]); // make a copy
			for(unsigned int i = 2; i < corp->sentences[si].size(); i++)
				if(corp->sentences[si][i-2].tag == cue1
						&& corp->sentences[si][i].tag == alter_tag)
					new_stc[i].tag = target;
			new_corp.sentences.push_back(new_stc);
		}

	// Change from tag X to Y when the tag two after is Z:
	if(id >= RL_2AFTER * RULE_RANGE && id < (RL_2AFTER+1) * RULE_RANGE)
		for(unsigned int si = 0; si < corp->sentences.size(); si++) {
			vector<TaggedWord> new_stc(corp->sentences[si]); // make a copy
			for(unsigned int i = 0; i+2 < corp->sentences[si].size(); i++)
				if(corp->sentences[si][i+2].tag == cue1
						&& corp->sentences[si][i].tag == alter_tag)
					new_stc[i].tag = target;
			new_corp.sentences.push_back(new_stc);
		}


	// Change from tag X to Y when one of two tags before is Z:
	if(id >= RL_ONE_OF_2BEFORE * RULE_RANGE && id < (RL_ONE_OF_2BEFORE+1) * RULE_RANGE)
		for(unsigned int si = 0; si < corp->sentences.size(); si++) {
			vector<TaggedWord> new_stc(corp->sentences[si]); // make a copy
			for(unsigned int i = 2; i < corp->sentences[si].size(); i++)
				if((corp->sentences[si][i-1].tag == cue1
					|| corp->sentences[si][i-2].tag == cue1)
						&& corp->sentences[si][i].tag == alter_tag)
					new_stc[i].tag = target;
			new_corp.sentences.push_back(new_stc);
		}

	// Change from tag X to Y when one of two tags after is Z:
	if(id >= RL_ONE_OF_2AFTER * RULE_RANGE && id < (RL_ONE_OF_2AFTER+1) * RULE_RANGE)
		for(unsigned int si = 0; si < corp->sentences.size(); si++) {
			vector<TaggedWord> new_stc(corp->sentences[si]); // make a copy
			for(unsigned int i = 0; i+2 < corp->sentences[si].size(); i++)
				if((corp->sentences[si][i+1].tag == cue1
					|| corp->sentences[si][i+2].tag == cue1)
						&& corp->sentences[si][i].tag == alter_tag)
					new_stc[i].tag = target;
			new_corp.sentences.push_back(new_stc);
		}

	// Change from tag X to Y when one of three tags before is Z:
	if(id >= RL_ONE_OF_3BEFORE * RULE_RANGE && id < (RL_ONE_OF_3BEFORE+1) * RULE_RANGE)
		for(unsigned int si = 0; si < corp->sentences.size(); si++) {
			vector<TaggedWord> new_stc(corp->sentences[si]); // make a copy
			for(unsigned int i = 3; i < corp->sentences[si].size(); i++)
				if((corp->sentences[si][i-1].tag == cue1
					|| corp->sentences[si][i-2].tag == cue1
					|| corp->sentences[si][i-3].tag == cue1)
						&& corp->sentences[si][i].tag == alter_tag)
					new_stc[i].tag = target;
			new_corp.sentences.push_back(new_stc);
		}

	// Change from tag X to Y when one of three tags after is Z:
	if(id >= RL_ONE_OF_3AFTER * RULE_RANGE && id < (RL_ONE_OF_3AFTER+1) * RULE_RANGE)
		for(unsigned int si = 0; si < corp->sentences.size(); si++) {
			vector<TaggedWord> new_stc(corp->sentences[si]); // make a copy
			for(unsigned int i = 0; i+3 < corp->sentences[si].size(); i++)
				if((corp->sentences[si][i+1].tag == cue1
					|| corp->sentences[si][i+2].tag == cue1
					|| corp->sentences[si][i+3].tag == cue1)
						&& corp->sentences[si][i].tag == alter_tag)
					new_stc[i].tag = target;
			new_corp.sentences.push_back(new_stc);
		}

	// Change from tag X to Y when preceding tag is W and following Z:
	if(id >= EXTRL_PRECEDING_AND_FOLLOWING * EXT_RULE_RANGE &&
			id < (EXTRL_PRECEDING_AND_FOLLOWING+1) * EXT_RULE_RANGE)
		for(unsigned int si = 0; si < corp->sentences.size(); si++) {
			vector<TaggedWord> new_stc(corp->sentences[si]); // make a copy
			for(unsigned int i = 1; i+1 < corp->sentences[si].size(); i++)
				if((corp->sentences[si][i-1].tag == cue1
					&& corp->sentences[si][i+1].tag == cue2)
						&& corp->sentences[si][i].tag == alter_tag)
					new_stc[i].tag = target;
			new_corp.sentences.push_back(new_stc);
		}

	// Change from tag X to Y when preceding tag is W and two before Z:
	if(id >= EXTRL_1_AND_2_BEFORE * EXT_RULE_RANGE &&
			id < (EXTRL_1_AND_2_BEFORE+1) * EXT_RULE_RANGE)
		for(unsigned int si = 0; si < corp->sentences.size(); si++) {
			vector<TaggedWord> new_stc(corp->sentences[si]); // make a copy
			for(unsigned int i = 2; i < corp->sentences[si].size(); i++)
				if((corp->sentences[si][i-1].tag == cue1
					&& corp->sentences[si][i-2].tag == cue2)
						&& corp->sentences[si][i].tag == alter_tag)
					new_stc[i].tag = target;
			new_corp.sentences.push_back(new_stc);
		}

	// Change from tag X to Y when following tag is W and two after Z:
	if(id >= EXTRL_1_AND_2_AFTER * EXT_RULE_RANGE &&
			id < (EXTRL_1_AND_2_AFTER+1) * EXT_RULE_RANGE)
		for(unsigned int si = 0; si < corp->sentences.size(); si++) {
			vector<TaggedWord> new_stc(corp->sentences[si]); // make a copy
			for(unsigned int i = 0; i+2 < corp->sentences[si].size(); i++)
				if((corp->sentences[si][i+1].tag == cue1
					&& corp->sentences[si][i+2].tag == cue2)
						&& corp->sentences[si][i].tag == alter_tag)
					new_stc[i].tag = target;
			new_corp.sentences.push_back(new_stc);
		}

	return new_corp;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2b0, %rsp            # imm = 0x2B0
movq %rdi, -0x198(%rbp)
movq %rdi, %rax
movq %rax, -0x1a8(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x1a0(%rbp)
movb $0x0, -0x19(%rbp)
callq 0x7e90
movq -0x18(%rbp), %rdi
callq 0x7dd0
movq -0x198(%rbp), %rdi
movq %rax, %rsi
callq 0x83e0
jmp 0x55e6
movq -0x1a0(%rbp), %rax
cmpq $0x767ed6b, 0x80(%rax) # imm = 0x767ED6B
jge 0x5792
movl $0x0, -0x30(%rbp)
movl -0x30(%rbp), %eax
movq %rax, -0x1b0(%rbp)
movq -0x18(%rbp), %rdi
callq 0x7dd0
movq %rax, %rcx
movq -0x1b0(%rbp), %rax
cmpq %rcx, %rax
jae 0x5790
movq -0x18(%rbp), %rdi
movl -0x30(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rsi
leaq -0x48(%rbp), %rdi
callq 0x9010
jmp 0x5647
movl $0x1, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
movq %rax, -0x1b8(%rbp)
movq -0x18(%rbp), %rdi
movl -0x30(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
callq 0x7e20
movq %rax, %rcx
movq -0x1b8(%rbp), %rax
cmpq %rcx, %rax
jae 0x5767
movq -0x18(%rbp), %rdi
movl -0x30(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
movl -0x4c(%rbp), %eax
subl $0x1, %eax
movl %eax, %eax
movl %eax, %esi
callq 0x7e70
movq -0x1a0(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
callq 0x9100
testb $0x1, %al
jne 0x56bd
jmp 0x5757
movq -0x18(%rbp), %rdi
movl -0x30(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
movl -0x4c(%rbp), %eax
movl %eax, %esi
callq 0x7e70
movq -0x1a0(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
addq $0x40, %rsi
callq 0x9100
testb $0x1, %al
jne 0x56f5
jmp 0x5757
movq -0x1a0(%rbp), %rax
addq $0x60, %rax
movq %rax, -0x1c0(%rbp)
movl -0x4c(%rbp), %eax
movl %eax, %esi
leaq -0x48(%rbp), %rdi
callq 0x7e70
movq -0x1c0(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
callq 0x3040
jmp 0x572a
jmp 0x5757
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x6d39
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x7fc0
jmp 0x6d39
jmp 0x5759
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x564e
movq -0x198(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x9190
jmp 0x5779
leaq -0x48(%rbp), %rdi
callq 0x7fc0
movl -0x30(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30(%rbp)
jmp 0x5605
jmp 0x5792
movq -0x1a0(%rbp), %rax
cmpq $0x767ed6b, 0x80(%rax) # imm = 0x767ED6B
jl 0x594a
movq -0x1a0(%rbp), %rax
cmpq $0xecfdad6, 0x80(%rax) # imm = 0xECFDAD6
jge 0x594a
movl $0x0, -0x50(%rbp)
movl -0x50(%rbp), %eax
movq %rax, -0x1c8(%rbp)
movq -0x18(%rbp), %rdi
callq 0x7dd0
movq %rax, %rcx
movq -0x1c8(%rbp), %rax
cmpq %rcx, %rax
jae 0x5948
movq -0x18(%rbp), %rdi
movl -0x50(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rsi
leaq -0x68(%rbp), %rdi
callq 0x9010
jmp 0x580b
movl $0x0, -0x6c(%rbp)
movl -0x6c(%rbp), %eax
addl $0x1, %eax
movl %eax, %eax
movq %rax, -0x1d0(%rbp)
movq -0x18(%rbp), %rdi
movl -0x50(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
callq 0x7e20
movq %rax, %rcx
movq -0x1d0(%rbp), %rax
cmpq %rcx, %rax
jae 0x591f
movq -0x18(%rbp), %rdi
movl -0x50(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
movl -0x6c(%rbp), %eax
addl $0x1, %eax
movl %eax, %eax
movl %eax, %esi
callq 0x7e70
movq -0x1a0(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
callq 0x9100
testb $0x1, %al
jne 0x5886
jmp 0x590f
movq -0x18(%rbp), %rdi
movl -0x50(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
movl -0x6c(%rbp), %eax
movl %eax, %esi
callq 0x7e70
movq -0x1a0(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
addq $0x40, %rsi
callq 0x9100
testb $0x1, %al
jne 0x58be
jmp 0x590f
movq -0x1a0(%rbp), %rax
addq $0x60, %rax
movq %rax, -0x1d8(%rbp)
movl -0x6c(%rbp), %eax
movl %eax, %esi
leaq -0x68(%rbp), %rdi
callq 0x7e70
movq -0x1d8(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
callq 0x3040
jmp 0x58f3
jmp 0x590f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x7fc0
jmp 0x6d39
jmp 0x5911
movl -0x6c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x6c(%rbp)
jmp 0x5812
movq -0x198(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x9190
jmp 0x5931
leaq -0x68(%rbp), %rdi
callq 0x7fc0
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x57c9
jmp 0x594a
movq -0x1a0(%rbp), %rax
cmpq $0xecfdad6, 0x80(%rax) # imm = 0xECFDAD6
jl 0x5b21
movq -0x1a0(%rbp), %rax
cmpq $0x1637c841, 0x80(%rax) # imm = 0x1637C841
jge 0x5b21
movl $0x0, -0x70(%rbp)
movl -0x70(%rbp), %eax
movq %rax, -0x1e0(%rbp)
movq -0x18(%rbp), %rdi
callq 0x7dd0
movq %rax, %rcx
movq -0x1e0(%rbp), %rax
cmpq %rcx, %rax
jae 0x5b1f
movq -0x18(%rbp), %rdi
movl -0x70(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rsi
leaq -0x88(%rbp), %rdi
callq 0x9010
jmp 0x59c6
movl $0x2, -0x8c(%rbp)
movl -0x8c(%rbp), %eax
movq %rax, -0x1e8(%rbp)
movq -0x18(%rbp), %rdi
movl -0x70(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
callq 0x7e20
movq %rax, %rcx
movq -0x1e8(%rbp), %rax
cmpq %rcx, %rax
jae 0x5af0
movq -0x18(%rbp), %rdi
movl -0x70(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
movl -0x8c(%rbp), %eax
subl $0x2, %eax
movl %eax, %eax
movl %eax, %esi
callq 0x7e70
movq -0x1a0(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
callq 0x9100
testb $0x1, %al
jne 0x5a45
jmp 0x5ada
movq -0x18(%rbp), %rdi
movl -0x70(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
movl -0x8c(%rbp), %eax
movl %eax, %esi
callq 0x7e70
movq -0x1a0(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
addq $0x40, %rsi
callq 0x9100
testb $0x1, %al
jne 0x5a80
jmp 0x5ada
movq -0x1a0(%rbp), %rax
addq $0x60, %rax
movq %rax, -0x1f0(%rbp)
movl -0x8c(%rbp), %eax
movl %eax, %esi
leaq -0x88(%rbp), %rdi
callq 0x7e70
movq -0x1f0(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
callq 0x3040
jmp 0x5abb
jmp 0x5ada
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x7fc0
jmp 0x6d39
jmp 0x5adc
movl -0x8c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8c(%rbp)
jmp 0x59d0
movq -0x198(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x9190
jmp 0x5b05
leaq -0x88(%rbp), %rdi
callq 0x7fc0
movl -0x70(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x70(%rbp)
jmp 0x5981
jmp 0x5b21
movq -0x1a0(%rbp), %rax
cmpq $0x1637c841, 0x80(%rax) # imm = 0x1637C841
jl 0x5d15
movq -0x1a0(%rbp), %rax
cmpq $0x1d9fb5ac, 0x80(%rax) # imm = 0x1D9FB5AC
jge 0x5d15
movl $0x0, -0x90(%rbp)
movl -0x90(%rbp), %eax
movq %rax, -0x1f8(%rbp)
movq -0x18(%rbp), %rdi
callq 0x7dd0
movq %rax, %rcx
movq -0x1f8(%rbp), %rax
cmpq %rcx, %rax
jae 0x5d13
movq -0x18(%rbp), %rdi
movl -0x90(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rsi
leaq -0xa8(%rbp), %rdi
callq 0x9010
jmp 0x5ba6
movl $0x0, -0xac(%rbp)
movl -0xac(%rbp), %eax
addl $0x2, %eax
movl %eax, %eax
movq %rax, -0x200(%rbp)
movq -0x18(%rbp), %rdi
movl -0x90(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
callq 0x7e20
movq %rax, %rcx
movq -0x200(%rbp), %rax
cmpq %rcx, %rax
jae 0x5cde
movq -0x18(%rbp), %rdi
movl -0x90(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
movl -0xac(%rbp), %eax
addl $0x2, %eax
movl %eax, %eax
movl %eax, %esi
callq 0x7e70
movq -0x1a0(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
callq 0x9100
testb $0x1, %al
jne 0x5c30
jmp 0x5cc8
movq -0x18(%rbp), %rdi
movl -0x90(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
movl -0xac(%rbp), %eax
movl %eax, %esi
callq 0x7e70
movq -0x1a0(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
addq $0x40, %rsi
callq 0x9100
testb $0x1, %al
jne 0x5c6e
jmp 0x5cc8
movq -0x1a0(%rbp), %rax
addq $0x60, %rax
movq %rax, -0x208(%rbp)
movl -0xac(%rbp), %eax
movl %eax, %esi
leaq -0xa8(%rbp), %rdi
callq 0x7e70
movq -0x208(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
callq 0x3040
jmp 0x5ca9
jmp 0x5cc8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x7fc0
jmp 0x6d39
jmp 0x5cca
movl -0xac(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xac(%rbp)
jmp 0x5bb0
movq -0x198(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x9190
jmp 0x5cf3
leaq -0xa8(%rbp), %rdi
callq 0x7fc0
movl -0x90(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x90(%rbp)
jmp 0x5b5b
jmp 0x5d15
movq -0x1a0(%rbp), %rax
cmpq $0x1d9fb5ac, 0x80(%rax) # imm = 0x1D9FB5AC
jl 0x5f41
movq -0x1a0(%rbp), %rax
cmpq $0x2507a317, 0x80(%rax) # imm = 0x2507A317
jge 0x5f41
movl $0x0, -0xb0(%rbp)
movl -0xb0(%rbp), %eax
movq %rax, -0x210(%rbp)
movq -0x18(%rbp), %rdi
callq 0x7dd0
movq %rax, %rcx
movq -0x210(%rbp), %rax
cmpq %rcx, %rax
jae 0x5f3f
movq -0x18(%rbp), %rdi
movl -0xb0(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rsi
leaq -0xc8(%rbp), %rdi
callq 0x9010
jmp 0x5d9a
movl $0x2, -0xcc(%rbp)
movl -0xcc(%rbp), %eax
movq %rax, -0x218(%rbp)
movq -0x18(%rbp), %rdi
movl -0xb0(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
callq 0x7e20
movq %rax, %rcx
movq -0x218(%rbp), %rax
cmpq %rcx, %rax
jae 0x5f0a
movq -0x18(%rbp), %rdi
movl -0xb0(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
movl -0xcc(%rbp), %eax
subl $0x1, %eax
movl %eax, %eax
movl %eax, %esi
callq 0x7e70
movq -0x1a0(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
callq 0x9100
testb $0x1, %al
jne 0x5e5c
movq -0x18(%rbp), %rdi
movl -0xb0(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
movl -0xcc(%rbp), %eax
subl $0x2, %eax
movl %eax, %eax
movl %eax, %esi
callq 0x7e70
movq -0x1a0(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
callq 0x9100
testb $0x1, %al
jne 0x5e5c
jmp 0x5ef4
movq -0x18(%rbp), %rdi
movl -0xb0(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
movl -0xcc(%rbp), %eax
movl %eax, %esi
callq 0x7e70
movq -0x1a0(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
addq $0x40, %rsi
callq 0x9100
testb $0x1, %al
jne 0x5e9a
jmp 0x5ef4
movq -0x1a0(%rbp), %rax
addq $0x60, %rax
movq %rax, -0x220(%rbp)
movl -0xcc(%rbp), %eax
movl %eax, %esi
leaq -0xc8(%rbp), %rdi
callq 0x7e70
movq -0x220(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
callq 0x3040
jmp 0x5ed5
jmp 0x5ef4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0x7fc0
jmp 0x6d39
jmp 0x5ef6
movl -0xcc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xcc(%rbp)
jmp 0x5da4
movq -0x198(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0x9190
jmp 0x5f1f
leaq -0xc8(%rbp), %rdi
callq 0x7fc0
movl -0xb0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xb0(%rbp)
jmp 0x5d4f
jmp 0x5f41
movq -0x1a0(%rbp), %rax
cmpq $0x2507a317, 0x80(%rax) # imm = 0x2507A317
jl 0x6172
movq -0x1a0(%rbp), %rax
cmpq $0x2c6f9082, 0x80(%rax) # imm = 0x2C6F9082
jge 0x6172
movl $0x0, -0xd0(%rbp)
movl -0xd0(%rbp), %eax
movq %rax, -0x228(%rbp)
movq -0x18(%rbp), %rdi
callq 0x7dd0
movq %rax, %rcx
movq -0x228(%rbp), %rax
cmpq %rcx, %rax
jae 0x6170
movq -0x18(%rbp), %rdi
movl -0xd0(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rsi
leaq -0xe8(%rbp), %rdi
callq 0x9010
jmp 0x5fc6
movl $0x0, -0xec(%rbp)
movl -0xec(%rbp), %eax
addl $0x2, %eax
movl %eax, %eax
movq %rax, -0x230(%rbp)
movq -0x18(%rbp), %rdi
movl -0xd0(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
callq 0x7e20
movq %rax, %rcx
movq -0x230(%rbp), %rax
cmpq %rcx, %rax
jae 0x613b
movq -0x18(%rbp), %rdi
movl -0xd0(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
movl -0xec(%rbp), %eax
addl $0x1, %eax
movl %eax, %eax
movl %eax, %esi
callq 0x7e70
movq -0x1a0(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
callq 0x9100
testb $0x1, %al
jne 0x608d
movq -0x18(%rbp), %rdi
movl -0xd0(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
movl -0xec(%rbp), %eax
addl $0x2, %eax
movl %eax, %eax
movl %eax, %esi
callq 0x7e70
movq -0x1a0(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
callq 0x9100
testb $0x1, %al
jne 0x608d
jmp 0x6125
movq -0x18(%rbp), %rdi
movl -0xd0(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
movl -0xec(%rbp), %eax
movl %eax, %esi
callq 0x7e70
movq -0x1a0(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
addq $0x40, %rsi
callq 0x9100
testb $0x1, %al
jne 0x60cb
jmp 0x6125
movq -0x1a0(%rbp), %rax
addq $0x60, %rax
movq %rax, -0x238(%rbp)
movl -0xec(%rbp), %eax
movl %eax, %esi
leaq -0xe8(%rbp), %rdi
callq 0x7e70
movq -0x238(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
callq 0x3040
jmp 0x6106
jmp 0x6125
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0xe8(%rbp), %rdi
callq 0x7fc0
jmp 0x6d39
jmp 0x6127
movl -0xec(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xec(%rbp)
jmp 0x5fd0
movq -0x198(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x9190
jmp 0x6150
leaq -0xe8(%rbp), %rdi
callq 0x7fc0
movl -0xd0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xd0(%rbp)
jmp 0x5f7b
jmp 0x6172
movq -0x1a0(%rbp), %rax
cmpq $0x2c6f9082, 0x80(%rax) # imm = 0x2C6F9082
jl 0x63db
movq -0x1a0(%rbp), %rax
cmpq $0x33d77ded, 0x80(%rax) # imm = 0x33D77DED
jge 0x63db
movl $0x0, -0xf0(%rbp)
movl -0xf0(%rbp), %eax
movq %rax, -0x240(%rbp)
movq -0x18(%rbp), %rdi
callq 0x7dd0
movq %rax, %rcx
movq -0x240(%rbp), %rax
cmpq %rcx, %rax
jae 0x63d9
movq -0x18(%rbp), %rdi
movl -0xf0(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rsi
leaq -0x108(%rbp), %rdi
callq 0x9010
jmp 0x61f7
movl $0x3, -0x10c(%rbp)
movl -0x10c(%rbp), %eax
movq %rax, -0x248(%rbp)
movq -0x18(%rbp), %rdi
movl -0xf0(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
callq 0x7e20
movq %rax, %rcx
movq -0x248(%rbp), %rax
cmpq %rcx, %rax
jae 0x63a4
movq -0x18(%rbp), %rdi
movl -0xf0(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
movl -0x10c(%rbp), %eax
subl $0x1, %eax
movl %eax, %eax
movl %eax, %esi
callq 0x7e70
movq -0x1a0(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
callq 0x9100
testb $0x1, %al
jne 0x62f6
movq -0x18(%rbp), %rdi
movl -0xf0(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
movl -0x10c(%rbp), %eax
subl $0x2, %eax
movl %eax, %eax
movl %eax, %esi
callq 0x7e70
movq -0x1a0(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
callq 0x9100
testb $0x1, %al
jne 0x62f6
movq -0x18(%rbp), %rdi
movl -0xf0(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
movl -0x10c(%rbp), %eax
subl $0x3, %eax
movl %eax, %eax
movl %eax, %esi
callq 0x7e70
movq -0x1a0(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
callq 0x9100
testb $0x1, %al
jne 0x62f6
jmp 0x638e
movq -0x18(%rbp), %rdi
movl -0xf0(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
movl -0x10c(%rbp), %eax
movl %eax, %esi
callq 0x7e70
movq -0x1a0(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
addq $0x40, %rsi
callq 0x9100
testb $0x1, %al
jne 0x6334
jmp 0x638e
movq -0x1a0(%rbp), %rax
addq $0x60, %rax
movq %rax, -0x250(%rbp)
movl -0x10c(%rbp), %eax
movl %eax, %esi
leaq -0x108(%rbp), %rdi
callq 0x7e70
movq -0x250(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
callq 0x3040
jmp 0x636f
jmp 0x638e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x108(%rbp), %rdi
callq 0x7fc0
jmp 0x6d39
jmp 0x6390
movl -0x10c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10c(%rbp)
jmp 0x6201
movq -0x198(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x9190
jmp 0x63b9
leaq -0x108(%rbp), %rdi
callq 0x7fc0
movl -0xf0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xf0(%rbp)
jmp 0x61ac
jmp 0x63db
movq -0x1a0(%rbp), %rax
cmpq $0x33d77ded, 0x80(%rax) # imm = 0x33D77DED
jl 0x6649
movq -0x1a0(%rbp), %rax
cmpq $0x3b3f6b58, 0x80(%rax) # imm = 0x3B3F6B58
jge 0x6649
movl $0x0, -0x110(%rbp)
movl -0x110(%rbp), %eax
movq %rax, -0x258(%rbp)
movq -0x18(%rbp), %rdi
callq 0x7dd0
movq %rax, %rcx
movq -0x258(%rbp), %rax
cmpq %rcx, %rax
jae 0x6647
movq -0x18(%rbp), %rdi
movl -0x110(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rsi
leaq -0x128(%rbp), %rdi
callq 0x9010
jmp 0x6460
movl $0x0, -0x12c(%rbp)
movl -0x12c(%rbp), %eax
addl $0x3, %eax
movl %eax, %eax
movq %rax, -0x260(%rbp)
movq -0x18(%rbp), %rdi
movl -0x110(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
callq 0x7e20
movq %rax, %rcx
movq -0x260(%rbp), %rax
cmpq %rcx, %rax
jae 0x6612
movq -0x18(%rbp), %rdi
movl -0x110(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
movl -0x12c(%rbp), %eax
addl $0x1, %eax
movl %eax, %eax
movl %eax, %esi
callq 0x7e70
movq -0x1a0(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
callq 0x9100
testb $0x1, %al
jne 0x6564
movq -0x18(%rbp), %rdi
movl -0x110(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
movl -0x12c(%rbp), %eax
addl $0x2, %eax
movl %eax, %eax
movl %eax, %esi
callq 0x7e70
movq -0x1a0(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
callq 0x9100
testb $0x1, %al
jne 0x6564
movq -0x18(%rbp), %rdi
movl -0x110(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
movl -0x12c(%rbp), %eax
addl $0x3, %eax
movl %eax, %eax
movl %eax, %esi
callq 0x7e70
movq -0x1a0(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
callq 0x9100
testb $0x1, %al
jne 0x6564
jmp 0x65fc
movq -0x18(%rbp), %rdi
movl -0x110(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
movl -0x12c(%rbp), %eax
movl %eax, %esi
callq 0x7e70
movq -0x1a0(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
addq $0x40, %rsi
callq 0x9100
testb $0x1, %al
jne 0x65a2
jmp 0x65fc
movq -0x1a0(%rbp), %rax
addq $0x60, %rax
movq %rax, -0x268(%rbp)
movl -0x12c(%rbp), %eax
movl %eax, %esi
leaq -0x128(%rbp), %rdi
callq 0x7e70
movq -0x268(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
callq 0x3040
jmp 0x65dd
jmp 0x65fc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x128(%rbp), %rdi
callq 0x7fc0
jmp 0x6d39
jmp 0x65fe
movl -0x12c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x12c(%rbp)
jmp 0x646a
movq -0x198(%rbp), %rdi
leaq -0x128(%rbp), %rsi
callq 0x9190
jmp 0x6627
leaq -0x128(%rbp), %rdi
callq 0x7fc0
movl -0x110(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x110(%rbp)
jmp 0x6415
jmp 0x6649
movq -0x1a0(%rbp), %rax
movabsq $0xe6f93c791, %rcx      # imm = 0xE6F93C791
cmpq %rcx, 0x80(%rax)
jl 0x688f
movq -0x1a0(%rbp), %rax
movabsq $0x1cdf278f22, %rcx     # imm = 0x1CDF278F22
cmpq %rcx, 0x80(%rax)
jge 0x688f
movl $0x0, -0x130(%rbp)
movl -0x130(%rbp), %eax
movq %rax, -0x270(%rbp)
movq -0x18(%rbp), %rdi
callq 0x7dd0
movq %rax, %rcx
movq -0x270(%rbp), %rax
cmpq %rcx, %rax
jae 0x688d
movq -0x18(%rbp), %rdi
movl -0x130(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rsi
leaq -0x148(%rbp), %rdi
callq 0x9010
jmp 0x66da
movl $0x1, -0x14c(%rbp)
movl -0x14c(%rbp), %eax
addl $0x1, %eax
movl %eax, %eax
movq %rax, -0x278(%rbp)
movq -0x18(%rbp), %rdi
movl -0x130(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
callq 0x7e20
movq %rax, %rcx
movq -0x278(%rbp), %rax
cmpq %rcx, %rax
jae 0x6858
movq -0x18(%rbp), %rdi
movl -0x130(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
movl -0x14c(%rbp), %eax
subl $0x1, %eax
movl %eax, %eax
movl %eax, %esi
callq 0x7e70
movq -0x1a0(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
callq 0x9100
testb $0x1, %al
jne 0x6764
jmp 0x6842
movq -0x18(%rbp), %rdi
movl -0x130(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
movl -0x14c(%rbp), %eax
addl $0x1, %eax
movl %eax, %eax
movl %eax, %esi
callq 0x7e70
movq -0x1a0(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
addq $0x20, %rsi
callq 0x9100
testb $0x1, %al
jne 0x67aa
jmp 0x6842
movq -0x18(%rbp), %rdi
movl -0x130(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
movl -0x14c(%rbp), %eax
movl %eax, %esi
callq 0x7e70
movq -0x1a0(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
addq $0x40, %rsi
callq 0x9100
testb $0x1, %al
jne 0x67e8
jmp 0x6842
movq -0x1a0(%rbp), %rax
addq $0x60, %rax
movq %rax, -0x280(%rbp)
movl -0x14c(%rbp), %eax
movl %eax, %esi
leaq -0x148(%rbp), %rdi
callq 0x7e70
movq -0x280(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
callq 0x3040
jmp 0x6823
jmp 0x6842
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x148(%rbp), %rdi
callq 0x7fc0
jmp 0x6d39
jmp 0x6844
movl -0x14c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14c(%rbp)
jmp 0x66e4
movq -0x198(%rbp), %rdi
leaq -0x148(%rbp), %rsi
callq 0x9190
jmp 0x686d
leaq -0x148(%rbp), %rdi
callq 0x7fc0
movl -0x130(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x130(%rbp)
jmp 0x668f
jmp 0x688f
movq -0x1a0(%rbp), %rax
movabsq $0x1cdf278f22, %rcx     # imm = 0x1CDF278F22
cmpq %rcx, 0x80(%rax)
jl 0x6ad0
movq -0x1a0(%rbp), %rax
movabsq $0x2b4ebb56b3, %rcx     # imm = 0x2B4EBB56B3
cmpq %rcx, 0x80(%rax)
jge 0x6ad0
movl $0x0, -0x150(%rbp)
movl -0x150(%rbp), %eax
movq %rax, -0x288(%rbp)
movq -0x18(%rbp), %rdi
callq 0x7dd0
movq %rax, %rcx
movq -0x288(%rbp), %rax
cmpq %rcx, %rax
jae 0x6ace
movq -0x18(%rbp), %rdi
movl -0x150(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rsi
leaq -0x168(%rbp), %rdi
callq 0x9010
jmp 0x6920
movl $0x2, -0x16c(%rbp)
movl -0x16c(%rbp), %eax
movq %rax, -0x290(%rbp)
movq -0x18(%rbp), %rdi
movl -0x150(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
callq 0x7e20
movq %rax, %rcx
movq -0x290(%rbp), %rax
cmpq %rcx, %rax
jae 0x6a99
movq -0x18(%rbp), %rdi
movl -0x150(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
movl -0x16c(%rbp), %eax
subl $0x1, %eax
movl %eax, %eax
movl %eax, %esi
callq 0x7e70
movq -0x1a0(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
callq 0x9100
testb $0x1, %al
jne 0x69a5
jmp 0x6a83
movq -0x18(%rbp), %rdi
movl -0x150(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
movl -0x16c(%rbp), %eax
subl $0x2, %eax
movl %eax, %eax
movl %eax, %esi
callq 0x7e70
movq -0x1a0(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
addq $0x20, %rsi
callq 0x9100
testb $0x1, %al
jne 0x69eb
jmp 0x6a83
movq -0x18(%rbp), %rdi
movl -0x150(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
movl -0x16c(%rbp), %eax
movl %eax, %esi
callq 0x7e70
movq -0x1a0(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
addq $0x40, %rsi
callq 0x9100
testb $0x1, %al
jne 0x6a29
jmp 0x6a83
movq -0x1a0(%rbp), %rax
addq $0x60, %rax
movq %rax, -0x298(%rbp)
movl -0x16c(%rbp), %eax
movl %eax, %esi
leaq -0x168(%rbp), %rdi
callq 0x7e70
movq -0x298(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
callq 0x3040
jmp 0x6a64
jmp 0x6a83
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x168(%rbp), %rdi
callq 0x7fc0
jmp 0x6d39
jmp 0x6a85
movl -0x16c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x16c(%rbp)
jmp 0x692a
movq -0x198(%rbp), %rdi
leaq -0x168(%rbp), %rsi
callq 0x9190
jmp 0x6aae
leaq -0x168(%rbp), %rdi
callq 0x7fc0
movl -0x150(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x150(%rbp)
jmp 0x68d5
jmp 0x6ad0
movq -0x1a0(%rbp), %rax
movabsq $0x2b4ebb56b3, %rcx     # imm = 0x2B4EBB56B3
cmpq %rcx, 0x80(%rax)
jl 0x6d13
movq -0x1a0(%rbp), %rax
movabsq $0x39be4f1e44, %rcx     # imm = 0x39BE4F1E44
cmpq %rcx, 0x80(%rax)
jge 0x6d13
movl $0x0, -0x170(%rbp)
movl -0x170(%rbp), %eax
movq %rax, -0x2a0(%rbp)
movq -0x18(%rbp), %rdi
callq 0x7dd0
movq %rax, %rcx
movq -0x2a0(%rbp), %rax
cmpq %rcx, %rax
jae 0x6d11
movq -0x18(%rbp), %rdi
movl -0x170(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rsi
leaq -0x188(%rbp), %rdi
callq 0x9010
jmp 0x6b61
movl $0x0, -0x18c(%rbp)
movl -0x18c(%rbp), %eax
addl $0x2, %eax
movl %eax, %eax
movq %rax, -0x2a8(%rbp)
movq -0x18(%rbp), %rdi
movl -0x170(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
callq 0x7e20
movq %rax, %rcx
movq -0x2a8(%rbp), %rax
cmpq %rcx, %rax
jae 0x6cdc
movq -0x18(%rbp), %rdi
movl -0x170(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
movl -0x18c(%rbp), %eax
addl $0x1, %eax
movl %eax, %eax
movl %eax, %esi
callq 0x7e70
movq -0x1a0(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
callq 0x9100
testb $0x1, %al
jne 0x6beb
jmp 0x6cc6
movq -0x18(%rbp), %rdi
movl -0x170(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
movl -0x18c(%rbp), %eax
addl $0x2, %eax
movl %eax, %eax
movl %eax, %esi
callq 0x7e70
movq -0x1a0(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
addq $0x20, %rsi
callq 0x9100
testb $0x1, %al
jne 0x6c31
jmp 0x6cc6
movq -0x18(%rbp), %rdi
movl -0x170(%rbp), %eax
movl %eax, %esi
callq 0x7e00
movq %rax, %rdi
movl -0x18c(%rbp), %eax
movl %eax, %esi
callq 0x7e70
movq -0x1a0(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
addq $0x40, %rsi
callq 0x9100
testb $0x1, %al
jne 0x6c6f
jmp 0x6cc6
movq -0x1a0(%rbp), %rax
addq $0x60, %rax
movq %rax, -0x2b0(%rbp)
movl -0x18c(%rbp), %eax
movl %eax, %esi
leaq -0x188(%rbp), %rdi
callq 0x7e70
movq -0x2b0(%rbp), %rsi
movq %rax, %rdi
addq $0x20, %rdi
callq 0x3040
jmp 0x6caa
jmp 0x6cc6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x188(%rbp), %rdi
callq 0x7fc0
jmp 0x6d39
jmp 0x6cc8
movl -0x18c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18c(%rbp)
jmp 0x6b6b
movq -0x198(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0x9190
jmp 0x6cf1
leaq -0x188(%rbp), %rdi
callq 0x7fc0
movl -0x170(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x170(%rbp)
jmp 0x6b16
jmp 0x6d13
movb $0x1, -0x19(%rbp)
testb $0x1, -0x19(%rbp)
jne 0x6d29
movq -0x198(%rbp), %rdi
callq 0x8300
movq -0x1a8(%rbp), %rax
addq $0x2b0, %rsp            # imm = 0x2B0
popq %rbp
retq
movq -0x198(%rbp), %rdi
callq 0x8300
movq -0x28(%rbp), %rdi
callq 0x3400
nop