409398:	59                   	pop    %ecx
409399:	f7 f1                	div    %ecx
40939b:	b9 e0 c9 43 00       	mov    $0x43c9e0,%ecx
4093a0:	50                   	push   %eax
4093a1:	0f b7 85 b4 fe ff ff 	movzwl -0x14c(%ebp),%eax
4093a8:	68 c0 c9 43 00       	push   $0x43c9c0
4093ad:	50                   	push   %eax
4093ae:	0f b7 85 b2 fe ff ff 	movzwl -0x14e(%ebp),%eax
4093b5:	51                   	push   %ecx
4093b6:	50                   	push   %eax
4093b7:	0f b7 85 b0 fe ff ff 	movzwl -0x150(%ebp),%eax
4093be:	51                   	push   %ecx
4093bf:	50                   	push   %eax
4093c0:	68 2c 22 40 00       	push   $0x40222c
4093c5:	85 f6                	test   %esi,%esi
4093c7:	0f 84 ff 27 01 00    	je     0x41bbcc
4093cd:	ff 75 0c             	push   0xc(%ebp)
4093d0:	56                   	push   %esi
4093d1:	e8 e9 06 00 00       	call   0x409abf
4093d6:	83 c4 28             	add    $0x28,%esp
4093d9:	8d 56 02             	lea    0x2(%esi),%edx
4093dc:	33 c9                	xor    %ecx,%ecx
4093de:	6a 02                	push   $0x2
4093e0:	5b                   	pop    %ebx
4093e1:	66 8b 06             	mov    (%esi),%ax
4093e4:	03 f3                	add    %ebx,%esi
4093e6:	66 3b c1             	cmp    %cx,%ax
4093e9:	75 f6                	jne    0x4093e1
4093eb:	2b f2                	sub    %edx,%esi
4093ed:	d1 fe                	sar    $1,%esi
4093ef:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4093f2:	8b c6                	mov    %esi,%eax
4093f4:	5f                   	pop    %edi
4093f5:	5e                   	pop    %esi
4093f6:	33 cd                	xor    %ebp,%ecx
4093f8:	5b                   	pop    %ebx
4093f9:	e8 32 d7 00 00       	call   0x416b30
4093fe:	c9                   	leave
4093ff:	c2 08 00             	ret    $0x8
409402:	8b ff                	mov    %edi,%edi
409404:	55                   	push   %ebp
409405:	8b ec                	mov    %esp,%ebp
409407:	51                   	push   %ecx
409408:	8b 45 08             	mov    0x8(%ebp),%eax
40940b:	56                   	push   %esi
40940c:	57                   	push   %edi
40940d:	ff 75 0c             	push   0xc(%ebp)
409410:	8b f9                	mov    %ecx,%edi
409412:	8b f2                	mov    %edx,%esi
409414:	33 c9                	xor    %ecx,%ecx
409416:	66 89 0c 47          	mov    %cx,(%edi,%eax,2)
40941a:	8b cf                	mov    %edi,%ecx
40941c:	e8 1f 68 00 00       	call   0x40fc40
409421:	ff 75 10             	push   0x10(%ebp)
409424:	8b d6                	mov    %esi,%edx
409426:	8b cf                	mov    %edi,%ecx
409428:	e8 97 07 00 00       	call   0x409bc4
40942d:	5f                   	pop    %edi
40942e:	5e                   	pop    %esi
40942f:	59                   	pop    %ecx
409430:	5d                   	pop    %ebp
409431:	c2 0c 00             	ret    $0xc
409434:	a1 a0 25 43 00       	mov    0x4325a0,%eax
409439:	3d a4 03 00 00       	cmp    $0x3a4,%eax
40943e:	74 15                	je     0x409455
409440:	3d a8 03 00 00       	cmp    $0x3a8,%eax
409445:	74 0e                	je     0x409455
409447:	3d b4 03 00 00       	cmp    $0x3b4,%eax
40944c:	0f 87 8f 29 01 00    	ja     0x41bde1
409452:	32 c0                	xor    %al,%al
409454:	c3                   	ret
409455:	b0 01                	mov    $0x1,%al
409457:	c3                   	ret
409458:	68 08 01 00 00       	push   $0x108
40945d:	68 d0 c9 42 00       	push   $0x42c9d0
409462:	e8 29 e9 00 00       	call   0x417d90
409467:	89 95 58 ff ff ff    	mov    %edx,-0xa8(%ebp)
40946d:	89 8d 44 ff ff ff    	mov    %ecx,-0xbc(%ebp)
409473:	8b 7d 0c             	mov    0xc(%ebp),%edi
409476:	8b 5d 10             	mov    0x10(%ebp),%ebx
409479:	33 f6                	xor    %esi,%esi
40947b:	89 b5 54 ff ff ff    	mov    %esi,-0xac(%ebp)
409481:	89 b5 5c ff ff ff    	mov    %esi,-0xa4(%ebp)
409487:	89 b5 50 ff ff ff    	mov    %esi,-0xb0(%ebp)
40948d:	c7 85 4c ff ff ff 20 	movl   $0x20,-0xb4(%ebp)
409494:	00 00 00
409497:	8d 85 4c ff ff ff    	lea    -0xb4(%ebp),%eax
40949d:	50                   	push   %eax
40949e:	56                   	push   %esi
40949f:	33 c0                	xor    %eax,%eax
4094a1:	40                   	inc    %eax
4094a2:	50                   	push   %eax
4094a3:	8d 85 60 ff ff ff    	lea    -0xa0(%ebp),%eax
4094a9:	50                   	push   %eax
4094aa:	ff 15 04 a2 44 00    	call   *0x44a204
4094b0:	85 c0                	test   %eax,%eax
4094b2:	0f 84 39 29 01 00    	je     0x41bdf1
4094b8:	33 c9                	xor    %ecx,%ecx
4094ba:	41                   	inc    %ecx
4094bb:	89 8d 48 ff ff ff    	mov    %ecx,-0xb8(%ebp)
4094c1:	56                   	push   %esi
4094c2:	56                   	push   %esi
4094c3:	6a 04                	push   $0x4
4094c5:	8d 85 48 ff ff ff    	lea    -0xb8(%ebp),%eax
4094cb:	50                   	push   %eax
4094cc:	68 01 00 06 00       	push   $0x60001
4094d1:	56                   	push   %esi
4094d2:	8d 85 60 ff ff ff    	lea    -0xa0(%ebp),%eax
4094d8:	50                   	push   %eax
4094d9:	ff 15 00 a2 44 00    	call   *0x44a200
4094df:	85 c0                	test   %eax,%eax
4094e1:	0f 84 26 29 01 00    	je     0x41be0d
4094e7:	6a 48                	push   $0x48
4094e9:	56                   	push   %esi
4094ea:	8d 85 e8 fe ff ff    	lea    -0x118(%ebp),%eax
4094f0:	50                   	push   %eax
4094f1:	e8 c7 ea 00 00       	call   0x417fbd
4094f6:	83 c4 0c             	add    $0xc,%esp
4094f9:	8d 85 60 ff ff ff    	lea    -0xa0(%ebp),%eax
4094ff:	89 85 2c ff ff ff    	mov    %eax,-0xd4(%ebp)
409505:	c7 85 e8 fe ff ff 48 	movl   $0x48,-0x118(%ebp)
40950c:	00 00 00
40950f:	8b 45 14             	mov    0x14(%ebp),%eax
409512:	89 85 f4 fe ff ff    	mov    %eax,-0x10c(%ebp)
409518:	89 b5 f8 fe ff ff    	mov    %esi,-0x108(%ebp)
40951e:	33 c9                	xor    %ecx,%ecx
409520:	41                   	inc    %ecx
409521:	89 8d fc fe ff ff    	mov    %ecx,-0x104(%ebp)
409527:	6a 64                	push   $0x64
409529:	58                   	pop    %eax
40952a:	89 85 00 ff ff ff    	mov    %eax,-0x100(%ebp)
409530:	89 85 04 ff ff ff    	mov    %eax,-0xfc(%ebp)
409536:	89 b5 14 ff ff ff    	mov    %esi,-0xec(%ebp)
40953c:	66 89 8d 18 ff ff ff 	mov    %cx,-0xe8(%ebp)
409543:	6a 44                	push   $0x44
409545:	56                   	push   %esi
409546:	8d 45 98             	lea    -0x68(%ebp),%eax
409549:	50                   	push   %eax
40954a:	e8 6e ea 00 00       	call   0x417fbd
40954f:	83 c4 0c             	add    $0xc,%esp
409552:	c7 45 98 44 00 00 00 	movl   $0x44,-0x68(%ebp)
409559:	8d 45 98             	lea    -0x68(%ebp),%eax
40955c:	50                   	push   %eax
40955d:	ff 15 f0 a1 44 00    	call   *0x44a1f0
409563:	8b 45 a0             	mov    -0x60(%ebp),%eax
409566:	89 85 f0 fe ff ff    	mov    %eax,-0x110(%ebp)
40956c:	89 75 fc             	mov    %esi,-0x4(%ebp)
40956f:	b9 1c 22 40 00       	mov    $0x40221c,%ecx
409574:	e8 17 88 00 00       	call   0x411d90
409579:	85 c0                	test   %eax,%eax
40957b:	75 05                	jne    0x409582
40957d:	b8 b8 20 40 00       	mov    $0x4020b8,%eax
409582:	8b c8                	mov    %eax,%ecx
409584:	e8 27 17 00 00       	call   0x40acb0
409589:	89 85 50 ff ff ff    	mov    %eax,-0xb0(%ebp)
40958f:	85 c0                	test   %eax,%eax
409591:	0f 84 b2 28 01 00    	je     0x41be49
409597:	83 3d 58 67 43 00 00 	cmpl   $0x0,0x436758
40959e:	0f 84 c0 28 01 00    	je     0x41be64
4095a4:	6a 5c                	push   $0x5c
4095a6:	5a                   	pop    %edx
4095a7:	8b cb                	mov    %ebx,%ecx
4095a9:	e8 47 6c 00 00       	call   0x4101f5
4095ae:	85 c0                	test   %eax,%eax
4095b0:	74 14                	je     0x4095c6
4095b2:	68 bc 20 40 00       	push   $0x4020bc
4095b7:	50                   	push   %eax
4095b8:	ff 15 70 a2 44 00    	call   *0x44a270
4095be:	85 c0                	test   %eax,%eax
4095c0:	0f 84 bd 28 01 00    	je     0x41be83
4095c6:	e8 6a ec ff ff       	call   0x408235
4095cb:	a1 48 67 43 00       	mov    0x436748,%eax
4095d0:	85 c0                	test   %eax,%eax
4095d2:	0f 85 2e 01 00 00    	jne    0x409706
4095d8:	a1 f8 8d 44 00       	mov    0x448df8,%eax
4095dd:	85 c0                	test   %eax,%eax
4095df:	0f 84 df 28 01 00    	je     0x41bec4
4095e5:	8d 8d 34 ff ff ff    	lea    -0xcc(%ebp),%ecx
4095eb:	51                   	push   %ecx
4095ec:	8d 8d e8 fe ff ff    	lea    -0x118(%ebp),%ecx
4095f2:	51                   	push   %ecx
4095f3:	50                   	push   %eax
4095f4:	56                   	push   %esi
4095f5:	68 00 00 08 00       	push   $0x80000
4095fa:	33 c0                	xor    %eax,%eax
4095fc:	40                   	inc    %eax
4095fd:	50                   	push   %eax
4095fe:	56                   	push   %esi
4095ff:	56                   	push   %esi
409600:	57                   	push   %edi
409601:	53                   	push   %ebx
409602:	ff 15 f8 a1 44 00    	call   *0x44a1f8
409608:	8b f8                	mov    %eax,%edi
40960a:	85 ff                	test   %edi,%edi
40960c:	0f 84 bc 28 01 00    	je     0x41bece
409612:	8b 85 34 ff ff ff    	mov    -0xcc(%ebp),%eax
409618:	89 85 5c ff ff ff    	mov    %eax,-0xa4(%ebp)
40961e:	ff b5 38 ff ff ff    	push   -0xc8(%ebp)
409624:	ff 15 1c a1 44 00    	call   *0x44a11c
40962a:	8b 95 50 ff ff ff    	mov    -0xb0(%ebp),%edx
409630:	b9 1c 22 40 00       	mov    $0x40221c,%ecx
409635:	e8 3c 13 00 00       	call   0x40a976
40963a:	85 ff                	test   %edi,%edi
40963c:	0f 84 a2 28 01 00    	je     0x41bee4
409642:	8b 85 5c ff ff ff    	mov    -0xa4(%ebp),%eax
409648:	8b f8                	mov    %eax,%edi
40964a:	33 c9                	xor    %ecx,%ecx
40964c:	41                   	inc    %ecx
40964d:	23 f9                	and    %ecx,%edi
40964f:	8b c8                	mov    %eax,%ecx
409651:	6a 02                	push   $0x2
409653:	5a                   	pop    %edx
409654:	23 ca                	and    %edx,%ecx
409656:	85 c0                	test   %eax,%eax
409658:	0f 84 e4 00 00 00    	je     0x409742
40965e:	8b 9d 58 ff ff ff    	mov    -0xa8(%ebp),%ebx
409664:	83 3d 58 67 43 00 00 	cmpl   $0x0,0x436758
40966b:	0f 84 a5 00 00 00    	je     0x409716
409671:	89 b5 54 ff ff ff    	mov    %esi,-0xac(%ebp)
409677:	33 c0                	xor    %eax,%eax
409679:	40                   	inc    %eax
40967a:	a3 98 25 43 00       	mov    %eax,0x432598
40967f:	85 db                	test   %ebx,%ebx
409681:	0f 85 a1 00 00 00    	jne    0x409728
409687:	8b 8d 5c ff ff ff    	mov    -0xa4(%ebp),%ecx
40968d:	e8 5a eb ff ff       	call   0x4081ec
409692:	a3 dc 65 43 00       	mov    %eax,0x4365dc
409697:	89 b5 5c ff ff ff    	mov    %esi,-0xa4(%ebp)
40969d:	8b f0                	mov    %eax,%esi
40969f:	89 b5 54 ff ff ff    	mov    %esi,-0xac(%ebp)
4096a5:	56                   	push   %esi
4096a6:	68 74 20 40 00       	push   $0x402074
4096ab:	6a 14                	push   $0x14
4096ad:	8d 45 b4             	lea    -0x4c(%ebp),%eax
4096b0:	50                   	push   %eax
4096b1:	e8 09 04 00 00       	call   0x409abf
4096b6:	83 c4 10             	add    $0x10,%esp
4096b9:	8d 55 b4             	lea    -0x4c(%ebp),%edx
4096bc:	b9 80 20 40 00       	mov    $0x402080,%ecx
4096c1:	e8 b0 12 00 00       	call   0x40a976
4096c6:	83 fe 20             	cmp    $0x20,%esi
4096c9:	0f 8d dd 28 01 00    	jge    0x41bfac
4096cf:	ba 94 20 40 00       	mov    $0x402094,%edx
4096d4:	b9 98 20 40 00       	mov    $0x402098,%ecx
4096d9:	e8 98 12 00 00       	call   0x40a976
4096de:	85 ff                	test   %edi,%edi
4096e0:	0f 85 eb 28 01 00    	jne    0x41bfd1
4096e6:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4096ed:	e8 58 00 00 00       	call   0x40974a
4096f2:	8b c6                	mov    %esi,%eax
4096f4:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4096f7:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4096fe:	59                   	pop    %ecx
4096ff:	5f                   	pop    %edi
409700:	5e                   	pop    %esi
409701:	5b                   	pop    %ebx
409702:	c9                   	leave
409703:	c2 10 00             	ret    $0x10
409706:	8b 48 30             	mov    0x30(%eax),%ecx
409709:	85 c9                	test   %ecx,%ecx
40970b:	0f 84 c7 fe ff ff    	je     0x4095d8
409711:	e9 77 27 01 00       	jmp    0x41be8d
409716:	83 3d 48 67 43 00 00 	cmpl   $0x0,0x436748
40971d:	0f 85 4e ff ff ff    	jne    0x409671
409723:	e9 42 28 01 00       	jmp    0x41bf6a
409728:	83 fb 04             	cmp    $0x4,%ebx
40972b:	0f 84 aa 28 01 00    	je     0x41bfdb
409731:	3b da                	cmp    %edx,%ebx
409733:	75 b1                	jne    0x4096e6
409735:	8b 85 5c ff ff ff    	mov    -0xa4(%ebp),%eax
40973b:	a3 e4 65 43 00       	mov    %eax,0x4365e4
409740:	eb a4                	jmp    0x4096e6
409742:	6a 04                	push   $0x4
409744:	5b                   	pop    %ebx
409745:	e9 27 ff ff ff       	jmp    0x409671
40974a:	8b 8d 50 ff ff ff    	mov    -0xb0(%ebp),%ecx
409750:	e8 0b 45 00 00       	call   0x40dc60
409755:	8d 85 60 ff ff ff    	lea    -0xa0(%ebp),%eax
40975b:	50                   	push   %eax
40975c:	ff 15 18 a2 44 00    	call   *0x44a218
409762:	c3                   	ret
409763:	cc                   	int3
409764:	cc                   	int3
409765:	cc                   	int3
409766:	cc                   	int3
409767:	cc                   	int3
409768:	cc                   	int3
409769:	cc                   	int3
40976a:	cc                   	int3
40976b:	cc                   	int3
40976c:	cc                   	int3
40976d:	cc                   	int3
40976e:	cc                   	int3
40976f:	cc                   	int3
409770:	8b ff                	mov    %edi,%edi
409772:	55                   	push   %ebp
409773:	8b ec                	mov    %esp,%ebp
409775:	8b 4d 08             	mov    0x8(%ebp),%ecx
409778:	8b 49 3c             	mov    0x3c(%ecx),%ecx
40977b:	e8 40 05 00 00       	call   0x409cc0
409780:	a3 dc 65 43 00       	mov    %eax,0x4365dc
409785:	5d                   	pop    %ebp
409786:	c2 04 00             	ret    $0x4
409789:	8b ff                	mov    %edi,%edi
40978b:	53                   	push   %ebx
40978c:	56                   	push   %esi
40978d:	57                   	push   %edi
40978e:	8b f1                	mov    %ecx,%esi
409790:	e8 9c 11 00 00       	call   0x40a931
409795:	6a 04                	push   $0x4
409797:	5b                   	pop    %ebx
409798:	8b cb                	mov    %ebx,%ecx
40979a:	89 46 38             	mov    %eax,0x38(%esi)
40979d:	e8 ce 34 00 00       	call   0x40cc70
4097a2:	3d 00 40 00 00       	cmp    $0x4000,%eax
4097a7:	0f 85 59 28 01 00    	jne    0x41c006
4097ad:	bf f0 4a 44 00       	mov    $0x444af0,%edi
4097b2:	b9 58 22 40 00       	mov    $0x402258,%ecx
4097b7:	8b c7                	mov    %edi,%eax
4097b9:	66 8b 10             	mov    (%eax),%dx
4097bc:	66 3b 11             	cmp    (%ecx),%dx
4097bf:	0f 85 08 01 00 00    	jne    0x4098cd
4097c5:	66 85 d2             	test   %dx,%dx
4097c8:	74 17                	je     0x4097e1
4097ca:	66 8b 50 02          	mov    0x2(%eax),%dx
4097ce:	66 3b 51 02          	cmp    0x2(%ecx),%dx
4097d2:	0f 85 f5 00 00 00    	jne    0x4098cd
4097d8:	03 c3                	add    %ebx,%eax
4097da:	03 cb                	add    %ebx,%ecx
4097dc:	66 85 d2             	test   %dx,%dx
4097df:	75 d8                	jne    0x4097b9
4097e1:	33 c0                	xor    %eax,%eax
4097e3:	85 c0                	test   %eax,%eax
4097e5:	0f 84 c3 00 00 00    	je     0x4098ae
4097eb:	8b 0d fc 66 43 00    	mov    0x4366fc,%ecx
4097f1:	3b cb                	cmp    %ebx,%ecx
4097f3:	72 45                	jb     0x40983a
4097f5:	6a 3d                	push   $0x3d
4097f7:	58                   	pop    %eax
4097f8:	66 39 05 f0 4a 44 00 	cmp    %ax,0x444af0
4097ff:	75 39                	jne    0x40983a
409801:	66 39 05 f2 4a 44 00 	cmp    %ax,0x444af2
409808:	75 30                	jne    0x40983a
40980a:	8d 0c 4d fc ff ff ff 	lea    -0x4(,%ecx,2),%ecx
409811:	e8 ba 44 00 00       	call   0x40dcd0
409816:	8b c8                	mov    %eax,%ecx
409818:	85 c9                	test   %ecx,%ecx
40981a:	0f 84 f0 27 01 00    	je     0x41c010
409820:	8b 15 fc 66 43 00    	mov    0x4366fc,%edx
409826:	68 f4 4a 44 00       	push   $0x444af4