40c3a1:	e8 49 a0 ff ff       	call   0x4063ef
40c3a6:	50                   	push   %eax
40c3a7:	ff b5 6c ff ff ff    	push   -0x94(%ebp)
40c3ad:	e8 81 4e 04 00       	call   0x451233
40c3b2:	8d a5 5c ff ff ff    	lea    -0xa4(%ebp),%esp
40c3b8:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40c3bb:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c3c2:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40c3c5:	e8 14 b8 00 00       	call   0x417bde
40c3ca:	5f                   	pop    %edi
40c3cb:	5e                   	pop    %esi
40c3cc:	5b                   	pop    %ebx
40c3cd:	c9                   	leave
40c3ce:	c2 0c 00             	ret    $0xc
40c3d1:	b8 33 31 48 00       	mov    $0x483133,%eax
40c3d6:	e8 a1 b8 00 00       	call   0x417c7c
40c3db:	51                   	push   %ecx
40c3dc:	56                   	push   %esi
40c3dd:	8b f1                	mov    %ecx,%esi
40c3df:	89 75 f0             	mov    %esi,-0x10(%ebp)
40c3e2:	e8 0f 3e 03 00       	call   0x4401f6
40c3e7:	50                   	push   %eax
40c3e8:	8b ce                	mov    %esi,%ecx
40c3ea:	e8 81 4f ff ff       	call   0x401370
40c3ef:	ff 75 08             	push   0x8(%ebp)
40c3f2:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40c3f6:	8b ce                	mov    %esi,%ecx
40c3f8:	e8 b9 4f ff ff       	call   0x4013b6
40c3fd:	84 c0                	test   %al,%al
40c3ff:	75 0a                	jne    0x40c40b
40c401:	ff 75 08             	push   0x8(%ebp)
40c404:	8b ce                	mov    %esi,%ecx
40c406:	e8 2c a8 ff ff       	call   0x406c37
40c40b:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40c40e:	8b c6                	mov    %esi,%eax
40c410:	5e                   	pop    %esi
40c411:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c418:	c9                   	leave
40c419:	c2 04 00             	ret    $0x4
40c41c:	b8 45 31 48 00       	mov    $0x483145,%eax
40c421:	e8 56 b8 00 00       	call   0x417c7c
40c426:	51                   	push   %ecx
40c427:	53                   	push   %ebx
40c428:	56                   	push   %esi
40c429:	57                   	push   %edi
40c42a:	8b f9                	mov    %ecx,%edi
40c42c:	ff 15 fc 70 4a 00    	call   *0x4a70fc
40c432:	ff 75 08             	push   0x8(%ebp)
40c435:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40c438:	8b d8                	mov    %eax,%ebx
40c43a:	e8 55 4e ff ff       	call   0x401294
40c43f:	8b 45 f0             	mov    -0x10(%ebp),%eax
40c442:	33 f6                	xor    %esi,%esi
40c444:	3b c6                	cmp    %esi,%eax
40c446:	89 75 fc             	mov    %esi,-0x4(%ebp)
40c449:	89 45 08             	mov    %eax,0x8(%ebp)
40c44c:	75 04                	jne    0x40c452
40c44e:	33 c0                	xor    %eax,%eax
40c450:	eb 27                	jmp    0x40c479
40c452:	50                   	push   %eax
40c453:	ff 15 88 03 4b 00    	call   *0x4b0388
40c459:	8b f0                	mov    %eax,%esi
40c45b:	46                   	inc    %esi
40c45c:	8d 04 36             	lea    (%esi,%esi,1),%eax
40c45f:	83 c0 03             	add    $0x3,%eax
40c462:	83 e0 fc             	and    $0xfffffffc,%eax
40c465:	e8 86 a2 00 00       	call   0x4166f0
40c46a:	8b c4                	mov    %esp,%eax
40c46c:	53                   	push   %ebx
40c46d:	56                   	push   %esi
40c46e:	ff 75 08             	push   0x8(%ebp)
40c471:	50                   	push   %eax
40c472:	e8 41 9f ff ff       	call   0x4063b8
40c477:	33 f6                	xor    %esi,%esi
40c479:	57                   	push   %edi
40c47a:	ff 75 0c             	push   0xc(%ebp)
40c47d:	ff 75 10             	push   0x10(%ebp)
40c480:	50                   	push   %eax
40c481:	ff 15 80 04 4b 00    	call   *0x4b0480
40c487:	3b c6                	cmp    %esi,%eax
40c489:	7d 44                	jge    0x40c4cf
40c48b:	3d 05 00 02 80       	cmp    $0x80020005,%eax
40c490:	75 05                	jne    0x40c497
40c492:	89 77 04             	mov    %esi,0x4(%edi)
40c495:	eb 0e                	jmp    0x40c4a5
40c497:	3d 0a 00 02 80       	cmp    $0x8002000a,%eax
40c49c:	75 1f                	jne    0x40c4bd
40c49e:	c7 47 04 00 00 00 80 	movl   $0x80000000,0x4(%edi)
40c4a5:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40c4a8:	83 c1 f0             	add    $0xfffffff0,%ecx
40c4ab:	89 37                	mov    %esi,(%edi)
40c4ad:	c7 47 08 01 00 00 00 	movl   $0x1,0x8(%edi)
40c4b4:	e8 99 4e ff ff       	call   0x401352
40c4b9:	33 c0                	xor    %eax,%eax
40c4bb:	eb 23                	jmp    0x40c4e0
40c4bd:	3d 0e 00 07 80       	cmp    $0x8007000e,%eax
40c4c2:	75 05                	jne    0x40c4c9
40c4c4:	e8 4e 8f 02 00       	call   0x435417
40c4c9:	50                   	push   %eax
40c4ca:	e8 72 6e 06 00       	call   0x473341
40c4cf:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40c4d2:	83 c1 f0             	add    $0xfffffff0,%ecx
40c4d5:	89 77 08             	mov    %esi,0x8(%edi)
40c4d8:	e8 75 4e ff ff       	call   0x401352
40c4dd:	33 c0                	xor    %eax,%eax
40c4df:	40                   	inc    %eax
40c4e0:	8d 65 e4             	lea    -0x1c(%ebp),%esp
40c4e3:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40c4e6:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c4ed:	5f                   	pop    %edi
40c4ee:	5e                   	pop    %esi
40c4ef:	5b                   	pop    %ebx
40c4f0:	c9                   	leave
40c4f1:	c2 0c 00             	ret    $0xc
40c4f4:	b8 5f 31 48 00       	mov    $0x48315f,%eax
40c4f9:	e8 7e b7 00 00       	call   0x417c7c
40c4fe:	83 ec 18             	sub    $0x18,%esp
40c501:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
40c505:	53                   	push   %ebx
40c506:	56                   	push   %esi
40c507:	57                   	push   %edi
40c508:	8b f1                	mov    %ecx,%esi
40c50a:	ff 15 fc 70 4a 00    	call   *0x4a70fc
40c510:	89 45 ec             	mov    %eax,-0x14(%ebp)
40c513:	e8 de 3c 03 00       	call   0x4401f6
40c518:	8b 10                	mov    (%eax),%edx
40c51a:	8b c8                	mov    %eax,%ecx
40c51c:	ff 52 0c             	call   *0xc(%edx)
40c51f:	8d 78 10             	lea    0x10(%eax),%edi
40c522:	89 7d f0             	mov    %edi,-0x10(%ebp)
40c525:	8b 46 08             	mov    0x8(%esi),%eax
40c528:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40c52c:	83 f8 02             	cmp    $0x2,%eax
40c52f:	75 11                	jne    0x40c542
40c531:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c534:	8d 45 f0             	lea    -0x10(%ebp),%eax
40c537:	50                   	push   %eax
40c538:	e8 95 4b ff ff       	call   0x4010d2
40c53d:	e9 97 00 00 00       	jmp    0x40c5d9
40c542:	83 f8 01             	cmp    $0x1,%eax
40c545:	75 21                	jne    0x40c568
40c547:	68 98 f0 00 00       	push   $0xf098
40c54c:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40c54f:	e8 aa 4c ff ff       	call   0x4011fe
40c554:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c557:	8d 45 f0             	lea    -0x10(%ebp),%eax
40c55a:	50                   	push   %eax
40c55b:	e8 72 4b ff ff       	call   0x4010d2
40c560:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40c563:	83 c1 f0             	add    $0xfffffff0,%ecx
40c566:	eb 74                	jmp    0x40c5dc
40c568:	8d 45 dc             	lea    -0x24(%ebp),%eax
40c56b:	50                   	push   %eax
40c56c:	e8 43 de ff ff       	call   0x40a3b4
40c571:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40c574:	50                   	push   %eax
40c575:	ff 75 0c             	push   0xc(%ebp)
40c578:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40c57c:	ff 75 10             	push   0x10(%ebp)
40c57f:	ff 76 04             	push   0x4(%esi)
40c582:	ff 36                	push   (%esi)
40c584:	ff 15 7c 04 4b 00    	call   *0x4b047c
40c58a:	50                   	push   %eax
40c58b:	e8 04 d8 ff ff       	call   0x409d94
40c590:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
40c593:	85 db                	test   %ebx,%ebx
40c595:	66 c7 45 dc 08 00    	movw   $0x8,-0x24(%ebp)
40c59b:	75 04                	jne    0x40c5a1
40c59d:	33 c0                	xor    %eax,%eax
40c59f:	eb 25                	jmp    0x40c5c6
40c5a1:	53                   	push   %ebx
40c5a2:	ff 15 90 03 4b 00    	call   *0x4b0390
40c5a8:	8d 74 00 02          	lea    0x2(%eax,%eax,1),%esi
40c5ac:	8b c6                	mov    %esi,%eax
40c5ae:	83 c0 03             	add    $0x3,%eax
40c5b1:	83 e0 fc             	and    $0xfffffffc,%eax
40c5b4:	e8 37 a1 00 00       	call   0x4166f0
40c5b9:	8b c4                	mov    %esp,%eax
40c5bb:	ff 75 ec             	push   -0x14(%ebp)
40c5be:	56                   	push   %esi
40c5bf:	53                   	push   %ebx
40c5c0:	50                   	push   %eax
40c5c1:	e8 29 9e ff ff       	call   0x4063ef
40c5c6:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c5c9:	50                   	push   %eax
40c5ca:	e8 c5 4c ff ff       	call   0x401294
40c5cf:	8d 45 dc             	lea    -0x24(%ebp),%eax
40c5d2:	50                   	push   %eax
40c5d3:	ff 15 f4 04 4b 00    	call   *0x4b04f4
40c5d9:	8d 4f f0             	lea    -0x10(%edi),%ecx
40c5dc:	e8 71 4d ff ff       	call   0x401352
40c5e1:	8b 45 08             	mov    0x8(%ebp),%eax
40c5e4:	8d 65 d0             	lea    -0x30(%ebp),%esp
40c5e7:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40c5ea:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c5f1:	5f                   	pop    %edi
40c5f2:	5e                   	pop    %esi
40c5f3:	5b                   	pop    %ebx
40c5f4:	c9                   	leave
40c5f5:	c2 0c 00             	ret    $0xc
40c5f8:	b8 79 31 48 00       	mov    $0x483179,%eax
40c5fd:	e8 7a b6 00 00       	call   0x417c7c
40c602:	53                   	push   %ebx
40c603:	8b 5d 08             	mov    0x8(%ebp),%ebx
40c606:	57                   	push   %edi
40c607:	ff 75 0c             	push   0xc(%ebp)
40c60a:	8b cb                	mov    %ebx,%ecx
40c60c:	e8 87 97 04 00       	call   0x455d98
40c611:	8b 4b 04             	mov    0x4(%ebx),%ecx
40c614:	8d 45 08             	lea    0x8(%ebp),%eax
40c617:	50                   	push   %eax
40c618:	ff 75 0c             	push   0xc(%ebp)
40c61b:	e8 e0 44 03 00       	call   0x440b00
40c620:	33 ff                	xor    %edi,%edi
40c622:	39 3b                	cmp    %edi,(%ebx)
40c624:	74 77                	je     0x40c69d
40c626:	56                   	push   %esi
40c627:	ff 75 08             	push   0x8(%ebp)
40c62a:	ff 15 cc 07 4b 00    	call   *0x4b07cc
40c630:	8b f0                	mov    %eax,%esi
40c632:	e8 bf 3b 03 00       	call   0x4401f6
40c637:	8b 10                	mov    (%eax),%edx
40c639:	8b c8                	mov    %eax,%ecx
40c63b:	ff 52 0c             	call   *0xc(%edx)
40c63e:	83 c0 10             	add    $0x10,%eax
40c641:	89 45 0c             	mov    %eax,0xc(%ebp)
40c644:	8d 46 01             	lea    0x1(%esi),%eax
40c647:	50                   	push   %eax
40c648:	56                   	push   %esi
40c649:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40c64c:	89 7d fc             	mov    %edi,-0x4(%ebp)
40c64f:	e8 f6 4a ff ff       	call   0x40114a
40c654:	50                   	push   %eax
40c655:	ff 75 08             	push   0x8(%ebp)
40c658:	ff 15 d0 07 4b 00    	call   *0x4b07d0
40c65e:	6a ff                	push   $0xffffffff
40c660:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40c663:	e8 bf 4a ff ff       	call   0x401127
40c668:	8b 75 0c             	mov    0xc(%ebp),%esi
40c66b:	8b 4d 10             	mov    0x10(%ebp),%ecx
40c66e:	68 00 04 00 00       	push   $0x400
40c673:	57                   	push   %edi
40c674:	56                   	push   %esi
40c675:	e8 a2 fd ff ff       	call   0x40c41c
40c67a:	85 c0                	test   %eax,%eax
40c67c:	75 14                	jne    0x40c692
40c67e:	6a ff                	push   $0xffffffff
40c680:	57                   	push   %edi
40c681:	68 19 f1 00 00       	push   $0xf119
40c686:	e8 32 92 04 00       	call   0x4558bd
40c68b:	8b cb                	mov    %ebx,%ecx
40c68d:	e8 38 93 04 00       	call   0x4559ca
40c692:	8d 4e f0             	lea    -0x10(%esi),%ecx
40c695:	e8 b8 4c ff ff       	call   0x401352
40c69a:	5e                   	pop    %esi
40c69b:	eb 2f                	jmp    0x40c6cc
40c69d:	8b 4d 10             	mov    0x10(%ebp),%ecx
40c6a0:	68 00 04 00 00       	push   $0x400
40c6a5:	57                   	push   %edi
40c6a6:	8d 45 0c             	lea    0xc(%ebp),%eax
40c6a9:	50                   	push   %eax
40c6aa:	e8 45 fe ff ff       	call   0x40c4f4
40c6af:	ff 75 0c             	push   0xc(%ebp)
40c6b2:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40c6b9:	ff 75 08             	push   0x8(%ebp)
40c6bc:	e8 72 4b 04 00       	call   0x451233
40c6c1:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40c6c4:	83 c1 f0             	add    $0xfffffff0,%ecx
40c6c7:	e8 86 4c ff ff       	call   0x401352
40c6cc:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40c6cf:	5f                   	pop    %edi
40c6d0:	5b                   	pop    %ebx
40c6d1:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c6d8:	c9                   	leave
40c6d9:	c2 0c 00             	ret    $0xc
40c6dc:	b8 a3 31 48 00       	mov    $0x4831a3,%eax
40c6e1:	e8 96 b5 00 00       	call   0x417c7c
40c6e6:	51                   	push   %ecx
40c6e7:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
40c6eb:	8b 41 08             	mov    0x8(%ecx),%eax
40c6ee:	83 f8 02             	cmp    $0x2,%eax
40c6f1:	75 12                	jne    0x40c705
40c6f3:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c6f6:	68 71 92 48 00       	push   $0x489271
40c6fb:	e8 94 4b ff ff       	call   0x401294
40c700:	e9 eb 00 00 00       	jmp    0x40c7f0
40c705:	33 d2                	xor    %edx,%edx
40c707:	42                   	inc    %edx
40c708:	3b c2                	cmp    %edx,%eax
40c70a:	75 4f                	jne    0x40c75b
40c70c:	e8 e5 3a 03 00       	call   0x4401f6
40c711:	8b 10                	mov    (%eax),%edx
40c713:	8b c8                	mov    %eax,%ecx
40c715:	ff 52 0c             	call   *0xc(%edx)
40c718:	83 c0 10             	add    $0x10,%eax
40c71b:	89 45 0c             	mov    %eax,0xc(%ebp)
40c71e:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40c722:	68 00 d8 00 00       	push   $0xd800
40c727:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40c72a:	e8 cf 4a ff ff       	call   0x4011fe
40c72f:	85 c0                	test   %eax,%eax
40c731:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c734:	74 0b                	je     0x40c741
40c736:	8d 45 0c             	lea    0xc(%ebp),%eax
40c739:	50                   	push   %eax
40c73a:	e8 93 49 ff ff       	call   0x4010d2
40c73f:	eb 0a                	jmp    0x40c74b
40c741:	68 2c 91 48 00       	push   $0x48912c
40c746:	e8 49 4b ff ff       	call   0x401294
40c74b:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40c74e:	83 c1 f0             	add    $0xfffffff0,%ecx
40c751:	e8 fc 4b ff ff       	call   0x401352
40c756:	e9 95 00 00 00       	jmp    0x40c7f0
40c75b:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
40c75f:	dd 01                	fldl   (%ecx)
40c761:	8d 45 f0             	lea    -0x10(%ebp),%eax
40c764:	50                   	push   %eax
40c765:	ff 75 0c             	push   0xc(%ebp)
40c768:	89 55 fc             	mov    %edx,-0x4(%ebp)
40c76b:	ff 75 10             	push   0x10(%ebp)
40c76e:	51                   	push   %ecx
40c76f:	51                   	push   %ecx
40c770:	dd 1c 24             	fstpl  (%esp)
40c773:	ff 15 78 04 4b 00    	call   *0x4b0478
40c779:	85 c0                	test   %eax,%eax
40c77b:	7d 44                	jge    0x40c7c1
40c77d:	e8 74 3a 03 00       	call   0x4401f6
40c782:	8b 10                	mov    (%eax),%edx
40c784:	8b c8                	mov    %eax,%ecx
40c786:	ff 52 0c             	call   *0xc(%edx)
40c789:	83 c0 10             	add    $0x10,%eax
40c78c:	89 45 0c             	mov    %eax,0xc(%ebp)
40c78f:	68 00 d8 00 00       	push   $0xd800
40c794:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40c797:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40c79b:	e8 5e 4a ff ff       	call   0x4011fe
40c7a0:	85 c0                	test   %eax,%eax
40c7a2:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c7a5:	74 0b                	je     0x40c7b2
40c7a7:	8d 45 0c             	lea    0xc(%ebp),%eax
40c7aa:	50                   	push   %eax
40c7ab:	e8 22 49 ff ff       	call   0x4010d2
40c7b0:	eb 0a                	jmp    0x40c7bc
40c7b2:	68 2c 91 48 00       	push   $0x48912c
40c7b7:	e8 d8 4a ff ff       	call   0x401294
40c7bc:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40c7bf:	eb 1e                	jmp    0x40c7df
40c7c1:	ff 75 f0             	push   -0x10(%ebp)
40c7c4:	8d 4d 10             	lea    0x10(%ebp),%ecx
40c7c7:	e8 05 fc ff ff       	call   0x40c3d1