477c0b:	8b 49 10             	mov    0x10(%ecx),%ecx
477c0e:	e8 89 20 f9 ff       	call   0x409c9c
477c13:	89 45 e8             	mov    %eax,-0x18(%ebp)
477c16:	83 fe 06             	cmp    $0x6,%esi
477c19:	72 0e                	jb     0x477c29
477c1b:	8b 4b 04             	mov    0x4(%ebx),%ecx
477c1e:	8b 49 14             	mov    0x14(%ecx),%ecx
477c21:	e8 76 20 f9 ff       	call   0x409c9c
477c26:	89 45 e4             	mov    %eax,-0x1c(%ebp)
477c29:	83 fe 07             	cmp    $0x7,%esi
477c2c:	0f 82 87 00 00 00    	jb     0x477cb9
477c32:	8b 4b 04             	mov    0x4(%ebx),%ecx
477c35:	8b 49 18             	mov    0x18(%ecx),%ecx
477c38:	e8 5f 20 f9 ff       	call   0x409c9c
477c3d:	83 f8 ff             	cmp    $0xffffffff,%eax
477c40:	74 77                	je     0x477cb9
477c42:	8b 43 04             	mov    0x4(%ebx),%eax
477c45:	8b 48 18             	mov    0x18(%eax),%ecx
477c48:	e8 4f 20 f9 ff       	call   0x409c9c
477c4d:	83 7d 10 01          	cmpl   $0x1,0x10(%ebp)
477c51:	8b c8                	mov    %eax,%ecx
477c53:	89 4d d0             	mov    %ecx,-0x30(%ebp)
477c56:	75 29                	jne    0x477c81
477c58:	f6 c1 08             	test   $0x8,%cl
477c5b:	74 0a                	je     0x477c67
477c5d:	b8 02 00 00 50       	mov    $0x50000002,%eax
477c62:	89 45 ec             	mov    %eax,-0x14(%ebp)
477c65:	eb 02                	jmp    0x477c69
477c67:	8b c7                	mov    %edi,%eax
477c69:	f6 c1 04             	test   $0x4,%cl
477c6c:	74 10                	je     0x477c7e
477c6e:	0f be c0             	movsbl %al,%eax
477c71:	83 e0 02             	and    $0x2,%eax
477c74:	0d 01 00 00 a0       	or     $0xa0000001,%eax
477c79:	d1 e8                	shr    $1,%eax
477c7b:	89 45 ec             	mov    %eax,-0x14(%ebp)
477c7e:	8b 7d ec             	mov    -0x14(%ebp),%edi
477c81:	8a c1                	mov    %cl,%al
477c83:	24 02                	and    $0x2,%al
477c85:	0f be c0             	movsbl %al,%eax
477c88:	f7 d8                	neg    %eax
477c8a:	1b c0                	sbb    %eax,%eax
477c8c:	f7 d0                	not    %eax
477c8e:	23 45 f0             	and    -0x10(%ebp),%eax
477c91:	8b f0                	mov    %eax,%esi
477c93:	89 75 f0             	mov    %esi,-0x10(%ebp)
477c96:	f6 c1 01             	test   $0x1,%cl
477c99:	74 0a                	je     0x477ca5
477c9b:	b8 00 00 80 88       	mov    $0x88800000,%eax
477ca0:	89 45 f8             	mov    %eax,-0x8(%ebp)
477ca3:	eb 05                	jmp    0x477caa
477ca5:	b8 00 00 c0 88       	mov    $0x88c00000,%eax
477caa:	f6 c1 10             	test   $0x10,%cl
477cad:	74 0d                	je     0x477cbc
477caf:	35 00 00 00 08       	xor    $0x8000000,%eax
477cb4:	89 45 f8             	mov    %eax,-0x8(%ebp)
477cb7:	eb 03                	jmp    0x477cbc
477cb9:	8b 75 f0             	mov    -0x10(%ebp),%esi
477cbc:	83 7d e8 ff          	cmpl   $0xffffffff,-0x18(%ebp)
477cc0:	8b 4d f4             	mov    -0xc(%ebp),%ecx
477cc3:	75 0d                	jne    0x477cd2
477cc5:	8b 45 dc             	mov    -0x24(%ebp),%eax
477cc8:	2b c1                	sub    %ecx,%eax
477cca:	99                   	cltd
477ccb:	2b c2                	sub    %edx,%eax
477ccd:	d1 f8                	sar    $1,%eax
477ccf:	89 45 e8             	mov    %eax,-0x18(%ebp)
477cd2:	83 7d e4 ff          	cmpl   $0xffffffff,-0x1c(%ebp)
477cd6:	75 0e                	jne    0x477ce6
477cd8:	8b 45 e0             	mov    -0x20(%ebp),%eax
477cdb:	2b 45 fc             	sub    -0x4(%ebp),%eax
477cde:	99                   	cltd
477cdf:	2b c2                	sub    %edx,%eax
477ce1:	d1 f8                	sar    $1,%eax
477ce3:	89 45 e4             	mov    %eax,-0x1c(%ebp)
477ce6:	ff 75 fc             	push   -0x4(%ebp)
477ce9:	8d 45 d4             	lea    -0x2c(%ebp),%eax
477cec:	51                   	push   %ecx
477ced:	6a 00                	push   $0x0
477cef:	6a 00                	push   $0x0
477cf1:	50                   	push   %eax
477cf2:	ff 15 c4 f5 48 00    	call   *0x48f5c4
477cf8:	56                   	push   %esi
477cf9:	6a 00                	push   $0x0
477cfb:	ff 75 f8             	push   -0x8(%ebp)
477cfe:	8d 45 d4             	lea    -0x2c(%ebp),%eax
477d01:	50                   	push   %eax
477d02:	ff 15 cc f4 48 00    	call   *0x48f4cc
477d08:	8b 43 04             	mov    0x4(%ebx),%eax
477d0b:	8b 30                	mov    (%eax),%esi
477d0d:	8b ce                	mov    %esi,%ecx
477d0f:	e8 83 1c f9 ff       	call   0x409997
477d14:	8b 46 08             	mov    0x8(%esi),%eax
477d17:	8b 35 20 f7 48 00    	mov    0x48f720,%esi
477d1d:	8b 08                	mov    (%eax),%ecx
477d1f:	33 c0                	xor    %eax,%eax
477d21:	50                   	push   %eax
477d22:	50                   	push   %eax
477d23:	50                   	push   %eax
477d24:	ff 35 ac 62 4c 00    	push   0x4c62ac
477d2a:	8b 45 e0             	mov    -0x20(%ebp),%eax
477d2d:	2b 45 d8             	sub    -0x28(%ebp),%eax
477d30:	50                   	push   %eax
477d31:	8b 45 dc             	mov    -0x24(%ebp),%eax
477d34:	2b 45 d4             	sub    -0x2c(%ebp),%eax
477d37:	50                   	push   %eax
477d38:	ff 75 e4             	push   -0x1c(%ebp)
477d3b:	ff 75 e8             	push   -0x18(%ebp)
477d3e:	ff 75 f8             	push   -0x8(%ebp)
477d41:	51                   	push   %ecx
477d42:	68 6c f9 48 00       	push   $0x48f96c
477d47:	ff 75 f0             	push   -0x10(%ebp)
477d4a:	ff d6                	call   *%esi
477d4c:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
477d4f:	a3 a0 62 4c 00       	mov    %eax,0x4c62a0
477d54:	51                   	push   %ecx
477d55:	50                   	push   %eax
477d56:	ff 15 34 f6 48 00    	call   *0x48f634
477d5c:	8b 4d dc             	mov    -0x24(%ebp),%ecx
477d5f:	8b 45 e0             	mov    -0x20(%ebp),%eax
477d62:	2b 4d d4             	sub    -0x2c(%ebp),%ecx
477d65:	2b 45 d8             	sub    -0x28(%ebp),%eax
477d68:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
477d6c:	0f 85 3b 01 00 00    	jne    0x477ead
477d72:	33 ff                	xor    %edi,%edi
477d74:	57                   	push   %edi
477d75:	57                   	push   %edi
477d76:	57                   	push   %edi
477d77:	ff 35 a0 62 4c 00    	push   0x4c62a0
477d7d:	89 7d 10             	mov    %edi,0x10(%ebp)
477d80:	50                   	push   %eax
477d81:	51                   	push   %ecx
477d82:	57                   	push   %edi
477d83:	57                   	push   %edi
477d84:	68 0e 00 00 50       	push   $0x5000000e
477d89:	57                   	push   %edi
477d8a:	68 00 f9 48 00       	push   $0x48f900
477d8f:	57                   	push   %edi
477d90:	ff d6                	call   *%esi
477d92:	8b 4b 04             	mov    0x4(%ebx),%ecx
477d95:	89 45 d0             	mov    %eax,-0x30(%ebp)
477d98:	8b 71 04             	mov    0x4(%ecx),%esi
477d9b:	8b ce                	mov    %esi,%ecx
477d9d:	e8 f5 1b f9 ff       	call   0x409997
477da2:	8b 4e 08             	mov    0x8(%esi),%ecx
477da5:	57                   	push   %edi
477da6:	57                   	push   %edi
477da7:	6a 03                	push   $0x3
477da9:	57                   	push   %edi
477daa:	57                   	push   %edi
477dab:	68 00 00 00 80       	push   $0x80000000
477db0:	ff 31                	push   (%ecx)
477db2:	ff 15 d4 f1 48 00    	call   *0x48f1d4
477db8:	8b d8                	mov    %eax,%ebx
477dba:	83 fb ff             	cmp    $0xffffffff,%ebx
477dbd:	0f 84 d2 02 00 00    	je     0x478095
477dc3:	57                   	push   %edi
477dc4:	53                   	push   %ebx
477dc5:	ff 15 f0 f2 48 00    	call   *0x48f2f0
477dcb:	8b f0                	mov    %eax,%esi
477dcd:	56                   	push   %esi
477dce:	6a 02                	push   $0x2
477dd0:	ff 15 ec f2 48 00    	call   *0x48f2ec
477dd6:	8b f8                	mov    %eax,%edi
477dd8:	57                   	push   %edi
477dd9:	ff 15 e4 f2 48 00    	call   *0x48f2e4
477ddf:	6a 00                	push   $0x0
477de1:	8d 4d fc             	lea    -0x4(%ebp),%ecx
477de4:	51                   	push   %ecx
477de5:	56                   	push   %esi
477de6:	50                   	push   %eax
477de7:	53                   	push   %ebx
477de8:	ff 15 e0 f1 48 00    	call   *0x48f1e0
477dee:	57                   	push   %edi
477def:	8b f0                	mov    %eax,%esi
477df1:	ff 15 e8 f2 48 00    	call   *0x48f2e8
477df7:	53                   	push   %ebx
477df8:	ff 15 5c f3 48 00    	call   *0x48f35c
477dfe:	85 f6                	test   %esi,%esi
477e00:	75 0c                	jne    0x477e0e
477e02:	57                   	push   %edi
477e03:	ff 15 f4 f2 48 00    	call   *0x48f2f4
477e09:	e9 87 02 00 00       	jmp    0x478095
477e0e:	8d 45 08             	lea    0x8(%ebp),%eax
477e11:	50                   	push   %eax
477e12:	6a 01                	push   $0x1
477e14:	57                   	push   %edi
477e15:	ff 15 54 f8 48 00    	call   *0x48f854
477e1b:	8d 45 10             	lea    0x10(%ebp),%eax
477e1e:	33 db                	xor    %ebx,%ebx
477e20:	50                   	push   %eax
477e21:	68 ac 2c 49 00       	push   $0x492cac
477e26:	53                   	push   %ebx
477e27:	53                   	push   %ebx
477e28:	ff 75 08             	push   0x8(%ebp)
477e2b:	ff 15 60 f4 48 00    	call   *0x48f460
477e31:	8b 45 08             	mov    0x8(%ebp),%eax
477e34:	50                   	push   %eax
477e35:	8b 08                	mov    (%eax),%ecx
477e37:	ff 51 08             	call   *0x8(%ecx)
477e3a:	57                   	push   %edi
477e3b:	ff 15 f4 f2 48 00    	call   *0x48f2f4
477e41:	8b 4d 10             	mov    0x10(%ebp),%ecx
477e44:	85 c9                	test   %ecx,%ecx
477e46:	0f 84 49 02 00 00    	je     0x478095
477e4c:	8b 01                	mov    (%ecx),%eax
477e4e:	8d 55 0c             	lea    0xc(%ebp),%edx
477e51:	52                   	push   %edx
477e52:	51                   	push   %ecx
477e53:	ff 50 0c             	call   *0xc(%eax)
477e56:	68 00 20 00 00       	push   $0x2000
477e5b:	53                   	push   %ebx
477e5c:	53                   	push   %ebx
477e5d:	53                   	push   %ebx
477e5e:	ff 75 0c             	push   0xc(%ebp)
477e61:	ff 15 d0 f4 48 00    	call   *0x48f4d0
477e67:	89 45 0c             	mov    %eax,0xc(%ebp)
477e6a:	8b 45 10             	mov    0x10(%ebp),%eax
477e6d:	50                   	push   %eax
477e6e:	8b 08                	mov    (%eax),%ecx
477e70:	ff 51 08             	call   *0x8(%ecx)
477e73:	ff 75 0c             	push   0xc(%ebp)
477e76:	8b 75 d0             	mov    -0x30(%ebp),%esi
477e79:	53                   	push   %ebx
477e7a:	68 72 01 00 00       	push   $0x172
477e7f:	56                   	push   %esi
477e80:	ff 15 88 f6 48 00    	call   *0x48f688
477e86:	8b 45 0c             	mov    0xc(%ebp),%eax
477e89:	a3 9c 62 4c 00       	mov    %eax,0x4c629c
477e8e:	8b 45 e0             	mov    -0x20(%ebp),%eax
477e91:	2b 45 d8             	sub    -0x28(%ebp),%eax
477e94:	6a 20                	push   $0x20
477e96:	50                   	push   %eax
477e97:	8b 45 dc             	mov    -0x24(%ebp),%eax
477e9a:	2b 45 d4             	sub    -0x2c(%ebp),%eax
477e9d:	50                   	push   %eax
477e9e:	53                   	push   %ebx
477e9f:	53                   	push   %ebx
477ea0:	53                   	push   %ebx
477ea1:	56                   	push   %esi
477ea2:	ff 15 d4 f4 48 00    	call   *0x48f4d4
477ea8:	e9 da 01 00 00       	jmp    0x478087
477ead:	83 e8 16             	sub    $0x16,%eax
477eb0:	83 e9 16             	sub    $0x16,%ecx
477eb3:	89 45 fc             	mov    %eax,-0x4(%ebp)
477eb6:	8b 43 04             	mov    0x4(%ebx),%eax
477eb9:	89 4d 10             	mov    %ecx,0x10(%ebp)
477ebc:	8b 70 04             	mov    0x4(%eax),%esi
477ebf:	8b ce                	mov    %esi,%ecx
477ec1:	e8 d1 1a f9 ff       	call   0x409997
477ec6:	8b 46 08             	mov    0x8(%esi),%eax
477ec9:	33 f6                	xor    %esi,%esi
477ecb:	56                   	push   %esi
477ecc:	56                   	push   %esi
477ecd:	56                   	push   %esi
477ece:	ff 35 a0 62 4c 00    	push   0x4c62a0
477ed4:	ff 75 fc             	push   -0x4(%ebp)
477ed7:	ff 75 10             	push   0x10(%ebp)
477eda:	6a 0b                	push   $0xb
477edc:	6a 0b                	push   $0xb
477ede:	57                   	push   %edi
477edf:	ff 30                	push   (%eax)
477ee1:	68 00 f9 48 00       	push   $0x48f900
477ee6:	56                   	push   %esi
477ee7:	ff 15 20 f7 48 00    	call   *0x48f720
477eed:	56                   	push   %esi
477eee:	56                   	push   %esi
477eef:	56                   	push   %esi
477ef0:	8b f8                	mov    %eax,%edi
477ef2:	68 f0 a8 4b 00       	push   $0x4ba8f0
477ef7:	89 7d f8             	mov    %edi,-0x8(%ebp)
477efa:	ff 15 10 f1 48 00    	call   *0x48f110
477f00:	6a 11                	push   $0x11
477f02:	8b f0                	mov    %eax,%esi
477f04:	ff 15 14 f1 48 00    	call   *0x48f114
477f0a:	50                   	push   %eax
477f0b:	56                   	push   %esi
477f0c:	ff 15 ec f0 48 00    	call   *0x48f0ec
477f12:	8d 85 48 ff ff ff    	lea    -0xb8(%ebp),%eax
477f18:	50                   	push   %eax
477f19:	6a 40                	push   $0x40
477f1b:	56                   	push   %esi
477f1c:	ff 15 18 f1 48 00    	call   *0x48f118
477f22:	6a 5a                	push   $0x5a
477f24:	56                   	push   %esi
477f25:	ff 15 d4 f0 48 00    	call   *0x48f0d4
477f2b:	56                   	push   %esi
477f2c:	89 45 f4             	mov    %eax,-0xc(%ebp)
477f2f:	ff 15 08 f1 48 00    	call   *0x48f108
477f35:	83 7d 0c 08          	cmpl   $0x8,0xc(%ebp)
477f39:	72 3d                	jb     0x477f78
477f3b:	8b 4b 04             	mov    0x4(%ebx),%ecx
477f3e:	8b 71 1c             	mov    0x1c(%ecx),%esi
477f41:	8b ce                	mov    %esi,%ecx
477f43:	e8 4f 1a f9 ff       	call   0x409997
477f48:	8b 46 08             	mov    0x8(%esi),%eax
477f4b:	ff 30                	push   (%eax)
477f4d:	e8 ea ae fa ff       	call   0x422e3c
477f52:	59                   	pop    %ecx
477f53:	83 f8 01             	cmp    $0x1,%eax
477f56:	72 20                	jb     0x477f78
477f58:	8b 43 04             	mov    0x4(%ebx),%eax
477f5b:	8b 70 1c             	mov    0x1c(%eax),%esi
477f5e:	8b ce                	mov    %esi,%ecx
477f60:	e8 32 1a f9 ff       	call   0x409997
477f65:	8b 46 08             	mov    0x8(%esi),%eax
477f68:	ff 30                	push   (%eax)
477f6a:	8d 85 48 ff ff ff    	lea    -0xb8(%ebp),%eax
477f70:	50                   	push   %eax
477f71:	e8 86 b0 fa ff       	call   0x422ffc
477f76:	59                   	pop    %ecx
477f77:	59                   	pop    %ecx
477f78:	83 7d 0c 09          	cmpl   $0x9,0xc(%ebp)
477f7c:	72 1f                	jb     0x477f9d
477f7e:	8b 43 04             	mov    0x4(%ebx),%eax
477f81:	8b 48 20             	mov    0x20(%eax),%ecx
477f84:	e8 13 1d f9 ff       	call   0x409c9c
477f89:	83 f8 06             	cmp    $0x6,%eax
477f8c:	7c 0f                	jl     0x477f9d
477f8e:	8b 43 04             	mov    0x4(%ebx),%eax
477f91:	8b 48 20             	mov    0x20(%eax),%ecx
477f94:	e8 03 1d f9 ff       	call   0x409c9c
477f99:	8b f0                	mov    %eax,%esi
477f9b:	eb 03                	jmp    0x477fa0
477f9d:	6a 0c                	push   $0xc
477f9f:	5e                   	pop    %esi
477fa0:	83 7d 0c 0a          	cmpl   $0xa,0xc(%ebp)
477fa4:	72 2e                	jb     0x477fd4
477fa6:	8b 4b 04             	mov    0x4(%ebx),%ecx
477fa9:	8b 49 24             	mov    0x24(%ecx),%ecx
477fac:	e8 eb 1c f9 ff       	call   0x409c9c
477fb1:	85 c0                	test   %eax,%eax
477fb3:	78 1f                	js     0x477fd4
477fb5:	8b 43 04             	mov    0x4(%ebx),%eax
477fb8:	8b 48 24             	mov    0x24(%eax),%ecx
477fbb:	e8 dc 1c f9 ff       	call   0x409c9c
477fc0:	3d e8 03 00 00       	cmp    $0x3e8,%eax
477fc5:	7f 0d                	jg     0x477fd4
477fc7:	8b 43 04             	mov    0x4(%ebx),%eax
477fca:	8b 48 24             	mov    0x24(%eax),%ecx
477fcd:	e8 ca 1c f9 ff       	call   0x409c9c
477fd2:	eb 05                	jmp    0x477fd9
477fd4:	b8 90 01 00 00       	mov    $0x190,%eax
477fd9:	8d 8d 48 ff ff ff    	lea    -0xb8(%ebp),%ecx
477fdf:	51                   	push   %ecx
477fe0:	33 c9                	xor    %ecx,%ecx
477fe2:	51                   	push   %ecx
477fe3:	6a 02                	push   $0x2
477fe5:	51                   	push   %ecx
477fe6:	6a 04                	push   $0x4