473552:	33 c0                	xor    %eax,%eax
473554:	5f                   	pop    %edi
473555:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
47355c:	5e                   	pop    %esi
47355d:	5d                   	pop    %ebp
47355e:	c2 08 00             	ret    $0x8
473561:	55                   	push   %ebp
473562:	8b ec                	mov    %esp,%ebp
473564:	51                   	push   %ecx
473565:	51                   	push   %ecx
473566:	8b 45 08             	mov    0x8(%ebp),%eax
473569:	53                   	push   %ebx
47356a:	56                   	push   %esi
47356b:	57                   	push   %edi
47356c:	8b 40 04             	mov    0x4(%eax),%eax
47356f:	8b 38                	mov    (%eax),%edi
473571:	83 7f 0c 06          	cmpl   $0x6,0xc(%edi)
473575:	75 02                	jne    0x473579
473577:	8b 3f                	mov    (%edi),%edi
473579:	8b 75 0c             	mov    0xc(%ebp),%esi
47357c:	8b ce                	mov    %esi,%ecx
47357e:	e8 9d 64 f9 ff       	call   0x409a20
473583:	83 26 00             	andl   $0x0,(%esi)
473586:	33 db                	xor    %ebx,%ebx
473588:	43                   	inc    %ebx
473589:	8b cf                	mov    %edi,%ecx
47358b:	89 5e 0c             	mov    %ebx,0xc(%esi)
47358e:	e8 67 30 fe ff       	call   0x4565fa
473593:	84 c0                	test   %al,%al
473595:	74 48                	je     0x4735df
473597:	39 5f 0c             	cmp    %ebx,0xc(%edi)
47359a:	74 37                	je     0x4735d3
47359c:	83 7f 0c 02          	cmpl   $0x2,0xc(%edi)
4735a0:	74 31                	je     0x4735d3
4735a2:	8b cf                	mov    %edi,%ecx
4735a4:	e8 4f 67 f9 ff       	call   0x409cf8
4735a9:	e8 58 80 fc ff       	call   0x43b606
4735ae:	89 45 f8             	mov    %eax,-0x8(%ebp)
4735b1:	8b cf                	mov    %edi,%ecx
4735b3:	89 55 fc             	mov    %edx,-0x4(%ebp)
4735b6:	df 6d f8             	fildll -0x8(%ebp)
4735b9:	dd 5d f8             	fstpl  -0x8(%ebp)
4735bc:	dd 45 f8             	fldl   -0x8(%ebp)
4735bf:	dd 5d f8             	fstpl  -0x8(%ebp)
4735c2:	e8 31 67 f9 ff       	call   0x409cf8
4735c7:	dd 45 f8             	fldl   -0x8(%ebp)
4735ca:	da e9                	fucompp
4735cc:	df e0                	fnstsw %ax
4735ce:	f6 c4 44             	test   $0x44,%ah
4735d1:	7a 0c                	jp     0x4735df
4735d3:	8b ce                	mov    %esi,%ecx
4735d5:	e8 46 64 f9 ff       	call   0x409a20
4735da:	89 1e                	mov    %ebx,(%esi)
4735dc:	89 5e 0c             	mov    %ebx,0xc(%esi)
4735df:	5f                   	pop    %edi
4735e0:	5e                   	pop    %esi
4735e1:	33 c0                	xor    %eax,%eax
4735e3:	5b                   	pop    %ebx
4735e4:	8b e5                	mov    %ebp,%esp
4735e6:	5d                   	pop    %ebp
4735e7:	c2 08 00             	ret    $0x8
4735ea:	55                   	push   %ebp
4735eb:	8b ec                	mov    %esp,%ebp
4735ed:	8b 45 08             	mov    0x8(%ebp),%eax
4735f0:	8b 40 04             	mov    0x4(%eax),%eax
4735f3:	8b 00                	mov    (%eax),%eax
4735f5:	83 78 0c 06          	cmpl   $0x6,0xc(%eax)
4735f9:	75 02                	jne    0x4735fd
4735fb:	8b 00                	mov    (%eax),%eax
4735fd:	83 78 0c 0f          	cmpl   $0xf,0xc(%eax)
473601:	74 16                	je     0x473619
473603:	56                   	push   %esi
473604:	8b 75 0c             	mov    0xc(%ebp),%esi
473607:	8b ce                	mov    %esi,%ecx
473609:	e8 12 64 f9 ff       	call   0x409a20
47360e:	83 26 00             	andl   $0x0,(%esi)
473611:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
473618:	5e                   	pop    %esi
473619:	33 c0                	xor    %eax,%eax
47361b:	5d                   	pop    %ebp
47361c:	c2 08 00             	ret    $0x8
47361f:	55                   	push   %ebp
473620:	8b ec                	mov    %esp,%ebp
473622:	8b 45 08             	mov    0x8(%ebp),%eax
473625:	8b 40 04             	mov    0x4(%eax),%eax
473628:	8b 08                	mov    (%eax),%ecx
47362a:	83 79 0c 06          	cmpl   $0x6,0xc(%ecx)
47362e:	75 02                	jne    0x473632
473630:	8b 09                	mov    (%ecx),%ecx
473632:	e8 c3 2f fe ff       	call   0x4565fa
473637:	84 c0                	test   %al,%al
473639:	75 16                	jne    0x473651
47363b:	56                   	push   %esi
47363c:	8b 75 0c             	mov    0xc(%ebp),%esi
47363f:	8b ce                	mov    %esi,%ecx
473641:	e8 da 63 f9 ff       	call   0x409a20
473646:	83 26 00             	andl   $0x0,(%esi)
473649:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
473650:	5e                   	pop    %esi
473651:	33 c0                	xor    %eax,%eax
473653:	5d                   	pop    %ebp
473654:	c2 08 00             	ret    $0x8
473657:	55                   	push   %ebp
473658:	8b ec                	mov    %esp,%ebp
47365a:	8b 45 08             	mov    0x8(%ebp),%eax
47365d:	8b 40 04             	mov    0x4(%eax),%eax
473660:	8b 00                	mov    (%eax),%eax
473662:	83 78 0c 06          	cmpl   $0x6,0xc(%eax)
473666:	75 02                	jne    0x47366a
473668:	8b 00                	mov    (%eax),%eax
47366a:	83 78 0c 07          	cmpl   $0x7,0xc(%eax)
47366e:	74 16                	je     0x473686
473670:	56                   	push   %esi
473671:	8b 75 0c             	mov    0xc(%ebp),%esi
473674:	8b ce                	mov    %esi,%ecx
473676:	e8 a5 63 f9 ff       	call   0x409a20
47367b:	83 26 00             	andl   $0x0,(%esi)
47367e:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
473685:	5e                   	pop    %esi
473686:	33 c0                	xor    %eax,%eax
473688:	5d                   	pop    %ebp
473689:	c2 08 00             	ret    $0x8
47368c:	55                   	push   %ebp
47368d:	8b ec                	mov    %esp,%ebp
47368f:	8b 45 08             	mov    0x8(%ebp),%eax
473692:	8b 40 04             	mov    0x4(%eax),%eax
473695:	8b 00                	mov    (%eax),%eax
473697:	83 78 0c 06          	cmpl   $0x6,0xc(%eax)
47369b:	75 02                	jne    0x47369f
47369d:	8b 00                	mov    (%eax),%eax
47369f:	83 78 0c 04          	cmpl   $0x4,0xc(%eax)
4736a3:	74 16                	je     0x4736bb
4736a5:	56                   	push   %esi
4736a6:	8b 75 0c             	mov    0xc(%ebp),%esi
4736a9:	8b ce                	mov    %esi,%ecx
4736ab:	e8 70 63 f9 ff       	call   0x409a20
4736b0:	83 26 00             	andl   $0x0,(%esi)
4736b3:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
4736ba:	5e                   	pop    %esi
4736bb:	33 c0                	xor    %eax,%eax
4736bd:	5d                   	pop    %ebp
4736be:	c2 08 00             	ret    $0x8
4736c1:	55                   	push   %ebp
4736c2:	8b ec                	mov    %esp,%ebp
4736c4:	51                   	push   %ecx
4736c5:	51                   	push   %ecx
4736c6:	8b 45 08             	mov    0x8(%ebp),%eax
4736c9:	56                   	push   %esi
4736ca:	8b 40 04             	mov    0x4(%eax),%eax
4736cd:	8b 08                	mov    (%eax),%ecx
4736cf:	e8 24 66 f9 ff       	call   0x409cf8
4736d4:	51                   	push   %ecx
4736d5:	51                   	push   %ecx
4736d6:	dd 1c 24             	fstpl  (%esp)
4736d9:	e8 12 2a fb ff       	call   0x4260f0
4736de:	8b 75 0c             	mov    0xc(%ebp),%esi
4736e1:	83 c4 08             	add    $0x8,%esp
4736e4:	8b ce                	mov    %esi,%ecx
4736e6:	dd 5d f8             	fstpl  -0x8(%ebp)
4736e9:	e8 32 63 f9 ff       	call   0x409a20
4736ee:	dd 45 f8             	fldl   -0x8(%ebp)
4736f1:	33 c0                	xor    %eax,%eax
4736f3:	dd 1e                	fstpl  (%esi)
4736f5:	c7 46 0c 03 00 00 00 	movl   $0x3,0xc(%esi)
4736fc:	5e                   	pop    %esi
4736fd:	8b e5                	mov    %ebp,%esp
4736ff:	5d                   	pop    %ebp
473700:	c2 08 00             	ret    $0x8
473703:	55                   	push   %ebp
473704:	8b ec                	mov    %esp,%ebp
473706:	51                   	push   %ecx
473707:	51                   	push   %ecx
473708:	53                   	push   %ebx
473709:	56                   	push   %esi
47370a:	8b 75 08             	mov    0x8(%ebp),%esi
47370d:	33 db                	xor    %ebx,%ebx
47370f:	43                   	inc    %ebx
473710:	57                   	push   %edi
473711:	8b 4e 04             	mov    0x4(%esi),%ecx
473714:	8b 01                	mov    (%ecx),%eax
473716:	39 58 0c             	cmp    %ebx,0xc(%eax)
473719:	75 40                	jne    0x47375b
47371b:	8b 49 04             	mov    0x4(%ecx),%ecx
47371e:	39 59 0c             	cmp    %ebx,0xc(%ecx)
473721:	75 38                	jne    0x47375b
473723:	e8 74 65 f9 ff       	call   0x409c9c
473728:	85 c0                	test   %eax,%eax
47372a:	74 2f                	je     0x47375b
47372c:	8b 4e 04             	mov    0x4(%esi),%ecx
47372f:	8b 31                	mov    (%ecx),%esi
473731:	8b 49 04             	mov    0x4(%ecx),%ecx
473734:	e8 63 65 f9 ff       	call   0x409c9c
473739:	8b ce                	mov    %esi,%ecx
47373b:	8b f8                	mov    %eax,%edi
47373d:	e8 5a 65 f9 ff       	call   0x409c9c
473742:	99                   	cltd
473743:	f7 ff                	idiv   %edi
473745:	8b 75 0c             	mov    0xc(%ebp),%esi
473748:	8b ce                	mov    %esi,%ecx
47374a:	8b fa                	mov    %edx,%edi
47374c:	e8 cf 62 f9 ff       	call   0x409a20
473751:	89 5e 0c             	mov    %ebx,0xc(%esi)
473754:	89 3e                	mov    %edi,(%esi)
473756:	e9 a2 00 00 00       	jmp    0x4737fd
47375b:	8b 7e 04             	mov    0x4(%esi),%edi
47375e:	8b 0f                	mov    (%edi),%ecx
473760:	e8 dd 64 f9 ff       	call   0x409c42
473765:	84 c0                	test   %al,%al
473767:	74 55                	je     0x4737be
473769:	8b 4f 04             	mov    0x4(%edi),%ecx
47376c:	e8 d1 64 f9 ff       	call   0x409c42
473771:	84 c0                	test   %al,%al
473773:	74 49                	je     0x4737be
473775:	8b 4f 04             	mov    0x4(%edi),%ecx
473778:	e8 c9 65 f9 ff       	call   0x409d46
47377d:	0b c2                	or     %edx,%eax
47377f:	74 3d                	je     0x4737be
473781:	8b 4e 04             	mov    0x4(%esi),%ecx
473784:	8b 19                	mov    (%ecx),%ebx
473786:	8b 49 04             	mov    0x4(%ecx),%ecx
473789:	e8 b8 65 f9 ff       	call   0x409d46
47378e:	8b cb                	mov    %ebx,%ecx
473790:	8b f8                	mov    %eax,%edi
473792:	8b f2                	mov    %edx,%esi
473794:	e8 ad 65 f9 ff       	call   0x409d46
473799:	56                   	push   %esi
47379a:	57                   	push   %edi
47379b:	52                   	push   %edx
47379c:	50                   	push   %eax
47379d:	e8 ae 0f fc ff       	call   0x434750
4737a2:	8b 7d 0c             	mov    0xc(%ebp),%edi
4737a5:	8b f0                	mov    %eax,%esi
4737a7:	8b cf                	mov    %edi,%ecx
4737a9:	8b da                	mov    %edx,%ebx
4737ab:	e8 70 62 f9 ff       	call   0x409a20
4737b0:	c7 47 0c 02 00 00 00 	movl   $0x2,0xc(%edi)
4737b7:	89 37                	mov    %esi,(%edi)
4737b9:	89 5f 04             	mov    %ebx,0x4(%edi)
4737bc:	eb 3f                	jmp    0x4737fd
4737be:	8b 46 04             	mov    0x4(%esi),%eax
4737c1:	8b 48 04             	mov    0x4(%eax),%ecx
4737c4:	8b 30                	mov    (%eax),%esi
4737c6:	e8 2d 65 f9 ff       	call   0x409cf8
4737cb:	51                   	push   %ecx
4737cc:	51                   	push   %ecx
4737cd:	dd 1c 24             	fstpl  (%esp)
4737d0:	8b ce                	mov    %esi,%ecx
4737d2:	e8 21 65 f9 ff       	call   0x409cf8
4737d7:	51                   	push   %ecx
4737d8:	51                   	push   %ecx
4737d9:	dd 1c 24             	fstpl  (%esp)
4737dc:	e8 af 31 fb ff       	call   0x426990
4737e1:	8b 75 0c             	mov    0xc(%ebp),%esi
4737e4:	83 c4 10             	add    $0x10,%esp
4737e7:	8b ce                	mov    %esi,%ecx
4737e9:	dd 5d f8             	fstpl  -0x8(%ebp)
4737ec:	e8 2f 62 f9 ff       	call   0x409a20
4737f1:	dd 45 f8             	fldl   -0x8(%ebp)
4737f4:	dd 1e                	fstpl  (%esi)
4737f6:	c7 46 0c 03 00 00 00 	movl   $0x3,0xc(%esi)
4737fd:	5f                   	pop    %edi
4737fe:	5e                   	pop    %esi
4737ff:	33 c0                	xor    %eax,%eax
473801:	5b                   	pop    %ebx
473802:	8b e5                	mov    %ebp,%esp
473804:	5d                   	pop    %ebp
473805:	c2 08 00             	ret    $0x8
473808:	55                   	push   %ebp
473809:	8b ec                	mov    %esp,%ebp
47380b:	8b 45 08             	mov    0x8(%ebp),%eax
47380e:	56                   	push   %esi
47380f:	57                   	push   %edi
473810:	8b 40 04             	mov    0x4(%eax),%eax
473813:	8b 08                	mov    (%eax),%ecx
473815:	e8 a1 51 ff ff       	call   0x4689bb
47381a:	8b 75 0c             	mov    0xc(%ebp),%esi
47381d:	8b f8                	mov    %eax,%edi
47381f:	8b ce                	mov    %esi,%ecx
473821:	e8 fa 61 f9 ff       	call   0x409a20
473826:	89 3e                	mov    %edi,(%esi)
473828:	33 c0                	xor    %eax,%eax
47382a:	5f                   	pop    %edi
47382b:	c7 46 0c 07 00 00 00 	movl   $0x7,0xc(%esi)
473832:	5e                   	pop    %esi
473833:	5d                   	pop    %ebp
473834:	c2 08 00             	ret    $0x8
473837:	55                   	push   %ebp
473838:	8b ec                	mov    %esp,%ebp
47383a:	83 ec 14             	sub    $0x14,%esp
47383d:	53                   	push   %ebx
47383e:	8b 5d 08             	mov    0x8(%ebp),%ebx
473841:	56                   	push   %esi
473842:	57                   	push   %edi
473843:	8b f1                	mov    %ecx,%esi
473845:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
473849:	83 7b 08 03          	cmpl   $0x3,0x8(%ebx)
47384d:	75 13                	jne    0x473862
47384f:	8b 43 04             	mov    0x4(%ebx),%eax
473852:	8b 48 08             	mov    0x8(%eax),%ecx
473855:	e8 42 64 f9 ff       	call   0x409c9c
47385a:	83 f8 01             	cmp    $0x1,%eax
47385d:	75 03                	jne    0x473862
47385f:	88 45 ff             	mov    %al,-0x1(%ebp)
473862:	8b 7d 0c             	mov    0xc(%ebp),%edi
473865:	8b cf                	mov    %edi,%ecx
473867:	e8 b4 61 f9 ff       	call   0x409a20
47386c:	83 27 00             	andl   $0x0,(%edi)
47386f:	33 d2                	xor    %edx,%edx
473871:	42                   	inc    %edx
473872:	89 57 0c             	mov    %edx,0xc(%edi)
473875:	8b 43 08             	mov    0x8(%ebx),%eax
473878:	85 c0                	test   %eax,%eax
47387a:	0f 84 36 01 00 00    	je     0x4739b6
473880:	3b c2                	cmp    %edx,%eax
473882:	0f 84 f4 00 00 00    	je     0x47397c
473888:	83 c0 fe             	add    $0xfffffffe,%eax
47388b:	3b c2                	cmp    %edx,%eax
47388d:	0f 87 3e 01 00 00    	ja     0x4739d1
473893:	8b 4b 04             	mov    0x4(%ebx),%ecx
473896:	8b 01                	mov    (%ecx),%eax
473898:	83 78 0c 05          	cmpl   $0x5,0xc(%eax)
47389c:	0f 84 c9 00 00 00    	je     0x47396b
4738a2:	8b 49 04             	mov    0x4(%ecx),%ecx
4738a5:	83 79 0c 05          	cmpl   $0x5,0xc(%ecx)
4738a9:	0f 84 bc 00 00 00    	je     0x47396b
4738af:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
4738b3:	74 6b                	je     0x473920
4738b5:	e8 e2 63 f9 ff       	call   0x409c9c
4738ba:	8b 4b 04             	mov    0x4(%ebx),%ecx
4738bd:	89 45 0c             	mov    %eax,0xc(%ebp)
4738c0:	8b 09                	mov    (%ecx),%ecx
4738c2:	e8 d5 63 f9 ff       	call   0x409c9c
4738c7:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4738ca:	89 45 08             	mov    %eax,0x8(%ebp)
4738cd:	3b c1                	cmp    %ecx,%eax
4738cf:	75 18                	jne    0x4738e9
4738d1:	8b cf                	mov    %edi,%ecx
4738d3:	e8 48 61 f9 ff       	call   0x409a20
4738d8:	8b 45 08             	mov    0x8(%ebp),%eax
4738db:	c7 47 0c 01 00 00 00 	movl   $0x1,0xc(%edi)
4738e2:	89 07                	mov    %eax,(%edi)
4738e4:	e9 e8 00 00 00       	jmp    0x4739d1
4738e9:	8b d9                	mov    %ecx,%ebx
4738eb:	2b d8                	sub    %eax,%ebx
4738ed:	3b c1                	cmp    %ecx,%eax
4738ef:	7d 5f                	jge    0x473950
4738f1:	85 db                	test   %ebx,%ebx
4738f3:	7e 5b                	jle    0x473950
4738f5:	81 fb ff ff ff 07    	cmp    $0x7ffffff,%ebx
4738fb:	7d 01                	jge    0x4738fe