478f6f:	89 7d e4             	mov    %edi,-0x1c(%ebp)
478f72:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
478f79:	e8 0a 00 00 00       	call   0x478f88
478f7e:	8b c7                	mov    %edi,%eax
478f80:	eb 29                	jmp    0x478fab
478f82:	8b 75 08             	mov    0x8(%ebp),%esi
478f85:	8b 7d e4             	mov    -0x1c(%ebp),%edi
478f88:	56                   	push   %esi
478f89:	e8 6e 64 00 00       	call   0x47f3fc
478f8e:	59                   	pop    %ecx
478f8f:	c3                   	ret
478f90:	e8 87 3e fd ff       	call   0x44ce1c
478f95:	83 20 00             	andl   $0x0,(%eax)
478f98:	e8 92 3e fd ff       	call   0x44ce2f
478f9d:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
478fa3:	e8 2e 3d fd ff       	call   0x44ccd6
478fa8:	83 c8 ff             	or     $0xffffffff,%eax
478fab:	e8 f6 79 fc ff       	call   0x4409a6
478fb0:	c3                   	ret
478fb1:	8b ff                	mov    %edi,%edi
478fb3:	55                   	push   %ebp
478fb4:	8b ec                	mov    %esp,%ebp
478fb6:	83 ec 28             	sub    $0x28,%esp
478fb9:	53                   	push   %ebx
478fba:	8b 5d 08             	mov    0x8(%ebp),%ebx
478fbd:	57                   	push   %edi
478fbe:	83 fb fe             	cmp    $0xfffffffe,%ebx
478fc1:	75 18                	jne    0x478fdb
478fc3:	e8 54 3e fd ff       	call   0x44ce1c
478fc8:	83 20 00             	andl   $0x0,(%eax)
478fcb:	e8 5f 3e fd ff       	call   0x44ce2f
478fd0:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
478fd6:	e9 82 03 00 00       	jmp    0x47935d
478fdb:	85 db                	test   %ebx,%ebx
478fdd:	0f 88 62 03 00 00    	js     0x479345
478fe3:	3b 1d 00 c2 4b 00    	cmp    0x4bc200,%ebx
478fe9:	0f 83 56 03 00 00    	jae    0x479345
478fef:	8b c3                	mov    %ebx,%eax
478ff1:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
478ff8:	83 e0 3f             	and    $0x3f,%eax
478ffb:	8b fb                	mov    %ebx,%edi
478ffd:	c1 ff 06             	sar    $0x6,%edi
479000:	6b d0 30             	imul   $0x30,%eax,%edx
479003:	89 7d f0             	mov    %edi,-0x10(%ebp)
479006:	8b 04 bd 00 c0 4b 00 	mov    0x4bc000(,%edi,4),%eax
47900d:	89 55 e8             	mov    %edx,-0x18(%ebp)
479010:	8a 4c 02 28          	mov    0x28(%edx,%eax,1),%cl
479014:	88 4d ff             	mov    %cl,-0x1(%ebp)
479017:	f6 c1 01             	test   $0x1,%cl
47901a:	0f 84 25 03 00 00    	je     0x479345
479020:	8b 4d 10             	mov    0x10(%ebp),%ecx
479023:	81 f9 ff ff ff 7f    	cmp    $0x7fffffff,%ecx
479029:	76 18                	jbe    0x479043
47902b:	e8 ec 3d fd ff       	call   0x44ce1c
479030:	83 20 00             	andl   $0x0,(%eax)
479033:	e8 f7 3d fd ff       	call   0x44ce2f
479038:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
47903e:	e9 15 03 00 00       	jmp    0x479358
479043:	85 c9                	test   %ecx,%ecx
479045:	0f 84 f6 02 00 00    	je     0x479341
47904b:	f6 45 ff 02          	testb  $0x2,-0x1(%ebp)
47904f:	0f 85 ec 02 00 00    	jne    0x479341
479055:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
479059:	74 d0                	je     0x47902b
47905b:	56                   	push   %esi
47905c:	8b 74 02 18          	mov    0x18(%edx,%eax,1),%esi
479060:	8a 44 02 29          	mov    0x29(%edx,%eax,1),%al
479064:	88 45 ff             	mov    %al,-0x1(%ebp)
479067:	89 75 e4             	mov    %esi,-0x1c(%ebp)
47906a:	33 f6                	xor    %esi,%esi
47906c:	0f be c0             	movsbl %al,%eax
47906f:	83 e8 01             	sub    $0x1,%eax
479072:	74 1b                	je     0x47908f
479074:	83 e8 01             	sub    $0x1,%eax
479077:	75 08                	jne    0x479081
479079:	8b c1                	mov    %ecx,%eax
47907b:	f7 d0                	not    %eax
47907d:	a8 01                	test   $0x1,%al
47907f:	74 19                	je     0x47909a
479081:	8b 45 0c             	mov    0xc(%ebp),%eax
479084:	89 4d f4             	mov    %ecx,-0xc(%ebp)
479087:	89 45 f8             	mov    %eax,-0x8(%ebp)
47908a:	e9 9c 00 00 00       	jmp    0x47912b
47908f:	8b 55 ec             	mov    -0x14(%ebp),%edx
479092:	8b c1                	mov    %ecx,%eax
479094:	f7 d0                	not    %eax
479096:	84 c2                	test   %al,%dl
479098:	75 1c                	jne    0x4790b6
47909a:	e8 7d 3d fd ff       	call   0x44ce1c
47909f:	21 30                	and    %esi,(%eax)
4790a1:	e8 89 3d fd ff       	call   0x44ce2f
4790a6:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4790ac:	e8 25 3c fd ff       	call   0x44ccd6
4790b1:	e9 c2 01 00 00       	jmp    0x479278
4790b6:	6a 04                	push   $0x4
4790b8:	58                   	pop    %eax
4790b9:	d1 e9                	shr    $1,%ecx
4790bb:	89 45 f4             	mov    %eax,-0xc(%ebp)
4790be:	3b c8                	cmp    %eax,%ecx
4790c0:	72 05                	jb     0x4790c7
4790c2:	8b c1                	mov    %ecx,%eax
4790c4:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4790c7:	50                   	push   %eax
4790c8:	e8 5d dc ff ff       	call   0x476d2a
4790cd:	6a 00                	push   $0x0
4790cf:	8b f0                	mov    %eax,%esi
4790d1:	e8 63 92 ff ff       	call   0x472339
4790d6:	6a 00                	push   $0x0
4790d8:	e8 5c 92 ff ff       	call   0x472339
4790dd:	83 c4 0c             	add    $0xc,%esp
4790e0:	89 75 f8             	mov    %esi,-0x8(%ebp)
4790e3:	85 f6                	test   %esi,%esi
4790e5:	75 1b                	jne    0x479102
4790e7:	e8 43 3d fd ff       	call   0x44ce2f
4790ec:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
4790f2:	e8 25 3d fd ff       	call   0x44ce1c
4790f7:	c7 00 08 00 00 00    	movl   $0x8,(%eax)
4790fd:	e9 76 01 00 00       	jmp    0x479278
479102:	ff 75 ec             	push   -0x14(%ebp)
479105:	6a 00                	push   $0x0
479107:	6a 00                	push   $0x0
479109:	53                   	push   %ebx
47910a:	e8 25 0a 00 00       	call   0x479b34
47910f:	8b 0c bd 00 c0 4b 00 	mov    0x4bc000(,%edi,4),%ecx
479116:	83 c4 10             	add    $0x10,%esp
479119:	8b 7d e8             	mov    -0x18(%ebp),%edi
47911c:	89 44 0f 20          	mov    %eax,0x20(%edi,%ecx,1)
479120:	8b c6                	mov    %esi,%eax
479122:	89 54 0f 24          	mov    %edx,0x24(%edi,%ecx,1)
479126:	8b d7                	mov    %edi,%edx
479128:	8b 4d f4             	mov    -0xc(%ebp),%ecx
47912b:	8b 5d f0             	mov    -0x10(%ebp),%ebx
47912e:	33 ff                	xor    %edi,%edi
479130:	89 45 dc             	mov    %eax,-0x24(%ebp)
479133:	8b 1c 9d 00 c0 4b 00 	mov    0x4bc000(,%ebx,4),%ebx
47913a:	89 5d e0             	mov    %ebx,-0x20(%ebp)
47913d:	f6 44 1a 28 48       	testb  $0x48,0x28(%edx,%ebx,1)
479142:	8b 5d 08             	mov    0x8(%ebp),%ebx
479145:	0f 84 ce 00 00 00    	je     0x479219
47914b:	8b 5d e0             	mov    -0x20(%ebp),%ebx
47914e:	8a 5c 1a 2a          	mov    0x2a(%edx,%ebx,1),%bl
479152:	88 5d fe             	mov    %bl,-0x2(%ebp)
479155:	80 fb 0a             	cmp    $0xa,%bl
479158:	8b 5d 08             	mov    0x8(%ebp),%ebx
47915b:	0f 84 b8 00 00 00    	je     0x479219
479161:	85 c9                	test   %ecx,%ecx
479163:	0f 84 b0 00 00 00    	je     0x479219
479169:	8a 5d fe             	mov    -0x2(%ebp),%bl
47916c:	8b 7d ec             	mov    -0x14(%ebp),%edi
47916f:	88 18                	mov    %bl,(%eax)
479171:	40                   	inc    %eax
479172:	8b 5d 08             	mov    0x8(%ebp),%ebx
479175:	49                   	dec    %ecx
479176:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
47917a:	89 45 f8             	mov    %eax,-0x8(%ebp)
47917d:	8b 45 f0             	mov    -0x10(%ebp),%eax
479180:	89 4d f4             	mov    %ecx,-0xc(%ebp)
479183:	8b 04 85 00 c0 4b 00 	mov    0x4bc000(,%eax,4),%eax
47918a:	c6 44 02 2a 0a       	movb   $0xa,0x2a(%edx,%eax,1)
47918f:	0f 84 84 00 00 00    	je     0x479219
479195:	8b 45 f0             	mov    -0x10(%ebp),%eax
479198:	8b 04 85 00 c0 4b 00 	mov    0x4bc000(,%eax,4),%eax
47919f:	8a 44 02 2b          	mov    0x2b(%edx,%eax,1),%al
4791a3:	88 45 fe             	mov    %al,-0x2(%ebp)
4791a6:	3c 0a                	cmp    $0xa,%al
4791a8:	74 6f                	je     0x479219
4791aa:	85 c9                	test   %ecx,%ecx
4791ac:	74 6b                	je     0x479219
4791ae:	8b 45 f8             	mov    -0x8(%ebp),%eax
4791b1:	8a 5d fe             	mov    -0x2(%ebp),%bl
4791b4:	6a 02                	push   $0x2
4791b6:	5f                   	pop    %edi
4791b7:	88 18                	mov    %bl,(%eax)
4791b9:	40                   	inc    %eax
4791ba:	8b 5d 08             	mov    0x8(%ebp),%ebx
4791bd:	49                   	dec    %ecx
4791be:	89 45 f8             	mov    %eax,-0x8(%ebp)
4791c1:	8b 45 f0             	mov    -0x10(%ebp),%eax
4791c4:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4791c7:	8b 04 85 00 c0 4b 00 	mov    0x4bc000(,%eax,4),%eax
4791ce:	c6 44 02 2b 0a       	movb   $0xa,0x2b(%edx,%eax,1)
4791d3:	8a 45 ff             	mov    -0x1(%ebp),%al
4791d6:	3a 45 ec             	cmp    -0x14(%ebp),%al
4791d9:	75 3e                	jne    0x479219
4791db:	8b 45 f0             	mov    -0x10(%ebp),%eax
4791de:	8b 04 85 00 c0 4b 00 	mov    0x4bc000(,%eax,4),%eax
4791e5:	8a 44 02 2c          	mov    0x2c(%edx,%eax,1),%al
4791e9:	88 45 fe             	mov    %al,-0x2(%ebp)
4791ec:	3c 0a                	cmp    $0xa,%al
4791ee:	74 29                	je     0x479219
4791f0:	85 c9                	test   %ecx,%ecx
4791f2:	74 25                	je     0x479219
4791f4:	8b 45 f8             	mov    -0x8(%ebp),%eax
4791f7:	8a 5d fe             	mov    -0x2(%ebp),%bl
4791fa:	6a 03                	push   $0x3
4791fc:	5f                   	pop    %edi
4791fd:	88 18                	mov    %bl,(%eax)
4791ff:	40                   	inc    %eax
479200:	8b 5d 08             	mov    0x8(%ebp),%ebx
479203:	49                   	dec    %ecx
479204:	89 45 f8             	mov    %eax,-0x8(%ebp)
479207:	8b 45 f0             	mov    -0x10(%ebp),%eax
47920a:	89 4d f4             	mov    %ecx,-0xc(%ebp)
47920d:	8b 04 85 00 c0 4b 00 	mov    0x4bc000(,%eax,4),%eax
479214:	c6 44 02 2c 0a       	movb   $0xa,0x2c(%edx,%eax,1)
479219:	53                   	push   %ebx
47921a:	e8 42 d9 00 00       	call   0x486b61
47921f:	59                   	pop    %ecx
479220:	85 c0                	test   %eax,%eax
479222:	74 71                	je     0x479295
479224:	8b 45 f0             	mov    -0x10(%ebp),%eax
479227:	8b 4d e8             	mov    -0x18(%ebp),%ecx
47922a:	8b 04 85 00 c0 4b 00 	mov    0x4bc000(,%eax,4),%eax
479231:	f6 44 01 28 80       	testb  $0x80,0x28(%ecx,%eax,1)
479236:	74 5d                	je     0x479295
479238:	8d 45 d8             	lea    -0x28(%ebp),%eax
47923b:	50                   	push   %eax
47923c:	ff 75 e4             	push   -0x1c(%ebp)
47923f:	ff 15 5c 40 49 00    	call   *0x49405c
479245:	85 c0                	test   %eax,%eax
479247:	74 4c                	je     0x479295
479249:	80 7d ff 02          	cmpb   $0x2,-0x1(%ebp)
47924d:	75 4a                	jne    0x479299
47924f:	6a 00                	push   $0x0
479251:	8d 45 e0             	lea    -0x20(%ebp),%eax
479254:	50                   	push   %eax
479255:	8b 45 f4             	mov    -0xc(%ebp),%eax
479258:	d1 e8                	shr    $1,%eax
47925a:	50                   	push   %eax
47925b:	ff 75 f8             	push   -0x8(%ebp)
47925e:	ff 75 e4             	push   -0x1c(%ebp)
479261:	ff 15 58 40 49 00    	call   *0x494058
479267:	85 c0                	test   %eax,%eax
479269:	75 1f                	jne    0x47928a
47926b:	ff 15 24 41 49 00    	call   *0x494124
479271:	50                   	push   %eax
479272:	e8 82 3b fd ff       	call   0x44cdf9
479277:	59                   	pop    %ecx
479278:	83 cf ff             	or     $0xffffffff,%edi
47927b:	56                   	push   %esi
47927c:	e8 b8 90 ff ff       	call   0x472339
479281:	59                   	pop    %ecx
479282:	8b c7                	mov    %edi,%eax
479284:	5e                   	pop    %esi
479285:	e9 d6 00 00 00       	jmp    0x479360
47928a:	8b 45 e0             	mov    -0x20(%ebp),%eax
47928d:	8b 4d 10             	mov    0x10(%ebp),%ecx
479290:	8d 3c 47             	lea    (%edi,%eax,2),%edi
479293:	eb 29                	jmp    0x4792be
479295:	c6 45 ec 00          	movb   $0x0,-0x14(%ebp)
479299:	6a 00                	push   $0x0
47929b:	8d 45 e0             	lea    -0x20(%ebp),%eax
47929e:	50                   	push   %eax
47929f:	8b 45 f4             	mov    -0xc(%ebp),%eax
4792a2:	50                   	push   %eax
4792a3:	ff 75 f8             	push   -0x8(%ebp)
4792a6:	ff 75 e4             	push   -0x1c(%ebp)
4792a9:	ff 15 1c 41 49 00    	call   *0x49411c
4792af:	85 c0                	test   %eax,%eax
4792b1:	74 5a                	je     0x47930d
4792b3:	8b 4d 10             	mov    0x10(%ebp),%ecx
4792b6:	39 4d e0             	cmp    %ecx,-0x20(%ebp)
4792b9:	77 52                	ja     0x47930d
4792bb:	03 7d e0             	add    -0x20(%ebp),%edi
4792be:	8b 45 f0             	mov    -0x10(%ebp),%eax
4792c1:	8b 55 e8             	mov    -0x18(%ebp),%edx
4792c4:	8b 04 85 00 c0 4b 00 	mov    0x4bc000(,%eax,4),%eax
4792cb:	f6 44 02 28 80       	testb  $0x80,0x28(%edx,%eax,1)
4792d0:	74 a9                	je     0x47927b
4792d2:	80 7d ff 02          	cmpb   $0x2,-0x1(%ebp)
4792d6:	74 17                	je     0x4792ef
4792d8:	d1 e9                	shr    $1,%ecx
4792da:	51                   	push   %ecx
4792db:	ff 75 0c             	push   0xc(%ebp)
4792de:	57                   	push   %edi
4792df:	ff 75 f8             	push   -0x8(%ebp)
4792e2:	53                   	push   %ebx
4792e3:	e8 e5 f9 ff ff       	call   0x478ccd
4792e8:	83 c4 14             	add    $0x14,%esp
4792eb:	8b f8                	mov    %eax,%edi
4792ed:	eb 8c                	jmp    0x47927b
4792ef:	d1 ef                	shr    $1,%edi
4792f1:	80 7d ec 00          	cmpb   $0x0,-0x14(%ebp)
4792f5:	57                   	push   %edi
4792f6:	ff 75 dc             	push   -0x24(%ebp)
4792f9:	53                   	push   %ebx
4792fa:	74 0a                	je     0x479306
4792fc:	e8 1c fb ff ff       	call   0x478e1d
479301:	83 c4 0c             	add    $0xc,%esp
479304:	eb e5                	jmp    0x4792eb
479306:	e8 ab f7 ff ff       	call   0x478ab6
47930b:	eb f4                	jmp    0x479301
47930d:	ff 15 24 41 49 00    	call   *0x494124
479313:	6a 05                	push   $0x5
479315:	5f                   	pop    %edi
479316:	3b c7                	cmp    %edi,%eax
479318:	75 17                	jne    0x479331
47931a:	e8 10 3b fd ff       	call   0x44ce2f
47931f:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
479325:	e8 f2 3a fd ff       	call   0x44ce1c
47932a:	89 38                	mov    %edi,(%eax)
47932c:	e9 47 ff ff ff       	jmp    0x479278
479331:	83 f8 6d             	cmp    $0x6d,%eax
479334:	0f 85 37 ff ff ff    	jne    0x479271
47933a:	33 ff                	xor    %edi,%edi
47933c:	e9 3a ff ff ff       	jmp    0x47927b
479341:	33 c0                	xor    %eax,%eax
479343:	eb 1b                	jmp    0x479360
479345:	e8 d2 3a fd ff       	call   0x44ce1c
47934a:	83 20 00             	andl   $0x0,(%eax)
47934d:	e8 dd 3a fd ff       	call   0x44ce2f
479352:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
479358:	e8 79 39 fd ff       	call   0x44ccd6
47935d:	83 c8 ff             	or     $0xffffffff,%eax
479360:	5f                   	pop    %edi
479361:	5b                   	pop    %ebx
479362:	8b e5                	mov    %ebp,%esp
479364:	5d                   	pop    %ebp
479365:	c3                   	ret
479366:	8b ff                	mov    %edi,%edi
479368:	55                   	push   %ebp
479369:	8b ec                	mov    %esp,%ebp
47936b:	8b 45 08             	mov    0x8(%ebp),%eax
47936e:	56                   	push   %esi
47936f:	85 c0                	test   %eax,%eax
479371:	75 18                	jne    0x47938b
479373:	e8 b7 3a fd ff       	call   0x44ce2f
479378:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
47937e:	e8 53 39 fd ff       	call   0x44ccd6
479383:	83 c8 ff             	or     $0xffffffff,%eax
479386:	e9 5b 01 00 00       	jmp    0x4794e6
47938b:	8b 40 0c             	mov    0xc(%eax),%eax
47938e:	53                   	push   %ebx
47938f:	33 db                	xor    %ebx,%ebx
479391:	c1 e8 0d             	shr    $0xd,%eax
479394:	43                   	inc    %ebx
479395:	84 c3                	test   %al,%bl
479397:	0f 84 45 01 00 00    	je     0x4794e2
47939d:	8b 45 08             	mov    0x8(%ebp),%eax
4793a0:	8b 40 0c             	mov    0xc(%eax),%eax
4793a3:	c1 e8 0c             	shr    $0xc,%eax
4793a6:	84 c3                	test   %al,%bl
4793a8:	0f 85 34 01 00 00    	jne    0x4794e2
4793ae:	8b 45 08             	mov    0x8(%ebp),%eax
4793b1:	8b 40 0c             	mov    0xc(%eax),%eax
4793b4:	d1 e8                	shr    $1,%eax
4793b6:	84 c3                	test   %al,%bl
4793b8:	8b 45 08             	mov    0x8(%ebp),%eax
4793bb:	74 0e                	je     0x4793cb
4793bd:	6a 10                	push   $0x10