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
470f09:	55                   	push   %ebp
470f0a:	8b ec                	mov    %esp,%ebp
470f0c:	51                   	push   %ecx
470f0d:	53                   	push   %ebx
470f0e:	56                   	push   %esi
470f0f:	57                   	push   %edi
470f10:	8b 7d 08             	mov    0x8(%ebp),%edi
470f13:	33 db                	xor    %ebx,%ebx
470f15:	c7 45 08 02 00 00 00 	movl   $0x2,0x8(%ebp)
470f1c:	89 5d fc             	mov    %ebx,-0x4(%ebp)
470f1f:	8b 77 08             	mov    0x8(%edi),%esi
470f22:	85 f6                	test   %esi,%esi
470f24:	74 0d                	je     0x470f33
470f26:	8b 47 04             	mov    0x4(%edi),%eax
470f29:	8b 08                	mov    (%eax),%ecx
470f2b:	e8 6c 8d f9 ff       	call   0x409c9c
470f30:	89 45 08             	mov    %eax,0x8(%ebp)
470f33:	83 fe 01             	cmp    $0x1,%esi
470f36:	76 0d                	jbe    0x470f45
470f38:	8b 4f 04             	mov    0x4(%edi),%ecx
470f3b:	8b 49 04             	mov    0x4(%ecx),%ecx
470f3e:	e8 59 8d f9 ff       	call   0x409c9c
470f43:	8b d8                	mov    %eax,%ebx
470f45:	83 fe 02             	cmp    $0x2,%esi
470f48:	76 0d                	jbe    0x470f57
470f4a:	8b 4f 04             	mov    0x4(%edi),%ecx
470f4d:	8b 49 08             	mov    0x8(%ecx),%ecx
470f50:	e8 66 7a ff ff       	call   0x4689bb
470f55:	eb 03                	jmp    0x470f5a
470f57:	8b 45 fc             	mov    -0x4(%ebp),%eax
470f5a:	50                   	push   %eax
470f5b:	53                   	push   %ebx
470f5c:	ff 75 08             	push   0x8(%ebp)
470f5f:	e8 b8 a3 01 00       	call   0x48b31c
470f64:	5f                   	pop    %edi
470f65:	5e                   	pop    %esi
470f66:	33 c0                	xor    %eax,%eax
470f68:	5b                   	pop    %ebx
470f69:	8b e5                	mov    %ebp,%esp
470f6b:	5d                   	pop    %ebp
470f6c:	c2 08 00             	ret    $0x8
470f6f:	55                   	push   %ebp
470f70:	8b ec                	mov    %esp,%ebp
470f72:	83 ec 18             	sub    $0x18,%esp
470f75:	53                   	push   %ebx
470f76:	56                   	push   %esi
470f77:	8b 75 08             	mov    0x8(%ebp),%esi
470f7a:	8d 4d e8             	lea    -0x18(%ebp),%ecx
470f7d:	57                   	push   %edi
470f7e:	8b 7e 08             	mov    0x8(%esi),%edi
470f81:	e8 41 68 f9 ff       	call   0x4077c7
470f86:	8b 5d 0c             	mov    0xc(%ebp),%ebx
470f89:	33 c0                	xor    %eax,%eax
470f8b:	83 4d f8 ff          	orl    $0xffffffff,-0x8(%ebp)
470f8f:	8b cb                	mov    %ebx,%ecx
470f91:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
470f98:	89 45 08             	mov    %eax,0x8(%ebp)
470f9b:	e8 80 8a f9 ff       	call   0x409a20
470fa0:	83 23 00             	andl   $0x0,(%ebx)
470fa3:	c7 43 0c 01 00 00 00 	movl   $0x1,0xc(%ebx)
470faa:	83 ff 05             	cmp    $0x5,%edi
470fad:	76 0e                	jbe    0x470fbd
470faf:	8b 46 04             	mov    0x4(%esi),%eax
470fb2:	8b 48 14             	mov    0x14(%eax),%ecx
470fb5:	e8 e2 8c f9 ff       	call   0x409c9c
470fba:	89 45 fc             	mov    %eax,-0x4(%ebp)
470fbd:	83 ff 04             	cmp    $0x4,%edi
470fc0:	76 18                	jbe    0x470fda
470fc2:	8b 46 04             	mov    0x4(%esi),%eax
470fc5:	8b 48 10             	mov    0x10(%eax),%ecx
470fc8:	83 79 0c 07          	cmpl   $0x7,0xc(%ecx)
470fcc:	0f 85 8d 00 00 00    	jne    0x47105f
470fd2:	e8 e4 79 ff ff       	call   0x4689bb
470fd7:	89 45 08             	mov    %eax,0x8(%ebp)
470fda:	83 ff 03             	cmp    $0x3,%edi
470fdd:	76 21                	jbe    0x471000
470fdf:	8b 46 04             	mov    0x4(%esi),%eax
470fe2:	8b 58 0c             	mov    0xc(%eax),%ebx
470fe5:	83 7b 0c 04          	cmpl   $0x4,0xc(%ebx)
470fe9:	75 74                	jne    0x47105f
470feb:	8b cb                	mov    %ebx,%ecx
470fed:	e8 a5 89 f9 ff       	call   0x409997
470ff2:	ff 73 08             	push   0x8(%ebx)
470ff5:	8d 4d e8             	lea    -0x18(%ebp),%ecx
470ff8:	e8 aa 71 f9 ff       	call   0x4081a7
470ffd:	8b 5d 0c             	mov    0xc(%ebp),%ebx
471000:	83 ff 02             	cmp    $0x2,%edi
471003:	76 0e                	jbe    0x471013
471005:	8b 46 04             	mov    0x4(%esi),%eax
471008:	8b 48 08             	mov    0x8(%eax),%ecx
47100b:	e8 8c 8c f9 ff       	call   0x409c9c
471010:	89 45 f8             	mov    %eax,-0x8(%ebp)
471013:	83 ff 01             	cmp    $0x1,%edi
471016:	76 0f                	jbe    0x471027
471018:	8b 46 04             	mov    0x4(%esi),%eax
47101b:	8b 48 04             	mov    0x4(%eax),%ecx
47101e:	e8 79 8c f9 ff       	call   0x409c9c
471023:	8b f8                	mov    %eax,%edi
471025:	eb 03                	jmp    0x47102a
471027:	83 cf ff             	or     $0xffffffff,%edi
47102a:	8b 4e 04             	mov    0x4(%esi),%ecx
47102d:	8b 09                	mov    (%ecx),%ecx
47102f:	e8 c4 8c f9 ff       	call   0x409cf8
471034:	8b 45 08             	mov    0x8(%ebp),%eax
471037:	51                   	push   %ecx
471038:	51                   	push   %ecx
471039:	dd 1c 24             	fstpl  (%esp)
47103c:	50                   	push   %eax
47103d:	ff 75 fc             	push   -0x4(%ebp)
471040:	8d 45 e8             	lea    -0x18(%ebp),%eax
471043:	ff 75 f8             	push   -0x8(%ebp)
471046:	50                   	push   %eax
471047:	57                   	push   %edi
471048:	e8 22 a3 01 00       	call   0x48b36f
47104d:	8b cb                	mov    %ebx,%ecx
47104f:	8b f0                	mov    %eax,%esi
471051:	e8 ca 89 f9 ff       	call   0x409a20
471056:	c7 43 0c 01 00 00 00 	movl   $0x1,0xc(%ebx)
47105d:	89 33                	mov    %esi,(%ebx)
47105f:	8d 4d e8             	lea    -0x18(%ebp),%ecx
471062:	e8 fd 49 f9 ff       	call   0x405a64
471067:	5f                   	pop    %edi
471068:	5e                   	pop    %esi
471069:	33 c0                	xor    %eax,%eax
47106b:	5b                   	pop    %ebx
47106c:	8b e5                	mov    %ebp,%esp
47106e:	5d                   	pop    %ebp
47106f:	c2 08 00             	ret    $0x8
471072:	55                   	push   %ebp
471073:	8b ec                	mov    %esp,%ebp
471075:	56                   	push   %esi
471076:	8b 75 08             	mov    0x8(%ebp),%esi
471079:	57                   	push   %edi
47107a:	33 ff                	xor    %edi,%edi
47107c:	83 7e 08 01          	cmpl   $0x1,0x8(%esi)
471080:	76 0d                	jbe    0x47108f
471082:	8b 46 04             	mov    0x4(%esi),%eax
471085:	8b 48 04             	mov    0x4(%eax),%ecx
471088:	e8 2e 79 ff ff       	call   0x4689bb
47108d:	8b f8                	mov    %eax,%edi
47108f:	8b 4e 04             	mov    0x4(%esi),%ecx
471092:	8b 31                	mov    (%ecx),%esi
471094:	8b ce                	mov    %esi,%ecx
471096:	e8 fc 88 f9 ff       	call   0x409997
47109b:	8b 4e 08             	mov    0x8(%esi),%ecx
47109e:	83 c8 ff             	or     $0xffffffff,%eax
4710a1:	50                   	push   %eax
4710a2:	50                   	push   %eax
4710a3:	57                   	push   %edi
4710a4:	50                   	push   %eax
4710a5:	6a 00                	push   $0x0
4710a7:	50                   	push   %eax
4710a8:	ff 31                	push   (%ecx)
4710aa:	e8 c3 1a f9 ff       	call   0x402b72
4710af:	8b 75 0c             	mov    0xc(%ebp),%esi
4710b2:	8b f8                	mov    %eax,%edi
4710b4:	8b ce                	mov    %esi,%ecx
4710b6:	e8 65 89 f9 ff       	call   0x409a20
4710bb:	89 3e                	mov    %edi,(%esi)
4710bd:	33 c0                	xor    %eax,%eax
4710bf:	5f                   	pop    %edi
4710c0:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
4710c7:	5e                   	pop    %esi
4710c8:	5d                   	pop    %ebp
4710c9:	c2 08 00             	ret    $0x8
4710cc:	55                   	push   %ebp
4710cd:	8b ec                	mov    %esp,%ebp
4710cf:	53                   	push   %ebx
4710d0:	56                   	push   %esi
4710d1:	8b 75 08             	mov    0x8(%ebp),%esi
4710d4:	33 db                	xor    %ebx,%ebx
4710d6:	57                   	push   %edi
4710d7:	83 cf ff             	or     $0xffffffff,%edi
4710da:	83 7e 08 02          	cmpl   $0x2,0x8(%esi)
4710de:	76 0d                	jbe    0x4710ed