46f54b:	8b 70 04             	mov    0x4(%eax),%esi
46f54e:	83 7e 0c 0b          	cmpl   $0xb,0xc(%esi)
46f552:	0f 84 9b 00 00 00    	je     0x46f5f3
46f558:	8b cf                	mov    %edi,%ecx
46f55a:	e8 a9 61 f9 ff       	call   0x405708
46f55f:	a8 10                	test   $0x10,%al
46f561:	0f 85 8c 00 00 00    	jne    0x46f5f3
46f567:	8b ce                	mov    %esi,%ecx
46f569:	e8 29 a4 f9 ff       	call   0x409997
46f56e:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
46f572:	8b 76 08             	mov    0x8(%esi),%esi
46f575:	74 72                	je     0x46f5e9
46f577:	8b 46 04             	mov    0x4(%esi),%eax
46f57a:	85 c0                	test   %eax,%eax
46f57c:	74 27                	je     0x46f5a5
46f57e:	48                   	dec    %eax
46f57f:	8b ce                	mov    %esi,%ecx
46f581:	50                   	push   %eax
46f582:	89 44 24 10          	mov    %eax,0x10(%esp)
46f586:	e8 95 85 f9 ff       	call   0x407b20
46f58b:	66 83 38 0d          	cmpw   $0xd,(%eax)
46f58f:	74 58                	je     0x46f5e9
46f591:	ff 74 24 0c          	push   0xc(%esp)
46f595:	8b ce                	mov    %esi,%ecx
46f597:	e8 84 85 f9 ff       	call   0x407b20
46f59c:	66 83 38 0a          	cmpw   $0xa,(%eax)
46f5a0:	74 47                	je     0x46f5e9
46f5a2:	8b 46 04             	mov    0x4(%esi),%eax
46f5a5:	83 c0 02             	add    $0x2,%eax
46f5a8:	8d 4c 24 10          	lea    0x10(%esp),%ecx
46f5ac:	50                   	push   %eax
46f5ad:	e8 c4 85 f9 ff       	call   0x407b76
46f5b2:	56                   	push   %esi
46f5b3:	8d 4c 24 14          	lea    0x14(%esp),%ecx
46f5b7:	e8 eb 8b f9 ff       	call   0x4081a7
46f5bc:	68 70 a4 4b 00       	push   $0x4ba470
46f5c1:	8d 4c 24 14          	lea    0x14(%esp),%ecx
46f5c5:	e8 41 88 f9 ff       	call   0x407e0b
46f5ca:	8d 44 24 10          	lea    0x10(%esp),%eax
46f5ce:	8b cf                	mov    %edi,%ecx
46f5d0:	50                   	push   %eax
46f5d1:	e8 0f 41 ff ff       	call   0x4636e5
46f5d6:	8d 4c 24 10          	lea    0x10(%esp),%ecx
46f5da:	88 44 24 0b          	mov    %al,0xb(%esp)
46f5de:	e8 81 64 f9 ff       	call   0x405a64
46f5e3:	8a 44 24 0b          	mov    0xb(%esp),%al
46f5e7:	eb 32                	jmp    0x46f61b
46f5e9:	56                   	push   %esi
46f5ea:	8b cf                	mov    %edi,%ecx
46f5ec:	e8 f4 40 ff ff       	call   0x4636e5
46f5f1:	eb 28                	jmp    0x46f61b
46f5f3:	8b ce                	mov    %esi,%ecx
46f5f5:	e8 a5 93 ff ff       	call   0x46899f
46f5fa:	8b 4d 08             	mov    0x8(%ebp),%ecx
46f5fd:	8b d0                	mov    %eax,%edx
46f5ff:	8b 49 04             	mov    0x4(%ecx),%ecx
46f602:	8b 49 04             	mov    0x4(%ecx),%ecx
46f605:	e8 d8 93 ff ff       	call   0x4689e2
46f60a:	8b f0                	mov    %eax,%esi
46f60c:	8b cf                	mov    %edi,%ecx
46f60e:	56                   	push   %esi
46f60f:	52                   	push   %edx
46f610:	e8 81 40 ff ff       	call   0x463696
46f615:	3b c6                	cmp    %esi,%eax
46f617:	74 1a                	je     0x46f633
46f619:	32 c0                	xor    %al,%al
46f61b:	84 c0                	test   %al,%al
46f61d:	75 14                	jne    0x46f633
46f61f:	8b 75 0c             	mov    0xc(%ebp),%esi
46f622:	8b ce                	mov    %esi,%ecx
46f624:	e8 f7 a3 f9 ff       	call   0x409a20
46f629:	83 26 00             	andl   $0x0,(%esi)
46f62c:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
46f633:	8b 45 08             	mov    0x8(%ebp),%eax
46f636:	8b 40 04             	mov    0x4(%eax),%eax
46f639:	8b 00                	mov    (%eax),%eax
46f63b:	83 78 0c 04          	cmpl   $0x4,0xc(%eax)
46f63f:	75 13                	jne    0x46f654
46f641:	8b cf                	mov    %edi,%ecx
46f643:	e8 87 67 f9 ff       	call   0x405dcf
46f648:	85 ff                	test   %edi,%edi
46f64a:	74 08                	je     0x46f654
46f64c:	51                   	push   %ecx
46f64d:	8b cf                	mov    %edi,%ecx
46f64f:	e8 c6 63 f9 ff       	call   0x405a1a
46f654:	5f                   	pop    %edi
46f655:	33 c0                	xor    %eax,%eax
46f657:	5e                   	pop    %esi
46f658:	8b e5                	mov    %ebp,%esp
46f65a:	5d                   	pop    %ebp
46f65b:	c2 0c 00             	ret    $0xc
46f65e:	55                   	push   %ebp
46f65f:	8b ec                	mov    %esp,%ebp
46f661:	81 ec 7c 02 00 00    	sub    $0x27c,%esp
46f667:	53                   	push   %ebx
46f668:	56                   	push   %esi
46f669:	57                   	push   %edi
46f66a:	ff 75 08             	push   0x8(%ebp)
46f66d:	89 4d ec             	mov    %ecx,-0x14(%ebp)
46f670:	8d 4d f0             	lea    -0x10(%ebp),%ecx
46f673:	e8 c9 88 f9 ff       	call   0x407f41
46f678:	8b 45 f0             	mov    -0x10(%ebp),%eax
46f67b:	8d 4d f0             	lea    -0x10(%ebp),%ecx
46f67e:	89 45 dc             	mov    %eax,-0x24(%ebp)
46f681:	8b 45 f4             	mov    -0xc(%ebp),%eax
46f684:	89 45 e0             	mov    %eax,-0x20(%ebp)
46f687:	8b 45 f8             	mov    -0x8(%ebp),%eax
46f68a:	89 45 e4             	mov    %eax,-0x1c(%ebp)
46f68d:	8b 45 fc             	mov    -0x4(%ebp),%eax
46f690:	68 98 a5 4b 00       	push   $0x4ba598
46f695:	89 45 e8             	mov    %eax,-0x18(%ebp)
46f698:	ff 00                	incl   (%eax)
46f69a:	e8 6c 87 f9 ff       	call   0x407e0b
46f69f:	8d 85 88 fd ff ff    	lea    -0x278(%ebp),%eax
46f6a5:	b3 01                	mov    $0x1,%bl
46f6a7:	50                   	push   %eax
46f6a8:	ff 75 f0             	push   -0x10(%ebp)
46f6ab:	ff 15 04 f2 48 00    	call   *0x48f204
46f6b1:	89 45 08             	mov    %eax,0x8(%ebp)
46f6b4:	83 f8 ff             	cmp    $0xffffffff,%eax
46f6b7:	0f 84 00 01 00 00    	je     0x46f7bd
46f6bd:	8b 75 14             	mov    0x14(%ebp),%esi
46f6c0:	8b 7d 10             	mov    0x10(%ebp),%edi
46f6c3:	8b 4d ec             	mov    -0x14(%ebp),%ecx
46f6c6:	e8 55 72 fe ff       	call   0x456920
46f6cb:	83 f8 01             	cmp    $0x1,%eax
46f6ce:	0f 84 e4 00 00 00    	je     0x46f7b8
46f6d4:	83 f8 0b             	cmp    $0xb,%eax
46f6d7:	75 0a                	jne    0x46f6e3
46f6d9:	6a 0a                	push   $0xa
46f6db:	ff 15 7c f1 48 00    	call   *0x48f17c
46f6e1:	eb e0                	jmp    0x46f6c3
46f6e3:	8d 85 b4 fd ff ff    	lea    -0x24c(%ebp),%eax
46f6e9:	68 80 fb 48 00       	push   $0x48fb80
46f6ee:	50                   	push   %eax
46f6ef:	e8 98 40 fb ff       	call   0x42378c
46f6f4:	59                   	pop    %ecx
46f6f5:	59                   	pop    %ecx
46f6f6:	85 c0                	test   %eax,%eax
46f6f8:	0f 84 a0 00 00 00    	je     0x46f79e
46f6fe:	8d 85 b4 fd ff ff    	lea    -0x24c(%ebp),%eax
46f704:	68 a0 a5 4b 00       	push   $0x4ba5a0
46f709:	50                   	push   %eax
46f70a:	e8 7d 40 fb ff       	call   0x42378c
46f70f:	59                   	pop    %ecx
46f710:	59                   	pop    %ecx
46f711:	85 c0                	test   %eax,%eax
46f713:	0f 84 85 00 00 00    	je     0x46f79e
46f719:	8d 45 dc             	lea    -0x24(%ebp),%eax
46f71c:	50                   	push   %eax
46f71d:	8d 4d f0             	lea    -0x10(%ebp),%ecx
46f720:	e8 82 8a f9 ff       	call   0x4081a7
46f725:	8d 85 b4 fd ff ff    	lea    -0x24c(%ebp),%eax
46f72b:	50                   	push   %eax
46f72c:	8d 4d f0             	lea    -0x10(%ebp),%ecx
46f72f:	e8 d7 86 f9 ff       	call   0x407e0b
46f734:	f6 85 88 fd ff ff 10 	testb  $0x10,-0x278(%ebp)
46f73b:	74 3e                	je     0x46f77b
46f73d:	80 7d 18 00          	cmpb   $0x0,0x18(%ebp)
46f741:	74 07                	je     0x46f74a
46f743:	83 06 01             	addl   $0x1,(%esi)
46f746:	83 56 04 00          	adcl   $0x0,0x4(%esi)
46f74a:	80 7d 1c 00          	cmpb   $0x0,0x1c(%ebp)
46f74e:	74 4e                	je     0x46f79e
46f750:	68 c0 fa 48 00       	push   $0x48fac0
46f755:	8d 4d f0             	lea    -0x10(%ebp),%ecx
46f758:	e8 ae 86 f9 ff       	call   0x407e0b
46f75d:	ff 75 1c             	push   0x1c(%ebp)
46f760:	8b 4d ec             	mov    -0x14(%ebp),%ecx
46f763:	ff 75 18             	push   0x18(%ebp)
46f766:	56                   	push   %esi
46f767:	57                   	push   %edi
46f768:	ff 75 0c             	push   0xc(%ebp)
46f76b:	ff 75 f0             	push   -0x10(%ebp)
46f76e:	e8 eb fe ff ff       	call   0x46f65e
46f773:	8a d8                	mov    %al,%bl
46f775:	84 db                	test   %bl,%bl
46f777:	74 41                	je     0x46f7ba
46f779:	eb 23                	jmp    0x46f79e
46f77b:	8b 55 0c             	mov    0xc(%ebp),%edx
46f77e:	33 c0                	xor    %eax,%eax
46f780:	0b 85 a8 fd ff ff    	or     -0x258(%ebp),%eax
46f786:	8b 8d a4 fd ff ff    	mov    -0x25c(%ebp),%ecx
46f78c:	01 02                	add    %eax,(%edx)
46f78e:	11 4a 04             	adc    %ecx,0x4(%edx)
46f791:	80 7d 18 00          	cmpb   $0x0,0x18(%ebp)
46f795:	74 07                	je     0x46f79e
46f797:	83 07 01             	addl   $0x1,(%edi)
46f79a:	83 57 04 00          	adcl   $0x0,0x4(%edi)
46f79e:	8d 85 88 fd ff ff    	lea    -0x278(%ebp),%eax
46f7a4:	50                   	push   %eax
46f7a5:	ff 75 08             	push   0x8(%ebp)
46f7a8:	ff 15 18 f2 48 00    	call   *0x48f218
46f7ae:	85 c0                	test   %eax,%eax
46f7b0:	0f 85 0d ff ff ff    	jne    0x46f6c3
46f7b6:	eb 02                	jmp    0x46f7ba
46f7b8:	32 db                	xor    %bl,%bl
46f7ba:	8b 45 08             	mov    0x8(%ebp),%eax
46f7bd:	50                   	push   %eax
46f7be:	ff 15 ec f3 48 00    	call   *0x48f3ec
46f7c4:	8d 4d dc             	lea    -0x24(%ebp),%ecx
46f7c7:	e8 98 62 f9 ff       	call   0x405a64
46f7cc:	8d 4d f0             	lea    -0x10(%ebp),%ecx
46f7cf:	e8 90 62 f9 ff       	call   0x405a64
46f7d4:	5f                   	pop    %edi
46f7d5:	5e                   	pop    %esi
46f7d6:	8a c3                	mov    %bl,%al
46f7d8:	5b                   	pop    %ebx
46f7d9:	8b e5                	mov    %ebp,%esp
46f7db:	5d                   	pop    %ebp
46f7dc:	c2 18 00             	ret    $0x18
46f7df:	55                   	push   %ebp
46f7e0:	8b ec                	mov    %esp,%ebp
46f7e2:	56                   	push   %esi
46f7e3:	57                   	push   %edi
46f7e4:	8b f9                	mov    %ecx,%edi
46f7e6:	8b 4d 0c             	mov    0xc(%ebp),%ecx
46f7e9:	e8 ae a4 f9 ff       	call   0x409c9c
46f7ee:	8d 70 ff             	lea    -0x1(%eax),%esi
46f7f1:	8b 45 08             	mov    0x8(%ebp),%eax
46f7f4:	89 30                	mov    %esi,(%eax)
46f7f6:	85 f6                	test   %esi,%esi
46f7f8:	78 33                	js     0x46f82d
46f7fa:	8b 4d 0c             	mov    0xc(%ebp),%ecx
46f7fd:	e8 f8 6d fe ff       	call   0x4565fa
46f802:	84 c0                	test   %al,%al
46f804:	74 27                	je     0x46f82d
46f806:	3b b7 98 01 00 00    	cmp    0x198(%edi),%esi
46f80c:	7d 1f                	jge    0x46f82d
46f80e:	8b 87 94 01 00 00    	mov    0x194(%edi),%eax
46f814:	8b 04 b0             	mov    (%eax,%esi,4),%eax
46f817:	8b 08                	mov    (%eax),%ecx
46f819:	85 c9                	test   %ecx,%ecx
46f81b:	74 10                	je     0x46f82d
46f81d:	8b 45 10             	mov    0x10(%ebp),%eax
46f820:	83 f8 ff             	cmp    $0xffffffff,%eax
46f823:	74 04                	je     0x46f829
46f825:	39 01                	cmp    %eax,(%ecx)
46f827:	75 04                	jne    0x46f82d
46f829:	b0 01                	mov    $0x1,%al
46f82b:	eb 02                	jmp    0x46f82f
46f82d:	32 c0                	xor    %al,%al
46f82f:	5f                   	pop    %edi
46f830:	5e                   	pop    %esi
46f831:	5d                   	pop    %ebp
46f832:	c2 0c 00             	ret    $0xc
46f835:	55                   	push   %ebp
46f836:	8b ec                	mov    %esp,%ebp
46f838:	53                   	push   %ebx
46f839:	56                   	push   %esi
46f83a:	8b f1                	mov    %ecx,%esi
46f83c:	6a 04                	push   $0x4
46f83e:	5b                   	pop    %ebx
46f83f:	8b 46 0c             	mov    0xc(%esi),%eax
46f842:	39 46 08             	cmp    %eax,0x8(%esi)
46f845:	75 4d                	jne    0x46f894
46f847:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
46f84a:	6a 08                	push   $0x8
46f84c:	58                   	pop    %eax
46f84d:	3b c8                	cmp    %eax,%ecx
46f84f:	72 02                	jb     0x46f853
46f851:	8b c1                	mov    %ecx,%eax
46f853:	33 c9                	xor    %ecx,%ecx
46f855:	89 46 0c             	mov    %eax,0xc(%esi)
46f858:	f7 e3                	mul    %ebx
46f85a:	57                   	push   %edi
46f85b:	0f 90 c1             	seto   %cl
46f85e:	f7 d9                	neg    %ecx
46f860:	0b c8                	or     %eax,%ecx
46f862:	51                   	push   %ecx
46f863:	e8 8e 17 fb ff       	call   0x420ff6
46f868:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
46f86c:	8b f8                	mov    %eax,%edi
46f86e:	59                   	pop    %ecx
46f86f:	74 1f                	je     0x46f890
46f871:	8b 46 08             	mov    0x8(%esi),%eax
46f874:	85 c0                	test   %eax,%eax
46f876:	74 18                	je     0x46f890
46f878:	c1 e0 02             	shl    $0x2,%eax
46f87b:	50                   	push   %eax
46f87c:	ff 76 04             	push   0x4(%esi)
46f87f:	57                   	push   %edi
46f880:	e8 fb 17 fb ff       	call   0x421080
46f885:	ff 76 04             	push   0x4(%esi)
46f888:	e8 df 17 fb ff       	call   0x42106c
46f88d:	83 c4 10             	add    $0x10,%esp
46f890:	89 7e 04             	mov    %edi,0x4(%esi)
46f893:	5f                   	pop    %edi
46f894:	53                   	push   %ebx
46f895:	e8 5c 17 fb ff       	call   0x420ff6
46f89a:	8b d0                	mov    %eax,%edx
46f89c:	59                   	pop    %ecx
46f89d:	85 d2                	test   %edx,%edx
46f89f:	74 09                	je     0x46f8aa
46f8a1:	8b 4d 08             	mov    0x8(%ebp),%ecx
46f8a4:	8b 09                	mov    (%ecx),%ecx
46f8a6:	89 0a                	mov    %ecx,(%edx)
46f8a8:	eb 02                	jmp    0x46f8ac
46f8aa:	33 d2                	xor    %edx,%edx
46f8ac:	8b 4e 08             	mov    0x8(%esi),%ecx
46f8af:	8b 46 04             	mov    0x4(%esi),%eax
46f8b2:	89 14 88             	mov    %edx,(%eax,%ecx,4)
46f8b5:	ff 46 08             	incl   0x8(%esi)
46f8b8:	5e                   	pop    %esi
46f8b9:	5b                   	pop    %ebx
46f8ba:	5d                   	pop    %ebp
46f8bb:	c2 04 00             	ret    $0x4
46f8be:	55                   	push   %ebp
46f8bf:	8b ec                	mov    %esp,%ebp
46f8c1:	ff 75 0c             	push   0xc(%ebp)
46f8c4:	ff 75 08             	push   0x8(%ebp)
46f8c7:	6a 09                	push   $0x9
46f8c9:	e8 dd 0f fa ff       	call   0x4108ab
46f8ce:	5d                   	pop    %ebp
46f8cf:	c2 08 00             	ret    $0x8
46f8d2:	55                   	push   %ebp
46f8d3:	8b ec                	mov    %esp,%ebp
46f8d5:	ff 75 0c             	push   0xc(%ebp)
46f8d8:	ff 75 08             	push   0x8(%ebp)
46f8db:	6a 18                	push   $0x18
46f8dd:	e8 c9 0f fa ff       	call   0x4108ab
46f8e2:	5d                   	pop    %ebp
46f8e3:	c2 08 00             	ret    $0x8
46f8e6:	55                   	push   %ebp
46f8e7:	8b ec                	mov    %esp,%ebp
46f8e9:	ff 75 0c             	push   0xc(%ebp)
46f8ec:	ff 75 08             	push   0x8(%ebp)
46f8ef:	6a 19                	push   $0x19
46f8f1:	e8 b5 0f fa ff       	call   0x4108ab
46f8f6:	5d                   	pop    %ebp
46f8f7:	c2 08 00             	ret    $0x8
46f8fa:	55                   	push   %ebp
46f8fb:	8b ec                	mov    %esp,%ebp
46f8fd:	ff 75 0c             	push   0xc(%ebp)
46f900:	ff 75 08             	push   0x8(%ebp)
46f903:	6a 00                	push   $0x0
46f905:	e8 a1 0f fa ff       	call   0x4108ab
46f90a:	5d                   	pop    %ebp
46f90b:	c2 08 00             	ret    $0x8
46f90e:	55                   	push   %ebp
46f90f:	8b ec                	mov    %esp,%ebp
46f911:	ff 75 0c             	push   0xc(%ebp)
46f914:	ff 75 08             	push   0x8(%ebp)
46f917:	6a 0c                	push   $0xc
46f919:	e8 8d 0f fa ff       	call   0x4108ab
46f91e:	5d                   	pop    %ebp
46f91f:	c2 08 00             	ret    $0x8
46f922:	55                   	push   %ebp
46f923:	8b ec                	mov    %esp,%ebp
46f925:	ff 75 0c             	push   0xc(%ebp)