477f20:	58                   	pop    %eax
477f21:	8b 4d fc             	mov    -0x4(%ebp),%ecx
477f24:	33 cd                	xor    %ebp,%ecx
477f26:	5b                   	pop    %ebx
477f27:	e8 d6 7a fc ff       	call   0x43fa02
477f2c:	8b e5                	mov    %ebp,%esp
477f2e:	5d                   	pop    %ebp
477f2f:	c3                   	ret
477f30:	84 db                	test   %bl,%bl
477f32:	74 08                	je     0x477f3c
477f34:	c6 01 2d             	movb   $0x2d,(%ecx)
477f37:	41                   	inc    %ecx
477f38:	4a                   	dec    %edx
477f39:	c6 01 00             	movb   $0x0,(%ecx)
477f3c:	b8 00 ea 49 00       	mov    $0x49ea00,%eax
477f41:	c7 45 dc 10 ea 49 00 	movl   $0x49ea10,-0x24(%ebp)
477f48:	89 45 bc             	mov    %eax,-0x44(%ebp)
477f4b:	33 db                	xor    %ebx,%ebx
477f4d:	38 5d 18             	cmp    %bl,0x18(%ebp)
477f50:	89 45 c0             	mov    %eax,-0x40(%ebp)
477f53:	b8 04 ea 49 00       	mov    $0x49ea04,%eax
477f58:	89 45 c4             	mov    %eax,-0x3c(%ebp)
477f5b:	0f 95 c3             	setne  %bl
477f5e:	89 45 c8             	mov    %eax,-0x38(%ebp)
477f61:	4b                   	dec    %ebx
477f62:	b8 0c ea 49 00       	mov    $0x49ea0c,%eax
477f67:	c7 45 e4 1c ea 49 00 	movl   $0x49ea1c,-0x1c(%ebp)
477f6e:	89 45 d4             	mov    %eax,-0x2c(%ebp)
477f71:	83 e3 02             	and    $0x2,%ebx
477f74:	89 45 d8             	mov    %eax,-0x28(%ebp)
477f77:	89 45 e8             	mov    %eax,-0x18(%ebp)
477f7a:	89 45 f8             	mov    %eax,-0x8(%ebp)
477f7d:	8b 45 08             	mov    0x8(%ebp),%eax
477f80:	56                   	push   %esi
477f81:	be 08 ea 49 00       	mov    $0x49ea08,%esi
477f86:	c7 45 ec 28 ea 49 00 	movl   $0x49ea28,-0x14(%ebp)
477f8d:	57                   	push   %edi
477f8e:	8d 3c 85 fc ff ff ff 	lea    -0x4(,%eax,4),%edi
477f95:	89 75 cc             	mov    %esi,-0x34(%ebp)
477f98:	8d 04 1f             	lea    (%edi,%ebx,1),%eax
477f9b:	89 75 d0             	mov    %esi,-0x30(%ebp)
477f9e:	89 75 e0             	mov    %esi,-0x20(%ebp)
477fa1:	89 75 f0             	mov    %esi,-0x10(%ebp)
477fa4:	c7 45 f4 34 ea 49 00 	movl   $0x49ea34,-0xc(%ebp)
477fab:	8b 74 85 bc          	mov    -0x44(%ebp,%eax,4),%esi
477faf:	8d 46 01             	lea    0x1(%esi),%eax
477fb2:	89 45 b8             	mov    %eax,-0x48(%ebp)
477fb5:	8a 06                	mov    (%esi),%al
477fb7:	46                   	inc    %esi
477fb8:	84 c0                	test   %al,%al
477fba:	75 f9                	jne    0x477fb5
477fbc:	2b 75 b8             	sub    -0x48(%ebp),%esi
477fbf:	3b f2                	cmp    %edx,%esi
477fc1:	1b c0                	sbb    %eax,%eax
477fc3:	47                   	inc    %edi
477fc4:	03 c7                	add    %edi,%eax
477fc6:	03 c3                	add    %ebx,%eax
477fc8:	ff 74 85 bc          	push   -0x44(%ebp,%eax,4)
477fcc:	52                   	push   %edx
477fcd:	51                   	push   %ecx
477fce:	e8 63 82 ff ff       	call   0x470236
477fd3:	83 c4 0c             	add    $0xc,%esp
477fd6:	5f                   	pop    %edi
477fd7:	5e                   	pop    %esi
477fd8:	85 c0                	test   %eax,%eax
477fda:	0f 84 41 ff ff ff    	je     0x477f21
477fe0:	33 c0                	xor    %eax,%eax
477fe2:	50                   	push   %eax
477fe3:	50                   	push   %eax
477fe4:	50                   	push   %eax
477fe5:	50                   	push   %eax
477fe6:	50                   	push   %eax
477fe7:	e8 17 4d fd ff       	call   0x44cd03
477fec:	cc                   	int3
477fed:	8b ff                	mov    %edi,%edi
477fef:	55                   	push   %ebp
477ff0:	8b ec                	mov    %esp,%ebp
477ff2:	8b 55 14             	mov    0x14(%ebp),%edx
477ff5:	85 d2                	test   %edx,%edx
477ff7:	74 26                	je     0x47801f
477ff9:	56                   	push   %esi
477ffa:	8b 75 10             	mov    0x10(%ebp),%esi
477ffd:	8b ce                	mov    %esi,%ecx
477fff:	57                   	push   %edi
478000:	8d 79 01             	lea    0x1(%ecx),%edi
478003:	8a 01                	mov    (%ecx),%al
478005:	41                   	inc    %ecx
478006:	84 c0                	test   %al,%al
478008:	75 f9                	jne    0x478003
47800a:	2b cf                	sub    %edi,%ecx
47800c:	8d 41 01             	lea    0x1(%ecx),%eax
47800f:	50                   	push   %eax
478010:	8d 04 16             	lea    (%esi,%edx,1),%eax
478013:	56                   	push   %esi
478014:	50                   	push   %eax
478015:	e8 c6 b8 fc ff       	call   0x4438e0
47801a:	83 c4 0c             	add    $0xc,%esp
47801d:	5f                   	pop    %edi
47801e:	5e                   	pop    %esi
47801f:	5d                   	pop    %ebp
478020:	c3                   	ret
478021:	8b ff                	mov    %edi,%edi
478023:	55                   	push   %ebp
478024:	8b ec                	mov    %esp,%ebp
478026:	5d                   	pop    %ebp
478027:	e9 24 1a 01 00       	jmp    0x489a50
47802c:	8b ff                	mov    %edi,%edi
47802e:	55                   	push   %ebp
47802f:	8b ec                	mov    %esp,%ebp
478031:	51                   	push   %ecx
478032:	51                   	push   %ecx
478033:	56                   	push   %esi
478034:	57                   	push   %edi
478035:	8b 7d 0c             	mov    0xc(%ebp),%edi
478038:	85 ff                	test   %edi,%edi
47803a:	75 16                	jne    0x478052
47803c:	e8 ee 4d fd ff       	call   0x44ce2f
478041:	6a 16                	push   $0x16
478043:	5e                   	pop    %esi
478044:	89 30                	mov    %esi,(%eax)
478046:	e8 8b 4c fd ff       	call   0x44ccd6
47804b:	8b c6                	mov    %esi,%eax
47804d:	e9 1e 01 00 00       	jmp    0x478170
478052:	53                   	push   %ebx
478053:	8b 5d 10             	mov    0x10(%ebp),%ebx
478056:	85 db                	test   %ebx,%ebx
478058:	74 0c                	je     0x478066
47805a:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
47805e:	74 06                	je     0x478066
478060:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
478064:	77 16                	ja     0x47807c
478066:	e8 c4 4d fd ff       	call   0x44ce2f
47806b:	6a 16                	push   $0x16
47806d:	5e                   	pop    %esi
47806e:	89 30                	mov    %esi,(%eax)
478070:	e8 61 4c fd ff       	call   0x44ccd6
478075:	8b c6                	mov    %esi,%eax
478077:	e9 f3 00 00 00       	jmp    0x47816f
47807c:	8b 75 1c             	mov    0x1c(%ebp),%esi
47807f:	83 fe 41             	cmp    $0x41,%esi
478082:	74 13                	je     0x478097
478084:	83 fe 45             	cmp    $0x45,%esi
478087:	74 0e                	je     0x478097
478089:	83 fe 46             	cmp    $0x46,%esi
47808c:	74 09                	je     0x478097
47808e:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
478092:	83 fe 47             	cmp    $0x47,%esi
478095:	75 04                	jne    0x47809b
478097:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
47809b:	8b 45 24             	mov    0x24(%ebp),%eax
47809e:	83 e0 08             	and    $0x8,%eax
4780a1:	83 c8 00             	or     $0x0,%eax
4780a4:	75 32                	jne    0x4780d8
4780a6:	ff 75 08             	push   0x8(%ebp)
4780a9:	e8 9b f6 ff ff       	call   0x477749
4780ae:	89 45 f8             	mov    %eax,-0x8(%ebp)
4780b1:	59                   	pop    %ecx
4780b2:	85 c0                	test   %eax,%eax
4780b4:	74 22                	je     0x4780d8
4780b6:	ff 75 fc             	push   -0x4(%ebp)
4780b9:	53                   	push   %ebx
4780ba:	57                   	push   %edi
4780bb:	ff 75 08             	push   0x8(%ebp)
4780be:	e8 ee f6 ff ff       	call   0x4777b1
4780c3:	59                   	pop    %ecx
4780c4:	0f b6 c0             	movzbl %al,%eax
4780c7:	50                   	push   %eax
4780c8:	ff 75 f8             	push   -0x8(%ebp)
4780cb:	e8 25 fe ff ff       	call   0x477ef5
4780d0:	83 c4 14             	add    $0x14,%esp
4780d3:	e9 97 00 00 00       	jmp    0x47816f
4780d8:	8b 45 24             	mov    0x24(%ebp),%eax
4780db:	83 e0 10             	and    $0x10,%eax
4780de:	83 c8 00             	or     $0x0,%eax
4780e1:	74 04                	je     0x4780e7
4780e3:	6a 03                	push   $0x3
4780e5:	eb 02                	jmp    0x4780e9
4780e7:	6a 02                	push   $0x2
4780e9:	58                   	pop    %eax
4780ea:	83 fe 61             	cmp    $0x61,%esi
4780ed:	7f 28                	jg     0x478117
4780ef:	74 0a                	je     0x4780fb
4780f1:	83 ee 41             	sub    $0x41,%esi
4780f4:	74 05                	je     0x4780fb
4780f6:	83 ee 04             	sub    $0x4,%esi
4780f9:	eb 1f                	jmp    0x47811a
4780fb:	ff 75 2c             	push   0x2c(%ebp)
4780fe:	50                   	push   %eax
4780ff:	ff 75 fc             	push   -0x4(%ebp)
478102:	ff 75 20             	push   0x20(%ebp)
478105:	ff 75 18             	push   0x18(%ebp)
478108:	ff 75 14             	push   0x14(%ebp)
47810b:	53                   	push   %ebx
47810c:	57                   	push   %edi
47810d:	ff 75 08             	push   0x8(%ebp)
478110:	e8 ba f6 ff ff       	call   0x4777cf
478115:	eb 55                	jmp    0x47816c
478117:	83 ee 65             	sub    $0x65,%esi
47811a:	ff 75 2c             	push   0x2c(%ebp)
47811d:	74 36                	je     0x478155
47811f:	83 ee 01             	sub    $0x1,%esi
478122:	74 19                	je     0x47813d
478124:	50                   	push   %eax
478125:	ff 75 fc             	push   -0x4(%ebp)
478128:	ff 75 20             	push   0x20(%ebp)
47812b:	ff 75 18             	push   0x18(%ebp)
47812e:	ff 75 14             	push   0x14(%ebp)
478131:	53                   	push   %ebx
478132:	57                   	push   %edi
478133:	ff 75 08             	push   0x8(%ebp)
478136:	e8 f2 fc ff ff       	call   0x477e2d
47813b:	eb 2f                	jmp    0x47816c
47813d:	ff 75 20             	push   0x20(%ebp)
478140:	ff 75 18             	push   0x18(%ebp)
478143:	ff 75 14             	push   0x14(%ebp)
478146:	53                   	push   %ebx
478147:	57                   	push   %edi
478148:	ff 75 08             	push   0x8(%ebp)
47814b:	e8 79 fb ff ff       	call   0x477cc9
478150:	83 c4 1c             	add    $0x1c,%esp
478153:	eb 1a                	jmp    0x47816f
478155:	50                   	push   %eax
478156:	ff 75 fc             	push   -0x4(%ebp)
478159:	ff 75 20             	push   0x20(%ebp)
47815c:	ff 75 18             	push   0x18(%ebp)
47815f:	ff 75 14             	push   0x14(%ebp)
478162:	53                   	push   %ebx
478163:	57                   	push   %edi
478164:	ff 75 08             	push   0x8(%ebp)
478167:	e8 77 f9 ff ff       	call   0x477ae3
47816c:	83 c4 24             	add    $0x24,%esp
47816f:	5b                   	pop    %ebx
478170:	5f                   	pop    %edi
478171:	5e                   	pop    %esi
478172:	8b e5                	mov    %ebp,%esp
478174:	5d                   	pop    %ebp
478175:	c3                   	ret
478176:	8b ff                	mov    %edi,%edi
478178:	55                   	push   %ebp
478179:	8b ec                	mov    %esp,%ebp
47817b:	8b 45 08             	mov    0x8(%ebp),%eax
47817e:	85 c0                	test   %eax,%eax
478180:	75 15                	jne    0x478197
478182:	e8 a8 4c fd ff       	call   0x44ce2f
478187:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
47818d:	e8 44 4b fd ff       	call   0x44ccd6
478192:	83 c8 ff             	or     $0xffffffff,%eax
478195:	5d                   	pop    %ebp
478196:	c3                   	ret
478197:	8b 40 10             	mov    0x10(%eax),%eax
47819a:	5d                   	pop    %ebp
47819b:	c3                   	ret
47819c:	8b 0d 94 80 4b 00    	mov    0x4b8094,%ecx
4781a2:	33 c0                	xor    %eax,%eax
4781a4:	83 c9 01             	or     $0x1,%ecx
4781a7:	39 0d 04 c2 4b 00    	cmp    %ecx,0x4bc204
4781ad:	0f 94 c0             	sete   %al
4781b0:	c3                   	ret
4781b1:	8b ff                	mov    %edi,%edi
4781b3:	55                   	push   %ebp
4781b4:	8b ec                	mov    %esp,%ebp
4781b6:	8b 15 94 80 4b 00    	mov    0x4b8094,%edx
4781bc:	33 c0                	xor    %eax,%eax
4781be:	8b 4d 08             	mov    0x8(%ebp),%ecx
4781c1:	83 ca 01             	or     $0x1,%edx
4781c4:	39 15 04 c2 4b 00    	cmp    %edx,0x4bc204
4781ca:	0f 94 c0             	sete   %al
4781cd:	f7 d9                	neg    %ecx
4781cf:	1b c9                	sbb    %ecx,%ecx
4781d1:	23 ca                	and    %edx,%ecx
4781d3:	89 0d 04 c2 4b 00    	mov    %ecx,0x4bc204
4781d9:	5d                   	pop    %ebp
4781da:	c3                   	ret
4781db:	8b 01                	mov    (%ecx),%eax
4781dd:	8b 40 0c             	mov    0xc(%eax),%eax
4781e0:	c1 e8 09             	shr    $0x9,%eax
4781e3:	83 e0 01             	and    $0x1,%eax
4781e6:	c3                   	ret
4781e7:	8b ff                	mov    %edi,%edi
4781e9:	55                   	push   %ebp
4781ea:	8b ec                	mov    %esp,%ebp
4781ec:	56                   	push   %esi
4781ed:	8b 75 08             	mov    0x8(%ebp),%esi
4781f0:	56                   	push   %esi
4781f1:	e8 80 ff ff ff       	call   0x478176
4781f6:	50                   	push   %eax
4781f7:	e8 65 e9 00 00       	call   0x486b61
4781fc:	59                   	pop    %ecx
4781fd:	59                   	pop    %ecx
4781fe:	85 c0                	test   %eax,%eax
478200:	75 07                	jne    0x478209
478202:	32 c0                	xor    %al,%al
478204:	e9 90 00 00 00       	jmp    0x478299
478209:	53                   	push   %ebx
47820a:	57                   	push   %edi
47820b:	6a 01                	push   $0x1
47820d:	e8 f5 be fd ff       	call   0x454107
478212:	59                   	pop    %ecx
478213:	6a 02                	push   $0x2
478215:	5b                   	pop    %ebx
478216:	3b f0                	cmp    %eax,%esi
478218:	75 07                	jne    0x478221
47821a:	bf 08 c2 4b 00       	mov    $0x4bc208,%edi
47821f:	eb 10                	jmp    0x478231
478221:	53                   	push   %ebx
478222:	e8 e0 be fd ff       	call   0x454107
478227:	59                   	pop    %ecx
478228:	3b f0                	cmp    %eax,%esi
47822a:	75 69                	jne    0x478295
47822c:	bf 0c c2 4b 00       	mov    $0x4bc20c,%edi
478231:	ff 05 08 b4 4b 00    	incl   0x4bb408
478237:	8d 4e 0c             	lea    0xc(%esi),%ecx
47823a:	8b 01                	mov    (%ecx),%eax
47823c:	a9 c0 04 00 00       	test   $0x4c0,%eax
478241:	75 52                	jne    0x478295
478243:	b8 82 02 00 00       	mov    $0x282,%eax
478248:	f0 09 01             	lock or %eax,(%ecx)
47824b:	8b 07                	mov    (%edi),%eax
47824d:	85 c0                	test   %eax,%eax
47824f:	75 2b                	jne    0x47827c
478251:	68 00 10 00 00       	push   $0x1000
478256:	e8 cf ea ff ff       	call   0x476d2a
47825b:	6a 00                	push   $0x0
47825d:	89 07                	mov    %eax,(%edi)
47825f:	e8 d5 a0 ff ff       	call   0x472339
478264:	8b 07                	mov    (%edi),%eax
478266:	59                   	pop    %ecx
478267:	59                   	pop    %ecx
478268:	85 c0                	test   %eax,%eax
47826a:	75 10                	jne    0x47827c
47826c:	8d 4e 14             	lea    0x14(%esi),%ecx
47826f:	89 5e 08             	mov    %ebx,0x8(%esi)
478272:	89 4e 04             	mov    %ecx,0x4(%esi)
478275:	89 0e                	mov    %ecx,(%esi)
478277:	89 5e 18             	mov    %ebx,0x18(%esi)
47827a:	eb 15                	jmp    0x478291
47827c:	89 46 04             	mov    %eax,0x4(%esi)
47827f:	8b 07                	mov    (%edi),%eax
478281:	89 06                	mov    %eax,(%esi)
478283:	c7 46 08 00 10 00 00 	movl   $0x1000,0x8(%esi)
47828a:	c7 46 18 00 10 00 00 	movl   $0x1000,0x18(%esi)
478291:	b0 01                	mov    $0x1,%al
478293:	eb 02                	jmp    0x478297
478295:	32 c0                	xor    %al,%al
478297:	5f                   	pop    %edi
478298:	5b                   	pop    %ebx
478299:	5e                   	pop    %esi
47829a:	5d                   	pop    %ebp
47829b:	c3                   	ret
47829c:	8b ff                	mov    %edi,%edi