407f1d:	83 f9 ff             	cmp    $0xffffffff,%ecx
407f20:	75 05                	jne    0x407f27
407f22:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
407f27:	83 c7 04             	add    $0x4,%edi
407f2a:	f7 85 f0 fd ff ff 10 	testl  $0x810,-0x210(%ebp)
407f31:	08 00 00
407f34:	89 bd e4 fd ff ff    	mov    %edi,-0x21c(%ebp)
407f3a:	8b 7f fc             	mov    -0x4(%edi),%edi
407f3d:	89 bd e0 fd ff ff    	mov    %edi,-0x220(%ebp)
407f43:	0f 84 fe 04 00 00    	je     0x408447
407f49:	85 ff                	test   %edi,%edi
407f4b:	75 0b                	jne    0x407f58
407f4d:	a1 e4 2d 41 00       	mov    0x412de4,%eax
407f52:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
407f58:	8b 85 e0 fd ff ff    	mov    -0x220(%ebp),%eax
407f5e:	c7 85 c4 fd ff ff 01 	movl   $0x1,-0x23c(%ebp)
407f65:	00 00 00
407f68:	e9 cc 04 00 00       	jmp    0x408439
407f6d:	83 e8 58             	sub    $0x58,%eax
407f70:	0f 84 22 03 00 00    	je     0x408298
407f76:	48                   	dec    %eax
407f77:	48                   	dec    %eax
407f78:	74 7f                	je     0x407ff9
407f7a:	2b c1                	sub    %ecx,%eax
407f7c:	0f 84 b6 01 00 00    	je     0x408138
407f82:	48                   	dec    %eax
407f83:	48                   	dec    %eax
407f84:	0f 85 eb 04 00 00    	jne    0x408475
407f8a:	8b bd e4 fd ff ff    	mov    -0x21c(%ebp),%edi
407f90:	83 c7 04             	add    $0x4,%edi
407f93:	f7 85 f0 fd ff ff 10 	testl  $0x810,-0x210(%ebp)
407f9a:	08 00 00
407f9d:	89 bd e4 fd ff ff    	mov    %edi,-0x21c(%ebp)
407fa3:	74 30                	je     0x407fd5
407fa5:	0f b7 47 fc          	movzwl -0x4(%edi),%eax
407fa9:	50                   	push   %eax
407faa:	68 00 02 00 00       	push   $0x200
407faf:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
407fb5:	50                   	push   %eax
407fb6:	8d 85 d8 fd ff ff    	lea    -0x228(%ebp),%eax
407fbc:	50                   	push   %eax
407fbd:	e8 40 5c 00 00       	call   0x40dc02
407fc2:	83 c4 10             	add    $0x10,%esp
407fc5:	85 c0                	test   %eax,%eax
407fc7:	74 1f                	je     0x407fe8
407fc9:	c7 85 bc fd ff ff 01 	movl   $0x1,-0x244(%ebp)
407fd0:	00 00 00
407fd3:	eb 13                	jmp    0x407fe8
407fd5:	8a 47 fc             	mov    -0x4(%edi),%al
407fd8:	88 85 f4 fd ff ff    	mov    %al,-0x20c(%ebp)
407fde:	c7 85 d8 fd ff ff 01 	movl   $0x1,-0x228(%ebp)
407fe5:	00 00 00
407fe8:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
407fee:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
407ff4:	e9 7c 04 00 00       	jmp    0x408475
407ff9:	8b 07                	mov    (%edi),%eax
407ffb:	83 c7 04             	add    $0x4,%edi
407ffe:	89 bd e4 fd ff ff    	mov    %edi,-0x21c(%ebp)
408004:	85 c0                	test   %eax,%eax
408006:	74 3b                	je     0x408043
408008:	8b 48 04             	mov    0x4(%eax),%ecx
40800b:	85 c9                	test   %ecx,%ecx
40800d:	74 34                	je     0x408043
40800f:	f7 85 f0 fd ff ff 00 	testl  $0x800,-0x210(%ebp)
408016:	08 00 00
408019:	0f bf 00             	movswl (%eax),%eax
40801c:	89 8d e0 fd ff ff    	mov    %ecx,-0x220(%ebp)
408022:	74 14                	je     0x408038
408024:	99                   	cltd
408025:	2b c2                	sub    %edx,%eax
408027:	d1 f8                	sar    $1,%eax
408029:	c7 85 c4 fd ff ff 01 	movl   $0x1,-0x23c(%ebp)
408030:	00 00 00
408033:	e9 37 04 00 00       	jmp    0x40846f
408038:	21 b5 c4 fd ff ff    	and    %esi,-0x23c(%ebp)
40803e:	e9 2c 04 00 00       	jmp    0x40846f
408043:	a1 e0 2d 41 00       	mov    0x412de0,%eax
408048:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
40804e:	50                   	push   %eax
40804f:	e8 0c 2b 00 00       	call   0x40ab60
408054:	59                   	pop    %ecx
408055:	e9 15 04 00 00       	jmp    0x40846f
40805a:	83 f8 70             	cmp    $0x70,%eax
40805d:	0f 8f 3d 02 00 00    	jg     0x4082a0
408063:	0f 84 25 02 00 00    	je     0x40828e
408069:	83 f8 65             	cmp    $0x65,%eax
40806c:	0f 8c 03 04 00 00    	jl     0x408475
408072:	83 f8 67             	cmp    $0x67,%eax
408075:	0f 8e b7 00 00 00    	jle    0x408132
40807b:	83 f8 69             	cmp    $0x69,%eax
40807e:	74 7c                	je     0x4080fc
408080:	83 f8 6e             	cmp    $0x6e,%eax
408083:	74 2e                	je     0x4080b3
408085:	83 f8 6f             	cmp    $0x6f,%eax
408088:	0f 85 e7 03 00 00    	jne    0x408475
40808e:	f6 85 f0 fd ff ff 80 	testb  $0x80,-0x210(%ebp)
408095:	8b bd e4 fd ff ff    	mov    -0x21c(%ebp),%edi
40809b:	c7 85 d8 fd ff ff 08 	movl   $0x8,-0x228(%ebp)
4080a2:	00 00 00
4080a5:	74 6c                	je     0x408113
4080a7:	81 8d f0 fd ff ff 00 	orl    $0x200,-0x210(%ebp)
4080ae:	02 00 00
4080b1:	eb 60                	jmp    0x408113
4080b3:	83 85 e4 fd ff ff 04 	addl   $0x4,-0x21c(%ebp)
4080ba:	8b 85 e4 fd ff ff    	mov    -0x21c(%ebp),%eax
4080c0:	8b 70 fc             	mov    -0x4(%eax),%esi
4080c3:	e8 7f 2a 00 00       	call   0x40ab47
4080c8:	85 c0                	test   %eax,%eax
4080ca:	0f 84 62 fa ff ff    	je     0x407b32
4080d0:	f6 85 f0 fd ff ff 20 	testb  $0x20,-0x210(%ebp)
4080d7:	74 0c                	je     0x4080e5
4080d9:	66 8b 85 dc fd ff ff 	mov    -0x224(%ebp),%ax
4080e0:	66 89 06             	mov    %ax,(%esi)
4080e3:	eb 08                	jmp    0x4080ed
4080e5:	8b 85 dc fd ff ff    	mov    -0x224(%ebp),%eax
4080eb:	89 06                	mov    %eax,(%esi)
4080ed:	c7 85 bc fd ff ff 01 	movl   $0x1,-0x244(%ebp)
4080f4:	00 00 00
4080f7:	e9 3e 05 00 00       	jmp    0x40863a
4080fc:	8b bd e4 fd ff ff    	mov    -0x21c(%ebp),%edi
408102:	83 8d f0 fd ff ff 40 	orl    $0x40,-0x210(%ebp)
408109:	c7 85 d8 fd ff ff 0a 	movl   $0xa,-0x228(%ebp)
408110:	00 00 00
408113:	8b 8d f0 fd ff ff    	mov    -0x210(%ebp),%ecx
408119:	f7 c1 00 80 00 00    	test   $0x8000,%ecx
40811f:	0f 84 e0 01 00 00    	je     0x408305
408125:	8b 07                	mov    (%edi),%eax
408127:	8b 57 04             	mov    0x4(%edi),%edx
40812a:	83 c7 08             	add    $0x8,%edi
40812d:	e9 0c 02 00 00       	jmp    0x40833e
408132:	8b bd e4 fd ff ff    	mov    -0x21c(%ebp),%edi
408138:	83 8d f0 fd ff ff 40 	orl    $0x40,-0x210(%ebp)
40813f:	8d 9d f4 fd ff ff    	lea    -0x20c(%ebp),%ebx
408145:	b8 00 02 00 00       	mov    $0x200,%eax
40814a:	89 9d e0 fd ff ff    	mov    %ebx,-0x220(%ebp)
408150:	89 85 a0 fd ff ff    	mov    %eax,-0x260(%ebp)
408156:	39 b5 e8 fd ff ff    	cmp    %esi,-0x218(%ebp)
40815c:	7d 0c                	jge    0x40816a
40815e:	c7 85 e8 fd ff ff 06 	movl   $0x6,-0x218(%ebp)
408165:	00 00 00
408168:	eb 6a                	jmp    0x4081d4
40816a:	75 11                	jne    0x40817d
40816c:	80 fa 67             	cmp    $0x67,%dl
40816f:	75 63                	jne    0x4081d4
408171:	c7 85 e8 fd ff ff 01 	movl   $0x1,-0x218(%ebp)
408178:	00 00 00
40817b:	eb 57                	jmp    0x4081d4
40817d:	39 85 e8 fd ff ff    	cmp    %eax,-0x218(%ebp)
408183:	7e 06                	jle    0x40818b
408185:	89 85 e8 fd ff ff    	mov    %eax,-0x218(%ebp)
40818b:	81 bd e8 fd ff ff a3 	cmpl   $0xa3,-0x218(%ebp)
408192:	00 00 00
408195:	7e 3d                	jle    0x4081d4
408197:	8b b5 e8 fd ff ff    	mov    -0x218(%ebp),%esi
40819d:	81 c6 5d 01 00 00    	add    $0x15d,%esi
4081a3:	56                   	push   %esi
4081a4:	e8 16 e7 ff ff       	call   0x4068bf
4081a9:	8a 95 ef fd ff ff    	mov    -0x211(%ebp),%dl
4081af:	59                   	pop    %ecx
4081b0:	89 85 b8 fd ff ff    	mov    %eax,-0x248(%ebp)
4081b6:	85 c0                	test   %eax,%eax
4081b8:	74 10                	je     0x4081ca
4081ba:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
4081c0:	89 b5 a0 fd ff ff    	mov    %esi,-0x260(%ebp)
4081c6:	8b d8                	mov    %eax,%ebx
4081c8:	eb 0a                	jmp    0x4081d4
4081ca:	c7 85 e8 fd ff ff a3 	movl   $0xa3,-0x218(%ebp)
4081d1:	00 00 00
4081d4:	8b 07                	mov    (%edi),%eax
4081d6:	8b 35 90 f0 40 00    	mov    0x40f090,%esi
4081dc:	83 c7 08             	add    $0x8,%edi
4081df:	89 85 80 fd ff ff    	mov    %eax,-0x280(%ebp)
4081e5:	8b 47 fc             	mov    -0x4(%edi),%eax
4081e8:	89 85 84 fd ff ff    	mov    %eax,-0x27c(%ebp)
4081ee:	8d 85 a4 fd ff ff    	lea    -0x25c(%ebp),%eax
4081f4:	50                   	push   %eax
4081f5:	ff b5 88 fd ff ff    	push   -0x278(%ebp)
4081fb:	0f be c2             	movsbl %dl,%eax
4081fe:	ff b5 e8 fd ff ff    	push   -0x218(%ebp)
408204:	89 bd e4 fd ff ff    	mov    %edi,-0x21c(%ebp)
40820a:	50                   	push   %eax
40820b:	ff b5 a0 fd ff ff    	push   -0x260(%ebp)
408211:	8d 85 80 fd ff ff    	lea    -0x280(%ebp),%eax
408217:	53                   	push   %ebx
408218:	50                   	push   %eax
408219:	ff 35 18 2e 41 00    	push   0x412e18
40821f:	ff d6                	call   *%esi
408221:	ff d0                	call   *%eax
408223:	8b bd f0 fd ff ff    	mov    -0x210(%ebp),%edi
408229:	83 c4 1c             	add    $0x1c,%esp
40822c:	81 e7 80 00 00 00    	and    $0x80,%edi
408232:	74 1d                	je     0x408251
408234:	83 bd e8 fd ff ff 00 	cmpl   $0x0,-0x218(%ebp)
40823b:	75 14                	jne    0x408251
40823d:	8d 85 a4 fd ff ff    	lea    -0x25c(%ebp),%eax
408243:	50                   	push   %eax
408244:	53                   	push   %ebx
408245:	ff 35 24 2e 41 00    	push   0x412e24
40824b:	ff d6                	call   *%esi
40824d:	ff d0                	call   *%eax
40824f:	59                   	pop    %ecx
408250:	59                   	pop    %ecx
408251:	80 bd ef fd ff ff 67 	cmpb   $0x67,-0x211(%ebp)
408258:	75 18                	jne    0x408272
40825a:	85 ff                	test   %edi,%edi
40825c:	75 14                	jne    0x408272
40825e:	8d 85 a4 fd ff ff    	lea    -0x25c(%ebp),%eax
408264:	50                   	push   %eax
408265:	53                   	push   %ebx
408266:	ff 35 20 2e 41 00    	push   0x412e20
40826c:	ff d6                	call   *%esi
40826e:	ff d0                	call   *%eax
408270:	59                   	pop    %ecx
408271:	59                   	pop    %ecx
408272:	80 3b 2d             	cmpb   $0x2d,(%ebx)
408275:	75 11                	jne    0x408288
408277:	81 8d f0 fd ff ff 00 	orl    $0x100,-0x210(%ebp)
40827e:	01 00 00
408281:	43                   	inc    %ebx
408282:	89 9d e0 fd ff ff    	mov    %ebx,-0x220(%ebp)
408288:	53                   	push   %ebx
408289:	e9 c1 fd ff ff       	jmp    0x40804f
40828e:	c7 85 e8 fd ff ff 08 	movl   $0x8,-0x218(%ebp)
408295:	00 00 00
408298:	89 8d b4 fd ff ff    	mov    %ecx,-0x24c(%ebp)
40829e:	eb 2a                	jmp    0x4082ca
4082a0:	83 e8 73             	sub    $0x73,%eax
4082a3:	0f 84 6e fc ff ff    	je     0x407f17
4082a9:	48                   	dec    %eax
4082aa:	48                   	dec    %eax
4082ab:	0f 84 58 fe ff ff    	je     0x408109
4082b1:	83 e8 03             	sub    $0x3,%eax
4082b4:	0f 85 bb 01 00 00    	jne    0x408475
4082ba:	8b bd e4 fd ff ff    	mov    -0x21c(%ebp),%edi
4082c0:	c7 85 b4 fd ff ff 27 	movl   $0x27,-0x24c(%ebp)
4082c7:	00 00 00
4082ca:	f6 85 f0 fd ff ff 80 	testb  $0x80,-0x210(%ebp)
4082d1:	c7 85 d8 fd ff ff 10 	movl   $0x10,-0x228(%ebp)
4082d8:	00 00 00
4082db:	0f 84 32 fe ff ff    	je     0x408113
4082e1:	8a 85 b4 fd ff ff    	mov    -0x24c(%ebp),%al
4082e7:	04 51                	add    $0x51,%al
4082e9:	c6 85 d4 fd ff ff 30 	movb   $0x30,-0x22c(%ebp)
4082f0:	88 85 d5 fd ff ff    	mov    %al,-0x22b(%ebp)
4082f6:	c7 85 cc fd ff ff 02 	movl   $0x2,-0x234(%ebp)
4082fd:	00 00 00
408300:	e9 0e fe ff ff       	jmp    0x408113
408305:	f7 c1 00 10 00 00    	test   $0x1000,%ecx
40830b:	0f 85 14 fe ff ff    	jne    0x408125
408311:	83 c7 04             	add    $0x4,%edi
408314:	f6 c1 20             	test   $0x20,%cl
408317:	74 18                	je     0x408331
408319:	89 bd e4 fd ff ff    	mov    %edi,-0x21c(%ebp)
40831f:	f6 c1 40             	test   $0x40,%cl
408322:	74 06                	je     0x40832a
408324:	0f bf 47 fc          	movswl -0x4(%edi),%eax
408328:	eb 04                	jmp    0x40832e
40832a:	0f b7 47 fc          	movzwl -0x4(%edi),%eax
40832e:	99                   	cltd
40832f:	eb 13                	jmp    0x408344
408331:	8b 47 fc             	mov    -0x4(%edi),%eax
408334:	f6 c1 40             	test   $0x40,%cl
408337:	74 03                	je     0x40833c
408339:	99                   	cltd
40833a:	eb 02                	jmp    0x40833e
40833c:	33 d2                	xor    %edx,%edx
40833e:	89 bd e4 fd ff ff    	mov    %edi,-0x21c(%ebp)
408344:	f6 c1 40             	test   $0x40,%cl
408347:	74 1a                	je     0x408363
408349:	85 d2                	test   %edx,%edx
40834b:	7f 16                	jg     0x408363
40834d:	7c 04                	jl     0x408353
40834f:	85 c0                	test   %eax,%eax
408351:	73 10                	jae    0x408363
408353:	f7 d8                	neg    %eax
408355:	13 d6                	adc    %esi,%edx
408357:	f7 da                	neg    %edx
408359:	81 8d f0 fd ff ff 00 	orl    $0x100,-0x210(%ebp)
408360:	01 00 00
408363:	f7 85 f0 fd ff ff 00 	testl  $0x9000,-0x210(%ebp)
40836a:	90 00 00
40836d:	8b fa                	mov    %edx,%edi
40836f:	8b d8                	mov    %eax,%ebx
408371:	75 02                	jne    0x408375
408373:	33 ff                	xor    %edi,%edi
408375:	39 b5 e8 fd ff ff    	cmp    %esi,-0x218(%ebp)
40837b:	7d 0c                	jge    0x408389
40837d:	c7 85 e8 fd ff ff 01 	movl   $0x1,-0x218(%ebp)
408384:	00 00 00
408387:	eb 1a                	jmp    0x4083a3
408389:	83 a5 f0 fd ff ff f7 	andl   $0xfffffff7,-0x210(%ebp)
408390:	b8 00 02 00 00       	mov    $0x200,%eax
408395:	39 85 e8 fd ff ff    	cmp    %eax,-0x218(%ebp)
40839b:	7e 06                	jle    0x4083a3
40839d:	89 85 e8 fd ff ff    	mov    %eax,-0x218(%ebp)
4083a3:	8b c3                	mov    %ebx,%eax
4083a5:	0b c7                	or     %edi,%eax
4083a7:	75 06                	jne    0x4083af
4083a9:	21 b5 cc fd ff ff    	and    %esi,-0x234(%ebp)
4083af:	8d 75 f3             	lea    -0xd(%ebp),%esi
4083b2:	8b 85 e8 fd ff ff    	mov    -0x218(%ebp),%eax
4083b8:	ff 8d e8 fd ff ff    	decl   -0x218(%ebp)
4083be:	85 c0                	test   %eax,%eax
4083c0:	7f 06                	jg     0x4083c8
4083c2:	8b c3                	mov    %ebx,%eax
4083c4:	0b c7                	or     %edi,%eax
4083c6:	74 2d                	je     0x4083f5
4083c8:	8b 85 d8 fd ff ff    	mov    -0x228(%ebp),%eax
4083ce:	99                   	cltd
4083cf:	52                   	push   %edx
4083d0:	50                   	push   %eax
4083d1:	57                   	push   %edi
4083d2:	53                   	push   %ebx
4083d3:	e8 98 29 00 00       	call   0x40ad70
4083d8:	83 c1 30             	add    $0x30,%ecx
4083db:	89 9d a0 fd ff ff    	mov    %ebx,-0x260(%ebp)
4083e1:	8b d8                	mov    %eax,%ebx
4083e3:	8b fa                	mov    %edx,%edi
4083e5:	83 f9 39             	cmp    $0x39,%ecx
4083e8:	7e 06                	jle    0x4083f0
4083ea:	03 8d b4 fd ff ff    	add    -0x24c(%ebp),%ecx
4083f0:	88 0e                	mov    %cl,(%esi)
4083f2:	4e                   	dec    %esi
4083f3:	eb bd                	jmp    0x4083b2
4083f5:	8d 45 f3             	lea    -0xd(%ebp),%eax
4083f8:	2b c6                	sub    %esi,%eax
4083fa:	46                   	inc    %esi
4083fb:	f7 85 f0 fd ff ff 00 	testl  $0x200,-0x210(%ebp)
408402:	02 00 00
408405:	89 85 d8 fd ff ff    	mov    %eax,-0x228(%ebp)
40840b:	89 b5 e0 fd ff ff    	mov    %esi,-0x220(%ebp)
408411:	74 62                	je     0x408475
408413:	85 c0                	test   %eax,%eax
408415:	74 07                	je     0x40841e
408417:	8b ce                	mov    %esi,%ecx
408419:	80 39 30             	cmpb   $0x30,(%ecx)
40841c:	74 57                	je     0x408475
40841e:	ff 8d e0 fd ff ff    	decl   -0x220(%ebp)
408424:	8b 8d e0 fd ff ff    	mov    -0x220(%ebp),%ecx
40842a:	c6 01 30             	movb   $0x30,(%ecx)
40842d:	40                   	inc    %eax
40842e:	eb 3f                	jmp    0x40846f
408430:	49                   	dec    %ecx
408431:	66 39 30             	cmp    %si,(%eax)
408434:	74 07                	je     0x40843d
408436:	83 c0 02             	add    $0x2,%eax
408439:	85 c9                	test   %ecx,%ecx
40843b:	75 f3                	jne    0x408430
40843d:	2b 85 e0 fd ff ff    	sub    -0x220(%ebp),%eax
408443:	d1 f8                	sar    $1,%eax