43e4ff:	83 c8 ff             	or     $0xffffffff,%eax
43e502:	89 57 4c             	mov    %edx,0x4c(%edi)
43e505:	66 89 45 ea          	mov    %ax,-0x16(%ebp)
43e509:	33 c0                	xor    %eax,%eax
43e50b:	40                   	inc    %eax
43e50c:	89 45 f4             	mov    %eax,-0xc(%ebp)
43e50f:	39 47 10             	cmp    %eax,0x10(%edi)
43e512:	0f 8c 71 01 00 00    	jl     0x43e689
43e518:	c7 45 f8 10 00 00 00 	movl   $0x10,-0x8(%ebp)
43e51f:	8d 4d d0             	lea    -0x30(%ebp),%ecx
43e522:	e8 b9 90 fc ff       	call   0x4075e0
43e527:	8b 45 10             	mov    0x10(%ebp),%eax
43e52a:	8d 4d e0             	lea    -0x20(%ebp),%ecx
43e52d:	03 c6                	add    %esi,%eax
43e52f:	46                   	inc    %esi
43e530:	89 75 0c             	mov    %esi,0xc(%ebp)
43e533:	0f b6 00             	movzbl (%eax),%eax
43e536:	50                   	push   %eax
43e537:	89 45 ec             	mov    %eax,-0x14(%ebp)
43e53a:	e8 d3 79 fc ff       	call   0x405f12
43e53f:	8d 4d e0             	lea    -0x20(%ebp),%ecx
43e542:	e8 44 91 02 00       	call   0x46768b
43e547:	84 c0                	test   %al,%al
43e549:	74 12                	je     0x43e55d
43e54b:	8b 45 10             	mov    0x10(%ebp),%eax
43e54e:	03 c6                	add    %esi,%eax
43e550:	83 c6 04             	add    $0x4,%esi
43e553:	8b 00                	mov    (%eax),%eax
43e555:	89 45 e0             	mov    %eax,-0x20(%ebp)
43e558:	e9 f3 00 00 00       	jmp    0x43e650
43e55d:	8d 4d e0             	lea    -0x20(%ebp),%ecx
43e560:	e8 10 91 02 00       	call   0x467675
43e565:	84 c0                	test   %al,%al
43e567:	74 18                	je     0x43e581
43e569:	8b 4d 10             	mov    0x10(%ebp),%ecx
43e56c:	03 ce                	add    %esi,%ecx
43e56e:	83 c6 08             	add    $0x8,%esi
43e571:	8b 01                	mov    (%ecx),%eax
43e573:	89 45 e0             	mov    %eax,-0x20(%ebp)
43e576:	8b 41 04             	mov    0x4(%ecx),%eax
43e579:	89 45 e4             	mov    %eax,-0x1c(%ebp)
43e57c:	e9 cf 00 00 00       	jmp    0x43e650
43e581:	8d 4d e0             	lea    -0x20(%ebp),%ecx
43e584:	e8 d6 90 02 00       	call   0x46765f
43e589:	84 c0                	test   %al,%al
43e58b:	74 12                	je     0x43e59f
43e58d:	8b 45 10             	mov    0x10(%ebp),%eax
43e590:	03 c6                	add    %esi,%eax
43e592:	83 c6 08             	add    $0x8,%esi
43e595:	dd 00                	fldl   (%eax)
43e597:	dd 5d e0             	fstpl  -0x20(%ebp)
43e59a:	e9 b1 00 00 00       	jmp    0x43e650
43e59f:	8d 4d e0             	lea    -0x20(%ebp),%ecx
43e5a2:	e8 e3 79 fc ff       	call   0x405f8a
43e5a7:	84 c0                	test   %al,%al
43e5a9:	0f 84 a1 00 00 00    	je     0x43e650
43e5af:	8d 45 0c             	lea    0xc(%ebp),%eax
43e5b2:	50                   	push   %eax
43e5b3:	ff 75 10             	push   0x10(%ebp)
43e5b6:	e8 92 16 02 00       	call   0x45fc4d
43e5bb:	8b f0                	mov    %eax,%esi
43e5bd:	8b 45 ec             	mov    -0x14(%ebp),%eax
43e5c0:	89 75 f0             	mov    %esi,-0x10(%ebp)
43e5c3:	56                   	push   %esi
43e5c4:	83 f8 31             	cmp    $0x31,%eax
43e5c7:	75 21                	jne    0x43e5ea
43e5c9:	8d 4d c0             	lea    -0x40(%ebp),%ecx
43e5cc:	e8 70 99 fc ff       	call   0x407f41
43e5d1:	8b 4f 04             	mov    0x4(%edi),%ecx
43e5d4:	ff 75 c0             	push   -0x40(%ebp)
43e5d7:	8b 11                	mov    (%ecx),%edx
43e5d9:	ff 52 04             	call   *0x4(%edx)
43e5dc:	8d 4d c0             	lea    -0x40(%ebp),%ecx
43e5df:	8b f0                	mov    %eax,%esi
43e5e1:	e8 7e 74 fc ff       	call   0x405a64
43e5e6:	6a 01                	push   $0x1
43e5e8:	eb 21                	jmp    0x43e60b
43e5ea:	83 f8 30             	cmp    $0x30,%eax
43e5ed:	75 2c                	jne    0x43e61b
43e5ef:	8d 4d b0             	lea    -0x50(%ebp),%ecx
43e5f2:	e8 4a 99 fc ff       	call   0x407f41
43e5f7:	8d 45 b0             	lea    -0x50(%ebp),%eax
43e5fa:	50                   	push   %eax
43e5fb:	e8 99 83 fc ff       	call   0x406999
43e600:	8d 4d b0             	lea    -0x50(%ebp),%ecx
43e603:	8b f0                	mov    %eax,%esi
43e605:	e8 5a 74 fc ff       	call   0x405a64
43e60a:	53                   	push   %ebx
43e60b:	8d 4d e0             	lea    -0x20(%ebp),%ecx
43e60e:	e8 ff 78 fc ff       	call   0x405f12
43e613:	89 75 e0             	mov    %esi,-0x20(%ebp)
43e616:	8b 75 f0             	mov    -0x10(%ebp),%esi
43e619:	eb 2b                	jmp    0x43e646
43e61b:	83 f8 37             	cmp    $0x37,%eax
43e61e:	75 1e                	jne    0x43e63e
43e620:	8b cf                	mov    %edi,%ecx
43e622:	e8 47 15 02 00       	call   0x45fb6e
43e627:	85 c0                	test   %eax,%eax
43e629:	0f 84 82 00 00 00    	je     0x43e6b1
43e62f:	56                   	push   %esi
43e630:	e8 37 2a fe ff       	call   0x42106c
43e635:	8b 75 0c             	mov    0xc(%ebp),%esi
43e638:	59                   	pop    %ecx
43e639:	e9 e9 fe ff ff       	jmp    0x43e527
43e63e:	8d 4d e0             	lea    -0x20(%ebp),%ecx
43e641:	e8 db 8f 02 00       	call   0x467621
43e646:	56                   	push   %esi
43e647:	e8 20 2a fe ff       	call   0x42106c
43e64c:	8b 75 0c             	mov    0xc(%ebp),%esi
43e64f:	59                   	pop    %ecx
43e650:	8d 45 e0             	lea    -0x20(%ebp),%eax
43e653:	50                   	push   %eax
43e654:	8d 4d d0             	lea    -0x30(%ebp),%ecx
43e657:	e8 13 90 fc ff       	call   0x40766f
43e65c:	83 7d ec 7f          	cmpl   $0x7f,-0x14(%ebp)
43e660:	0f 85 c1 fe ff ff    	jne    0x43e527
43e666:	8b 4f 4c             	mov    0x4c(%edi),%ecx
43e669:	8d 45 d0             	lea    -0x30(%ebp),%eax
43e66c:	03 4d f8             	add    -0x8(%ebp),%ecx
43e66f:	50                   	push   %eax
43e670:	e8 48 8e fc ff       	call   0x4074bd
43e675:	8b 45 f4             	mov    -0xc(%ebp),%eax
43e678:	83 45 f8 10          	addl   $0x10,-0x8(%ebp)
43e67c:	40                   	inc    %eax
43e67d:	89 45 f4             	mov    %eax,-0xc(%ebp)
43e680:	3b 47 10             	cmp    0x10(%edi),%eax
43e683:	0f 8e 96 fe ff ff    	jle    0x43e51f
43e689:	ff 75 10             	push   0x10(%ebp)
43e68c:	e8 04 49 fe ff       	call   0x422f95
43e691:	59                   	pop    %ecx
43e692:	8d 4d 98             	lea    -0x68(%ebp),%ecx
43e695:	e8 10 69 fc ff       	call   0x404faa
43e69a:	b3 01                	mov    $0x1,%bl
43e69c:	8d 4d d0             	lea    -0x30(%ebp),%ecx
43e69f:	e8 d2 90 fc ff       	call   0x407776
43e6a4:	8d 4d e0             	lea    -0x20(%ebp),%ecx
43e6a7:	e8 4f 78 fc ff       	call   0x405efb
43e6ac:	e9 80 83 fc ff       	jmp    0x406a31
43e6b1:	8b 45 f4             	mov    -0xc(%ebp),%eax
43e6b4:	8b cf                	mov    %edi,%ecx
43e6b6:	68 10 f9 48 00       	push   $0x48f910
43e6bb:	68 a8 a0 4b 00       	push   $0x4ba0a8
43e6c0:	50                   	push   %eax
43e6c1:	ff 75 08             	push   0x8(%ebp)
43e6c4:	e8 e8 15 02 00       	call   0x45fcb1
43e6c9:	56                   	push   %esi
43e6ca:	e8 9d 29 fe ff       	call   0x42106c
43e6cf:	59                   	pop    %ecx
43e6d0:	ff 75 10             	push   0x10(%ebp)
43e6d3:	e8 bd 48 fe ff       	call   0x422f95
43e6d8:	59                   	pop    %ecx
43e6d9:	8d 4d 98             	lea    -0x68(%ebp),%ecx
43e6dc:	e8 c9 68 fc ff       	call   0x404faa
43e6e1:	eb b9                	jmp    0x43e69c
43e6e3:	33 db                	xor    %ebx,%ebx
43e6e5:	43                   	inc    %ebx
43e6e6:	88 5f 01             	mov    %bl,0x1(%edi)
43e6e9:	e9 79 83 fc ff       	jmp    0x406a67
43e6ee:	8d 4e 2c             	lea    0x2c(%esi),%ecx
43e6f1:	e8 d0 17 fe ff       	call   0x41fec6
43e6f6:	8b d8                	mov    %eax,%ebx
43e6f8:	53                   	push   %ebx
43e6f9:	e8 bf 89 fc ff       	call   0x4070bd
43e6fe:	53                   	push   %ebx
43e6ff:	e8 06 8a fc ff       	call   0x40710a
43e704:	53                   	push   %ebx
43e705:	e8 32 47 fe ff       	call   0x422e3c
43e70a:	59                   	pop    %ecx
43e70b:	6a 22                	push   $0x22
43e70d:	5a                   	pop    %edx
43e70e:	0f b7 4c 43 fe       	movzwl -0x2(%ebx,%eax,2),%ecx
43e713:	66 3b ca             	cmp    %dx,%cx
43e716:	74 35                	je     0x43e74d
43e718:	6a 27                	push   $0x27
43e71a:	5a                   	pop    %edx
43e71b:	66 3b ca             	cmp    %dx,%cx
43e71e:	74 2d                	je     0x43e74d
43e720:	0f b7 03             	movzwl (%ebx),%eax
43e723:	6a 22                	push   $0x22
43e725:	59                   	pop    %ecx
43e726:	66 3b c1             	cmp    %cx,%ax
43e729:	74 10                	je     0x43e73b
43e72b:	66 3b c2             	cmp    %dx,%ax
43e72e:	74 0b                	je     0x43e73b
43e730:	8b 4f 04             	mov    0x4(%edi),%ecx
43e733:	53                   	push   %ebx
43e734:	8b 01                	mov    (%ecx),%eax
43e736:	ff 50 08             	call   *0x8(%eax)
43e739:	eb 2a                	jmp    0x43e765
43e73b:	53                   	push   %ebx
43e73c:	e8 2b 29 fe ff       	call   0x42106c
43e741:	59                   	pop    %ecx
43e742:	56                   	push   %esi
43e743:	68 a8 a0 4b 00       	push   $0x4ba0a8
43e748:	e9 e4 00 00 00       	jmp    0x43e831
43e74d:	66 39 0b             	cmp    %cx,(%ebx)
43e750:	75 e9                	jne    0x43e73b
43e752:	33 c9                	xor    %ecx,%ecx
43e754:	66 89 4c 43 fe       	mov    %cx,-0x2(%ebx,%eax,2)
43e759:	8d 43 02             	lea    0x2(%ebx),%eax
43e75c:	8b 4f 04             	mov    0x4(%edi),%ecx
43e75f:	50                   	push   %eax
43e760:	8b 11                	mov    (%ecx),%edx
43e762:	ff 52 08             	call   *0x8(%edx)
43e765:	53                   	push   %ebx
43e766:	e8 01 29 fe ff       	call   0x42106c
43e76b:	59                   	pop    %ecx
43e76c:	e9 61 84 fc ff       	jmp    0x406bd2
43e771:	33 f6                	xor    %esi,%esi
43e773:	39 77 20             	cmp    %esi,0x20(%edi)
43e776:	0f 86 56 84 fc ff    	jbe    0x406bd2
43e77c:	8b 47 1c             	mov    0x1c(%edi),%eax
43e77f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
43e782:	6a 00                	push   $0x0
43e784:	ff 34 b0             	push   (%eax,%esi,4)
43e787:	e8 dc 92 fc ff       	call   0x407a68
43e78c:	85 c0                	test   %eax,%eax
43e78e:	74 0b                	je     0x43e79b
43e790:	46                   	inc    %esi
43e791:	3b 77 20             	cmp    0x20(%edi),%esi
43e794:	72 e6                	jb     0x43e77c
43e796:	e9 37 84 fc ff       	jmp    0x406bd2
43e79b:	8b 47 2c             	mov    0x2c(%edi),%eax
43e79e:	33 db                	xor    %ebx,%ebx
43e7a0:	43                   	inc    %ebx
43e7a1:	8b 04 b0             	mov    (%eax,%esi,4),%eax
43e7a4:	39 18                	cmp    %ebx,(%eax)
43e7a6:	0f 8e bb 82 fc ff    	jle    0x406a67
43e7ac:	6a 04                	push   $0x4
43e7ae:	e9 b3 82 fc ff       	jmp    0x406a66
43e7b3:	ff 75 f8             	push   -0x8(%ebp)
43e7b6:	8d 46 10             	lea    0x10(%esi),%eax
43e7b9:	8b cf                	mov    %edi,%ecx
43e7bb:	50                   	push   %eax
43e7bc:	e8 4c 18 02 00       	call   0x46000d
43e7c1:	3c 01                	cmp    $0x1,%al
43e7c3:	75 53                	jne    0x43e818
43e7c5:	ff 75 f8             	push   -0x8(%ebp)
43e7c8:	8d 4d d8             	lea    -0x28(%ebp),%ecx
43e7cb:	e8 71 97 fc ff       	call   0x407f41
43e7d0:	ff 75 f8             	push   -0x8(%ebp)
43e7d3:	8d 4d e8             	lea    -0x18(%ebp),%ecx
43e7d6:	e8 66 97 fc ff       	call   0x407f41
43e7db:	8b 45 10             	mov    0x10(%ebp),%eax
43e7de:	ff 30                	push   (%eax)
43e7e0:	8d 45 d8             	lea    -0x28(%ebp),%eax
43e7e3:	56                   	push   %esi
43e7e4:	ff 75 0c             	push   0xc(%ebp)
43e7e7:	51                   	push   %ecx
43e7e8:	50                   	push   %eax
43e7e9:	8b cf                	mov    %edi,%ecx
43e7eb:	e8 7b 89 fc ff       	call   0x40716b
43e7f0:	59                   	pop    %ecx
43e7f1:	50                   	push   %eax
43e7f2:	8d 45 e8             	lea    -0x18(%ebp),%eax
43e7f5:	8b cf                	mov    %edi,%ecx
43e7f7:	50                   	push   %eax
43e7f8:	e8 ef 83 fc ff       	call   0x406bec
43e7fd:	8d 4d e8             	lea    -0x18(%ebp),%ecx
43e800:	8a d8                	mov    %al,%bl
43e802:	e8 5d 72 fc ff       	call   0x405a64
43e807:	8d 4d d8             	lea    -0x28(%ebp),%ecx
43e80a:	e8 55 72 fc ff       	call   0x405a64
43e80f:	84 db                	test   %bl,%bl
43e811:	74 2d                	je     0x43e840
43e813:	e9 ba 83 fc ff       	jmp    0x406bd2
43e818:	56                   	push   %esi
43e819:	68 08 a1 4b 00       	push   $0x4ba108
43e81e:	eb 11                	jmp    0x43e831
43e820:	8b 45 08             	mov    0x8(%ebp),%eax
43e823:	85 c0                	test   %eax,%eax
43e825:	0f 8e 3c 82 fc ff    	jle    0x406a67
43e82b:	56                   	push   %esi
43e82c:	68 34 a1 4b 00       	push   $0x4ba134
43e831:	8b 45 10             	mov    0x10(%ebp),%eax
43e834:	8b cf                	mov    %edi,%ecx
43e836:	ff 30                	push   (%eax)
43e838:	ff 75 0c             	push   0xc(%ebp)
43e83b:	e8 71 14 02 00       	call   0x45fcb1
43e840:	33 db                	xor    %ebx,%ebx
43e842:	e9 20 82 fc ff       	jmp    0x406a67
43e847:	ff 75 14             	push   0x14(%ebp)
43e84a:	68 c8 9f 4b 00       	push   $0x4b9fc8
43e84f:	ff 75 18             	push   0x18(%ebp)
43e852:	ff 75 10             	push   0x10(%ebp)
43e855:	e8 57 14 02 00       	call   0x45fcb1
43e85a:	32 db                	xor    %bl,%bl
43e85c:	e9 3d 86 fc ff       	jmp    0x406e9e
43e861:	ff 75 14             	push   0x14(%ebp)
43e864:	8b ce                	mov    %esi,%ecx
43e866:	68 50 a0 4b 00       	push   $0x4ba050
43e86b:	ff 75 18             	push   0x18(%ebp)
43e86e:	ff 75 10             	push   0x10(%ebp)
43e871:	e8 3b 14 02 00       	call   0x45fcb1
43e876:	e9 17 86 fc ff       	jmp    0x406e92
43e87b:	81 7c 24 74 45 41 30 	cmpl   $0x36304145,0x74(%esp)
43e882:	36
43e883:	0f 85 46 84 fc ff    	jne    0x406ccf
43e889:	8d 8c 24 a8 00 00 00 	lea    0xa8(%esp),%ecx
43e890:	e8 3a 75 fc ff       	call   0x405dcf
43e895:	8b 45 08             	mov    0x8(%ebp),%eax
43e898:	8d 4c 24 60          	lea    0x60(%esp),%ecx
43e89c:	6a 02                	push   $0x2
43e89e:	89 5c 24 70          	mov    %ebx,0x70(%esp)
43e8a2:	89 5c 24 74          	mov    %ebx,0x74(%esp)
43e8a6:	ff 30                	push   (%eax)
43e8a8:	88 5c 24 7c          	mov    %bl,0x7c(%esp)
43e8ac:	e8 8c 66 fc ff       	call   0x404f3d
43e8b1:	85 c0                	test   %eax,%eax
43e8b3:	75 25                	jne    0x43e8da
43e8b5:	8d 44 24 38          	lea    0x38(%esp),%eax
43e8b9:	50                   	push   %eax
43e8ba:	8d 44 24 18          	lea    0x18(%esp),%eax
43e8be:	50                   	push   %eax
43e8bf:	68 80 a0 4b 00       	push   $0x4ba080
43e8c4:	8d 4c 24 6c          	lea    0x6c(%esp),%ecx
43e8c8:	e8 18 af 02 00       	call   0x4697e5
43e8cd:	8d 4c 24 60          	lea    0x60(%esp),%ecx
43e8d1:	85 c0                	test   %eax,%eax
43e8d3:	74 21                	je     0x43e8f6
43e8d5:	e8 d0 66 fc ff       	call   0x404faa
43e8da:	ff 75 14             	push   0x14(%ebp)
43e8dd:	8b 4c 24 20          	mov    0x20(%esp),%ecx
43e8e1:	68 50 a0 4b 00       	push   $0x4ba050
43e8e6:	ff 75 18             	push   0x18(%ebp)
43e8e9:	ff 75 10             	push   0x10(%ebp)
43e8ec:	e8 c0 13 02 00       	call   0x45fcb1
43e8f1:	e9 84 85 fc ff       	jmp    0x406e7a
43e8f6:	e8 af 66 fc ff       	call   0x404faa
43e8fb:	8b 44 24 14          	mov    0x14(%esp),%eax
43e8ff:	6a 04                	push   $0x4
43e901:	5a                   	pop    %edx
43e902:	6a 10                	push   $0x10
43e904:	8b 38                	mov    (%eax),%edi
43e906:	83 c8 ff             	or     $0xffffffff,%eax
43e909:	89 54 24 1c          	mov    %edx,0x1c(%esp)
43e90d:	89 7c 24 3c          	mov    %edi,0x3c(%esp)
43e911:	66 89 44 24 34       	mov    %ax,0x34(%esp)
43e916:	c7 44 24 54 78 fb 48 	movl   $0x48fb78,0x54(%esp)
43e91d:	00
43e91e:	89 5c 24 58          	mov    %ebx,0x58(%esp)
43e922:	89 5c 24 5c          	mov    %ebx,0x5c(%esp)
43e926:	89 5c 24 60          	mov    %ebx,0x60(%esp)
43e92a:	e8 c7 26 fe ff       	call   0x420ff6
43e92f:	8b f0                	mov    %eax,%esi
43e931:	89 74 24 44          	mov    %esi,0x44(%esp)
43e935:	59                   	pop    %ecx
43e936:	85 f6                	test   %esi,%esi
43e938:	74 11                	je     0x43e94b
43e93a:	c7 06 78 fb 48 00    	movl   $0x48fb78,(%esi)