4015ac:	8b 48 04             	mov    0x4(%eax),%ecx
4015af:	8b 10                	mov    (%eax),%edx
4015b1:	39 d1                	cmp    %edx,%ecx
4015b3:	89 11                	mov    %edx,(%ecx)
4015b5:	89 4a 04             	mov    %ecx,0x4(%edx)
4015b8:	74 02                	je     0x4015bc
4015ba:	c3                   	ret
4015bb:	90                   	nop
4015bc:	81 e9 a8 87 4a 00    	sub    $0x4a87a8,%ecx
4015c2:	89 ca                	mov    %ecx,%edx
4015c4:	c1 e9 03             	shr    $0x3,%ecx
4015c7:	0f b6 d6             	movzbl %dh,%edx
4015ca:	b8 fe ff ff ff       	mov    $0xfffffffe,%eax
4015cf:	d3 c0                	rol    %cl,%eax
4015d1:	21 04 95 28 87 4a 00 	and    %eax,0x4a8728(,%edx,4)
4015d8:	75 e0                	jne    0x4015ba
4015da:	b8 fe ff ff ff       	mov    $0xfffffffe,%eax
4015df:	89 d1                	mov    %edx,%ecx
4015e1:	d3 c0                	rol    %cl,%eax
4015e3:	21 05 24 87 4a 00    	and    %eax,0x4a8724
4015e9:	c3                   	ret
4015ea:	8b c0                	mov    %eax,%eax
4015ec:	81 ea 30 0b 00 00    	sub    $0xb30,%edx
4015f2:	c1 ea 08             	shr    $0x8,%edx
4015f5:	81 ea ff 03 00 00    	sub    $0x3ff,%edx
4015fb:	19 c9                	sbb    %ecx,%ecx
4015fd:	21 ca                	and    %ecx,%edx
4015ff:	81 c2 ff 03 00 00    	add    $0x3ff,%edx
401605:	8d 0c d5 a8 87 4a 00 	lea    0x4a87a8(,%edx,8),%ecx
40160c:	8b 51 04             	mov    0x4(%ecx),%edx
40160f:	39 ca                	cmp    %ecx,%edx
401611:	89 08                	mov    %ecx,(%eax)
401613:	89 50 04             	mov    %edx,0x4(%eax)
401616:	89 02                	mov    %eax,(%edx)
401618:	89 41 04             	mov    %eax,0x4(%ecx)
40161b:	74 03                	je     0x401620
40161d:	c3                   	ret
40161e:	90                   	nop
40161f:	90                   	nop
401620:	81 e9 a8 87 4a 00    	sub    $0x4a87a8,%ecx
401626:	89 ca                	mov    %ecx,%edx
401628:	c1 e9 03             	shr    $0x3,%ecx
40162b:	0f b6 d6             	movzbl %dh,%edx
40162e:	b8 01 00 00 00       	mov    $0x1,%eax
401633:	d3 e0                	shl    %cl,%eax
401635:	09 04 95 28 87 4a 00 	or     %eax,0x4a8728(,%edx,4)
40163c:	b8 01 00 00 00       	mov    $0x1,%eax
401641:	89 d1                	mov    %edx,%ecx
401643:	d3 e0                	shl    %cl,%eax
401645:	09 05 24 87 4a 00    	or     %eax,0x4a8724
40164b:	c3                   	ret
40164c:	83 3d 20 87 4a 00 00 	cmpl   $0x0,0x4a8720
401653:	75 03                	jne    0x401658
401655:	c3                   	ret
401656:	90                   	nop
401657:	90                   	nop
401658:	a1 1c 87 4a 00       	mov    0x4a871c,%eax
40165d:	f6 40 fc 01          	testb  $0x1,-0x4(%eax)
401661:	75 25                	jne    0x401688
401663:	83 48 fc 08          	orl    $0x8,-0x4(%eax)
401667:	8b 15 20 87 4a 00    	mov    0x4a8720,%edx
40166d:	29 d0                	sub    %edx,%eax
40166f:	8d 4a 03             	lea    0x3(%edx),%ecx
401672:	89 48 fc             	mov    %ecx,-0x4(%eax)
401675:	89 54 02 f8          	mov    %edx,-0x8(%edx,%eax,1)
401679:	81 fa 30 0b 00 00    	cmp    $0xb30,%edx
40167f:	0f 83 67 ff ff ff    	jae    0x4015ec
401685:	c3                   	ret
401686:	90                   	nop
401687:	90                   	nop
401688:	ba f0 ff ff ff       	mov    $0xfffffff0,%edx
40168d:	23 50 fc             	and    -0x4(%eax),%edx
401690:	81 fa 30 0b 00 00    	cmp    $0xb30,%edx
401696:	72 12                	jb     0x4016aa
401698:	e8 0f ff ff ff       	call   0x4015ac
40169d:	a1 1c 87 4a 00       	mov    0x4a871c,%eax
4016a2:	ba f0 ff ff ff       	mov    $0xfffffff0,%edx
4016a7:	23 50 fc             	and    -0x4(%eax),%edx
4016aa:	8b 0d 20 87 4a 00    	mov    0x4a8720,%ecx
4016b0:	29 c8                	sub    %ecx,%eax
4016b2:	01 ca                	add    %ecx,%edx
4016b4:	eb b9                	jmp    0x40166f
4016b6:	c3                   	ret
4016b7:	90                   	nop
4016b8:	53                   	push   %ebx
4016b9:	8b d8                	mov    %eax,%ebx
4016bb:	e8 8c ff ff ff       	call   0x40164c
4016c0:	6a 04                	push   $0x4
4016c2:	68 00 10 00 00       	push   $0x1000
4016c7:	68 00 00 14 00       	push   $0x140000
4016cc:	6a 00                	push   $0x0
4016ce:	e8 cd fc ff ff       	call   0x4013a0
4016d3:	85 c0                	test   %eax,%eax
4016d5:	74 4d                	je     0x401724
4016d7:	8b 15 0c 87 4a 00    	mov    0x4a870c,%edx
4016dd:	8b c8                	mov    %eax,%ecx
4016df:	c7 01 08 87 4a 00    	movl   $0x4a8708,(%ecx)
4016e5:	a3 0c 87 4a 00       	mov    %eax,0x4a870c
4016ea:	89 51 04             	mov    %edx,0x4(%ecx)
4016ed:	89 02                	mov    %eax,(%edx)
4016ef:	8b d0                	mov    %eax,%edx
4016f1:	81 c2 00 00 14 00    	add    $0x140000,%edx
4016f7:	8b ca                	mov    %edx,%ecx
4016f9:	83 e9 04             	sub    $0x4,%ecx
4016fc:	c7 01 02 00 00 00    	movl   $0x2,(%ecx)
401702:	b9 f0 ff 13 00       	mov    $0x13fff0,%ecx
401707:	2b cb                	sub    %ebx,%ecx
401709:	89 0d 20 87 4a 00    	mov    %ecx,0x4a8720
40170f:	2b d3                	sub    %ebx,%edx
401711:	8b c2                	mov    %edx,%eax
401713:	a3 1c 87 4a 00       	mov    %eax,0x4a871c
401718:	83 cb 02             	or     $0x2,%ebx
40171b:	8b d0                	mov    %eax,%edx
40171d:	83 ea 04             	sub    $0x4,%edx
401720:	89 1a                	mov    %ebx,(%edx)
401722:	5b                   	pop    %ebx
401723:	c3                   	ret
401724:	33 c0                	xor    %eax,%eax
401726:	a3 20 87 4a 00       	mov    %eax,0x4a8720
40172b:	33 c0                	xor    %eax,%eax
40172d:	5b                   	pop    %ebx
40172e:	c3                   	ret
40172f:	90                   	nop
401730:	80 3d 4d 80 4a 00 00 	cmpb   $0x0,0x4a804d
401737:	74 34                	je     0x40176d
401739:	eb 20                	jmp    0x40175b
40173b:	6a 00                	push   $0x0
40173d:	e8 6e fc ff ff       	call   0x4013b0
401742:	b9 a8 a7 4a 00       	mov    $0x4aa7a8,%ecx
401747:	b2 01                	mov    $0x1,%dl
401749:	33 c0                	xor    %eax,%eax
40174b:	e8 d0 fc ff ff       	call   0x401420
401750:	84 c0                	test   %al,%al
401752:	74 19                	je     0x40176d
401754:	6a 0a                	push   $0xa
401756:	e8 55 fc ff ff       	call   0x4013b0
40175b:	b9 a8 a7 4a 00       	mov    $0x4aa7a8,%ecx
401760:	b2 01                	mov    $0x1,%dl
401762:	33 c0                	xor    %eax,%eax
401764:	e8 b7 fc ff ff       	call   0x401420
401769:	84 c0                	test   %al,%al
40176b:	75 ce                	jne    0x40173b
40176d:	c3                   	ret
40176e:	8b c0                	mov    %eax,%eax
401770:	53                   	push   %ebx
401771:	56                   	push   %esi
401772:	57                   	push   %edi
401773:	55                   	push   %ebp
401774:	8b e8                	mov    %eax,%ebp
401776:	8d b5 10 00 01 00    	lea    0x10010(%ebp),%esi
40177c:	4e                   	dec    %esi
40177d:	83 c6 04             	add    $0x4,%esi
401780:	81 e6 00 00 ff ff    	and    $0xffff0000,%esi
401786:	6a 04                	push   $0x4
401788:	68 00 10 10 00       	push   $0x101000
40178d:	56                   	push   %esi
40178e:	6a 00                	push   $0x0
401790:	e8 0b fc ff ff       	call   0x4013a0
401795:	8b d8                	mov    %eax,%ebx
401797:	85 db                	test   %ebx,%ebx
401799:	74 30                	je     0x4017cb
40179b:	8b fb                	mov    %ebx,%edi
40179d:	89 6f 08             	mov    %ebp,0x8(%edi)
4017a0:	83 ce 04             	or     $0x4,%esi
4017a3:	89 77 0c             	mov    %esi,0xc(%edi)
4017a6:	e8 85 ff ff ff       	call   0x401730
4017ab:	a1 b0 a7 4a 00       	mov    0x4aa7b0,%eax
4017b0:	c7 07 ac a7 4a 00    	movl   $0x4aa7ac,(%edi)
4017b6:	89 1d b0 a7 4a 00    	mov    %ebx,0x4aa7b0
4017bc:	89 47 04             	mov    %eax,0x4(%edi)
4017bf:	89 18                	mov    %ebx,(%eax)
4017c1:	c6 05 a8 a7 4a 00 00 	movb   $0x0,0x4aa7a8
4017c8:	83 c3 10             	add    $0x10,%ebx
4017cb:	8b c3                	mov    %ebx,%eax
4017cd:	5d                   	pop    %ebp
4017ce:	5f                   	pop    %edi
4017cf:	5e                   	pop    %esi
4017d0:	5b                   	pop    %ebx
4017d1:	c3                   	ret
4017d2:	8b c0                	mov    %eax,%eax
4017d4:	53                   	push   %ebx
4017d5:	56                   	push   %esi
4017d6:	57                   	push   %edi
4017d7:	8b d8                	mov    %eax,%ebx
4017d9:	83 eb 10             	sub    $0x10,%ebx
4017dc:	e8 4f ff ff ff       	call   0x401730
4017e1:	8b c3                	mov    %ebx,%eax
4017e3:	8b 30                	mov    (%eax),%esi
4017e5:	8b 78 04             	mov    0x4(%eax),%edi
4017e8:	68 00 80 00 00       	push   $0x8000
4017ed:	6a 00                	push   $0x0
4017ef:	53                   	push   %ebx
4017f0:	e8 b3 fb ff ff       	call   0x4013a8
4017f5:	85 c0                	test   %eax,%eax
4017f7:	74 09                	je     0x401802
4017f9:	89 37                	mov    %esi,(%edi)
4017fb:	89 7e 04             	mov    %edi,0x4(%esi)
4017fe:	33 c0                	xor    %eax,%eax
401800:	eb 03                	jmp    0x401805
401802:	83 c8 ff             	or     $0xffffffff,%eax
401805:	c6 05 a8 a7 4a 00 00 	movb   $0x0,0x4aa7a8
40180c:	5f                   	pop    %edi
40180d:	5e                   	pop    %esi
40180e:	5b                   	pop    %ebx
40180f:	c3                   	ret
401810:	8d 50 03             	lea    0x3(%eax),%edx
401813:	c1 ea 03             	shr    $0x3,%edx
401816:	3d 2c 0a 00 00       	cmp    $0xa2c,%eax
40181b:	53                   	push   %ebx
40181c:	8a 0d 4d 80 4a 00    	mov    0x4a804d,%cl
401822:	0f 87 2c 02 00 00    	ja     0x401a54
401828:	84 c9                	test   %cl,%cl
40182a:	0f b6 82 c0 85 4a 00 	movzbl 0x4a85c0(%edx),%eax
401831:	8d 1c c5 3c b0 49 00 	lea    0x49b03c(,%eax,8),%ebx
401838:	75 56                	jne    0x401890
40183a:	8b 53 04             	mov    0x4(%ebx),%edx
40183d:	8b 42 08             	mov    0x8(%edx),%eax
401840:	b9 f8 ff ff ff       	mov    $0xfffffff8,%ecx
401845:	39 da                	cmp    %ebx,%edx
401847:	74 17                	je     0x401860
401849:	83 42 0c 01          	addl   $0x1,0xc(%edx)
40184d:	23 48 fc             	and    -0x4(%eax),%ecx
401850:	89 4a 08             	mov    %ecx,0x8(%edx)
401853:	89 50 fc             	mov    %edx,-0x4(%eax)
401856:	74 28                	je     0x401880
401858:	c6 03 00             	movb   $0x0,(%ebx)
40185b:	5b                   	pop    %ebx
40185c:	c3                   	ret
40185d:	90                   	nop
40185e:	90                   	nop
40185f:	90                   	nop
401860:	8b 53 10             	mov    0x10(%ebx),%edx
401863:	0f b7 4b 02          	movzwl 0x2(%ebx),%ecx
401867:	01 c1                	add    %eax,%ecx
401869:	3b 43 0c             	cmp    0xc(%ebx),%eax
40186c:	77 6e                	ja     0x4018dc
40186e:	83 42 0c 01          	addl   $0x1,0xc(%edx)
401872:	89 4b 08             	mov    %ecx,0x8(%ebx)
401875:	c6 03 00             	movb   $0x0,(%ebx)
401878:	89 50 fc             	mov    %edx,-0x4(%eax)
40187b:	5b                   	pop    %ebx
40187c:	c3                   	ret
40187d:	90                   	nop
40187e:	90                   	nop
40187f:	90                   	nop
401880:	8b 4a 04             	mov    0x4(%edx),%ecx
401883:	89 59 14             	mov    %ebx,0x14(%ecx)
401886:	89 4b 04             	mov    %ecx,0x4(%ebx)
401889:	c6 03 00             	movb   $0x0,(%ebx)
40188c:	5b                   	pop    %ebx
40188d:	c3                   	ret
40188e:	90                   	nop
40188f:	90                   	nop
401890:	b8 00 01 00 00       	mov    $0x100,%eax
401895:	f0 0f b0 23          	lock cmpxchg %ah,(%ebx)
401899:	74 9f                	je     0x40183a
40189b:	83 c3 20             	add    $0x20,%ebx
40189e:	b8 00 01 00 00       	mov    $0x100,%eax
4018a3:	f0 0f b0 23          	lock cmpxchg %ah,(%ebx)
4018a7:	74 91                	je     0x40183a
4018a9:	83 c3 20             	add    $0x20,%ebx
4018ac:	b8 00 01 00 00       	mov    $0x100,%eax
4018b1:	f0 0f b0 23          	lock cmpxchg %ah,(%ebx)
4018b5:	74 83                	je     0x40183a
4018b7:	83 eb 40             	sub    $0x40,%ebx
4018ba:	6a 00                	push   $0x0
4018bc:	e8 ef fa ff ff       	call   0x4013b0
4018c1:	b8 00 01 00 00       	mov    $0x100,%eax
4018c6:	f0 0f b0 23          	lock cmpxchg %ah,(%ebx)
4018ca:	0f 84 6a ff ff ff    	je     0x40183a
4018d0:	6a 0a                	push   $0xa
4018d2:	e8 d9 fa ff ff       	call   0x4013b0
4018d7:	eb b7                	jmp    0x401890
4018d9:	90                   	nop
4018da:	90                   	nop
4018db:	90                   	nop
4018dc:	56                   	push   %esi
4018dd:	57                   	push   %edi
4018de:	80 3d 4d 80 4a 00 00 	cmpb   $0x0,0x4a804d
4018e5:	74 31                	je     0x401918
4018e7:	b8 00 01 00 00       	mov    $0x100,%eax
4018ec:	f0 0f b0 25 18 87 4a 	lock cmpxchg %ah,0x4a8718
4018f3:	00
4018f4:	74 22                	je     0x401918
4018f6:	6a 00                	push   $0x0
4018f8:	e8 b3 fa ff ff       	call   0x4013b0
4018fd:	b8 00 01 00 00       	mov    $0x100,%eax
401902:	f0 0f b0 25 18 87 4a 	lock cmpxchg %ah,0x4a8718
401909:	00
40190a:	74 0c                	je     0x401918
40190c:	6a 0a                	push   $0xa
40190e:	e8 9d fa ff ff       	call   0x4013b0
401913:	eb d2                	jmp    0x4018e7
401915:	90                   	nop
401916:	90                   	nop
401917:	90                   	nop
401918:	0f be 73 01          	movsbl 0x1(%ebx),%esi
40191c:	23 35 24 87 4a 00    	and    0x4a8724,%esi
401922:	74 70                	je     0x401994
401924:	0f bc c6             	bsf    %esi,%eax
401927:	8d 34 c5 00 00 00 00 	lea    0x0(,%eax,8),%esi
40192e:	8b 0c 85 28 87 4a 00 	mov    0x4a8728(,%eax,4),%ecx
401935:	0f bc c9             	bsf    %ecx,%ecx
401938:	8d 0c b1             	lea    (%ecx,%esi,4),%ecx
40193b:	8d 3c cd a8 87 4a 00 	lea    0x4a87a8(,%ecx,8),%edi
401942:	8b 77 04             	mov    0x4(%edi),%esi
401945:	8b 56 04             	mov    0x4(%esi),%edx
401948:	89 57 04             	mov    %edx,0x4(%edi)
40194b:	89 3a                	mov    %edi,(%edx)
40194d:	39 d7                	cmp    %edx,%edi
40194f:	75 17                	jne    0x401968
401951:	ba fe ff ff ff       	mov    $0xfffffffe,%edx
401956:	d3 c2                	rol    %cl,%edx
401958:	21 14 85 28 87 4a 00 	and    %edx,0x4a8728(,%eax,4)
40195f:	75 07                	jne    0x401968
401961:	0f b3 05 24 87 4a 00 	btr    %eax,0x4a8724
401968:	bf f0 ff ff ff       	mov    $0xfffffff0,%edi
40196d:	23 7e fc             	and    -0x4(%esi),%edi
401970:	81 ff 60 0a 01 00    	cmp    $0x10a60,%edi
401976:	72 6c                	jb     0x4019e4
401978:	89 fa                	mov    %edi,%edx
40197a:	0f b7 7b 1a          	movzwl 0x1a(%ebx),%edi
40197e:	29 fa                	sub    %edi,%edx
401980:	8d 04 37             	lea    (%edi,%esi,1),%eax
401983:	8d 4a 03             	lea    0x3(%edx),%ecx
401986:	89 48 fc             	mov    %ecx,-0x4(%eax)
401989:	89 54 02 f8          	mov    %edx,-0x8(%edx,%eax,1)
40198d:	e8 5a fc ff ff       	call   0x4015ec
401992:	eb 55                	jmp    0x4019e9
401994:	0f b7 4b 18          	movzwl 0x18(%ebx),%ecx
401998:	8b 3d 20 87 4a 00    	mov    0x4a8720,%edi
40199e:	39 cf                	cmp    %ecx,%edi
4019a0:	72 26                	jb     0x4019c8
4019a2:	8b 35 1c 87 4a 00    	mov    0x4a871c,%esi
4019a8:	0f b7 4b 1a          	movzwl 0x1a(%ebx),%ecx
4019ac:	8d 91 30 0b 00 00    	lea    0xb30(%ecx),%edx
4019b2:	39 d7                	cmp    %edx,%edi
4019b4:	72 02                	jb     0x4019b8
4019b6:	89 cf                	mov    %ecx,%edi
4019b8:	29 fe                	sub    %edi,%esi
4019ba:	29 3d 20 87 4a 00    	sub    %edi,0x4a8720
4019c0:	89 35 1c 87 4a 00    	mov    %esi,0x4a871c
4019c6:	eb 21                	jmp    0x4019e9
4019c8:	0f b7 43 1a          	movzwl 0x1a(%ebx),%eax
4019cc:	89 c7                	mov    %eax,%edi
4019ce:	e8 e5 fc ff ff       	call   0x4016b8
4019d3:	89 c6                	mov    %eax,%esi
4019d5:	85 c0                	test   %eax,%eax
4019d7:	75 10                	jne    0x4019e9
4019d9:	a2 18 87 4a 00       	mov    %al,0x4a8718