46ba68:	57                   	push   %edi
46ba69:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
46ba6d:	83 7b 08 02          	cmpl   $0x2,0x8(%ebx)
46ba71:	76 13                	jbe    0x46ba86
46ba73:	8b 43 04             	mov    0x4(%ebx),%eax
46ba76:	8b 48 08             	mov    0x8(%eax),%ecx
46ba79:	e8 1e e2 f9 ff       	call   0x409c9c
46ba7e:	83 f8 01             	cmp    $0x1,%eax
46ba81:	75 03                	jne    0x46ba86
46ba83:	88 45 fc             	mov    %al,-0x4(%ebp)
46ba86:	8b 43 04             	mov    0x4(%ebx),%eax
46ba89:	8b 30                	mov    (%eax),%esi
46ba8b:	8b ce                	mov    %esi,%ecx
46ba8d:	e8 05 df f9 ff       	call   0x409997
46ba92:	8b 46 08             	mov    0x8(%esi),%eax
46ba95:	8b 08                	mov    (%eax),%ecx
46ba97:	e8 37 92 ff ff       	call   0x464cd3
46ba9c:	84 c0                	test   %al,%al
46ba9e:	8b 43 04             	mov    0x4(%ebx),%eax
46baa1:	74 43                	je     0x46bae6
46baa3:	8b 70 04             	mov    0x4(%eax),%esi
46baa6:	8b ce                	mov    %esi,%ecx
46baa8:	e8 ea de f9 ff       	call   0x409997
46baad:	8b 46 08             	mov    0x8(%esi),%eax
46bab0:	8b 38                	mov    (%eax),%edi
46bab2:	8b 43 04             	mov    0x4(%ebx),%eax
46bab5:	8b 30                	mov    (%eax),%esi
46bab7:	8b ce                	mov    %esi,%ecx
46bab9:	e8 d9 de f9 ff       	call   0x409997
46babe:	ff 75 fc             	push   -0x4(%ebp)
46bac1:	8b 46 08             	mov    0x8(%esi),%eax
46bac4:	57                   	push   %edi
46bac5:	ff 30                	push   (%eax)
46bac7:	e8 8e e9 ff ff       	call   0x46a45a
46bacc:	8b 75 0c             	mov    0xc(%ebp),%esi
46bacf:	8b f8                	mov    %eax,%edi
46bad1:	8b ce                	mov    %esi,%ecx
46bad3:	e8 48 df f9 ff       	call   0x409a20
46bad8:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
46badf:	89 3e                	mov    %edi,(%esi)
46bae1:	e9 b5 00 00 00       	jmp    0x46bb9b
46bae6:	8b 30                	mov    (%eax),%esi
46bae8:	8b ce                	mov    %esi,%ecx
46baea:	e8 a8 de f9 ff       	call   0x409997
46baef:	8b 46 08             	mov    0x8(%esi),%eax
46baf2:	8b 38                	mov    (%eax),%edi
46baf4:	8b 43 04             	mov    0x4(%ebx),%eax
46baf7:	8b 70 04             	mov    0x4(%eax),%esi
46bafa:	8b ce                	mov    %esi,%ecx
46bafc:	e8 96 de f9 ff       	call   0x409997
46bb01:	8b 46 08             	mov    0x8(%esi),%eax
46bb04:	6a 00                	push   $0x0
46bb06:	57                   	push   %edi
46bb07:	ff 30                	push   (%eax)
46bb09:	ff 15 cc f2 48 00    	call   *0x48f2cc
46bb0f:	8b 7d 0c             	mov    0xc(%ebp),%edi
46bb12:	8b f0                	mov    %eax,%esi
46bb14:	8b cf                	mov    %edi,%ecx
46bb16:	e8 05 df f9 ff       	call   0x409a20
46bb1b:	8b cf                	mov    %edi,%ecx
46bb1d:	c7 47 0c 01 00 00 00 	movl   $0x1,0xc(%edi)
46bb24:	89 37                	mov    %esi,(%edi)
46bb26:	e8 71 e1 f9 ff       	call   0x409c9c
46bb2b:	85 c0                	test   %eax,%eax
46bb2d:	75 6c                	jne    0x46bb9b
46bb2f:	ff 15 40 f3 48 00    	call   *0x48f340
46bb35:	3d b7 00 00 00       	cmp    $0xb7,%eax
46bb3a:	75 5f                	jne    0x46bb9b
46bb3c:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
46bb40:	74 59                	je     0x46bb9b
46bb42:	8b 43 04             	mov    0x4(%ebx),%eax
46bb45:	8b 70 04             	mov    0x4(%eax),%esi
46bb48:	8b ce                	mov    %esi,%ecx
46bb4a:	e8 48 de f9 ff       	call   0x409997
46bb4f:	8b 46 08             	mov    0x8(%esi),%eax
46bb52:	ff 30                	push   (%eax)
46bb54:	ff 15 14 f2 48 00    	call   *0x48f214
46bb5a:	8b 43 04             	mov    0x4(%ebx),%eax
46bb5d:	8b 30                	mov    (%eax),%esi
46bb5f:	8b ce                	mov    %esi,%ecx
46bb61:	e8 31 de f9 ff       	call   0x409997
46bb66:	8b 46 08             	mov    0x8(%esi),%eax
46bb69:	8b 38                	mov    (%eax),%edi
46bb6b:	8b 43 04             	mov    0x4(%ebx),%eax
46bb6e:	8b 70 04             	mov    0x4(%eax),%esi
46bb71:	8b ce                	mov    %esi,%ecx
46bb73:	e8 1f de f9 ff       	call   0x409997
46bb78:	8b 46 08             	mov    0x8(%esi),%eax
46bb7b:	6a 00                	push   $0x0
46bb7d:	57                   	push   %edi
46bb7e:	ff 30                	push   (%eax)
46bb80:	ff 15 cc f2 48 00    	call   *0x48f2cc
46bb86:	8b 7d 0c             	mov    0xc(%ebp),%edi
46bb89:	8b f0                	mov    %eax,%esi
46bb8b:	8b cf                	mov    %edi,%ecx
46bb8d:	e8 8e de f9 ff       	call   0x409a20
46bb92:	c7 47 0c 01 00 00 00 	movl   $0x1,0xc(%edi)
46bb99:	89 37                	mov    %esi,(%edi)
46bb9b:	5f                   	pop    %edi
46bb9c:	5e                   	pop    %esi
46bb9d:	33 c0                	xor    %eax,%eax
46bb9f:	5b                   	pop    %ebx
46bba0:	8b e5                	mov    %ebp,%esp
46bba2:	5d                   	pop    %ebp
46bba3:	c2 08 00             	ret    $0x8
46bba6:	55                   	push   %ebp
46bba7:	8b ec                	mov    %esp,%ebp
46bba9:	83 e4 f8             	and    $0xfffffff8,%esp
46bbac:	83 ec 34             	sub    $0x34,%esp
46bbaf:	8b 45 08             	mov    0x8(%ebp),%eax
46bbb2:	53                   	push   %ebx
46bbb3:	56                   	push   %esi
46bbb4:	57                   	push   %edi
46bbb5:	8b 58 08             	mov    0x8(%eax),%ebx
46bbb8:	33 ff                	xor    %edi,%edi
46bbba:	8b 40 04             	mov    0x4(%eax),%eax
46bbbd:	89 5c 24 14          	mov    %ebx,0x14(%esp)
46bbc1:	8b 70 04             	mov    0x4(%eax),%esi
46bbc4:	8b ce                	mov    %esi,%ecx
46bbc6:	e8 cc dd f9 ff       	call   0x409997
46bbcb:	8b 4e 08             	mov    0x8(%esi),%ecx
46bbce:	8d 54 24 20          	lea    0x20(%esp),%edx
46bbd2:	8b 01                	mov    (%ecx),%eax
46bbd4:	89 44 24 20          	mov    %eax,0x20(%esp)
46bbd8:	8b 41 04             	mov    0x4(%ecx),%eax
46bbdb:	89 44 24 24          	mov    %eax,0x24(%esp)
46bbdf:	8b 41 08             	mov    0x8(%ecx),%eax
46bbe2:	89 44 24 28          	mov    %eax,0x28(%esp)
46bbe6:	8b 41 0c             	mov    0xc(%ecx),%eax
46bbe9:	8b ca                	mov    %edx,%ecx
46bbeb:	89 44 24 2c          	mov    %eax,0x2c(%esp)
46bbef:	ff 00                	incl   (%eax)
46bbf1:	e8 b8 8c f9 ff       	call   0x4048ae
46bbf6:	8b 74 24 24          	mov    0x24(%esp),%esi
46bbfa:	8d 4c 24 20          	lea    0x20(%esp),%ecx
46bbfe:	6a ff                	push   $0xffffffff
46bc00:	6a ff                	push   $0xffffffff
46bc02:	6a ff                	push   $0xffffffff
46bc04:	6a 01                	push   $0x1
46bc06:	6a 02                	push   $0x2
46bc08:	68 70 a8 4b 00       	push   $0x4ba870
46bc0d:	e8 46 3a ff ff       	call   0x45f658
46bc12:	3b c6                	cmp    %esi,%eax
46bc14:	75 0e                	jne    0x46bc24
46bc16:	68 70 a8 4b 00       	push   $0x4ba870
46bc1b:	8d 4c 24 24          	lea    0x24(%esp),%ecx
46bc1f:	e8 e7 c1 f9 ff       	call   0x407e0b
46bc24:	6a 00                	push   $0x0
46bc26:	ff 15 60 f8 48 00    	call   *0x48f860
46bc2c:	8d 44 24 10          	lea    0x10(%esp),%eax
46bc30:	50                   	push   %eax
46bc31:	68 dc 2b 49 00       	push   $0x492bdc
46bc36:	6a 01                	push   $0x1
46bc38:	6a 00                	push   $0x0
46bc3a:	68 6c 2d 49 00       	push   $0x492d6c
46bc3f:	ff 15 48 f8 48 00    	call   *0x48f848
46bc45:	85 c0                	test   %eax,%eax
46bc47:	79 1e                	jns    0x46bc67
46bc49:	8b 75 0c             	mov    0xc(%ebp),%esi
46bc4c:	8b ce                	mov    %esi,%ecx
46bc4e:	e8 cd dd f9 ff       	call   0x409a20
46bc53:	21 3e                	and    %edi,(%esi)
46bc55:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
46bc5c:	ff 15 64 f8 48 00    	call   *0x48f864
46bc62:	e9 1d 02 00 00       	jmp    0x46be84
46bc67:	8b 45 08             	mov    0x8(%ebp),%eax
46bc6a:	8b 40 04             	mov    0x4(%eax),%eax
46bc6d:	8b 30                	mov    (%eax),%esi
46bc6f:	8b ce                	mov    %esi,%ecx
46bc71:	e8 21 dd f9 ff       	call   0x409997
46bc76:	8b 4c 24 10          	mov    0x10(%esp),%ecx
46bc7a:	8b 46 08             	mov    0x8(%esi),%eax
46bc7d:	8b 11                	mov    (%ecx),%edx
46bc7f:	ff 30                	push   (%eax)
46bc81:	51                   	push   %ecx
46bc82:	ff 52 50             	call   *0x50(%edx)
46bc85:	83 fb 02             	cmp    $0x2,%ebx
46bc88:	76 1f                	jbe    0x46bca9
46bc8a:	8b 45 08             	mov    0x8(%ebp),%eax
46bc8d:	8b 40 04             	mov    0x4(%eax),%eax
46bc90:	8b 70 08             	mov    0x8(%eax),%esi
46bc93:	8b ce                	mov    %esi,%ecx
46bc95:	e8 fd dc f9 ff       	call   0x409997
46bc9a:	8b 4c 24 10          	mov    0x10(%esp),%ecx
46bc9e:	8b 46 08             	mov    0x8(%esi),%eax
46bca1:	8b 11                	mov    (%ecx),%edx
46bca3:	ff 30                	push   (%eax)
46bca5:	51                   	push   %ecx
46bca6:	ff 52 24             	call   *0x24(%edx)
46bca9:	83 fb 03             	cmp    $0x3,%ebx
46bcac:	76 1f                	jbe    0x46bccd
46bcae:	8b 45 08             	mov    0x8(%ebp),%eax
46bcb1:	8b 40 04             	mov    0x4(%eax),%eax
46bcb4:	8b 70 0c             	mov    0xc(%eax),%esi
46bcb7:	8b ce                	mov    %esi,%ecx
46bcb9:	e8 d9 dc f9 ff       	call   0x409997
46bcbe:	8b 4c 24 10          	mov    0x10(%esp),%ecx
46bcc2:	8b 46 08             	mov    0x8(%esi),%eax
46bcc5:	8b 11                	mov    (%ecx),%edx
46bcc7:	ff 30                	push   (%eax)
46bcc9:	51                   	push   %ecx
46bcca:	ff 52 2c             	call   *0x2c(%edx)
46bccd:	83 fb 04             	cmp    $0x4,%ebx
46bcd0:	76 1f                	jbe    0x46bcf1
46bcd2:	8b 45 08             	mov    0x8(%ebp),%eax
46bcd5:	8b 40 04             	mov    0x4(%eax),%eax
46bcd8:	8b 70 10             	mov    0x10(%eax),%esi
46bcdb:	8b ce                	mov    %esi,%ecx
46bcdd:	e8 b5 dc f9 ff       	call   0x409997
46bce2:	8b 4c 24 10          	mov    0x10(%esp),%ecx
46bce6:	8b 46 08             	mov    0x8(%esi),%eax
46bce9:	8b 11                	mov    (%ecx),%edx
46bceb:	ff 30                	push   (%eax)
46bced:	51                   	push   %ecx
46bcee:	ff 52 1c             	call   *0x1c(%edx)
46bcf1:	83 fb 05             	cmp    $0x5,%ebx
46bcf4:	76 21                	jbe    0x46bd17
46bcf6:	8b 45 08             	mov    0x8(%ebp),%eax
46bcf9:	8b 40 04             	mov    0x4(%eax),%eax
46bcfc:	8b 70 14             	mov    0x14(%eax),%esi
46bcff:	8b ce                	mov    %esi,%ecx
46bd01:	e8 91 dc f9 ff       	call   0x409997
46bd06:	8b 4c 24 10          	mov    0x10(%esp),%ecx
46bd0a:	8b 46 08             	mov    0x8(%esi),%eax
46bd0d:	6a 00                	push   $0x0
46bd0f:	8b 11                	mov    (%ecx),%edx
46bd11:	ff 30                	push   (%eax)
46bd13:	51                   	push   %ecx
46bd14:	ff 52 44             	call   *0x44(%edx)
46bd17:	8b 55 08             	mov    0x8(%ebp),%edx
46bd1a:	83 fb 06             	cmp    $0x6,%ebx
46bd1d:	0f 86 a5 00 00 00    	jbe    0x46bdc8
46bd23:	8b 42 04             	mov    0x4(%edx),%eax
46bd26:	8b 70 18             	mov    0x18(%eax),%esi
46bd29:	8b ce                	mov    %esi,%ecx
46bd2b:	e8 69 d6 f9 ff       	call   0x409399
46bd30:	84 c0                	test   %al,%al
46bd32:	0f 84 90 00 00 00    	je     0x46bdc8
46bd38:	8b ce                	mov    %esi,%ecx
46bd3a:	e8 58 dc f9 ff       	call   0x409997
46bd3f:	8b 46 08             	mov    0x8(%esi),%eax
46bd42:	8d 4c 24 30          	lea    0x30(%esp),%ecx
46bd46:	ff 30                	push   (%eax)
46bd48:	e8 f4 c1 f9 ff       	call   0x407f41
46bd4d:	8d 44 24 0f          	lea    0xf(%esp),%eax
46bd51:	50                   	push   %eax
46bd52:	8d 44 24 10          	lea    0x10(%esp),%eax
46bd56:	50                   	push   %eax
46bd57:	8d 44 24 15          	lea    0x15(%esp),%eax
46bd5b:	50                   	push   %eax
46bd5c:	8d 44 24 1a          	lea    0x1a(%esp),%eax
46bd60:	50                   	push   %eax
46bd61:	8d 44 24 2c          	lea    0x2c(%esp),%eax
46bd65:	50                   	push   %eax
46bd66:	8d 44 24 44          	lea    0x44(%esp),%eax
46bd6a:	50                   	push   %eax
46bd6b:	e8 cb 44 fb ff       	call   0x42023b
46bd70:	8d 4c 24 30          	lea    0x30(%esp),%ecx
46bd74:	8d 58 ff             	lea    -0x1(%eax),%ebx
46bd77:	f6 db                	neg    %bl
46bd79:	1a db                	sbb    %bl,%bl
46bd7b:	e8 e4 9c f9 ff       	call   0x405a64
46bd80:	fe c3                	inc    %bl
46bd82:	74 3d                	je     0x46bdc1
46bd84:	8a 4c 24 0c          	mov    0xc(%esp),%cl
46bd88:	84 c9                	test   %cl,%cl
46bd8a:	74 03                	je     0x46bd8f
46bd8c:	6a 04                	push   $0x4
46bd8e:	5f                   	pop    %edi
46bd8f:	8a 44 24 0d          	mov    0xd(%esp),%al
46bd93:	84 c0                	test   %al,%al
46bd95:	74 03                	je     0x46bd9a
46bd97:	83 cf 02             	or     $0x2,%edi
46bd9a:	80 7c 24 0e 00       	cmpb   $0x0,0xe(%esp)
46bd9f:	74 03                	je     0x46bda4
46bda1:	83 cf 01             	or     $0x1,%edi
46bda4:	84 c0                	test   %al,%al
46bda6:	75 07                	jne    0x46bdaf
46bda8:	84 c9                	test   %cl,%cl
46bdaa:	75 03                	jne    0x46bdaf
46bdac:	83 cf 06             	or     $0x6,%edi
46bdaf:	8b 44 24 10          	mov    0x10(%esp),%eax
46bdb3:	c1 e7 08             	shl    $0x8,%edi
46bdb6:	0b 7c 24 1c          	or     0x1c(%esp),%edi
46bdba:	57                   	push   %edi
46bdbb:	8b 08                	mov    (%eax),%ecx
46bdbd:	50                   	push   %eax
46bdbe:	ff 51 34             	call   *0x34(%ecx)
46bdc1:	8b 55 08             	mov    0x8(%ebp),%edx
46bdc4:	8b 5c 24 14          	mov    0x14(%esp),%ebx
46bdc8:	83 fb 07             	cmp    $0x7,%ebx
46bdcb:	76 2f                	jbe    0x46bdfc
46bdcd:	8b 42 04             	mov    0x4(%edx),%eax
46bdd0:	8b 70 14             	mov    0x14(%eax),%esi
46bdd3:	8b ce                	mov    %esi,%ecx
46bdd5:	8b 58 1c             	mov    0x1c(%eax),%ebx
46bdd8:	e8 ba db f9 ff       	call   0x409997
46bddd:	8b 46 08             	mov    0x8(%esi),%eax
46bde0:	8b cb                	mov    %ebx,%ecx
46bde2:	8b 30                	mov    (%eax),%esi
46bde4:	8b 44 24 10          	mov    0x10(%esp),%eax
46bde8:	8b 38                	mov    (%eax),%edi
46bdea:	e8 ad de f9 ff       	call   0x409c9c
46bdef:	50                   	push   %eax
46bdf0:	56                   	push   %esi
46bdf1:	ff 74 24 18          	push   0x18(%esp)
46bdf5:	ff 57 44             	call   *0x44(%edi)
46bdf8:	8b 5c 24 14          	mov    0x14(%esp),%ebx
46bdfc:	83 fb 08             	cmp    $0x8,%ebx
46bdff:	76 1c                	jbe    0x46be1d
46be01:	8b 45 08             	mov    0x8(%ebp),%eax
46be04:	8b 40 04             	mov    0x4(%eax),%eax
46be07:	8b 48 20             	mov    0x20(%eax),%ecx
46be0a:	8b 44 24 10          	mov    0x10(%esp),%eax
46be0e:	8b 30                	mov    (%eax),%esi
46be10:	e8 87 de f9 ff       	call   0x409c9c
46be15:	50                   	push   %eax
46be16:	ff 74 24 14          	push   0x14(%esp)
46be1a:	ff 56 3c             	call   *0x3c(%esi)
46be1d:	8b 44 24 10          	mov    0x10(%esp),%eax
46be21:	8d 54 24 18          	lea    0x18(%esp),%edx
46be25:	52                   	push   %edx
46be26:	68 3c 2c 49 00       	push   $0x492c3c
46be2b:	50                   	push   %eax
46be2c:	8b 08                	mov    (%eax),%ecx
46be2e:	ff 11                	call   *(%ecx)
46be30:	85 c0                	test   %eax,%eax
46be32:	78 32                	js     0x46be66
46be34:	8b 44 24 18          	mov    0x18(%esp),%eax
46be38:	33 db                	xor    %ebx,%ebx
46be3a:	43                   	inc    %ebx
46be3b:	53                   	push   %ebx
46be3c:	ff 74 24 24          	push   0x24(%esp)
46be40:	8b 08                	mov    (%eax),%ecx
46be42:	50                   	push   %eax
46be43:	ff 51 18             	call   *0x18(%ecx)
46be46:	85 c0                	test   %eax,%eax
46be48:	79 10                	jns    0x46be5a
46be4a:	8b 75 0c             	mov    0xc(%ebp),%esi
46be4d:	8b ce                	mov    %esi,%ecx
46be4f:	e8 cc db f9 ff       	call   0x409a20
46be54:	83 26 00             	andl   $0x0,(%esi)
46be57:	89 5e 0c             	mov    %ebx,0xc(%esi)
46be5a:	8b 44 24 18          	mov    0x18(%esp),%eax
46be5e:	50                   	push   %eax
46be5f:	8b 08                	mov    (%eax),%ecx
46be61:	ff 51 08             	call   *0x8(%ecx)
46be64:	eb 14                	jmp    0x46be7a
46be66:	8b 75 0c             	mov    0xc(%ebp),%esi
46be69:	8b ce                	mov    %esi,%ecx