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
47829e:	55                   	push   %ebp
47829f:	8b ec                	mov    %esp,%ebp
4782a1:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
4782a5:	74 2c                	je     0x4782d3
4782a7:	56                   	push   %esi
4782a8:	8b 75 0c             	mov    0xc(%ebp),%esi
4782ab:	57                   	push   %edi
4782ac:	8d 7e 0c             	lea    0xc(%esi),%edi
4782af:	8b 07                	mov    (%edi),%eax
4782b1:	c1 e8 09             	shr    $0x9,%eax
4782b4:	a8 01                	test   $0x1,%al
4782b6:	74 19                	je     0x4782d1
4782b8:	56                   	push   %esi
4782b9:	e8 2e db ff ff       	call   0x475dec
4782be:	59                   	pop    %ecx
4782bf:	b8 7f fd ff ff       	mov    $0xfffffd7f,%eax
4782c4:	f0 21 07             	lock and %eax,(%edi)
4782c7:	33 c0                	xor    %eax,%eax
4782c9:	89 46 18             	mov    %eax,0x18(%esi)
4782cc:	89 46 04             	mov    %eax,0x4(%esi)
4782cf:	89 06                	mov    %eax,(%esi)
4782d1:	5f                   	pop    %edi
4782d2:	5e                   	pop    %esi
4782d3:	5d                   	pop    %ebp
4782d4:	c3                   	ret
4782d5:	6a 0c                	push   $0xc
4782d7:	68 a0 4e 4b 00       	push   $0x4b4ea0
4782dc:	e8 7f 86 fc ff       	call   0x440960
4782e1:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
4782e5:	8b 45 08             	mov    0x8(%ebp),%eax
4782e8:	ff 30                	push   (%eax)
4782ea:	e8 56 70 00 00       	call   0x47f345
4782ef:	59                   	pop    %ecx
4782f0:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4782f4:	8b 45 0c             	mov    0xc(%ebp),%eax
4782f7:	8b 00                	mov    (%eax),%eax
4782f9:	8b 30                	mov    (%eax),%esi
4782fb:	8b d6                	mov    %esi,%edx
4782fd:	c1 fa 06             	sar    $0x6,%edx
478300:	8b c6                	mov    %esi,%eax
478302:	83 e0 3f             	and    $0x3f,%eax
478305:	6b c8 30             	imul   $0x30,%eax,%ecx
478308:	8b 04 95 00 c0 4b 00 	mov    0x4bc000(,%edx,4),%eax
47830f:	f6 44 08 28 01       	testb  $0x1,0x28(%eax,%ecx,1)
478314:	74 0b                	je     0x478321
478316:	56                   	push   %esi
478317:	e8 cb 01 00 00       	call   0x4784e7
47831c:	59                   	pop    %ecx
47831d:	8b f0                	mov    %eax,%esi
47831f:	eb 0e                	jmp    0x47832f
478321:	e8 09 4b fd ff       	call   0x44ce2f
478326:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
47832c:	83 ce ff             	or     $0xffffffff,%esi
47832f:	89 75 e4             	mov    %esi,-0x1c(%ebp)
478332:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
478339:	e8 0d 00 00 00       	call   0x47834b
47833e:	8b c6                	mov    %esi,%eax
478340:	e8 61 86 fc ff       	call   0x4409a6
478345:	c2 0c 00             	ret    $0xc
478348:	8b 75 e4             	mov    -0x1c(%ebp),%esi
47834b:	8b 45 10             	mov    0x10(%ebp),%eax
47834e:	ff 30                	push   (%eax)
478350:	e8 a7 70 00 00       	call   0x47f3fc
478355:	59                   	pop    %ecx
478356:	c3                   	ret
478357:	8b ff                	mov    %edi,%edi
478359:	55                   	push   %ebp
47835a:	8b ec                	mov    %esp,%ebp
47835c:	83 ec 0c             	sub    $0xc,%esp
47835f:	8b 45 08             	mov    0x8(%ebp),%eax
478362:	8d 4d ff             	lea    -0x1(%ebp),%ecx
478365:	89 45 f8             	mov    %eax,-0x8(%ebp)
478368:	89 45 f4             	mov    %eax,-0xc(%ebp)
47836b:	8d 45 f8             	lea    -0x8(%ebp),%eax
47836e:	50                   	push   %eax
47836f:	ff 75 0c             	push   0xc(%ebp)
478372:	8d 45 f4             	lea    -0xc(%ebp),%eax
478375:	50                   	push   %eax
478376:	e8 5a ff ff ff       	call   0x4782d5
47837b:	8b e5                	mov    %ebp,%esp
47837d:	5d                   	pop    %ebp
47837e:	c3                   	ret
47837f:	8b ff                	mov    %edi,%edi
478381:	55                   	push   %ebp
478382:	8b ec                	mov    %esp,%ebp
478384:	8b 45 08             	mov    0x8(%ebp),%eax
478387:	8b 00                	mov    (%eax),%eax
478389:	89 01                	mov    %eax,(%ecx)
47838b:	8b c1                	mov    %ecx,%eax
47838d:	5d                   	pop    %ebp
47838e:	c2 04 00             	ret    $0x4
478391:	8b ff                	mov    %edi,%edi
478393:	55                   	push   %ebp
478394:	8b ec                	mov    %esp,%ebp
478396:	8b 45 08             	mov    0x8(%ebp),%eax
478399:	8b 00                	mov    (%eax),%eax
47839b:	89 01                	mov    %eax,(%ecx)
47839d:	8b c1                	mov    %ecx,%eax
47839f:	5d                   	pop    %ebp
4783a0:	c2 04 00             	ret    $0x4
4783a3:	8b ff                	mov    %edi,%edi
4783a5:	55                   	push   %ebp
4783a6:	8b ec                	mov    %esp,%ebp
4783a8:	8b 45 08             	mov    0x8(%ebp),%eax
4783ab:	89 01                	mov    %eax,(%ecx)
4783ad:	8b c1                	mov    %ecx,%eax
4783af:	5d                   	pop    %ebp
4783b0:	c2 04 00             	ret    $0x4
4783b3:	ff 31                	push   (%ecx)
4783b5:	e8 8b 6f 00 00       	call   0x47f345
4783ba:	59                   	pop    %ecx
4783bb:	c3                   	ret
4783bc:	ff 31                	push   (%ecx)
4783be:	e8 39 70 00 00       	call   0x47f3fc
4783c3:	59                   	pop    %ecx
4783c4:	c3                   	ret
4783c5:	8b 01                	mov    (%ecx),%eax
4783c7:	56                   	push   %esi
4783c8:	8b 30                	mov    (%eax),%esi
4783ca:	8b c6                	mov    %esi,%eax
4783cc:	83 e0 3f             	and    $0x3f,%eax
4783cf:	8b d6                	mov    %esi,%edx
4783d1:	c1 fa 06             	sar    $0x6,%edx
4783d4:	6b c8 30             	imul   $0x30,%eax,%ecx
4783d7:	8b 04 95 00 c0 4b 00 	mov    0x4bc000(,%edx,4),%eax
4783de:	f6 44 08 28 01       	testb  $0x1,0x28(%eax,%ecx,1)
4783e3:	74 09                	je     0x4783ee
4783e5:	56                   	push   %esi
4783e6:	e8 fc 00 00 00       	call   0x4784e7
4783eb:	59                   	pop    %ecx
4783ec:	5e                   	pop    %esi
4783ed:	c3                   	ret
4783ee:	e8 3c 4a fd ff       	call   0x44ce2f
4783f3:	5e                   	pop    %esi
4783f4:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
4783fa:	83 c8 ff             	or     $0xffffffff,%eax
4783fd:	c3                   	ret
4783fe:	8b ff                	mov    %edi,%edi
478400:	55                   	push   %ebp
478401:	8b ec                	mov    %esp,%ebp
478403:	ff 75 08             	push   0x8(%ebp)
478406:	e8 b7 71 00 00       	call   0x47f5c2
47840b:	59                   	pop    %ecx
47840c:	83 f8 ff             	cmp    $0xffffffff,%eax
47840f:	75 04                	jne    0x478415
478411:	33 c0                	xor    %eax,%eax
478413:	5d                   	pop    %ebp
478414:	c3                   	ret
478415:	83 7d 08 01          	cmpl   $0x1,0x8(%ebp)
478419:	a1 00 c0 4b 00       	mov    0x4bc000,%eax
47841e:	75 09                	jne    0x478429
478420:	f6 80 88 00 00 00 01 	testb  $0x1,0x88(%eax)
478427:	75 0c                	jne    0x478435
478429:	83 7d 08 02          	cmpl   $0x2,0x8(%ebp)
47842d:	75 1e                	jne    0x47844d
47842f:	f6 40 58 01          	testb  $0x1,0x58(%eax)
478433:	74 18                	je     0x47844d
478435:	56                   	push   %esi
478436:	6a 02                	push   $0x2
478438:	e8 85 71 00 00       	call   0x47f5c2
47843d:	6a 01                	push   $0x1
47843f:	8b f0                	mov    %eax,%esi
478441:	e8 7c 71 00 00       	call   0x47f5c2
478446:	59                   	pop    %ecx
478447:	59                   	pop    %ecx
478448:	3b c6                	cmp    %esi,%eax
47844a:	5e                   	pop    %esi
47844b:	74 c4                	je     0x478411
47844d:	ff 75 08             	push   0x8(%ebp)
478450:	e8 6d 71 00 00       	call   0x47f5c2
478455:	59                   	pop    %ecx
478456:	50                   	push   %eax
478457:	ff 15 20 41 49 00    	call   *0x494120
47845d:	85 c0                	test   %eax,%eax
47845f:	75 b0                	jne    0x478411