41c400:	5e                   	pop    %esi
41c401:	5b                   	pop    %ebx
41c402:	c9                   	leave
41c403:	c2 08 00             	ret    $0x8
41c406:	55                   	push   %ebp
41c407:	8b ec                	mov    %esp,%ebp
41c409:	56                   	push   %esi
41c40a:	8b f1                	mov    %ecx,%esi
41c40c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41c40f:	8d 45 0c             	lea    0xc(%ebp),%eax
41c412:	50                   	push   %eax
41c413:	e8 e3 fa ff ff       	call   0x41befb
41c418:	85 c0                	test   %eax,%eax
41c41a:	74 05                	je     0x41c421
41c41c:	8b 45 0c             	mov    0xc(%ebp),%eax
41c41f:	eb 07                	jmp    0x41c428
41c421:	8b ce                	mov    %esi,%ecx
41c423:	e8 ed dd ff ff       	call   0x41a215
41c428:	5e                   	pop    %esi
41c429:	5d                   	pop    %ebp
41c42a:	c2 0c 00             	ret    $0xc
41c42d:	55                   	push   %ebp
41c42e:	8b ec                	mov    %esp,%ebp
41c430:	53                   	push   %ebx
41c431:	56                   	push   %esi
41c432:	57                   	push   %edi
41c433:	8b 7d 0c             	mov    0xc(%ebp),%edi
41c436:	8b d9                	mov    %ecx,%ebx
41c438:	8d 45 0c             	lea    0xc(%ebp),%eax
41c43b:	50                   	push   %eax
41c43c:	8b cf                	mov    %edi,%ecx
41c43e:	e8 b8 fa ff ff       	call   0x41befb
41c443:	85 c0                	test   %eax,%eax
41c445:	74 05                	je     0x41c44c
41c447:	8b 45 0c             	mov    0xc(%ebp),%eax
41c44a:	eb 3d                	jmp    0x41c489
41c44c:	68 9d b1 40 00       	push   $0x40b19d
41c451:	b9 f4 6b 43 00       	mov    $0x436bf4,%ecx
41c456:	e8 f5 8c 00 00       	call   0x425150
41c45b:	85 ff                	test   %edi,%edi
41c45d:	8b f0                	mov    %eax,%esi
41c45f:	74 03                	je     0x41c464
41c461:	8b 7f 1c             	mov    0x1c(%edi),%edi
41c464:	ff 76 08             	push   0x8(%esi)
41c467:	8b 45 08             	mov    0x8(%ebp),%eax
41c46a:	ff 76 04             	push   0x4(%esi)
41c46d:	ff 75 10             	push   0x10(%ebp)
41c470:	57                   	push   %edi
41c471:	ff 70 04             	push   0x4(%eax)
41c474:	e8 17 00 00 00       	call   0x41c490
41c479:	85 c0                	test   %eax,%eax
41c47b:	75 09                	jne    0x41c486
41c47d:	8b cb                	mov    %ebx,%ecx
41c47f:	e8 91 dd ff ff       	call   0x41a215
41c484:	eb 03                	jmp    0x41c489
41c486:	8b 46 04             	mov    0x4(%esi),%eax
41c489:	5f                   	pop    %edi
41c48a:	5e                   	pop    %esi
41c48b:	5b                   	pop    %ebx
41c48c:	5d                   	pop    %ebp
41c48d:	c2 0c 00             	ret    $0xc
41c490:	55                   	push   %ebp
41c491:	8b ec                	mov    %esp,%ebp
41c493:	83 ec 0c             	sub    $0xc,%esp
41c496:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
41c49a:	74 63                	je     0x41c4ff
41c49c:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
41c4a0:	74 5d                	je     0x41c4ff
41c4a2:	8b 45 10             	mov    0x10(%ebp),%eax
41c4a5:	83 f8 01             	cmp    $0x1,%eax
41c4a8:	74 55                	je     0x41c4ff
41c4aa:	85 c0                	test   %eax,%eax
41c4ac:	74 51                	je     0x41c4ff
41c4ae:	83 f8 05             	cmp    $0x5,%eax
41c4b1:	74 4c                	je     0x41c4ff
41c4b3:	83 f8 02             	cmp    $0x2,%eax
41c4b6:	75 0d                	jne    0x41c4c5
41c4b8:	50                   	push   %eax
41c4b9:	ff 75 0c             	push   0xc(%ebp)
41c4bc:	e8 c9 3a 00 00       	call   0x41ff8a
41c4c1:	85 c0                	test   %eax,%eax
41c4c3:	74 3a                	je     0x41c4ff
41c4c5:	8d 45 f4             	lea    -0xc(%ebp),%eax
41c4c8:	50                   	push   %eax
41c4c9:	6a 0c                	push   $0xc
41c4cb:	ff 75 14             	push   0x14(%ebp)
41c4ce:	ff 15 b0 95 43 00    	call   *0x4395b0
41c4d4:	ff 75 f8             	push   -0x8(%ebp)
41c4d7:	ff 75 08             	push   0x8(%ebp)
41c4da:	ff 15 b4 95 43 00    	call   *0x4395b4
41c4e0:	8b 45 18             	mov    0x18(%ebp),%eax
41c4e3:	83 f8 ff             	cmp    $0xffffffff,%eax
41c4e6:	75 08                	jne    0x41c4f0
41c4e8:	6a 08                	push   $0x8
41c4ea:	ff 15 58 99 43 00    	call   *0x439958
41c4f0:	50                   	push   %eax
41c4f1:	ff 75 08             	push   0x8(%ebp)
41c4f4:	ff 15 b8 95 43 00    	call   *0x4395b8
41c4fa:	6a 01                	push   $0x1
41c4fc:	58                   	pop    %eax
41c4fd:	eb 02                	jmp    0x41c501
41c4ff:	33 c0                	xor    %eax,%eax
41c501:	c9                   	leave
41c502:	c2 14 00             	ret    $0x14
41c505:	b8 ff ff 00 00       	mov    $0xffff,%eax
41c50a:	c2 08 00             	ret    $0x8
41c50d:	b8 8c 78 42 00       	mov    $0x42788c,%eax
41c512:	e8 19 f7 fe ff       	call   0x40bc30
41c517:	51                   	push   %ecx
41c518:	83 ec 20             	sub    $0x20,%esp
41c51b:	53                   	push   %ebx
41c51c:	56                   	push   %esi
41c51d:	57                   	push   %edi
41c51e:	8b f1                	mov    %ecx,%esi
41c520:	89 65 f0             	mov    %esp,-0x10(%ebp)
41c523:	ff 75 08             	push   0x8(%ebp)
41c526:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
41c529:	56                   	push   %esi
41c52a:	e8 81 00 00 00       	call   0x41c5b0
41c52f:	e8 c0 7e 00 00       	call   0x4243f4
41c534:	8b f8                	mov    %eax,%edi
41c536:	83 65 08 00          	andl   $0x0,0x8(%ebp)
41c53a:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41c53e:	89 7d ec             	mov    %edi,-0x14(%ebp)
41c541:	8b 8f b8 00 00 00    	mov    0xb8(%edi),%ecx
41c547:	8d 87 b8 00 00 00    	lea    0xb8(%edi),%eax
41c54d:	89 4d e8             	mov    %ecx,-0x18(%ebp)
41c550:	8b 4e 1c             	mov    0x1c(%esi),%ecx
41c553:	89 08                	mov    %ecx,(%eax)
41c555:	8b 06                	mov    (%esi),%eax
41c557:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
41c55a:	51                   	push   %ecx
41c55b:	8b ce                	mov    %esi,%ecx
41c55d:	ff 90 8c 00 00 00    	call   *0x8c(%eax)
41c563:	c7 45 08 01 00 00 00 	movl   $0x1,0x8(%ebp)
41c56a:	eb 27                	jmp    0x41c593
41c56c:	b8 90 c5 41 00       	mov    $0x41c590,%eax
41c571:	c3                   	ret
41c572:	8b 75 e4             	mov    -0x1c(%ebp),%esi
41c575:	68 08 f1 00 00       	push   $0xf108
41c57a:	6a 30                	push   $0x30
41c57c:	8b ce                	mov    %esi,%ecx
41c57e:	8b 06                	mov    (%esi),%eax
41c580:	ff 50 18             	call   *0x18(%eax)
41c583:	8b ce                	mov    %esi,%ecx
41c585:	e8 94 27 00 00       	call   0x41ed1e
41c58a:	b8 90 c5 41 00       	mov    $0x41c590,%eax
41c58f:	c3                   	ret
41c590:	8b 7d ec             	mov    -0x14(%ebp),%edi
41c593:	8b 45 e8             	mov    -0x18(%ebp),%eax
41c596:	8b 4d f4             	mov    -0xc(%ebp),%ecx
41c599:	89 87 b8 00 00 00    	mov    %eax,0xb8(%edi)
41c59f:	8b 45 08             	mov    0x8(%ebp),%eax
41c5a2:	5f                   	pop    %edi
41c5a3:	5e                   	pop    %esi
41c5a4:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
41c5ab:	5b                   	pop    %ebx
41c5ac:	c9                   	leave
41c5ad:	c2 04 00             	ret    $0x4
41c5b0:	8b c1                	mov    %ecx,%eax
41c5b2:	8b 4c 24 08          	mov    0x8(%esp),%ecx
41c5b6:	83 60 08 00          	andl   $0x0,0x8(%eax)
41c5ba:	89 08                	mov    %ecx,(%eax)
41c5bc:	8b 4c 24 04          	mov    0x4(%esp),%ecx
41c5c0:	89 48 04             	mov    %ecx,0x4(%eax)
41c5c3:	c2 08 00             	ret    $0x8
41c5c6:	55                   	push   %ebp
41c5c7:	8b ec                	mov    %esp,%ebp
41c5c9:	83 ec 38             	sub    $0x38,%esp
41c5cc:	53                   	push   %ebx
41c5cd:	56                   	push   %esi
41c5ce:	8b f1                	mov    %ecx,%esi
41c5d0:	57                   	push   %edi
41c5d1:	89 75 f8             	mov    %esi,-0x8(%ebp)
41c5d4:	e8 ff 10 00 00       	call   0x41d6d8
41c5d9:	89 45 fc             	mov    %eax,-0x4(%ebp)
41c5dc:	8b 45 08             	mov    0x8(%ebp),%eax
41c5df:	85 c0                	test   %eax,%eax
41c5e1:	75 04                	jne    0x41c5e7
41c5e3:	33 ff                	xor    %edi,%edi
41c5e5:	eb 03                	jmp    0x41c5ea
41c5e7:	8b 78 1c             	mov    0x1c(%eax),%edi
41c5ea:	8b 1d a8 98 43 00    	mov    0x4398a8,%ebx
41c5f0:	85 c0                	test   %eax,%eax
41c5f2:	75 34                	jne    0x41c628
41c5f4:	f6 45 ff 40          	testb  $0x40,-0x1(%ebp)
41c5f8:	74 07                	je     0x41c601
41c5fa:	ff 76 1c             	push   0x1c(%esi)
41c5fd:	ff d3                	call   *%ebx
41c5ff:	eb 0b                	jmp    0x41c60c
41c601:	6a 04                	push   $0x4
41c603:	ff 76 1c             	push   0x1c(%esi)
41c606:	ff 15 34 99 43 00    	call   *0x439934
41c60c:	8b f8                	mov    %eax,%edi
41c60e:	85 ff                	test   %edi,%edi
41c610:	74 16                	je     0x41c628
41c612:	6a 00                	push   $0x0
41c614:	6a 00                	push   $0x0
41c616:	68 6b 03 00 00       	push   $0x36b
41c61b:	57                   	push   %edi
41c61c:	ff 15 88 99 43 00    	call   *0x439988
41c622:	85 c0                	test   %eax,%eax
41c624:	74 02                	je     0x41c628
41c626:	8b f8                	mov    %eax,%edi
41c628:	8d 45 c8             	lea    -0x38(%ebp),%eax
41c62b:	50                   	push   %eax
41c62c:	ff 76 1c             	push   0x1c(%esi)
41c62f:	ff 15 1c 99 43 00    	call   *0x43991c
41c635:	f6 45 ff 40          	testb  $0x40,-0x1(%ebp)
41c639:	75 4a                	jne    0x41c685
41c63b:	85 ff                	test   %edi,%edi
41c63d:	74 19                	je     0x41c658
41c63f:	6a f0                	push   $0xfffffff0
41c641:	57                   	push   %edi
41c642:	ff 15 20 99 43 00    	call   *0x439920
41c648:	a9 00 00 00 10       	test   $0x10000000,%eax
41c64d:	74 07                	je     0x41c656
41c64f:	a9 00 00 00 20       	test   $0x20000000,%eax
41c654:	74 02                	je     0x41c658
41c656:	33 ff                	xor    %edi,%edi
41c658:	8d 45 e8             	lea    -0x18(%ebp),%eax
41c65b:	6a 00                	push   $0x0
41c65d:	50                   	push   %eax
41c65e:	6a 00                	push   $0x0
41c660:	6a 30                	push   $0x30
41c662:	ff 15 48 98 43 00    	call   *0x439848
41c668:	85 ff                	test   %edi,%edi
41c66a:	75 0c                	jne    0x41c678
41c66c:	8d 75 e8             	lea    -0x18(%ebp),%esi
41c66f:	8d 7d d8             	lea    -0x28(%ebp),%edi
41c672:	a5                   	movsl  %ds:(%esi),%es:(%edi)
41c673:	a5                   	movsl  %ds:(%esi),%es:(%edi)
41c674:	a5                   	movsl  %ds:(%esi),%es:(%edi)
41c675:	a5                   	movsl  %ds:(%esi),%es:(%edi)
41c676:	eb 36                	jmp    0x41c6ae
41c678:	8d 45 d8             	lea    -0x28(%ebp),%eax
41c67b:	50                   	push   %eax
41c67c:	57                   	push   %edi
41c67d:	ff 15 1c 99 43 00    	call   *0x43991c
41c683:	eb 29                	jmp    0x41c6ae
41c685:	ff 76 1c             	push   0x1c(%esi)
41c688:	ff d3                	call   *%ebx
41c68a:	8b 35 4c 99 43 00    	mov    0x43994c,%esi
41c690:	8b d8                	mov    %eax,%ebx
41c692:	8d 45 e8             	lea    -0x18(%ebp),%eax
41c695:	50                   	push   %eax
41c696:	53                   	push   %ebx
41c697:	ff d6                	call   *%esi
41c699:	8d 45 d8             	lea    -0x28(%ebp),%eax
41c69c:	50                   	push   %eax
41c69d:	57                   	push   %edi
41c69e:	ff d6                	call   *%esi
41c6a0:	8d 45 d8             	lea    -0x28(%ebp),%eax
41c6a3:	6a 02                	push   $0x2
41c6a5:	50                   	push   %eax
41c6a6:	53                   	push   %ebx
41c6a7:	57                   	push   %edi
41c6a8:	ff 15 4c 98 43 00    	call   *0x43984c
41c6ae:	8b 45 d8             	mov    -0x28(%ebp),%eax
41c6b1:	8b 4d e0             	mov    -0x20(%ebp),%ecx
41c6b4:	8b 7d d0             	mov    -0x30(%ebp),%edi
41c6b7:	8b 5d c8             	mov    -0x38(%ebp),%ebx
41c6ba:	03 c1                	add    %ecx,%eax
41c6bc:	2b fb                	sub    %ebx,%edi
41c6be:	99                   	cltd
41c6bf:	2b c2                	sub    %edx,%eax
41c6c1:	8b c8                	mov    %eax,%ecx
41c6c3:	8b c7                	mov    %edi,%eax
41c6c5:	99                   	cltd
41c6c6:	2b c2                	sub    %edx,%eax
41c6c8:	8b 55 e4             	mov    -0x1c(%ebp),%edx
41c6cb:	d1 f9                	sar    $1,%ecx
41c6cd:	d1 f8                	sar    $1,%eax
41c6cf:	2b c8                	sub    %eax,%ecx
41c6d1:	8b 45 d4             	mov    -0x2c(%ebp),%eax
41c6d4:	2b 45 cc             	sub    -0x34(%ebp),%eax
41c6d7:	89 45 08             	mov    %eax,0x8(%ebp)
41c6da:	8b 45 dc             	mov    -0x24(%ebp),%eax
41c6dd:	03 c2                	add    %edx,%eax
41c6df:	99                   	cltd
41c6e0:	2b c2                	sub    %edx,%eax
41c6e2:	8b f0                	mov    %eax,%esi
41c6e4:	8b 45 08             	mov    0x8(%ebp),%eax
41c6e7:	99                   	cltd
41c6e8:	2b c2                	sub    %edx,%eax
41c6ea:	d1 fe                	sar    $1,%esi
41c6ec:	d1 f8                	sar    $1,%eax
41c6ee:	2b f0                	sub    %eax,%esi
41c6f0:	3b 4d e8             	cmp    -0x18(%ebp),%ecx
41c6f3:	7d 05                	jge    0x41c6fa
41c6f5:	8b 4d e8             	mov    -0x18(%ebp),%ecx
41c6f8:	eb 10                	jmp    0x41c70a
41c6fa:	8d 04 39             	lea    (%ecx,%edi,1),%eax
41c6fd:	3b 45 f0             	cmp    -0x10(%ebp),%eax
41c700:	7e 08                	jle    0x41c70a
41c702:	2b 5d d0             	sub    -0x30(%ebp),%ebx
41c705:	03 5d f0             	add    -0x10(%ebp),%ebx
41c708:	8b cb                	mov    %ebx,%ecx
41c70a:	3b 75 ec             	cmp    -0x14(%ebp),%esi
41c70d:	7d 05                	jge    0x41c714
41c70f:	8b 75 ec             	mov    -0x14(%ebp),%esi
41c712:	eb 13                	jmp    0x41c727
41c714:	8b 45 08             	mov    0x8(%ebp),%eax
41c717:	03 c6                	add    %esi,%eax
41c719:	3b 45 f4             	cmp    -0xc(%ebp),%eax
41c71c:	7e 09                	jle    0x41c727
41c71e:	8b 75 cc             	mov    -0x34(%ebp),%esi
41c721:	2b 75 d4             	sub    -0x2c(%ebp),%esi
41c724:	03 75 f4             	add    -0xc(%ebp),%esi
41c727:	6a 15                	push   $0x15
41c729:	6a ff                	push   $0xffffffff
41c72b:	6a ff                	push   $0xffffffff
41c72d:	56                   	push   %esi
41c72e:	51                   	push   %ecx
41c72f:	8b 4d f8             	mov    -0x8(%ebp),%ecx
41c732:	6a 00                	push   $0x0
41c734:	e8 62 10 00 00       	call   0x41d79b
41c739:	5f                   	pop    %edi
41c73a:	5e                   	pop    %esi
41c73b:	5b                   	pop    %ebx
41c73c:	c9                   	leave
41c73d:	c2 04 00             	ret    $0x4
41c740:	6a 01                	push   $0x1
41c742:	58                   	pop    %eax
41c743:	c3                   	ret
41c744:	53                   	push   %ebx
41c745:	56                   	push   %esi
41c746:	57                   	push   %edi
41c747:	33 ff                	xor    %edi,%edi
41c749:	39 7c 24 10          	cmp    %edi,0x10(%esp)
41c74d:	8b d9                	mov    %ecx,%ebx
41c74f:	74 35                	je     0x41c786
41c751:	e8 f1 7f 00 00       	call   0x424747
41c756:	8b 70 0c             	mov    0xc(%eax),%esi
41c759:	68 f0 00 00 00       	push   $0xf0
41c75e:	ff 74 24 14          	push   0x14(%esp)
41c762:	56                   	push   %esi
41c763:	ff 15 64 97 43 00    	call   *0x439764
41c769:	3b c7                	cmp    %edi,%eax
41c76b:	74 19                	je     0x41c786
41c76d:	50                   	push   %eax
41c76e:	56                   	push   %esi
41c76f:	ff 15 68 97 43 00    	call   *0x439768
41c775:	3b c7                	cmp    %edi,%eax
41c777:	75 04                	jne    0x41c77d
41c779:	33 c0                	xor    %eax,%eax
41c77b:	eb 11                	jmp    0x41c78e
41c77d:	50                   	push   %eax
41c77e:	ff 15 44 97 43 00    	call   *0x439744
41c784:	8b f8                	mov    %eax,%edi