407576:	c3                   	ret
407577:	cc                   	int3
407578:	cc                   	int3
407579:	cc                   	int3
40757a:	cc                   	int3
40757b:	cc                   	int3
40757c:	cc                   	int3
40757d:	cc                   	int3
40757e:	cc                   	int3
40757f:	cc                   	int3
407580:	55                   	push   %ebp
407581:	8b ec                	mov    %esp,%ebp
407583:	83 ec 08             	sub    $0x8,%esp
407586:	56                   	push   %esi
407587:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
40758e:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
407592:	74 0c                	je     0x4075a0
407594:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
407598:	74 06                	je     0x4075a0
40759a:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40759e:	75 08                	jne    0x4075a8
4075a0:	8b 45 f8             	mov    -0x8(%ebp),%eax
4075a3:	e9 9b 00 00 00       	jmp    0x407643
4075a8:	8b 45 08             	mov    0x8(%ebp),%eax
4075ab:	50                   	push   %eax
4075ac:	e8 af f4 ff ff       	call   0x406a60
4075b1:	83 c4 04             	add    $0x4,%esp
4075b4:	8b f0                	mov    %eax,%esi
4075b6:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4075b9:	51                   	push   %ecx
4075ba:	e8 a1 f4 ff ff       	call   0x406a60
4075bf:	83 c4 04             	add    $0x4,%esp
4075c2:	8d 54 06 01          	lea    0x1(%esi,%eax,1),%edx
4075c6:	52                   	push   %edx
4075c7:	e8 34 f4 ff ff       	call   0x406a00
4075cc:	83 c4 04             	add    $0x4,%esp
4075cf:	89 45 fc             	mov    %eax,-0x4(%ebp)
4075d2:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
4075d6:	74 68                	je     0x407640
4075d8:	8b 45 08             	mov    0x8(%ebp),%eax
4075db:	50                   	push   %eax
4075dc:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4075df:	51                   	push   %ecx
4075e0:	e8 db af ff ff       	call   0x4025c0
4075e5:	8b 50 2c             	mov    0x2c(%eax),%edx
4075e8:	ff d2                	call   *%edx
4075ea:	83 c4 08             	add    $0x8,%esp
4075ed:	8b 45 08             	mov    0x8(%ebp),%eax
4075f0:	50                   	push   %eax
4075f1:	e8 6a f4 ff ff       	call   0x406a60
4075f6:	83 c4 04             	add    $0x4,%esp
4075f9:	8b 4d 08             	mov    0x8(%ebp),%ecx
4075fc:	0f b7 54 41 fe       	movzwl -0x2(%ecx,%eax,2),%edx
407601:	83 fa 5c             	cmp    $0x5c,%edx
407604:	74 16                	je     0x40761c
407606:	68 74 60 41 00       	push   $0x416074
40760b:	8b 45 fc             	mov    -0x4(%ebp),%eax
40760e:	50                   	push   %eax
40760f:	e8 ac af ff ff       	call   0x4025c0
407614:	8b 48 30             	mov    0x30(%eax),%ecx
407617:	ff d1                	call   *%ecx
407619:	83 c4 08             	add    $0x8,%esp
40761c:	8b 55 0c             	mov    0xc(%ebp),%edx
40761f:	52                   	push   %edx
407620:	8b 45 fc             	mov    -0x4(%ebp),%eax
407623:	50                   	push   %eax
407624:	e8 97 af ff ff       	call   0x4025c0
407629:	8b 48 30             	mov    0x30(%eax),%ecx
40762c:	ff d1                	call   *%ecx
40762e:	83 c4 08             	add    $0x8,%esp
407631:	8b 55 10             	mov    0x10(%ebp),%edx
407634:	8b 45 fc             	mov    -0x4(%ebp),%eax
407637:	89 02                	mov    %eax,(%edx)
407639:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
407640:	8b 45 f8             	mov    -0x8(%ebp),%eax
407643:	5e                   	pop    %esi
407644:	8b e5                	mov    %ebp,%esp
407646:	5d                   	pop    %ebp
407647:	c3                   	ret
407648:	cc                   	int3
407649:	cc                   	int3
40764a:	cc                   	int3
40764b:	cc                   	int3
40764c:	cc                   	int3
40764d:	cc                   	int3
40764e:	cc                   	int3
40764f:	cc                   	int3
407650:	55                   	push   %ebp
407651:	8b ec                	mov    %esp,%ebp
407653:	83 ec 08             	sub    $0x8,%esp
407656:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
40765d:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
407661:	74 06                	je     0x407669
407663:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
407667:	75 05                	jne    0x40766e
407669:	8b 45 f8             	mov    -0x8(%ebp),%eax
40766c:	eb 4c                	jmp    0x4076ba
40766e:	8b 45 08             	mov    0x8(%ebp),%eax
407671:	50                   	push   %eax
407672:	e8 e9 f3 ff ff       	call   0x406a60
407677:	83 c4 04             	add    $0x4,%esp
40767a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40767d:	eb 09                	jmp    0x407688
40767f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
407682:	83 e9 01             	sub    $0x1,%ecx
407685:	89 4d fc             	mov    %ecx,-0x4(%ebp)
407688:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40768c:	76 29                	jbe    0x4076b7
40768e:	8b 55 fc             	mov    -0x4(%ebp),%edx
407691:	8b 45 08             	mov    0x8(%ebp),%eax
407694:	0f b7 0c 50          	movzwl (%eax,%edx,2),%ecx
407698:	83 f9 5c             	cmp    $0x5c,%ecx
40769b:	75 18                	jne    0x4076b5
40769d:	8b 55 fc             	mov    -0x4(%ebp),%edx
4076a0:	8b 45 08             	mov    0x8(%ebp),%eax
4076a3:	8d 4c 50 02          	lea    0x2(%eax,%edx,2),%ecx
4076a7:	8b 55 0c             	mov    0xc(%ebp),%edx
4076aa:	89 0a                	mov    %ecx,(%edx)
4076ac:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
4076b3:	eb 02                	jmp    0x4076b7
4076b5:	eb c8                	jmp    0x40767f
4076b7:	8b 45 f8             	mov    -0x8(%ebp),%eax
4076ba:	8b e5                	mov    %ebp,%esp
4076bc:	5d                   	pop    %ebp
4076bd:	c3                   	ret
4076be:	cc                   	int3
4076bf:	cc                   	int3
4076c0:	55                   	push   %ebp
4076c1:	8b ec                	mov    %esp,%ebp
4076c3:	83 ec 14             	sub    $0x14,%esp
4076c6:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4076ca:	75 07                	jne    0x4076d3
4076cc:	33 c0                	xor    %eax,%eax
4076ce:	e9 a7 00 00 00       	jmp    0x40777a
4076d3:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
4076da:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
4076de:	75 0f                	jne    0x4076ef
4076e0:	8b 45 08             	mov    0x8(%ebp),%eax
4076e3:	50                   	push   %eax
4076e4:	e8 37 f3 ff ff       	call   0x406a20
4076e9:	83 c4 04             	add    $0x4,%esp
4076ec:	89 45 0c             	mov    %eax,0xc(%ebp)
4076ef:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
4076f6:	eb 09                	jmp    0x407701
4076f8:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4076fb:	83 c1 01             	add    $0x1,%ecx
4076fe:	89 4d f8             	mov    %ecx,-0x8(%ebp)
407701:	8b 55 f8             	mov    -0x8(%ebp),%edx
407704:	3b 55 0c             	cmp    0xc(%ebp),%edx
407707:	7d 6c                	jge    0x407775
407709:	8b 45 08             	mov    0x8(%ebp),%eax
40770c:	03 45 f8             	add    -0x8(%ebp),%eax
40770f:	0f be 08             	movsbl (%eax),%ecx
407712:	89 4d f0             	mov    %ecx,-0x10(%ebp)
407715:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
407719:	74 18                	je     0x407733
40771b:	8b 55 08             	mov    0x8(%ebp),%edx
40771e:	03 55 f8             	add    -0x8(%ebp),%edx
407721:	0f b6 02             	movzbl (%edx),%eax
407724:	50                   	push   %eax
407725:	e8 16 f4 ff ff       	call   0x406b40
40772a:	83 c4 04             	add    $0x4,%esp
40772d:	0f be c8             	movsbl %al,%ecx
407730:	89 4d f0             	mov    %ecx,-0x10(%ebp)
407733:	8b 55 fc             	mov    -0x4(%ebp),%edx
407736:	33 55 f0             	xor    -0x10(%ebp),%edx
407739:	89 55 fc             	mov    %edx,-0x4(%ebp)
40773c:	c7 45 f4 07 00 00 00 	movl   $0x7,-0xc(%ebp)
407743:	eb 09                	jmp    0x40774e
407745:	8b 45 f4             	mov    -0xc(%ebp),%eax
407748:	83 e8 01             	sub    $0x1,%eax
40774b:	89 45 f4             	mov    %eax,-0xc(%ebp)
40774e:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
407752:	7c 1f                	jl     0x407773
407754:	8b 4d fc             	mov    -0x4(%ebp),%ecx
407757:	83 e1 01             	and    $0x1,%ecx
40775a:	f7 d9                	neg    %ecx
40775c:	89 4d ec             	mov    %ecx,-0x14(%ebp)
40775f:	8b 55 fc             	mov    -0x4(%ebp),%edx
407762:	d1 ea                	shr    $1,%edx
407764:	8b 45 ec             	mov    -0x14(%ebp),%eax
407767:	25 20 83 b8 ed       	and    $0xedb88320,%eax
40776c:	33 d0                	xor    %eax,%edx
40776e:	89 55 fc             	mov    %edx,-0x4(%ebp)
407771:	eb d2                	jmp    0x407745
407773:	eb 83                	jmp    0x4076f8
407775:	8b 45 fc             	mov    -0x4(%ebp),%eax
407778:	f7 d0                	not    %eax
40777a:	8b e5                	mov    %ebp,%esp
40777c:	5d                   	pop    %ebp
40777d:	c3                   	ret
40777e:	cc                   	int3
40777f:	cc                   	int3
407780:	55                   	push   %ebp
407781:	8b ec                	mov    %esp,%ebp
407783:	6a 00                	push   $0x0
407785:	6a 00                	push   $0x0
407787:	8b 45 08             	mov    0x8(%ebp),%eax
40778a:	50                   	push   %eax
40778b:	e8 30 ff ff ff       	call   0x4076c0
407790:	83 c4 0c             	add    $0xc,%esp
407793:	5d                   	pop    %ebp
407794:	c3                   	ret
407795:	cc                   	int3
407796:	cc                   	int3
407797:	cc                   	int3
407798:	cc                   	int3
407799:	cc                   	int3
40779a:	cc                   	int3
40779b:	cc                   	int3
40779c:	cc                   	int3
40779d:	cc                   	int3
40779e:	cc                   	int3
40779f:	cc                   	int3
4077a0:	55                   	push   %ebp
4077a1:	8b ec                	mov    %esp,%ebp
4077a3:	6a 01                	push   $0x1
4077a5:	6a 00                	push   $0x0
4077a7:	8b 45 08             	mov    0x8(%ebp),%eax
4077aa:	50                   	push   %eax
4077ab:	e8 10 ff ff ff       	call   0x4076c0
4077b0:	83 c4 0c             	add    $0xc,%esp
4077b3:	5d                   	pop    %ebp
4077b4:	c3                   	ret
4077b5:	cc                   	int3
4077b6:	cc                   	int3
4077b7:	cc                   	int3
4077b8:	cc                   	int3
4077b9:	cc                   	int3
4077ba:	cc                   	int3
4077bb:	cc                   	int3
4077bc:	cc                   	int3
4077bd:	cc                   	int3
4077be:	cc                   	int3
4077bf:	cc                   	int3
4077c0:	55                   	push   %ebp
4077c1:	8b ec                	mov    %esp,%ebp
4077c3:	83 ec 14             	sub    $0x14,%esp
4077c6:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4077ca:	75 07                	jne    0x4077d3
4077cc:	33 c0                	xor    %eax,%eax
4077ce:	e9 aa 00 00 00       	jmp    0x40787d
4077d3:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
4077da:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
4077de:	75 0f                	jne    0x4077ef
4077e0:	8b 45 08             	mov    0x8(%ebp),%eax
4077e3:	50                   	push   %eax
4077e4:	e8 77 f2 ff ff       	call   0x406a60
4077e9:	83 c4 04             	add    $0x4,%esp
4077ec:	89 45 0c             	mov    %eax,0xc(%ebp)
4077ef:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
4077f6:	eb 09                	jmp    0x407801
4077f8:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4077fb:	83 c1 01             	add    $0x1,%ecx
4077fe:	89 4d f8             	mov    %ecx,-0x8(%ebp)
407801:	8b 55 f8             	mov    -0x8(%ebp),%edx
407804:	3b 55 0c             	cmp    0xc(%ebp),%edx
407807:	7d 6f                	jge    0x407878
407809:	8b 45 f8             	mov    -0x8(%ebp),%eax
40780c:	8b 4d 08             	mov    0x8(%ebp),%ecx
40780f:	0f b7 14 41          	movzwl (%ecx,%eax,2),%edx
407813:	89 55 f0             	mov    %edx,-0x10(%ebp)
407816:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40781a:	74 19                	je     0x407835
40781c:	8b 45 f8             	mov    -0x8(%ebp),%eax
40781f:	8b 4d 08             	mov    0x8(%ebp),%ecx
407822:	0f b7 14 41          	movzwl (%ecx,%eax,2),%edx
407826:	52                   	push   %edx
407827:	e8 44 f3 ff ff       	call   0x406b70
40782c:	83 c4 04             	add    $0x4,%esp
40782f:	0f b7 c0             	movzwl %ax,%eax
407832:	89 45 f0             	mov    %eax,-0x10(%ebp)
407835:	8b 4d fc             	mov    -0x4(%ebp),%ecx
407838:	33 4d f0             	xor    -0x10(%ebp),%ecx
40783b:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40783e:	c7 45 f4 07 00 00 00 	movl   $0x7,-0xc(%ebp)
407845:	eb 09                	jmp    0x407850
407847:	8b 55 f4             	mov    -0xc(%ebp),%edx
40784a:	83 ea 01             	sub    $0x1,%edx
40784d:	89 55 f4             	mov    %edx,-0xc(%ebp)
407850:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
407854:	7c 20                	jl     0x407876
407856:	8b 45 fc             	mov    -0x4(%ebp),%eax
407859:	83 e0 01             	and    $0x1,%eax
40785c:	f7 d8                	neg    %eax
40785e:	89 45 ec             	mov    %eax,-0x14(%ebp)
407861:	8b 4d fc             	mov    -0x4(%ebp),%ecx
407864:	d1 e9                	shr    $1,%ecx
407866:	8b 55 ec             	mov    -0x14(%ebp),%edx
407869:	81 e2 20 83 b8 ed    	and    $0xedb88320,%edx
40786f:	33 ca                	xor    %edx,%ecx
407871:	89 4d fc             	mov    %ecx,-0x4(%ebp)
407874:	eb d1                	jmp    0x407847
407876:	eb 80                	jmp    0x4077f8
407878:	8b 45 fc             	mov    -0x4(%ebp),%eax
40787b:	f7 d0                	not    %eax
40787d:	8b e5                	mov    %ebp,%esp
40787f:	5d                   	pop    %ebp
407880:	c3                   	ret
407881:	cc                   	int3
407882:	cc                   	int3
407883:	cc                   	int3
407884:	cc                   	int3
407885:	cc                   	int3
407886:	cc                   	int3
407887:	cc                   	int3
407888:	cc                   	int3
407889:	cc                   	int3
40788a:	cc                   	int3
40788b:	cc                   	int3
40788c:	cc                   	int3
40788d:	cc                   	int3
40788e:	cc                   	int3
40788f:	cc                   	int3
407890:	55                   	push   %ebp
407891:	8b ec                	mov    %esp,%ebp
407893:	6a 00                	push   $0x0
407895:	6a 00                	push   $0x0
407897:	8b 45 08             	mov    0x8(%ebp),%eax
40789a:	50                   	push   %eax
40789b:	e8 20 ff ff ff       	call   0x4077c0
4078a0:	83 c4 0c             	add    $0xc,%esp
4078a3:	5d                   	pop    %ebp
4078a4:	c3                   	ret
4078a5:	cc                   	int3
4078a6:	cc                   	int3
4078a7:	cc                   	int3
4078a8:	cc                   	int3
4078a9:	cc                   	int3
4078aa:	cc                   	int3
4078ab:	cc                   	int3
4078ac:	cc                   	int3
4078ad:	cc                   	int3
4078ae:	cc                   	int3
4078af:	cc                   	int3
4078b0:	55                   	push   %ebp
4078b1:	8b ec                	mov    %esp,%ebp
4078b3:	6a 01                	push   $0x1
4078b5:	6a 00                	push   $0x0
4078b7:	8b 45 08             	mov    0x8(%ebp),%eax
4078ba:	50                   	push   %eax
4078bb:	e8 00 ff ff ff       	call   0x4077c0
4078c0:	83 c4 0c             	add    $0xc,%esp
4078c3:	5d                   	pop    %ebp
4078c4:	c3                   	ret
4078c5:	cc                   	int3
4078c6:	cc                   	int3
4078c7:	cc                   	int3
4078c8:	cc                   	int3
4078c9:	cc                   	int3