472359:	56                   	push   %esi
47235a:	e8 d0 aa fd ff       	call   0x44ce2f
47235f:	8b f0                	mov    %eax,%esi
472361:	ff 15 24 41 49 00    	call   *0x494124
472367:	50                   	push   %eax
472368:	e8 49 aa fd ff       	call   0x44cdb6
47236d:	59                   	pop    %ecx
47236e:	89 06                	mov    %eax,(%esi)
472370:	5e                   	pop    %esi
472371:	5d                   	pop    %ebp
472372:	c3                   	ret
472373:	8b ff                	mov    %edi,%edi
472375:	55                   	push   %ebp
472376:	8b ec                	mov    %esp,%ebp
472378:	57                   	push   %edi
472379:	8b 7d 08             	mov    0x8(%ebp),%edi
47237c:	85 ff                	test   %edi,%edi
47237e:	75 0b                	jne    0x47238b
472380:	ff 75 0c             	push   0xc(%ebp)
472383:	e8 a2 49 00 00       	call   0x476d2a
472388:	59                   	pop    %ecx
472389:	eb 24                	jmp    0x4723af
47238b:	56                   	push   %esi
47238c:	8b 75 0c             	mov    0xc(%ebp),%esi
47238f:	85 f6                	test   %esi,%esi
472391:	75 09                	jne    0x47239c
472393:	57                   	push   %edi
472394:	e8 a0 ff ff ff       	call   0x472339
472399:	59                   	pop    %ecx
47239a:	eb 10                	jmp    0x4723ac
47239c:	83 fe e0             	cmp    $0xffffffe0,%esi
47239f:	76 25                	jbe    0x4723c6
4723a1:	e8 89 aa fd ff       	call   0x44ce2f
4723a6:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
4723ac:	33 c0                	xor    %eax,%eax
4723ae:	5e                   	pop    %esi
4723af:	5f                   	pop    %edi
4723b0:	5d                   	pop    %ebp
4723b1:	c3                   	ret
4723b2:	e8 13 dd ff ff       	call   0x4700ca
4723b7:	85 c0                	test   %eax,%eax
4723b9:	74 e6                	je     0x4723a1
4723bb:	56                   	push   %esi
4723bc:	e8 a8 98 ff ff       	call   0x46bc69
4723c1:	59                   	pop    %ecx
4723c2:	85 c0                	test   %eax,%eax
4723c4:	74 db                	je     0x4723a1
4723c6:	56                   	push   %esi
4723c7:	57                   	push   %edi
4723c8:	6a 00                	push   $0x0
4723ca:	ff 35 10 c3 4b 00    	push   0x4bc310
4723d0:	ff 15 78 40 49 00    	call   *0x494078
4723d6:	85 c0                	test   %eax,%eax
4723d8:	74 d8                	je     0x4723b2
4723da:	eb d2                	jmp    0x4723ae
4723dc:	8b ff                	mov    %edi,%edi
4723de:	55                   	push   %ebp
4723df:	8b ec                	mov    %esp,%ebp
4723e1:	ff 75 0c             	push   0xc(%ebp)
4723e4:	ff 75 08             	push   0x8(%ebp)
4723e7:	e8 04 00 00 00       	call   0x4723f0
4723ec:	59                   	pop    %ecx
4723ed:	59                   	pop    %ecx
4723ee:	5d                   	pop    %ebp
4723ef:	c3                   	ret
4723f0:	8b ff                	mov    %edi,%edi
4723f2:	55                   	push   %ebp
4723f3:	8b ec                	mov    %esp,%ebp
4723f5:	51                   	push   %ecx
4723f6:	51                   	push   %ecx
4723f7:	66 8b 45 08          	mov    0x8(%ebp),%ax
4723fb:	b9 ff ff 00 00       	mov    $0xffff,%ecx
472400:	66 3b c1             	cmp    %cx,%ax
472403:	75 04                	jne    0x472409
472405:	33 c0                	xor    %eax,%eax
472407:	eb 42                	jmp    0x47244b
472409:	b9 00 01 00 00       	mov    $0x100,%ecx
47240e:	66 3b c1             	cmp    %cx,%ax
472411:	73 0e                	jae    0x472421
472413:	0f b7 c8             	movzwl %ax,%ecx
472416:	a1 00 82 4b 00       	mov    0x4b8200,%eax
47241b:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
47241f:	eb 24                	jmp    0x472445
472421:	66 89 45 f8          	mov    %ax,-0x8(%ebp)
472425:	33 c0                	xor    %eax,%eax
472427:	66 89 45 fc          	mov    %ax,-0x4(%ebp)
47242b:	8d 45 fc             	lea    -0x4(%ebp),%eax
47242e:	50                   	push   %eax
47242f:	6a 01                	push   $0x1
472431:	8d 45 f8             	lea    -0x8(%ebp),%eax
472434:	50                   	push   %eax
472435:	6a 01                	push   $0x1
472437:	ff 15 bc 41 49 00    	call   *0x4941bc
47243d:	85 c0                	test   %eax,%eax
47243f:	74 c4                	je     0x472405
472441:	0f b7 45 fc          	movzwl -0x4(%ebp),%eax
472445:	0f b7 4d 0c          	movzwl 0xc(%ebp),%ecx
472449:	23 c1                	and    %ecx,%eax
47244b:	8b e5                	mov    %ebp,%esp
47244d:	5d                   	pop    %ebp
47244e:	c3                   	ret
47244f:	8b ff                	mov    %edi,%edi
472451:	55                   	push   %ebp
472452:	8b ec                	mov    %esp,%ebp
472454:	83 3d 08 bf 4b 00 00 	cmpl   $0x0,0x4bbf08
47245b:	75 11                	jne    0x47246e
47245d:	8b 4d 08             	mov    0x8(%ebp),%ecx
472460:	a1 30 82 4b 00       	mov    0x4b8230,%eax
472465:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
472469:	23 45 0c             	and    0xc(%ebp),%eax
47246c:	5d                   	pop    %ebp
47246d:	c3                   	ret
47246e:	6a 00                	push   $0x0
472470:	ff 75 0c             	push   0xc(%ebp)
472473:	ff 75 08             	push   0x8(%ebp)
472476:	e8 05 00 00 00       	call   0x472480
47247b:	83 c4 0c             	add    $0xc,%esp
47247e:	5d                   	pop    %ebp
47247f:	c3                   	ret
472480:	8b ff                	mov    %edi,%edi
472482:	55                   	push   %ebp
472483:	8b ec                	mov    %esp,%ebp
472485:	83 ec 24             	sub    $0x24,%esp
472488:	a1 94 80 4b 00       	mov    0x4b8094,%eax
47248d:	33 c5                	xor    %ebp,%eax
47248f:	89 45 fc             	mov    %eax,-0x4(%ebp)
472492:	53                   	push   %ebx
472493:	ff 75 10             	push   0x10(%ebp)
472496:	8b 5d 08             	mov    0x8(%ebp),%ebx
472499:	8d 4d e0             	lea    -0x20(%ebp),%ecx
47249c:	e8 67 cb fd ff       	call   0x44f008
4724a1:	8d 43 01             	lea    0x1(%ebx),%eax
4724a4:	3d 00 01 00 00       	cmp    $0x100,%eax
4724a9:	77 0b                	ja     0x4724b6
4724ab:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4724ae:	8b 00                	mov    (%eax),%eax
4724b0:	0f b7 04 58          	movzwl (%eax,%ebx,2),%eax
4724b4:	eb 7a                	jmp    0x472530
4724b6:	8b c3                	mov    %ebx,%eax
4724b8:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
4724bb:	c1 f8 08             	sar    $0x8,%eax
4724be:	89 45 dc             	mov    %eax,-0x24(%ebp)
4724c1:	51                   	push   %ecx
4724c2:	0f b6 c0             	movzbl %al,%eax
4724c5:	50                   	push   %eax
4724c6:	e8 15 8e 00 00       	call   0x47b2e0
4724cb:	59                   	pop    %ecx
4724cc:	59                   	pop    %ecx
4724cd:	85 c0                	test   %eax,%eax
4724cf:	74 13                	je     0x4724e4
4724d1:	8b 45 dc             	mov    -0x24(%ebp),%eax
4724d4:	88 45 f0             	mov    %al,-0x10(%ebp)
4724d7:	33 c0                	xor    %eax,%eax
4724d9:	6a 02                	push   $0x2
4724db:	88 5d f1             	mov    %bl,-0xf(%ebp)
4724de:	88 45 f2             	mov    %al,-0xe(%ebp)
4724e1:	59                   	pop    %ecx
4724e2:	eb 0b                	jmp    0x4724ef
4724e4:	33 c0                	xor    %eax,%eax
4724e6:	88 5d f0             	mov    %bl,-0x10(%ebp)
4724e9:	33 c9                	xor    %ecx,%ecx
4724eb:	88 45 f1             	mov    %al,-0xf(%ebp)
4724ee:	41                   	inc    %ecx
4724ef:	89 45 f4             	mov    %eax,-0xc(%ebp)
4724f2:	66 89 45 f8          	mov    %ax,-0x8(%ebp)
4724f6:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4724f9:	6a 01                	push   $0x1
4724fb:	ff 70 08             	push   0x8(%eax)
4724fe:	8d 45 f4             	lea    -0xc(%ebp),%eax
472501:	50                   	push   %eax
472502:	51                   	push   %ecx
472503:	8d 45 f0             	lea    -0x10(%ebp),%eax
472506:	50                   	push   %eax
472507:	8d 45 e4             	lea    -0x1c(%ebp),%eax
47250a:	6a 01                	push   $0x1
47250c:	50                   	push   %eax
47250d:	e8 33 86 00 00       	call   0x47ab45
472512:	83 c4 1c             	add    $0x1c,%esp
472515:	85 c0                	test   %eax,%eax
472517:	75 13                	jne    0x47252c
472519:	38 45 ec             	cmp    %al,-0x14(%ebp)
47251c:	74 0a                	je     0x472528
47251e:	8b 45 e0             	mov    -0x20(%ebp),%eax
472521:	83 a0 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%eax)
472528:	33 c0                	xor    %eax,%eax
47252a:	eb 17                	jmp    0x472543
47252c:	0f b7 45 f4          	movzwl -0xc(%ebp),%eax
472530:	23 45 0c             	and    0xc(%ebp),%eax
472533:	80 7d ec 00          	cmpb   $0x0,-0x14(%ebp)
472537:	74 0a                	je     0x472543
472539:	8b 4d e0             	mov    -0x20(%ebp),%ecx
47253c:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
472543:	8b 4d fc             	mov    -0x4(%ebp),%ecx
472546:	33 cd                	xor    %ebp,%ecx
472548:	5b                   	pop    %ebx
472549:	e8 b4 d4 fc ff       	call   0x43fa02
47254e:	8b e5                	mov    %ebp,%esp
472550:	5d                   	pop    %ebp
472551:	c3                   	ret
472552:	8b c1                	mov    %ecx,%eax
472554:	c3                   	ret
472555:	8b ff                	mov    %edi,%edi
472557:	55                   	push   %ebp
472558:	8b ec                	mov    %esp,%ebp
47255a:	56                   	push   %esi
47255b:	8b 75 0c             	mov    0xc(%ebp),%esi
47255e:	8b 06                	mov    (%esi),%eax
472560:	3b 05 14 bf 4b 00    	cmp    0x4bbf14,%eax
472566:	74 17                	je     0x47257f
472568:	8b 4d 08             	mov    0x8(%ebp),%ecx
47256b:	a1 38 84 4b 00       	mov    0x4b8438,%eax
472570:	85 81 50 03 00 00    	test   %eax,0x350(%ecx)
472576:	75 07                	jne    0x47257f
472578:	e8 6f e2 00 00       	call   0x4807ec
47257d:	89 06                	mov    %eax,(%esi)
47257f:	5e                   	pop    %esi
472580:	5d                   	pop    %ebp
472581:	c3                   	ret
472582:	8b ff                	mov    %edi,%edi
472584:	55                   	push   %ebp
472585:	8b ec                	mov    %esp,%ebp
472587:	56                   	push   %esi
472588:	8b 75 0c             	mov    0xc(%ebp),%esi
47258b:	8b 06                	mov    (%esi),%eax
47258d:	3b 05 04 c3 4b 00    	cmp    0x4bc304,%eax
472593:	74 17                	je     0x4725ac
472595:	8b 4d 08             	mov    0x8(%ebp),%ecx
472598:	a1 38 84 4b 00       	mov    0x4b8438,%eax
47259d:	85 81 50 03 00 00    	test   %eax,0x350(%ecx)
4725a3:	75 07                	jne    0x4725ac
4725a5:	e8 5a b7 00 00       	call   0x47dd04
4725aa:	89 06                	mov    %eax,(%esi)
4725ac:	5e                   	pop    %esi
4725ad:	5d                   	pop    %ebp
4725ae:	c3                   	ret
4725af:	e8 2f 00 00 00       	call   0x4725e3
4725b4:	8b c8                	mov    %eax,%ecx
4725b6:	85 c9                	test   %ecx,%ecx
4725b8:	74 25                	je     0x4725df
4725ba:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
4725c0:	74 19                	je     0x4725db
4725c2:	81 f9 00 02 00 00    	cmp    $0x200,%ecx
4725c8:	74 0d                	je     0x4725d7
4725ca:	33 c0                	xor    %eax,%eax
4725cc:	81 f9 00 03 00 00    	cmp    $0x300,%ecx
4725d2:	0f 94 c0             	sete   %al
4725d5:	48                   	dec    %eax
4725d6:	c3                   	ret
4725d7:	6a 02                	push   $0x2
4725d9:	58                   	pop    %eax
4725da:	c3                   	ret
4725db:	6a 03                	push   $0x3
4725dd:	58                   	pop    %eax
4725de:	c3                   	ret
4725df:	33 c0                	xor    %eax,%eax
4725e1:	40                   	inc    %eax
4725e2:	c3                   	ret
4725e3:	e8 18 04 00 00       	call   0x472a00
4725e8:	25 00 03 00 00       	and    $0x300,%eax
4725ed:	c3                   	ret
4725ee:	8b ff                	mov    %edi,%edi
4725f0:	55                   	push   %ebp
4725f1:	8b ec                	mov    %esp,%ebp
4725f3:	51                   	push   %ecx
4725f4:	e8 07 fa ff ff       	call   0x472000
4725f9:	8b 48 4c             	mov    0x4c(%eax),%ecx
4725fc:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4725ff:	8d 4d fc             	lea    -0x4(%ebp),%ecx
472602:	51                   	push   %ecx
472603:	50                   	push   %eax
472604:	e8 4c ff ff ff       	call   0x472555
472609:	8b 45 fc             	mov    -0x4(%ebp),%eax
47260c:	59                   	pop    %ecx
47260d:	59                   	pop    %ecx
47260e:	83 c0 04             	add    $0x4,%eax
472611:	8b e5                	mov    %ebp,%esp
472613:	5d                   	pop    %ebp
472614:	c3                   	ret
472615:	8b ff                	mov    %edi,%edi
472617:	55                   	push   %ebp
472618:	8b ec                	mov    %esp,%ebp
47261a:	57                   	push   %edi
47261b:	8b 7d 0c             	mov    0xc(%ebp),%edi
47261e:	83 e7 1f             	and    $0x1f,%edi
472621:	75 07                	jne    0x47262a
472623:	8b 45 08             	mov    0x8(%ebp),%eax
472626:	21 38                	and    %edi,(%eax)
472628:	eb 17                	jmp    0x472641
47262a:	56                   	push   %esi
47262b:	e8 13 04 00 00       	call   0x472a43
472630:	57                   	push   %edi
472631:	8b f0                	mov    %eax,%esi
472633:	e8 5c 00 00 00       	call   0x472694
472638:	59                   	pop    %ecx
472639:	8b 4d 08             	mov    0x8(%ebp),%ecx
47263c:	23 c6                	and    %esi,%eax
47263e:	5e                   	pop    %esi
47263f:	89 01                	mov    %eax,(%ecx)
472641:	33 c0                	xor    %eax,%eax
472643:	5f                   	pop    %edi
472644:	5d                   	pop    %ebp
472645:	c3                   	ret
472646:	8b ff                	mov    %edi,%edi
472648:	55                   	push   %ebp
472649:	8b ec                	mov    %esp,%ebp
47264b:	f6 45 0c 1f          	testb  $0x1f,0xc(%ebp)
47264f:	75 04                	jne    0x472655
472651:	33 c0                	xor    %eax,%eax
472653:	5d                   	pop    %ebp
472654:	c3                   	ret
472655:	56                   	push   %esi
472656:	57                   	push   %edi
472657:	e8 e7 03 00 00       	call   0x472a43
47265c:	ff 75 0c             	push   0xc(%ebp)
47265f:	8b f0                	mov    %eax,%esi
472661:	e8 2e 00 00 00       	call   0x472694
472666:	8b 4d 08             	mov    0x8(%ebp),%ecx
472669:	8b f8                	mov    %eax,%edi
47266b:	f7 d7                	not    %edi
47266d:	23 fe                	and    %esi,%edi
47266f:	8b 09                	mov    (%ecx),%ecx
472671:	23 c8                	and    %eax,%ecx
472673:	0b f9                	or     %ecx,%edi
472675:	57                   	push   %edi
472676:	e8 f0 04 00 00       	call   0x472b6b
47267b:	83 e7 1f             	and    $0x1f,%edi
47267e:	57                   	push   %edi
47267f:	e8 18 03 01 00       	call   0x48299c
472684:	83 c4 0c             	add    $0xc,%esp
472687:	33 c9                	xor    %ecx,%ecx
472689:	3b c7                	cmp    %edi,%eax
47268b:	0f 95 c1             	setne  %cl
47268e:	5f                   	pop    %edi
47268f:	8b c1                	mov    %ecx,%eax
472691:	5e                   	pop    %esi
472692:	5d                   	pop    %ebp
472693:	c3                   	ret
472694:	8b ff                	mov    %edi,%edi
472696:	55                   	push   %ebp
472697:	8b ec                	mov    %esp,%ebp
472699:	8b 4d 08             	mov    0x8(%ebp),%ecx
47269c:	33 c0                	xor    %eax,%eax
47269e:	f6 c1 1f             	test   $0x1f,%cl
4726a1:	74 32                	je     0x4726d5
4726a3:	f6 c1 10             	test   $0x10,%cl
4726a6:	74 05                	je     0x4726ad
4726a8:	b8 10 00 10 10       	mov    $0x10100010,%eax
4726ad:	f6 c1 08             	test   $0x8,%cl
4726b0:	74 05                	je     0x4726b7
4726b2:	0d 08 00 08 08       	or     $0x8080008,%eax