42c637:	50                   	push   %eax
42c638:	8b c3                	mov    %ebx,%eax
42c63a:	8b 10                	mov    (%eax),%edx
42c63c:	ff 52 20             	call   *0x20(%edx)
42c63f:	5a                   	pop    %edx
42c640:	92                   	xchg   %eax,%edx
42c641:	8b ca                	mov    %edx,%ecx
42c643:	99                   	cltd
42c644:	f7 f9                	idiv   %ecx
42c646:	85 d2                	test   %edx,%edx
42c648:	75 29                	jne    0x42c673
42c64a:	8b c3                	mov    %ebx,%eax
42c64c:	8b 10                	mov    (%eax),%edx
42c64e:	ff 52 2c             	call   *0x2c(%edx)
42c651:	50                   	push   %eax
42c652:	8b c3                	mov    %ebx,%eax
42c654:	8b 10                	mov    (%eax),%edx
42c656:	ff 52 20             	call   *0x20(%edx)
42c659:	5a                   	pop    %edx
42c65a:	92                   	xchg   %eax,%edx
42c65b:	8b ca                	mov    %edx,%ecx
42c65d:	99                   	cltd
42c65e:	f7 f9                	idiv   %ecx
42c660:	83 f8 04             	cmp    $0x4,%eax
42c663:	7e 05                	jle    0x42c66a
42c665:	b8 01 00 00 00       	mov    $0x1,%eax
42c66a:	8b d0                	mov    %eax,%edx
42c66c:	8b c6                	mov    %esi,%eax
42c66e:	e8 05 00 00 00       	call   0x42c678
42c673:	5e                   	pop    %esi
42c674:	5b                   	pop    %ebx
42c675:	c3                   	ret
42c676:	8b c0                	mov    %eax,%eax
42c678:	53                   	push   %ebx
42c679:	56                   	push   %esi
42c67a:	8b da                	mov    %edx,%ebx
42c67c:	8b f0                	mov    %eax,%esi
42c67e:	3a 5e 20             	cmp    0x20(%esi),%bl
42c681:	74 18                	je     0x42c69b
42c683:	84 db                	test   %bl,%bl
42c685:	76 14                	jbe    0x42c69b
42c687:	8b c6                	mov    %esi,%eax
42c689:	e8 fe fe ff ff       	call   0x42c58c
42c68e:	88 5e 20             	mov    %bl,0x20(%esi)
42c691:	8b 56 04             	mov    0x4(%esi),%edx
42c694:	8b c6                	mov    %esi,%eax
42c696:	e8 35 ff ff ff       	call   0x42c5d0
42c69b:	5e                   	pop    %esi
42c69c:	5b                   	pop    %ebx
42c69d:	c3                   	ret
42c69e:	8b c0                	mov    %eax,%eax
42c6a0:	55                   	push   %ebp
42c6a1:	8b ec                	mov    %esp,%ebp
42c6a3:	83 c4 c8             	add    $0xffffffc8,%esp
42c6a6:	53                   	push   %ebx
42c6a7:	56                   	push   %esi
42c6a8:	57                   	push   %edi
42c6a9:	88 55 fb             	mov    %dl,-0x5(%ebp)
42c6ac:	89 45 fc             	mov    %eax,-0x4(%ebp)
42c6af:	80 7d fb 02          	cmpb   $0x2,-0x5(%ebp)
42c6b3:	75 0d                	jne    0x42c6c2
42c6b5:	8b 45 fc             	mov    -0x4(%ebp),%eax
42c6b8:	80 78 20 03          	cmpb   $0x3,0x20(%eax)
42c6bc:	73 04                	jae    0x42c6c2
42c6be:	c6 45 fb 00          	movb   $0x0,-0x5(%ebp)
42c6c2:	33 c0                	xor    %eax,%eax
42c6c4:	8a 45 fb             	mov    -0x5(%ebp),%al
42c6c7:	8b 55 fc             	mov    -0x4(%ebp),%edx
42c6ca:	8b 5c 82 0c          	mov    0xc(%edx,%eax,4),%ebx
42c6ce:	83 fb ff             	cmp    $0xffffffff,%ebx
42c6d1:	0f 85 96 05 00 00    	jne    0x42cc6d
42c6d7:	8b 45 fc             	mov    -0x4(%ebp),%eax
42c6da:	8b 40 04             	mov    0x4(%eax),%eax
42c6dd:	8b 10                	mov    (%eax),%edx
42c6df:	ff 52 2c             	call   *0x2c(%edx)
42c6e2:	8b f0                	mov    %eax,%esi
42c6e4:	8b 45 fc             	mov    -0x4(%ebp),%eax
42c6e7:	8b 40 04             	mov    0x4(%eax),%eax
42c6ea:	8b 10                	mov    (%eax),%edx
42c6ec:	ff 52 20             	call   *0x20(%edx)
42c6ef:	0b f0                	or     %eax,%esi
42c6f1:	0f 84 76 05 00 00    	je     0x42cc6d
42c6f7:	8b 45 fc             	mov    -0x4(%ebp),%eax
42c6fa:	8b 40 04             	mov    0x4(%eax),%eax
42c6fd:	8b 10                	mov    (%eax),%edx
42c6ff:	ff 52 2c             	call   *0x2c(%edx)
42c702:	8b 55 fc             	mov    -0x4(%ebp),%edx
42c705:	0f b6 52 20          	movzbl 0x20(%edx),%edx
42c709:	8b ca                	mov    %edx,%ecx
42c70b:	99                   	cltd
42c70c:	f7 f9                	idiv   %ecx
42c70e:	8b f8                	mov    %eax,%edi
42c710:	8b 45 fc             	mov    -0x4(%ebp),%eax
42c713:	8b 40 04             	mov    0x4(%eax),%eax
42c716:	8b 10                	mov    (%eax),%edx
42c718:	ff 52 20             	call   *0x20(%edx)
42c71b:	8b f0                	mov    %eax,%esi
42c71d:	8b 45 fc             	mov    -0x4(%ebp),%eax
42c720:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
42c724:	75 2e                	jne    0x42c754
42c726:	83 3d ac d9 45 00 00 	cmpl   $0x0,0x45d9ac
42c72d:	75 11                	jne    0x42c740
42c72f:	b2 01                	mov    $0x1,%dl
42c731:	a1 b8 c1 42 00       	mov    0x42c1b8,%eax
42c736:	e8 5d fc ff ff       	call   0x42c398
42c73b:	a3 ac d9 45 00       	mov    %eax,0x45d9ac
42c740:	8b ce                	mov    %esi,%ecx
42c742:	8b d7                	mov    %edi,%edx
42c744:	a1 ac d9 45 00       	mov    0x45d9ac,%eax
42c749:	e8 be fc ff ff       	call   0x42c40c
42c74e:	8b 55 fc             	mov    -0x4(%ebp),%edx
42c751:	89 42 08             	mov    %eax,0x8(%edx)
42c754:	b2 01                	mov    $0x1,%dl
42c756:	a1 6c bb 41 00       	mov    0x41bb6c,%eax
42c75b:	e8 4c 54 ff ff       	call   0x421bac
42c760:	89 45 f4             	mov    %eax,-0xc(%ebp)
42c763:	33 c0                	xor    %eax,%eax
42c765:	55                   	push   %ebp
42c766:	68 4f cc 42 00       	push   $0x42cc4f
42c76b:	64 ff 30             	push   %fs:(%eax)
42c76e:	64 89 20             	mov    %esp,%fs:(%eax)
42c771:	8b d7                	mov    %edi,%edx
42c773:	8b 45 f4             	mov    -0xc(%ebp),%eax
42c776:	8b 08                	mov    (%eax),%ecx
42c778:	ff 51 40             	call   *0x40(%ecx)
42c77b:	8b d6                	mov    %esi,%edx
42c77d:	8b 45 f4             	mov    -0xc(%ebp),%eax
42c780:	8b 08                	mov    (%eax),%ecx
42c782:	ff 51 34             	call   *0x34(%ecx)
42c785:	56                   	push   %esi
42c786:	8d 45 d8             	lea    -0x28(%ebp),%eax
42c789:	50                   	push   %eax
42c78a:	8b cf                	mov    %edi,%ecx
42c78c:	33 d2                	xor    %edx,%edx
42c78e:	33 c0                	xor    %eax,%eax
42c790:	e8 c3 61 fe ff       	call   0x412958
42c795:	8b 45 f4             	mov    -0xc(%ebp),%eax
42c798:	e8 d7 59 ff ff       	call   0x422174
42c79d:	8b 40 14             	mov    0x14(%eax),%eax
42c7a0:	ba 0f 00 00 ff       	mov    $0xff00000f,%edx
42c7a5:	e8 3a 0b ff ff       	call   0x41d2e4
42c7aa:	8b 45 fc             	mov    -0x4(%ebp),%eax
42c7ad:	8b 40 04             	mov    0x4(%eax),%eax
42c7b0:	8b 10                	mov    (%eax),%edx
42c7b2:	ff 52 24             	call   *0x24(%edx)
42c7b5:	e8 82 51 ff ff       	call   0x42193c
42c7ba:	8b d0                	mov    %eax,%edx
42c7bc:	8b 45 f4             	mov    -0xc(%ebp),%eax
42c7bf:	8b 08                	mov    (%eax),%ecx
42c7c1:	ff 51 38             	call   *0x38(%ecx)
42c7c4:	8a 5d fb             	mov    -0x5(%ebp),%bl
42c7c7:	8b 45 fc             	mov    -0x4(%ebp),%eax
42c7ca:	3a 58 20             	cmp    0x20(%eax),%bl
42c7cd:	7c 02                	jl     0x42c7d1
42c7cf:	33 db                	xor    %ebx,%ebx
42c7d1:	56                   	push   %esi
42c7d2:	8d 45 c8             	lea    -0x38(%ebp),%eax
42c7d5:	50                   	push   %eax
42c7d6:	33 c9                	xor    %ecx,%ecx
42c7d8:	8a cb                	mov    %bl,%cl
42c7da:	41                   	inc    %ecx
42c7db:	0f af cf             	imul   %edi,%ecx
42c7de:	33 c0                	xor    %eax,%eax
42c7e0:	8a c3                	mov    %bl,%al
42c7e2:	f7 ef                	imul   %edi
42c7e4:	33 d2                	xor    %edx,%edx
42c7e6:	e8 6d 61 fe ff       	call   0x412958
42c7eb:	8a 45 fb             	mov    -0x5(%ebp),%al
42c7ee:	2c 01                	sub    $0x1,%al
42c7f0:	72 0b                	jb     0x42c7fd
42c7f2:	74 7f                	je     0x42c873
42c7f4:	48                   	dec    %eax
42c7f5:	2c 02                	sub    $0x2,%al
42c7f7:	0f 83 3c 04 00 00    	jae    0x42cc39
42c7fd:	8d 45 c8             	lea    -0x38(%ebp),%eax
42c800:	50                   	push   %eax
42c801:	8b 45 fc             	mov    -0x4(%ebp),%eax
42c804:	8b 40 04             	mov    0x4(%eax),%eax
42c807:	e8 68 59 ff ff       	call   0x422174
42c80c:	50                   	push   %eax
42c80d:	8b 45 f4             	mov    -0xc(%ebp),%eax
42c810:	e8 5f 59 ff ff       	call   0x422174
42c815:	8d 55 d8             	lea    -0x28(%ebp),%edx
42c818:	59                   	pop    %ecx
42c819:	e8 36 0d ff ff       	call   0x41d554
42c81e:	8b 45 fc             	mov    -0x4(%ebp),%eax
42c821:	8b 40 04             	mov    0x4(%eax),%eax
42c824:	80 78 38 01          	cmpb   $0x1,0x38(%eax)
42c828:	75 25                	jne    0x42c84f
42c82a:	8b 45 fc             	mov    -0x4(%ebp),%eax
42c82d:	8b 48 1c             	mov    0x1c(%eax),%ecx
42c830:	8b 45 fc             	mov    -0x4(%ebp),%eax
42c833:	8b 40 08             	mov    0x8(%eax),%eax
42c836:	8b 55 f4             	mov    -0xc(%ebp),%edx
42c839:	e8 fe fa ff ff       	call   0x42c33c
42c83e:	33 d2                	xor    %edx,%edx
42c840:	8a 55 fb             	mov    -0x5(%ebp),%dl
42c843:	8b 4d fc             	mov    -0x4(%ebp),%ecx
42c846:	89 44 91 0c          	mov    %eax,0xc(%ecx,%edx,4)
42c84a:	e9 ea 03 00 00       	jmp    0x42cc39
42c84f:	8b 45 fc             	mov    -0x4(%ebp),%eax
42c852:	8b 40 08             	mov    0x8(%eax),%eax
42c855:	b9 00 00 00 20       	mov    $0x20000000,%ecx
42c85a:	8b 55 f4             	mov    -0xc(%ebp),%edx
42c85d:	e8 da fa ff ff       	call   0x42c33c
42c862:	33 d2                	xor    %edx,%edx
42c864:	8a 55 fb             	mov    -0x5(%ebp),%dl
42c867:	8b 4d fc             	mov    -0x4(%ebp),%ecx
42c86a:	89 44 91 0c          	mov    %eax,0xc(%ecx,%edx,4)
42c86e:	e9 c6 03 00 00       	jmp    0x42cc39
42c873:	33 c0                	xor    %eax,%eax
42c875:	89 45 ec             	mov    %eax,-0x14(%ebp)
42c878:	33 c0                	xor    %eax,%eax
42c87a:	89 45 f0             	mov    %eax,-0x10(%ebp)
42c87d:	33 c0                	xor    %eax,%eax
42c87f:	55                   	push   %ebp
42c880:	68 13 cc 42 00       	push   $0x42cc13
42c885:	64 ff 30             	push   %fs:(%eax)
42c888:	64 89 20             	mov    %esp,%fs:(%eax)
42c88b:	b2 01                	mov    $0x1,%dl
42c88d:	a1 6c bb 41 00       	mov    0x41bb6c,%eax
42c892:	e8 15 53 ff ff       	call   0x421bac
42c897:	89 45 ec             	mov    %eax,-0x14(%ebp)
42c89a:	b2 01                	mov    $0x1,%dl
42c89c:	a1 6c bb 41 00       	mov    0x41bb6c,%eax
42c8a1:	e8 06 53 ff ff       	call   0x421bac
42c8a6:	89 45 f0             	mov    %eax,-0x10(%ebp)
42c8a9:	8b 45 fc             	mov    -0x4(%ebp),%eax
42c8ac:	8b 50 04             	mov    0x4(%eax),%edx
42c8af:	8b 45 f0             	mov    -0x10(%ebp),%eax
42c8b2:	8b 08                	mov    (%eax),%ecx
42c8b4:	ff 51 08             	call   *0x8(%ecx)
42c8b7:	b2 01                	mov    $0x1,%dl
42c8b9:	8b 45 f0             	mov    -0x10(%ebp),%eax
42c8bc:	8b 08                	mov    (%eax),%ecx
42c8be:	ff 51 6c             	call   *0x6c(%ecx)
42c8c1:	8b 45 fc             	mov    -0x4(%ebp),%eax
42c8c4:	80 78 20 01          	cmpb   $0x1,0x20(%eax)
42c8c8:	0f 86 d8 01 00 00    	jbe    0x42caa6
42c8ce:	8b 45 f4             	mov    -0xc(%ebp),%eax
42c8d1:	e8 9e 58 ff ff       	call   0x422174
42c8d6:	89 45 e8             	mov    %eax,-0x18(%ebp)
42c8d9:	8d 45 c8             	lea    -0x38(%ebp),%eax
42c8dc:	50                   	push   %eax
42c8dd:	8b 45 f0             	mov    -0x10(%ebp),%eax
42c8e0:	e8 8f 58 ff ff       	call   0x422174
42c8e5:	8b c8                	mov    %eax,%ecx
42c8e7:	8d 55 d8             	lea    -0x28(%ebp),%edx
42c8ea:	8b 45 e8             	mov    -0x18(%ebp),%eax
42c8ed:	e8 62 0c ff ff       	call   0x41d554
42c8f2:	b2 01                	mov    $0x1,%dl
42c8f4:	8b 45 ec             	mov    -0x14(%ebp),%eax
42c8f7:	e8 48 66 ff ff       	call   0x422f44
42c8fc:	8b d7                	mov    %edi,%edx
42c8fe:	8b 45 ec             	mov    -0x14(%ebp),%eax
42c901:	8b 08                	mov    (%eax),%ecx
42c903:	ff 51 40             	call   *0x40(%ecx)
42c906:	8b d6                	mov    %esi,%edx
42c908:	8b 45 ec             	mov    -0x14(%ebp),%eax
42c90b:	8b 08                	mov    (%eax),%ecx
42c90d:	ff 51 34             	call   *0x34(%ecx)
42c910:	8b 45 f0             	mov    -0x10(%ebp),%eax
42c913:	e8 5c 58 ff ff       	call   0x422174
42c918:	8b 40 14             	mov    0x14(%eax),%eax
42c91b:	ba ff ff ff 00       	mov    $0xffffff,%edx
42c920:	e8 bf 09 ff ff       	call   0x41d2e4
42c925:	8d 45 c8             	lea    -0x38(%ebp),%eax
42c928:	50                   	push   %eax
42c929:	8b 45 f0             	mov    -0x10(%ebp),%eax
42c92c:	e8 43 58 ff ff       	call   0x422174
42c931:	50                   	push   %eax
42c932:	8b 45 ec             	mov    -0x14(%ebp),%eax
42c935:	e8 3a 58 ff ff       	call   0x422174
42c93a:	8d 55 d8             	lea    -0x28(%ebp),%edx
42c93d:	59                   	pop    %ecx
42c93e:	e8 11 0c ff ff       	call   0x41d554
42c943:	8b 45 e8             	mov    -0x18(%ebp),%eax
42c946:	8b 40 14             	mov    0x14(%eax),%eax
42c949:	ba 14 00 00 ff       	mov    $0xff000014,%edx
42c94e:	e8 91 09 ff ff       	call   0x41d2e4
42c953:	8b 45 e8             	mov    -0x18(%ebp),%eax
42c956:	e8 d1 10 ff ff       	call   0x41da2c
42c95b:	8b d8                	mov    %eax,%ebx
42c95d:	6a 00                	push   $0x0
42c95f:	53                   	push   %ebx
42c960:	e8 83 9a fd ff       	call   0x4063e8
42c965:	68 ff ff ff 00       	push   $0xffffff
42c96a:	53                   	push   %ebx
42c96b:	e8 38 9a fd ff       	call   0x4063a8
42c970:	68 46 07 e2 00       	push   $0xe20746
42c975:	6a 00                	push   $0x0
42c977:	6a 00                	push   $0x0
42c979:	8b 45 ec             	mov    -0x14(%ebp),%eax
42c97c:	e8 f3 57 ff ff       	call   0x422174
42c981:	e8 a6 10 ff ff       	call   0x41da2c
42c986:	50                   	push   %eax
42c987:	56                   	push   %esi
42c988:	57                   	push   %edi
42c989:	6a 00                	push   $0x0
42c98b:	6a 00                	push   $0x0
42c98d:	53                   	push   %ebx
42c98e:	e8 6d 98 fd ff       	call   0x406200
42c993:	8b 45 f0             	mov    -0x10(%ebp),%eax
42c996:	e8 d9 57 ff ff       	call   0x422174
42c99b:	8b 40 14             	mov    0x14(%eax),%eax
42c99e:	ba 80 80 80 00       	mov    $0x808080,%edx
42c9a3:	e8 3c 09 ff ff       	call   0x41d2e4
42c9a8:	8d 45 c8             	lea    -0x38(%ebp),%eax
42c9ab:	50                   	push   %eax
42c9ac:	8b 45 f0             	mov    -0x10(%ebp),%eax
42c9af:	e8 c0 57 ff ff       	call   0x422174
42c9b4:	50                   	push   %eax
42c9b5:	8b 45 ec             	mov    -0x14(%ebp),%eax
42c9b8:	e8 b7 57 ff ff       	call   0x422174
42c9bd:	8d 55 d8             	lea    -0x28(%ebp),%edx
42c9c0:	59                   	pop    %ecx
42c9c1:	e8 8e 0b ff ff       	call   0x41d554
42c9c6:	8b 45 e8             	mov    -0x18(%ebp),%eax
42c9c9:	8b 40 14             	mov    0x14(%eax),%eax
42c9cc:	ba 10 00 00 ff       	mov    $0xff000010,%edx
42c9d1:	e8 0e 09 ff ff       	call   0x41d2e4
42c9d6:	8b 45 e8             	mov    -0x18(%ebp),%eax
42c9d9:	e8 4e 10 ff ff       	call   0x41da2c
42c9de:	8b d8                	mov    %eax,%ebx
42c9e0:	6a 00                	push   $0x0
42c9e2:	53                   	push   %ebx
42c9e3:	e8 00 9a fd ff       	call   0x4063e8
42c9e8:	68 ff ff ff 00       	push   $0xffffff
42c9ed:	53                   	push   %ebx
42c9ee:	e8 b5 99 fd ff       	call   0x4063a8
42c9f3:	68 46 07 e2 00       	push   $0xe20746
42c9f8:	6a 00                	push   $0x0
42c9fa:	6a 00                	push   $0x0
42c9fc:	8b 45 ec             	mov    -0x14(%ebp),%eax
42c9ff:	e8 70 57 ff ff       	call   0x422174
42ca04:	e8 23 10 ff ff       	call   0x41da2c
42ca09:	50                   	push   %eax
42ca0a:	56                   	push   %esi
42ca0b:	57                   	push   %edi
42ca0c:	6a 00                	push   $0x0
42ca0e:	6a 00                	push   $0x0
42ca10:	53                   	push   %ebx
42ca11:	e8 ea 97 fd ff       	call   0x406200
42ca16:	8b 45 fc             	mov    -0x4(%ebp),%eax
42ca19:	8b 40 1c             	mov    0x1c(%eax),%eax
42ca1c:	e8 37 fc fe ff       	call   0x41c658
42ca21:	50                   	push   %eax
42ca22:	8b 45 f0             	mov    -0x10(%ebp),%eax
42ca25:	e8 4a 57 ff ff       	call   0x422174
42ca2a:	8b 40 14             	mov    0x14(%eax),%eax