46a8b5:	e8 ae 98 ff ff       	call   0x464168
46a8ba:	83 7c 24 1c 01       	cmpl   $0x1,0x1c(%esp)
46a8bf:	76 2d                	jbe    0x46a8ee
46a8c1:	8b 47 04             	mov    0x4(%edi),%eax
46a8c4:	8b 48 04             	mov    0x4(%eax),%ecx
46a8c7:	e8 d0 f3 f9 ff       	call   0x409c9c
46a8cc:	a8 01                	test   $0x1,%al
46a8ce:	74 05                	je     0x46a8d5
46a8d0:	c6 44 24 10 01       	movb   $0x1,0x10(%esp)
46a8d5:	8b 47 04             	mov    0x4(%edi),%eax
46a8d8:	8b 48 04             	mov    0x4(%eax),%ecx
46a8db:	e8 bc f3 f9 ff       	call   0x409c9c
46a8e0:	24 02                	and    $0x2,%al
46a8e2:	f6 d8                	neg    %al
46a8e4:	1a c0                	sbb    %al,%al
46a8e6:	f6 d0                	not    %al
46a8e8:	24 01                	and    $0x1,%al
46a8ea:	88 44 24 14          	mov    %al,0x14(%esp)
46a8ee:	ff 74 24 14          	push   0x14(%esp)
46a8f2:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
46a8f6:	8d 44 24 34          	lea    0x34(%esp),%eax
46a8fa:	ff 74 24 14          	push   0x14(%esp)
46a8fe:	50                   	push   %eax
46a8ff:	8d 44 24 34          	lea    0x34(%esp),%eax
46a903:	50                   	push   %eax
46a904:	8d 44 24 30          	lea    0x30(%esp),%eax
46a908:	50                   	push   %eax
46a909:	ff 74 24 5c          	push   0x5c(%esp)
46a90d:	e8 4c 4d 00 00       	call   0x46f65e
46a912:	84 c0                	test   %al,%al
46a914:	75 08                	jne    0x46a91e
46a916:	83 cb ff             	or     $0xffffffff,%ebx
46a919:	e9 0a 01 00 00       	jmp    0x46aa28
46a91e:	38 5c 24 10          	cmp    %bl,0x10(%esp)
46a922:	0f 84 bb 00 00 00    	je     0x46a9e3
46a928:	8b 4d 0c             	mov    0xc(%ebp),%ecx
46a92b:	e8 fe ea f9 ff       	call   0x40942e
46a930:	6a 03                	push   $0x3
46a932:	8b f8                	mov    %eax,%edi
46a934:	6a 01                	push   $0x1
46a936:	57                   	push   %edi
46a937:	e8 74 e8 f9 ff       	call   0x4091b0
46a93c:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
46a940:	8d 44 24 44          	lea    0x44(%esp),%eax
46a944:	83 c4 0c             	add    $0xc,%esp
46a947:	89 4c 24 38          	mov    %ecx,0x38(%esp)
46a94b:	8b 4c 24 24          	mov    0x24(%esp),%ecx
46a94f:	89 4c 24 3c          	mov    %ecx,0x3c(%esp)
46a953:	89 5c 24 40          	mov    %ebx,0x40(%esp)
46a957:	53                   	push   %ebx
46a958:	6a 01                	push   $0x1
46a95a:	50                   	push   %eax
46a95b:	57                   	push   %edi
46a95c:	c7 44 24 54 02 00 00 	movl   $0x2,0x54(%esp)
46a963:	00
46a964:	e8 d7 e6 f9 ff       	call   0x409040
46a969:	83 c4 10             	add    $0x10,%esp
46a96c:	8d 4c 24 38          	lea    0x38(%esp),%ecx
46a970:	e8 ab f0 f9 ff       	call   0x409a20
46a975:	8b 44 24 28          	mov    0x28(%esp),%eax
46a979:	89 44 24 38          	mov    %eax,0x38(%esp)
46a97d:	8b 44 24 2c          	mov    0x2c(%esp),%eax
46a981:	6a 01                	push   $0x1
46a983:	89 44 24 40          	mov    %eax,0x40(%esp)
46a987:	8d 44 24 3c          	lea    0x3c(%esp),%eax
46a98b:	6a 01                	push   $0x1
46a98d:	50                   	push   %eax
46a98e:	57                   	push   %edi
46a98f:	89 5c 24 50          	mov    %ebx,0x50(%esp)
46a993:	c7 44 24 54 02 00 00 	movl   $0x2,0x54(%esp)
46a99a:	00
46a99b:	e8 a0 e6 f9 ff       	call   0x409040
46a9a0:	83 c4 10             	add    $0x10,%esp
46a9a3:	8d 4c 24 38          	lea    0x38(%esp),%ecx
46a9a7:	e8 74 f0 f9 ff       	call   0x409a20
46a9ac:	8b 44 24 30          	mov    0x30(%esp),%eax
46a9b0:	89 44 24 38          	mov    %eax,0x38(%esp)
46a9b4:	8b 44 24 34          	mov    0x34(%esp),%eax
46a9b8:	6a 02                	push   $0x2
46a9ba:	89 44 24 40          	mov    %eax,0x40(%esp)
46a9be:	58                   	pop    %eax
46a9bf:	50                   	push   %eax
46a9c0:	89 44 24 48          	mov    %eax,0x48(%esp)
46a9c4:	8d 44 24 3c          	lea    0x3c(%esp),%eax
46a9c8:	6a 01                	push   $0x1
46a9ca:	50                   	push   %eax
46a9cb:	57                   	push   %edi
46a9cc:	89 5c 24 50          	mov    %ebx,0x50(%esp)
46a9d0:	e8 6b e6 f9 ff       	call   0x409040
46a9d5:	83 c4 10             	add    $0x10,%esp
46a9d8:	8d 4c 24 38          	lea    0x38(%esp),%ecx
46a9dc:	e8 3f f0 f9 ff       	call   0x409a20
46a9e1:	eb 45                	jmp    0x46aa28
46a9e3:	8b 7d 0c             	mov    0xc(%ebp),%edi
46a9e6:	8b cf                	mov    %edi,%ecx
46a9e8:	e8 33 f0 f9 ff       	call   0x409a20
46a9ed:	8b 44 24 20          	mov    0x20(%esp),%eax
46a9f1:	89 07                	mov    %eax,(%edi)
46a9f3:	8b 44 24 24          	mov    0x24(%esp),%eax
46a9f7:	c7 47 0c 02 00 00 00 	movl   $0x2,0xc(%edi)
46a9fe:	89 47 04             	mov    %eax,0x4(%edi)
46aa01:	eb 25                	jmp    0x46aa28
46aa03:	8b 7d 0c             	mov    0xc(%ebp),%edi
46aa06:	8b cf                	mov    %edi,%ecx
46aa08:	e8 13 f0 f9 ff       	call   0x409a20
46aa0d:	8b 54 24 18          	mov    0x18(%esp),%edx
46aa11:	33 c0                	xor    %eax,%eax
46aa13:	83 0f ff             	orl    $0xffffffff,(%edi)
46aa16:	40                   	inc    %eax
46aa17:	53                   	push   %ebx
46aa18:	89 47 0c             	mov    %eax,0xc(%edi)
46aa1b:	50                   	push   %eax
46aa1c:	8b 02                	mov    (%edx),%eax
46aa1e:	8b 48 04             	mov    0x4(%eax),%ecx
46aa21:	03 ca                	add    %edx,%ecx
46aa23:	e8 7b c0 fe ff       	call   0x456aa3
46aa28:	56                   	push   %esi
46aa29:	ff 15 a4 f1 48 00    	call   *0x48f1a4
46aa2f:	8d 4c 24 48          	lea    0x48(%esp),%ecx
46aa33:	e8 2c b0 f9 ff       	call   0x405a64
46aa38:	5f                   	pop    %edi
46aa39:	5e                   	pop    %esi
46aa3a:	8b c3                	mov    %ebx,%eax
46aa3c:	5b                   	pop    %ebx
46aa3d:	8b e5                	mov    %ebp,%esp
46aa3f:	5d                   	pop    %ebp
46aa40:	c2 08 00             	ret    $0x8
46aa43:	55                   	push   %ebp
46aa44:	8b ec                	mov    %esp,%ebp
46aa46:	51                   	push   %ecx
46aa47:	53                   	push   %ebx
46aa48:	8b 5d 08             	mov    0x8(%ebp),%ebx
46aa4b:	56                   	push   %esi
46aa4c:	57                   	push   %edi
46aa4d:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
46aa51:	83 7b 08 03          	cmpl   $0x3,0x8(%ebx)
46aa55:	72 13                	jb     0x46aa6a
46aa57:	8b 43 04             	mov    0x4(%ebx),%eax
46aa5a:	8b 48 08             	mov    0x8(%eax),%ecx
46aa5d:	e8 3a f2 f9 ff       	call   0x409c9c
46aa62:	85 c0                	test   %eax,%eax
46aa64:	74 04                	je     0x46aa6a
46aa66:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
46aa6a:	8b 43 04             	mov    0x4(%ebx),%eax
46aa6d:	8b 70 04             	mov    0x4(%eax),%esi
46aa70:	8b ce                	mov    %esi,%ecx
46aa72:	e8 20 ef f9 ff       	call   0x409997
46aa77:	8b 46 08             	mov    0x8(%esi),%eax
46aa7a:	8b 38                	mov    (%eax),%edi
46aa7c:	8b 43 04             	mov    0x4(%ebx),%eax
46aa7f:	8b 30                	mov    (%eax),%esi
46aa81:	8b ce                	mov    %esi,%ecx
46aa83:	e8 0f ef f9 ff       	call   0x409997
46aa88:	8b 46 08             	mov    0x8(%esi),%eax
46aa8b:	8b d7                	mov    %edi,%edx
46aa8d:	ff 75 fc             	push   -0x4(%ebp)
46aa90:	8b 08                	mov    (%eax),%ecx
46aa92:	e8 cc a4 ff ff       	call   0x464f63
46aa97:	59                   	pop    %ecx
46aa98:	84 c0                	test   %al,%al
46aa9a:	75 14                	jne    0x46aab0
46aa9c:	8b 75 0c             	mov    0xc(%ebp),%esi
46aa9f:	8b ce                	mov    %esi,%ecx
46aaa1:	e8 7a ef f9 ff       	call   0x409a20
46aaa6:	83 26 00             	andl   $0x0,(%esi)
46aaa9:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
46aab0:	5f                   	pop    %edi
46aab1:	5e                   	pop    %esi
46aab2:	33 c0                	xor    %eax,%eax
46aab4:	5b                   	pop    %ebx
46aab5:	8b e5                	mov    %ebp,%esp
46aab7:	5d                   	pop    %ebp
46aab8:	c2 08 00             	ret    $0x8
46aabb:	55                   	push   %ebp
46aabc:	8b ec                	mov    %esp,%ebp
46aabe:	53                   	push   %ebx
46aabf:	56                   	push   %esi
46aac0:	8b 75 08             	mov    0x8(%ebp),%esi
46aac3:	32 db                	xor    %bl,%bl
46aac5:	83 7e 08 02          	cmpl   $0x2,0x8(%esi)
46aac9:	72 11                	jb     0x46aadc
46aacb:	8b 46 04             	mov    0x4(%esi),%eax
46aace:	8b 48 04             	mov    0x4(%eax),%ecx
46aad1:	e8 c6 f1 f9 ff       	call   0x409c9c
46aad6:	85 c0                	test   %eax,%eax
46aad8:	74 02                	je     0x46aadc
46aada:	fe c3                	inc    %bl
46aadc:	8b 46 04             	mov    0x4(%esi),%eax
46aadf:	8b 30                	mov    (%eax),%esi
46aae1:	8b ce                	mov    %esi,%ecx
46aae3:	e8 af ee f9 ff       	call   0x409997
46aae8:	8b 4e 08             	mov    0x8(%esi),%ecx
46aaeb:	8a d3                	mov    %bl,%dl
46aaed:	e8 d3 a8 ff ff       	call   0x4653c5
46aaf2:	84 c0                	test   %al,%al
46aaf4:	75 14                	jne    0x46ab0a
46aaf6:	8b 75 0c             	mov    0xc(%ebp),%esi
46aaf9:	8b ce                	mov    %esi,%ecx
46aafb:	e8 20 ef f9 ff       	call   0x409a20
46ab00:	83 26 00             	andl   $0x0,(%esi)
46ab03:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
46ab0a:	5e                   	pop    %esi
46ab0b:	33 c0                	xor    %eax,%eax
46ab0d:	5b                   	pop    %ebx
46ab0e:	5d                   	pop    %ebp
46ab0f:	c2 08 00             	ret    $0x8
46ab12:	55                   	push   %ebp
46ab13:	8b ec                	mov    %esp,%ebp
46ab15:	83 e4 f8             	and    $0xfffffff8,%esp
46ab18:	81 ec 14 01 00 00    	sub    $0x114,%esp
46ab1e:	53                   	push   %ebx
46ab1f:	56                   	push   %esi
46ab20:	57                   	push   %edi
46ab21:	8b d9                	mov    %ecx,%ebx
46ab23:	33 ff                	xor    %edi,%edi
46ab25:	8b 4d 0c             	mov    0xc(%ebp),%ecx
46ab28:	68 10 f9 48 00       	push   $0x48f910
46ab2d:	89 5c 24 38          	mov    %ebx,0x38(%esp)
46ab31:	e8 c2 f0 f9 ff       	call   0x409bf8
46ab36:	8b 45 08             	mov    0x8(%ebp),%eax
46ab39:	8b 40 04             	mov    0x4(%eax),%eax
46ab3c:	8b 30                	mov    (%eax),%esi
46ab3e:	8b ce                	mov    %esi,%ecx
46ab40:	e8 52 ee f9 ff       	call   0x409997
46ab45:	8b 4e 08             	mov    0x8(%esi),%ecx
46ab48:	8b 01                	mov    (%ecx),%eax
46ab4a:	89 44 24 10          	mov    %eax,0x10(%esp)
46ab4e:	8b 41 04             	mov    0x4(%ecx),%eax
46ab51:	89 44 24 14          	mov    %eax,0x14(%esp)
46ab55:	8b 41 08             	mov    0x8(%ecx),%eax
46ab58:	89 44 24 18          	mov    %eax,0x18(%esp)
46ab5c:	8b 41 0c             	mov    0xc(%ecx),%eax
46ab5f:	8d 4c 24 10          	lea    0x10(%esp),%ecx
46ab63:	89 44 24 1c          	mov    %eax,0x1c(%esp)
46ab67:	ff 00                	incl   (%eax)
46ab69:	e8 41 d4 f9 ff       	call   0x407faf
46ab6e:	ff 74 24 14          	push   0x14(%esp)
46ab72:	ff 74 24 14          	push   0x14(%esp)
46ab76:	ff 15 fc f6 48 00    	call   *0x48f6fc
46ab7c:	ba b0 a5 4b 00       	mov    $0x4ba5b0,%edx
46ab81:	8d 4c 24 10          	lea    0x10(%esp),%ecx
46ab85:	e8 9d 61 fb ff       	call   0x420d27
46ab8a:	84 c0                	test   %al,%al
46ab8c:	74 04                	je     0x46ab92
46ab8e:	6a 63                	push   $0x63
46ab90:	eb 6c                	jmp    0x46abfe
46ab92:	ba b8 a5 4b 00       	mov    $0x4ba5b8,%edx
46ab97:	8d 4c 24 10          	lea    0x10(%esp),%ecx
46ab9b:	e8 87 61 fb ff       	call   0x420d27
46aba0:	84 c0                	test   %al,%al
46aba2:	74 04                	je     0x46aba8
46aba4:	6a 05                	push   $0x5
46aba6:	eb 56                	jmp    0x46abfe
46aba8:	ba d0 a5 4b 00       	mov    $0x4ba5d0,%edx
46abad:	8d 4c 24 10          	lea    0x10(%esp),%ecx
46abb1:	e8 71 61 fb ff       	call   0x420d27
46abb6:	84 c0                	test   %al,%al
46abb8:	74 04                	je     0x46abbe
46abba:	6a 02                	push   $0x2
46abbc:	eb 40                	jmp    0x46abfe
46abbe:	ba e4 a5 4b 00       	mov    $0x4ba5e4,%edx
46abc3:	8d 4c 24 10          	lea    0x10(%esp),%ecx
46abc7:	e8 5b 61 fb ff       	call   0x420d27
46abcc:	84 c0                	test   %al,%al
46abce:	74 04                	je     0x46abd4
46abd0:	6a 03                	push   $0x3
46abd2:	eb 2a                	jmp    0x46abfe
46abd4:	ba f0 a5 4b 00       	mov    $0x4ba5f0,%edx
46abd9:	8d 4c 24 10          	lea    0x10(%esp),%ecx
46abdd:	e8 45 61 fb ff       	call   0x420d27
46abe2:	84 c0                	test   %al,%al
46abe4:	74 04                	je     0x46abea
46abe6:	6a 04                	push   $0x4
46abe8:	eb 14                	jmp    0x46abfe
46abea:	ba 00 a6 4b 00       	mov    $0x4ba600,%edx
46abef:	8d 4c 24 10          	lea    0x10(%esp),%ecx
46abf3:	e8 2f 61 fb ff       	call   0x420d27
46abf8:	84 c0                	test   %al,%al
46abfa:	74 05                	je     0x46ac01
46abfc:	6a 06                	push   $0x6
46abfe:	5e                   	pop    %esi
46abff:	eb 18                	jmp    0x46ac19
46ac01:	ba 10 a6 4b 00       	mov    $0x4ba610,%edx
46ac06:	8d 4c 24 10          	lea    0x10(%esp),%ecx
46ac0a:	e8 18 61 fb ff       	call   0x420d27
46ac0f:	84 c0                	test   %al,%al
46ac11:	0f 84 0a 01 00 00    	je     0x46ad21
46ac17:	33 f6                	xor    %esi,%esi
46ac19:	6a 61                	push   $0x61
46ac1b:	8d 44 24 4c          	lea    0x4c(%esp),%eax
46ac1f:	5b                   	pop    %ebx
46ac20:	89 44 24 0c          	mov    %eax,0xc(%esp)
46ac24:	53                   	push   %ebx
46ac25:	8d 4c 24 14          	lea    0x14(%esp),%ecx
46ac29:	e8 41 b1 ff ff       	call   0x465d6f
46ac2e:	68 20 a6 4b 00       	push   $0x4ba620
46ac33:	8d 4c 24 14          	lea    0x14(%esp),%ecx
46ac37:	e8 cf d1 f9 ff       	call   0x407e0b
46ac3c:	ff 74 24 10          	push   0x10(%esp)
46ac40:	ff 15 b8 f2 48 00    	call   *0x48f2b8
46ac46:	3b c6                	cmp    %esi,%eax
46ac48:	74 0a                	je     0x46ac54
46ac4a:	83 fe 63             	cmp    $0x63,%esi
46ac4d:	75 28                	jne    0x46ac77
46ac4f:	83 f8 01             	cmp    $0x1,%eax
46ac52:	74 23                	je     0x46ac77
46ac54:	68 c0 fa 48 00       	push   $0x48fac0
46ac59:	8d 4c 24 14          	lea    0x14(%esp),%ecx
46ac5d:	e8 24 cc f9 ff       	call   0x407886
46ac62:	ff 74 24 10          	push   0x10(%esp)
46ac66:	ff 74 24 10          	push   0x10(%esp)
46ac6a:	e8 8d 83 fb ff       	call   0x422ffc
46ac6f:	59                   	pop    %ecx
46ac70:	47                   	inc    %edi
46ac71:	83 44 24 10 08       	addl   $0x8,0x10(%esp)
46ac76:	59                   	pop    %ecx
46ac77:	43                   	inc    %ebx
46ac78:	83 fb 7a             	cmp    $0x7a,%ebx
46ac7b:	7e a7                	jle    0x46ac24
46ac7d:	85 ff                	test   %edi,%edi
46ac7f:	0f 8e 8f 00 00 00    	jle    0x46ad14
46ac85:	8b 4d 0c             	mov    0xc(%ebp),%ecx
46ac88:	e8 a1 e7 f9 ff       	call   0x40942e
46ac8d:	8d 4f 01             	lea    0x1(%edi),%ecx
46ac90:	33 f6                	xor    %esi,%esi
46ac92:	51                   	push   %ecx
46ac93:	8b d8                	mov    %eax,%ebx
46ac95:	46                   	inc    %esi
46ac96:	56                   	push   %esi
46ac97:	53                   	push   %ebx
46ac98:	89 5c 24 18          	mov    %ebx,0x18(%esp)
46ac9c:	e8 0f e5 f9 ff       	call   0x4091b0
46aca1:	83 64 24 34 00       	andl   $0x0,0x34(%esp)
46aca6:	8d 44 24 2c          	lea    0x2c(%esp),%eax
46acaa:	6a 00                	push   $0x0
46acac:	56                   	push   %esi
46acad:	50                   	push   %eax
46acae:	53                   	push   %ebx
46acaf:	89 7c 24 3c          	mov    %edi,0x3c(%esp)
46acb3:	89 74 24 48          	mov    %esi,0x48(%esp)
46acb7:	e8 84 e3 f9 ff       	call   0x409040
46acbc:	83 c4 1c             	add    $0x1c,%esp
46acbf:	8d 4c 24 20          	lea    0x20(%esp),%ecx
46acc3:	e8 58 ed f9 ff       	call   0x409a20
46acc8:	3b fe                	cmp    %esi,%edi
46acca:	7c 65                	jl     0x46ad31
46accc:	8d 5c 24 48          	lea    0x48(%esp),%ebx
46acd0:	53                   	push   %ebx
46acd1:	8d 4c 24 3c          	lea    0x3c(%esp),%ecx
46acd5:	e8 67 d2 f9 ff       	call   0x407f41