46a6a4:	50                   	push   %eax
46a6a5:	8d 4c 24 24          	lea    0x24(%esp),%ecx
46a6a9:	e8 e0 d5 f9 ff       	call   0x407c8e
46a6ae:	68 50 a6 4b 00       	push   $0x4ba650
46a6b3:	8d 4c 24 24          	lea    0x24(%esp),%ecx
46a6b7:	e8 4f d7 f9 ff       	call   0x407e0b
46a6bc:	8b 3d c0 f7 48 00    	mov    0x48f7c0,%edi
46a6c2:	33 db                	xor    %ebx,%ebx
46a6c4:	53                   	push   %ebx
46a6c5:	53                   	push   %ebx
46a6c6:	53                   	push   %ebx
46a6c7:	ff 74 24 2c          	push   0x2c(%esp)
46a6cb:	ff d7                	call   *%edi
46a6cd:	85 c0                	test   %eax,%eax
46a6cf:	75 63                	jne    0x46a734
46a6d1:	68 88 a6 4b 00       	push   $0x4ba688
46a6d6:	8d 4c 24 24          	lea    0x24(%esp),%ecx
46a6da:	e8 4d d6 f9 ff       	call   0x407d2c
46a6df:	8d 44 24 10          	lea    0x10(%esp),%eax
46a6e3:	50                   	push   %eax
46a6e4:	8d 4c 24 24          	lea    0x24(%esp),%ecx
46a6e8:	e8 a1 d5 f9 ff       	call   0x407c8e
46a6ed:	68 a4 a6 4b 00       	push   $0x4ba6a4
46a6f2:	8d 4c 24 24          	lea    0x24(%esp),%ecx
46a6f6:	e8 10 d7 f9 ff       	call   0x407e0b
46a6fb:	53                   	push   %ebx
46a6fc:	53                   	push   %ebx
46a6fd:	53                   	push   %ebx
46a6fe:	ff 74 24 2c          	push   0x2c(%esp)
46a702:	ff d7                	call   *%edi
46a704:	85 c0                	test   %eax,%eax
46a706:	74 13                	je     0x46a71b
46a708:	8b 75 0c             	mov    0xc(%ebp),%esi
46a70b:	8b ce                	mov    %esi,%ecx
46a70d:	e8 0e f3 f9 ff       	call   0x409a20
46a712:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
46a719:	89 1e                	mov    %ebx,(%esi)
46a71b:	68 b0 a6 4b 00       	push   $0x4ba6b0
46a720:	8d 4c 24 24          	lea    0x24(%esp),%ecx
46a724:	e8 03 d6 f9 ff       	call   0x407d2c
46a729:	53                   	push   %ebx
46a72a:	53                   	push   %ebx
46a72b:	53                   	push   %ebx
46a72c:	ff 74 24 2c          	push   0x2c(%esp)
46a730:	ff d7                	call   *%edi
46a732:	eb 13                	jmp    0x46a747
46a734:	8b 75 0c             	mov    0xc(%ebp),%esi
46a737:	8b ce                	mov    %esi,%ecx
46a739:	e8 e2 f2 f9 ff       	call   0x409a20
46a73e:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
46a745:	89 1e                	mov    %ebx,(%esi)
46a747:	8d 4c 24 20          	lea    0x20(%esp),%ecx
46a74b:	e8 14 b3 f9 ff       	call   0x405a64
46a750:	eb 14                	jmp    0x46a766
46a752:	8b 75 0c             	mov    0xc(%ebp),%esi
46a755:	8b ce                	mov    %esi,%ecx
46a757:	e8 c4 f2 f9 ff       	call   0x409a20
46a75c:	83 26 00             	andl   $0x0,(%esi)
46a75f:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
46a766:	8d 4c 24 10          	lea    0x10(%esp),%ecx
46a76a:	e8 f5 b2 f9 ff       	call   0x405a64
46a76f:	8d 4c 24 30          	lea    0x30(%esp),%ecx
46a773:	e8 ec b2 f9 ff       	call   0x405a64
46a778:	5f                   	pop    %edi
46a779:	5e                   	pop    %esi
46a77a:	33 c0                	xor    %eax,%eax
46a77c:	5b                   	pop    %ebx
46a77d:	8b e5                	mov    %ebp,%esp
46a77f:	5d                   	pop    %ebp
46a780:	c2 08 00             	ret    $0x8
46a783:	55                   	push   %ebp
46a784:	8b ec                	mov    %esp,%ebp
46a786:	51                   	push   %ecx
46a787:	53                   	push   %ebx
46a788:	8b 5d 08             	mov    0x8(%ebp),%ebx
46a78b:	56                   	push   %esi
46a78c:	57                   	push   %edi
46a78d:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
46a791:	83 7b 08 03          	cmpl   $0x3,0x8(%ebx)
46a795:	72 13                	jb     0x46a7aa
46a797:	8b 43 04             	mov    0x4(%ebx),%eax
46a79a:	8b 48 08             	mov    0x8(%eax),%ecx
46a79d:	e8 fa f4 f9 ff       	call   0x409c9c
46a7a2:	85 c0                	test   %eax,%eax
46a7a4:	74 04                	je     0x46a7aa
46a7a6:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
46a7aa:	8b 43 04             	mov    0x4(%ebx),%eax
46a7ad:	8b 70 04             	mov    0x4(%eax),%esi
46a7b0:	8b ce                	mov    %esi,%ecx
46a7b2:	e8 e0 f1 f9 ff       	call   0x409997
46a7b7:	8b 46 08             	mov    0x8(%esi),%eax
46a7ba:	8b 38                	mov    (%eax),%edi
46a7bc:	8b 43 04             	mov    0x4(%ebx),%eax
46a7bf:	8b 30                	mov    (%eax),%esi
46a7c1:	8b ce                	mov    %esi,%ecx
46a7c3:	e8 cf f1 f9 ff       	call   0x409997
46a7c8:	8b 46 08             	mov    0x8(%esi),%eax
46a7cb:	8b d7                	mov    %edi,%edx
46a7cd:	ff 75 fc             	push   -0x4(%ebp)
46a7d0:	8b 08                	mov    (%eax),%ecx
46a7d2:	e8 d6 90 ff ff       	call   0x4638ad
46a7d7:	59                   	pop    %ecx
46a7d8:	84 c0                	test   %al,%al
46a7da:	75 14                	jne    0x46a7f0
46a7dc:	8b 75 0c             	mov    0xc(%ebp),%esi
46a7df:	8b ce                	mov    %esi,%ecx
46a7e1:	e8 3a f2 f9 ff       	call   0x409a20
46a7e6:	83 26 00             	andl   $0x0,(%esi)
46a7e9:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
46a7f0:	5f                   	pop    %edi
46a7f1:	5e                   	pop    %esi
46a7f2:	33 c0                	xor    %eax,%eax
46a7f4:	5b                   	pop    %ebx
46a7f5:	8b e5                	mov    %ebp,%esp
46a7f7:	5d                   	pop    %ebp
46a7f8:	c2 08 00             	ret    $0x8
46a7fb:	55                   	push   %ebp
46a7fc:	8b ec                	mov    %esp,%ebp
46a7fe:	8b 45 08             	mov    0x8(%ebp),%eax
46a801:	56                   	push   %esi
46a802:	8b 40 04             	mov    0x4(%eax),%eax
46a805:	8b 30                	mov    (%eax),%esi
46a807:	8b ce                	mov    %esi,%ecx
46a809:	e8 89 f1 f9 ff       	call   0x409997
46a80e:	8b 4e 08             	mov    0x8(%esi),%ecx
46a811:	e8 50 94 ff ff       	call   0x463c66
46a816:	84 c0                	test   %al,%al
46a818:	75 14                	jne    0x46a82e
46a81a:	8b 75 0c             	mov    0xc(%ebp),%esi
46a81d:	8b ce                	mov    %esi,%ecx
46a81f:	e8 fc f1 f9 ff       	call   0x409a20
46a824:	83 26 00             	andl   $0x0,(%esi)
46a827:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
46a82e:	33 c0                	xor    %eax,%eax
46a830:	5e                   	pop    %esi
46a831:	5d                   	pop    %ebp
46a832:	c2 08 00             	ret    $0x8
46a835:	55                   	push   %ebp
46a836:	8b ec                	mov    %esp,%ebp
46a838:	83 e4 f8             	and    $0xfffffff8,%esp
46a83b:	83 ec 4c             	sub    $0x4c,%esp
46a83e:	53                   	push   %ebx
46a83f:	56                   	push   %esi
46a840:	57                   	push   %edi
46a841:	8b 7d 08             	mov    0x8(%ebp),%edi
46a844:	89 4c 24 18          	mov    %ecx,0x18(%esp)
46a848:	8b 47 08             	mov    0x8(%edi),%eax
46a84b:	89 44 24 1c          	mov    %eax,0x1c(%esp)
46a84f:	8b 47 04             	mov    0x4(%edi),%eax
46a852:	8b 30                	mov    (%eax),%esi
46a854:	8b ce                	mov    %esi,%ecx
46a856:	e8 3c f1 f9 ff       	call   0x409997
46a85b:	8b 46 08             	mov    0x8(%esi),%eax
46a85e:	8d 4c 24 48          	lea    0x48(%esp),%ecx
46a862:	ff 30                	push   (%eax)
46a864:	e8 d8 d6 f9 ff       	call   0x407f41
46a869:	33 db                	xor    %ebx,%ebx
46a86b:	c6 44 24 14 01       	movb   $0x1,0x14(%esp)
46a870:	6a 01                	push   $0x1
46a872:	88 5c 24 14          	mov    %bl,0x14(%esp)
46a876:	89 5c 24 24          	mov    %ebx,0x24(%esp)
46a87a:	89 5c 24 28          	mov    %ebx,0x28(%esp)
46a87e:	89 5c 24 2c          	mov    %ebx,0x2c(%esp)
46a882:	89 5c 24 30          	mov    %ebx,0x30(%esp)
46a886:	89 5c 24 34          	mov    %ebx,0x34(%esp)
46a88a:	89 5c 24 38          	mov    %ebx,0x38(%esp)
46a88e:	ff 15 a4 f1 48 00    	call   *0x48f1a4
46a894:	8b f0                	mov    %eax,%esi
46a896:	39 5c 24 4c          	cmp    %ebx,0x4c(%esp)
46a89a:	0f 84 63 01 00 00    	je     0x46aa03
46a8a0:	8b 4c 24 48          	mov    0x48(%esp),%ecx
46a8a4:	e8 2a a4 ff ff       	call   0x464cd3
46a8a9:	84 c0                	test   %al,%al
46a8ab:	0f 84 52 01 00 00    	je     0x46aa03
46a8b1:	8d 4c 24 48          	lea    0x48(%esp),%ecx
46a8b5:	e8 ae 98 ff ff       	call   0x464168
46a8ba:	83 7c 24 1c 01       	cmpl   $0x1,0x1c(%esp)
46a8bf:	76 2d                	jbe    0x46a8ee
46a8c1:	8b 47 04             	mov    0x4(%edi),%eax
46a8c4:	8b 48 04             	mov    0x4(%eax),%ecx
46a8c7:	e8 d0 f3 f9 ff       	call   0x409c9c
46a8cc:	a8 01                	test   $0x1,%al
46a8ce:	74 05                	je     0x46a8d5
46a8d0:	c6 44 24 10 01       	movb   $0x1,0x10(%esp)
46a8d5:	8b 47 04             	mov    0x4(%edi),%eax
46a8d8:	8b 48 04             	mov    0x4(%eax),%ecx
46a8db:	e8 bc f3 f9 ff       	call   0x409c9c
46a8e0:	24 02                	and    $0x2,%al
46a8e2:	f6 d8                	neg    %al
46a8e4:	1a c0                	sbb    %al,%al
46a8e6:	f6 d0                	not    %al
46a8e8:	24 01                	and    $0x1,%al
46a8ea:	88 44 24 14          	mov    %al,0x14(%esp)
46a8ee:	ff 74 24 14          	push   0x14(%esp)
46a8f2:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
46a8f6:	8d 44 24 34          	lea    0x34(%esp),%eax
46a8fa:	ff 74 24 14          	push   0x14(%esp)
46a8fe:	50                   	push   %eax
46a8ff:	8d 44 24 34          	lea    0x34(%esp),%eax
46a903:	50                   	push   %eax
46a904:	8d 44 24 30          	lea    0x30(%esp),%eax
46a908:	50                   	push   %eax
46a909:	ff 74 24 5c          	push   0x5c(%esp)
46a90d:	e8 4c 4d 00 00       	call   0x46f65e
46a912:	84 c0                	test   %al,%al
46a914:	75 08                	jne    0x46a91e
46a916:	83 cb ff             	or     $0xffffffff,%ebx
46a919:	e9 0a 01 00 00       	jmp    0x46aa28
46a91e:	38 5c 24 10          	cmp    %bl,0x10(%esp)
46a922:	0f 84 bb 00 00 00    	je     0x46a9e3
46a928:	8b 4d 0c             	mov    0xc(%ebp),%ecx
46a92b:	e8 fe ea f9 ff       	call   0x40942e
46a930:	6a 03                	push   $0x3
46a932:	8b f8                	mov    %eax,%edi
46a934:	6a 01                	push   $0x1
46a936:	57                   	push   %edi
46a937:	e8 74 e8 f9 ff       	call   0x4091b0
46a93c:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
46a940:	8d 44 24 44          	lea    0x44(%esp),%eax
46a944:	83 c4 0c             	add    $0xc,%esp
46a947:	89 4c 24 38          	mov    %ecx,0x38(%esp)
46a94b:	8b 4c 24 24          	mov    0x24(%esp),%ecx
46a94f:	89 4c 24 3c          	mov    %ecx,0x3c(%esp)
46a953:	89 5c 24 40          	mov    %ebx,0x40(%esp)
46a957:	53                   	push   %ebx
46a958:	6a 01                	push   $0x1
46a95a:	50                   	push   %eax
46a95b:	57                   	push   %edi
46a95c:	c7 44 24 54 02 00 00 	movl   $0x2,0x54(%esp)
46a963:	00
46a964:	e8 d7 e6 f9 ff       	call   0x409040
46a969:	83 c4 10             	add    $0x10,%esp
46a96c:	8d 4c 24 38          	lea    0x38(%esp),%ecx
46a970:	e8 ab f0 f9 ff       	call   0x409a20
46a975:	8b 44 24 28          	mov    0x28(%esp),%eax
46a979:	89 44 24 38          	mov    %eax,0x38(%esp)
46a97d:	8b 44 24 2c          	mov    0x2c(%esp),%eax
46a981:	6a 01                	push   $0x1
46a983:	89 44 24 40          	mov    %eax,0x40(%esp)
46a987:	8d 44 24 3c          	lea    0x3c(%esp),%eax
46a98b:	6a 01                	push   $0x1
46a98d:	50                   	push   %eax
46a98e:	57                   	push   %edi
46a98f:	89 5c 24 50          	mov    %ebx,0x50(%esp)
46a993:	c7 44 24 54 02 00 00 	movl   $0x2,0x54(%esp)
46a99a:	00
46a99b:	e8 a0 e6 f9 ff       	call   0x409040
46a9a0:	83 c4 10             	add    $0x10,%esp
46a9a3:	8d 4c 24 38          	lea    0x38(%esp),%ecx
46a9a7:	e8 74 f0 f9 ff       	call   0x409a20
46a9ac:	8b 44 24 30          	mov    0x30(%esp),%eax
46a9b0:	89 44 24 38          	mov    %eax,0x38(%esp)
46a9b4:	8b 44 24 34          	mov    0x34(%esp),%eax
46a9b8:	6a 02                	push   $0x2
46a9ba:	89 44 24 40          	mov    %eax,0x40(%esp)
46a9be:	58                   	pop    %eax
46a9bf:	50                   	push   %eax
46a9c0:	89 44 24 48          	mov    %eax,0x48(%esp)
46a9c4:	8d 44 24 3c          	lea    0x3c(%esp),%eax
46a9c8:	6a 01                	push   $0x1
46a9ca:	50                   	push   %eax
46a9cb:	57                   	push   %edi
46a9cc:	89 5c 24 50          	mov    %ebx,0x50(%esp)
46a9d0:	e8 6b e6 f9 ff       	call   0x409040
46a9d5:	83 c4 10             	add    $0x10,%esp
46a9d8:	8d 4c 24 38          	lea    0x38(%esp),%ecx
46a9dc:	e8 3f f0 f9 ff       	call   0x409a20
46a9e1:	eb 45                	jmp    0x46aa28
46a9e3:	8b 7d 0c             	mov    0xc(%ebp),%edi
46a9e6:	8b cf                	mov    %edi,%ecx
46a9e8:	e8 33 f0 f9 ff       	call   0x409a20
46a9ed:	8b 44 24 20          	mov    0x20(%esp),%eax
46a9f1:	89 07                	mov    %eax,(%edi)
46a9f3:	8b 44 24 24          	mov    0x24(%esp),%eax
46a9f7:	c7 47 0c 02 00 00 00 	movl   $0x2,0xc(%edi)
46a9fe:	89 47 04             	mov    %eax,0x4(%edi)
46aa01:	eb 25                	jmp    0x46aa28
46aa03:	8b 7d 0c             	mov    0xc(%ebp),%edi
46aa06:	8b cf                	mov    %edi,%ecx
46aa08:	e8 13 f0 f9 ff       	call   0x409a20
46aa0d:	8b 54 24 18          	mov    0x18(%esp),%edx
46aa11:	33 c0                	xor    %eax,%eax
46aa13:	83 0f ff             	orl    $0xffffffff,(%edi)
46aa16:	40                   	inc    %eax
46aa17:	53                   	push   %ebx
46aa18:	89 47 0c             	mov    %eax,0xc(%edi)
46aa1b:	50                   	push   %eax
46aa1c:	8b 02                	mov    (%edx),%eax
46aa1e:	8b 48 04             	mov    0x4(%eax),%ecx
46aa21:	03 ca                	add    %edx,%ecx
46aa23:	e8 7b c0 fe ff       	call   0x456aa3
46aa28:	56                   	push   %esi
46aa29:	ff 15 a4 f1 48 00    	call   *0x48f1a4
46aa2f:	8d 4c 24 48          	lea    0x48(%esp),%ecx
46aa33:	e8 2c b0 f9 ff       	call   0x405a64
46aa38:	5f                   	pop    %edi
46aa39:	5e                   	pop    %esi
46aa3a:	8b c3                	mov    %ebx,%eax
46aa3c:	5b                   	pop    %ebx
46aa3d:	8b e5                	mov    %ebp,%esp
46aa3f:	5d                   	pop    %ebp
46aa40:	c2 08 00             	ret    $0x8
46aa43:	55                   	push   %ebp
46aa44:	8b ec                	mov    %esp,%ebp
46aa46:	51                   	push   %ecx
46aa47:	53                   	push   %ebx
46aa48:	8b 5d 08             	mov    0x8(%ebp),%ebx
46aa4b:	56                   	push   %esi
46aa4c:	57                   	push   %edi
46aa4d:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
46aa51:	83 7b 08 03          	cmpl   $0x3,0x8(%ebx)
46aa55:	72 13                	jb     0x46aa6a
46aa57:	8b 43 04             	mov    0x4(%ebx),%eax
46aa5a:	8b 48 08             	mov    0x8(%eax),%ecx
46aa5d:	e8 3a f2 f9 ff       	call   0x409c9c
46aa62:	85 c0                	test   %eax,%eax
46aa64:	74 04                	je     0x46aa6a
46aa66:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
46aa6a:	8b 43 04             	mov    0x4(%ebx),%eax
46aa6d:	8b 70 04             	mov    0x4(%eax),%esi
46aa70:	8b ce                	mov    %esi,%ecx
46aa72:	e8 20 ef f9 ff       	call   0x409997
46aa77:	8b 46 08             	mov    0x8(%esi),%eax
46aa7a:	8b 38                	mov    (%eax),%edi
46aa7c:	8b 43 04             	mov    0x4(%ebx),%eax
46aa7f:	8b 30                	mov    (%eax),%esi
46aa81:	8b ce                	mov    %esi,%ecx
46aa83:	e8 0f ef f9 ff       	call   0x409997
46aa88:	8b 46 08             	mov    0x8(%esi),%eax
46aa8b:	8b d7                	mov    %edi,%edx
46aa8d:	ff 75 fc             	push   -0x4(%ebp)
46aa90:	8b 08                	mov    (%eax),%ecx
46aa92:	e8 cc a4 ff ff       	call   0x464f63
46aa97:	59                   	pop    %ecx
46aa98:	84 c0                	test   %al,%al
46aa9a:	75 14                	jne    0x46aab0
46aa9c:	8b 75 0c             	mov    0xc(%ebp),%esi
46aa9f:	8b ce                	mov    %esi,%ecx
46aaa1:	e8 7a ef f9 ff       	call   0x409a20
46aaa6:	83 26 00             	andl   $0x0,(%esi)
46aaa9:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
46aab0:	5f                   	pop    %edi
46aab1:	5e                   	pop    %esi
46aab2:	33 c0                	xor    %eax,%eax
46aab4:	5b                   	pop    %ebx
46aab5:	8b e5                	mov    %ebp,%esp
46aab7:	5d                   	pop    %ebp
46aab8:	c2 08 00             	ret    $0x8
46aabb:	55                   	push   %ebp
46aabc:	8b ec                	mov    %esp,%ebp