476c47:	8b 07                	mov    (%edi),%eax
476c49:	6a 00                	push   $0x0
476c4b:	8b 48 04             	mov    0x4(%eax),%ecx
476c4e:	6a 01                	push   $0x1
476c50:	03 cf                	add    %edi,%ecx
476c52:	e8 f5 62 fd ff       	call   0x44cf4c
476c57:	e9 59 76 fa ff       	jmp    0x41e2b5
476c5c:	e8 bf bf f9 ff       	call   0x412c20
476c61:	d9 ee                	fldz
476c63:	dd 1e                	fstpl  (%esi)
476c65:	c7 46 0c 03 00 00 00 	movl   $0x3,0xc(%esi)
476c6c:	8b 07                	mov    (%edi),%eax
476c6e:	6a 00                	push   $0x0
476c70:	8b 48 04             	mov    0x4(%eax),%ecx
476c73:	6a 01                	push   $0x1
476c75:	03 cf                	add    %edi,%ecx
476c77:	e8 d0 62 fd ff       	call   0x44cf4c
476c7c:	e9 3a 7b fa ff       	jmp    0x41e7bb
476c81:	e8 64 88 fa ff       	call   0x41f4ea
476c86:	59                   	pop    %ecx
476c87:	85 c0                	test   %eax,%eax
476c89:	74 0c                	je     0x476c97
476c8b:	ff 75 08             	push   0x8(%ebp)
476c8e:	8b c8                	mov    %eax,%ecx
476c90:	e8 9a a6 f8 ff       	call   0x40132f
476c95:	8b f8                	mov    %eax,%edi
476c97:	8b 46 04             	mov    0x4(%esi),%eax
476c9a:	89 47 08             	mov    %eax,0x8(%edi)
476c9d:	8b 46 04             	mov    0x4(%esi),%eax
476ca0:	89 78 04             	mov    %edi,0x4(%eax)
476ca3:	e9 7b a6 f8 ff       	jmp    0x401323
476ca8:	8b 46 08             	mov    0x8(%esi),%eax
476cab:	85 c0                	test   %eax,%eax
476cad:	0f 84 31 bc f8 ff    	je     0x4028e4
476cb3:	c1 e0 02             	shl    $0x2,%eax
476cb6:	50                   	push   %eax
476cb7:	ff 76 04             	push   0x4(%esi)
476cba:	57                   	push   %edi
476cbb:	e8 c0 81 fa ff       	call   0x41ee80
476cc0:	ff 76 04             	push   0x4(%esi)
476cc3:	e8 96 88 fa ff       	call   0x41f55e
476cc8:	83 c4 10             	add    $0x10,%esp
476ccb:	e9 14 bc f8 ff       	jmp    0x4028e4
476cd0:	33 d2                	xor    %edx,%edx
476cd2:	e9 29 bc f8 ff       	jmp    0x402900
476cd7:	48                   	dec    %eax
476cd8:	74 68                	je     0x476d42
476cda:	48                   	dec    %eax
476cdb:	74 1e                	je     0x476cfb
476cdd:	83 e8 4a             	sub    $0x4a,%eax
476ce0:	0f 84 cc 72 f9 ff    	je     0x40dfb2
476ce6:	53                   	push   %ebx
476ce7:	8d 44 24 1c          	lea    0x1c(%esp),%eax
476ceb:	50                   	push   %eax
476cec:	8d 44 24 18          	lea    0x18(%esp),%eax
476cf0:	50                   	push   %eax
476cf1:	57                   	push   %edi
476cf2:	8b ce                	mov    %esi,%ecx
476cf4:	e8 37 91 f9 ff       	call   0x40fe30
476cf9:	eb 74                	jmp    0x476d6f
476cfb:	8d 9e 6c 01 00 00    	lea    0x16c(%esi),%ebx
476d01:	8b cb                	mov    %ebx,%ecx
476d03:	e8 9e 7e fe ff       	call   0x45eba6
476d08:	8b c8                	mov    %eax,%ecx
476d0a:	e8 71 5e fe ff       	call   0x45cb80
476d0f:	84 c0                	test   %al,%al
476d11:	75 10                	jne    0x476d23
476d13:	8b 44 24 14          	mov    0x14(%esp),%eax
476d17:	0f bf 40 0a          	movswl 0xa(%eax),%eax
476d1b:	50                   	push   %eax
476d1c:	68 a7 00 00 00       	push   $0xa7
476d21:	eb 6f                	jmp    0x476d92
476d23:	8b cb                	mov    %ebx,%ecx
476d25:	e8 7c 7e fe ff       	call   0x45eba6
476d2a:	89 44 24 14          	mov    %eax,0x14(%esp)
476d2e:	8d 44 24 14          	lea    0x14(%esp),%eax
476d32:	50                   	push   %eax
476d33:	8d 44 24 14          	lea    0x14(%esp),%eax
476d37:	50                   	push   %eax
476d38:	57                   	push   %edi
476d39:	8b ce                	mov    %esi,%ecx
476d3b:	e8 ca 76 fe ff       	call   0x45e40a
476d40:	eb 2d                	jmp    0x476d6f
476d42:	8d 44 24 0f          	lea    0xf(%esp),%eax
476d46:	50                   	push   %eax
476d47:	8d 44 24 1c          	lea    0x1c(%esp),%eax
476d4b:	50                   	push   %eax
476d4c:	8d 44 24 18          	lea    0x18(%esp),%eax
476d50:	50                   	push   %eax
476d51:	57                   	push   %edi
476d52:	51                   	push   %ecx
476d53:	8b ce                	mov    %esi,%ecx
476d55:	e8 a6 c4 f9 ff       	call   0x413200
476d5a:	eb 13                	jmp    0x476d6f
476d5c:	8d 44 24 18          	lea    0x18(%esp),%eax
476d60:	50                   	push   %eax
476d61:	8d 44 24 14          	lea    0x14(%esp),%eax
476d65:	50                   	push   %eax
476d66:	57                   	push   %edi
476d67:	51                   	push   %ecx
476d68:	8b ce                	mov    %esi,%ecx
476d6a:	e8 71 d8 f9 ff       	call   0x4145e0
476d6f:	8b d8                	mov    %eax,%ebx
476d71:	e9 59 72 f9 ff       	jmp    0x40dfcf
476d76:	8b 4f 04             	mov    0x4(%edi),%ecx
476d79:	8b 44 24 10          	mov    0x10(%esp),%eax
476d7d:	8b 04 81             	mov    (%ecx,%eax,4),%eax
476d80:	66 83 78 08 7f       	cmpw   $0x7f,0x8(%eax)
476d85:	0f 84 27 72 f9 ff    	je     0x40dfb2
476d8b:	0f bf 40 0a          	movswl 0xa(%eax),%eax
476d8f:	50                   	push   %eax
476d90:	6a 72                	push   $0x72
476d92:	8b ce                	mov    %esi,%ecx
476d94:	e8 c3 5e fd ff       	call   0x44cc5c
476d99:	e9 14 72 f9 ff       	jmp    0x40dfb2
476d9e:	8b 55 14             	mov    0x14(%ebp),%edx
476da1:	8d 41 01             	lea    0x1(%ecx),%eax
476da4:	50                   	push   %eax
476da5:	52                   	push   %edx
476da6:	ff 75 10             	push   0x10(%ebp)
476da9:	89 1c 8a             	mov    %ebx,(%edx,%ecx,4)
476dac:	8b 4d f8             	mov    -0x8(%ebp),%ecx
476daf:	56                   	push   %esi
476db0:	57                   	push   %edi
476db1:	e8 15 51 fa ff       	call   0x41becb
476db6:	84 c0                	test   %al,%al
476db8:	0f 84 3a 52 fa ff    	je     0x41bff8
476dbe:	e9 f5 51 fa ff       	jmp    0x41bfb8
476dc3:	8b 47 04             	mov    0x4(%edi),%eax
476dc6:	6a 4e                	push   $0x4e
476dc8:	8b 44 90 fc          	mov    -0x4(%eax,%edx,4),%eax
476dcc:	5a                   	pop    %edx
476dcd:	66 39 50 08          	cmp    %dx,0x8(%eax)
476dd1:	0f 84 e4 51 fa ff    	je     0x41bfbb
476dd7:	e9 77 51 fa ff       	jmp    0x41bf53
476ddc:	8b 47 04             	mov    0x4(%edi),%eax
476ddf:	8b 04 90             	mov    (%eax,%edx,4),%eax
476de2:	0f bf 40 0a          	movswl 0xa(%eax),%eax
476de6:	50                   	push   %eax
476de7:	6a 7e                	push   $0x7e
476de9:	eb 0d                	jmp    0x476df8
476deb:	8b 47 04             	mov    0x4(%edi),%eax
476dee:	8b 04 90             	mov    (%eax,%edx,4),%eax
476df1:	0f bf 40 0a          	movswl 0xa(%eax),%eax
476df5:	50                   	push   %eax
476df6:	6a 7d                	push   $0x7d
476df8:	8b 4d f8             	mov    -0x8(%ebp),%ecx
476dfb:	e8 5c 5e fd ff       	call   0x44cc5c
476e00:	e9 f3 51 fa ff       	jmp    0x41bff8
476e05:	ff 75 14             	push   0x14(%ebp)
476e08:	51                   	push   %ecx
476e09:	57                   	push   %edi
476e0a:	8b cb                	mov    %ebx,%ecx
476e0c:	e8 11 7a fe ff       	call   0x45e822
476e11:	8b d8                	mov    %eax,%ebx
476e13:	e9 2b d9 f9 ff       	jmp    0x414743
476e18:	8b 47 08             	mov    0x8(%edi),%eax
476e1b:	8b 70 38             	mov    0x38(%eax),%esi
476e1e:	e9 c4 d8 f9 ff       	jmp    0x4146e7
476e23:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
476e27:	75 12                	jne    0x476e3b
476e29:	ff 74 24 14          	push   0x14(%esp)
476e2d:	8b cb                	mov    %ebx,%ecx
476e2f:	6a 70                	push   $0x70
476e31:	e8 26 5e fd ff       	call   0x44cc5c
476e36:	e9 b5 d9 f9 ff       	jmp    0x4147f0
476e3b:	8b 45 10             	mov    0x10(%ebp),%eax
476e3e:	83 00 fe             	addl   $0xfffffffe,(%eax)
476e41:	e9 aa d9 f9 ff       	jmp    0x4147f0
476e46:	8b 44 91 fc          	mov    -0x4(%ecx,%edx,4),%eax
476e4a:	8b cb                	mov    %ebx,%ecx
476e4c:	0f bf 40 0a          	movswl 0xa(%eax),%eax
476e50:	50                   	push   %eax
476e51:	6a 6f                	push   $0x6f
476e53:	e8 04 5e fd ff       	call   0x44cc5c
476e58:	83 c8 ff             	or     $0xffffffff,%eax
476e5b:	e9 55 55 fa ff       	jmp    0x41c3b5
476e60:	8b 41 fc             	mov    -0x4(%ecx),%eax
476e63:	8b cb                	mov    %ebx,%ecx
476e65:	0f bf 40 0a          	movswl 0xa(%eax),%eax
476e69:	50                   	push   %eax
476e6a:	6a 6f                	push   $0x6f
476e6c:	e8 eb 5d fd ff       	call   0x44cc5c
476e71:	83 c8 ff             	or     $0xffffffff,%eax
476e74:	e9 ce d5 f9 ff       	jmp    0x414447
476e79:	8b 44 8e fc          	mov    -0x4(%esi,%ecx,4),%eax
476e7d:	8b 4d f8             	mov    -0x8(%ebp),%ecx
476e80:	0f bf 40 0a          	movswl 0xa(%eax),%eax
476e84:	50                   	push   %eax
476e85:	6a 6f                	push   $0x6f
476e87:	e8 d0 5d fd ff       	call   0x44cc5c
476e8c:	83 c8 ff             	or     $0xffffffff,%eax
476e8f:	e9 b3 d5 f9 ff       	jmp    0x414447
476e94:	8b 4f 08             	mov    0x8(%edi),%ecx
476e97:	85 c9                	test   %ecx,%ecx
476e99:	0f 84 e6 d5 f9 ff    	je     0x414485
476e9f:	c1 e1 02             	shl    $0x2,%ecx
476ea2:	51                   	push   %ecx
476ea3:	50                   	push   %eax
476ea4:	53                   	push   %ebx
476ea5:	e8 d6 7f fa ff       	call   0x41ee80
476eaa:	83 c4 0c             	add    $0xc,%esp
476ead:	ff 77 04             	push   0x4(%edi)
476eb0:	e8 a9 86 fa ff       	call   0x41f55e
476eb5:	83 c4 04             	add    $0x4,%esp
476eb8:	e9 c8 d5 f9 ff       	jmp    0x414485
476ebd:	8b 42 04             	mov    0x4(%edx),%eax
476ec0:	8b 04 88             	mov    (%eax,%ecx,4),%eax
476ec3:	8b 4d f8             	mov    -0x8(%ebp),%ecx
476ec6:	0f bf 40 0a          	movswl 0xa(%eax),%eax
476eca:	50                   	push   %eax
476ecb:	6a 6f                	push   $0x6f
476ecd:	e8 8a 5d fd ff       	call   0x44cc5c
476ed2:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
476ed5:	e8 46 bd f9 ff       	call   0x412c20
476eda:	83 c8 ff             	or     $0xffffffff,%eax
476edd:	e9 65 d5 f9 ff       	jmp    0x414447
476ee2:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
476ee6:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
476eea:	6a ff                	push   $0xffffffff
476eec:	8d 45 e8             	lea    -0x18(%ebp),%eax
476eef:	50                   	push   %eax
476ef0:	8d 45 fc             	lea    -0x4(%ebp),%eax
476ef3:	50                   	push   %eax
476ef4:	89 4d f4             	mov    %ecx,-0xc(%ebp)
476ef7:	56                   	push   %esi
476ef8:	8b cb                	mov    %ebx,%ecx
476efa:	e8 31 8f f9 ff       	call   0x40fe30
476eff:	85 c0                	test   %eax,%eax
476f01:	78 1d                	js     0x476f20
476f03:	8b 4e 04             	mov    0x4(%esi),%ecx
476f06:	8b 45 fc             	mov    -0x4(%ebp),%eax
476f09:	8b 04 81             	mov    (%ecx,%eax,4),%eax
476f0c:	66 39 78 08          	cmp    %di,0x8(%eax)
476f10:	74 1b                	je     0x476f2d
476f12:	0f bf 40 0a          	movswl 0xa(%eax),%eax
476f16:	50                   	push   %eax
476f17:	6a 72                	push   $0x72
476f19:	8b cb                	mov    %ebx,%ecx
476f1b:	e8 3c 5d fd ff       	call   0x44cc5c
476f20:	8d 4d e8             	lea    -0x18(%ebp),%ecx
476f23:	e8 f8 bc f9 ff       	call   0x412c20
476f28:	e9 7b 56 fa ff       	jmp    0x41c5a8
476f2d:	8d 4d e8             	lea    -0x18(%ebp),%ecx
476f30:	e8 51 63 f9 ff       	call   0x40d286
476f35:	8b f0                	mov    %eax,%esi
476f37:	85 f6                	test   %esi,%esi
476f39:	79 02                	jns    0x476f3d
476f3b:	33 f6                	xor    %esi,%esi
476f3d:	8d 4d e8             	lea    -0x18(%ebp),%ecx
476f40:	e8 db bc f9 ff       	call   0x412c20
476f45:	e9 d8 55 fa ff       	jmp    0x41c522
476f4a:	8b cf                	mov    %edi,%ecx
476f4c:	e8 d1 6e f9 ff       	call   0x40de22
476f51:	8b 55 08             	mov    0x8(%ebp),%edx
476f54:	3b d6                	cmp    %esi,%edx
476f56:	0f 8c d4 55 fa ff    	jl     0x41c530
476f5c:	e9 47 56 fa ff       	jmp    0x41c5a8
476f61:	6a ff                	push   $0xffffffff
476f63:	68 96 00 00 00       	push   $0x96
476f68:	8b cb                	mov    %ebx,%ecx
476f6a:	e8 ed 5c fd ff       	call   0x44cc5c
476f6f:	e9 34 56 fa ff       	jmp    0x41c5a8
476f74:	8b 11                	mov    (%ecx),%edx
476f76:	83 ea 1e             	sub    $0x1e,%edx
476f79:	74 5b                	je     0x476fd6
476f7b:	4a                   	dec    %edx
476f7c:	74 1d                	je     0x476f9b
476f7e:	83 ea 0d             	sub    $0xd,%edx
476f81:	0f 85 68 cc f9 ff    	jne    0x413bef
476f87:	ff 75 10             	push   0x10(%ebp)
476f8a:	8b 75 0c             	mov    0xc(%ebp),%esi
476f8d:	56                   	push   %esi
476f8e:	53                   	push   %ebx
476f8f:	8b cf                	mov    %edi,%ecx
476f91:	e8 bc 65 fe ff       	call   0x45d552
476f96:	e9 38 d0 f9 ff       	jmp    0x413fd3
476f9b:	8b 55 10             	mov    0x10(%ebp),%edx
476f9e:	85 d2                	test   %edx,%edx
476fa0:	74 21                	je     0x476fc3
476fa2:	8b 40 04             	mov    0x4(%eax),%eax
476fa5:	8b 00                	mov    (%eax),%eax
476fa7:	83 f8 1c             	cmp    $0x1c,%eax
476faa:	74 17                	je     0x476fc3
476fac:	83 f8 1d             	cmp    $0x1d,%eax
476faf:	74 12                	je     0x476fc3
476fb1:	8b 75 0c             	mov    0xc(%ebp),%esi
476fb4:	52                   	push   %edx
476fb5:	56                   	push   %esi
476fb6:	53                   	push   %ebx
476fb7:	8b cf                	mov    %edi,%ecx
476fb9:	e8 50 6a fe ff       	call   0x45da0e
476fbe:	e9 10 d0 f9 ff       	jmp    0x413fd3
476fc3:	0f bf 41 0a          	movswl 0xa(%ecx),%eax
476fc7:	50                   	push   %eax
476fc8:	6a 6e                	push   $0x6e
476fca:	8b cf                	mov    %edi,%ecx
476fcc:	e8 8b 5c fd ff       	call   0x44cc5c
476fd1:	e9 fd cf f9 ff       	jmp    0x413fd3
476fd6:	ff 75 10             	push   0x10(%ebp)
476fd9:	8b 75 0c             	mov    0xc(%ebp),%esi
476fdc:	56                   	push   %esi
476fdd:	53                   	push   %ebx
476fde:	8b cf                	mov    %edi,%ecx
476fe0:	e8 e5 5e fe ff       	call   0x45ceca
476fe5:	e9 e9 cf f9 ff       	jmp    0x413fd3
476fea:	48                   	dec    %eax
476feb:	89 02                	mov    %eax,(%edx)
476fed:	8b 46 04             	mov    0x4(%esi),%eax
476ff0:	89 45 d8             	mov    %eax,-0x28(%ebp)
476ff3:	8b 46 08             	mov    0x8(%esi),%eax
476ff6:	89 45 dc             	mov    %eax,-0x24(%ebp)
476ff9:	8b 06                	mov    (%esi),%eax
476ffb:	89 45 d4             	mov    %eax,-0x2c(%ebp)
476ffe:	8b 46 0c             	mov    0xc(%esi),%eax
477001:	89 45 b4             	mov    %eax,-0x4c(%ebp)
477004:	ff 00                	incl   (%eax)
477006:	89 45 e0             	mov    %eax,-0x20(%ebp)
477009:	e9 90 cc f9 ff       	jmp    0x413c9e
47700e:	83 e8 0e             	sub    $0xe,%eax
477011:	0f 85 ed cc f9 ff    	jne    0x413d04
477017:	8d 45 e4             	lea    -0x1c(%ebp),%eax
47701a:	50                   	push   %eax
47701b:	8d 45 d4             	lea    -0x2c(%ebp),%eax
47701e:	50                   	push   %eax
47701f:	b9 e8 20 4c 00       	mov    $0x4c20e8,%ecx
477024:	e8 b7 6c fa ff       	call   0x41dce0
477029:	8b f0                	mov    %eax,%esi
47702b:	e9 d1 cc f9 ff       	jmp    0x413d01
477030:	39 35 f0 20 4c 00    	cmp    %esi,0x4c20f0
477036:	0f 84 60 d0 f9 ff    	je     0x41409c
47703c:	8d 45 e4             	lea    -0x1c(%ebp),%eax
47703f:	50                   	push   %eax
477040:	8d 45 d4             	lea    -0x2c(%ebp),%eax
477043:	50                   	push   %eax
477044:	b9 f0 20 4c 00       	mov    $0x4c20f0,%ecx
477049:	e8 31 11 fd ff       	call   0x44817f
47704e:	8b c8                	mov    %eax,%ecx
477050:	e8 8b 6c fa ff       	call   0x41dce0
477055:	8b f0                	mov    %eax,%esi
477057:	89 75 08             	mov    %esi,0x8(%ebp)
47705a:	85 f6                	test   %esi,%esi
47705c:	0f 85 a2 cc f9 ff    	jne    0x413d04
477062:	e9 35 d0 f9 ff       	jmp    0x41409c
477067:	a1 f4 20 4c 00       	mov    0x4c20f4,%eax
47706c:	8b 70 08             	mov    0x8(%eax),%esi
47706f:	e9 63 cc f9 ff       	jmp    0x413cd7
477074:	80 7d fb 00          	cmpb   $0x0,-0x5(%ebp)
477078:	0f 85 b3 cf f9 ff    	jne    0x414031
47707e:	8b 0f                	mov    (%edi),%ecx