46362f:	5e                   	pop    %esi
463630:	33 c0                	xor    %eax,%eax
463632:	5b                   	pop    %ebx
463633:	8b e5                	mov    %ebp,%esp
463635:	5d                   	pop    %ebp
463636:	c2 08 00             	ret    $0x8
463639:	55                   	push   %ebp
46363a:	8b ec                	mov    %esp,%ebp
46363c:	83 e4 f8             	and    $0xfffffff8,%esp
46363f:	83 ec 54             	sub    $0x54,%esp
463642:	83 64 24 04 00       	andl   $0x0,0x4(%esp)
463647:	53                   	push   %ebx
463648:	56                   	push   %esi
463649:	8b d9                	mov    %ecx,%ebx
46364b:	57                   	push   %edi
46364c:	8d 4c 24 40          	lea    0x40(%esp),%ecx
463650:	89 5c 24 14          	mov    %ebx,0x14(%esp)
463654:	e8 9e a1 fa ff       	call   0x40d7f7
463659:	8d 4c 24 30          	lea    0x30(%esp),%ecx
46365d:	e8 95 a1 fa ff       	call   0x40d7f7
463662:	8d 4c 24 50          	lea    0x50(%esp),%ecx
463666:	e8 8c a1 fa ff       	call   0x40d7f7
46366b:	8b 7d 08             	mov    0x8(%ebp),%edi
46366e:	8b 47 08             	mov    0x8(%edi),%eax
463671:	89 44 24 20          	mov    %eax,0x20(%esp)
463675:	83 f8 01             	cmp    $0x1,%eax
463678:	74 09                	je     0x463683
46367a:	83 f8 04             	cmp    $0x4,%eax
46367d:	0f 85 85 00 00 00    	jne    0x463708
463683:	8b 47 04             	mov    0x4(%edi),%eax
463686:	8b 30                	mov    (%eax),%esi
463688:	8b ce                	mov    %esi,%ecx
46368a:	e8 dd 5c fa ff       	call   0x40936c
46368f:	8b 56 08             	mov    0x8(%esi),%edx
463692:	83 ec 10             	sub    $0x10,%esp
463695:	8b 02                	mov    (%edx),%eax
463697:	8b cc                	mov    %esp,%ecx
463699:	89 01                	mov    %eax,(%ecx)
46369b:	8b 42 04             	mov    0x4(%edx),%eax
46369e:	89 41 04             	mov    %eax,0x4(%ecx)
4636a1:	8b 42 08             	mov    0x8(%edx),%eax
4636a4:	89 41 08             	mov    %eax,0x8(%ecx)
4636a7:	8b 42 0c             	mov    0xc(%edx),%eax
4636aa:	89 41 0c             	mov    %eax,0xc(%ecx)
4636ad:	ff 00                	incl   (%eax)
4636af:	8d 44 24 60          	lea    0x60(%esp),%eax
4636b3:	50                   	push   %eax
4636b4:	8d 44 24 44          	lea    0x44(%esp),%eax
4636b8:	50                   	push   %eax
4636b9:	8d 44 24 58          	lea    0x58(%esp),%eax
4636bd:	50                   	push   %eax
4636be:	e8 c7 07 00 00       	call   0x463e8a
4636c3:	8b 44 24 30          	mov    0x30(%esp),%eax
4636c7:	83 ec 10             	sub    $0x10,%esp
4636ca:	8b cc                	mov    %esp,%ecx
4636cc:	89 01                	mov    %eax,(%ecx)
4636ce:	8b 44 24 44          	mov    0x44(%esp),%eax
4636d2:	89 41 04             	mov    %eax,0x4(%ecx)
4636d5:	8b 44 24 48          	mov    0x48(%esp),%eax
4636d9:	89 41 08             	mov    %eax,0x8(%ecx)
4636dc:	8b 44 24 4c          	mov    0x4c(%esp),%eax
4636e0:	89 41 0c             	mov    %eax,0xc(%ecx)
4636e3:	ff 00                	incl   (%eax)
4636e5:	8d 44 24 2c          	lea    0x2c(%esp),%eax
4636e9:	50                   	push   %eax
4636ea:	8d 44 24 2c          	lea    0x2c(%esp),%eax
4636ee:	50                   	push   %eax
4636ef:	e8 12 05 00 00       	call   0x463c06
4636f4:	84 c0                	test   %al,%al
4636f6:	75 29                	jne    0x463721
4636f8:	8b 03                	mov    (%ebx),%eax
4636fa:	6a 00                	push   $0x0
4636fc:	8b 48 04             	mov    0x4(%eax),%ecx
4636ff:	6a 02                	push   $0x2
463701:	03 cb                	add    %ebx,%ecx
463703:	e8 44 98 fe ff       	call   0x44cf4c
463708:	8b 75 0c             	mov    0xc(%ebp),%esi
46370b:	8b ce                	mov    %esi,%ecx
46370d:	e8 0e f5 fa ff       	call   0x412c20
463712:	83 26 00             	andl   $0x0,(%esi)
463715:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
46371c:	e9 82 04 00 00       	jmp    0x463ba3
463721:	83 7c 24 44 00       	cmpl   $0x0,0x44(%esp)
463726:	74 54                	je     0x46377c
463728:	8d 44 24 10          	lea    0x10(%esp),%eax
46372c:	50                   	push   %eax
46372d:	ff 74 24 1c          	push   0x1c(%esp)
463731:	ff 74 24 48          	push   0x48(%esp)
463735:	ff 15 2c d0 48 00    	call   *0x48d02c
46373b:	85 c0                	test   %eax,%eax
46373d:	74 37                	je     0x463776
46373f:	33 ff                	xor    %edi,%edi
463741:	57                   	push   %edi
463742:	50                   	push   %eax
463743:	8b 03                	mov    (%ebx),%eax
463745:	8b 48 04             	mov    0x4(%eax),%ecx
463748:	03 cb                	add    %ebx,%ecx
46374a:	e8 d2 fb f9 ff       	call   0x403321
46374f:	8b 03                	mov    (%ebx),%eax
463751:	57                   	push   %edi
463752:	8b 48 04             	mov    0x4(%eax),%ecx
463755:	6a 03                	push   $0x3
463757:	03 cb                	add    %ebx,%ecx
463759:	e8 ee 97 fe ff       	call   0x44cf4c
46375e:	8b 75 0c             	mov    0xc(%ebp),%esi
463761:	8b ce                	mov    %esi,%ecx
463763:	e8 b8 f4 fa ff       	call   0x412c20
463768:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
46376f:	89 3e                	mov    %edi,(%esi)
463771:	e9 2d 04 00 00       	jmp    0x463ba3
463776:	8b 4c 24 10          	mov    0x10(%esp),%ecx
46377a:	eb 04                	jmp    0x463780
46377c:	8b 4c 24 18          	mov    0x18(%esp),%ecx
463780:	8d 44 24 2c          	lea    0x2c(%esp),%eax
463784:	50                   	push   %eax
463785:	8d 44 24 10          	lea    0x10(%esp),%eax
463789:	50                   	push   %eax
46378a:	8b 44 24 24          	mov    0x24(%esp),%eax
46378e:	33 f6                	xor    %esi,%esi
463790:	56                   	push   %esi
463791:	0d 06 00 02 00       	or     $0x20006,%eax
463796:	50                   	push   %eax
463797:	56                   	push   %esi
463798:	68 00 dc 49 00       	push   $0x49dc00
46379d:	56                   	push   %esi
46379e:	ff 74 24 6c          	push   0x6c(%esp)
4637a2:	51                   	push   %ecx
4637a3:	ff 15 18 d0 48 00    	call   *0x48d018
4637a9:	85 c0                	test   %eax,%eax
4637ab:	74 49                	je     0x4637f6
4637ad:	56                   	push   %esi
4637ae:	50                   	push   %eax
4637af:	8b 03                	mov    (%ebx),%eax
4637b1:	8b 48 04             	mov    0x4(%eax),%ecx
4637b4:	03 cb                	add    %ebx,%ecx
4637b6:	e8 66 fb f9 ff       	call   0x403321
4637bb:	8b 03                	mov    (%ebx),%eax
4637bd:	33 ff                	xor    %edi,%edi
4637bf:	8b 48 04             	mov    0x4(%eax),%ecx
4637c2:	56                   	push   %esi
4637c3:	47                   	inc    %edi
4637c4:	57                   	push   %edi
4637c5:	03 cb                	add    %ebx,%ecx
4637c7:	e8 80 97 fe ff       	call   0x44cf4c
4637cc:	8b 75 0c             	mov    0xc(%ebp),%esi
4637cf:	8b ce                	mov    %esi,%ecx
4637d1:	e8 4a f4 fa ff       	call   0x412c20
4637d6:	83 26 00             	andl   $0x0,(%esi)
4637d9:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
4637de:	89 7e 0c             	mov    %edi,0xc(%esi)
4637e1:	0f 84 bc 03 00 00    	je     0x463ba3
4637e7:	ff 74 24 10          	push   0x10(%esp)
4637eb:	ff 15 24 d0 48 00    	call   *0x48d024
4637f1:	e9 ad 03 00 00       	jmp    0x463ba3
4637f6:	83 7c 24 20 01       	cmpl   $0x1,0x20(%esp)
4637fb:	0f 86 89 03 00 00    	jbe    0x463b8a
463801:	8b 47 04             	mov    0x4(%edi),%eax
463804:	8b 70 08             	mov    0x8(%eax),%esi
463807:	8b ce                	mov    %esi,%ecx
463809:	e8 5e 5b fa ff       	call   0x40936c
46380e:	8b 46 08             	mov    0x8(%esi),%eax
463811:	68 14 46 4b 00       	push   $0x4b4614
463816:	ff 30                	push   (%eax)
463818:	e8 8a d7 fb ff       	call   0x420fa7
46381d:	59                   	pop    %ecx
46381e:	85 c0                	test   %eax,%eax
463820:	8b 47 04             	mov    0x4(%edi),%eax
463823:	59                   	pop    %ecx
463824:	75 7f                	jne    0x4638a5
463826:	8b 70 0c             	mov    0xc(%eax),%esi
463829:	8b ce                	mov    %esi,%ecx
46382b:	e8 3c 5b fa ff       	call   0x40936c
463830:	8b 46 08             	mov    0x8(%esi),%eax
463833:	ff 30                	push   (%eax)
463835:	e8 a1 d4 fb ff       	call   0x420cdb
46383a:	8d 1c 45 02 00 00 00 	lea    0x2(,%eax,2),%ebx
463841:	8b 47 04             	mov    0x4(%edi),%eax
463844:	59                   	pop    %ecx
463845:	8b 70 0c             	mov    0xc(%eax),%esi
463848:	8b ce                	mov    %esi,%ecx
46384a:	e8 1d 5b fa ff       	call   0x40936c
46384f:	8b 46 08             	mov    0x8(%esi),%eax
463852:	8b 38                	mov    (%eax),%edi
463854:	8b 45 08             	mov    0x8(%ebp),%eax
463857:	8b 40 04             	mov    0x4(%eax),%eax
46385a:	8b 70 04             	mov    0x4(%eax),%esi
46385d:	8b ce                	mov    %esi,%ecx
46385f:	e8 08 5b fa ff       	call   0x40936c
463864:	8b 46 08             	mov    0x8(%esi),%eax
463867:	53                   	push   %ebx
463868:	57                   	push   %edi
463869:	6a 02                	push   $0x2
46386b:	33 db                	xor    %ebx,%ebx
46386d:	53                   	push   %ebx
46386e:	ff 30                	push   (%eax)
463870:	ff 74 24 20          	push   0x20(%esp)
463874:	ff 15 14 d0 48 00    	call   *0x48d014
46387a:	85 c0                	test   %eax,%eax
46387c:	0f 84 08 03 00 00    	je     0x463b8a
463882:	8b 54 24 14          	mov    0x14(%esp),%edx
463886:	53                   	push   %ebx
463887:	50                   	push   %eax
463888:	8b 02                	mov    (%edx),%eax
46388a:	8b 48 04             	mov    0x4(%eax),%ecx
46388d:	03 ca                	add    %edx,%ecx
46388f:	e8 8d fa f9 ff       	call   0x403321
463894:	8b 75 0c             	mov    0xc(%ebp),%esi
463897:	8b ce                	mov    %esi,%ecx
463899:	e8 82 f3 fa ff       	call   0x412c20
46389e:	89 1e                	mov    %ebx,(%esi)
4638a0:	e9 de 02 00 00       	jmp    0x463b83
4638a5:	8b 70 08             	mov    0x8(%eax),%esi
4638a8:	8b ce                	mov    %esi,%ecx
4638aa:	e8 bd 5a fa ff       	call   0x40936c
4638af:	8b 46 08             	mov    0x8(%esi),%eax
4638b2:	68 30 46 4b 00       	push   $0x4b4630
4638b7:	ff 30                	push   (%eax)
4638b9:	e8 e9 d6 fb ff       	call   0x420fa7
4638be:	59                   	pop    %ecx
4638bf:	85 c0                	test   %eax,%eax
4638c1:	8b 47 04             	mov    0x4(%edi),%eax
4638c4:	59                   	pop    %ecx
4638c5:	0f 85 84 00 00 00    	jne    0x46394f
4638cb:	8b 70 0c             	mov    0xc(%eax),%esi
4638ce:	8b ce                	mov    %esi,%ecx
4638d0:	e8 97 5a fa ff       	call   0x40936c
4638d5:	8b 46 08             	mov    0x8(%esi),%eax
4638d8:	ff 30                	push   (%eax)
4638da:	e8 fc d3 fb ff       	call   0x420cdb
4638df:	8d 1c 45 02 00 00 00 	lea    0x2(,%eax,2),%ebx
4638e6:	8b 47 04             	mov    0x4(%edi),%eax
4638e9:	59                   	pop    %ecx
4638ea:	8b 70 0c             	mov    0xc(%eax),%esi
4638ed:	8b ce                	mov    %esi,%ecx
4638ef:	e8 78 5a fa ff       	call   0x40936c
4638f4:	8b 46 08             	mov    0x8(%esi),%eax
4638f7:	8b 38                	mov    (%eax),%edi
4638f9:	8b 45 08             	mov    0x8(%ebp),%eax
4638fc:	8b 40 04             	mov    0x4(%eax),%eax
4638ff:	8b 70 04             	mov    0x4(%eax),%esi
463902:	8b ce                	mov    %esi,%ecx
463904:	e8 63 5a fa ff       	call   0x40936c
463909:	8b 46 08             	mov    0x8(%esi),%eax
46390c:	53                   	push   %ebx
46390d:	57                   	push   %edi
46390e:	33 ff                	xor    %edi,%edi
463910:	47                   	inc    %edi
463911:	57                   	push   %edi
463912:	33 db                	xor    %ebx,%ebx
463914:	53                   	push   %ebx
463915:	ff 30                	push   (%eax)
463917:	ff 74 24 20          	push   0x20(%esp)
46391b:	ff 15 14 d0 48 00    	call   *0x48d014
463921:	85 c0                	test   %eax,%eax
463923:	0f 84 61 02 00 00    	je     0x463b8a
463929:	8b 54 24 14          	mov    0x14(%esp),%edx
46392d:	53                   	push   %ebx
46392e:	50                   	push   %eax
46392f:	8b 02                	mov    (%edx),%eax
463931:	8b 48 04             	mov    0x4(%eax),%ecx
463934:	03 ca                	add    %edx,%ecx
463936:	e8 e6 f9 f9 ff       	call   0x403321
46393b:	8b 75 0c             	mov    0xc(%ebp),%esi
46393e:	8b ce                	mov    %esi,%ecx
463940:	e8 db f2 fa ff       	call   0x412c20
463945:	89 7e 0c             	mov    %edi,0xc(%esi)
463948:	89 1e                	mov    %ebx,(%esi)
46394a:	e9 3b 02 00 00       	jmp    0x463b8a
46394f:	8b 70 08             	mov    0x8(%eax),%esi
463952:	8b ce                	mov    %esi,%ecx
463954:	e8 13 5a fa ff       	call   0x40936c
463959:	8b 46 08             	mov    0x8(%esi),%eax
46395c:	68 40 46 4b 00       	push   $0x4b4640
463961:	ff 30                	push   (%eax)
463963:	e8 3f d6 fb ff       	call   0x420fa7
463968:	59                   	pop    %ecx
463969:	85 c0                	test   %eax,%eax
46396b:	8b 47 04             	mov    0x4(%edi),%eax
46396e:	59                   	pop    %ecx
46396f:	0f 85 e3 00 00 00    	jne    0x463a58
463975:	8b 70 0c             	mov    0xc(%eax),%esi
463978:	8b ce                	mov    %esi,%ecx
46397a:	e8 ed 59 fa ff       	call   0x40936c
46397f:	8b 46 08             	mov    0x8(%esi),%eax
463982:	33 c9                	xor    %ecx,%ecx
463984:	8b 40 04             	mov    0x4(%eax),%eax
463987:	89 44 24 14          	mov    %eax,0x14(%esp)
46398b:	83 c0 02             	add    $0x2,%eax
46398e:	6a 02                	push   $0x2
463990:	5a                   	pop    %edx
463991:	89 44 24 20          	mov    %eax,0x20(%esp)
463995:	f7 e2                	mul    %edx
463997:	0f 90 c1             	seto   %cl
46399a:	f7 d9                	neg    %ecx
46399c:	0b c8                	or     %eax,%ecx
46399e:	51                   	push   %ecx
46399f:	e8 46 bb fb ff       	call   0x41f4ea
4639a4:	59                   	pop    %ecx
4639a5:	8b 4f 04             	mov    0x4(%edi),%ecx
4639a8:	89 44 24 18          	mov    %eax,0x18(%esp)
4639ac:	8b 71 0c             	mov    0xc(%ecx),%esi
4639af:	8b ce                	mov    %esi,%ecx
4639b1:	e8 b6 59 fa ff       	call   0x40936c
4639b6:	8b 4c 24 14          	mov    0x14(%esp),%ecx
4639ba:	8b 56 08             	mov    0x8(%esi),%edx
4639bd:	8b 74 24 18          	mov    0x18(%esp),%esi
4639c1:	8b 12                	mov    (%edx),%edx
4639c3:	41                   	inc    %ecx
4639c4:	51                   	push   %ecx
4639c5:	8b ce                	mov    %esi,%ecx
4639c7:	e8 1a 17 fa ff       	call   0x4050e6
4639cc:	59                   	pop    %ecx
4639cd:	8b 4c 24 14          	mov    0x14(%esp),%ecx
4639d1:	33 c0                	xor    %eax,%eax
4639d3:	89 04 4e             	mov    %eax,(%esi,%ecx,2)
4639d6:	85 c9                	test   %ecx,%ecx
4639d8:	74 1e                	je     0x4639f8
4639da:	66 83 3c 46 0a       	cmpw   $0xa,(%esi,%eax,2)
4639df:	75 06                	jne    0x4639e7
4639e1:	33 d2                	xor    %edx,%edx
4639e3:	66 89 14 46          	mov    %dx,(%esi,%eax,2)
4639e7:	40                   	inc    %eax
4639e8:	3b c1                	cmp    %ecx,%eax
4639ea:	72 ee                	jb     0x4639da
4639ec:	85 c9                	test   %ecx,%ecx
4639ee:	74 08                	je     0x4639f8
4639f0:	8b 44 24 20          	mov    0x20(%esp),%eax
4639f4:	89 44 24 14          	mov    %eax,0x14(%esp)
4639f8:	8b 47 04             	mov    0x4(%edi),%eax
4639fb:	8b 70 04             	mov    0x4(%eax),%esi
4639fe:	8b ce                	mov    %esi,%ecx
463a00:	e8 67 59 fa ff       	call   0x40936c
463a05:	8b 46 08             	mov    0x8(%esi),%eax
463a08:	8b 7c 24 18          	mov    0x18(%esp),%edi
463a0c:	8b 08                	mov    (%eax),%ecx
463a0e:	8b 44 24 14          	mov    0x14(%esp),%eax
463a12:	03 c0                	add    %eax,%eax
463a14:	50                   	push   %eax
463a15:	57                   	push   %edi
463a16:	6a 07                	push   $0x7
463a18:	6a 00                	push   $0x0
463a1a:	51                   	push   %ecx
463a1b:	ff 74 24 20          	push   0x20(%esp)
463a1f:	ff 15 14 d0 48 00    	call   *0x48d014
463a25:	85 c0                	test   %eax,%eax
463a27:	74 23                	je     0x463a4c
463a29:	6a 00                	push   $0x0
463a2b:	50                   	push   %eax
463a2c:	8b 03                	mov    (%ebx),%eax
463a2e:	8b 48 04             	mov    0x4(%eax),%ecx