a6ff5b:	3d 00 08 00 00       	cmp    $0x800,%eax
a6ff60:	74 49                	je     0xa6ffab
a6ff62:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
a6ff66:	8b 75 10             	mov    0x10(%ebp),%esi
a6ff69:	75 04                	jne    0xa6ff6f
a6ff6b:	85 f6                	test   %esi,%esi
a6ff6d:	7f 3c                	jg     0xa6ffab
a6ff6f:	85 f6                	test   %esi,%esi
a6ff71:	78 38                	js     0xa6ffab
a6ff73:	50                   	push   %eax
a6ff74:	e8 22 4f 9c ff       	call   0x434e9b
a6ff79:	59                   	pop    %ecx
a6ff7a:	85 c0                	test   %eax,%eax
a6ff7c:	78 2d                	js     0xa6ffab
a6ff7e:	8b 1c c5 9c ba c7 00 	mov    0xc7ba9c(,%eax,8),%ebx
a6ff85:	6a 55                	push   $0x55
a6ff87:	53                   	push   %ebx
a6ff88:	e8 c5 b6 9b ff       	call   0x42b652
a6ff8d:	8b f8                	mov    %eax,%edi
a6ff8f:	59                   	pop    %ecx
a6ff90:	59                   	pop    %ecx
a6ff91:	85 f6                	test   %esi,%esi
a6ff93:	7e 11                	jle    0xa6ffa6
a6ff95:	3b fe                	cmp    %esi,%edi
a6ff97:	7d 12                	jge    0xa6ffab
a6ff99:	53                   	push   %ebx
a6ff9a:	56                   	push   %esi
a6ff9b:	ff 75 0c             	push   0xc(%ebp)
a6ff9e:	e8 c8 26 9a ff       	call   0x41266b
a6ffa3:	83 c4 0c             	add    $0xc,%esp
a6ffa6:	8d 47 01             	lea    0x1(%edi),%eax
a6ffa9:	eb 02                	jmp    0xa6ffad
a6ffab:	33 c0                	xor    %eax,%eax
a6ffad:	5f                   	pop    %edi
a6ffae:	5e                   	pop    %esi
a6ffaf:	5b                   	pop    %ebx
a6ffb0:	5d                   	pop    %ebp
a6ffb1:	c3                   	ret
a6ffb2:	cc                   	int3
a6ffb3:	cc                   	int3
a6ffb4:	cc                   	int3
a6ffb5:	cc                   	int3
a6ffb6:	cc                   	int3
a6ffb7:	cc                   	int3
a6ffb8:	cc                   	int3
a6ffb9:	cc                   	int3
a6ffba:	cc                   	int3
a6ffbb:	cc                   	int3
a6ffbc:	cc                   	int3
a6ffbd:	cc                   	int3
a6ffbe:	cc                   	int3
a6ffbf:	cc                   	int3
a6ffc0:	cc                   	int3
a6ffc1:	cc                   	int3
a6ffc2:	cc                   	int3
a6ffc3:	cc                   	int3
a6ffc4:	cc                   	int3
a6ffc5:	cc                   	int3
a6ffc6:	cc                   	int3
a6ffc7:	cc                   	int3
a6ffc8:	cc                   	int3
a6ffc9:	cc                   	int3
a6ffca:	cc                   	int3
a6ffcb:	cc                   	int3
a6ffcc:	55                   	push   %ebp
a6ffcd:	8b ec                	mov    %esp,%ebp
a6ffcf:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
a6ffd3:	74 1d                	je     0xa6fff2
a6ffd5:	ff 75 08             	push   0x8(%ebp)
a6ffd8:	e8 0e 14 9b ff       	call   0x4213eb
a6ffdd:	59                   	pop    %ecx
a6ffde:	85 c0                	test   %eax,%eax
a6ffe0:	78 10                	js     0xa6fff2
a6ffe2:	3d e4 00 00 00       	cmp    $0xe4,%eax
a6ffe7:	73 09                	jae    0xa6fff2
a6ffe9:	8b 04 c5 98 ba c7 00 	mov    0xc7ba98(,%eax,8),%eax
a6fff0:	5d                   	pop    %ebp
a6fff1:	c3                   	ret
a6fff2:	33 c0                	xor    %eax,%eax
a6fff4:	5d                   	pop    %ebp
a6fff5:	c3                   	ret
a6fff6:	cc                   	int3
a6fff7:	cc                   	int3
a6fff8:	cc                   	int3
a6fff9:	cc                   	int3
a6fffa:	cc                   	int3
a6fffb:	cc                   	int3
a6fffc:	cc                   	int3
a6fffd:	cc                   	int3
a6fffe:	cc                   	int3
a6ffff:	cc                   	int3
a70000:	55                   	push   %ebp
a70001:	8b ec                	mov    %esp,%ebp
a70003:	56                   	push   %esi
a70004:	ff 75 14             	push   0x14(%ebp)
a70007:	8b 35 c8 16 d8 00    	mov    0xd816c8,%esi
a7000d:	33 35 24 f6 d5 00    	xor    0xd5f624,%esi
a70013:	ff 75 10             	push   0x10(%ebp)
a70016:	ff 75 0c             	push   0xc(%ebp)
a70019:	ff 75 08             	push   0x8(%ebp)
a7001c:	74 0b                	je     0xa70029
a7001e:	8b ce                	mov    %esi,%ecx
a70020:	e8 40 c6 9b ff       	call   0x42c665
a70025:	ff d6                	call   *%esi
a70027:	eb 0d                	jmp    0xa70036
a70029:	e8 6e a4 9a ff       	call   0x41a49c
a7002e:	59                   	pop    %ecx
a7002f:	50                   	push   %eax
a70030:	ff 15 dc 37 d8 00    	call   *0xd837dc
a70036:	5e                   	pop    %esi
a70037:	5d                   	pop    %ebp
a70038:	c3                   	ret
a70039:	cc                   	int3
a7003a:	cc                   	int3
a7003b:	cc                   	int3
a7003c:	cc                   	int3
a7003d:	cc                   	int3
a7003e:	cc                   	int3
a7003f:	cc                   	int3
a70040:	cc                   	int3
a70041:	cc                   	int3
a70042:	cc                   	int3
a70043:	cc                   	int3
a70044:	cc                   	int3
a70045:	cc                   	int3
a70046:	cc                   	int3
a70047:	55                   	push   %ebp
a70048:	8b ec                	mov    %esp,%ebp
a7004a:	56                   	push   %esi
a7004b:	8b 35 cc 16 d8 00    	mov    0xd816cc,%esi
a70051:	33 35 24 f6 d5 00    	xor    0xd5f624,%esi
a70057:	74 22                	je     0xa7007b
a70059:	33 c0                	xor    %eax,%eax
a7005b:	8b ce                	mov    %esi,%ecx
a7005d:	50                   	push   %eax
a7005e:	50                   	push   %eax
a7005f:	50                   	push   %eax
a70060:	ff 75 1c             	push   0x1c(%ebp)
a70063:	ff 75 18             	push   0x18(%ebp)
a70066:	ff 75 14             	push   0x14(%ebp)
a70069:	ff 75 10             	push   0x10(%ebp)
a7006c:	ff 75 0c             	push   0xc(%ebp)
a7006f:	ff 75 08             	push   0x8(%ebp)
a70072:	e8 ee c5 9b ff       	call   0x42c665
a70077:	ff d6                	call   *%esi
a70079:	eb 1f                	jmp    0xa7009a
a7007b:	ff 75 1c             	push   0x1c(%ebp)
a7007e:	ff 75 18             	push   0x18(%ebp)
a70081:	ff 75 14             	push   0x14(%ebp)
a70084:	ff 75 10             	push   0x10(%ebp)
a70087:	ff 75 0c             	push   0xc(%ebp)
a7008a:	ff 75 08             	push   0x8(%ebp)
a7008d:	e8 0a a4 9a ff       	call   0x41a49c
a70092:	59                   	pop    %ecx
a70093:	50                   	push   %eax
a70094:	ff 15 58 38 d8 00    	call   *0xd83858
a7009a:	5e                   	pop    %esi
a7009b:	5d                   	pop    %ebp
a7009c:	c3                   	ret
a7009d:	cc                   	int3
a7009e:	cc                   	int3
a7009f:	cc                   	int3
a700a0:	cc                   	int3
a700a1:	cc                   	int3
a700a2:	cc                   	int3
a700a3:	cc                   	int3
a700a4:	cc                   	int3
a700a5:	cc                   	int3
a700a6:	cc                   	int3
a700a7:	cc                   	int3
a700a8:	cc                   	int3
a700a9:	cc                   	int3
a700aa:	cc                   	int3
a700ab:	cc                   	int3
a700ac:	cc                   	int3
a700ad:	cc                   	int3
a700ae:	cc                   	int3
a700af:	cc                   	int3
a700b0:	cc                   	int3
a700b1:	cc                   	int3
a700b2:	55                   	push   %ebp
a700b3:	8b ec                	mov    %esp,%ebp
a700b5:	51                   	push   %ecx
a700b6:	56                   	push   %esi
a700b7:	8b 75 10             	mov    0x10(%ebp),%esi
a700ba:	33 c0                	xor    %eax,%eax
a700bc:	85 f6                	test   %esi,%esi
a700be:	74 60                	je     0xa70120
a700c0:	8b 4d 0c             	mov    0xc(%ebp),%ecx
a700c3:	53                   	push   %ebx
a700c4:	57                   	push   %edi
a700c5:	8b 7d 08             	mov    0x8(%ebp),%edi
a700c8:	6a 41                	push   $0x41
a700ca:	5b                   	pop    %ebx
a700cb:	6a 5a                	push   $0x5a
a700cd:	5a                   	pop    %edx
a700ce:	2b f9                	sub    %ecx,%edi
a700d0:	89 55 fc             	mov    %edx,-0x4(%ebp)
a700d3:	eb 03                	jmp    0xa700d8
a700d5:	6a 5a                	push   $0x5a
a700d7:	5a                   	pop    %edx
a700d8:	0f b7 04 0f          	movzwl (%edi,%ecx,1),%eax
a700dc:	66 3b c3             	cmp    %bx,%ax
a700df:	72 0d                	jb     0xa700ee
a700e1:	66 3b c2             	cmp    %dx,%ax
a700e4:	77 08                	ja     0xa700ee
a700e6:	83 c0 20             	add    $0x20,%eax
a700e9:	0f b7 d0             	movzwl %ax,%edx
a700ec:	eb 02                	jmp    0xa700f0
a700ee:	8b d0                	mov    %eax,%edx
a700f0:	0f b7 01             	movzwl (%ecx),%eax
a700f3:	66 3b c3             	cmp    %bx,%ax
a700f6:	72 0c                	jb     0xa70104
a700f8:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
a700fc:	77 06                	ja     0xa70104
a700fe:	83 c0 20             	add    $0x20,%eax
a70101:	0f b7 c0             	movzwl %ax,%eax
a70104:	83 c1 02             	add    $0x2,%ecx
a70107:	83 ee 01             	sub    $0x1,%esi
a7010a:	74 0a                	je     0xa70116
a7010c:	66 85 d2             	test   %dx,%dx
a7010f:	74 05                	je     0xa70116
a70111:	66 3b d0             	cmp    %ax,%dx
a70114:	74 bf                	je     0xa700d5
a70116:	0f b7 c8             	movzwl %ax,%ecx
a70119:	0f b7 c2             	movzwl %dx,%eax
a7011c:	5f                   	pop    %edi
a7011d:	2b c1                	sub    %ecx,%eax
a7011f:	5b                   	pop    %ebx
a70120:	5e                   	pop    %esi
a70121:	8b e5                	mov    %ebp,%esp
a70123:	5d                   	pop    %ebp
a70124:	c3                   	ret
a70125:	cc                   	int3
a70126:	cc                   	int3
a70127:	cc                   	int3
a70128:	cc                   	int3
a70129:	cc                   	int3
a7012a:	cc                   	int3
a7012b:	cc                   	int3
a7012c:	cc                   	int3
a7012d:	cc                   	int3
a7012e:	cc                   	int3
a7012f:	cc                   	int3
a70130:	cc                   	int3
a70131:	cc                   	int3
a70132:	cc                   	int3
a70133:	cc                   	int3
a70134:	cc                   	int3
a70135:	cc                   	int3
a70136:	cc                   	int3
a70137:	cc                   	int3
a70138:	cc                   	int3
a70139:	cc                   	int3
a7013a:	cc                   	int3
a7013b:	cc                   	int3
a7013c:	cc                   	int3
a7013d:	cc                   	int3
a7013e:	cc                   	int3
a7013f:	cc                   	int3
a70140:	cc                   	int3
a70141:	56                   	push   %esi
a70142:	e8 7f 3c 9b ff       	call   0x423dc6
a70147:	8b f0                	mov    %eax,%esi
a70149:	e8 33 59 9b ff       	call   0x425a81
a7014e:	8b 50 04             	mov    0x4(%eax),%edx
a70151:	85 d2                	test   %edx,%edx
a70153:	74 09                	je     0xa7015e
a70155:	52                   	push   %edx
a70156:	e8 ba 6e 9c ff       	call   0x437015
a7015b:	59                   	pop    %ecx
a7015c:	8b d0                	mov    %eax,%edx
a7015e:	8b c6                	mov    %esi,%eax
a70160:	5e                   	pop    %esi
a70161:	c3                   	ret
a70162:	cc                   	int3
a70163:	cc                   	int3
a70164:	cc                   	int3
a70165:	cc                   	int3
a70166:	cc                   	int3
a70167:	cc                   	int3
a70168:	cc                   	int3
a70169:	cc                   	int3
a7016a:	55                   	push   %ebp
a7016b:	8b ec                	mov    %esp,%ebp
a7016d:	8b 45 18             	mov    0x18(%ebp),%eax
a70170:	53                   	push   %ebx
a70171:	56                   	push   %esi
a70172:	8b 75 0c             	mov    0xc(%ebp),%esi
a70175:	2b 75 08             	sub    0x8(%ebp),%esi
a70178:	57                   	push   %edi
a70179:	8b 7d 14             	mov    0x14(%ebp),%edi
a7017c:	2b 7d 10             	sub    0x10(%ebp),%edi
a7017f:	85 c0                	test   %eax,%eax
a70181:	75 0f                	jne    0xa70192
a70183:	e8 f9 58 9b ff       	call   0x425a81
a70188:	8b 58 04             	mov    0x4(%eax),%ebx
a7018b:	e8 36 3c 9b ff       	call   0x423dc6
a70190:	eb 05                	jmp    0xa70197
a70192:	8b 58 04             	mov    0x4(%eax),%ebx
a70195:	8b 00                	mov    (%eax),%eax
a70197:	85 db                	test   %ebx,%ebx
a70199:	75 2d                	jne    0xa701c8
a7019b:	8b c6                	mov    %esi,%eax
a7019d:	3b f7                	cmp    %edi,%esi
a7019f:	7c 02                	jl     0xa701a3
a701a1:	8b c7                	mov    %edi,%eax
a701a3:	50                   	push   %eax
a701a4:	ff 75 10             	push   0x10(%ebp)
a701a7:	ff 75 08             	push   0x8(%ebp)
a701aa:	e8 c9 44 9a ff       	call   0x414678
a701af:	83 c4 0c             	add    $0xc,%esp
a701b2:	85 c0                	test   %eax,%eax
a701b4:	75 42                	jne    0xa701f8
a701b6:	3b f7                	cmp    %edi,%esi
a701b8:	74 3e                	je     0xa701f8
a701ba:	3b f7                	cmp    %edi,%esi
a701bc:	0f 9d c0             	setge  %al
a701bf:	8d 04 45 ff ff ff ff 	lea    -0x1(,%eax,2),%eax
a701c6:	eb 30                	jmp    0xa701f8
a701c8:	50                   	push   %eax
a701c9:	57                   	push   %edi
a701ca:	ff 75 10             	push   0x10(%ebp)
a701cd:	56                   	push   %esi
a701ce:	ff 75 08             	push   0x8(%ebp)
a701d1:	68 00 10 00 00       	push   $0x1000
a701d6:	53                   	push   %ebx
a701d7:	e8 14 e8 9c ff       	call   0x43e9f0
a701dc:	83 c4 1c             	add    $0x1c,%esp
a701df:	85 c0                	test   %eax,%eax
a701e1:	75 12                	jne    0xa701f5
a701e3:	e8 87 e6 9c ff       	call   0x43e86f
a701e8:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
a701ee:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
a701f3:	eb 03                	jmp    0xa701f8
a701f5:	83 e8 02             	sub    $0x2,%eax
a701f8:	5f                   	pop    %edi
a701f9:	5e                   	pop    %esi
a701fa:	5b                   	pop    %ebx
a701fb:	5d                   	pop    %ebp
a701fc:	c3                   	ret
a701fd:	cc                   	int3
a701fe:	cc                   	int3
a701ff:	cc                   	int3
a70200:	cc                   	int3
a70201:	cc                   	int3
a70202:	cc                   	int3
a70203:	cc                   	int3
a70204:	cc                   	int3
a70205:	cc                   	int3