4075b4:	89 42 0c             	mov    %eax,0xc(%edx)
4075b7:	ff 00                	incl   (%eax)
4075b9:	89 17                	mov    %edx,(%edi)
4075bb:	eb af                	jmp    0x40756c
4075bd:	8b d0                	mov    %eax,%edx
4075bf:	e9 25 ff ff ff       	jmp    0x4074e9
4075c4:	dd 03                	fldl   (%ebx)
4075c6:	dd 1f                	fstpl  (%edi)
4075c8:	eb a2                	jmp    0x40756c
4075ca:	33 d2                	xor    %edx,%edx
4075cc:	eb eb                	jmp    0x4075b9
4075ce:	33 ff                	xor    %edi,%edi
4075d0:	eb 9d                	jmp    0x40756f
4075d2:	cc                   	int3
4075d3:	cc                   	int3
4075d4:	cc                   	int3
4075d5:	cc                   	int3
4075d6:	cc                   	int3
4075d7:	cc                   	int3
4075d8:	cc                   	int3
4075d9:	cc                   	int3
4075da:	cc                   	int3
4075db:	cc                   	int3
4075dc:	cc                   	int3
4075dd:	cc                   	int3
4075de:	cc                   	int3
4075df:	cc                   	int3
4075e0:	55                   	push   %ebp
4075e1:	8b ec                	mov    %esp,%ebp
4075e3:	51                   	push   %ecx
4075e4:	53                   	push   %ebx
4075e5:	8b d9                	mov    %ecx,%ebx
4075e7:	56                   	push   %esi
4075e8:	33 f6                	xor    %esi,%esi
4075ea:	39 73 08             	cmp    %esi,0x8(%ebx)
4075ed:	76 7b                	jbe    0x40766a
4075ef:	57                   	push   %edi
4075f0:	8b 43 04             	mov    0x4(%ebx),%eax
4075f3:	8b 3c b0             	mov    (%eax,%esi,4),%edi
4075f6:	85 ff                	test   %edi,%edi
4075f8:	74 13                	je     0x40760d
4075fa:	0f b7 47 08          	movzwl 0x8(%edi),%eax
4075fe:	66 83 f8 3f          	cmp    $0x3f,%ax
407602:	7e 27                	jle    0x40762b
407604:	57                   	push   %edi
407605:	e8 62 9a 01 00       	call   0x42106c
40760a:	83 c4 04             	add    $0x4,%esp
40760d:	8b 43 04             	mov    0x4(%ebx),%eax
407610:	c7 04 b0 00 00 00 00 	movl   $0x0,(%eax,%esi,4)
407617:	46                   	inc    %esi
407618:	3b 73 08             	cmp    0x8(%ebx),%esi
40761b:	72 d3                	jb     0x4075f0
40761d:	c7 43 08 00 00 00 00 	movl   $0x0,0x8(%ebx)
407624:	5f                   	pop    %edi
407625:	5e                   	pop    %esi
407626:	5b                   	pop    %ebx
407627:	8b e5                	mov    %ebp,%esp
407629:	5d                   	pop    %ebp
40762a:	c3                   	ret
40762b:	66 83 f8 30          	cmp    $0x30,%ax
40762f:	7c d3                	jl     0x407604
407631:	8b 0f                	mov    (%edi),%ecx
407633:	89 4d fc             	mov    %ecx,-0x4(%ebp)
407636:	85 c9                	test   %ecx,%ecx
407638:	74 ca                	je     0x407604
40763a:	8b 41 0c             	mov    0xc(%ecx),%eax
40763d:	ff 08                	decl   (%eax)
40763f:	8b 41 0c             	mov    0xc(%ecx),%eax
407642:	83 38 00             	cmpl   $0x0,(%eax)
407645:	75 18                	jne    0x40765f
407647:	ff 31                	push   (%ecx)
407649:	e8 1e 9a 01 00       	call   0x42106c
40764e:	8b 45 fc             	mov    -0x4(%ebp),%eax
407651:	ff 70 0c             	push   0xc(%eax)
407654:	e8 13 9a 01 00       	call   0x42106c
407659:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40765c:	83 c4 08             	add    $0x8,%esp
40765f:	51                   	push   %ecx
407660:	e8 07 9a 01 00       	call   0x42106c
407665:	83 c4 04             	add    $0x4,%esp
407668:	eb 9a                	jmp    0x407604
40766a:	89 73 08             	mov    %esi,0x8(%ebx)
40766d:	eb b6                	jmp    0x407625
40766f:	55                   	push   %ebp
407670:	8b ec                	mov    %esp,%ebp
407672:	56                   	push   %esi
407673:	57                   	push   %edi
407674:	8b f9                	mov    %ecx,%edi
407676:	8b 47 0c             	mov    0xc(%edi),%eax
407679:	39 47 08             	cmp    %eax,0x8(%edi)
40767c:	0f 84 8d 00 00 00    	je     0x40770f
407682:	6a 0c                	push   $0xc
407684:	e8 6d 99 01 00       	call   0x420ff6
407689:	8b f0                	mov    %eax,%esi
40768b:	59                   	pop    %ecx
40768c:	85 f6                	test   %esi,%esi
40768e:	0f 84 db 00 00 00    	je     0x40776f
407694:	53                   	push   %ebx
407695:	8b 5d 08             	mov    0x8(%ebp),%ebx
407698:	66 8b 4b 08          	mov    0x8(%ebx),%cx
40769c:	66 89 4e 08          	mov    %cx,0x8(%esi)
4076a0:	0f b7 46 08          	movzwl 0x8(%esi),%eax
4076a4:	66 8b 4b 0a          	mov    0xa(%ebx),%cx
4076a8:	66 89 4e 0a          	mov    %cx,0xa(%esi)
4076ac:	66 83 f8 3f          	cmp    $0x3f,%ax
4076b0:	7e 2b                	jle    0x4076dd
4076b2:	66 83 f8 10          	cmp    $0x10,%ax
4076b6:	0f 84 4e 78 03 00    	je     0x43ef0a
4076bc:	66 83 f8 20          	cmp    $0x20,%ax
4076c0:	0f 84 9c 00 00 00    	je     0x407762
4076c6:	8b 03                	mov    (%ebx),%eax
4076c8:	89 06                	mov    %eax,(%esi)
4076ca:	5b                   	pop    %ebx
4076cb:	8b 4f 08             	mov    0x8(%edi),%ecx
4076ce:	8b 47 04             	mov    0x4(%edi),%eax
4076d1:	89 34 88             	mov    %esi,(%eax,%ecx,4)
4076d4:	ff 47 08             	incl   0x8(%edi)
4076d7:	5f                   	pop    %edi
4076d8:	5e                   	pop    %esi
4076d9:	5d                   	pop    %ebp
4076da:	c2 04 00             	ret    $0x4
4076dd:	66 83 f8 30          	cmp    $0x30,%ax
4076e1:	7c cf                	jl     0x4076b2
4076e3:	6a 10                	push   $0x10
4076e5:	e8 0c 99 01 00       	call   0x420ff6
4076ea:	8b d0                	mov    %eax,%edx
4076ec:	59                   	pop    %ecx
4076ed:	85 d2                	test   %edx,%edx
4076ef:	74 7a                	je     0x40776b
4076f1:	8b 03                	mov    (%ebx),%eax
4076f3:	8b 08                	mov    (%eax),%ecx
4076f5:	89 0a                	mov    %ecx,(%edx)
4076f7:	8b 48 04             	mov    0x4(%eax),%ecx
4076fa:	89 4a 04             	mov    %ecx,0x4(%edx)
4076fd:	8b 48 08             	mov    0x8(%eax),%ecx
407700:	89 4a 08             	mov    %ecx,0x8(%edx)
407703:	8b 40 0c             	mov    0xc(%eax),%eax
407706:	89 42 0c             	mov    %eax,0xc(%edx)
407709:	ff 00                	incl   (%eax)
40770b:	89 16                	mov    %edx,(%esi)
40770d:	eb bb                	jmp    0x4076ca
40770f:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
407712:	6a 08                	push   $0x8
407714:	58                   	pop    %eax
407715:	3b c8                	cmp    %eax,%ecx
407717:	72 02                	jb     0x40771b
407719:	8b c1                	mov    %ecx,%eax
40771b:	33 c9                	xor    %ecx,%ecx
40771d:	89 47 0c             	mov    %eax,0xc(%edi)
407720:	6a 04                	push   $0x4
407722:	5a                   	pop    %edx
407723:	f7 e2                	mul    %edx
407725:	0f 90 c1             	seto   %cl
407728:	f7 d9                	neg    %ecx
40772a:	0b c8                	or     %eax,%ecx
40772c:	51                   	push   %ecx
40772d:	e8 c4 98 01 00       	call   0x420ff6
407732:	83 7f 04 00          	cmpl   $0x0,0x4(%edi)
407736:	8b f0                	mov    %eax,%esi
407738:	59                   	pop    %ecx
407739:	74 1f                	je     0x40775a
40773b:	8b 47 08             	mov    0x8(%edi),%eax
40773e:	85 c0                	test   %eax,%eax
407740:	74 18                	je     0x40775a
407742:	c1 e0 02             	shl    $0x2,%eax
407745:	50                   	push   %eax
407746:	ff 77 04             	push   0x4(%edi)
407749:	56                   	push   %esi
40774a:	e8 31 99 01 00       	call   0x421080
40774f:	ff 77 04             	push   0x4(%edi)
407752:	e8 15 99 01 00       	call   0x42106c
407757:	83 c4 10             	add    $0x10,%esp
40775a:	89 77 04             	mov    %esi,0x4(%edi)
40775d:	e9 20 ff ff ff       	jmp    0x407682
407762:	dd 03                	fldl   (%ebx)
407764:	dd 1e                	fstpl  (%esi)
407766:	e9 5f ff ff ff       	jmp    0x4076ca
40776b:	33 d2                	xor    %edx,%edx
40776d:	eb 9c                	jmp    0x40770b
40776f:	33 f6                	xor    %esi,%esi
407771:	e9 55 ff ff ff       	jmp    0x4076cb
407776:	56                   	push   %esi
407777:	8b f1                	mov    %ecx,%esi
407779:	c7 06 78 fb 48 00    	movl   $0x48fb78,(%esi)
40777f:	e8 5c fe ff ff       	call   0x4075e0
407784:	ff 76 04             	push   0x4(%esi)
407787:	e8 e0 98 01 00       	call   0x42106c
40778c:	59                   	pop    %ecx
40778d:	5e                   	pop    %esi
40778e:	c3                   	ret
40778f:	55                   	push   %ebp
407790:	8b ec                	mov    %esp,%ebp
407792:	f6 45 08 02          	testb  $0x2,0x8(%ebp)
407796:	56                   	push   %esi
407797:	8b f1                	mov    %ecx,%esi
407799:	0f 84 7a 77 03 00    	je     0x43ef19
40779f:	57                   	push   %edi
4077a0:	68 76 77 40 00       	push   $0x407776
4077a5:	8d 7e fc             	lea    -0x4(%esi),%edi
4077a8:	ff 37                	push   (%edi)
4077aa:	6a 10                	push   $0x10
4077ac:	56                   	push   %esi
4077ad:	e8 21 cf ff ff       	call   0x4046d3
4077b2:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
4077b6:	74 07                	je     0x4077bf
4077b8:	57                   	push   %edi
4077b9:	e8 ae 98 01 00       	call   0x42106c
4077be:	59                   	pop    %ecx
4077bf:	8b c7                	mov    %edi,%eax
4077c1:	5f                   	pop    %edi
4077c2:	5e                   	pop    %esi
4077c3:	5d                   	pop    %ebp
4077c4:	c2 04 00             	ret    $0x4
4077c7:	56                   	push   %esi
4077c8:	8b f1                	mov    %ecx,%esi
4077ca:	33 c9                	xor    %ecx,%ecx
4077cc:	6a 08                	push   $0x8
4077ce:	58                   	pop    %eax
4077cf:	6a 02                	push   $0x2
4077d1:	83 66 04 00          	andl   $0x0,0x4(%esi)
4077d5:	5a                   	pop    %edx
4077d6:	89 46 08             	mov    %eax,0x8(%esi)
4077d9:	f7 e2                	mul    %edx
4077db:	0f 90 c1             	seto   %cl
4077de:	f7 d9                	neg    %ecx
4077e0:	0b c8                	or     %eax,%ecx
4077e2:	51                   	push   %ecx
4077e3:	e8 0e 98 01 00       	call   0x420ff6
4077e8:	33 c9                	xor    %ecx,%ecx
4077ea:	89 06                	mov    %eax,(%esi)
4077ec:	6a 04                	push   $0x4
4077ee:	66 89 08             	mov    %cx,(%eax)
4077f1:	e8 00 98 01 00       	call   0x420ff6
4077f6:	59                   	pop    %ecx
4077f7:	59                   	pop    %ecx
4077f8:	85 c0                	test   %eax,%eax
4077fa:	74 0d                	je     0x407809
4077fc:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
407802:	89 46 0c             	mov    %eax,0xc(%esi)
407805:	8b c6                	mov    %esi,%eax
407807:	5e                   	pop    %esi
407808:	c3                   	ret
407809:	33 c0                	xor    %eax,%eax
40780b:	eb f5                	jmp    0x407802
40780d:	55                   	push   %ebp
40780e:	8b ec                	mov    %esp,%ebp
407810:	83 ec 10             	sub    $0x10,%esp
407813:	53                   	push   %ebx
407814:	8b c1                	mov    %ecx,%eax
407816:	56                   	push   %esi
407817:	57                   	push   %edi
407818:	33 f6                	xor    %esi,%esi
40781a:	89 45 f8             	mov    %eax,-0x8(%ebp)
40781d:	8b 78 04             	mov    0x4(%eax),%edi
407820:	89 7d f0             	mov    %edi,-0x10(%ebp)
407823:	8d 57 ff             	lea    -0x1(%edi),%edx
407826:	85 ff                	test   %edi,%edi
407828:	74 49                	je     0x407873
40782a:	8b 45 08             	mov    0x8(%ebp),%eax
40782d:	0f b7 00             	movzwl (%eax),%eax
407830:	89 45 fc             	mov    %eax,-0x4(%ebp)
407833:	33 db                	xor    %ebx,%ebx
407835:	33 c9                	xor    %ecx,%ecx
407837:	66 85 c0             	test   %ax,%ax
40783a:	74 2c                	je     0x407868
40783c:	8b 45 f8             	mov    -0x8(%ebp),%eax
40783f:	8b 7d 08             	mov    0x8(%ebp),%edi
407842:	8b 00                	mov    (%eax),%eax
407844:	0f b7 04 50          	movzwl (%eax,%edx,2),%eax
407848:	89 45 f4             	mov    %eax,-0xc(%ebp)
40784b:	8b 45 fc             	mov    -0x4(%ebp),%eax
40784e:	0f b7 c0             	movzwl %ax,%eax
407851:	66 39 45 f4          	cmp    %ax,-0xc(%ebp)
407855:	74 21                	je     0x407878
407857:	43                   	inc    %ebx
407858:	0f b7 04 5f          	movzwl (%edi,%ebx,2),%eax
40785c:	66 85 c0             	test   %ax,%ax
40785f:	75 f0                	jne    0x407851
407861:	8b 7d f0             	mov    -0x10(%ebp),%edi
407864:	85 c9                	test   %ecx,%ecx
407866:	75 13                	jne    0x40787b
407868:	8b c2                	mov    %edx,%eax
40786a:	5f                   	pop    %edi
40786b:	5e                   	pop    %esi
40786c:	5b                   	pop    %ebx
40786d:	8b e5                	mov    %ebp,%esp
40786f:	5d                   	pop    %ebp
407870:	c2 04 00             	ret    $0x4
407873:	83 c8 ff             	or     $0xffffffff,%eax
407876:	eb f2                	jmp    0x40786a
407878:	41                   	inc    %ecx
407879:	eb dc                	jmp    0x407857
40787b:	8b 45 fc             	mov    -0x4(%ebp),%eax
40787e:	4a                   	dec    %edx
40787f:	46                   	inc    %esi
407880:	3b f7                	cmp    %edi,%esi
407882:	72 af                	jb     0x407833
407884:	eb ed                	jmp    0x407873
407886:	55                   	push   %ebp
407887:	8b ec                	mov    %esp,%ebp
407889:	56                   	push   %esi
40788a:	ff 75 08             	push   0x8(%ebp)
40788d:	8b f1                	mov    %ecx,%esi
40788f:	e8 79 ff ff ff       	call   0x40780d
407894:	8b ce                	mov    %esi,%ecx
407896:	6a ff                	push   $0xffffffff
407898:	83 f8 ff             	cmp    $0xffffffff,%eax
40789b:	74 0c                	je     0x4078a9
40789d:	40                   	inc    %eax
40789e:	50                   	push   %eax
40789f:	e8 e8 05 00 00       	call   0x407e8c
4078a4:	5e                   	pop    %esi
4078a5:	5d                   	pop    %ebp
4078a6:	c2 04 00             	ret    $0x4
4078a9:	6a 00                	push   $0x0
4078ab:	eb f2                	jmp    0x40789f
4078ad:	55                   	push   %ebp
4078ae:	8b ec                	mov    %esp,%ebp
4078b0:	53                   	push   %ebx
4078b1:	56                   	push   %esi
4078b2:	8b 75 10             	mov    0x10(%ebp),%esi
4078b5:	57                   	push   %edi
4078b6:	8b f9                	mov    %ecx,%edi
4078b8:	85 f6                	test   %esi,%esi
4078ba:	74 73                	je     0x40792f
4078bc:	83 fe ff             	cmp    $0xffffffff,%esi
4078bf:	74 6e                	je     0x40792f
4078c1:	8b 5d 08             	mov    0x8(%ebp),%ebx
4078c4:	85 db                	test   %ebx,%ebx
4078c6:	74 67                	je     0x40792f
4078c8:	8b 4f 0c             	mov    0xc(%edi),%ecx
4078cb:	8b 01                	mov    (%ecx),%eax
4078cd:	83 f8 01             	cmp    $0x1,%eax
4078d0:	7f 2e                	jg     0x407900
4078d2:	56                   	push   %esi
4078d3:	8b cf                	mov    %edi,%ecx
4078d5:	e8 ad 07 00 00       	call   0x408087
4078da:	8b 45 0c             	mov    0xc(%ebp),%eax
4078dd:	89 77 04             	mov    %esi,0x4(%edi)
4078e0:	03 f6                	add    %esi,%esi
4078e2:	56                   	push   %esi
4078e3:	8d 04 43             	lea    (%ebx,%eax,2),%eax
4078e6:	50                   	push   %eax
4078e7:	ff 37                	push   (%edi)
4078e9:	e8 92 97 01 00       	call   0x421080
4078ee:	8b 07                	mov    (%edi),%eax
4078f0:	83 c4 0c             	add    $0xc,%esp
4078f3:	33 c9                	xor    %ecx,%ecx
4078f5:	66 89 0c 06          	mov    %cx,(%esi,%eax,1)
4078f9:	5f                   	pop    %edi