42b656:	56                   	push   %esi
42b657:	50                   	push   %eax
42b658:	e8 c2 90 ff ff       	call   0x42471f
42b65d:	83 c4 0c             	add    $0xc,%esp
42b660:	85 c0                	test   %eax,%eax
42b662:	74 5c                	je     0x42b6c0
42b664:	8b 45 fc             	mov    -0x4(%ebp),%eax
42b667:	43                   	inc    %ebx
42b668:	83 fb 03             	cmp    $0x3,%ebx
42b66b:	72 de                	jb     0x42b64b
42b66d:	33 db                	xor    %ebx,%ebx
42b66f:	ff 77 04             	push   0x4(%edi)
42b672:	8b 75 08             	mov    0x8(%ebp),%esi
42b675:	ff 37                	push   (%edi)
42b677:	6a 40                	push   $0x40
42b679:	8d 86 80 00 00 00    	lea    0x80(%esi),%eax
42b67f:	50                   	push   %eax
42b680:	e8 23 c7 ff ff       	call   0x427da8
42b685:	83 c4 10             	add    $0x10,%esp
42b688:	85 c0                	test   %eax,%eax
42b68a:	75 3b                	jne    0x42b6c7
42b68c:	6a 01                	push   $0x1
42b68e:	68 c4 f4 44 00       	push   $0x44f4c4
42b693:	81 c6 20 01 00 00    	add    $0x120,%esi
42b699:	6a 55                	push   $0x55
42b69b:	56                   	push   %esi
42b69c:	e8 02 9c 00 00       	call   0x4352a3
42b6a1:	83 c4 10             	add    $0x10,%esp
42b6a4:	85 c0                	test   %eax,%eax
42b6a6:	75 1f                	jne    0x42b6c7
42b6a8:	ff 77 04             	push   0x4(%edi)
42b6ab:	ff 37                	push   (%edi)
42b6ad:	6a 55                	push   $0x55
42b6af:	56                   	push   %esi
42b6b0:	e8 ee 9b 00 00       	call   0x4352a3
42b6b5:	83 c4 10             	add    $0x10,%esp
42b6b8:	85 c0                	test   %eax,%eax
42b6ba:	75 0b                	jne    0x42b6c7
42b6bc:	b0 01                	mov    $0x1,%al
42b6be:	eb 02                	jmp    0x42b6c2
42b6c0:	32 c0                	xor    %al,%al
42b6c2:	5f                   	pop    %edi
42b6c3:	5e                   	pop    %esi
42b6c4:	5b                   	pop    %ebx
42b6c5:	c9                   	leave
42b6c6:	c3                   	ret
42b6c7:	53                   	push   %ebx
42b6c8:	53                   	push   %ebx
42b6c9:	53                   	push   %ebx
42b6ca:	53                   	push   %ebx
42b6cb:	53                   	push   %ebx
42b6cc:	e8 cb 53 ff ff       	call   0x420a9c
42b6d1:	cc                   	int3
42b6d2:	8b ff                	mov    %edi,%edi
42b6d4:	55                   	push   %ebp
42b6d5:	8b ec                	mov    %esp,%ebp
42b6d7:	53                   	push   %ebx
42b6d8:	56                   	push   %esi
42b6d9:	8b 75 0c             	mov    0xc(%ebp),%esi
42b6dc:	33 db                	xor    %ebx,%ebx
42b6de:	39 5e 08             	cmp    %ebx,0x8(%esi)
42b6e1:	75 4e                	jne    0x42b731
42b6e3:	83 7e 04 04          	cmpl   $0x4,0x4(%esi)
42b6e7:	75 48                	jne    0x42b731
42b6e9:	6a 04                	push   $0x4
42b6eb:	ff 36                	push   (%esi)
42b6ed:	e8 50 00 00 00       	call   0x42b742
42b6f2:	59                   	pop    %ecx
42b6f3:	59                   	pop    %ecx
42b6f4:	84 c0                	test   %al,%al
42b6f6:	74 39                	je     0x42b731
42b6f8:	57                   	push   %edi
42b6f9:	8b 7d 08             	mov    0x8(%ebp),%edi
42b6fc:	6a 01                	push   $0x1
42b6fe:	68 c4 f4 44 00       	push   $0x44f4c4
42b703:	81 c7 20 01 00 00    	add    $0x120,%edi
42b709:	6a 55                	push   $0x55
42b70b:	57                   	push   %edi
42b70c:	e8 92 9b 00 00       	call   0x4352a3
42b711:	83 c4 10             	add    $0x10,%esp
42b714:	85 c0                	test   %eax,%eax
42b716:	75 1f                	jne    0x42b737
42b718:	ff 76 04             	push   0x4(%esi)
42b71b:	ff 36                	push   (%esi)
42b71d:	6a 55                	push   $0x55
42b71f:	57                   	push   %edi
42b720:	e8 7e 9b 00 00       	call   0x4352a3
42b725:	83 c4 10             	add    $0x10,%esp
42b728:	5f                   	pop    %edi
42b729:	85 c0                	test   %eax,%eax
42b72b:	75 0a                	jne    0x42b737
42b72d:	b0 01                	mov    $0x1,%al
42b72f:	eb 02                	jmp    0x42b733
42b731:	32 c0                	xor    %al,%al
42b733:	5e                   	pop    %esi
42b734:	5b                   	pop    %ebx
42b735:	5d                   	pop    %ebp
42b736:	c3                   	ret
42b737:	53                   	push   %ebx
42b738:	53                   	push   %ebx
42b739:	53                   	push   %ebx
42b73a:	53                   	push   %ebx
42b73b:	53                   	push   %ebx
42b73c:	e8 5b 53 ff ff       	call   0x420a9c
42b741:	cc                   	int3
42b742:	8b ff                	mov    %edi,%edi
42b744:	55                   	push   %ebp
42b745:	8b ec                	mov    %esp,%ebp
42b747:	53                   	push   %ebx
42b748:	56                   	push   %esi
42b749:	57                   	push   %edi
42b74a:	33 ff                	xor    %edi,%edi
42b74c:	39 7d 0c             	cmp    %edi,0xc(%ebp)
42b74f:	76 25                	jbe    0x42b776
42b751:	8b 5d 08             	mov    0x8(%ebp),%ebx
42b754:	0f b7 34 7b          	movzwl (%ebx,%edi,2),%esi
42b758:	e8 6f d0 ff ff       	call   0x4287cc
42b75d:	68 03 01 00 00       	push   $0x103
42b762:	56                   	push   %esi
42b763:	50                   	push   %eax
42b764:	e8 b6 8f ff ff       	call   0x42471f
42b769:	83 c4 0c             	add    $0xc,%esp
42b76c:	85 c0                	test   %eax,%eax
42b76e:	74 0d                	je     0x42b77d
42b770:	47                   	inc    %edi
42b771:	3b 7d 0c             	cmp    0xc(%ebp),%edi
42b774:	72 de                	jb     0x42b754
42b776:	b0 01                	mov    $0x1,%al
42b778:	5f                   	pop    %edi
42b779:	5e                   	pop    %esi
42b77a:	5b                   	pop    %ebx
42b77b:	5d                   	pop    %ebp
42b77c:	c3                   	ret
42b77d:	32 c0                	xor    %al,%al
42b77f:	eb f7                	jmp    0x42b778
42b781:	a1 00 5d 45 00       	mov    0x455d00,%eax
42b786:	90                   	nop
42b787:	c3                   	ret
42b788:	8b ff                	mov    %edi,%edi
42b78a:	55                   	push   %ebp
42b78b:	8b ec                	mov    %esp,%ebp
42b78d:	8b 45 08             	mov    0x8(%ebp),%eax
42b790:	85 c0                	test   %eax,%eax
42b792:	74 1a                	je     0x42b7ae
42b794:	83 f8 01             	cmp    $0x1,%eax
42b797:	74 15                	je     0x42b7ae
42b799:	e8 a2 ae ff ff       	call   0x426640
42b79e:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
42b7a4:	e8 c6 52 ff ff       	call   0x420a6f
42b7a9:	83 c8 ff             	or     $0xffffffff,%eax
42b7ac:	5d                   	pop    %ebp
42b7ad:	c3                   	ret
42b7ae:	b9 00 5d 45 00       	mov    $0x455d00,%ecx
42b7b3:	87 01                	xchg   %eax,(%ecx)
42b7b5:	5d                   	pop    %ebp
42b7b6:	c3                   	ret
42b7b7:	b8 04 5d 45 00       	mov    $0x455d04,%eax
42b7bc:	c3                   	ret
42b7bd:	6a 0c                	push   $0xc
42b7bf:	68 90 24 45 00       	push   $0x452490
42b7c4:	e8 07 11 ff ff       	call   0x41c8d0
42b7c9:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
42b7cd:	8b 45 08             	mov    0x8(%ebp),%eax
42b7d0:	ff 30                	push   (%eax)
42b7d2:	e8 ea cc ff ff       	call   0x4284c1
42b7d7:	59                   	pop    %ecx
42b7d8:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
42b7dc:	8b 4d 0c             	mov    0xc(%ebp),%ecx
42b7df:	e8 91 01 00 00       	call   0x42b975
42b7e4:	8b f0                	mov    %eax,%esi
42b7e6:	89 75 e4             	mov    %esi,-0x1c(%ebp)
42b7e9:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
42b7f0:	e8 17 00 00 00       	call   0x42b80c
42b7f5:	8b c6                	mov    %esi,%eax
42b7f7:	8b 4d f0             	mov    -0x10(%ebp),%ecx
42b7fa:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
42b801:	59                   	pop    %ecx
42b802:	5f                   	pop    %edi
42b803:	5e                   	pop    %esi
42b804:	5b                   	pop    %ebx
42b805:	c9                   	leave
42b806:	c2 0c 00             	ret    $0xc
42b809:	8b 75 e4             	mov    -0x1c(%ebp),%esi
42b80c:	8b 45 10             	mov    0x10(%ebp),%eax
42b80f:	ff 30                	push   (%eax)
42b811:	e8 fb cc ff ff       	call   0x428511
42b816:	59                   	pop    %ecx
42b817:	c3                   	ret
42b818:	6a 0c                	push   $0xc
42b81a:	68 70 24 45 00       	push   $0x452470
42b81f:	e8 ac 10 ff ff       	call   0x41c8d0
42b824:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
42b828:	8b 45 08             	mov    0x8(%ebp),%eax
42b82b:	ff 30                	push   (%eax)
42b82d:	e8 8f cc ff ff       	call   0x4284c1
42b832:	59                   	pop    %ecx
42b833:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
42b837:	8b 4d 0c             	mov    0xc(%ebp),%ecx
42b83a:	e8 34 00 00 00       	call   0x42b873
42b83f:	8b f0                	mov    %eax,%esi
42b841:	89 75 e4             	mov    %esi,-0x1c(%ebp)
42b844:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
42b84b:	e8 17 00 00 00       	call   0x42b867
42b850:	8b c6                	mov    %esi,%eax
42b852:	8b 4d f0             	mov    -0x10(%ebp),%ecx
42b855:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
42b85c:	59                   	pop    %ecx
42b85d:	5f                   	pop    %edi
42b85e:	5e                   	pop    %esi
42b85f:	5b                   	pop    %ebx
42b860:	c9                   	leave
42b861:	c2 0c 00             	ret    $0xc
42b864:	8b 75 e4             	mov    -0x1c(%ebp),%esi
42b867:	8b 45 10             	mov    0x10(%ebp),%eax
42b86a:	ff 30                	push   (%eax)
42b86c:	e8 a0 cc ff ff       	call   0x428511
42b871:	59                   	pop    %ecx
42b872:	c3                   	ret
42b873:	8b ff                	mov    %edi,%edi
42b875:	55                   	push   %ebp
42b876:	8b ec                	mov    %esp,%ebp
42b878:	51                   	push   %ecx
42b879:	51                   	push   %ecx
42b87a:	8b c1                	mov    %ecx,%eax
42b87c:	89 45 f8             	mov    %eax,-0x8(%ebp)
42b87f:	53                   	push   %ebx
42b880:	56                   	push   %esi
42b881:	8b 00                	mov    (%eax),%eax
42b883:	57                   	push   %edi
42b884:	8b 30                	mov    (%eax),%esi
42b886:	85 f6                	test   %esi,%esi
42b888:	0f 84 df 00 00 00    	je     0x42b96d
42b88e:	a1 14 40 45 00       	mov    0x454014,%eax
42b893:	8b c8                	mov    %eax,%ecx
42b895:	8b 1e                	mov    (%esi),%ebx
42b897:	83 e1 1f             	and    $0x1f,%ecx
42b89a:	8b 7e 04             	mov    0x4(%esi),%edi
42b89d:	33 d8                	xor    %eax,%ebx
42b89f:	8b 76 08             	mov    0x8(%esi),%esi
42b8a2:	33 f8                	xor    %eax,%edi
42b8a4:	33 f0                	xor    %eax,%esi
42b8a6:	d3 cf                	ror    %cl,%edi
42b8a8:	d3 ce                	ror    %cl,%esi
42b8aa:	d3 cb                	ror    %cl,%ebx
42b8ac:	3b fe                	cmp    %esi,%edi
42b8ae:	75 7b                	jne    0x42b92b
42b8b0:	2b f3                	sub    %ebx,%esi
42b8b2:	b8 00 02 00 00       	mov    $0x200,%eax
42b8b7:	c1 fe 02             	sar    $0x2,%esi
42b8ba:	3b f0                	cmp    %eax,%esi
42b8bc:	77 02                	ja     0x42b8c0
42b8be:	8b c6                	mov    %esi,%eax
42b8c0:	8d 3c 30             	lea    (%eax,%esi,1),%edi
42b8c3:	85 ff                	test   %edi,%edi
42b8c5:	75 03                	jne    0x42b8ca
42b8c7:	6a 20                	push   $0x20
42b8c9:	5f                   	pop    %edi
42b8ca:	3b fe                	cmp    %esi,%edi
42b8cc:	72 1d                	jb     0x42b8eb
42b8ce:	6a 04                	push   $0x4
42b8d0:	57                   	push   %edi
42b8d1:	53                   	push   %ebx
42b8d2:	e8 24 04 00 00       	call   0x42bcfb
42b8d7:	6a 00                	push   $0x0
42b8d9:	89 45 fc             	mov    %eax,-0x4(%ebp)
42b8dc:	e8 96 0b 00 00       	call   0x42c477
42b8e1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
42b8e4:	83 c4 10             	add    $0x10,%esp
42b8e7:	85 c9                	test   %ecx,%ecx
42b8e9:	75 20                	jne    0x42b90b
42b8eb:	6a 04                	push   $0x4
42b8ed:	8d 7e 04             	lea    0x4(%esi),%edi
42b8f0:	57                   	push   %edi
42b8f1:	53                   	push   %ebx
42b8f2:	e8 04 04 00 00       	call   0x42bcfb
42b8f7:	6a 00                	push   $0x0
42b8f9:	89 45 fc             	mov    %eax,-0x4(%ebp)
42b8fc:	e8 76 0b 00 00       	call   0x42c477
42b901:	8b 4d fc             	mov    -0x4(%ebp),%ecx
42b904:	83 c4 10             	add    $0x10,%esp
42b907:	85 c9                	test   %ecx,%ecx
42b909:	74 62                	je     0x42b96d
42b90b:	8d 04 b1             	lea    (%ecx,%esi,4),%eax
42b90e:	8b d9                	mov    %ecx,%ebx
42b910:	8d 34 b9             	lea    (%ecx,%edi,4),%esi
42b913:	89 45 fc             	mov    %eax,-0x4(%ebp)
42b916:	8b 0d 14 40 45 00    	mov    0x454014,%ecx
42b91c:	8b f8                	mov    %eax,%edi
42b91e:	3b fe                	cmp    %esi,%edi
42b920:	74 09                	je     0x42b92b
42b922:	89 08                	mov    %ecx,(%eax)
42b924:	83 c0 04             	add    $0x4,%eax
42b927:	3b c6                	cmp    %esi,%eax
42b929:	75 f7                	jne    0x42b922
42b92b:	8b 45 f8             	mov    -0x8(%ebp),%eax
42b92e:	8b 40 04             	mov    0x4(%eax),%eax
42b931:	ff 30                	push   (%eax)
42b933:	e8 7b db ff ff       	call   0x4294b3
42b938:	53                   	push   %ebx
42b939:	89 07                	mov    %eax,(%edi)
42b93b:	e8 73 db ff ff       	call   0x4294b3
42b940:	8b 5d f8             	mov    -0x8(%ebp),%ebx
42b943:	8b 0b                	mov    (%ebx),%ecx
42b945:	8b 09                	mov    (%ecx),%ecx
42b947:	89 01                	mov    %eax,(%ecx)
42b949:	8d 47 04             	lea    0x4(%edi),%eax
42b94c:	50                   	push   %eax
42b94d:	e8 61 db ff ff       	call   0x4294b3
42b952:	8b 0b                	mov    (%ebx),%ecx
42b954:	56                   	push   %esi
42b955:	8b 09                	mov    (%ecx),%ecx
42b957:	89 41 04             	mov    %eax,0x4(%ecx)
42b95a:	e8 54 db ff ff       	call   0x4294b3
42b95f:	8b 0b                	mov    (%ebx),%ecx
42b961:	83 c4 10             	add    $0x10,%esp
42b964:	8b 09                	mov    (%ecx),%ecx
42b966:	89 41 08             	mov    %eax,0x8(%ecx)
42b969:	33 c0                	xor    %eax,%eax
42b96b:	eb 03                	jmp    0x42b970
42b96d:	83 c8 ff             	or     $0xffffffff,%eax
42b970:	5f                   	pop    %edi
42b971:	5e                   	pop    %esi
42b972:	5b                   	pop    %ebx
42b973:	c9                   	leave
42b974:	c3                   	ret
42b975:	8b ff                	mov    %edi,%edi
42b977:	55                   	push   %ebp
42b978:	8b ec                	mov    %esp,%ebp
42b97a:	83 ec 14             	sub    $0x14,%esp
42b97d:	53                   	push   %ebx
42b97e:	8b d9                	mov    %ecx,%ebx
42b980:	57                   	push   %edi
42b981:	89 5d ec             	mov    %ebx,-0x14(%ebp)
42b984:	8b 03                	mov    (%ebx),%eax
42b986:	8b 38                	mov    (%eax),%edi
42b988:	85 ff                	test   %edi,%edi
42b98a:	75 08                	jne    0x42b994
42b98c:	83 c8 ff             	or     $0xffffffff,%eax
42b98f:	e9 b7 00 00 00       	jmp    0x42ba4b
42b994:	8b 15 14 40 45 00    	mov    0x454014,%edx
42b99a:	8b ca                	mov    %edx,%ecx
42b99c:	56                   	push   %esi
42b99d:	8b 37                	mov    (%edi),%esi
42b99f:	83 e1 1f             	and    $0x1f,%ecx
42b9a2:	8b 7f 04             	mov    0x4(%edi),%edi
42b9a5:	33 f2                	xor    %edx,%esi
42b9a7:	33 fa                	xor    %edx,%edi
42b9a9:	d3 ce                	ror    %cl,%esi
42b9ab:	d3 cf                	ror    %cl,%edi
42b9ad:	85 f6                	test   %esi,%esi