4655ef:	74 2d                	je     0x46561e
4655f1:	33 ff                	xor    %edi,%edi
4655f3:	57                   	push   %edi
4655f4:	57                   	push   %edi
4655f5:	57                   	push   %edi
4655f6:	ff 75 f0             	push   -0x10(%ebp)
4655f9:	ff d6                	call   *%esi
4655fb:	85 c0                	test   %eax,%eax
4655fd:	75 1f                	jne    0x46561e
4655ff:	57                   	push   %edi
465600:	57                   	push   %edi
465601:	57                   	push   %edi
465602:	84 db                	test   %bl,%bl
465604:	74 11                	je     0x465617
465606:	68 c0 a3 4b 00       	push   $0x4ba3c0
46560b:	ff d6                	call   *%esi
46560d:	57                   	push   %edi
46560e:	57                   	push   %edi
46560f:	57                   	push   %edi
465610:	68 a4 a3 4b 00       	push   $0x4ba3a4
465615:	eb 05                	jmp    0x46561c
465617:	68 e4 a3 4b 00       	push   $0x4ba3e4
46561c:	ff d6                	call   *%esi
46561e:	8d 4d f0             	lea    -0x10(%ebp),%ecx
465621:	e8 3e 04 fa ff       	call   0x405a64
465626:	5f                   	pop    %edi
465627:	5e                   	pop    %esi
465628:	5b                   	pop    %ebx
465629:	8b e5                	mov    %ebp,%esp
46562b:	5d                   	pop    %ebp
46562c:	c3                   	ret
46562d:	55                   	push   %ebp
46562e:	8b ec                	mov    %esp,%ebp
465630:	83 ec 14             	sub    $0x14,%esp
465633:	53                   	push   %ebx
465634:	56                   	push   %esi
465635:	57                   	push   %edi
465636:	8b f9                	mov    %ecx,%edi
465638:	8d 4d f0             	lea    -0x10(%ebp),%ecx
46563b:	8b 5f 04             	mov    0x4(%edi),%ebx
46563e:	53                   	push   %ebx
46563f:	e8 32 25 fa ff       	call   0x407b76
465644:	33 f6                	xor    %esi,%esi
465646:	85 db                	test   %ebx,%ebx
465648:	74 27                	je     0x465671
46564a:	56                   	push   %esi
46564b:	8b cf                	mov    %edi,%ecx
46564d:	e8 00 25 fa ff       	call   0x407b52
465652:	66 83 38 0d          	cmpw   $0xd,(%eax)
465656:	74 14                	je     0x46566c
465658:	56                   	push   %esi
465659:	8b cf                	mov    %edi,%ecx
46565b:	e8 f2 24 fa ff       	call   0x407b52
465660:	8d 4d f0             	lea    -0x10(%ebp),%ecx
465663:	0f b7 00             	movzwl (%eax),%eax
465666:	50                   	push   %eax
465667:	e8 18 24 fa ff       	call   0x407a84
46566c:	46                   	inc    %esi
46566d:	3b f3                	cmp    %ebx,%esi
46566f:	72 d9                	jb     0x46564a
465671:	8d 45 f0             	lea    -0x10(%ebp),%eax
465674:	8b cf                	mov    %edi,%ecx
465676:	50                   	push   %eax
465677:	e8 2b 2b fa ff       	call   0x4081a7
46567c:	8d 4d f0             	lea    -0x10(%ebp),%ecx
46567f:	e8 e0 03 fa ff       	call   0x405a64
465684:	5f                   	pop    %edi
465685:	5e                   	pop    %esi
465686:	5b                   	pop    %ebx
465687:	8b e5                	mov    %ebp,%esp
465689:	5d                   	pop    %ebp
46568a:	c3                   	ret
46568b:	55                   	push   %ebp
46568c:	8b ec                	mov    %esp,%ebp
46568e:	51                   	push   %ecx
46568f:	51                   	push   %ecx
465690:	56                   	push   %esi
465691:	57                   	push   %edi
465692:	33 ff                	xor    %edi,%edi
465694:	8b f1                	mov    %ecx,%esi
465696:	57                   	push   %edi
465697:	57                   	push   %edi
465698:	6a 10                	push   $0x10
46569a:	56                   	push   %esi
46569b:	ff 15 90 f6 48 00    	call   *0x48f690
4656a1:	8d 45 f8             	lea    -0x8(%ebp),%eax
4656a4:	50                   	push   %eax
4656a5:	68 f4 01 00 00       	push   $0x1f4
4656aa:	6a 02                	push   $0x2
4656ac:	57                   	push   %edi
4656ad:	57                   	push   %edi
4656ae:	6a 10                	push   $0x10
4656b0:	56                   	push   %esi
4656b1:	ff 15 74 f6 48 00    	call   *0x48f674
4656b7:	85 c0                	test   %eax,%eax
4656b9:	75 2b                	jne    0x4656e6
4656bb:	8d 45 fc             	lea    -0x4(%ebp),%eax
4656be:	50                   	push   %eax
4656bf:	56                   	push   %esi
4656c0:	ff 15 60 f6 48 00    	call   *0x48f660
4656c6:	ff 75 fc             	push   -0x4(%ebp)
4656c9:	57                   	push   %edi
4656ca:	68 ff 0f 1f 00       	push   $0x1f0fff
4656cf:	ff 15 c4 f1 48 00    	call   *0x48f1c4
4656d5:	8b f0                	mov    %eax,%esi
4656d7:	57                   	push   %edi
4656d8:	56                   	push   %esi
4656d9:	ff 15 ec f1 48 00    	call   *0x48f1ec
4656df:	56                   	push   %esi
4656e0:	ff 15 5c f3 48 00    	call   *0x48f35c
4656e6:	5f                   	pop    %edi
4656e7:	5e                   	pop    %esi
4656e8:	8b e5                	mov    %ebp,%esp
4656ea:	5d                   	pop    %ebp
4656eb:	c3                   	ret
4656ec:	55                   	push   %ebp
4656ed:	8b ec                	mov    %esp,%ebp
4656ef:	53                   	push   %ebx
4656f0:	56                   	push   %esi
4656f1:	57                   	push   %edi
4656f2:	8b f9                	mov    %ecx,%edi
4656f4:	33 d2                	xor    %edx,%edx
4656f6:	33 f6                	xor    %esi,%esi
4656f8:	39 57 04             	cmp    %edx,0x4(%edi)
4656fb:	76 33                	jbe    0x465730
4656fd:	8b 5d 08             	mov    0x8(%ebp),%ebx
465700:	0f b7 03             	movzwl (%ebx),%eax
465703:	33 c9                	xor    %ecx,%ecx
465705:	66 85 c0             	test   %ax,%ax
465708:	74 1f                	je     0x465729
46570a:	8b 07                	mov    (%edi),%eax
46570c:	0f b7 04 50          	movzwl (%eax,%edx,2),%eax
465710:	89 45 08             	mov    %eax,0x8(%ebp)
465713:	0f b7 03             	movzwl (%ebx),%eax
465716:	66 39 45 08          	cmp    %ax,0x8(%ebp)
46571a:	74 1e                	je     0x46573a
46571c:	41                   	inc    %ecx
46571d:	0f b7 04 4b          	movzwl (%ebx,%ecx,2),%eax
465721:	66 85 c0             	test   %ax,%ax
465724:	75 f0                	jne    0x465716
465726:	0f b7 03             	movzwl (%ebx),%eax
465729:	42                   	inc    %edx
46572a:	46                   	inc    %esi
46572b:	3b 77 04             	cmp    0x4(%edi),%esi
46572e:	72 d3                	jb     0x465703
465730:	83 c8 ff             	or     $0xffffffff,%eax
465733:	5f                   	pop    %edi
465734:	5e                   	pop    %esi
465735:	5b                   	pop    %ebx
465736:	5d                   	pop    %ebp
465737:	c2 04 00             	ret    $0x4
46573a:	8b c2                	mov    %edx,%eax
46573c:	eb f5                	jmp    0x465733
46573e:	55                   	push   %ebp
46573f:	8b ec                	mov    %esp,%ebp
465741:	51                   	push   %ecx
465742:	56                   	push   %esi
465743:	57                   	push   %edi
465744:	8b f9                	mov    %ecx,%edi
465746:	8b f2                	mov    %edx,%esi
465748:	85 ff                	test   %edi,%edi
46574a:	75 04                	jne    0x465750
46574c:	33 c0                	xor    %eax,%eax
46574e:	eb 57                	jmp    0x4657a7
465750:	83 fe ff             	cmp    $0xffffffff,%esi
465753:	75 0a                	jne    0x46575f
465755:	57                   	push   %edi
465756:	e8 25 e2 fb ff       	call   0x423980
46575b:	59                   	pop    %ecx
46575c:	8d 70 01             	lea    0x1(%eax),%esi
46575f:	53                   	push   %ebx
465760:	33 c0                	xor    %eax,%eax
465762:	50                   	push   %eax
465763:	50                   	push   %eax
465764:	56                   	push   %esi
465765:	57                   	push   %edi
465766:	6a 01                	push   $0x1
465768:	50                   	push   %eax
465769:	ff 15 84 f1 48 00    	call   *0x48f184
46576f:	8b d8                	mov    %eax,%ebx
465771:	85 db                	test   %ebx,%ebx
465773:	74 31                	je     0x4657a6
465775:	33 c9                	xor    %ecx,%ecx
465777:	8b c6                	mov    %esi,%eax
465779:	6a 02                	push   $0x2
46577b:	5a                   	pop    %edx
46577c:	3b de                	cmp    %esi,%ebx
46577e:	7c 02                	jl     0x465782
465780:	8b c3                	mov    %ebx,%eax
465782:	f7 e2                	mul    %edx
465784:	0f 90 c1             	seto   %cl
465787:	f7 d9                	neg    %ecx
465789:	0b c8                	or     %eax,%ecx
46578b:	51                   	push   %ecx
46578c:	e8 65 b8 fb ff       	call   0x420ff6
465791:	59                   	pop    %ecx
465792:	53                   	push   %ebx
465793:	50                   	push   %eax
465794:	56                   	push   %esi
465795:	57                   	push   %edi
465796:	6a 01                	push   $0x1
465798:	6a 00                	push   $0x0
46579a:	89 45 fc             	mov    %eax,-0x4(%ebp)
46579d:	ff 15 84 f1 48 00    	call   *0x48f184
4657a3:	8b 45 fc             	mov    -0x4(%ebp),%eax
4657a6:	5b                   	pop    %ebx
4657a7:	5f                   	pop    %edi
4657a8:	5e                   	pop    %esi
4657a9:	8b e5                	mov    %ebp,%esp
4657ab:	5d                   	pop    %ebp
4657ac:	c3                   	ret
4657ad:	55                   	push   %ebp
4657ae:	8b ec                	mov    %esp,%ebp
4657b0:	83 ec 2c             	sub    $0x2c,%esp
4657b3:	53                   	push   %ebx
4657b4:	56                   	push   %esi
4657b5:	57                   	push   %edi
4657b6:	6a 08                	push   $0x8
4657b8:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4657bb:	8d 7d d4             	lea    -0x2c(%ebp),%edi
4657be:	59                   	pop    %ecx
4657bf:	be b8 4b 4a 00       	mov    $0x4a4bb8,%esi
4657c4:	8b da                	mov    %edx,%ebx
4657c6:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
4657c8:	6a 30                	push   $0x30
4657ca:	58                   	pop    %eax
4657cb:	6a 78                	push   $0x78
4657cd:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
4657cf:	66 89 03             	mov    %ax,(%ebx)
4657d2:	58                   	pop    %eax
4657d3:	66 89 43 02          	mov    %ax,0x2(%ebx)
4657d7:	8b 45 08             	mov    0x8(%ebp),%eax
4657da:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4657dd:	8d 70 ff             	lea    -0x1(%eax),%esi
4657e0:	85 f6                	test   %esi,%esi
4657e2:	78 39                	js     0x46581d
4657e4:	8d 7b 04             	lea    0x4(%ebx),%edi
4657e7:	8b 5d fc             	mov    -0x4(%ebp),%ebx
4657ea:	8d 3c b7             	lea    (%edi,%esi,4),%edi
4657ed:	0f b6 04 1e          	movzbl (%esi,%ebx,1),%eax
4657f1:	85 c0                	test   %eax,%eax
4657f3:	79 05                	jns    0x4657fa
4657f5:	05 00 01 00 00       	add    $0x100,%eax
4657fa:	6a 10                	push   $0x10
4657fc:	99                   	cltd
4657fd:	59                   	pop    %ecx
4657fe:	f7 f9                	idiv   %ecx
465800:	66 8b 4c 55 d4       	mov    -0x2c(%ebp,%edx,2),%cx
465805:	66 8b 44 45 d4       	mov    -0x2c(%ebp,%eax,2),%ax
46580a:	66 89 4f 02          	mov    %cx,0x2(%edi)
46580e:	66 89 07             	mov    %ax,(%edi)
465811:	83 ef 04             	sub    $0x4,%edi
465814:	4e                   	dec    %esi
465815:	79 d6                	jns    0x4657ed
465817:	8b 5d f8             	mov    -0x8(%ebp),%ebx
46581a:	8b 45 08             	mov    0x8(%ebp),%eax
46581d:	5f                   	pop    %edi
46581e:	33 c9                	xor    %ecx,%ecx
465820:	5e                   	pop    %esi
465821:	66 89 4c 83 04       	mov    %cx,0x4(%ebx,%eax,4)
465826:	5b                   	pop    %ebx
465827:	8b e5                	mov    %ebp,%esp
465829:	5d                   	pop    %ebp
46582a:	c3                   	ret
46582b:	55                   	push   %ebp
46582c:	8b ec                	mov    %esp,%ebp
46582e:	83 ec 0c             	sub    $0xc,%esp
465831:	53                   	push   %ebx
465832:	8b da                	mov    %edx,%ebx
465834:	8b d1                	mov    %ecx,%edx
465836:	56                   	push   %esi
465837:	33 f6                	xor    %esi,%esi
465839:	89 55 f4             	mov    %edx,-0xc(%ebp)
46583c:	8d 43 ff             	lea    -0x1(%ebx),%eax
46583f:	83 f8 07             	cmp    $0x7,%eax
465842:	77 4b                	ja     0x46588f
465844:	57                   	push   %edi
465845:	8b 7d 08             	mov    0x8(%ebp),%edi
465848:	33 c9                	xor    %ecx,%ecx
46584a:	41                   	inc    %ecx
46584b:	89 75 fc             	mov    %esi,-0x4(%ebp)
46584e:	89 4d f8             	mov    %ecx,-0x8(%ebp)
465851:	89 37                	mov    %esi,(%edi)
465853:	89 77 04             	mov    %esi,0x4(%edi)
465856:	85 db                	test   %ebx,%ebx
465858:	7e 30                	jle    0x46588a
46585a:	ff 75 fc             	push   -0x4(%ebp)
46585d:	0f b6 04 16          	movzbl (%esi,%edx,1),%eax
465861:	99                   	cltd
465862:	51                   	push   %ecx
465863:	52                   	push   %edx
465864:	50                   	push   %eax
465865:	e8 96 09 fd ff       	call   0x436200
46586a:	01 07                	add    %eax,(%edi)
46586c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
46586f:	11 57 04             	adc    %edx,0x4(%edi)
465872:	46                   	inc    %esi
465873:	8b 45 fc             	mov    -0x4(%ebp),%eax
465876:	8b 55 f4             	mov    -0xc(%ebp),%edx
465879:	0f a4 c8 08          	shld   $0x8,%ecx,%eax
46587d:	c1 e1 08             	shl    $0x8,%ecx
465880:	89 45 fc             	mov    %eax,-0x4(%ebp)
465883:	89 4d f8             	mov    %ecx,-0x8(%ebp)
465886:	3b f3                	cmp    %ebx,%esi
465888:	7c d0                	jl     0x46585a
46588a:	b0 01                	mov    $0x1,%al
46588c:	5f                   	pop    %edi
46588d:	eb 0a                	jmp    0x465899
46588f:	8b 45 08             	mov    0x8(%ebp),%eax
465892:	89 30                	mov    %esi,(%eax)
465894:	89 70 04             	mov    %esi,0x4(%eax)
465897:	32 c0                	xor    %al,%al
465899:	5e                   	pop    %esi
46589a:	5b                   	pop    %ebx
46589b:	8b e5                	mov    %ebp,%esp
46589d:	5d                   	pop    %ebp
46589e:	c3                   	ret
46589f:	55                   	push   %ebp
4658a0:	8b ec                	mov    %esp,%ebp
4658a2:	83 ec 0c             	sub    $0xc,%esp
4658a5:	56                   	push   %esi
4658a6:	57                   	push   %edi
4658a7:	8b fa                	mov    %edx,%edi
4658a9:	8b f1                	mov    %ecx,%esi
4658ab:	57                   	push   %edi
4658ac:	ff 15 58 f2 48 00    	call   *0x48f258
4658b2:	66 83 3e 00          	cmpw   $0x0,(%esi)
4658b6:	0f 84 5b 01 00 00    	je     0x465a17
4658bc:	56                   	push   %esi
4658bd:	e8 7a d5 fb ff       	call   0x422e3c
4658c2:	59                   	pop    %ecx
4658c3:	83 f8 04             	cmp    $0x4,%eax
4658c6:	0f 82 4b 01 00 00    	jb     0x465a17
4658cc:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
4658d0:	53                   	push   %ebx
4658d1:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4658d4:	0f 84 97 00 00 00    	je     0x465971
4658da:	6a 04                	push   $0x4
4658dc:	8d 45 f4             	lea    -0xc(%ebp),%eax
4658df:	56                   	push   %esi
4658e0:	50                   	push   %eax
4658e1:	e8 08 ea fb ff       	call   0x4242ee
4658e6:	33 c0                	xor    %eax,%eax
4658e8:	66 89 45 fc          	mov    %ax,-0x4(%ebp)
4658ec:	8d 45 f4             	lea    -0xc(%ebp),%eax
4658ef:	50                   	push   %eax
4658f0:	e8 d5 de fb ff       	call   0x4237ca
4658f5:	8d 34 5e             	lea    (%esi,%ebx,2),%esi
4658f8:	66 89 07             	mov    %ax,(%edi)
4658fb:	83 c6 08             	add    $0x8,%esi