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
47a04e:	89 4d 14             	mov    %ecx,0x14(%ebp)
47a051:	3b c8                	cmp    %eax,%ecx
47a053:	72 a0                	jb     0x479ff5
47a055:	8b 7d e8             	mov    -0x18(%ebp),%edi
47a058:	f6 45 08 0c          	testb  $0xc,0x8(%ebp)
47a05c:	89 45 dc             	mov    %eax,-0x24(%ebp)
47a05f:	8b 45 10             	mov    0x10(%ebp),%eax
47a062:	89 45 d4             	mov    %eax,-0x2c(%ebp)
47a065:	74 0d                	je     0x47a074
47a067:	8d 45 d0             	lea    -0x30(%ebp),%eax
47a06a:	c7 45 e0 01 00 00 00 	movl   $0x1,-0x20(%ebp)
47a071:	89 45 d8             	mov    %eax,-0x28(%ebp)
47a074:	8d 45 bc             	lea    -0x44(%ebp),%eax
47a077:	50                   	push   %eax
47a078:	ff 15 7c f4 48 00    	call   *0x48f47c
47a07e:	6a 20                	push   $0x20
47a080:	8d 45 9c             	lea    -0x64(%ebp),%eax
47a083:	53                   	push   %ebx
47a084:	50                   	push   %eax
47a085:	e8 96 8f fa ff       	call   0x423020
47a08a:	8b 4d ec             	mov    -0x14(%ebp),%ecx
47a08d:	8d 55 e4             	lea    -0x1c(%ebp),%edx
47a090:	83 c4 0c             	add    $0xc,%esp
47a093:	be 00 08 00 00       	mov    $0x800,%esi
47a098:	80 7d fb 00          	cmpb   $0x0,-0x5(%ebp)
47a09c:	8b 01                	mov    (%ecx),%eax
47a09e:	52                   	push   %edx
47a09f:	8d 55 9c             	lea    -0x64(%ebp),%edx
47a0a2:	52                   	push   %edx
47a0a3:	74 03                	je     0x47a0a8
47a0a5:	53                   	push   %ebx
47a0a6:	eb 04                	jmp    0x47a0ac
47a0a8:	8d 55 bc             	lea    -0x44(%ebp),%edx
47a0ab:	52                   	push   %edx
47a0ac:	8d 55 d4             	lea    -0x2c(%ebp),%edx
47a0af:	52                   	push   %edx
47a0b0:	ff 75 08             	push   0x8(%ebp)
47a0b3:	56                   	push   %esi
47a0b4:	68 2c 2c 49 00       	push   $0x492c2c
47a0b9:	ff 75 f0             	push   -0x10(%ebp)
47a0bc:	51                   	push   %ecx
47a0bd:	ff 50 18             	call   *0x18(%eax)
47a0c0:	3d 03 00 02 80       	cmp    $0x80020003,%eax
47a0c5:	75 3c                	jne    0x47a103
47a0c7:	83 7d e0 01          	cmpl   $0x1,-0x20(%ebp)
47a0cb:	75 4d                	jne    0x47a11a
47a0cd:	8b 55 ec             	mov    -0x14(%ebp),%edx
47a0d0:	8d 7d e4             	lea    -0x1c(%ebp),%edi
47a0d3:	6a 04                	push   $0x4
47a0d5:	59                   	pop    %ecx
47a0d6:	57                   	push   %edi
47a0d7:	33 c0                	xor    %eax,%eax
47a0d9:	8d 7d 9c             	lea    -0x64(%ebp),%edi
47a0dc:	66 39 4d 08          	cmp    %cx,0x8(%ebp)
47a0e0:	8b 0a                	mov    (%edx),%ecx
47a0e2:	57                   	push   %edi
47a0e3:	53                   	push   %ebx
47a0e4:	0f 94 c0             	sete   %al
47a0e7:	8d 7d d4             	lea    -0x2c(%ebp),%edi
47a0ea:	57                   	push   %edi
47a0eb:	8d 04 85 04 00 00 00 	lea    0x4(,%eax,4),%eax
47a0f2:	50                   	push   %eax
47a0f3:	56                   	push   %esi
47a0f4:	68 2c 2c 49 00       	push   $0x492c2c
47a0f9:	ff 75 f0             	push   -0x10(%ebp)
47a0fc:	52                   	push   %edx
47a0fd:	ff 51 18             	call   *0x18(%ecx)
47a100:	8b 7d e8             	mov    -0x18(%ebp),%edi
47a103:	85 c0                	test   %eax,%eax
47a105:	79 26                	jns    0x47a12d
47a107:	b9 09 00 02 80       	mov    $0x80020009,%ecx
47a10c:	3b c1                	cmp    %ecx,%eax
47a10e:	75 0a                	jne    0x47a11a
47a110:	6a 01                	push   $0x1
47a112:	53                   	push   %ebx
47a113:	8d 45 9c             	lea    -0x64(%ebp),%eax
47a116:	50                   	push   %eax
47a117:	51                   	push   %ecx
47a118:	eb 05                	jmp    0x47a11f
47a11a:	6a 01                	push   $0x1
47a11c:	53                   	push   %ebx
47a11d:	53                   	push   %ebx
47a11e:	50                   	push   %eax
47a11f:	8b cf                	mov    %edi,%ecx
47a121:	e8 b5 f5 ff ff       	call   0x4796db
47a126:	8b d8                	mov    %eax,%ebx
47a128:	e9 8f 00 00 00       	jmp    0x47a1bc
47a12d:	8b 07                	mov    (%edi),%eax
47a12f:	53                   	push   %ebx
47a130:	53                   	push   %ebx
47a131:	8b 48 04             	mov    0x4(%eax),%ecx
47a134:	03 cf                	add    %edi,%ecx
47a136:	e8 68 c9 fd ff       	call   0x456aa3
47a13b:	8d 45 bc             	lea    -0x44(%ebp),%eax
47a13e:	50                   	push   %eax
47a13f:	8b 45 0c             	mov    0xc(%ebp),%eax
47a142:	8b 08                	mov    (%eax),%ecx
47a144:	e8 bb d6 fe ff       	call   0x467804
47a149:	8b 45 f4             	mov    -0xc(%ebp),%eax
47a14c:	8b f3                	mov    %ebx,%esi
47a14e:	85 c0                	test   %eax,%eax
47a150:	74 6a                	je     0x47a1bc
47a152:	8b 4d 10             	mov    0x10(%ebp),%ecx
47a155:	c1 e0 04             	shl    $0x4,%eax
47a158:	8d 79 f0             	lea    -0x10(%ecx),%edi
47a15b:	03 f8                	add    %eax,%edi
47a15d:	8b 45 18             	mov    0x18(%ebp),%eax
47a160:	8b 40 04             	mov    0x4(%eax),%eax
47a163:	8b 04 b0             	mov    (%eax,%esi,4),%eax
47a166:	83 78 0c 06          	cmpl   $0x6,0xc(%eax)
47a16a:	75 47                	jne    0x47a1b3
47a16c:	83 bd 0c ff ff ff 00 	cmpl   $0x0,-0xf4(%ebp)
47a173:	74 2c                	je     0x47a1a1
47a175:	0f b7 8c b5 1c ff ff 	movzwl -0xe4(%ebp,%esi,4),%ecx
47a17c:	ff
47a17d:	ba 24 40 00 00       	mov    $0x4024,%edx
47a182:	66 3b ca             	cmp    %dx,%cx
47a185:	74 2c                	je     0x47a1b3
47a187:	f6 84 b5 1e ff ff ff 	testb  $0x2,-0xe2(%ebp,%esi,4)
47a18e:	02
47a18f:	75 10                	jne    0x47a1a1
47a191:	f7 c1 00 40 00 00    	test   $0x4000,%ecx
47a197:	75 08                	jne    0x47a1a1
47a199:	6a 08                	push   $0x8
47a19b:	59                   	pop    %ecx
47a19c:	66 39 0f             	cmp    %cx,(%edi)
47a19f:	75 12                	jne    0x47a1b3
47a1a1:	83 78 0c 06          	cmpl   $0x6,0xc(%eax)
47a1a5:	75 04                	jne    0x47a1ab
47a1a7:	8b 08                	mov    (%eax),%ecx
47a1a9:	eb 02                	jmp    0x47a1ad
47a1ab:	8b cb                	mov    %ebx,%ecx
47a1ad:	57                   	push   %edi
47a1ae:	e8 51 d6 fe ff       	call   0x467804
47a1b3:	46                   	inc    %esi
47a1b4:	83 ef 10             	sub    $0x10,%edi
47a1b7:	3b 75 f4             	cmp    -0xc(%ebp),%esi
47a1ba:	72 a1                	jb     0x47a15d
47a1bc:	8d 45 bc             	lea    -0x44(%ebp),%eax
47a1bf:	50                   	push   %eax
47a1c0:	ff 15 5c f4 48 00    	call   *0x48f45c
47a1c6:	8b 45 10             	mov    0x10(%ebp),%eax
47a1c9:	85 c0                	test   %eax,%eax
47a1cb:	74 08                	je     0x47a1d5
47a1cd:	51                   	push   %ecx
47a1ce:	8b c8                	mov    %eax,%ecx
47a1d0:	e8 be 3d fe ff       	call   0x45df93
47a1d5:	8b c3                	mov    %ebx,%eax
47a1d7:	eb 10                	jmp    0x47a1e9
47a1d9:	33 c0                	xor    %eax,%eax
47a1db:	40                   	inc    %eax
47a1dc:	50                   	push   %eax
47a1dd:	68 88 aa 4b 00       	push   $0x4baa88
47a1e2:	53                   	push   %ebx
47a1e3:	50                   	push   %eax
47a1e4:	e8 f2 f4 ff ff       	call   0x4796db
47a1e9:	5f                   	pop    %edi
47a1ea:	5e                   	pop    %esi
47a1eb:	5b                   	pop    %ebx
47a1ec:	8b e5                	mov    %ebp,%esp
47a1ee:	5d                   	pop    %ebp
47a1ef:	c2 14 00             	ret    $0x14
47a1f2:	55                   	push   %ebp
47a1f3:	8b ec                	mov    %esp,%ebp
47a1f5:	83 ec 1c             	sub    $0x1c,%esp
47a1f8:	56                   	push   %esi
47a1f9:	8b 75 18             	mov    0x18(%ebp),%esi
47a1fc:	57                   	push   %edi
47a1fd:	8b f9                	mov    %ecx,%edi
47a1ff:	83 3e 00             	cmpl   $0x0,(%esi)
47a202:	74 51                	je     0x47a255
47a204:	83 ec 10             	sub    $0x10,%esp
47a207:	8b cc                	mov    %esp,%ecx
47a209:	68 10 f9 48 00       	push   $0x48f910
47a20e:	e8 2e dd f8 ff       	call   0x407f41