40a615:	a1 14 40 4c 00       	mov    0x4c4014,%eax
40a61a:	33 c5                	xor    %ebp,%eax
40a61c:	50                   	push   %eax
40a61d:	8d 45 f4             	lea    -0xc(%ebp),%eax
40a620:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40a626:	8b f1                	mov    %ecx,%esi
40a628:	8b 5d 08             	mov    0x8(%ebp),%ebx
40a62b:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
40a630:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
40a636:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
40a63d:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
40a644:	8b 4b 04             	mov    0x4(%ebx),%ecx
40a647:	2b 0b                	sub    (%ebx),%ecx
40a649:	f7 e9                	imul   %ecx
40a64b:	c1 fa 02             	sar    $0x2,%edx
40a64e:	8b fa                	mov    %edx,%edi
40a650:	c1 ef 1f             	shr    $0x1f,%edi
40a653:	03 fa                	add    %edx,%edi
40a655:	74 38                	je     0x40a68f
40a657:	81 ff aa aa aa 0a    	cmp    $0xaaaaaaa,%edi
40a65d:	77 46                	ja     0x40a6a5
40a65f:	57                   	push   %edi
40a660:	e8 db 8a ff ff       	call   0x403140
40a665:	8d 14 7f             	lea    (%edi,%edi,2),%edx
40a668:	89 06                	mov    %eax,(%esi)
40a66a:	89 46 04             	mov    %eax,0x4(%esi)
40a66d:	89 75 f0             	mov    %esi,-0x10(%ebp)
40a670:	8d 14 d0             	lea    (%eax,%edx,8),%edx
40a673:	89 56 08             	mov    %edx,0x8(%esi)
40a676:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40a67d:	8b 53 04             	mov    0x4(%ebx),%edx
40a680:	8b 0b                	mov    (%ebx),%ecx
40a682:	56                   	push   %esi
40a683:	50                   	push   %eax
40a684:	e8 77 02 00 00       	call   0x40a900
40a689:	83 c4 08             	add    $0x8,%esp
40a68c:	89 46 04             	mov    %eax,0x4(%esi)
40a68f:	8b c6                	mov    %esi,%eax
40a691:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40a694:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40a69b:	59                   	pop    %ecx
40a69c:	5f                   	pop    %edi
40a69d:	5e                   	pop    %esi
40a69e:	5b                   	pop    %ebx
40a69f:	8b e5                	mov    %ebp,%esp
40a6a1:	5d                   	pop    %ebp
40a6a2:	c2 04 00             	ret    $0x4
40a6a5:	e8 26 8e ff ff       	call   0x4034d0
40a6aa:	cc                   	int3
40a6ab:	cc                   	int3
40a6ac:	cc                   	int3
40a6ad:	cc                   	int3
40a6ae:	cc                   	int3
40a6af:	cc                   	int3
40a6b0:	68 9c 0c 4b 00       	push   $0x4b0c9c
40a6b5:	e8 a0 e0 05 00       	call   0x46875a
40a6ba:	cc                   	int3
40a6bb:	cc                   	int3
40a6bc:	cc                   	int3
40a6bd:	cc                   	int3
40a6be:	cc                   	int3
40a6bf:	cc                   	int3
40a6c0:	55                   	push   %ebp
40a6c1:	8b ec                	mov    %esp,%ebp
40a6c3:	83 ec 08             	sub    $0x8,%esp
40a6c6:	53                   	push   %ebx
40a6c7:	56                   	push   %esi
40a6c8:	57                   	push   %edi
40a6c9:	8b 7d 10             	mov    0x10(%ebp),%edi
40a6cc:	8b d9                	mov    %ecx,%ebx
40a6ce:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40a6d1:	3b fa                	cmp    %edx,%edi
40a6d3:	77 38                	ja     0x40a70d
40a6d5:	8b 45 08             	mov    0x8(%ebp),%eax
40a6d8:	2b d7                	sub    %edi,%edx
40a6da:	3b c2                	cmp    %edx,%eax
40a6dc:	77 2f                	ja     0x40a70d
40a6de:	85 ff                	test   %edi,%edi
40a6e0:	74 2e                	je     0x40a710
40a6e2:	8d 4a 01             	lea    0x1(%edx),%ecx
40a6e5:	8d 0c 4b             	lea    (%ebx,%ecx,2),%ecx
40a6e8:	8d 04 43             	lea    (%ebx,%eax,2),%eax
40a6eb:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40a6ee:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40a6f1:	2b c8                	sub    %eax,%ecx
40a6f3:	d1 f9                	sar    $1,%ecx
40a6f5:	74 16                	je     0x40a70d
40a6f7:	0f b7 13             	movzwl (%ebx),%edx
40a6fa:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
40a700:	66 39 10             	cmp    %dx,(%eax)
40a703:	74 12                	je     0x40a717
40a705:	83 c0 02             	add    $0x2,%eax
40a708:	83 e9 01             	sub    $0x1,%ecx
40a70b:	75 f3                	jne    0x40a700
40a70d:	83 c8 ff             	or     $0xffffffff,%eax
40a710:	5f                   	pop    %edi
40a711:	5e                   	pop    %esi
40a712:	5b                   	pop    %ebx
40a713:	8b e5                	mov    %ebp,%esp
40a715:	5d                   	pop    %ebp
40a716:	c3                   	ret
40a717:	85 c0                	test   %eax,%eax
40a719:	74 f2                	je     0x40a70d
40a71b:	8b f7                	mov    %edi,%esi
40a71d:	8b d3                	mov    %ebx,%edx
40a71f:	85 ff                	test   %edi,%edi
40a721:	74 15                	je     0x40a738
40a723:	8b f8                	mov    %eax,%edi
40a725:	2b fb                	sub    %ebx,%edi
40a727:	66 8b 0c 17          	mov    (%edi,%edx,1),%cx
40a72b:	66 3b 0a             	cmp    (%edx),%cx
40a72e:	75 14                	jne    0x40a744
40a730:	83 c2 02             	add    $0x2,%edx
40a733:	83 ee 01             	sub    $0x1,%esi
40a736:	75 ef                	jne    0x40a727
40a738:	2b 45 f8             	sub    -0x8(%ebp),%eax
40a73b:	5f                   	pop    %edi
40a73c:	5e                   	pop    %esi
40a73d:	d1 f8                	sar    $1,%eax
40a73f:	5b                   	pop    %ebx
40a740:	8b e5                	mov    %ebp,%esp
40a742:	5d                   	pop    %ebp
40a743:	c3                   	ret
40a744:	8b 7d 10             	mov    0x10(%ebp),%edi
40a747:	83 c0 02             	add    $0x2,%eax
40a74a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40a74d:	eb a2                	jmp    0x40a6f1
40a74f:	cc                   	int3
40a750:	8b 09                	mov    (%ecx),%ecx
40a752:	85 c9                	test   %ecx,%ecx
40a754:	0f 85 26 86 ff ff    	jne    0x402d80
40a75a:	c3                   	ret
40a75b:	cc                   	int3
40a75c:	cc                   	int3
40a75d:	cc                   	int3
40a75e:	cc                   	int3
40a75f:	cc                   	int3
40a760:	55                   	push   %ebp
40a761:	8b ec                	mov    %esp,%ebp
40a763:	83 ec 0c             	sub    $0xc,%esp
40a766:	8b 45 08             	mov    0x8(%ebp),%eax
40a769:	53                   	push   %ebx
40a76a:	56                   	push   %esi
40a76b:	89 45 f8             	mov    %eax,-0x8(%ebp)
40a76e:	57                   	push   %edi
40a76f:	8b f9                	mov    %ecx,%edi
40a771:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40a774:	8b d1                	mov    %ecx,%edx
40a776:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40a779:	2b d0                	sub    %eax,%edx
40a77b:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
40a780:	f7 ea                	imul   %edx
40a782:	8b 4f 08             	mov    0x8(%edi),%ecx
40a785:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
40a78a:	8b 1f                	mov    (%edi),%ebx
40a78c:	2b cb                	sub    %ebx,%ecx
40a78e:	c1 fa 02             	sar    $0x2,%edx
40a791:	8b f2                	mov    %edx,%esi
40a793:	c1 ee 1f             	shr    $0x1f,%esi
40a796:	03 f2                	add    %edx,%esi
40a798:	f7 e9                	imul   %ecx
40a79a:	c1 fa 02             	sar    $0x2,%edx
40a79d:	8b c2                	mov    %edx,%eax
40a79f:	c1 e8 1f             	shr    $0x1f,%eax
40a7a2:	03 c2                	add    %edx,%eax
40a7a4:	89 45 f4             	mov    %eax,-0xc(%ebp)
40a7a7:	3b f0                	cmp    %eax,%esi
40a7a9:	0f 86 c9 00 00 00    	jbe    0x40a878
40a7af:	81 fe aa aa aa 0a    	cmp    $0xaaaaaaa,%esi
40a7b5:	0f 87 2c 01 00 00    	ja     0x40a8e7
40a7bb:	8b 55 f4             	mov    -0xc(%ebp),%edx
40a7be:	8b c8                	mov    %eax,%ecx
40a7c0:	d1 e9                	shr    $1,%ecx
40a7c2:	b8 aa aa aa 0a       	mov    $0xaaaaaaa,%eax
40a7c7:	2b c1                	sub    %ecx,%eax
40a7c9:	3b d0                	cmp    %eax,%edx
40a7cb:	76 07                	jbe    0x40a7d4
40a7cd:	bb aa aa aa 0a       	mov    $0xaaaaaaa,%ebx
40a7d2:	eb 08                	jmp    0x40a7dc
40a7d4:	8d 1c 11             	lea    (%ecx,%edx,1),%ebx
40a7d7:	3b de                	cmp    %esi,%ebx
40a7d9:	0f 42 de             	cmovb  %esi,%ebx
40a7dc:	8b 0f                	mov    (%edi),%ecx
40a7de:	85 c9                	test   %ecx,%ecx
40a7e0:	74 66                	je     0x40a848
40a7e2:	8b 57 04             	mov    0x4(%edi),%edx
40a7e5:	51                   	push   %ecx
40a7e6:	e8 e5 88 ff ff       	call   0x4030d0
40a7eb:	8b 4f 08             	mov    0x8(%edi),%ecx
40a7ee:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
40a7f3:	8b 37                	mov    (%edi),%esi
40a7f5:	83 c4 04             	add    $0x4,%esp
40a7f8:	2b ce                	sub    %esi,%ecx
40a7fa:	f7 e9                	imul   %ecx
40a7fc:	c1 fa 02             	sar    $0x2,%edx
40a7ff:	8b c2                	mov    %edx,%eax
40a801:	c1 e8 1f             	shr    $0x1f,%eax
40a804:	03 c2                	add    %edx,%eax
40a806:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
40a809:	c1 e1 03             	shl    $0x3,%ecx
40a80c:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40a812:	72 16                	jb     0x40a82a
40a814:	8b 56 fc             	mov    -0x4(%esi),%edx
40a817:	83 c1 23             	add    $0x23,%ecx
40a81a:	2b f2                	sub    %edx,%esi
40a81c:	8d 46 fc             	lea    -0x4(%esi),%eax
40a81f:	83 f8 1f             	cmp    $0x1f,%eax
40a822:	0f 87 c4 00 00 00    	ja     0x40a8ec
40a828:	8b f2                	mov    %edx,%esi
40a82a:	51                   	push   %ecx
40a82b:	56                   	push   %esi
40a82c:	e8 d7 f1 05 00       	call   0x469a08
40a831:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
40a837:	83 c4 08             	add    $0x8,%esp
40a83a:	c7 47 04 00 00 00 00 	movl   $0x0,0x4(%edi)
40a841:	c7 47 08 00 00 00 00 	movl   $0x0,0x8(%edi)
40a848:	53                   	push   %ebx
40a849:	e8 f2 88 ff ff       	call   0x403140
40a84e:	8b 55 fc             	mov    -0x4(%ebp),%edx
40a851:	8d 34 5b             	lea    (%ebx,%ebx,2),%esi
40a854:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40a857:	89 07                	mov    %eax,(%edi)
40a859:	8d 34 f0             	lea    (%eax,%esi,8),%esi
40a85c:	89 47 04             	mov    %eax,0x4(%edi)
40a85f:	57                   	push   %edi
40a860:	50                   	push   %eax
40a861:	89 77 08             	mov    %esi,0x8(%edi)
40a864:	e8 97 00 00 00       	call   0x40a900
40a869:	83 c4 08             	add    $0x8,%esp
40a86c:	89 47 04             	mov    %eax,0x4(%edi)
40a86f:	5f                   	pop    %edi
40a870:	5e                   	pop    %esi
40a871:	5b                   	pop    %ebx
40a872:	8b e5                	mov    %ebp,%esp
40a874:	5d                   	pop    %ebp
40a875:	c2 0c 00             	ret    $0xc
40a878:	8b 4f 04             	mov    0x4(%edi),%ecx
40a87b:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
40a880:	2b cb                	sub    %ebx,%ecx
40a882:	f7 e9                	imul   %ecx
40a884:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40a887:	c1 fa 02             	sar    $0x2,%edx
40a88a:	8b c2                	mov    %edx,%eax
40a88c:	c1 e8 1f             	shr    $0x1f,%eax
40a88f:	03 c2                	add    %edx,%eax
40a891:	53                   	push   %ebx
40a892:	3b f0                	cmp    %eax,%esi
40a894:	76 2a                	jbe    0x40a8c0
40a896:	8d 04 40             	lea    (%eax,%eax,2),%eax
40a899:	8d 34 c1             	lea    (%ecx,%eax,8),%esi
40a89c:	8b d6                	mov    %esi,%edx
40a89e:	e8 fd 00 00 00       	call   0x40a9a0
40a8a3:	8b 55 fc             	mov    -0x4(%ebp),%edx
40a8a6:	8b ce                	mov    %esi,%ecx
40a8a8:	57                   	push   %edi
40a8a9:	ff 77 04             	push   0x4(%edi)
40a8ac:	e8 4f 00 00 00       	call   0x40a900
40a8b1:	83 c4 0c             	add    $0xc,%esp
40a8b4:	89 47 04             	mov    %eax,0x4(%edi)
40a8b7:	5f                   	pop    %edi
40a8b8:	5e                   	pop    %esi
40a8b9:	5b                   	pop    %ebx
40a8ba:	8b e5                	mov    %ebp,%esp
40a8bc:	5d                   	pop    %ebp
40a8bd:	c2 0c 00             	ret    $0xc
40a8c0:	8b 55 fc             	mov    -0x4(%ebp),%edx
40a8c3:	8d 04 76             	lea    (%esi,%esi,2),%eax
40a8c6:	8d 34 c3             	lea    (%ebx,%eax,8),%esi
40a8c9:	e8 d2 00 00 00       	call   0x40a9a0
40a8ce:	8b 57 04             	mov    0x4(%edi),%edx
40a8d1:	8b ce                	mov    %esi,%ecx
40a8d3:	e8 f8 87 ff ff       	call   0x4030d0
40a8d8:	83 c4 04             	add    $0x4,%esp
40a8db:	89 77 04             	mov    %esi,0x4(%edi)
40a8de:	5f                   	pop    %edi
40a8df:	5e                   	pop    %esi
40a8e0:	5b                   	pop    %ebx
40a8e1:	8b e5                	mov    %ebp,%esp
40a8e3:	5d                   	pop    %ebp
40a8e4:	c2 0c 00             	ret    $0xc
40a8e7:	e8 e4 8b ff ff       	call   0x4034d0
40a8ec:	e8 40 ed 06 00       	call   0x479631
40a8f1:	cc                   	int3
40a8f2:	cc                   	int3
40a8f3:	cc                   	int3
40a8f4:	cc                   	int3
40a8f5:	cc                   	int3
40a8f6:	cc                   	int3
40a8f7:	cc                   	int3
40a8f8:	cc                   	int3
40a8f9:	cc                   	int3
40a8fa:	cc                   	int3
40a8fb:	cc                   	int3
40a8fc:	cc                   	int3
40a8fd:	cc                   	int3
40a8fe:	cc                   	int3
40a8ff:	cc                   	int3
40a900:	55                   	push   %ebp
40a901:	8b ec                	mov    %esp,%ebp
40a903:	6a ff                	push   $0xffffffff
40a905:	68 bd 7e 49 00       	push   $0x497ebd
40a90a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40a910:	50                   	push   %eax
40a911:	83 ec 10             	sub    $0x10,%esp
40a914:	a1 14 40 4c 00       	mov    0x4c4014,%eax
40a919:	33 c5                	xor    %ebp,%eax
40a91b:	89 45 f0             	mov    %eax,-0x10(%ebp)
40a91e:	53                   	push   %ebx
40a91f:	56                   	push   %esi
40a920:	57                   	push   %edi
40a921:	50                   	push   %eax
40a922:	8d 45 f4             	lea    -0xc(%ebp),%eax
40a925:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40a92b:	8b da                	mov    %edx,%ebx
40a92d:	8b f1                	mov    %ecx,%esi
40a92f:	8b 7d 08             	mov    0x8(%ebp),%edi
40a932:	0f 57 c0             	xorps  %xmm0,%xmm0
40a935:	8b 45 0c             	mov    0xc(%ebp),%eax
40a938:	66 0f d6 45 e4       	movq   %xmm0,-0x1c(%ebp)
40a93d:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
40a944:	89 7d e4             	mov    %edi,-0x1c(%ebp)
40a947:	89 7d e8             	mov    %edi,-0x18(%ebp)
40a94a:	89 45 ec             	mov    %eax,-0x14(%ebp)
40a94d:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40a954:	3b f3                	cmp    %ebx,%esi
40a956:	74 15                	je     0x40a96d
40a958:	56                   	push   %esi
40a959:	8b cf                	mov    %edi,%ecx
40a95b:	e8 10 8c ff ff       	call   0x403570
40a960:	83 c7 18             	add    $0x18,%edi
40a963:	83 c6 18             	add    $0x18,%esi
40a966:	89 7d e8             	mov    %edi,-0x18(%ebp)
40a969:	3b f3                	cmp    %ebx,%esi
40a96b:	75 eb                	jne    0x40a958
40a96d:	51                   	push   %ecx
40a96e:	8b d7                	mov    %edi,%edx
40a970:	8b cf                	mov    %edi,%ecx
40a972:	e8 59 87 ff ff       	call   0x4030d0
40a977:	83 c4 04             	add    $0x4,%esp
40a97a:	8b c7                	mov    %edi,%eax
40a97c:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40a97f:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40a986:	59                   	pop    %ecx
40a987:	5f                   	pop    %edi
40a988:	5e                   	pop    %esi
40a989:	5b                   	pop    %ebx
40a98a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40a98d:	33 cd                	xor    %ebp,%ecx
40a98f:	e8 36 f0 05 00       	call   0x4699ca
40a994:	8b e5                	mov    %ebp,%esp