470b49:	57                   	push   %edi
470b4a:	e8 f1 84 f9 ff       	call   0x409040
470b4f:	83 c4 10             	add    $0x10,%esp
470b52:	8d 4d ec             	lea    -0x14(%ebp),%ecx
470b55:	e8 c6 8e f9 ff       	call   0x409a20
470b5a:	8b 45 08             	mov    0x8(%ebp),%eax
470b5d:	53                   	push   %ebx
470b5e:	89 45 ec             	mov    %eax,-0x14(%ebp)
470b61:	8d 45 ec             	lea    -0x14(%ebp),%eax
470b64:	53                   	push   %ebx
470b65:	50                   	push   %eax
470b66:	57                   	push   %edi
470b67:	89 75 f4             	mov    %esi,-0xc(%ebp)
470b6a:	89 5d f8             	mov    %ebx,-0x8(%ebp)
470b6d:	e8 ce 84 f9 ff       	call   0x409040
470b72:	83 c4 10             	add    $0x10,%esp
470b75:	8d 4d ec             	lea    -0x14(%ebp),%ecx
470b78:	e8 a3 8e f9 ff       	call   0x409a20
470b7d:	eb 1f                	jmp    0x470b9e
470b7f:	8b 03                	mov    (%ebx),%eax
470b81:	33 ff                	xor    %edi,%edi
470b83:	6a 00                	push   $0x0
470b85:	47                   	inc    %edi
470b86:	57                   	push   %edi
470b87:	8b 48 04             	mov    0x4(%eax),%ecx
470b8a:	03 cb                	add    %ebx,%ecx
470b8c:	e8 12 5f fe ff       	call   0x456aa3
470b91:	8b ce                	mov    %esi,%ecx
470b93:	e8 88 8e f9 ff       	call   0x409a20
470b98:	83 26 00             	andl   $0x0,(%esi)
470b9b:	89 7e 0c             	mov    %edi,0xc(%esi)
470b9e:	5f                   	pop    %edi
470b9f:	5e                   	pop    %esi
470ba0:	33 c0                	xor    %eax,%eax
470ba2:	5b                   	pop    %ebx
470ba3:	8b e5                	mov    %ebp,%esp
470ba5:	5d                   	pop    %ebp
470ba6:	c2 08 00             	ret    $0x8
470ba9:	55                   	push   %ebp
470baa:	8b ec                	mov    %esp,%ebp
470bac:	83 ec 38             	sub    $0x38,%esp
470baf:	8b 45 08             	mov    0x8(%ebp),%eax
470bb2:	53                   	push   %ebx
470bb3:	56                   	push   %esi
470bb4:	57                   	push   %edi
470bb5:	8b 40 04             	mov    0x4(%eax),%eax
470bb8:	33 ff                	xor    %edi,%edi
470bba:	89 4d fc             	mov    %ecx,-0x4(%ebp)
470bbd:	89 7d f8             	mov    %edi,-0x8(%ebp)
470bc0:	8b 70 04             	mov    0x4(%eax),%esi
470bc3:	8b ce                	mov    %esi,%ecx
470bc5:	83 7e 0c 0e          	cmpl   $0xe,0xc(%esi)
470bc9:	75 10                	jne    0x470bdb
470bcb:	8d 45 c8             	lea    -0x38(%ebp),%eax
470bce:	33 db                	xor    %ebx,%ebx
470bd0:	50                   	push   %eax
470bd1:	43                   	inc    %ebx
470bd2:	e8 cd 6f ff ff       	call   0x467ba4
470bd7:	8b c8                	mov    %eax,%ecx
470bd9:	eb 27                	jmp    0x470c02
470bdb:	6a 02                	push   $0x2
470bdd:	5b                   	pop    %ebx
470bde:	e8 b4 8d f9 ff       	call   0x409997
470be3:	8b 4e 08             	mov    0x8(%esi),%ecx
470be6:	8b 01                	mov    (%ecx),%eax
470be8:	89 45 d8             	mov    %eax,-0x28(%ebp)
470beb:	8b 41 04             	mov    0x4(%ecx),%eax
470bee:	89 45 dc             	mov    %eax,-0x24(%ebp)
470bf1:	8b 41 08             	mov    0x8(%ecx),%eax
470bf4:	89 45 e0             	mov    %eax,-0x20(%ebp)
470bf7:	8b 41 0c             	mov    0xc(%ecx),%eax
470bfa:	8d 4d d8             	lea    -0x28(%ebp),%ecx
470bfd:	89 45 e4             	mov    %eax,-0x1c(%ebp)
470c00:	ff 00                	incl   (%eax)
470c02:	8b 01                	mov    (%ecx),%eax
470c04:	8b 71 04             	mov    0x4(%ecx),%esi
470c07:	89 45 e8             	mov    %eax,-0x18(%ebp)
470c0a:	8b 41 08             	mov    0x8(%ecx),%eax
470c0d:	89 45 f0             	mov    %eax,-0x10(%ebp)
470c10:	8b 41 0c             	mov    0xc(%ecx),%eax
470c13:	89 75 ec             	mov    %esi,-0x14(%ebp)
470c16:	89 45 f4             	mov    %eax,-0xc(%ebp)
470c19:	ff 00                	incl   (%eax)
470c1b:	f6 c3 02             	test   $0x2,%bl
470c1e:	74 0b                	je     0x470c2b
470c20:	8d 4d d8             	lea    -0x28(%ebp),%ecx
470c23:	83 e3 fd             	and    $0xfffffffd,%ebx
470c26:	e8 39 4e f9 ff       	call   0x405a64
470c2b:	f6 c3 01             	test   $0x1,%bl
470c2e:	74 08                	je     0x470c38
470c30:	8d 4d c8             	lea    -0x38(%ebp),%ecx
470c33:	e8 2c 4e f9 ff       	call   0x405a64
470c38:	85 f6                	test   %esi,%esi
470c3a:	74 37                	je     0x470c73
470c3c:	8b 5d fc             	mov    -0x4(%ebp),%ebx
470c3f:	8d 45 e8             	lea    -0x18(%ebp),%eax
470c42:	50                   	push   %eax
470c43:	8b cb                	mov    %ebx,%ecx
470c45:	e8 73 93 f9 ff       	call   0x409fbd
470c4a:	85 c0                	test   %eax,%eax
470c4c:	75 25                	jne    0x470c73
470c4e:	8b 75 0c             	mov    0xc(%ebp),%esi
470c51:	8b ce                	mov    %esi,%ecx
470c53:	e8 c8 8d f9 ff       	call   0x409a20
470c58:	33 c0                	xor    %eax,%eax
470c5a:	89 3e                	mov    %edi,(%esi)
470c5c:	40                   	inc    %eax
470c5d:	57                   	push   %edi
470c5e:	89 46 0c             	mov    %eax,0xc(%esi)
470c61:	50                   	push   %eax
470c62:	8b 03                	mov    (%ebx),%eax
470c64:	8b 48 04             	mov    0x4(%eax),%ecx
470c67:	03 cb                	add    %ebx,%ecx
470c69:	e8 35 5e fe ff       	call   0x456aa3
470c6e:	83 ce ff             	or     $0xffffffff,%esi
470c71:	eb 2d                	jmp    0x470ca0
470c73:	8b 45 08             	mov    0x8(%ebp),%eax
470c76:	8d 4d e8             	lea    -0x18(%ebp),%ecx
470c79:	51                   	push   %ecx
470c7a:	8b 40 04             	mov    0x4(%eax),%eax
470c7d:	8b 08                	mov    (%eax),%ecx
470c7f:	e8 18 90 f9 ff       	call   0x409c9c
470c84:	50                   	push   %eax
470c85:	e8 16 a5 01 00       	call   0x48b1a0
470c8a:	8b 75 0c             	mov    0xc(%ebp),%esi
470c8d:	8b f8                	mov    %eax,%edi
470c8f:	8b ce                	mov    %esi,%ecx
470c91:	e8 8a 8d f9 ff       	call   0x409a20
470c96:	33 c0                	xor    %eax,%eax
470c98:	89 3e                	mov    %edi,(%esi)
470c9a:	40                   	inc    %eax
470c9b:	89 46 0c             	mov    %eax,0xc(%esi)
470c9e:	33 f6                	xor    %esi,%esi
470ca0:	8d 4d e8             	lea    -0x18(%ebp),%ecx
470ca3:	e8 bc 4d f9 ff       	call   0x405a64
470ca8:	5f                   	pop    %edi
470ca9:	8b c6                	mov    %esi,%eax
470cab:	5e                   	pop    %esi
470cac:	5b                   	pop    %ebx
470cad:	8b e5                	mov    %ebp,%esp
470caf:	5d                   	pop    %ebp
470cb0:	c2 08 00             	ret    $0x8
470cb3:	55                   	push   %ebp
470cb4:	8b ec                	mov    %esp,%ebp
470cb6:	83 e4 f8             	and    $0xfffffff8,%esp
470cb9:	83 ec 2c             	sub    $0x2c,%esp
470cbc:	53                   	push   %ebx
470cbd:	56                   	push   %esi
470cbe:	8b 75 08             	mov    0x8(%ebp),%esi
470cc1:	57                   	push   %edi
470cc2:	33 ff                	xor    %edi,%edi
470cc4:	8b c7                	mov    %edi,%eax
470cc6:	89 7c 24 20          	mov    %edi,0x20(%esp)
470cca:	83 7e 08 01          	cmpl   $0x1,0x8(%esi)
470cce:	76 0f                	jbe    0x470cdf
470cd0:	8b 46 04             	mov    0x4(%esi),%eax
470cd3:	8b 48 04             	mov    0x4(%eax),%ecx
470cd6:	e8 e0 7c ff ff       	call   0x4689bb
470cdb:	89 44 24 20          	mov    %eax,0x20(%esp)
470cdf:	8b 4e 04             	mov    0x4(%esi),%ecx
470ce2:	8b 19                	mov    (%ecx),%ebx
470ce4:	83 7b 0c 05          	cmpl   $0x5,0xc(%ebx)
470ce8:	74 0d                	je     0x470cf7
470cea:	50                   	push   %eax
470ceb:	57                   	push   %edi
470cec:	57                   	push   %edi
470ced:	e8 44 a5 01 00       	call   0x48b236
470cf2:	e9 7e 01 00 00       	jmp    0x470e75
470cf7:	8b 1b                	mov    (%ebx),%ebx
470cf9:	8b 03                	mov    (%ebx),%eax
470cfb:	83 b8 0c 01 00 00 02 	cmpl   $0x2,0x10c(%eax)
470d02:	0f 85 5a 01 00 00    	jne    0x470e62
470d08:	6a 02                	push   $0x2
470d0a:	8b cb                	mov    %ebx,%ecx
470d0c:	e8 5a 81 f9 ff       	call   0x408e6b
470d11:	83 f8 02             	cmp    $0x2,%eax
470d14:	0f 85 48 01 00 00    	jne    0x470e62
470d1a:	6a 01                	push   $0x1
470d1c:	8b cb                	mov    %ebx,%ecx
470d1e:	e8 48 81 f9 ff       	call   0x408e6b
470d23:	33 c9                	xor    %ecx,%ecx
470d25:	8b f8                	mov    %eax,%edi
470d27:	6a 06                	push   $0x6
470d29:	5a                   	pop    %edx
470d2a:	f7 e2                	mul    %edx
470d2c:	89 7c 24 18          	mov    %edi,0x18(%esp)
470d30:	0f 90 c1             	seto   %cl
470d33:	f7 d9                	neg    %ecx
470d35:	0b c8                	or     %eax,%ecx
470d37:	51                   	push   %ecx
470d38:	e8 b9 02 fb ff       	call   0x420ff6
470d3d:	8b f0                	mov    %eax,%esi
470d3f:	33 c0                	xor    %eax,%eax
470d41:	89 74 24 20          	mov    %esi,0x20(%esp)
470d45:	89 44 24 18          	mov    %eax,0x18(%esp)
470d49:	59                   	pop    %ecx
470d4a:	85 ff                	test   %edi,%edi
470d4c:	0f 8e d3 00 00 00    	jle    0x470e25
470d52:	8b fe                	mov    %esi,%edi
470d54:	6a 00                	push   $0x0
470d56:	50                   	push   %eax
470d57:	6a 02                	push   $0x2
470d59:	6a 01                	push   $0x1
470d5b:	53                   	push   %ebx
470d5c:	e8 3f 81 f9 ff       	call   0x408ea0
470d61:	83 c4 14             	add    $0x14,%esp
470d64:	8b f0                	mov    %eax,%esi
470d66:	8b ce                	mov    %esi,%ecx
470d68:	e8 2a 8c f9 ff       	call   0x409997
470d6d:	8b 4e 08             	mov    0x8(%esi),%ecx
470d70:	6a 01                	push   $0x1
470d72:	ff 74 24 18          	push   0x18(%esp)
470d76:	8b 01                	mov    (%ecx),%eax
470d78:	89 44 24 30          	mov    %eax,0x30(%esp)
470d7c:	8b 41 04             	mov    0x4(%ecx),%eax
470d7f:	89 44 24 34          	mov    %eax,0x34(%esp)
470d83:	8b 41 08             	mov    0x8(%ecx),%eax
470d86:	89 44 24 38          	mov    %eax,0x38(%esp)
470d8a:	8b 41 0c             	mov    0xc(%ecx),%eax
470d8d:	6a 02                	push   $0x2
470d8f:	6a 01                	push   $0x1
470d91:	53                   	push   %ebx
470d92:	ff 00                	incl   (%eax)
470d94:	89 44 24 48          	mov    %eax,0x48(%esp)
470d98:	e8 03 81 f9 ff       	call   0x408ea0
470d9d:	83 c4 14             	add    $0x14,%esp
470da0:	8b c8                	mov    %eax,%ecx
470da2:	e8 f5 8e f9 ff       	call   0x409c9c
470da7:	8b f0                	mov    %eax,%esi
470da9:	8d 44 24 13          	lea    0x13(%esp),%eax
470dad:	50                   	push   %eax
470dae:	8d 44 24 16          	lea    0x16(%esp),%eax
470db2:	50                   	push   %eax
470db3:	8d 44 24 19          	lea    0x19(%esp),%eax
470db7:	50                   	push   %eax
470db8:	8d 44 24 1c          	lea    0x1c(%esp),%eax
470dbc:	50                   	push   %eax
470dbd:	8d 44 24 34          	lea    0x34(%esp),%eax
470dc1:	50                   	push   %eax
470dc2:	8d 44 24 3c          	lea    0x3c(%esp),%eax
470dc6:	50                   	push   %eax
470dc7:	e8 6f f4 fa ff       	call   0x42023b
470dcc:	84 c0                	test   %al,%al
470dce:	74 69                	je     0x470e39
470dd0:	80 7c 24 10 00       	cmpb   $0x0,0x10(%esp)
470dd5:	c6 07 01             	movb   $0x1,(%edi)
470dd8:	74 03                	je     0x470ddd
470dda:	c6 07 05             	movb   $0x5,(%edi)
470ddd:	80 7c 24 11 00       	cmpb   $0x0,0x11(%esp)
470de2:	74 03                	je     0x470de7
470de4:	80 0f 08             	orb    $0x8,(%edi)
470de7:	80 7c 24 12 00       	cmpb   $0x0,0x12(%esp)
470dec:	74 03                	je     0x470df1
470dee:	80 0f 10             	orb    $0x10,(%edi)
470df1:	66 8b 44 24 24       	mov    0x24(%esp),%ax
470df6:	8d 4c 24 28          	lea    0x28(%esp),%ecx
470dfa:	66 89 47 02          	mov    %ax,0x2(%edi)
470dfe:	66 89 77 04          	mov    %si,0x4(%edi)
470e02:	e8 5d 4c f9 ff       	call   0x405a64
470e07:	8b 44 24 14          	mov    0x14(%esp),%eax
470e0b:	83 c7 06             	add    $0x6,%edi
470e0e:	40                   	inc    %eax
470e0f:	89 44 24 14          	mov    %eax,0x14(%esp)
470e13:	3b 44 24 18          	cmp    0x18(%esp),%eax
470e17:	0f 8c 37 ff ff ff    	jl     0x470d54
470e1d:	8b 74 24 1c          	mov    0x1c(%esp),%esi
470e21:	8b 7c 24 18          	mov    0x18(%esp),%edi
470e25:	ff 74 24 20          	push   0x20(%esp)
470e29:	57                   	push   %edi
470e2a:	56                   	push   %esi
470e2b:	e8 06 a4 01 00       	call   0x48b236
470e30:	56                   	push   %esi
470e31:	e8 36 02 fb ff       	call   0x42106c
470e36:	59                   	pop    %ecx
470e37:	eb 3c                	jmp    0x470e75
470e39:	ff 74 24 1c          	push   0x1c(%esp)
470e3d:	e8 2a 02 fb ff       	call   0x42106c
470e42:	8b 75 0c             	mov    0xc(%ebp),%esi
470e45:	59                   	pop    %ecx
470e46:	8b ce                	mov    %esi,%ecx
470e48:	e8 d3 8b f9 ff       	call   0x409a20
470e4d:	83 26 00             	andl   $0x0,(%esi)
470e50:	8d 4c 24 28          	lea    0x28(%esp),%ecx
470e54:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
470e5b:	e8 04 4c f9 ff       	call   0x405a64
470e60:	eb 13                	jmp    0x470e75
470e62:	8b 75 0c             	mov    0xc(%ebp),%esi
470e65:	8b ce                	mov    %esi,%ecx
470e67:	e8 b4 8b f9 ff       	call   0x409a20
470e6c:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
470e73:	89 3e                	mov    %edi,(%esi)
470e75:	5f                   	pop    %edi
470e76:	5e                   	pop    %esi
470e77:	33 c0                	xor    %eax,%eax
470e79:	5b                   	pop    %ebx
470e7a:	8b e5                	mov    %ebp,%esp
470e7c:	5d                   	pop    %ebp
470e7d:	c2 08 00             	ret    $0x8
470e80:	55                   	push   %ebp
470e81:	8b ec                	mov    %esp,%ebp
470e83:	53                   	push   %ebx
470e84:	56                   	push   %esi
470e85:	8b 75 08             	mov    0x8(%ebp),%esi
470e88:	83 cb ff             	or     $0xffffffff,%ebx
470e8b:	57                   	push   %edi
470e8c:	89 5d 08             	mov    %ebx,0x8(%ebp)
470e8f:	8b 7e 08             	mov    0x8(%esi),%edi
470e92:	83 ff 02             	cmp    $0x2,%edi
470e95:	76 0d                	jbe    0x470ea4
470e97:	8b 46 04             	mov    0x4(%esi),%eax
470e9a:	8b 48 08             	mov    0x8(%eax),%ecx
470e9d:	e8 fa 8d f9 ff       	call   0x409c9c
470ea2:	8b d8                	mov    %eax,%ebx
470ea4:	83 ff 03             	cmp    $0x3,%edi
470ea7:	76 0e                	jbe    0x470eb7
470ea9:	8b 4e 04             	mov    0x4(%esi),%ecx
470eac:	8b 49 0c             	mov    0xc(%ecx),%ecx
470eaf:	e8 e8 8d f9 ff       	call   0x409c9c
470eb4:	89 45 08             	mov    %eax,0x8(%ebp)
470eb7:	83 ff 04             	cmp    $0x4,%edi
470eba:	76 0d                	jbe    0x470ec9
470ebc:	8b 4e 04             	mov    0x4(%esi),%ecx
470ebf:	8b 49 10             	mov    0x10(%ecx),%ecx
470ec2:	e8 f4 7a ff ff       	call   0x4689bb
470ec7:	eb 02                	jmp    0x470ecb
470ec9:	33 c0                	xor    %eax,%eax
470ecb:	8b 56 04             	mov    0x4(%esi),%edx
470ece:	50                   	push   %eax
470ecf:	ff 75 08             	push   0x8(%ebp)
470ed2:	8b 4a 04             	mov    0x4(%edx),%ecx
470ed5:	8b 32                	mov    (%edx),%esi
470ed7:	53                   	push   %ebx
470ed8:	e8 bf 8d f9 ff       	call   0x409c9c
470edd:	50                   	push   %eax
470ede:	8b ce                	mov    %esi,%ecx
470ee0:	e8 b7 8d f9 ff       	call   0x409c9c
470ee5:	50                   	push   %eax
470ee6:	e8 d1 a3 01 00       	call   0x48b2bc
470eeb:	8b 75 0c             	mov    0xc(%ebp),%esi
470eee:	8b f8                	mov    %eax,%edi
470ef0:	8b ce                	mov    %esi,%ecx
470ef2:	e8 29 8b f9 ff       	call   0x409a20
470ef7:	89 3e                	mov    %edi,(%esi)
470ef9:	33 c0                	xor    %eax,%eax
470efb:	5f                   	pop    %edi
470efc:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
470f03:	5e                   	pop    %esi
470f04:	5b                   	pop    %ebx
470f05:	5d                   	pop    %ebp
470f06:	c2 08 00             	ret    $0x8