47461c:	e9 e5 e5 f9 ff       	jmp    0x412c06
474621:	85 c0                	test   %eax,%eax
474623:	0f 84 ec 87 f9 ff    	je     0x40ce15
474629:	8b c8                	mov    %eax,%ecx
47462b:	e8 c7 91 f9 ff       	call   0x40d7f7
474630:	e9 bc 87 f9 ff       	jmp    0x40cdf1
474635:	8b cf                	mov    %edi,%ecx
474637:	e8 57 89 f9 ff       	call   0x40cf93
47463c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
47463f:	8b f0                	mov    %eax,%esi
474641:	8b fa                	mov    %edx,%edi
474643:	e8 4b 89 f9 ff       	call   0x40cf93
474648:	3b f0                	cmp    %eax,%esi
47464a:	0f 85 04 8b f9 ff    	jne    0x40d154
474650:	3b fa                	cmp    %edx,%edi
474652:	0f 85 fc 8a f9 ff    	jne    0x40d154
474658:	e9 1e 8b f9 ff       	jmp    0x40d17b
47465d:	8b cf                	mov    %edi,%ecx
47465f:	e8 13 6f fd ff       	call   0x44b577
474664:	8b ce                	mov    %esi,%ecx
474666:	8b d8                	mov    %eax,%ebx
474668:	e8 0a 6f fd ff       	call   0x44b577
47466d:	e9 9c 8a f9 ff       	jmp    0x40d10e
474672:	8b cf                	mov    %edi,%ecx
474674:	e8 d4 6e fd ff       	call   0x44b54d
474679:	8b ce                	mov    %esi,%ecx
47467b:	8b d0                	mov    %eax,%edx
47467d:	e8 cb 6e fd ff       	call   0x44b54d
474682:	eb 10                	jmp    0x474694
474684:	8b cf                	mov    %edi,%ecx
474686:	e8 03 60 fd ff       	call   0x44a68e
47468b:	8b ce                	mov    %esi,%ecx
47468d:	8b d0                	mov    %eax,%edx
47468f:	e8 fa 5f fd ff       	call   0x44a68e
474694:	2b d0                	sub    %eax,%edx
474696:	f7 da                	neg    %edx
474698:	1b d2                	sbb    %edx,%edx
47469a:	42                   	inc    %edx
47469b:	8a c2                	mov    %dl,%al
47469d:	e9 75 8a f9 ff       	jmp    0x40d117
4746a2:	33 db                	xor    %ebx,%ebx
4746a4:	83 f9 08             	cmp    $0x8,%ecx
4746a7:	75 04                	jne    0x4746ad
4746a9:	8b 07                	mov    (%edi),%eax
4746ab:	eb 02                	jmp    0x4746af
4746ad:	8b c3                	mov    %ebx,%eax
4746af:	85 c0                	test   %eax,%eax
4746b1:	0f 84 5e 8a f9 ff    	je     0x40d115
4746b7:	83 fa 08             	cmp    $0x8,%edx
4746ba:	75 04                	jne    0x4746c0
4746bc:	8b 06                	mov    (%esi),%eax
4746be:	eb 02                	jmp    0x4746c2
4746c0:	8b c3                	mov    %ebx,%eax
4746c2:	85 c0                	test   %eax,%eax
4746c4:	0f 84 4b 8a f9 ff    	je     0x40d115
4746ca:	83 fa 08             	cmp    $0x8,%edx
4746cd:	75 04                	jne    0x4746d3
4746cf:	8b 16                	mov    (%esi),%edx
4746d1:	eb 02                	jmp    0x4746d5
4746d3:	8b d3                	mov    %ebx,%edx
4746d5:	83 f9 08             	cmp    $0x8,%ecx
4746d8:	75 04                	jne    0x4746de
4746da:	8b 0f                	mov    (%edi),%ecx
4746dc:	eb 02                	jmp    0x4746e0
4746de:	8b cb                	mov    %ebx,%ecx
4746e0:	e8 9b 57 fd ff       	call   0x449e80
4746e5:	84 c0                	test   %al,%al
4746e7:	0f 84 28 8a f9 ff    	je     0x40d115
4746ed:	33 db                	xor    %ebx,%ebx
4746ef:	43                   	inc    %ebx
4746f0:	e9 20 8a f9 ff       	jmp    0x40d115
4746f5:	83 f9 0b             	cmp    $0xb,%ecx
4746f8:	75 43                	jne    0x47473d
4746fa:	3b d1                	cmp    %ecx,%edx
4746fc:	75 3f                	jne    0x47473d
4746fe:	8b cf                	mov    %edi,%ecx
474700:	e8 99 6e fd ff       	call   0x44b59e
474705:	8b ce                	mov    %esi,%ecx
474707:	8b d0                	mov    %eax,%edx
474709:	e8 90 6e fd ff       	call   0x44b59e
47470e:	3b d0                	cmp    %eax,%edx
474710:	0f 85 6a 8a f9 ff    	jne    0x40d180
474716:	8b cf                	mov    %edi,%ecx
474718:	e8 81 6e fd ff       	call   0x44b59e
47471d:	50                   	push   %eax
47471e:	51                   	push   %ecx
47471f:	8b ce                	mov    %esi,%ecx
474721:	e8 35 6e fd ff       	call   0x44b55b
474726:	59                   	pop    %ecx
474727:	50                   	push   %eax
474728:	8b cf                	mov    %edi,%ecx
47472a:	e8 2c 6e fd ff       	call   0x44b55b
47472f:	50                   	push   %eax
474730:	e8 2e ae fa ff       	call   0x41f563
474735:	83 c4 0c             	add    $0xc,%esp
474738:	e9 37 8a f9 ff       	jmp    0x40d174
47473d:	33 db                	xor    %ebx,%ebx
47473f:	57                   	push   %edi
474740:	8d 4d e0             	lea    -0x20(%ebp),%ecx
474743:	89 5d e8             	mov    %ebx,-0x18(%ebp)
474746:	e8 d5 cf f9 ff       	call   0x411720
47474b:	56                   	push   %esi
47474c:	8d 4d f0             	lea    -0x10(%ebp),%ecx
47474f:	89 5d f8             	mov    %ebx,-0x8(%ebp)
474752:	e8 c9 cf f9 ff       	call   0x411720
474757:	8d 4d e0             	lea    -0x20(%ebp),%ecx
47475a:	e8 76 5d fd ff       	call   0x44a4d5
47475f:	8d 4d f0             	lea    -0x10(%ebp),%ecx
474762:	e8 6e 5d fd ff       	call   0x44a4d5
474767:	8d 4d e0             	lea    -0x20(%ebp),%ecx
47476a:	e8 2f 6e fd ff       	call   0x44b59e
47476f:	8d 4d f0             	lea    -0x10(%ebp),%ecx
474772:	8b d0                	mov    %eax,%edx
474774:	e8 25 6e fd ff       	call   0x44b59e
474779:	3b d0                	cmp    %eax,%edx
47477b:	75 22                	jne    0x47479f
47477d:	52                   	push   %edx
47477e:	51                   	push   %ecx
47477f:	e8 d7 6d fd ff       	call   0x44b55b
474784:	59                   	pop    %ecx
474785:	50                   	push   %eax
474786:	8d 4d e0             	lea    -0x20(%ebp),%ecx
474789:	e8 cd 6d fd ff       	call   0x44b55b
47478e:	50                   	push   %eax
47478f:	e8 cf ad fa ff       	call   0x41f563
474794:	83 c4 0c             	add    $0xc,%esp
474797:	f7 d8                	neg    %eax
474799:	1a c0                	sbb    %al,%al
47479b:	fe c0                	inc    %al
47479d:	8a d8                	mov    %al,%bl
47479f:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4747a2:	e8 79 e4 f9 ff       	call   0x412c20
4747a7:	8d 4d e0             	lea    -0x20(%ebp),%ecx
4747aa:	e8 71 e4 f9 ff       	call   0x412c20
4747af:	e9 61 89 f9 ff       	jmp    0x40d115
4747b4:	8d 45 c0             	lea    -0x40(%ebp),%eax
4747b7:	50                   	push   %eax
4747b8:	8b ce                	mov    %esi,%ecx
4747ba:	e8 de 5e fd ff       	call   0x44a69d
4747bf:	8b f0                	mov    %eax,%esi
4747c1:	8d 45 d0             	lea    -0x30(%ebp),%eax
4747c4:	50                   	push   %eax
4747c5:	8b cf                	mov    %edi,%ecx
4747c7:	e8 d1 5e fd ff       	call   0x44a69d
4747cc:	8b d6                	mov    %esi,%edx
4747ce:	8b c8                	mov    %eax,%ecx
4747d0:	e8 51 21 f9 ff       	call   0x406926
4747d5:	8d 4d d0             	lea    -0x30(%ebp),%ecx
4747d8:	8a d8                	mov    %al,%bl
4747da:	e8 58 83 f9 ff       	call   0x40cb37
4747df:	8d 4d c0             	lea    -0x40(%ebp),%ecx
4747e2:	e8 50 83 f9 ff       	call   0x40cb37
4747e7:	e9 29 89 f9 ff       	jmp    0x40d115
4747ec:	33 db                	xor    %ebx,%ebx
4747ee:	83 f9 0f             	cmp    $0xf,%ecx
4747f1:	75 04                	jne    0x4747f7
4747f3:	8b 07                	mov    (%edi),%eax
4747f5:	eb 02                	jmp    0x4747f9
4747f7:	8b c3                	mov    %ebx,%eax
4747f9:	8b 48 0c             	mov    0xc(%eax),%ecx
4747fc:	83 fa 0f             	cmp    $0xf,%edx
4747ff:	75 02                	jne    0x474803
474801:	8b 1e                	mov    (%esi),%ebx
474803:	33 c0                	xor    %eax,%eax
474805:	3b 4b 0c             	cmp    0xc(%ebx),%ecx
474808:	0f 94 c0             	sete   %al
47480b:	e9 07 89 f9 ff       	jmp    0x40d117
474810:	48                   	dec    %eax
474811:	74 2d                	je     0x474840
474813:	83 e8 03             	sub    $0x3,%eax
474816:	74 0f                	je     0x474827
474818:	48                   	dec    %eax
474819:	48                   	dec    %eax
47481a:	0f 84 e9 fc f9 ff    	je     0x414509
474820:	32 c0                	xor    %al,%al
474822:	e9 dd fc f9 ff       	jmp    0x414504
474827:	e8 4b 6d fd ff       	call   0x44b577
47482c:	8b cf                	mov    %edi,%ecx
47482e:	8b f0                	mov    %eax,%esi
474830:	e8 42 6d fd ff       	call   0x44b577
474835:	3b f0                	cmp    %eax,%esi
474837:	1b c0                	sbb    %eax,%eax
474839:	f7 d8                	neg    %eax
47483b:	e9 c4 fc f9 ff       	jmp    0x414504
474840:	8b cf                	mov    %edi,%ecx
474842:	e8 25 4b f9 ff       	call   0x40936c
474847:	8b 77 08             	mov    0x8(%edi),%esi
47484a:	8b cb                	mov    %ebx,%ecx
47484c:	e8 1b 4b f9 ff       	call   0x40936c
474851:	8b 4b 08             	mov    0x8(%ebx),%ecx
474854:	6a 00                	push   $0x0
474856:	56                   	push   %esi
474857:	e8 02 8b fa ff       	call   0x41d35e
47485c:	33 c9                	xor    %ecx,%ecx
47485e:	85 c0                	test   %eax,%eax
474860:	0f 98 c0             	sets   %al
474863:	e9 9c fc f9 ff       	jmp    0x414504
474868:	e8 26 87 f9 ff       	call   0x40cf93
47486d:	8b cf                	mov    %edi,%ecx
47486f:	8b d8                	mov    %eax,%ebx
474871:	8b f2                	mov    %edx,%esi
474873:	e8 1b 87 f9 ff       	call   0x40cf93
474878:	3b f2                	cmp    %edx,%esi
47487a:	0f 8f 82 fc f9 ff    	jg     0x414502
474880:	0f 8c 9a fc f9 ff    	jl     0x414520
474886:	3b d8                	cmp    %eax,%ebx
474888:	0f 82 92 fc f9 ff    	jb     0x414520
47488e:	e9 6f fc f9 ff       	jmp    0x414502
474893:	8b 75 08             	mov    0x8(%ebp),%esi
474896:	83 7e 0c 01          	cmpl   $0x1,0xc(%esi)
47489a:	74 0a                	je     0x4748a6
47489c:	83 7e 0c 02          	cmpl   $0x2,0xc(%esi)
4748a0:	0f 85 23 fd f9 ff    	jne    0x4145c9
4748a6:	8b ce                	mov    %esi,%ecx
4748a8:	e8 e6 86 f9 ff       	call   0x40cf93
4748ad:	01 03                	add    %eax,(%ebx)
4748af:	11 53 04             	adc    %edx,0x4(%ebx)
4748b2:	e9 b0 fc f9 ff       	jmp    0x414567
4748b7:	8b 03                	mov    (%ebx),%eax
4748b9:	99                   	cltd
4748ba:	03 06                	add    (%esi),%eax
4748bc:	13 56 04             	adc    0x4(%esi),%edx
4748bf:	89 03                	mov    %eax,(%ebx)
4748c1:	89 53 04             	mov    %edx,0x4(%ebx)
4748c4:	89 4b 0c             	mov    %ecx,0xc(%ebx)
4748c7:	e9 9b fc f9 ff       	jmp    0x414567
4748cc:	83 f8 07             	cmp    $0x7,%eax
4748cf:	0f 84 82 00 00 00    	je     0x474957
4748d5:	83 f8 08             	cmp    $0x8,%eax
4748d8:	0f 8e 89 fc f9 ff    	jle    0x414567
4748de:	83 f8 0a             	cmp    $0xa,%eax
4748e1:	0f 8e 56 fc f9 ff    	jle    0x41453d
4748e7:	83 f8 0b             	cmp    $0xb,%eax
4748ea:	0f 85 77 fc f9 ff    	jne    0x414567
4748f0:	8b 75 08             	mov    0x8(%ebp),%esi
4748f3:	39 46 0c             	cmp    %eax,0xc(%esi)
4748f6:	0f 85 cd fc f9 ff    	jne    0x4145c9
4748fc:	8b ce                	mov    %esi,%ecx
4748fe:	e8 9b 6c fd ff       	call   0x44b59e
474903:	8b 0b                	mov    (%ebx),%ecx
474905:	8b f8                	mov    %eax,%edi
474907:	03 39                	add    (%ecx),%edi
474909:	57                   	push   %edi
47490a:	e8 db ab fa ff       	call   0x41f4ea
47490f:	8b 0b                	mov    (%ebx),%ecx
474911:	8b f0                	mov    %eax,%esi
474913:	ff 31                	push   (%ecx)
474915:	ff 71 04             	push   0x4(%ecx)
474918:	56                   	push   %esi
474919:	e8 62 a5 fa ff       	call   0x41ee80
47491e:	8b 4d 08             	mov    0x8(%ebp),%ecx
474921:	83 c4 10             	add    $0x10,%esp
474924:	e8 75 6c fd ff       	call   0x44b59e
474929:	50                   	push   %eax
47492a:	e8 2c 6c fd ff       	call   0x44b55b
47492f:	50                   	push   %eax
474930:	8b 03                	mov    (%ebx),%eax
474932:	8b 00                	mov    (%eax),%eax
474934:	03 c6                	add    %esi,%eax
474936:	50                   	push   %eax
474937:	e8 44 a5 fa ff       	call   0x41ee80
47493c:	8b 03                	mov    (%ebx),%eax
47493e:	ff 70 04             	push   0x4(%eax)
474941:	e8 18 ac fa ff       	call   0x41f55e
474946:	8b 03                	mov    (%ebx),%eax
474948:	83 c4 10             	add    $0x10,%esp
47494b:	89 70 04             	mov    %esi,0x4(%eax)
47494e:	8b 03                	mov    (%ebx),%eax
474950:	89 38                	mov    %edi,(%eax)
474952:	e9 10 fc f9 ff       	jmp    0x414567
474957:	8b 4d 08             	mov    0x8(%ebp),%ecx
47495a:	8b 33                	mov    (%ebx),%esi
47495c:	83 79 0c 01          	cmpl   $0x1,0xc(%ecx)
474960:	75 07                	jne    0x474969
474962:	e8 1f 89 f9 ff       	call   0x40d286
474967:	eb 05                	jmp    0x47496e
474969:	e8 25 86 f9 ff       	call   0x40cf93
47496e:	03 f0                	add    %eax,%esi
474970:	89 33                	mov    %esi,(%ebx)
474972:	e9 f0 fb f9 ff       	jmp    0x414567
474977:	51                   	push   %ecx
474978:	e8 1c e1 f8 ff       	call   0x402a99
47497d:	83 63 08 00          	andl   $0x0,0x8(%ebx)
474981:	e9 ec fb f9 ff       	jmp    0x414572
474986:	0f 88 b1 76 fa ff    	js     0x41c03d
47498c:	3b 81 0c 02 00 00    	cmp    0x20c(%ecx),%eax
474992:	0f 8f a5 76 fa ff    	jg     0x41c03d
474998:	8b 44 81 08          	mov    0x8(%ecx,%eax,4),%eax
47499c:	e9 98 76 fa ff       	jmp    0x41c039
4749a1:	48                   	dec    %eax
4749a2:	89 01                	mov    %eax,(%ecx)
4749a4:	8b 03                	mov    (%ebx),%eax
4749a6:	33 c9                	xor    %ecx,%ecx
4749a8:	8b 30                	mov    (%eax),%esi
4749aa:	8b 40 08             	mov    0x8(%eax),%eax
4749ad:	ba 04 00 00 00       	mov    $0x4,%edx
4749b2:	f7 e2                	mul    %edx
4749b4:	0f 90 c1             	seto   %cl
4749b7:	89 75 fc             	mov    %esi,-0x4(%ebp)
4749ba:	f7 d9                	neg    %ecx
4749bc:	0b c8                	or     %eax,%ecx
4749be:	51                   	push   %ecx
4749bf:	e8 26 ab fa ff       	call   0x41f4ea
4749c4:	8b 0b                	mov    (%ebx),%ecx
4749c6:	6a 04                	push   $0x4
4749c8:	89 01                	mov    %eax,(%ecx)
4749ca:	e8 1b ab fa ff       	call   0x41f4ea
4749cf:	8b c8                	mov    %eax,%ecx
4749d1:	83 c4 08             	add    $0x8,%esp
4749d4:	85 c9                	test   %ecx,%ecx
4749d6:	74 08                	je     0x4749e0
4749d8:	c7 01 01 00 00 00    	movl   $0x1,(%ecx)
4749de:	eb 02                	jmp    0x4749e2
4749e0:	33 c9                	xor    %ecx,%ecx
4749e2:	8b 03                	mov    (%ebx),%eax
4749e4:	33 ff                	xor    %edi,%edi
4749e6:	89 48 04             	mov    %ecx,0x4(%eax)
4749e9:	8b 03                	mov    (%ebx),%eax
4749eb:	39 78 08             	cmp    %edi,0x8(%eax)
4749ee:	0f 8e ba d1 f9 ff    	jle    0x411bae
4749f4:	83 3c be 00          	cmpl   $0x0,(%esi,%edi,4)
4749f8:	74 3f                	je     0x474a39
4749fa:	6a 10                	push   $0x10
4749fc:	e8 e9 aa fa ff       	call   0x41f4ea
474a01:	8b f0                	mov    %eax,%esi
474a03:	83 c4 04             	add    $0x4,%esp
474a06:	85 f6                	test   %esi,%esi
474a08:	74 21                	je     0x474a2b
474a0a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
474a0d:	8b 0c b9             	mov    (%ecx,%edi,4),%ecx
474a10:	51                   	push   %ecx
474a11:	8b ce                	mov    %esi,%ecx
474a13:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
474a1a:	e8 01 cd f9 ff       	call   0x411720
474a1f:	8b 03                	mov    (%ebx),%eax
474a21:	8b 00                	mov    (%eax),%eax
474a23:	89 34 b8             	mov    %esi,(%eax,%edi,4)
474a26:	8b 75 fc             	mov    -0x4(%ebp),%esi
474a29:	eb 17                	jmp    0x474a42
474a2b:	8b 03                	mov    (%ebx),%eax
474a2d:	33 f6                	xor    %esi,%esi
474a2f:	8b 00                	mov    (%eax),%eax
474a31:	89 34 b8             	mov    %esi,(%eax,%edi,4)
474a34:	8b 75 fc             	mov    -0x4(%ebp),%esi
474a37:	eb 09                	jmp    0x474a42
474a39:	8b 00                	mov    (%eax),%eax
474a3b:	c7 04 b8 00 00 00 00 	movl   $0x0,(%eax,%edi,4)
474a42:	8b 03                	mov    (%ebx),%eax
474a44:	47                   	inc    %edi
474a45:	3b 78 08             	cmp    0x8(%eax),%edi