479c96:	50                   	push   %eax
479c97:	ff 15 78 f8 48 00    	call   *0x48f878
479c9d:	ff 75 98             	push   -0x68(%ebp)
479ca0:	8b f8                	mov    %eax,%edi
479ca2:	ff 15 2c f8 48 00    	call   *0x48f82c
479ca8:	85 ff                	test   %edi,%edi
479caa:	78 69                	js     0x479d15
479cac:	8b 7d f4             	mov    -0xc(%ebp),%edi
479caf:	85 ff                	test   %edi,%edi
479cb1:	78 62                	js     0x479d15
479cb3:	8b 45 f0             	mov    -0x10(%ebp),%eax
479cb6:	39 75 9c             	cmp    %esi,-0x64(%ebp)
479cb9:	74 28                	je     0x479ce3
479cbb:	85 c0                	test   %eax,%eax
479cbd:	74 24                	je     0x479ce3
479cbf:	68 00 08 00 00       	push   $0x800
479cc4:	8d 4d a4             	lea    -0x5c(%ebp),%ecx
479cc7:	51                   	push   %ecx
479cc8:	ff 75 d0             	push   -0x30(%ebp)
479ccb:	ff 75 cc             	push   -0x34(%ebp)
479cce:	ff 75 c8             	push   -0x38(%ebp)
479cd1:	ff 75 c4             	push   -0x3c(%ebp)
479cd4:	ff 75 c0             	push   -0x40(%ebp)
479cd7:	50                   	push   %eax
479cd8:	ff 15 74 f8 48 00    	call   *0x48f874
479cde:	8b f8                	mov    %eax,%edi
479ce0:	8b 45 f0             	mov    -0x10(%ebp),%eax
479ce3:	66 89 5d 84          	mov    %bx,-0x7c(%ebp)
479ce7:	89 45 8c             	mov    %eax,-0x74(%ebp)
479cea:	85 c0                	test   %eax,%eax
479cec:	75 0c                	jne    0x479cfa
479cee:	6a 01                	push   $0x1
479cf0:	68 88 aa 4b 00       	push   $0x4baa88
479cf5:	56                   	push   %esi
479cf6:	6a 01                	push   $0x1
479cf8:	eb 1f                	jmp    0x479d19
479cfa:	85 ff                	test   %edi,%edi
479cfc:	78 17                	js     0x479d15
479cfe:	8b 4d 18             	mov    0x18(%ebp),%ecx
479d01:	8d 45 84             	lea    -0x7c(%ebp),%eax
479d04:	50                   	push   %eax
479d05:	e8 fa da fe ff       	call   0x467804
479d0a:	8b 45 8c             	mov    -0x74(%ebp),%eax
479d0d:	50                   	push   %eax
479d0e:	8b 08                	mov    (%eax),%ecx
479d10:	ff 51 08             	call   *0x8(%ecx)
479d13:	eb 0e                	jmp    0x479d23
479d15:	56                   	push   %esi
479d16:	56                   	push   %esi
479d17:	56                   	push   %esi
479d18:	57                   	push   %edi
479d19:	8b 4d f8             	mov    -0x8(%ebp),%ecx
479d1c:	e8 ba f9 ff ff       	call   0x4796db
479d21:	8b f0                	mov    %eax,%esi
479d23:	8d 8d 64 ff ff ff    	lea    -0x9c(%ebp),%ecx
479d29:	e8 36 bd f8 ff       	call   0x405a64
479d2e:	8d 8d 54 ff ff ff    	lea    -0xac(%ebp),%ecx
479d34:	e8 2b bd f8 ff       	call   0x405a64
479d39:	8d 4d dc             	lea    -0x24(%ebp),%ecx
479d3c:	e8 23 bd f8 ff       	call   0x405a64
479d41:	5f                   	pop    %edi
479d42:	8b c6                	mov    %esi,%eax
479d44:	5e                   	pop    %esi
479d45:	5b                   	pop    %ebx
479d46:	8b e5                	mov    %ebp,%esp
479d48:	5d                   	pop    %ebp
479d49:	c2 14 00             	ret    $0x14
479d4c:	55                   	push   %ebp
479d4d:	8b ec                	mov    %esp,%ebp
479d4f:	83 ec 18             	sub    $0x18,%esp
479d52:	53                   	push   %ebx
479d53:	56                   	push   %esi
479d54:	8b 75 10             	mov    0x10(%ebp),%esi
479d57:	8b d9                	mov    %ecx,%ebx
479d59:	57                   	push   %edi
479d5a:	85 f6                	test   %esi,%esi
479d5c:	0f 84 bd 00 00 00    	je     0x479e1f
479d62:	8b 7d 0c             	mov    0xc(%ebp),%edi
479d65:	83 3f 00             	cmpl   $0x0,(%edi)
479d68:	0f 84 b1 00 00 00    	je     0x479e1f
479d6e:	8b ce                	mov    %esi,%ecx
479d70:	e8 ce c7 fd ff       	call   0x456543
479d75:	84 c0                	test   %al,%al
479d77:	75 12                	jne    0x479d8b
479d79:	6a 01                	push   $0x1
479d7b:	68 dc ab 4b 00       	push   $0x4babdc
479d80:	6a 00                	push   $0x0
479d82:	6a 02                	push   $0x2
479d84:	8b cb                	mov    %ebx,%ecx
479d86:	e9 9f 00 00 00       	jmp    0x479e2a
479d8b:	8b ce                	mov    %esi,%ecx
479d8d:	e8 4b f6 f8 ff       	call   0x4093dd
479d92:	84 c0                	test   %al,%al
479d94:	74 17                	je     0x479dad
479d96:	ff 75 18             	push   0x18(%ebp)
479d99:	8b cb                	mov    %ebx,%ecx
479d9b:	ff 75 14             	push   0x14(%ebp)
479d9e:	56                   	push   %esi
479d9f:	57                   	push   %edi
479da0:	ff 75 08             	push   0x8(%ebp)
479da3:	e8 90 00 00 00       	call   0x479e38
479da8:	e9 82 00 00 00       	jmp    0x479e2f
479dad:	83 7e 0c 0c          	cmpl   $0xc,0xc(%esi)
479db1:	75 31                	jne    0x479de4
479db3:	8b 36                	mov    (%esi),%esi
479db5:	83 ec 10             	sub    $0x10,%esp
479db8:	8b cc                	mov    %esp,%ecx
479dba:	ff 75 14             	push   0x14(%ebp)
479dbd:	e8 28 f6 f8 ff       	call   0x4093ea
479dc2:	ff 37                	push   (%edi)
479dc4:	8b ce                	mov    %esi,%ecx
479dc6:	ff 75 18             	push   0x18(%ebp)
479dc9:	ff 75 08             	push   0x8(%ebp)
479dcc:	e8 d8 cb fe ff       	call   0x4669a9
479dd1:	6a 00                	push   $0x0
479dd3:	50                   	push   %eax
479dd4:	8b 03                	mov    (%ebx),%eax
479dd6:	8b 48 04             	mov    0x4(%eax),%ecx
479dd9:	03 cb                	add    %ebx,%ecx
479ddb:	e8 c3 cc fd ff       	call   0x456aa3
479de0:	33 c0                	xor    %eax,%eax
479de2:	eb 4b                	jmp    0x479e2f
479de4:	83 7e 0c 0f          	cmpl   $0xf,0xc(%esi)
479de8:	75 30                	jne    0x479e1a
479dea:	ff 75 0c             	push   0xc(%ebp)
479ded:	8b 36                	mov    (%esi),%esi
479def:	8d 4d ec             	lea    -0x14(%ebp),%ecx
479df2:	ff 75 18             	push   0x18(%ebp)
479df5:	ff 75 14             	push   0x14(%ebp)
479df8:	8b 3e                	mov    (%esi),%edi
479dfa:	e8 eb f5 f8 ff       	call   0x4093ea
479dff:	50                   	push   %eax
479e00:	8b 45 08             	mov    0x8(%ebp),%eax
479e03:	8b ce                	mov    %esi,%ecx
479e05:	0f b7 c0             	movzwl %ax,%eax
479e08:	50                   	push   %eax
479e09:	ff 17                	call   *(%edi)
479e0b:	8d 4d ec             	lea    -0x14(%ebp),%ecx
479e0e:	8b f0                	mov    %eax,%esi
479e10:	e8 0b fc f8 ff       	call   0x409a20
479e15:	6a 00                	push   $0x0
479e17:	56                   	push   %esi
479e18:	eb ba                	jmp    0x479dd4
479e1a:	83 c8 ff             	or     $0xffffffff,%eax
479e1d:	eb 10                	jmp    0x479e2f
479e1f:	6a 01                	push   $0x1
479e21:	68 88 aa 4b 00       	push   $0x4baa88
479e26:	6a 00                	push   $0x0
479e28:	6a 01                	push   $0x1
479e2a:	e8 ac f8 ff ff       	call   0x4796db
479e2f:	5f                   	pop    %edi
479e30:	5e                   	pop    %esi
479e31:	5b                   	pop    %ebx
479e32:	8b e5                	mov    %ebp,%esp
479e34:	5d                   	pop    %ebp
479e35:	c2 14 00             	ret    $0x14
479e38:	55                   	push   %ebp
479e39:	8b ec                	mov    %esp,%ebp
479e3b:	81 ec f8 00 00 00    	sub    $0xf8,%esp
479e41:	8b 45 18             	mov    0x18(%ebp),%eax
479e44:	53                   	push   %ebx
479e45:	33 db                	xor    %ebx,%ebx
479e47:	c7 45 d0 fd ff ff ff 	movl   $0xfffffffd,-0x30(%ebp)
479e4e:	56                   	push   %esi
479e4f:	8b 75 10             	mov    0x10(%ebp),%esi
479e52:	8b 40 08             	mov    0x8(%eax),%eax
479e55:	89 45 f4             	mov    %eax,-0xc(%ebp)
479e58:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
479e5b:	89 5d d8             	mov    %ebx,-0x28(%ebp)
479e5e:	89 5d dc             	mov    %ebx,-0x24(%ebp)
479e61:	89 5d e0             	mov    %ebx,-0x20(%ebp)
479e64:	89 5d f0             	mov    %ebx,-0x10(%ebp)
479e67:	88 5d fb             	mov    %bl,-0x5(%ebp)
479e6a:	57                   	push   %edi
479e6b:	8b f9                	mov    %ecx,%edi
479e6d:	89 7d e8             	mov    %edi,-0x18(%ebp)
479e70:	85 f6                	test   %esi,%esi
479e72:	0f 84 61 03 00 00    	je     0x47a1d9
479e78:	8b 45 0c             	mov    0xc(%ebp),%eax
479e7b:	39 18                	cmp    %ebx,(%eax)
479e7d:	0f 84 56 03 00 00    	je     0x47a1d9
479e83:	8b ce                	mov    %esi,%ecx
479e85:	e8 b9 c6 fd ff       	call   0x456543
479e8a:	84 c0                	test   %al,%al
479e8c:	75 11                	jne    0x479e9f
479e8e:	6a 01                	push   $0x1
479e90:	68 dc ab 4b 00       	push   $0x4babdc
479e95:	53                   	push   %ebx
479e96:	6a 02                	push   $0x2
479e98:	8b cf                	mov    %edi,%ecx
479e9a:	e9 45 03 00 00       	jmp    0x47a1e4
479e9f:	6a 08                	push   $0x8
479ea1:	58                   	pop    %eax
479ea2:	39 46 0c             	cmp    %eax,0xc(%esi)
479ea5:	75 04                	jne    0x479eab
479ea7:	8b 06                	mov    (%esi),%eax
479ea9:	eb 02                	jmp    0x479ead
479eab:	8b c3                	mov    %ebx,%eax
479ead:	8b 40 08             	mov    0x8(%eax),%eax
479eb0:	89 45 ec             	mov    %eax,-0x14(%ebp)
479eb3:	85 c0                	test   %eax,%eax
479eb5:	75 0c                	jne    0x479ec3
479eb7:	6a 01                	push   $0x1
479eb9:	68 88 aa 4b 00       	push   $0x4baa88
479ebe:	53                   	push   %ebx
479ebf:	6a 04                	push   $0x4
479ec1:	eb d5                	jmp    0x479e98
479ec3:	8b 75 14             	mov    0x14(%ebp),%esi
479ec6:	8d 4d f0             	lea    -0x10(%ebp),%ecx
479ec9:	51                   	push   %ecx
479eca:	8b c8                	mov    %eax,%ecx
479ecc:	89 9d 0c ff ff ff    	mov    %ebx,-0xf4(%ebp)
479ed2:	8b 16                	mov    (%esi),%edx
479ed4:	e8 45 db fd ff       	call   0x457a1e
479ed9:	59                   	pop    %ecx
479eda:	85 c0                	test   %eax,%eax
479edc:	79 0a                	jns    0x479ee8
479ede:	6a 01                	push   $0x1
479ee0:	53                   	push   %ebx
479ee1:	8b cf                	mov    %edi,%ecx
479ee3:	e9 fa 02 00 00       	jmp    0x47a1e2
479ee8:	33 c0                	xor    %eax,%eax
479eea:	40                   	inc    %eax
479eeb:	66 39 45 08          	cmp    %ax,0x8(%ebp)
479eef:	75 4d                	jne    0x479f3e
479ef1:	8b 55 f0             	mov    -0x10(%ebp),%edx
479ef4:	c7 45 08 03 00 00 00 	movl   $0x3,0x8(%ebp)
479efb:	85 d2                	test   %edx,%edx
479efd:	74 3f                	je     0x479f3e
479eff:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax
479f05:	50                   	push   %eax
479f06:	51                   	push   %ecx
479f07:	ff 36                	push   (%esi)
479f09:	8b 4d ec             	mov    -0x14(%ebp),%ecx
479f0c:	e8 b4 d7 fd ff       	call   0x4576c5
479f11:	83 c4 0c             	add    $0xc,%esp
479f14:	85 c0                	test   %eax,%eax
479f16:	78 26                	js     0x479f3e
479f18:	f6 85 10 ff ff ff 01 	testb  $0x1,-0xf0(%ebp)
479f1f:	74 0d                	je     0x479f2e
479f21:	66 39 9d 18 ff ff ff 	cmp    %bx,-0xe8(%ebp)
479f28:	75 04                	jne    0x479f2e
479f2a:	c6 45 fb 01          	movb   $0x1,-0x5(%ebp)
479f2e:	83 bd 10 ff ff ff 01 	cmpl   $0x1,-0xf0(%ebp)
479f35:	75 07                	jne    0x479f3e
479f37:	c7 45 08 01 00 00 00 	movl   $0x1,0x8(%ebp)
479f3e:	8b 75 f4             	mov    -0xc(%ebp),%esi
479f41:	33 c9                	xor    %ecx,%ecx
479f43:	46                   	inc    %esi
479f44:	6a 10                	push   $0x10
479f46:	5a                   	pop    %edx
479f47:	8b c6                	mov    %esi,%eax
479f49:	89 75 14             	mov    %esi,0x14(%ebp)
479f4c:	f7 e2                	mul    %edx
479f4e:	6a 04                	push   $0x4
479f50:	5a                   	pop    %edx
479f51:	0f 90 c1             	seto   %cl
479f54:	f7 d9                	neg    %ecx
479f56:	0b c8                	or     %eax,%ecx
479f58:	33 c0                	xor    %eax,%eax
479f5a:	03 ca                	add    %edx,%ecx
479f5c:	0f 92 c0             	setb   %al
479f5f:	f7 d8                	neg    %eax
479f61:	0b c1                	or     %ecx,%eax
479f63:	50                   	push   %eax
479f64:	e8 3c 70 fa ff       	call   0x420fa5
479f69:	59                   	pop    %ecx
479f6a:	85 c0                	test   %eax,%eax
479f6c:	74 27                	je     0x479f95
479f6e:	8d 50 04             	lea    0x4(%eax),%edx
479f71:	89 30                	mov    %esi,(%eax)
479f73:	8b 45 14             	mov    0x14(%ebp),%eax
479f76:	8b f2                	mov    %edx,%esi
479f78:	48                   	dec    %eax
479f79:	89 55 10             	mov    %edx,0x10(%ebp)
479f7c:	78 1c                	js     0x479f9a
479f7e:	8b f8                	mov    %eax,%edi
479f80:	8b ce                	mov    %esi,%ecx
479f82:	e8 0f d1 fd ff       	call   0x457096
479f87:	83 c6 10             	add    $0x10,%esi
479f8a:	4f                   	dec    %edi
479f8b:	79 f3                	jns    0x479f80
479f8d:	8b 7d e8             	mov    -0x18(%ebp),%edi
479f90:	8b 55 10             	mov    0x10(%ebp),%edx
479f93:	eb 05                	jmp    0x479f9a
479f95:	8b d3                	mov    %ebx,%edx
479f97:	89 5d 10             	mov    %ebx,0x10(%ebp)
479f9a:	8b 45 f4             	mov    -0xc(%ebp),%eax
479f9d:	8b f3                	mov    %ebx,%esi
479f9f:	85 c0                	test   %eax,%eax
479fa1:	74 2f                	je     0x479fd2
479fa3:	8b f8                	mov    %eax,%edi
479fa5:	8b df                	mov    %edi,%ebx
479fa7:	c1 e3 04             	shl    $0x4,%ebx
479faa:	83 c3 f0             	add    $0xfffffff0,%ebx
479fad:	03 da                	add    %edx,%ebx
479faf:	8b 45 18             	mov    0x18(%ebp),%eax
479fb2:	8b cb                	mov    %ebx,%ecx
479fb4:	8b 40 04             	mov    0x4(%eax),%eax
479fb7:	ff 34 b0             	push   (%eax,%esi,4)
479fba:	e8 1d d1 fd ff       	call   0x4570dc
479fbf:	46                   	inc    %esi
479fc0:	83 eb 10             	sub    $0x10,%ebx
479fc3:	3b f7                	cmp    %edi,%esi
479fc5:	72 e8                	jb     0x479faf
479fc7:	8b 7d e8             	mov    -0x18(%ebp),%edi
479fca:	33 db                	xor    %ebx,%ebx
479fcc:	8b 45 f4             	mov    -0xc(%ebp),%eax
479fcf:	8b 55 10             	mov    0x10(%ebp),%edx
479fd2:	83 bd 0c ff ff ff 00 	cmpl   $0x0,-0xf4(%ebp)
479fd9:	74 7d                	je     0x47a058
479fdb:	8b cb                	mov    %ebx,%ecx
479fdd:	89 4d 14             	mov    %ecx,0x14(%ebp)
479fe0:	85 c0                	test   %eax,%eax
479fe2:	74 74                	je     0x47a058
479fe4:	8b 7d 18             	mov    0x18(%ebp),%edi
479fe7:	8d 72 f0             	lea    -0x10(%edx),%esi
479fea:	c1 e0 04             	shl    $0x4,%eax
479fed:	6a 02                	push   $0x2
479fef:	03 f0                	add    %eax,%esi
479ff1:	8b 45 f4             	mov    -0xc(%ebp),%eax
479ff4:	5a                   	pop    %edx
479ff5:	66 39 94 8d 1e ff ff 	cmp    %dx,-0xe2(%ebp,%ecx,4)
479ffc:	ff
479ffd:	75 4b                	jne    0x47a04a
479fff:	56                   	push   %esi
47a000:	ff 15 5c f4 48 00    	call   *0x48f45c
47a006:	8b 4d 14             	mov    0x14(%ebp),%ecx
47a009:	ba 08 40 00 00       	mov    $0x4008,%edx
47a00e:	0f b7 84 8d 1c ff ff 	movzwl -0xe4(%ebp,%ecx,4),%eax
47a015:	ff
47a016:	66 89 06             	mov    %ax,(%esi)
47a019:	66 3b c2             	cmp    %dx,%ax
47a01c:	75 17                	jne    0x47a035
47a01e:	68 10 f9 48 00       	push   $0x48f910
47a023:	ff 15 78 f4 48 00    	call   *0x48f478
47a029:	8b 4d 14             	mov    0x14(%ebp),%ecx
47a02c:	89 45 cc             	mov    %eax,-0x34(%ebp)
47a02f:	8d 45 cc             	lea    -0x34(%ebp),%eax
47a032:	89 46 08             	mov    %eax,0x8(%esi)
47a035:	8b 47 04             	mov    0x4(%edi),%eax
47a038:	6a 02                	push   $0x2
47a03a:	5a                   	pop    %edx
47a03b:	8b 04 88             	mov    (%eax,%ecx,4),%eax
47a03e:	83 78 0c 06          	cmpl   $0x6,0xc(%eax)
47a042:	8b 45 f4             	mov    -0xc(%ebp),%eax
47a045:	74 03                	je     0x47a04a
47a047:	89 76 08             	mov    %esi,0x8(%esi)
47a04a:	41                   	inc    %ecx
47a04b:	83 ee 10             	sub    $0x10,%esi