417194:	57                   	push   %edi
417195:	8d 7d 10             	lea    0x10(%ebp),%edi
417198:	8d 7f 04             	lea    0x4(%edi),%edi
41719b:	ff 37                	push   (%edi)
41719d:	ff 75 0c             	push   0xc(%ebp)
4171a0:	ff 75 08             	push   0x8(%ebp)
4171a3:	e8 33 86 00 00       	call   0x41f7db
4171a8:	83 c4 0c             	add    $0xc,%esp
4171ab:	85 c0                	test   %eax,%eax
4171ad:	75 0b                	jne    0x4171ba
4171af:	46                   	inc    %esi
4171b0:	3b 75 10             	cmp    0x10(%ebp),%esi
4171b3:	7c e3                	jl     0x417198
4171b5:	5f                   	pop    %edi
4171b6:	5e                   	pop    %esi
4171b7:	5b                   	pop    %ebx
4171b8:	5d                   	pop    %ebp
4171b9:	c3                   	ret
4171ba:	53                   	push   %ebx
4171bb:	53                   	push   %ebx
4171bc:	53                   	push   %ebx
4171bd:	53                   	push   %ebx
4171be:	53                   	push   %ebx
4171bf:	e8 4b 4b ff ff       	call   0x40bd0f
4171c4:	cc                   	int3
4171c5:	8b ff                	mov    %edi,%edi
4171c7:	55                   	push   %ebp
4171c8:	8b ec                	mov    %esp,%ebp
4171ca:	83 ec 28             	sub    $0x28,%esp
4171cd:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
4171d1:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
4171d5:	83 7d 08 05          	cmpl   $0x5,0x8(%ebp)
4171d9:	76 14                	jbe    0x4171ef
4171db:	e8 8b d8 ff ff       	call   0x414a6b
4171e0:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4171e6:	e8 f7 4a ff ff       	call   0x40bce2
4171eb:	33 c0                	xor    %eax,%eax
4171ed:	eb 52                	jmp    0x417241
4171ef:	e8 68 19 00 00       	call   0x418b5c
4171f4:	89 45 f8             	mov    %eax,-0x8(%ebp)
4171f7:	e8 a8 98 00 00       	call   0x420aa4
4171fc:	8b 45 f8             	mov    -0x8(%ebp),%eax
4171ff:	8d 4d ff             	lea    -0x1(%ebp),%ecx
417202:	83 88 50 03 00 00 10 	orl    $0x10,0x350(%eax)
417209:	8d 45 f8             	lea    -0x8(%ebp),%eax
41720c:	89 45 ec             	mov    %eax,-0x14(%ebp)
41720f:	8d 45 f0             	lea    -0x10(%ebp),%eax
417212:	89 45 d8             	mov    %eax,-0x28(%ebp)
417215:	8d 45 f8             	lea    -0x8(%ebp),%eax
417218:	89 45 dc             	mov    %eax,-0x24(%ebp)
41721b:	8d 45 f4             	lea    -0xc(%ebp),%eax
41721e:	89 45 e0             	mov    %eax,-0x20(%ebp)
417221:	8d 45 08             	lea    0x8(%ebp),%eax
417224:	89 45 e4             	mov    %eax,-0x1c(%ebp)
417227:	8d 45 0c             	lea    0xc(%ebp),%eax
41722a:	89 45 e8             	mov    %eax,-0x18(%ebp)
41722d:	8d 45 ec             	lea    -0x14(%ebp),%eax
417230:	50                   	push   %eax
417231:	8d 45 d8             	lea    -0x28(%ebp),%eax
417234:	50                   	push   %eax
417235:	8d 45 ff             	lea    -0x1(%ebp),%eax
417238:	50                   	push   %eax
417239:	e8 dc f6 ff ff       	call   0x41691a
41723e:	8b 45 f4             	mov    -0xc(%ebp),%eax
417241:	8b e5                	mov    %ebp,%esp
417243:	5d                   	pop    %ebp
417244:	c3                   	ret
417245:	8b ff                	mov    %edi,%edi
417247:	55                   	push   %ebp
417248:	8b ec                	mov    %esp,%ebp
41724a:	83 ec 0c             	sub    $0xc,%esp
41724d:	53                   	push   %ebx
41724e:	56                   	push   %esi
41724f:	33 f6                	xor    %esi,%esi
417251:	46                   	inc    %esi
417252:	68 a6 06 00 00       	push   $0x6a6
417257:	89 75 f8             	mov    %esi,-0x8(%ebp)
41725a:	e8 eb da ff ff       	call   0x414d4a
41725f:	8b d8                	mov    %eax,%ebx
417261:	33 c0                	xor    %eax,%eax
417263:	59                   	pop    %ecx
417264:	85 db                	test   %ebx,%ebx
417266:	0f 84 13 01 00 00    	je     0x41737f
41726c:	57                   	push   %edi
41726d:	8d 7b 04             	lea    0x4(%ebx),%edi
417270:	66 89 07             	mov    %ax,(%edi)
417273:	89 33                	mov    %esi,(%ebx)
417275:	8b 75 08             	mov    0x8(%ebp),%esi
417278:	8d 46 30             	lea    0x30(%esi),%eax
41727b:	ff 30                	push   (%eax)
41727d:	89 45 f4             	mov    %eax,-0xc(%ebp)
417280:	68 94 c7 42 00       	push   $0x42c794
417285:	ff 35 4c c6 42 00    	push   0x42c64c
41728b:	6a 03                	push   $0x3
41728d:	68 51 03 00 00       	push   $0x351
417292:	57                   	push   %edi
417293:	e8 ec fe ff ff       	call   0x417184
417298:	b8 4c c6 42 00       	mov    $0x42c64c,%eax
41729d:	83 c4 18             	add    $0x18,%esp
4172a0:	89 45 fc             	mov    %eax,-0x4(%ebp)
4172a3:	68 90 c7 42 00       	push   $0x42c790
4172a8:	68 51 03 00 00       	push   $0x351
4172ad:	57                   	push   %edi
4172ae:	e8 28 85 00 00       	call   0x41f7db
4172b3:	83 c4 0c             	add    $0xc,%esp
4172b6:	85 c0                	test   %eax,%eax
4172b8:	0f 85 13 01 00 00    	jne    0x4173d1
4172be:	8b 45 f4             	mov    -0xc(%ebp),%eax
4172c1:	8d 48 10             	lea    0x10(%eax),%ecx
4172c4:	8b 00                	mov    (%eax),%eax
4172c6:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4172c9:	8b 09                	mov    (%ecx),%ecx
4172cb:	66 8b 10             	mov    (%eax),%dx
4172ce:	66 3b 11             	cmp    (%ecx),%dx
4172d1:	75 1e                	jne    0x4172f1
4172d3:	66 85 d2             	test   %dx,%dx
4172d6:	74 15                	je     0x4172ed
4172d8:	66 8b 50 02          	mov    0x2(%eax),%dx
4172dc:	66 3b 51 02          	cmp    0x2(%ecx),%dx
4172e0:	75 0f                	jne    0x4172f1
4172e2:	83 c0 04             	add    $0x4,%eax
4172e5:	83 c1 04             	add    $0x4,%ecx
4172e8:	66 85 d2             	test   %dx,%dx
4172eb:	75 de                	jne    0x4172cb
4172ed:	33 c0                	xor    %eax,%eax
4172ef:	eb 05                	jmp    0x4172f6
4172f1:	1b c0                	sbb    %eax,%eax
4172f3:	83 c8 01             	or     $0x1,%eax
4172f6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4172f9:	f7 d8                	neg    %eax
4172fb:	1b c0                	sbb    %eax,%eax
4172fd:	83 c1 0c             	add    $0xc,%ecx
417300:	f7 d0                	not    %eax
417302:	89 4d fc             	mov    %ecx,-0x4(%ebp)
417305:	21 45 f8             	and    %eax,-0x8(%ebp)
417308:	8b 45 f4             	mov    -0xc(%ebp),%eax
41730b:	89 45 f4             	mov    %eax,-0xc(%ebp)
41730e:	ff 30                	push   (%eax)
417310:	68 94 c7 42 00       	push   $0x42c794
417315:	ff 31                	push   (%ecx)
417317:	6a 03                	push   $0x3
417319:	68 51 03 00 00       	push   $0x351
41731e:	57                   	push   %edi
41731f:	e8 60 fe ff ff       	call   0x417184
417324:	8b 45 fc             	mov    -0x4(%ebp),%eax
417327:	83 c4 18             	add    $0x18,%esp
41732a:	3d 7c c6 42 00       	cmp    $0x42c67c,%eax
41732f:	0f 8c 6e ff ff ff    	jl     0x4172a3
417335:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
417339:	75 4a                	jne    0x417385
41733b:	8b 4e 28             	mov    0x28(%esi),%ecx
41733e:	83 cf ff             	or     $0xffffffff,%edi
417341:	85 c9                	test   %ecx,%ecx
417343:	74 11                	je     0x417356
417345:	8b c7                	mov    %edi,%eax
417347:	f0 0f c1 01          	lock xadd %eax,(%ecx)
41734b:	75 09                	jne    0x417356
41734d:	ff 76 28             	push   0x28(%esi)
417350:	e8 bb d9 ff ff       	call   0x414d10
417355:	59                   	pop    %ecx
417356:	8b 46 24             	mov    0x24(%esi),%eax
417359:	85 c0                	test   %eax,%eax
41735b:	74 10                	je     0x41736d
41735d:	f0 0f c1 38          	lock xadd %edi,(%eax)
417361:	4f                   	dec    %edi
417362:	75 09                	jne    0x41736d
417364:	ff 76 24             	push   0x24(%esi)
417367:	e8 a4 d9 ff ff       	call   0x414d10
41736c:	59                   	pop    %ecx
41736d:	83 66 24 00          	andl   $0x0,0x24(%esi)
417371:	8d 43 04             	lea    0x4(%ebx),%eax
417374:	83 66 1c 00          	andl   $0x0,0x1c(%esi)
417378:	89 5e 28             	mov    %ebx,0x28(%esi)
41737b:	89 46 20             	mov    %eax,0x20(%esi)
41737e:	5f                   	pop    %edi
41737f:	5e                   	pop    %esi
417380:	5b                   	pop    %ebx
417381:	8b e5                	mov    %ebp,%esp
417383:	5d                   	pop    %ebp
417384:	c3                   	ret
417385:	53                   	push   %ebx
417386:	e8 85 d9 ff ff       	call   0x414d10
41738b:	59                   	pop    %ecx
41738c:	8b 4e 28             	mov    0x28(%esi),%ecx
41738f:	83 cf ff             	or     $0xffffffff,%edi
417392:	85 c9                	test   %ecx,%ecx
417394:	74 11                	je     0x4173a7
417396:	8b c7                	mov    %edi,%eax
417398:	f0 0f c1 01          	lock xadd %eax,(%ecx)
41739c:	75 09                	jne    0x4173a7
41739e:	ff 76 28             	push   0x28(%esi)
4173a1:	e8 6a d9 ff ff       	call   0x414d10
4173a6:	59                   	pop    %ecx
4173a7:	8b 46 24             	mov    0x24(%esi),%eax
4173aa:	85 c0                	test   %eax,%eax
4173ac:	74 10                	je     0x4173be
4173ae:	f0 0f c1 38          	lock xadd %edi,(%eax)
4173b2:	4f                   	dec    %edi
4173b3:	75 09                	jne    0x4173be
4173b5:	ff 76 24             	push   0x24(%esi)
4173b8:	e8 53 d9 ff ff       	call   0x414d10
4173bd:	59                   	pop    %ecx
4173be:	33 c0                	xor    %eax,%eax
4173c0:	89 46 24             	mov    %eax,0x24(%esi)
4173c3:	89 46 1c             	mov    %eax,0x1c(%esi)
4173c6:	89 46 28             	mov    %eax,0x28(%esi)
4173c9:	89 46 20             	mov    %eax,0x20(%esi)
4173cc:	8b 46 40             	mov    0x40(%esi),%eax
4173cf:	eb ad                	jmp    0x41737e
4173d1:	33 c0                	xor    %eax,%eax
4173d3:	50                   	push   %eax
4173d4:	50                   	push   %eax
4173d5:	50                   	push   %eax
4173d6:	50                   	push   %eax
4173d7:	50                   	push   %eax
4173d8:	e8 32 49 ff ff       	call   0x40bd0f
4173dd:	cc                   	int3
4173de:	8b ff                	mov    %edi,%edi
4173e0:	55                   	push   %ebp
4173e1:	8b ec                	mov    %esp,%ebp
4173e3:	81 ec d0 01 00 00    	sub    $0x1d0,%esp
4173e9:	a1 28 ba 43 00       	mov    0x43ba28,%eax
4173ee:	33 c5                	xor    %ebp,%eax
4173f0:	89 45 fc             	mov    %eax,-0x4(%ebp)
4173f3:	8b 45 0c             	mov    0xc(%ebp),%eax
4173f6:	53                   	push   %ebx
4173f7:	56                   	push   %esi
4173f8:	8b 75 10             	mov    0x10(%ebp),%esi
4173fb:	57                   	push   %edi
4173fc:	8b 7d 08             	mov    0x8(%ebp),%edi
4173ff:	89 bd 38 fe ff ff    	mov    %edi,-0x1c8(%ebp)
417405:	85 c0                	test   %eax,%eax
417407:	74 21                	je     0x41742a
417409:	85 f6                	test   %esi,%esi
41740b:	74 10                	je     0x41741d
41740d:	56                   	push   %esi
41740e:	50                   	push   %eax
41740f:	57                   	push   %edi
417410:	e8 ae 02 00 00       	call   0x4176c3
417415:	83 c4 0c             	add    $0xc,%esp
417418:	e9 83 02 00 00       	jmp    0x4176a0
41741d:	83 c0 02             	add    $0x2,%eax
417420:	03 c0                	add    %eax,%eax
417422:	8b 04 c7             	mov    (%edi,%eax,8),%eax
417425:	e9 76 02 00 00       	jmp    0x4176a0
41742a:	33 c0                	xor    %eax,%eax
41742c:	c7 85 40 fe ff ff 01 	movl   $0x1,-0x1c0(%ebp)
417433:	00 00 00
417436:	89 85 34 fe ff ff    	mov    %eax,-0x1cc(%ebp)
41743c:	8b d8                	mov    %eax,%ebx
41743e:	89 9d 44 fe ff ff    	mov    %ebx,-0x1bc(%ebp)
417444:	85 f6                	test   %esi,%esi
417446:	0f 84 4d 02 00 00    	je     0x417699
41744c:	66 83 3e 4c          	cmpw   $0x4c,(%esi)
417450:	0f 85 61 01 00 00    	jne    0x4175b7
417456:	66 83 7e 02 43       	cmpw   $0x43,0x2(%esi)
41745b:	0f 85 56 01 00 00    	jne    0x4175b7
417461:	66 83 7e 04 5f       	cmpw   $0x5f,0x4(%esi)
417466:	0f 85 4b 01 00 00    	jne    0x4175b7
41746c:	68 88 c7 42 00       	push   $0x42c788
417471:	56                   	push   %esi
417472:	e8 1e 93 00 00       	call   0x420795
417477:	8b d8                	mov    %eax,%ebx
417479:	89 9d 30 fe ff ff    	mov    %ebx,-0x1d0(%ebp)
41747f:	59                   	pop    %ecx
417480:	59                   	pop    %ecx
417481:	85 db                	test   %ebx,%ebx
417483:	0f 84 27 01 00 00    	je     0x4175b0
417489:	2b c6                	sub    %esi,%eax
41748b:	d1 f8                	sar    $1,%eax
41748d:	89 85 40 fe ff ff    	mov    %eax,-0x1c0(%ebp)
417493:	0f 84 17 01 00 00    	je     0x4175b0
417499:	6a 3b                	push   $0x3b
41749b:	58                   	pop    %eax
41749c:	66 39 03             	cmp    %ax,(%ebx)
41749f:	0f 84 0b 01 00 00    	je     0x4175b0
4174a5:	8b bd 40 fe ff ff    	mov    -0x1c0(%ebp),%edi
4174ab:	bb 4c c6 42 00       	mov    $0x42c64c,%ebx
4174b0:	c7 85 3c fe ff ff 01 	movl   $0x1,-0x1c4(%ebp)
4174b7:	00 00 00
4174ba:	57                   	push   %edi
4174bb:	56                   	push   %esi
4174bc:	ff 33                	push   (%ebx)
4174be:	e8 98 92 00 00       	call   0x42075b
4174c3:	83 c4 0c             	add    $0xc,%esp
4174c6:	85 c0                	test   %eax,%eax
4174c8:	75 1c                	jne    0x4174e6
4174ca:	8b 0b                	mov    (%ebx),%ecx
4174cc:	8d 51 02             	lea    0x2(%ecx),%edx
4174cf:	66 8b 01             	mov    (%ecx),%ax
4174d2:	83 c1 02             	add    $0x2,%ecx
4174d5:	66 3b 85 34 fe ff ff 	cmp    -0x1cc(%ebp),%ax
4174dc:	75 f1                	jne    0x4174cf
4174de:	2b ca                	sub    %edx,%ecx
4174e0:	d1 f9                	sar    $1,%ecx
4174e2:	3b f9                	cmp    %ecx,%edi
4174e4:	74 11                	je     0x4174f7
4174e6:	ff 85 3c fe ff ff    	incl   -0x1c4(%ebp)
4174ec:	83 c3 0c             	add    $0xc,%ebx
4174ef:	81 fb 7c c6 42 00    	cmp    $0x42c67c,%ebx
4174f5:	7e c3                	jle    0x4174ba
4174f7:	8b 9d 30 fe ff ff    	mov    -0x1d0(%ebp),%ebx
4174fd:	83 c3 02             	add    $0x2,%ebx
417500:	68 90 c7 42 00       	push   $0x42c790
417505:	53                   	push   %ebx
417506:	e8 00 92 00 00       	call   0x42070b
41750b:	8b bd 38 fe ff ff    	mov    -0x1c8(%ebp),%edi
417511:	8b f0                	mov    %eax,%esi
417513:	59                   	pop    %ecx
417514:	59                   	pop    %ecx
417515:	85 f6                	test   %esi,%esi
417517:	75 0c                	jne    0x417525
417519:	6a 3b                	push   $0x3b
41751b:	58                   	pop    %eax
41751c:	66 39 03             	cmp    %ax,(%ebx)
41751f:	0f 85 8b 00 00 00    	jne    0x4175b0
417525:	83 bd 3c fe ff ff 05 	cmpl   $0x5,-0x1c4(%ebp)
41752c:	7f 5f                	jg     0x41758d
41752e:	56                   	push   %esi
41752f:	53                   	push   %ebx
417530:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
417536:	68 83 00 00 00       	push   $0x83
41753b:	50                   	push   %eax
41753c:	e8 dc 83 00 00       	call   0x41f91d
417541:	83 c4 10             	add    $0x10,%esp
417544:	85 c0                	test   %eax,%eax
417546:	0f 85 6a 01 00 00    	jne    0x4176b6
41754c:	8d 04 36             	lea    (%esi,%esi,1),%eax
41754f:	3d 06 01 00 00       	cmp    $0x106,%eax
417554:	0f 83 57 01 00 00    	jae    0x4176b1
41755a:	33 c9                	xor    %ecx,%ecx
41755c:	66 89 8c 05 f4 fe ff 	mov    %cx,-0x10c(%ebp,%eax,1)
417563:	ff
417564:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
41756a:	50                   	push   %eax
41756b:	ff b5 3c fe ff ff    	push   -0x1c4(%ebp)
417571:	57                   	push   %edi
417572:	e8 4c 01 00 00       	call   0x4176c3
417577:	83 c4 0c             	add    $0xc,%esp
41757a:	85 c0                	test   %eax,%eax
41757c:	8b 85 44 fe ff ff    	mov    -0x1bc(%ebp),%eax
417582:	74 0f                	je     0x417593
417584:	40                   	inc    %eax
417585:	89 85 44 fe ff ff    	mov    %eax,-0x1bc(%ebp)
41758b:	eb 06                	jmp    0x417593
41758d:	8b 85 44 fe ff ff    	mov    -0x1bc(%ebp),%eax
417593:	8d 34 73             	lea    (%ebx,%esi,2),%esi
417596:	33 c9                	xor    %ecx,%ecx
417598:	66 39 0e             	cmp    %cx,(%esi)
41759b:	74 0c                	je     0x4175a9