42c465:	5f                   	pop    %edi
42c466:	5e                   	pop    %esi
42c467:	5b                   	pop    %ebx
42c468:	c3                   	ret
42c469:	8d 40 00             	lea    0x0(%eax),%eax
42c46c:	53                   	push   %ebx
42c46d:	8b da                	mov    %edx,%ebx
42c46f:	85 db                	test   %ebx,%ebx
42c471:	74 1a                	je     0x42c48d
42c473:	83 bb 84 00 00 00 00 	cmpl   $0x0,0x84(%ebx)
42c47a:	75 11                	jne    0x42c48d
42c47c:	8b d3                	mov    %ebx,%edx
42c47e:	8b 40 04             	mov    0x4(%eax),%eax
42c481:	e8 4a 7a fe ff       	call   0x413ed0
42c486:	8b c3                	mov    %ebx,%eax
42c488:	e8 df 6d fd ff       	call   0x40326c
42c48d:	5b                   	pop    %ebx
42c48e:	c3                   	ret
42c48f:	90                   	nop
42c490:	8b 40 04             	mov    0x4(%eax),%eax
42c493:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
42c497:	0f 94 c0             	sete   %al
42c49a:	c3                   	ret
42c49b:	90                   	nop
42c49c:	55                   	push   %ebp
42c49d:	8b ec                	mov    %esp,%ebp
42c49f:	51                   	push   %ecx
42c4a0:	53                   	push   %ebx
42c4a1:	56                   	push   %esi
42c4a2:	84 d2                	test   %dl,%dl
42c4a4:	74 08                	je     0x42c4ae
42c4a6:	83 c4 f0             	add    $0xfffffff0,%esp
42c4a9:	e8 e2 70 fd ff       	call   0x403590
42c4ae:	88 55 ff             	mov    %dl,-0x1(%ebp)
42c4b1:	8b d8                	mov    %eax,%ebx
42c4b3:	33 d2                	xor    %edx,%edx
42c4b5:	8b c3                	mov    %ebx,%eax
42c4b7:	e8 80 6d fd ff       	call   0x40323c
42c4bc:	b2 01                	mov    $0x1,%dl
42c4be:	a1 6c bb 41 00       	mov    0x41bb6c,%eax
42c4c3:	e8 e4 56 ff ff       	call   0x421bac
42c4c8:	8b f0                	mov    %eax,%esi
42c4ca:	89 73 04             	mov    %esi,0x4(%ebx)
42c4cd:	89 5e 14             	mov    %ebx,0x14(%esi)
42c4d0:	c7 46 10 d0 c5 42 00 	movl   $0x42c5d0,0x10(%esi)
42c4d7:	c7 43 1c 80 80 00 00 	movl   $0x8080,0x1c(%ebx)
42c4de:	c6 43 20 01          	movb   $0x1,0x20(%ebx)
42c4e2:	33 c0                	xor    %eax,%eax
42c4e4:	33 d2                	xor    %edx,%edx
42c4e6:	8a d0                	mov    %al,%dl
42c4e8:	c7 44 93 0c ff ff ff 	movl   $0xffffffff,0xc(%ebx,%edx,4)
42c4ef:	ff
42c4f0:	40                   	inc    %eax
42c4f1:	3c 04                	cmp    $0x4,%al
42c4f3:	75 ef                	jne    0x42c4e4
42c4f5:	83 3d ac d9 45 00 00 	cmpl   $0x0,0x45d9ac
42c4fc:	75 11                	jne    0x42c50f
42c4fe:	b2 01                	mov    $0x1,%dl
42c500:	a1 b8 c1 42 00       	mov    0x42c1b8,%eax
42c505:	e8 8e fe ff ff       	call   0x42c398
42c50a:	a3 ac d9 45 00       	mov    %eax,0x45d9ac
42c50f:	8b c3                	mov    %ebx,%eax
42c511:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
42c515:	74 0f                	je     0x42c526
42c517:	e8 cc 70 fd ff       	call   0x4035e8
42c51c:	64 8f 05 00 00 00 00 	pop    %fs:0x0
42c523:	83 c4 0c             	add    $0xc,%esp
42c526:	8b c3                	mov    %ebx,%eax
42c528:	5e                   	pop    %esi
42c529:	5b                   	pop    %ebx
42c52a:	59                   	pop    %ecx
42c52b:	5d                   	pop    %ebp
42c52c:	c3                   	ret
42c52d:	8d 40 00             	lea    0x0(%eax),%eax
42c530:	53                   	push   %ebx
42c531:	56                   	push   %esi
42c532:	e8 c1 70 fd ff       	call   0x4035f8
42c537:	8b da                	mov    %edx,%ebx
42c539:	8b f0                	mov    %eax,%esi
42c53b:	8b 46 04             	mov    0x4(%esi),%eax
42c53e:	e8 29 6d fd ff       	call   0x40326c
42c543:	8b c6                	mov    %esi,%eax
42c545:	e8 42 00 00 00       	call   0x42c58c
42c54a:	83 3d ac d9 45 00 00 	cmpl   $0x0,0x45d9ac
42c551:	74 1f                	je     0x42c572
42c553:	a1 ac d9 45 00       	mov    0x45d9ac,%eax
42c558:	e8 33 ff ff ff       	call   0x42c490
42c55d:	84 c0                	test   %al,%al
42c55f:	74 11                	je     0x42c572
42c561:	a1 ac d9 45 00       	mov    0x45d9ac,%eax
42c566:	e8 01 6d fd ff       	call   0x40326c
42c56b:	33 c0                	xor    %eax,%eax
42c56d:	a3 ac d9 45 00       	mov    %eax,0x45d9ac
42c572:	8b d3                	mov    %ebx,%edx
42c574:	80 e2 fc             	and    $0xfc,%dl
42c577:	8b c6                	mov    %esi,%eax
42c579:	e8 de 6c fd ff       	call   0x40325c
42c57e:	84 db                	test   %bl,%bl
42c580:	7e 07                	jle    0x42c589
42c582:	8b c6                	mov    %esi,%eax
42c584:	e8 57 70 fd ff       	call   0x4035e0
42c589:	5e                   	pop    %esi
42c58a:	5b                   	pop    %ebx
42c58b:	c3                   	ret
42c58c:	53                   	push   %ebx
42c58d:	56                   	push   %esi
42c58e:	57                   	push   %edi
42c58f:	8b f0                	mov    %eax,%esi
42c591:	33 db                	xor    %ebx,%ebx
42c593:	8b fb                	mov    %ebx,%edi
42c595:	83 e7 7f             	and    $0x7f,%edi
42c598:	8b 44 be 0c          	mov    0xc(%esi,%edi,4),%eax
42c59c:	83 f8 ff             	cmp    $0xffffffff,%eax
42c59f:	74 0a                	je     0x42c5ab
42c5a1:	8b d0                	mov    %eax,%edx
42c5a3:	8b 46 08             	mov    0x8(%esi),%eax
42c5a6:	e8 bd fd ff ff       	call   0x42c368
42c5ab:	c7 44 be 0c ff ff ff 	movl   $0xffffffff,0xc(%esi,%edi,4)
42c5b2:	ff
42c5b3:	43                   	inc    %ebx
42c5b4:	80 fb 04             	cmp    $0x4,%bl
42c5b7:	75 da                	jne    0x42c593
42c5b9:	8b 56 08             	mov    0x8(%esi),%edx
42c5bc:	a1 ac d9 45 00       	mov    0x45d9ac,%eax
42c5c1:	e8 a6 fe ff ff       	call   0x42c46c
42c5c6:	33 c0                	xor    %eax,%eax
42c5c8:	89 46 08             	mov    %eax,0x8(%esi)
42c5cb:	5f                   	pop    %edi
42c5cc:	5e                   	pop    %esi
42c5cd:	5b                   	pop    %ebx
42c5ce:	c3                   	ret
42c5cf:	90                   	nop
42c5d0:	53                   	push   %ebx
42c5d1:	56                   	push   %esi
42c5d2:	8b d8                	mov    %eax,%ebx
42c5d4:	8b 73 04             	mov    0x4(%ebx),%esi
42c5d7:	3b d6                	cmp    %esi,%edx
42c5d9:	75 20                	jne    0x42c5fb
42c5db:	8b c6                	mov    %esi,%eax
42c5dd:	e8 7e 5c ff ff       	call   0x422260
42c5e2:	89 43 1c             	mov    %eax,0x1c(%ebx)
42c5e5:	8b c3                	mov    %ebx,%eax
42c5e7:	e8 a0 ff ff ff       	call   0x42c58c
42c5ec:	66 83 7b 2a 00       	cmpw   $0x0,0x2a(%ebx)
42c5f1:	74 08                	je     0x42c5fb
42c5f3:	8b d3                	mov    %ebx,%edx
42c5f5:	8b 43 2c             	mov    0x2c(%ebx),%eax
42c5f8:	ff 53 28             	call   *0x28(%ebx)
42c5fb:	5e                   	pop    %esi
42c5fc:	5b                   	pop    %ebx
42c5fd:	c3                   	ret
42c5fe:	8b c0                	mov    %eax,%eax
42c600:	53                   	push   %ebx
42c601:	56                   	push   %esi
42c602:	8b da                	mov    %edx,%ebx
42c604:	8b f0                	mov    %eax,%esi
42c606:	8b c6                	mov    %esi,%eax
42c608:	e8 7f ff ff ff       	call   0x42c58c
42c60d:	8b d3                	mov    %ebx,%edx
42c60f:	8b 46 04             	mov    0x4(%esi),%eax
42c612:	8b 08                	mov    (%eax),%ecx
42c614:	ff 51 08             	call   *0x8(%ecx)
42c617:	85 db                	test   %ebx,%ebx
42c619:	74 58                	je     0x42c673
42c61b:	8b c3                	mov    %ebx,%eax
42c61d:	8b 10                	mov    (%eax),%edx
42c61f:	ff 52 20             	call   *0x20(%edx)
42c622:	85 c0                	test   %eax,%eax
42c624:	7e 4d                	jle    0x42c673
42c626:	8b c3                	mov    %ebx,%eax
42c628:	e8 33 5c ff ff       	call   0x422260
42c62d:	89 46 1c             	mov    %eax,0x1c(%esi)
42c630:	8b c3                	mov    %ebx,%eax
42c632:	8b 10                	mov    (%eax),%edx
42c634:	ff 52 2c             	call   *0x2c(%edx)
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