47617c:	a8 01                	test   $0x1,%al
47617e:	74 10                	je     0x476190
476180:	57                   	push   %edi
476181:	ff 75 08             	push   0x8(%ebp)
476184:	e8 a5 ff ff ff       	call   0x47612e
476189:	59                   	pop    %ecx
47618a:	59                   	pop    %ecx
47618b:	e9 eb 00 00 00       	jmp    0x47627b
476190:	53                   	push   %ebx
476191:	56                   	push   %esi
476192:	57                   	push   %edi
476193:	e8 de 1f 00 00       	call   0x478176
476198:	bb 08 83 4b 00       	mov    $0x4b8308,%ebx
47619d:	59                   	pop    %ecx
47619e:	83 f8 ff             	cmp    $0xffffffff,%eax
4761a1:	74 30                	je     0x4761d3
4761a3:	57                   	push   %edi
4761a4:	e8 cd 1f 00 00       	call   0x478176
4761a9:	59                   	pop    %ecx
4761aa:	83 f8 fe             	cmp    $0xfffffffe,%eax
4761ad:	74 24                	je     0x4761d3
4761af:	57                   	push   %edi
4761b0:	e8 c1 1f 00 00       	call   0x478176
4761b5:	8b f0                	mov    %eax,%esi
4761b7:	57                   	push   %edi
4761b8:	c1 fe 06             	sar    $0x6,%esi
4761bb:	e8 b6 1f 00 00       	call   0x478176
4761c0:	59                   	pop    %ecx
4761c1:	83 e0 3f             	and    $0x3f,%eax
4761c4:	59                   	pop    %ecx
4761c5:	6b c8 30             	imul   $0x30,%eax,%ecx
4761c8:	8b 04 b5 00 c0 4b 00 	mov    0x4bc000(,%esi,4),%eax
4761cf:	03 c1                	add    %ecx,%eax
4761d1:	eb 02                	jmp    0x4761d5
4761d3:	8b c3                	mov    %ebx,%eax
4761d5:	8a 40 29             	mov    0x29(%eax),%al
4761d8:	3c 02                	cmp    $0x2,%al
4761da:	0f 84 8e 00 00 00    	je     0x47626e
4761e0:	3c 01                	cmp    $0x1,%al
4761e2:	0f 84 86 00 00 00    	je     0x47626e
4761e8:	57                   	push   %edi
4761e9:	e8 88 1f 00 00       	call   0x478176
4761ee:	59                   	pop    %ecx
4761ef:	83 f8 ff             	cmp    $0xffffffff,%eax
4761f2:	74 2e                	je     0x476222
4761f4:	57                   	push   %edi
4761f5:	e8 7c 1f 00 00       	call   0x478176
4761fa:	59                   	pop    %ecx
4761fb:	83 f8 fe             	cmp    $0xfffffffe,%eax
4761fe:	74 22                	je     0x476222
476200:	57                   	push   %edi
476201:	e8 70 1f 00 00       	call   0x478176
476206:	8b f0                	mov    %eax,%esi
476208:	57                   	push   %edi
476209:	c1 fe 06             	sar    $0x6,%esi
47620c:	e8 65 1f 00 00       	call   0x478176
476211:	8b 1c b5 00 c0 4b 00 	mov    0x4bc000(,%esi,4),%ebx
476218:	83 e0 3f             	and    $0x3f,%eax
47621b:	59                   	pop    %ecx
47621c:	59                   	pop    %ecx
47621d:	6b c8 30             	imul   $0x30,%eax,%ecx
476220:	03 d9                	add    %ecx,%ebx
476222:	f6 43 28 80          	testb  $0x80,0x28(%ebx)
476226:	74 46                	je     0x47626e
476228:	ff 75 08             	push   0x8(%ebp)
47622b:	8d 45 f4             	lea    -0xc(%ebp),%eax
47622e:	6a 05                	push   $0x5
476230:	50                   	push   %eax
476231:	8d 45 f0             	lea    -0x10(%ebp),%eax
476234:	50                   	push   %eax
476235:	e8 f2 14 00 00       	call   0x47772c
47623a:	83 c4 10             	add    $0x10,%esp
47623d:	85 c0                	test   %eax,%eax
47623f:	75 26                	jne    0x476267
476241:	33 f6                	xor    %esi,%esi
476243:	39 75 f0             	cmp    %esi,-0x10(%ebp)
476246:	7e 19                	jle    0x476261
476248:	0f be 44 35 f4       	movsbl -0xc(%ebp,%esi,1),%eax
47624d:	57                   	push   %edi
47624e:	50                   	push   %eax
47624f:	e8 f2 fb fe ff       	call   0x465e46
476254:	59                   	pop    %ecx
476255:	59                   	pop    %ecx
476256:	83 f8 ff             	cmp    $0xffffffff,%eax
476259:	74 0c                	je     0x476267
47625b:	46                   	inc    %esi
47625c:	3b 75 f0             	cmp    -0x10(%ebp),%esi
47625f:	7c e7                	jl     0x476248
476261:	66 8b 45 08          	mov    0x8(%ebp),%ax
476265:	eb 12                	jmp    0x476279
476267:	b8 ff ff 00 00       	mov    $0xffff,%eax
47626c:	eb 0b                	jmp    0x476279
47626e:	57                   	push   %edi
47626f:	ff 75 08             	push   0x8(%ebp)
476272:	e8 b7 fe ff ff       	call   0x47612e
476277:	59                   	pop    %ecx
476278:	59                   	pop    %ecx
476279:	5e                   	pop    %esi
47627a:	5b                   	pop    %ebx
47627b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
47627e:	33 cd                	xor    %ebp,%ecx
476280:	5f                   	pop    %edi
476281:	e8 7c 97 fc ff       	call   0x43fa02
476286:	8b e5                	mov    %ebp,%esp
476288:	5d                   	pop    %ebp
476289:	c3                   	ret
47628a:	8b ff                	mov    %edi,%edi
47628c:	55                   	push   %ebp
47628d:	8b ec                	mov    %esp,%ebp
47628f:	6a 01                	push   $0x1
476291:	e8 71 de fd ff       	call   0x454107
476296:	50                   	push   %eax
476297:	ff 75 08             	push   0x8(%ebp)
47629a:	e8 10 00 00 00       	call   0x4762af
47629f:	83 c4 0c             	add    $0xc,%esp
4762a2:	5d                   	pop    %ebp
4762a3:	c3                   	ret
4762a4:	8b ff                	mov    %edi,%edi
4762a6:	55                   	push   %ebp
4762a7:	8b ec                	mov    %esp,%ebp
4762a9:	5d                   	pop    %ebp
4762aa:	e9 b1 fe ff ff       	jmp    0x476160
4762af:	6a 0c                	push   $0xc
4762b1:	68 60 4e 4b 00       	push   $0x4b4e60
4762b6:	e8 a5 a6 fc ff       	call   0x440960
4762bb:	33 c0                	xor    %eax,%eax
4762bd:	8b 75 0c             	mov    0xc(%ebp),%esi
4762c0:	85 f6                	test   %esi,%esi
4762c2:	0f 95 c0             	setne  %al
4762c5:	85 c0                	test   %eax,%eax
4762c7:	75 17                	jne    0x4762e0
4762c9:	e8 61 6b fd ff       	call   0x44ce2f
4762ce:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4762d4:	e8 fd 69 fd ff       	call   0x44ccd6
4762d9:	b8 ff ff 00 00       	mov    $0xffff,%eax
4762de:	eb 35                	jmp    0x476315
4762e0:	b8 ff ff 00 00       	mov    $0xffff,%eax
4762e5:	66 89 45 e4          	mov    %ax,-0x1c(%ebp)
4762e9:	56                   	push   %esi
4762ea:	e8 ba de fd ff       	call   0x4541a9
4762ef:	59                   	pop    %ecx
4762f0:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4762f4:	56                   	push   %esi
4762f5:	ff 75 08             	push   0x8(%ebp)
4762f8:	e8 63 fe ff ff       	call   0x476160
4762fd:	59                   	pop    %ecx
4762fe:	59                   	pop    %ecx
4762ff:	66 8b f8             	mov    %ax,%di
476302:	66 89 7d e4          	mov    %di,-0x1c(%ebp)
476306:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
47630d:	e8 10 00 00 00       	call   0x476322
476312:	66 8b c7             	mov    %di,%ax
476315:	e8 8c a6 fc ff       	call   0x4409a6
47631a:	c3                   	ret
47631b:	8b 75 0c             	mov    0xc(%ebp),%esi
47631e:	66 8b 7d e4          	mov    -0x1c(%ebp),%di
476322:	56                   	push   %esi
476323:	e8 95 de fd ff       	call   0x4541bd
476328:	59                   	pop    %ecx
476329:	c3                   	ret
47632a:	8b ff                	mov    %edi,%edi
47632c:	55                   	push   %ebp
47632d:	8b ec                	mov    %esp,%ebp
47632f:	5d                   	pop    %ebp
476330:	e9 7a ff ff ff       	jmp    0x4762af
476335:	8b ff                	mov    %edi,%edi
476337:	55                   	push   %ebp
476338:	8b ec                	mov    %esp,%ebp
47633a:	5d                   	pop    %ebp
47633b:	e9 4a ff ff ff       	jmp    0x47628a
476340:	8b ff                	mov    %edi,%edi
476342:	55                   	push   %ebp
476343:	8b ec                	mov    %esp,%ebp
476345:	ff 75 08             	push   0x8(%ebp)
476348:	e8 ec bf ff ff       	call   0x472339
47634d:	59                   	pop    %ecx
47634e:	5d                   	pop    %ebp
47634f:	c2 04 00             	ret    $0x4
476352:	8b ff                	mov    %edi,%edi
476354:	55                   	push   %ebp
476355:	8b ec                	mov    %esp,%ebp
476357:	8b 45 08             	mov    0x8(%ebp),%eax
47635a:	89 01                	mov    %eax,(%ecx)
47635c:	8b c1                	mov    %ecx,%eax
47635e:	5d                   	pop    %ebp
47635f:	c2 04 00             	ret    $0x4
476362:	83 21 00             	andl   $0x0,(%ecx)
476365:	8b c1                	mov    %ecx,%eax
476367:	c3                   	ret
476368:	8b ff                	mov    %edi,%edi
47636a:	56                   	push   %esi
47636b:	8b f1                	mov    %ecx,%esi
47636d:	ff 36                	push   (%esi)
47636f:	e8 c5 bf ff ff       	call   0x472339
476374:	83 26 00             	andl   $0x0,(%esi)
476377:	59                   	pop    %ecx
476378:	5e                   	pop    %esi
476379:	c3                   	ret
47637a:	6a 0c                	push   $0xc
47637c:	68 80 4e 4b 00       	push   $0x4b4e80
476381:	e8 da a5 fc ff       	call   0x440960
476386:	33 ff                	xor    %edi,%edi
476388:	8b 75 08             	mov    0x8(%ebp),%esi
47638b:	89 3e                	mov    %edi,(%esi)
47638d:	6a 08                	push   $0x8
47638f:	e8 78 1b ff ff       	call   0x467f0c
476394:	59                   	pop    %ecx
476395:	89 7d fc             	mov    %edi,-0x4(%ebp)
476398:	8d 45 e4             	lea    -0x1c(%ebp),%eax
47639b:	50                   	push   %eax
47639c:	e8 83 00 00 00       	call   0x476424
4763a1:	59                   	pop    %ecx
4763a2:	8b 00                	mov    (%eax),%eax
4763a4:	89 06                	mov    %eax,(%esi)
4763a6:	85 c0                	test   %eax,%eax
4763a8:	74 0f                	je     0x4763b9
4763aa:	89 78 08             	mov    %edi,0x8(%eax)
4763ad:	89 78 1c             	mov    %edi,0x1c(%eax)
4763b0:	89 38                	mov    %edi,(%eax)
4763b2:	89 78 04             	mov    %edi,0x4(%eax)
4763b5:	83 48 10 ff          	orl    $0xffffffff,0x10(%eax)
4763b9:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4763c0:	e8 0b 00 00 00       	call   0x4763d0
4763c5:	8b c6                	mov    %esi,%eax
4763c7:	e8 da a5 fc ff       	call   0x4409a6
4763cc:	c3                   	ret
4763cd:	8b 75 08             	mov    0x8(%ebp),%esi
4763d0:	6a 08                	push   $0x8
4763d2:	e8 7d 1b ff ff       	call   0x467f54
4763d7:	59                   	pop    %ecx
4763d8:	c3                   	ret
4763d9:	8b ff                	mov    %edi,%edi
4763db:	55                   	push   %ebp
4763dc:	8b ec                	mov    %esp,%ebp
4763de:	8b 45 08             	mov    0x8(%ebp),%eax
4763e1:	33 c9                	xor    %ecx,%ecx
4763e3:	89 08                	mov    %ecx,(%eax)
4763e5:	8b 45 08             	mov    0x8(%ebp),%eax
4763e8:	89 48 04             	mov    %ecx,0x4(%eax)
4763eb:	8b 45 08             	mov    0x8(%ebp),%eax
4763ee:	89 48 08             	mov    %ecx,0x8(%eax)
4763f1:	8b 45 08             	mov    0x8(%ebp),%eax
4763f4:	83 48 10 ff          	orl    $0xffffffff,0x10(%eax)
4763f8:	8b 45 08             	mov    0x8(%ebp),%eax
4763fb:	89 48 14             	mov    %ecx,0x14(%eax)
4763fe:	8b 45 08             	mov    0x8(%ebp),%eax
476401:	89 48 18             	mov    %ecx,0x18(%eax)
476404:	8b 45 08             	mov    0x8(%ebp),%eax
476407:	89 48 1c             	mov    %ecx,0x1c(%eax)
47640a:	8b 45 08             	mov    0x8(%ebp),%eax
47640d:	83 c0 0c             	add    $0xc,%eax
476410:	87 08                	xchg   %ecx,(%eax)
476412:	5d                   	pop    %ebp
476413:	c3                   	ret
476414:	8b 01                	mov    (%ecx),%eax
476416:	33 d2                	xor    %edx,%edx
476418:	83 c0 0c             	add    $0xc,%eax
47641b:	87 10                	xchg   %edx,(%eax)
47641d:	c3                   	ret
47641e:	8b 01                	mov    (%ecx),%eax
476420:	83 21 00             	andl   $0x0,(%ecx)
476423:	c3                   	ret
476424:	8b ff                	mov    %edi,%edi
476426:	55                   	push   %ebp
476427:	8b ec                	mov    %esp,%ebp
476429:	51                   	push   %ecx
47642a:	53                   	push   %ebx
47642b:	8b 1d 00 b4 4b 00    	mov    0x4bb400,%ebx
476431:	56                   	push   %esi
476432:	57                   	push   %edi
476433:	8b 3d 04 b4 4b 00    	mov    0x4bb404,%edi
476439:	83 c7 0c             	add    $0xc,%edi
47643c:	83 c3 fd             	add    $0xfffffffd,%ebx
47643f:	8d 1c 9f             	lea    (%edi,%ebx,4),%ebx
476442:	89 5d fc             	mov    %ebx,-0x4(%ebp)
476445:	eb 41                	jmp    0x476488
476447:	8b 37                	mov    (%edi),%esi
476449:	85 f6                	test   %esi,%esi
47644b:	74 53                	je     0x4764a0
47644d:	8b 46 0c             	mov    0xc(%esi),%eax
476450:	c1 e8 0d             	shr    $0xd,%eax
476453:	a8 01                	test   $0x1,%al
476455:	75 2e                	jne    0x476485
476457:	56                   	push   %esi
476458:	e8 4c dd fd ff       	call   0x4541a9
47645d:	59                   	pop    %ecx
47645e:	8d 56 0c             	lea    0xc(%esi),%edx
476461:	bb 00 20 00 00       	mov    $0x2000,%ebx
476466:	8b 02                	mov    (%edx),%eax
476468:	8b c8                	mov    %eax,%ecx
47646a:	0b cb                	or     %ebx,%ecx
47646c:	f0 0f b1 0a          	lock cmpxchg %ecx,(%edx)
476470:	75 f6                	jne    0x476468
476472:	8b 5d fc             	mov    -0x4(%ebp),%ebx
476475:	c1 e8 0d             	shr    $0xd,%eax
476478:	f6 d0                	not    %al
47647a:	a8 01                	test   $0x1,%al
47647c:	75 1b                	jne    0x476499
47647e:	56                   	push   %esi
47647f:	e8 39 dd fd ff       	call   0x4541bd
476484:	59                   	pop    %ecx
476485:	83 c7 04             	add    $0x4,%edi
476488:	3b fb                	cmp    %ebx,%edi
47648a:	75 bb                	jne    0x476447
47648c:	8b 45 08             	mov    0x8(%ebp),%eax
47648f:	83 20 00             	andl   $0x0,(%eax)
476492:	5f                   	pop    %edi
476493:	5e                   	pop    %esi
476494:	5b                   	pop    %ebx
476495:	8b e5                	mov    %ebp,%esp
476497:	5d                   	pop    %ebp
476498:	c3                   	ret
476499:	8b 45 08             	mov    0x8(%ebp),%eax
47649c:	89 30                	mov    %esi,(%eax)
47649e:	eb f2                	jmp    0x476492
4764a0:	6a 38                	push   $0x38
4764a2:	6a 01                	push   $0x1
4764a4:	e8 aa bd ff ff       	call   0x472253
4764a9:	6a 00                	push   $0x0
4764ab:	89 07                	mov    %eax,(%edi)
4764ad:	e8 87 be ff ff       	call   0x472339
4764b2:	8b 07                	mov    (%edi),%eax
4764b4:	83 c4 0c             	add    $0xc,%esp
4764b7:	85 c0                	test   %eax,%eax
4764b9:	74 d1                	je     0x47648c
4764bb:	83 48 10 ff          	orl    $0xffffffff,0x10(%eax)
4764bf:	8b 07                	mov    (%edi),%eax
4764c1:	6a 00                	push   $0x0
4764c3:	68 a0 0f 00 00       	push   $0xfa0
4764c8:	83 c0 20             	add    $0x20,%eax
4764cb:	50                   	push   %eax
4764cc:	e8 33 ee ff ff       	call   0x475304
4764d1:	8b 37                	mov    (%edi),%esi
4764d3:	b9 00 20 00 00       	mov    $0x2000,%ecx
4764d8:	8d 46 0c             	lea    0xc(%esi),%eax
4764db:	f0 09 08             	lock or %ecx,(%eax)
4764de:	56                   	push   %esi
4764df:	e8 c5 dc fd ff       	call   0x4541a9
4764e4:	59                   	pop    %ecx
4764e5:	eb b2                	jmp    0x476499
4764e7:	ff 31                	push   (%ecx)
4764e9:	e8 bb dc fd ff       	call   0x4541a9
4764ee:	59                   	pop    %ecx
4764ef:	c3                   	ret
4764f0:	8b ff                	mov    %edi,%edi
4764f2:	56                   	push   %esi
4764f3:	8b f1                	mov    %ecx,%esi
4764f5:	ff 36                	push   (%esi)
4764f7:	e8 3d be ff ff       	call   0x472339
4764fc:	83 26 00             	andl   $0x0,(%esi)