407580:	50                   	push   %eax
407581:	e8 c3 28 00 00       	call   0x409e49
407586:	85 c0                	test   %eax,%eax
407588:	74 61                	je     0x4075eb
40758a:	68 64 03 00 00       	push   $0x364
40758f:	6a 01                	push   $0x1
407591:	e8 cd 03 00 00       	call   0x407963
407596:	8b f0                	mov    %eax,%esi
407598:	59                   	pop    %ecx
407599:	59                   	pop    %ecx
40759a:	85 f6                	test   %esi,%esi
40759c:	75 15                	jne    0x4075b3
40759e:	50                   	push   %eax
40759f:	ff 35 50 60 41 00    	push   0x416050
4075a5:	e8 9f 28 00 00       	call   0x409e49
4075aa:	56                   	push   %esi
4075ab:	e8 c9 02 00 00       	call   0x407879
4075b0:	59                   	pop    %ecx
4075b1:	eb 38                	jmp    0x4075eb
4075b3:	56                   	push   %esi
4075b4:	ff 35 50 60 41 00    	push   0x416050
4075ba:	e8 8a 28 00 00       	call   0x409e49
4075bf:	85 c0                	test   %eax,%eax
4075c1:	75 0f                	jne    0x4075d2
4075c3:	50                   	push   %eax
4075c4:	ff 35 50 60 41 00    	push   0x416050
4075ca:	e8 7a 28 00 00       	call   0x409e49
4075cf:	56                   	push   %esi
4075d0:	eb d9                	jmp    0x4075ab
4075d2:	68 ec 6e 41 00       	push   $0x416eec
4075d7:	56                   	push   %esi
4075d8:	e8 f1 fc ff ff       	call   0x4072ce
4075dd:	6a 00                	push   $0x0
4075df:	e8 95 02 00 00       	call   0x407879
4075e4:	83 c4 0c             	add    $0xc,%esp
4075e7:	8b c6                	mov    %esi,%eax
4075e9:	5e                   	pop    %esi
4075ea:	c3                   	ret
4075eb:	e8 ae f9 ff ff       	call   0x406f9e
4075f0:	cc                   	int3
4075f1:	8b ff                	mov    %edi,%edi
4075f3:	53                   	push   %ebx
4075f4:	57                   	push   %edi
4075f5:	ff 15 58 f0 40 00    	call   *0x40f058
4075fb:	8b f8                	mov    %eax,%edi
4075fd:	a1 50 60 41 00       	mov    0x416050,%eax
407602:	83 f8 ff             	cmp    $0xffffffff,%eax
407605:	74 1a                	je     0x407621
407607:	50                   	push   %eax
407608:	e8 fd 27 00 00       	call   0x409e0a
40760d:	85 c0                	test   %eax,%eax
40760f:	74 0b                	je     0x40761c
407611:	8d 58 01             	lea    0x1(%eax),%ebx
407614:	f7 db                	neg    %ebx
407616:	1b db                	sbb    %ebx,%ebx
407618:	23 d8                	and    %eax,%ebx
40761a:	eb 7a                	jmp    0x407696
40761c:	a1 50 60 41 00       	mov    0x416050,%eax
407621:	6a ff                	push   $0xffffffff
407623:	50                   	push   %eax
407624:	e8 20 28 00 00       	call   0x409e49
407629:	85 c0                	test   %eax,%eax
40762b:	75 04                	jne    0x407631
40762d:	33 db                	xor    %ebx,%ebx
40762f:	eb 65                	jmp    0x407696
407631:	56                   	push   %esi
407632:	68 64 03 00 00       	push   $0x364
407637:	6a 01                	push   $0x1
407639:	e8 25 03 00 00       	call   0x407963
40763e:	8b f0                	mov    %eax,%esi
407640:	59                   	pop    %ecx
407641:	59                   	pop    %ecx
407642:	85 f6                	test   %esi,%esi
407644:	75 11                	jne    0x407657
407646:	33 db                	xor    %ebx,%ebx
407648:	53                   	push   %ebx
407649:	ff 35 50 60 41 00    	push   0x416050
40764f:	e8 f5 27 00 00       	call   0x409e49
407654:	53                   	push   %ebx
407655:	eb 1f                	jmp    0x407676
407657:	56                   	push   %esi
407658:	ff 35 50 60 41 00    	push   0x416050
40765e:	e8 e6 27 00 00       	call   0x409e49
407663:	85 c0                	test   %eax,%eax
407665:	75 17                	jne    0x40767e
407667:	33 db                	xor    %ebx,%ebx
407669:	53                   	push   %ebx
40766a:	ff 35 50 60 41 00    	push   0x416050
407670:	e8 d4 27 00 00       	call   0x409e49
407675:	56                   	push   %esi
407676:	e8 fe 01 00 00       	call   0x407879
40767b:	59                   	pop    %ecx
40767c:	eb 17                	jmp    0x407695
40767e:	68 ec 6e 41 00       	push   $0x416eec
407683:	56                   	push   %esi
407684:	e8 45 fc ff ff       	call   0x4072ce
407689:	6a 00                	push   $0x0
40768b:	e8 e9 01 00 00       	call   0x407879
407690:	83 c4 0c             	add    $0xc,%esp
407693:	8b de                	mov    %esi,%ebx
407695:	5e                   	pop    %esi
407696:	57                   	push   %edi
407697:	ff 15 5c f0 40 00    	call   *0x40f05c
40769d:	5f                   	pop    %edi
40769e:	8b c3                	mov    %ebx,%eax
4076a0:	5b                   	pop    %ebx
4076a1:	c3                   	ret
4076a2:	8b ff                	mov    %edi,%edi
4076a4:	55                   	push   %ebp
4076a5:	8b ec                	mov    %esp,%ebp
4076a7:	a1 50 60 41 00       	mov    0x416050,%eax
4076ac:	56                   	push   %esi
4076ad:	57                   	push   %edi
4076ae:	33 ff                	xor    %edi,%edi
4076b0:	83 f8 ff             	cmp    $0xffffffff,%eax
4076b3:	74 18                	je     0x4076cd
4076b5:	50                   	push   %eax
4076b6:	e8 4f 27 00 00       	call   0x409e0a
4076bb:	8b f0                	mov    %eax,%esi
4076bd:	85 f6                	test   %esi,%esi
4076bf:	74 07                	je     0x4076c8
4076c1:	83 fe ff             	cmp    $0xffffffff,%esi
4076c4:	74 79                	je     0x40773f
4076c6:	eb 6e                	jmp    0x407736
4076c8:	a1 50 60 41 00       	mov    0x416050,%eax
4076cd:	6a ff                	push   $0xffffffff
4076cf:	50                   	push   %eax
4076d0:	e8 74 27 00 00       	call   0x409e49
4076d5:	85 c0                	test   %eax,%eax
4076d7:	74 66                	je     0x40773f
4076d9:	68 64 03 00 00       	push   $0x364
4076de:	6a 01                	push   $0x1
4076e0:	e8 7e 02 00 00       	call   0x407963
4076e5:	8b f0                	mov    %eax,%esi
4076e7:	59                   	pop    %ecx
4076e8:	59                   	pop    %ecx
4076e9:	85 f6                	test   %esi,%esi
4076eb:	75 15                	jne    0x407702
4076ed:	57                   	push   %edi
4076ee:	ff 35 50 60 41 00    	push   0x416050
4076f4:	e8 50 27 00 00       	call   0x409e49
4076f9:	57                   	push   %edi
4076fa:	e8 7a 01 00 00       	call   0x407879
4076ff:	59                   	pop    %ecx
407700:	eb 3d                	jmp    0x40773f
407702:	56                   	push   %esi
407703:	ff 35 50 60 41 00    	push   0x416050
407709:	e8 3b 27 00 00       	call   0x409e49
40770e:	85 c0                	test   %eax,%eax
407710:	75 0f                	jne    0x407721
407712:	57                   	push   %edi
407713:	ff 35 50 60 41 00    	push   0x416050
407719:	e8 2b 27 00 00       	call   0x409e49
40771e:	56                   	push   %esi
40771f:	eb d9                	jmp    0x4076fa
407721:	68 ec 6e 41 00       	push   $0x416eec
407726:	56                   	push   %esi
407727:	e8 a2 fb ff ff       	call   0x4072ce
40772c:	6a 00                	push   $0x0
40772e:	e8 46 01 00 00       	call   0x407879
407733:	83 c4 0c             	add    $0xc,%esp
407736:	69 7d 0c 64 03 00 00 	imul   $0x364,0xc(%ebp),%edi
40773d:	03 fe                	add    %esi,%edi
40773f:	8b c7                	mov    %edi,%eax
407741:	5f                   	pop    %edi
407742:	5e                   	pop    %esi
407743:	5d                   	pop    %ebp
407744:	c3                   	ret
407745:	68 67 73 40 00       	push   $0x407367
40774a:	e8 3d 26 00 00       	call   0x409d8c
40774f:	a3 50 60 41 00       	mov    %eax,0x416050
407754:	83 f8 ff             	cmp    $0xffffffff,%eax
407757:	75 03                	jne    0x40775c
407759:	32 c0                	xor    %al,%al
40775b:	c3                   	ret
40775c:	e8 90 fe ff ff       	call   0x4075f1
407761:	85 c0                	test   %eax,%eax
407763:	75 09                	jne    0x40776e
407765:	50                   	push   %eax
407766:	e8 06 00 00 00       	call   0x407771
40776b:	59                   	pop    %ecx
40776c:	eb eb                	jmp    0x407759
40776e:	b0 01                	mov    $0x1,%al
407770:	c3                   	ret
407771:	a1 50 60 41 00       	mov    0x416050,%eax
407776:	83 f8 ff             	cmp    $0xffffffff,%eax
407779:	74 0d                	je     0x407788
40777b:	50                   	push   %eax
40777c:	e8 4a 26 00 00       	call   0x409dcb
407781:	83 0d 50 60 41 00 ff 	orl    $0xffffffff,0x416050
407788:	b0 01                	mov    $0x1,%al
40778a:	c3                   	ret
40778b:	8b ff                	mov    %edi,%edi
40778d:	56                   	push   %esi
40778e:	57                   	push   %edi
40778f:	bf f0 6e 41 00       	mov    $0x416ef0,%edi
407794:	33 f6                	xor    %esi,%esi
407796:	6a 00                	push   $0x0
407798:	68 a0 0f 00 00       	push   $0xfa0
40779d:	57                   	push   %edi
40779e:	e8 e8 26 00 00       	call   0x409e8b
4077a3:	85 c0                	test   %eax,%eax
4077a5:	74 18                	je     0x4077bf
4077a7:	ff 05 40 70 41 00    	incl   0x417040
4077ad:	83 c6 18             	add    $0x18,%esi
4077b0:	83 c7 18             	add    $0x18,%edi
4077b3:	81 fe 50 01 00 00    	cmp    $0x150,%esi
4077b9:	72 db                	jb     0x407796
4077bb:	b0 01                	mov    $0x1,%al
4077bd:	eb 0a                	jmp    0x4077c9
4077bf:	6a 00                	push   $0x0
4077c1:	e8 1d 00 00 00       	call   0x4077e3
4077c6:	59                   	pop    %ecx
4077c7:	32 c0                	xor    %al,%al
4077c9:	5f                   	pop    %edi
4077ca:	5e                   	pop    %esi
4077cb:	c3                   	ret
4077cc:	8b ff                	mov    %edi,%edi
4077ce:	55                   	push   %ebp
4077cf:	8b ec                	mov    %esp,%ebp
4077d1:	6b 45 08 18          	imul   $0x18,0x8(%ebp),%eax
4077d5:	05 f0 6e 41 00       	add    $0x416ef0,%eax
4077da:	50                   	push   %eax
4077db:	ff 15 64 f0 40 00    	call   *0x40f064
4077e1:	5d                   	pop    %ebp
4077e2:	c3                   	ret
4077e3:	8b ff                	mov    %edi,%edi
4077e5:	56                   	push   %esi
4077e6:	8b 35 40 70 41 00    	mov    0x417040,%esi
4077ec:	85 f6                	test   %esi,%esi
4077ee:	74 20                	je     0x407810
4077f0:	6b c6 18             	imul   $0x18,%esi,%eax
4077f3:	57                   	push   %edi
4077f4:	8d b8 d8 6e 41 00    	lea    0x416ed8(%eax),%edi
4077fa:	57                   	push   %edi
4077fb:	ff 15 6c f0 40 00    	call   *0x40f06c
407801:	ff 0d 40 70 41 00    	decl   0x417040
407807:	83 ef 18             	sub    $0x18,%edi
40780a:	83 ee 01             	sub    $0x1,%esi
40780d:	75 eb                	jne    0x4077fa
40780f:	5f                   	pop    %edi
407810:	b0 01                	mov    $0x1,%al
407812:	5e                   	pop    %esi
407813:	c3                   	ret
407814:	8b ff                	mov    %edi,%edi
407816:	55                   	push   %ebp
407817:	8b ec                	mov    %esp,%ebp
407819:	6b 45 08 18          	imul   $0x18,0x8(%ebp),%eax
40781d:	05 f0 6e 41 00       	add    $0x416ef0,%eax
407822:	50                   	push   %eax
407823:	ff 15 68 f0 40 00    	call   *0x40f068
407829:	5d                   	pop    %ebp
40782a:	c3                   	ret
40782b:	8b ff                	mov    %edi,%edi
40782d:	55                   	push   %ebp
40782e:	8b ec                	mov    %esp,%ebp
407830:	56                   	push   %esi
407831:	8b 75 08             	mov    0x8(%ebp),%esi
407834:	83 fe e0             	cmp    $0xffffffe0,%esi
407837:	77 30                	ja     0x407869
407839:	85 f6                	test   %esi,%esi
40783b:	75 17                	jne    0x407854
40783d:	46                   	inc    %esi
40783e:	eb 14                	jmp    0x407854
407840:	e8 03 f2 ff ff       	call   0x406a48
407845:	85 c0                	test   %eax,%eax
407847:	74 20                	je     0x407869
407849:	56                   	push   %esi
40784a:	e8 58 e5 ff ff       	call   0x405da7
40784f:	59                   	pop    %ecx
407850:	85 c0                	test   %eax,%eax
407852:	74 15                	je     0x407869
407854:	56                   	push   %esi
407855:	6a 00                	push   $0x0
407857:	ff 35 6c 73 41 00    	push   0x41736c
40785d:	ff 15 a0 f0 40 00    	call   *0x40f0a0
407863:	85 c0                	test   %eax,%eax
407865:	74 d9                	je     0x407840
407867:	eb 0d                	jmp    0x407876
407869:	e8 e2 00 00 00       	call   0x407950
40786e:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
407874:	33 c0                	xor    %eax,%eax
407876:	5e                   	pop    %esi
407877:	5d                   	pop    %ebp
407878:	c3                   	ret
407879:	8b ff                	mov    %edi,%edi
40787b:	55                   	push   %ebp
40787c:	8b ec                	mov    %esp,%ebp
40787e:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
407882:	74 2d                	je     0x4078b1
407884:	ff 75 08             	push   0x8(%ebp)
407887:	6a 00                	push   $0x0
407889:	ff 35 6c 73 41 00    	push   0x41736c
40788f:	ff 15 a4 f0 40 00    	call   *0x40f0a4
407895:	85 c0                	test   %eax,%eax
407897:	75 18                	jne    0x4078b1
407899:	56                   	push   %esi
40789a:	ff 15 58 f0 40 00    	call   *0x40f058
4078a0:	50                   	push   %eax
4078a1:	e8 0d 00 00 00       	call   0x4078b3
4078a6:	59                   	pop    %ecx
4078a7:	8b f0                	mov    %eax,%esi
4078a9:	e8 a2 00 00 00       	call   0x407950
4078ae:	89 30                	mov    %esi,(%eax)
4078b0:	5e                   	pop    %esi
4078b1:	5d                   	pop    %ebp
4078b2:	c3                   	ret
4078b3:	8b ff                	mov    %edi,%edi
4078b5:	55                   	push   %ebp
4078b6:	8b ec                	mov    %esp,%ebp
4078b8:	8b 4d 08             	mov    0x8(%ebp),%ecx
4078bb:	33 c0                	xor    %eax,%eax
4078bd:	3b 0c c5 d0 02 41 00 	cmp    0x4102d0(,%eax,8),%ecx
4078c4:	74 27                	je     0x4078ed
4078c6:	40                   	inc    %eax
4078c7:	83 f8 2d             	cmp    $0x2d,%eax
4078ca:	72 f1                	jb     0x4078bd
4078cc:	8d 41 ed             	lea    -0x13(%ecx),%eax
4078cf:	83 f8 11             	cmp    $0x11,%eax
4078d2:	77 05                	ja     0x4078d9
4078d4:	6a 0d                	push   $0xd
4078d6:	58                   	pop    %eax
4078d7:	5d                   	pop    %ebp
4078d8:	c3                   	ret
4078d9:	8d 81 44 ff ff ff    	lea    -0xbc(%ecx),%eax
4078df:	6a 0e                	push   $0xe
4078e1:	59                   	pop    %ecx
4078e2:	3b c8                	cmp    %eax,%ecx
4078e4:	1b c0                	sbb    %eax,%eax
4078e6:	23 c1                	and    %ecx,%eax
4078e8:	83 c0 08             	add    $0x8,%eax
4078eb:	5d                   	pop    %ebp
4078ec:	c3                   	ret
4078ed:	8b 04 c5 d4 02 41 00 	mov    0x4102d4(,%eax,8),%eax
4078f4:	5d                   	pop    %ebp
4078f5:	c3                   	ret
4078f6:	8b ff                	mov    %edi,%edi
4078f8:	55                   	push   %ebp
4078f9:	8b ec                	mov    %esp,%ebp
4078fb:	56                   	push   %esi
4078fc:	e8 3c 00 00 00       	call   0x40793d
407901:	8b 4d 08             	mov    0x8(%ebp),%ecx
407904:	51                   	push   %ecx
407905:	89 08                	mov    %ecx,(%eax)
407907:	e8 a7 ff ff ff       	call   0x4078b3
40790c:	59                   	pop    %ecx
40790d:	8b f0                	mov    %eax,%esi
40790f:	e8 3c 00 00 00       	call   0x407950
407914:	89 30                	mov    %esi,(%eax)
407916:	5e                   	pop    %esi