491489:	33 db                	xor    %ebx,%ebx
49148b:	57                   	push   %edi
49148c:	6a 02                	push   $0x2
49148e:	5a                   	pop    %edx
49148f:	8b 0e                	mov    (%esi),%ecx
491491:	8d 79 02             	lea    0x2(%ecx),%edi
491494:	66 8b 01             	mov    (%ecx),%ax
491497:	03 ca                	add    %edx,%ecx
491499:	66 3b c3             	cmp    %bx,%ax
49149c:	75 f6                	jne    0x491494
49149e:	2b cf                	sub    %edi,%ecx
4914a0:	33 c0                	xor    %eax,%eax
4914a2:	d1 f9                	sar    $1,%ecx
4914a4:	83 f9 03             	cmp    $0x3,%ecx
4914a7:	0f 94 c0             	sete   %al
4914aa:	89 46 10             	mov    %eax,0x10(%esi)
4914ad:	74 0a                	je     0x4914b9
4914af:	ff 36                	push   (%esi)
4914b1:	e8 22 00 00 00       	call   0x4914d8
4914b6:	59                   	pop    %ecx
4914b7:	8b d0                	mov    %eax,%edx
4914b9:	53                   	push   %ebx
4914ba:	53                   	push   %ebx
4914bb:	6a 03                	push   $0x3
4914bd:	68 00 18 49 00       	push   $0x491800
4914c2:	89 56 0c             	mov    %edx,0xc(%esi)
4914c5:	e8 bc 72 ff ff       	call   0x488786
4914ca:	f6 46 08 04          	testb  $0x4,0x8(%esi)
4914ce:	75 03                	jne    0x4914d3
4914d0:	89 5e 08             	mov    %ebx,0x8(%esi)
4914d3:	5f                   	pop    %edi
4914d4:	5e                   	pop    %esi
4914d5:	5b                   	pop    %ebx
4914d6:	5d                   	pop    %ebp
4914d7:	c3                   	ret
4914d8:	8b ff                	mov    %edi,%edi
4914da:	55                   	push   %ebp
4914db:	8b ec                	mov    %esp,%ebp
4914dd:	8b 4d 08             	mov    0x8(%ebp),%ecx
4914e0:	33 d2                	xor    %edx,%edx
4914e2:	85 c9                	test   %ecx,%ecx
4914e4:	75 04                	jne    0x4914ea
4914e6:	33 c0                	xor    %eax,%eax
4914e8:	5d                   	pop    %ebp
4914e9:	c3                   	ret
4914ea:	0f b7 01             	movzwl (%ecx),%eax
4914ed:	83 c1 02             	add    $0x2,%ecx
4914f0:	66 83 f8 41          	cmp    $0x41,%ax
4914f4:	72 06                	jb     0x4914fc
4914f6:	66 83 f8 5a          	cmp    $0x5a,%ax
4914fa:	76 09                	jbe    0x491505
4914fc:	83 c0 9f             	add    $0xffffff9f,%eax
4914ff:	66 83 f8 19          	cmp    $0x19,%ax
491503:	77 03                	ja     0x491508
491505:	42                   	inc    %edx
491506:	eb e2                	jmp    0x4914ea
491508:	8b c2                	mov    %edx,%eax
49150a:	5d                   	pop    %ebp
49150b:	c3                   	ret
49150c:	cc                   	int3
49150d:	cc                   	int3
49150e:	cc                   	int3
49150f:	cc                   	int3
491510:	8b ff                	mov    %edi,%edi
491512:	55                   	push   %ebp
491513:	8b ec                	mov    %esp,%ebp
491515:	81 ec 88 00 00 00    	sub    $0x88,%esp
49151b:	a1 14 40 4c 00       	mov    0x4c4014,%eax
491520:	33 c5                	xor    %ebp,%eax
491522:	89 45 fc             	mov    %eax,-0x4(%ebp)
491525:	56                   	push   %esi
491526:	57                   	push   %edi
491527:	8b 7d 08             	mov    0x8(%ebp),%edi
49152a:	e8 8a 55 ff ff       	call   0x486ab9
49152f:	8b f0                	mov    %eax,%esi
491531:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
491537:	6a 40                	push   $0x40
491539:	50                   	push   %eax
49153a:	8b 4e 64             	mov    0x64(%esi),%ecx
49153d:	f7 d9                	neg    %ecx
49153f:	1b c9                	sbb    %ecx,%ecx
491541:	81 e1 05 f0 ff ff    	and    $0xfffff005,%ecx
491547:	81 c1 02 10 00 00    	add    $0x1002,%ecx
49154d:	51                   	push   %ecx
49154e:	57                   	push   %edi
49154f:	e8 dc 73 ff ff       	call   0x488930
491554:	85 c0                	test   %eax,%eax
491556:	75 09                	jne    0x491561
491558:	21 46 58             	and    %eax,0x58(%esi)
49155b:	40                   	inc    %eax
49155c:	e9 47 02 00 00       	jmp    0x4917a8
491561:	53                   	push   %ebx
491562:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
491568:	50                   	push   %eax
491569:	ff 76 54             	push   0x54(%esi)
49156c:	e8 67 8d fe ff       	call   0x47a2d8
491571:	33 db                	xor    %ebx,%ebx
491573:	89 9d 78 ff ff ff    	mov    %ebx,-0x88(%ebp)
491579:	59                   	pop    %ecx
49157a:	59                   	pop    %ecx
49157b:	85 c0                	test   %eax,%eax
49157d:	0f 85 e0 00 00 00    	jne    0x491663
491583:	6a 40                	push   $0x40
491585:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
49158b:	50                   	push   %eax
49158c:	8b 46 60             	mov    0x60(%esi),%eax
49158f:	f7 d8                	neg    %eax
491591:	1b c0                	sbb    %eax,%eax
491593:	25 02 f0 ff ff       	and    $0xfffff002,%eax
491598:	05 01 10 00 00       	add    $0x1001,%eax
49159d:	50                   	push   %eax
49159e:	57                   	push   %edi
49159f:	e8 8c 73 ff ff       	call   0x488930
4915a4:	85 c0                	test   %eax,%eax
4915a6:	75 08                	jne    0x4915b0
4915a8:	21 5e 58             	and    %ebx,0x58(%esi)
4915ab:	e9 ef 00 00 00       	jmp    0x49169f
4915b0:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
4915b6:	50                   	push   %eax
4915b7:	ff 76 50             	push   0x50(%esi)
4915ba:	e8 19 8d fe ff       	call   0x47a2d8
4915bf:	59                   	pop    %ecx
4915c0:	59                   	pop    %ecx
4915c1:	8b 4e 58             	mov    0x58(%esi),%ecx
4915c4:	85 c0                	test   %eax,%eax
4915c6:	75 1b                	jne    0x4915e3
4915c8:	81 c9 04 03 00 00    	or     $0x304,%ecx
4915ce:	89 4e 58             	mov    %ecx,0x58(%esi)
4915d1:	8b cf                	mov    %edi,%ecx
4915d3:	8d 51 02             	lea    0x2(%ecx),%edx
4915d6:	66 8b 01             	mov    (%ecx),%ax
4915d9:	83 c1 02             	add    $0x2,%ecx
4915dc:	66 3b c3             	cmp    %bx,%ax
4915df:	75 f5                	jne    0x4915d6
4915e1:	eb 5e                	jmp    0x491641
4915e3:	f6 c1 02             	test   $0x2,%cl
4915e6:	75 7b                	jne    0x491663
4915e8:	39 5e 5c             	cmp    %ebx,0x5c(%esi)
4915eb:	74 2f                	je     0x49161c
4915ed:	ff 76 5c             	push   0x5c(%esi)
4915f0:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
4915f6:	50                   	push   %eax
4915f7:	ff 76 50             	push   0x50(%esi)
4915fa:	e8 29 8e fe ff       	call   0x47a428
4915ff:	83 c4 0c             	add    $0xc,%esp
491602:	85 c0                	test   %eax,%eax
491604:	75 16                	jne    0x49161c
491606:	83 4e 58 02          	orl    $0x2,0x58(%esi)
49160a:	8b cf                	mov    %edi,%ecx
49160c:	8d 51 02             	lea    0x2(%ecx),%edx
49160f:	66 8b 01             	mov    (%ecx),%ax
491612:	83 c1 02             	add    $0x2,%ecx
491615:	66 3b c3             	cmp    %bx,%ax
491618:	75 f5                	jne    0x49160f
49161a:	eb 25                	jmp    0x491641
49161c:	f6 46 58 01          	testb  $0x1,0x58(%esi)
491620:	75 41                	jne    0x491663
491622:	57                   	push   %edi
491623:	e8 87 03 00 00       	call   0x4919af
491628:	59                   	pop    %ecx
491629:	85 c0                	test   %eax,%eax
49162b:	74 36                	je     0x491663
49162d:	83 4e 58 01          	orl    $0x1,0x58(%esi)
491631:	8b cf                	mov    %edi,%ecx
491633:	8d 51 02             	lea    0x2(%ecx),%edx
491636:	66 8b 01             	mov    (%ecx),%ax
491639:	83 c1 02             	add    $0x2,%ecx
49163c:	66 3b c3             	cmp    %bx,%ax
49163f:	75 f5                	jne    0x491636
491641:	2b ca                	sub    %edx,%ecx
491643:	d1 f9                	sar    $1,%ecx
491645:	8d 41 01             	lea    0x1(%ecx),%eax
491648:	50                   	push   %eax
491649:	57                   	push   %edi
49164a:	8d 86 a0 02 00 00    	lea    0x2a0(%esi),%eax
491650:	6a 55                	push   $0x55
491652:	50                   	push   %eax
491653:	e8 b6 e8 fe ff       	call   0x47ff0e
491658:	83 c4 10             	add    $0x10,%esp
49165b:	85 c0                	test   %eax,%eax
49165d:	0f 85 83 01 00 00    	jne    0x4917e6
491663:	8b 46 58             	mov    0x58(%esi),%eax
491666:	b9 00 03 00 00       	mov    $0x300,%ecx
49166b:	23 c1                	and    %ecx,%eax
49166d:	3b c1                	cmp    %ecx,%eax
49166f:	0f 84 27 01 00 00    	je     0x49179c
491675:	8b 4e 60             	mov    0x60(%esi),%ecx
491678:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
49167e:	f7 d9                	neg    %ecx
491680:	6a 40                	push   $0x40
491682:	1b c9                	sbb    %ecx,%ecx
491684:	81 e1 02 f0 ff ff    	and    $0xfffff002,%ecx
49168a:	50                   	push   %eax
49168b:	81 c1 01 10 00 00    	add    $0x1001,%ecx
491691:	51                   	push   %ecx
491692:	57                   	push   %edi
491693:	e8 98 72 ff ff       	call   0x488930
491698:	85 c0                	test   %eax,%eax
49169a:	75 0b                	jne    0x4916a7
49169c:	89 5e 58             	mov    %ebx,0x58(%esi)
49169f:	33 c0                	xor    %eax,%eax
4916a1:	40                   	inc    %eax
4916a2:	e9 00 01 00 00       	jmp    0x4917a7
4916a7:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
4916ad:	50                   	push   %eax
4916ae:	ff 76 50             	push   0x50(%esi)
4916b1:	e8 22 8c fe ff       	call   0x47a2d8
4916b6:	59                   	pop    %ecx
4916b7:	59                   	pop    %ecx
4916b8:	85 c0                	test   %eax,%eax
4916ba:	0f 85 dc 00 00 00    	jne    0x49179c
4916c0:	8b 4e 58             	mov    0x58(%esi),%ecx
4916c3:	81 c9 00 02 00 00    	or     $0x200,%ecx
4916c9:	89 4e 58             	mov    %ecx,0x58(%esi)
4916cc:	39 5e 60             	cmp    %ebx,0x60(%esi)
4916cf:	74 31                	je     0x491702
4916d1:	81 c9 00 01 00 00    	or     $0x100,%ecx
4916d7:	8d 96 a0 02 00 00    	lea    0x2a0(%esi),%edx
4916dd:	89 4e 58             	mov    %ecx,0x58(%esi)
4916e0:	66 39 1a             	cmp    %bx,(%edx)
4916e3:	0f 85 b3 00 00 00    	jne    0x49179c
4916e9:	8b cf                	mov    %edi,%ecx
4916eb:	8d 59 02             	lea    0x2(%ecx),%ebx
4916ee:	66 8b 01             	mov    (%ecx),%ax
4916f1:	83 c1 02             	add    $0x2,%ecx
4916f4:	66 3b 85 78 ff ff ff 	cmp    -0x88(%ebp),%ax
4916fb:	75 f1                	jne    0x4916ee
4916fd:	e9 82 00 00 00       	jmp    0x491784
491702:	39 5e 5c             	cmp    %ebx,0x5c(%esi)
491705:	0f 84 af 00 00 00    	je     0x4917ba
49170b:	8b 56 50             	mov    0x50(%esi),%edx
49170e:	8d 5a 02             	lea    0x2(%edx),%ebx
491711:	66 8b 02             	mov    (%edx),%ax
491714:	83 c2 02             	add    $0x2,%edx
491717:	66 3b 85 78 ff ff ff 	cmp    -0x88(%ebp),%ax
49171e:	75 f1                	jne    0x491711
491720:	2b d3                	sub    %ebx,%edx
491722:	d1 fa                	sar    $1,%edx
491724:	3b 56 5c             	cmp    0x5c(%esi),%edx
491727:	0f 85 8b 00 00 00    	jne    0x4917b8
49172d:	57                   	push   %edi
49172e:	e8 7c 02 00 00       	call   0x4919af
491733:	59                   	pop    %ecx
491734:	85 c0                	test   %eax,%eax
491736:	75 24                	jne    0x49175c
491738:	8b 5e 50             	mov    0x50(%esi),%ebx
49173b:	33 d2                	xor    %edx,%edx
49173d:	8d 4b 02             	lea    0x2(%ebx),%ecx
491740:	66 8b 03             	mov    (%ebx),%ax
491743:	83 c3 02             	add    $0x2,%ebx
491746:	66 3b c2             	cmp    %dx,%ax
491749:	75 f5                	jne    0x491740
49174b:	ff 76 50             	push   0x50(%esi)
49174e:	2b d9                	sub    %ecx,%ebx
491750:	d1 fb                	sar    $1,%ebx
491752:	e8 81 fd ff ff       	call   0x4914d8
491757:	59                   	pop    %ecx
491758:	3b c3                	cmp    %ebx,%eax
49175a:	74 40                	je     0x49179c
49175c:	81 4e 58 00 01 00 00 	orl    $0x100,0x58(%esi)
491763:	8d 96 a0 02 00 00    	lea    0x2a0(%esi),%edx
491769:	33 c0                	xor    %eax,%eax
49176b:	66 39 02             	cmp    %ax,(%edx)
49176e:	75 2c                	jne    0x49179c
491770:	8b cf                	mov    %edi,%ecx
491772:	8d 59 02             	lea    0x2(%ecx),%ebx
491775:	66 8b 01             	mov    (%ecx),%ax
491778:	83 c1 02             	add    $0x2,%ecx
49177b:	66 3b 85 78 ff ff ff 	cmp    -0x88(%ebp),%ax
491782:	75 f1                	jne    0x491775
491784:	2b cb                	sub    %ebx,%ecx
491786:	d1 f9                	sar    $1,%ecx
491788:	8d 41 01             	lea    0x1(%ecx),%eax
49178b:	50                   	push   %eax
49178c:	57                   	push   %edi
49178d:	6a 55                	push   $0x55
49178f:	52                   	push   %edx
491790:	e8 79 e7 fe ff       	call   0x47ff0e
491795:	83 c4 10             	add    $0x10,%esp
491798:	85 c0                	test   %eax,%eax
49179a:	75 48                	jne    0x4917e4
49179c:	8b 46 58             	mov    0x58(%esi),%eax
49179f:	c1 e8 02             	shr    $0x2,%eax
4917a2:	f7 d0                	not    %eax
4917a4:	83 e0 01             	and    $0x1,%eax
4917a7:	5b                   	pop    %ebx
4917a8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4917ab:	5f                   	pop    %edi
4917ac:	33 cd                	xor    %ebp,%ecx
4917ae:	5e                   	pop    %esi
4917af:	e8 16 82 fd ff       	call   0x4699ca
4917b4:	c9                   	leave
4917b5:	c2 0c 00             	ret    $0xc
4917b8:	33 db                	xor    %ebx,%ebx
4917ba:	81 c9 00 01 00 00    	or     $0x100,%ecx
4917c0:	8d 96 a0 02 00 00    	lea    0x2a0(%esi),%edx
4917c6:	89 4e 58             	mov    %ecx,0x58(%esi)
4917c9:	66 39 1a             	cmp    %bx,(%edx)
4917cc:	75 ce                	jne    0x49179c
4917ce:	8b cf                	mov    %edi,%ecx
4917d0:	8d 59 02             	lea    0x2(%ecx),%ebx
4917d3:	66 8b 01             	mov    (%ecx),%ax
4917d6:	83 c1 02             	add    $0x2,%ecx
4917d9:	66 3b 85 78 ff ff ff 	cmp    -0x88(%ebp),%ax
4917e0:	75 f1                	jne    0x4917d3
4917e2:	eb a0                	jmp    0x491784
4917e4:	33 db                	xor    %ebx,%ebx
4917e6:	53                   	push   %ebx
4917e7:	53                   	push   %ebx
4917e8:	53                   	push   %ebx
4917e9:	53                   	push   %ebx
4917ea:	53                   	push   %ebx
4917eb:	e8 5e 7e fe ff       	call   0x47964e
4917f0:	cc                   	int3
4917f1:	cc                   	int3
4917f2:	cc                   	int3
4917f3:	cc                   	int3
4917f4:	cc                   	int3
4917f5:	cc                   	int3
4917f6:	cc                   	int3
4917f7:	cc                   	int3
4917f8:	cc                   	int3
4917f9:	cc                   	int3
4917fa:	cc                   	int3
4917fb:	cc                   	int3
4917fc:	cc                   	int3
4917fd:	cc                   	int3
4917fe:	cc                   	int3
4917ff:	cc                   	int3
491800:	8b ff                	mov    %edi,%edi
491802:	55                   	push   %ebp
491803:	8b ec                	mov    %esp,%ebp
491805:	81 ec f4 00 00 00    	sub    $0xf4,%esp
49180b:	a1 14 40 4c 00       	mov    0x4c4014,%eax
491810:	33 c5                	xor    %ebp,%eax
491812:	89 45 fc             	mov    %eax,-0x4(%ebp)
491815:	56                   	push   %esi
491816:	57                   	push   %edi
491817:	8b 7d 08             	mov    0x8(%ebp),%edi
49181a:	e8 9a 52 ff ff       	call   0x486ab9
49181f:	8b f0                	mov    %eax,%esi
491821:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax
491827:	6a 78                	push   $0x78
491829:	50                   	push   %eax
49182a:	8b 4e 60             	mov    0x60(%esi),%ecx
49182d:	f7 d9                	neg    %ecx
49182f:	1b c9                	sbb    %ecx,%ecx
491831:	81 e1 02 f0 ff ff    	and    $0xfffff002,%ecx
491837:	81 c1 01 10 00 00    	add    $0x1001,%ecx
49183d:	51                   	push   %ecx