4060ed:	4b                   	dec    %ebx
4060ee:	89 75 fc             	mov    %esi,-0x4(%ebp)
4060f1:	85 db                	test   %ebx,%ebx
4060f3:	79 ce                	jns    0x4060c3
4060f5:	8b 45 14             	mov    0x14(%ebp),%eax
4060f8:	46                   	inc    %esi
4060f9:	89 30                	mov    %esi,(%eax)
4060fb:	8b 45 18             	mov    0x18(%ebp),%eax
4060fe:	89 38                	mov    %edi,(%eax)
406100:	8b 45 08             	mov    0x8(%ebp),%eax
406103:	3b 78 0c             	cmp    0xc(%eax),%edi
406106:	77 04                	ja     0x40610c
406108:	3b f7                	cmp    %edi,%esi
40610a:	76 08                	jbe    0x406114
40610c:	e8 fb 7c 00 00       	call   0x40de0c
406111:	8b 4d f8             	mov    -0x8(%ebp),%ecx
406114:	6b f6 14             	imul   $0x14,%esi,%esi
406117:	5f                   	pop    %edi
406118:	8d 04 31             	lea    (%ecx,%esi,1),%eax
40611b:	5e                   	pop    %esi
40611c:	5b                   	pop    %ebx
40611d:	c9                   	leave
40611e:	c3                   	ret
40611f:	55                   	push   %ebp
406120:	8b ec                	mov    %esp,%ebp
406122:	51                   	push   %ecx
406123:	53                   	push   %ebx
406124:	8b 45 0c             	mov    0xc(%ebp),%eax
406127:	83 c0 0c             	add    $0xc,%eax
40612a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40612d:	64 8b 1d 00 00 00 00 	mov    %fs:0x0,%ebx
406134:	8b 03                	mov    (%ebx),%eax
406136:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40613c:	8b 45 08             	mov    0x8(%ebp),%eax
40613f:	8b 5d 0c             	mov    0xc(%ebp),%ebx
406142:	8b 6d fc             	mov    -0x4(%ebp),%ebp
406145:	8b 63 fc             	mov    -0x4(%ebx),%esp
406148:	ff e0                	jmp    *%eax
40614a:	5b                   	pop    %ebx
40614b:	c9                   	leave
40614c:	c2 08 00             	ret    $0x8
40614f:	55                   	push   %ebp
406150:	8b ec                	mov    %esp,%ebp
406152:	51                   	push   %ecx
406153:	51                   	push   %ecx
406154:	53                   	push   %ebx
406155:	56                   	push   %esi
406156:	57                   	push   %edi
406157:	64 8b 35 00 00 00 00 	mov    %fs:0x0,%esi
40615e:	89 75 f8             	mov    %esi,-0x8(%ebp)
406161:	c7 45 fc 79 61 40 00 	movl   $0x406179,-0x4(%ebp)
406168:	6a 00                	push   $0x0
40616a:	ff 75 0c             	push   0xc(%ebp)
40616d:	ff 75 fc             	push   -0x4(%ebp)
406170:	ff 75 08             	push   0x8(%ebp)
406173:	ff 15 88 90 41 00    	call   *0x419088
406179:	8b 45 0c             	mov    0xc(%ebp),%eax
40617c:	8b 40 04             	mov    0x4(%eax),%eax
40617f:	83 e0 fd             	and    $0xfffffffd,%eax
406182:	8b 4d 0c             	mov    0xc(%ebp),%ecx
406185:	89 41 04             	mov    %eax,0x4(%ecx)
406188:	64 8b 3d 00 00 00 00 	mov    %fs:0x0,%edi
40618f:	8b 5d f8             	mov    -0x8(%ebp),%ebx
406192:	89 3b                	mov    %edi,(%ebx)
406194:	64 89 1d 00 00 00 00 	mov    %ebx,%fs:0x0
40619b:	5f                   	pop    %edi
40619c:	5e                   	pop    %esi
40619d:	5b                   	pop    %ebx
40619e:	c9                   	leave
40619f:	c2 08 00             	ret    $0x8
4061a2:	55                   	push   %ebp
4061a3:	8b ec                	mov    %esp,%ebp
4061a5:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4061a8:	56                   	push   %esi
4061a9:	8b 75 08             	mov    0x8(%ebp),%esi
4061ac:	89 0e                	mov    %ecx,(%esi)
4061ae:	e8 23 62 00 00       	call   0x40c3d6
4061b3:	8b 88 98 00 00 00    	mov    0x98(%eax),%ecx
4061b9:	89 4e 04             	mov    %ecx,0x4(%esi)
4061bc:	e8 15 62 00 00       	call   0x40c3d6
4061c1:	89 b0 98 00 00 00    	mov    %esi,0x98(%eax)
4061c7:	8b c6                	mov    %esi,%eax
4061c9:	5e                   	pop    %esi
4061ca:	5d                   	pop    %ebp
4061cb:	c3                   	ret
4061cc:	55                   	push   %ebp
4061cd:	8b ec                	mov    %esp,%ebp
4061cf:	56                   	push   %esi
4061d0:	e8 01 62 00 00       	call   0x40c3d6
4061d5:	8b 75 08             	mov    0x8(%ebp),%esi
4061d8:	3b b0 98 00 00 00    	cmp    0x98(%eax),%esi
4061de:	75 11                	jne    0x4061f1
4061e0:	e8 f1 61 00 00       	call   0x40c3d6
4061e5:	8b 4e 04             	mov    0x4(%esi),%ecx
4061e8:	89 88 98 00 00 00    	mov    %ecx,0x98(%eax)
4061ee:	5e                   	pop    %esi
4061ef:	5d                   	pop    %ebp
4061f0:	c3                   	ret
4061f1:	e8 e0 61 00 00       	call   0x40c3d6
4061f6:	8b 88 98 00 00 00    	mov    0x98(%eax),%ecx
4061fc:	eb 09                	jmp    0x406207
4061fe:	8b 41 04             	mov    0x4(%ecx),%eax
406201:	3b f0                	cmp    %eax,%esi
406203:	74 0f                	je     0x406214
406205:	8b c8                	mov    %eax,%ecx
406207:	83 79 04 00          	cmpl   $0x0,0x4(%ecx)
40620b:	75 f1                	jne    0x4061fe
40620d:	5e                   	pop    %esi
40620e:	5d                   	pop    %ebp
40620f:	e9 f8 7b 00 00       	jmp    0x40de0c
406214:	8b 46 04             	mov    0x4(%esi),%eax
406217:	89 41 04             	mov    %eax,0x4(%ecx)
40621a:	eb d2                	jmp    0x4061ee
40621c:	55                   	push   %ebp
40621d:	8b ec                	mov    %esp,%ebp
40621f:	e8 b2 61 00 00       	call   0x40c3d6
406224:	8b 80 98 00 00 00    	mov    0x98(%eax),%eax
40622a:	85 c0                	test   %eax,%eax
40622c:	74 0e                	je     0x40623c
40622e:	8b 4d 08             	mov    0x8(%ebp),%ecx
406231:	39 08                	cmp    %ecx,(%eax)
406233:	74 0c                	je     0x406241
406235:	8b 40 04             	mov    0x4(%eax),%eax
406238:	85 c0                	test   %eax,%eax
40623a:	75 f5                	jne    0x406231
40623c:	33 c0                	xor    %eax,%eax
40623e:	40                   	inc    %eax
40623f:	5d                   	pop    %ebp
406240:	c3                   	ret
406241:	33 c0                	xor    %eax,%eax
406243:	5d                   	pop    %ebp
406244:	c3                   	ret
406245:	55                   	push   %ebp
406246:	8b ec                	mov    %esp,%ebp
406248:	83 ec 08             	sub    $0x8,%esp
40624b:	53                   	push   %ebx
40624c:	56                   	push   %esi
40624d:	57                   	push   %edi
40624e:	fc                   	cld
40624f:	89 45 fc             	mov    %eax,-0x4(%ebp)
406252:	33 c0                	xor    %eax,%eax
406254:	50                   	push   %eax
406255:	50                   	push   %eax
406256:	50                   	push   %eax
406257:	ff 75 fc             	push   -0x4(%ebp)
40625a:	ff 75 14             	push   0x14(%ebp)
40625d:	ff 75 10             	push   0x10(%ebp)
406260:	ff 75 0c             	push   0xc(%ebp)
406263:	ff 75 08             	push   0x8(%ebp)
406266:	e8 bc 19 00 00       	call   0x407c27
40626b:	83 c4 20             	add    $0x20,%esp
40626e:	89 45 f8             	mov    %eax,-0x8(%ebp)
406271:	5f                   	pop    %edi
406272:	5e                   	pop    %esi
406273:	5b                   	pop    %ebx
406274:	8b 45 f8             	mov    -0x8(%ebp),%eax
406277:	8b e5                	mov    %ebp,%esp
406279:	5d                   	pop    %ebp
40627a:	c3                   	ret
40627b:	a1 38 2b 42 00       	mov    0x422b38,%eax
406280:	56                   	push   %esi
406281:	6a 14                	push   $0x14
406283:	5e                   	pop    %esi
406284:	85 c0                	test   %eax,%eax
406286:	75 07                	jne    0x40628f
406288:	b8 00 02 00 00       	mov    $0x200,%eax
40628d:	eb 06                	jmp    0x406295
40628f:	3b c6                	cmp    %esi,%eax
406291:	7d 07                	jge    0x40629a
406293:	8b c6                	mov    %esi,%eax
406295:	a3 38 2b 42 00       	mov    %eax,0x422b38
40629a:	6a 04                	push   $0x4
40629c:	50                   	push   %eax
40629d:	e8 b6 27 00 00       	call   0x408a58
4062a2:	59                   	pop    %ecx
4062a3:	59                   	pop    %ecx
4062a4:	a3 34 2b 42 00       	mov    %eax,0x422b34
4062a9:	85 c0                	test   %eax,%eax
4062ab:	75 1e                	jne    0x4062cb
4062ad:	6a 04                	push   $0x4
4062af:	56                   	push   %esi
4062b0:	89 35 38 2b 42 00    	mov    %esi,0x422b38
4062b6:	e8 9d 27 00 00       	call   0x408a58
4062bb:	59                   	pop    %ecx
4062bc:	59                   	pop    %ecx
4062bd:	a3 34 2b 42 00       	mov    %eax,0x422b34
4062c2:	85 c0                	test   %eax,%eax
4062c4:	75 05                	jne    0x4062cb
4062c6:	6a 1a                	push   $0x1a
4062c8:	58                   	pop    %eax
4062c9:	5e                   	pop    %esi
4062ca:	c3                   	ret
4062cb:	33 d2                	xor    %edx,%edx
4062cd:	b9 50 03 42 00       	mov    $0x420350,%ecx
4062d2:	89 0c 02             	mov    %ecx,(%edx,%eax,1)
4062d5:	83 c1 20             	add    $0x20,%ecx
4062d8:	8d 52 04             	lea    0x4(%edx),%edx
4062db:	81 f9 d0 05 42 00    	cmp    $0x4205d0,%ecx
4062e1:	7d 07                	jge    0x4062ea
4062e3:	a1 34 2b 42 00       	mov    0x422b34,%eax
4062e8:	eb e8                	jmp    0x4062d2
4062ea:	33 c0                	xor    %eax,%eax
4062ec:	5e                   	pop    %esi
4062ed:	c3                   	ret
4062ee:	e8 8b 02 00 00       	call   0x40657e
4062f3:	80 3d fc 20 42 00 00 	cmpb   $0x0,0x4220fc
4062fa:	74 05                	je     0x406301
4062fc:	e8 9b 7b 00 00       	call   0x40de9c
406301:	ff 35 34 2b 42 00    	push   0x422b34
406307:	e8 0c ee ff ff       	call   0x405118
40630c:	83 25 34 2b 42 00 00 	andl   $0x0,0x422b34
406313:	59                   	pop    %ecx
406314:	c3                   	ret
406315:	b8 50 03 42 00       	mov    $0x420350,%eax
40631a:	c3                   	ret
40631b:	55                   	push   %ebp
40631c:	8b ec                	mov    %esp,%ebp
40631e:	56                   	push   %esi
40631f:	8b 75 08             	mov    0x8(%ebp),%esi
406322:	b9 50 03 42 00       	mov    $0x420350,%ecx
406327:	3b f1                	cmp    %ecx,%esi
406329:	72 22                	jb     0x40634d
40632b:	81 fe b0 05 42 00    	cmp    $0x4205b0,%esi
406331:	77 1a                	ja     0x40634d
406333:	8b c6                	mov    %esi,%eax
406335:	2b c1                	sub    %ecx,%eax
406337:	c1 f8 05             	sar    $0x5,%eax
40633a:	83 c0 10             	add    $0x10,%eax
40633d:	50                   	push   %eax
40633e:	e8 64 21 00 00       	call   0x4084a7
406343:	81 4e 0c 00 80 00 00 	orl    $0x8000,0xc(%esi)
40634a:	59                   	pop    %ecx
40634b:	eb 0a                	jmp    0x406357
40634d:	8d 46 20             	lea    0x20(%esi),%eax
406350:	50                   	push   %eax
406351:	ff 15 60 90 41 00    	call   *0x419060
406357:	5e                   	pop    %esi
406358:	5d                   	pop    %ebp
406359:	c3                   	ret
40635a:	55                   	push   %ebp
40635b:	8b ec                	mov    %esp,%ebp
40635d:	8b 45 08             	mov    0x8(%ebp),%eax
406360:	83 f8 14             	cmp    $0x14,%eax
406363:	7d 16                	jge    0x40637b
406365:	83 c0 10             	add    $0x10,%eax
406368:	50                   	push   %eax
406369:	e8 39 21 00 00       	call   0x4084a7
40636e:	8b 45 0c             	mov    0xc(%ebp),%eax
406371:	59                   	pop    %ecx
406372:	81 48 0c 00 80 00 00 	orl    $0x8000,0xc(%eax)
406379:	5d                   	pop    %ebp
40637a:	c3                   	ret
40637b:	8b 45 0c             	mov    0xc(%ebp),%eax
40637e:	83 c0 20             	add    $0x20,%eax
406381:	50                   	push   %eax
406382:	ff 15 60 90 41 00    	call   *0x419060
406388:	5d                   	pop    %ebp
406389:	c3                   	ret
40638a:	55                   	push   %ebp
40638b:	8b ec                	mov    %esp,%ebp
40638d:	8b 45 08             	mov    0x8(%ebp),%eax
406390:	b9 50 03 42 00       	mov    $0x420350,%ecx
406395:	3b c1                	cmp    %ecx,%eax
406397:	72 1f                	jb     0x4063b8
406399:	3d b0 05 42 00       	cmp    $0x4205b0,%eax
40639e:	77 18                	ja     0x4063b8
4063a0:	81 60 0c ff 7f ff ff 	andl   $0xffff7fff,0xc(%eax)
4063a7:	2b c1                	sub    %ecx,%eax
4063a9:	c1 f8 05             	sar    $0x5,%eax
4063ac:	83 c0 10             	add    $0x10,%eax
4063af:	50                   	push   %eax
4063b0:	e8 56 22 00 00       	call   0x40860b
4063b5:	59                   	pop    %ecx
4063b6:	5d                   	pop    %ebp
4063b7:	c3                   	ret
4063b8:	83 c0 20             	add    $0x20,%eax
4063bb:	50                   	push   %eax
4063bc:	ff 15 64 90 41 00    	call   *0x419064
4063c2:	5d                   	pop    %ebp
4063c3:	c3                   	ret
4063c4:	55                   	push   %ebp
4063c5:	8b ec                	mov    %esp,%ebp
4063c7:	8b 4d 08             	mov    0x8(%ebp),%ecx
4063ca:	8b 45 0c             	mov    0xc(%ebp),%eax
4063cd:	83 f9 14             	cmp    $0x14,%ecx
4063d0:	7d 13                	jge    0x4063e5
4063d2:	81 60 0c ff 7f ff ff 	andl   $0xffff7fff,0xc(%eax)
4063d9:	8d 41 10             	lea    0x10(%ecx),%eax
4063dc:	50                   	push   %eax
4063dd:	e8 29 22 00 00       	call   0x40860b
4063e2:	59                   	pop    %ecx
4063e3:	5d                   	pop    %ebp
4063e4:	c3                   	ret
4063e5:	83 c0 20             	add    $0x20,%eax
4063e8:	50                   	push   %eax
4063e9:	ff 15 64 90 41 00    	call   *0x419064
4063ef:	5d                   	pop    %ebp
4063f0:	c3                   	ret
4063f1:	55                   	push   %ebp
4063f2:	8b ec                	mov    %esp,%ebp
4063f4:	56                   	push   %esi
4063f5:	8b 75 08             	mov    0x8(%ebp),%esi
4063f8:	57                   	push   %edi
4063f9:	83 cf ff             	or     $0xffffffff,%edi
4063fc:	85 f6                	test   %esi,%esi
4063fe:	75 14                	jne    0x406414
406400:	e8 78 1d 00 00       	call   0x40817d
406405:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40640b:	e8 e5 51 00 00       	call   0x40b5f5
406410:	0b c7                	or     %edi,%eax
406412:	eb 45                	jmp    0x406459
406414:	f6 46 0c 83          	testb  $0x83,0xc(%esi)
406418:	74 39                	je     0x406453
40641a:	56                   	push   %esi
40641b:	e8 fa 00 00 00       	call   0x40651a
406420:	56                   	push   %esi
406421:	8b f8                	mov    %eax,%edi
406423:	e8 b4 7c 00 00       	call   0x40e0dc
406428:	56                   	push   %esi
406429:	e8 0b 7b 00 00       	call   0x40df39
40642e:	50                   	push   %eax
40642f:	e8 29 7b 00 00       	call   0x40df5d
406434:	83 c4 10             	add    $0x10,%esp
406437:	85 c0                	test   %eax,%eax
406439:	79 05                	jns    0x406440
40643b:	83 cf ff             	or     $0xffffffff,%edi
40643e:	eb 13                	jmp    0x406453
406440:	83 7e 1c 00          	cmpl   $0x0,0x1c(%esi)
406444:	74 0d                	je     0x406453
406446:	ff 76 1c             	push   0x1c(%esi)
406449:	e8 ca ec ff ff       	call   0x405118
40644e:	83 66 1c 00          	andl   $0x0,0x1c(%esi)
406452:	59                   	pop    %ecx
406453:	83 66 0c 00          	andl   $0x0,0xc(%esi)
406457:	8b c7                	mov    %edi,%eax
406459:	5f                   	pop    %edi
40645a:	5e                   	pop    %esi
40645b:	5d                   	pop    %ebp
40645c:	c3                   	ret
40645d:	6a 0c                	push   $0xc
40645f:	68 08 e2 41 00       	push   $0x41e208
406464:	e8 47 49 00 00       	call   0x40adb0
406469:	83 cf ff             	or     $0xffffffff,%edi
40646c:	89 7d e4             	mov    %edi,-0x1c(%ebp)
40646f:	33 c0                	xor    %eax,%eax
406471:	8b 75 08             	mov    0x8(%ebp),%esi
406474:	85 f6                	test   %esi,%esi
406476:	0f 95 c0             	setne  %al
406479:	85 c0                	test   %eax,%eax
40647b:	75 18                	jne    0x406495