462a2b:	c1 e0 02             	shl    $0x2,%eax
462a2e:	50                   	push   %eax
462a2f:	ff 76 04             	push   0x4(%esi)
462a32:	57                   	push   %edi
462a33:	e8 48 c4 fb ff       	call   0x41ee80
462a38:	ff 76 04             	push   0x4(%esi)
462a3b:	e8 1e cb fb ff       	call   0x41f55e
462a40:	83 c4 10             	add    $0x10,%esp
462a43:	89 7e 04             	mov    %edi,0x4(%esi)
462a46:	5f                   	pop    %edi
462a47:	53                   	push   %ebx
462a48:	e8 9d ca fb ff       	call   0x41f4ea
462a4d:	8b d0                	mov    %eax,%edx
462a4f:	59                   	pop    %ecx
462a50:	85 d2                	test   %edx,%edx
462a52:	74 09                	je     0x462a5d
462a54:	8b 4d 08             	mov    0x8(%ebp),%ecx
462a57:	8b 09                	mov    (%ecx),%ecx
462a59:	89 0a                	mov    %ecx,(%edx)
462a5b:	eb 02                	jmp    0x462a5f
462a5d:	33 d2                	xor    %edx,%edx
462a5f:	8b 4e 08             	mov    0x8(%esi),%ecx
462a62:	8b 46 04             	mov    0x4(%esi),%eax
462a65:	89 14 88             	mov    %edx,(%eax,%ecx,4)
462a68:	ff 46 08             	incl   0x8(%esi)
462a6b:	5e                   	pop    %esi
462a6c:	5b                   	pop    %ebx
462a6d:	5d                   	pop    %ebp
462a6e:	c2 04 00             	ret    $0x4
462a71:	55                   	push   %ebp
462a72:	8b ec                	mov    %esp,%ebp
462a74:	56                   	push   %esi
462a75:	8b f1                	mov    %ecx,%esi
462a77:	8b 46 0c             	mov    0xc(%esi),%eax
462a7a:	39 46 08             	cmp    %eax,0x8(%esi)
462a7d:	75 50                	jne    0x462acf
462a7f:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
462a82:	6a 08                	push   $0x8
462a84:	58                   	pop    %eax
462a85:	3b c8                	cmp    %eax,%ecx
462a87:	72 02                	jb     0x462a8b
462a89:	8b c1                	mov    %ecx,%eax
462a8b:	57                   	push   %edi
462a8c:	33 c9                	xor    %ecx,%ecx
462a8e:	6a 04                	push   $0x4
462a90:	5a                   	pop    %edx
462a91:	89 46 0c             	mov    %eax,0xc(%esi)
462a94:	f7 e2                	mul    %edx
462a96:	0f 90 c1             	seto   %cl
462a99:	f7 d9                	neg    %ecx
462a9b:	0b c8                	or     %eax,%ecx
462a9d:	51                   	push   %ecx
462a9e:	e8 47 ca fb ff       	call   0x41f4ea
462aa3:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
462aa7:	59                   	pop    %ecx
462aa8:	8b f8                	mov    %eax,%edi
462aaa:	74 1f                	je     0x462acb
462aac:	8b 46 08             	mov    0x8(%esi),%eax
462aaf:	85 c0                	test   %eax,%eax
462ab1:	74 18                	je     0x462acb
462ab3:	c1 e0 02             	shl    $0x2,%eax
462ab6:	50                   	push   %eax
462ab7:	ff 76 04             	push   0x4(%esi)
462aba:	57                   	push   %edi
462abb:	e8 c0 c3 fb ff       	call   0x41ee80
462ac0:	ff 76 04             	push   0x4(%esi)
462ac3:	e8 96 ca fb ff       	call   0x41f55e
462ac8:	83 c4 10             	add    $0x10,%esp
462acb:	89 7e 04             	mov    %edi,0x4(%esi)
462ace:	5f                   	pop    %edi
462acf:	6a 14                	push   $0x14
462ad1:	e8 14 ca fb ff       	call   0x41f4ea
462ad6:	59                   	pop    %ecx
462ad7:	85 c0                	test   %eax,%eax
462ad9:	74 0e                	je     0x462ae9
462adb:	ff 75 08             	push   0x8(%ebp)
462ade:	8b c8                	mov    %eax,%ecx
462ae0:	e8 d9 cc ff ff       	call   0x45f7be
462ae5:	8b d0                	mov    %eax,%edx
462ae7:	eb 02                	jmp    0x462aeb
462ae9:	33 d2                	xor    %edx,%edx
462aeb:	8b 4e 08             	mov    0x8(%esi),%ecx
462aee:	8b 46 04             	mov    0x4(%esi),%eax
462af1:	89 14 88             	mov    %edx,(%eax,%ecx,4)
462af4:	ff 46 08             	incl   0x8(%esi)
462af7:	5e                   	pop    %esi
462af8:	5d                   	pop    %ebp
462af9:	c2 04 00             	ret    $0x4
462afc:	56                   	push   %esi
462afd:	8b f1                	mov    %ecx,%esi
462aff:	e8 c5 10 00 00       	call   0x463bc9
462b04:	84 c0                	test   %al,%al
462b06:	74 05                	je     0x462b0d
462b08:	8b 46 08             	mov    0x8(%esi),%eax
462b0b:	5e                   	pop    %esi
462b0c:	c3                   	ret
462b0d:	b8 14 2b 46 00       	mov    $0x462b14,%eax
462b12:	5e                   	pop    %esi
462b13:	c3                   	ret
462b14:	33 c0                	xor    %eax,%eax
462b16:	c2 10 00             	ret    $0x10
462b19:	55                   	push   %ebp
462b1a:	8b ec                	mov    %esp,%ebp
462b1c:	83 e4 f8             	and    $0xfffffff8,%esp
462b1f:	83 ec 5c             	sub    $0x5c,%esp
462b22:	83 24 24 00          	andl   $0x0,(%esp)
462b26:	53                   	push   %ebx
462b27:	56                   	push   %esi
462b28:	8b 75 08             	mov    0x8(%ebp),%esi
462b2b:	57                   	push   %edi
462b2c:	8b 5e 08             	mov    0x8(%esi),%ebx
462b2f:	8b f9                	mov    %ecx,%edi
462b31:	8d 4c 24 48          	lea    0x48(%esp),%ecx
462b35:	e8 bd ac fa ff       	call   0x40d7f7
462b3a:	8d 4c 24 28          	lea    0x28(%esp),%ecx
462b3e:	e8 b4 ac fa ff       	call   0x40d7f7
462b43:	8d 4c 24 38          	lea    0x38(%esp),%ecx
462b47:	e8 ab ac fa ff       	call   0x40d7f7
462b4c:	8d 4c 24 58          	lea    0x58(%esp),%ecx
462b50:	e8 a2 ac fa ff       	call   0x40d7f7
462b55:	8b 46 04             	mov    0x4(%esi),%eax
462b58:	8b 30                	mov    (%eax),%esi
462b5a:	8b ce                	mov    %esi,%ecx
462b5c:	e8 0b 68 fa ff       	call   0x40936c
462b61:	8b 46 08             	mov    0x8(%esi),%eax
462b64:	83 ec 10             	sub    $0x10,%esp
462b67:	8b cc                	mov    %esp,%ecx
462b69:	ff 30                	push   (%eax)
462b6b:	e8 a9 a2 fa ff       	call   0x40ce19
462b70:	8d 44 24 48          	lea    0x48(%esp),%eax
462b74:	50                   	push   %eax
462b75:	8d 44 24 3c          	lea    0x3c(%esp),%eax
462b79:	50                   	push   %eax
462b7a:	8d 44 24 60          	lea    0x60(%esp),%eax
462b7e:	50                   	push   %eax
462b7f:	e8 06 13 00 00       	call   0x463e8a
462b84:	8b 44 24 28          	mov    0x28(%esp),%eax
462b88:	83 ec 10             	sub    $0x10,%esp
462b8b:	8b cc                	mov    %esp,%ecx
462b8d:	89 01                	mov    %eax,(%ecx)
462b8f:	8b 44 24 3c          	mov    0x3c(%esp),%eax
462b93:	89 41 04             	mov    %eax,0x4(%ecx)
462b96:	8b 44 24 40          	mov    0x40(%esp),%eax
462b9a:	89 41 08             	mov    %eax,0x8(%ecx)
462b9d:	8b 44 24 44          	mov    0x44(%esp),%eax
462ba1:	89 41 0c             	mov    %eax,0xc(%ecx)
462ba4:	ff 00                	incl   (%eax)
462ba6:	8d 44 24 24          	lea    0x24(%esp),%eax
462baa:	50                   	push   %eax
462bab:	8d 44 24 2c          	lea    0x2c(%esp),%eax
462baf:	50                   	push   %eax
462bb0:	e8 51 10 00 00       	call   0x463c06
462bb5:	84 c0                	test   %al,%al
462bb7:	75 29                	jne    0x462be2
462bb9:	8b 07                	mov    (%edi),%eax
462bbb:	6a 00                	push   $0x0
462bbd:	8b 48 04             	mov    0x4(%eax),%ecx
462bc0:	6a 02                	push   $0x2
462bc2:	03 cf                	add    %edi,%ecx
462bc4:	e8 83 a3 fe ff       	call   0x44cf4c
462bc9:	8b 75 0c             	mov    0xc(%ebp),%esi
462bcc:	8b ce                	mov    %esi,%ecx
462bce:	e8 4d 00 fb ff       	call   0x412c20
462bd3:	83 26 00             	andl   $0x0,(%esi)
462bd6:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
462bdd:	e9 18 02 00 00       	jmp    0x462dfa
462be2:	83 7c 24 4c 00       	cmpl   $0x0,0x4c(%esp)
462be7:	74 54                	je     0x462c3d
462be9:	8d 44 24 0c          	lea    0xc(%esp),%eax
462bed:	50                   	push   %eax
462bee:	ff 74 24 1c          	push   0x1c(%esp)
462bf2:	ff 74 24 50          	push   0x50(%esp)
462bf6:	ff 15 2c d0 48 00    	call   *0x48d02c
462bfc:	85 c0                	test   %eax,%eax
462bfe:	74 37                	je     0x462c37
462c00:	33 db                	xor    %ebx,%ebx
462c02:	53                   	push   %ebx
462c03:	50                   	push   %eax
462c04:	8b 07                	mov    (%edi),%eax
462c06:	8b 48 04             	mov    0x4(%eax),%ecx
462c09:	03 cf                	add    %edi,%ecx
462c0b:	e8 11 07 fa ff       	call   0x403321
462c10:	8b 07                	mov    (%edi),%eax
462c12:	53                   	push   %ebx
462c13:	8b 48 04             	mov    0x4(%eax),%ecx
462c16:	6a 03                	push   $0x3
462c18:	03 cf                	add    %edi,%ecx
462c1a:	e8 2d a3 fe ff       	call   0x44cf4c
462c1f:	8b 75 0c             	mov    0xc(%ebp),%esi
462c22:	8b ce                	mov    %esi,%ecx
462c24:	e8 f7 ff fa ff       	call   0x412c20
462c29:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
462c30:	89 1e                	mov    %ebx,(%esi)
462c32:	e9 c3 01 00 00       	jmp    0x462dfa
462c37:	8b 74 24 0c          	mov    0xc(%esp),%esi
462c3b:	eb 04                	jmp    0x462c41
462c3d:	8b 74 24 18          	mov    0x18(%esp),%esi
462c41:	8d 44 24 10          	lea    0x10(%esp),%eax
462c45:	50                   	push   %eax
462c46:	8b 44 24 18          	mov    0x18(%esp),%eax
462c4a:	0d 1f 00 02 00       	or     $0x2001f,%eax
462c4f:	50                   	push   %eax
462c50:	6a 00                	push   $0x0
462c52:	ff 74 24 44          	push   0x44(%esp)
462c56:	56                   	push   %esi
462c57:	ff 15 20 d0 48 00    	call   *0x48d020
462c5d:	85 c0                	test   %eax,%eax
462c5f:	74 36                	je     0x462c97
462c61:	6a 00                	push   $0x0
462c63:	50                   	push   %eax
462c64:	8b 07                	mov    (%edi),%eax
462c66:	8b 48 04             	mov    0x4(%eax),%ecx
462c69:	03 cf                	add    %edi,%ecx
462c6b:	e8 b1 06 fa ff       	call   0x403321
462c70:	8b 07                	mov    (%edi),%eax
462c72:	33 db                	xor    %ebx,%ebx
462c74:	8b 48 04             	mov    0x4(%eax),%ecx
462c77:	6a 00                	push   $0x0
462c79:	43                   	inc    %ebx
462c7a:	53                   	push   %ebx
462c7b:	03 cf                	add    %edi,%ecx
462c7d:	e8 ca a2 fe ff       	call   0x44cf4c
462c82:	8b 75 0c             	mov    0xc(%ebp),%esi
462c85:	8b ce                	mov    %esi,%ecx
462c87:	e8 94 ff fa ff       	call   0x412c20
462c8c:	83 26 00             	andl   $0x0,(%esi)
462c8f:	89 5e 0c             	mov    %ebx,0xc(%esi)
462c92:	e9 52 01 00 00       	jmp    0x462de9
462c97:	4b                   	dec    %ebx
462c98:	0f 84 81 00 00 00    	je     0x462d1f
462c9e:	4b                   	dec    %ebx
462c9f:	0f 85 44 01 00 00    	jne    0x462de9
462ca5:	8b 45 08             	mov    0x8(%ebp),%eax
462ca8:	8b 40 04             	mov    0x4(%eax),%eax
462cab:	8b 70 04             	mov    0x4(%eax),%esi
462cae:	8b ce                	mov    %esi,%ecx
462cb0:	e8 b7 66 fa ff       	call   0x40936c
462cb5:	8b 46 08             	mov    0x8(%esi),%eax
462cb8:	ff 30                	push   (%eax)
462cba:	ff 74 24 14          	push   0x14(%esp)
462cbe:	ff 15 08 d0 48 00    	call   *0x48d008
462cc4:	85 c0                	test   %eax,%eax
462cc6:	74 48                	je     0x462d10
462cc8:	6a 02                	push   $0x2
462cca:	5b                   	pop    %ebx
462ccb:	3b c3                	cmp    %ebx,%eax
462ccd:	75 0f                	jne    0x462cde
462ccf:	8b 75 0c             	mov    0xc(%ebp),%esi
462cd2:	8b ce                	mov    %esi,%ecx
462cd4:	e8 47 ff fa ff       	call   0x412c20
462cd9:	83 26 00             	andl   $0x0,(%esi)
462cdc:	eb 2b                	jmp    0x462d09
462cde:	6a 00                	push   $0x0
462ce0:	50                   	push   %eax
462ce1:	8b 07                	mov    (%edi),%eax
462ce3:	8b 48 04             	mov    0x4(%eax),%ecx
462ce6:	03 cf                	add    %edi,%ecx
462ce8:	e8 34 06 fa ff       	call   0x403321
462ced:	8b 07                	mov    (%edi),%eax
462cef:	6a 00                	push   $0x0
462cf1:	8b 48 04             	mov    0x4(%eax),%ecx
462cf4:	6a fe                	push   $0xfffffffe
462cf6:	03 cf                	add    %edi,%ecx
462cf8:	e8 4f a2 fe ff       	call   0x44cf4c
462cfd:	8b 75 0c             	mov    0xc(%ebp),%esi
462d00:	8b ce                	mov    %esi,%ecx
462d02:	e8 19 ff fa ff       	call   0x412c20
462d07:	89 1e                	mov    %ebx,(%esi)
462d09:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
462d10:	ff 74 24 10          	push   0x10(%esp)
462d14:	ff 15 24 d0 48 00    	call   *0x48d024
462d1a:	e9 ca 00 00 00       	jmp    0x462de9
462d1f:	8b 54 24 14          	mov    0x14(%esp),%edx
462d23:	8b 4c 24 10          	mov    0x10(%esp),%ecx
462d27:	e8 46 10 00 00       	call   0x463d72
462d2c:	ff 74 24 10          	push   0x10(%esp)
462d30:	8a d8                	mov    %al,%bl
462d32:	ff 15 24 d0 48 00    	call   *0x48d024
462d38:	84 db                	test   %bl,%bl
462d3a:	75 2c                	jne    0x462d68
462d3c:	8b 07                	mov    (%edi),%eax
462d3e:	6a 00                	push   $0x0
462d40:	8b 48 04             	mov    0x4(%eax),%ecx
462d43:	6a fe                	push   $0xfffffffe
462d45:	03 cf                	add    %edi,%ecx
462d47:	e8 00 a2 fe ff       	call   0x44cf4c
462d4c:	8b 75 0c             	mov    0xc(%ebp),%esi
462d4f:	8b ce                	mov    %esi,%ecx
462d51:	e8 ca fe fa ff       	call   0x412c20
462d56:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
462d5d:	c7 06 02 00 00 00    	movl   $0x2,(%esi)
462d63:	e9 81 00 00 00       	jmp    0x462de9
462d68:	33 db                	xor    %ebx,%ebx
462d6a:	8d 4c 24 1c          	lea    0x1c(%esp),%ecx
462d6e:	89 5c 24 1c          	mov    %ebx,0x1c(%esp)
462d72:	89 5c 24 24          	mov    %ebx,0x24(%esp)
462d76:	e8 4e 0e 00 00       	call   0x463bc9
462d7b:	84 c0                	test   %al,%al
462d7d:	74 17                	je     0x462d96
462d7f:	53                   	push   %ebx
462d80:	ff 74 24 18          	push   0x18(%esp)
462d84:	8d 4c 24 24          	lea    0x24(%esp),%ecx
462d88:	ff 74 24 40          	push   0x40(%esp)
462d8c:	56                   	push   %esi
462d8d:	e8 6a fd ff ff       	call   0x462afc
462d92:	ff d0                	call   *%eax
462d94:	eb 0b                	jmp    0x462da1
462d96:	ff 74 24 38          	push   0x38(%esp)
462d9a:	56                   	push   %esi
462d9b:	ff 15 0c d0 48 00    	call   *0x48d00c
462da1:	85 c0                	test   %eax,%eax
462da3:	74 34                	je     0x462dd9
462da5:	53                   	push   %ebx
462da6:	50                   	push   %eax
462da7:	8b 07                	mov    (%edi),%eax
462da9:	8b 48 04             	mov    0x4(%eax),%ecx
462dac:	03 cf                	add    %edi,%ecx
462dae:	e8 6e 05 fa ff       	call   0x403321
462db3:	8b 07                	mov    (%edi),%eax
462db5:	53                   	push   %ebx
462db6:	8b 48 04             	mov    0x4(%eax),%ecx
462db9:	6a fe                	push   $0xfffffffe
462dbb:	03 cf                	add    %edi,%ecx
462dbd:	e8 8a a1 fe ff       	call   0x44cf4c
462dc2:	8b 75 0c             	mov    0xc(%ebp),%esi
462dc5:	8b ce                	mov    %esi,%ecx
462dc7:	e8 54 fe fa ff       	call   0x412c20
462dcc:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
462dd3:	c7 06 02 00 00 00    	movl   $0x2,(%esi)
462dd9:	39 5c 24 1c          	cmp    %ebx,0x1c(%esp)
462ddd:	74 0a                	je     0x462de9
462ddf:	ff 74 24 1c          	push   0x1c(%esp)
462de3:	ff 15 88 d1 48 00    	call   *0x48d188
462de9:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
462dee:	74 0a                	je     0x462dfa
462df0:	ff 74 24 0c          	push   0xc(%esp)
462df4:	ff 15 24 d0 48 00    	call   *0x48d024
462dfa:	8d 4c 24 58          	lea    0x58(%esp),%ecx
462dfe:	e8 34 9d fa ff       	call   0x40cb37
462e03:	8d 4c 24 38          	lea    0x38(%esp),%ecx
462e07:	e8 2b 9d fa ff       	call   0x40cb37
462e0c:	8d 4c 24 28          	lea    0x28(%esp),%ecx
462e10:	e8 22 9d fa ff       	call   0x40cb37
462e15:	8d 4c 24 48          	lea    0x48(%esp),%ecx
462e19:	e8 19 9d fa ff       	call   0x40cb37
462e1e:	5f                   	pop    %edi
462e1f:	5e                   	pop    %esi
462e20:	33 c0                	xor    %eax,%eax
462e22:	5b                   	pop    %ebx
462e23:	8b e5                	mov    %ebp,%esp