42450c:	83 c7 02             	add    $0x2,%edi
42450f:	0f b7 07             	movzwl (%edi),%eax
424512:	8b d0                	mov    %eax,%edx
424514:	89 55 f8             	mov    %edx,-0x8(%ebp)
424517:	8b 55 08             	mov    0x8(%ebp),%edx
42451a:	66 85 c0             	test   %ax,%ax
42451d:	75 e7                	jne    0x424506
42451f:	33 c0                	xor    %eax,%eax
424521:	83 c1 02             	add    $0x2,%ecx
424524:	66 39 01             	cmp    %ax,(%ecx)
424527:	75 ce                	jne    0x4244f7
424529:	5f                   	pop    %edi
42452a:	2b ca                	sub    %edx,%ecx
42452c:	d1 f9                	sar    $1,%ecx
42452e:	5e                   	pop    %esi
42452f:	8b c1                	mov    %ecx,%eax
424531:	5b                   	pop    %ebx
424532:	c9                   	leave
424533:	c3                   	ret
424534:	8b ff                	mov    %edi,%edi
424536:	55                   	push   %ebp
424537:	8b ec                	mov    %esp,%ebp
424539:	83 ec 1c             	sub    $0x1c,%esp
42453c:	a1 c0 d0 43 00       	mov    0x43d0c0,%eax
424541:	33 c5                	xor    %ebp,%eax
424543:	89 45 fc             	mov    %eax,-0x4(%ebp)
424546:	53                   	push   %ebx
424547:	56                   	push   %esi
424548:	57                   	push   %edi
424549:	ff 75 08             	push   0x8(%ebp)
42454c:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
42454f:	e8 a0 ec fe ff       	call   0x4131f4
424554:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
424557:	85 db                	test   %ebx,%ebx
424559:	75 06                	jne    0x424561
42455b:	8b 45 e8             	mov    -0x18(%ebp),%eax
42455e:	8b 58 08             	mov    0x8(%eax),%ebx
424561:	33 c0                	xor    %eax,%eax
424563:	33 ff                	xor    %edi,%edi
424565:	39 45 20             	cmp    %eax,0x20(%ebp)
424568:	57                   	push   %edi
424569:	57                   	push   %edi
42456a:	ff 75 14             	push   0x14(%ebp)
42456d:	0f 95 c0             	setne  %al
424570:	ff 75 10             	push   0x10(%ebp)
424573:	8d 04 c5 01 00 00 00 	lea    0x1(,%eax,8),%eax
42457a:	50                   	push   %eax
42457b:	53                   	push   %ebx
42457c:	e8 27 c2 ff ff       	call   0x4207a8
424581:	83 c4 18             	add    $0x18,%esp
424584:	89 45 f4             	mov    %eax,-0xc(%ebp)
424587:	85 c0                	test   %eax,%eax
424589:	0f 84 82 00 00 00    	je     0x424611
42458f:	03 c0                	add    %eax,%eax
424591:	89 45 f8             	mov    %eax,-0x8(%ebp)
424594:	8d 48 08             	lea    0x8(%eax),%ecx
424597:	3b c1                	cmp    %ecx,%eax
424599:	1b c0                	sbb    %eax,%eax
42459b:	23 c1                	and    %ecx,%eax
42459d:	74 69                	je     0x424608
42459f:	3d 00 04 00 00       	cmp    $0x400,%eax
4245a4:	77 13                	ja     0x4245b9
4245a6:	e8 65 98 00 00       	call   0x42de10
4245ab:	8b f4                	mov    %esp,%esi
4245ad:	85 f6                	test   %esi,%esi
4245af:	74 59                	je     0x42460a
4245b1:	c7 06 cc cc 00 00    	movl   $0xcccc,(%esi)
4245b7:	eb 13                	jmp    0x4245cc
4245b9:	50                   	push   %eax
4245ba:	e8 71 26 fe ff       	call   0x406c30
4245bf:	8b f0                	mov    %eax,%esi
4245c1:	59                   	pop    %ecx
4245c2:	85 f6                	test   %esi,%esi
4245c4:	74 44                	je     0x42460a
4245c6:	c7 06 dd dd 00 00    	movl   $0xdddd,(%esi)
4245cc:	83 c6 08             	add    $0x8,%esi
4245cf:	85 f6                	test   %esi,%esi
4245d1:	74 37                	je     0x42460a
4245d3:	ff 75 f8             	push   -0x8(%ebp)
4245d6:	57                   	push   %edi
4245d7:	56                   	push   %esi
4245d8:	e8 e3 6d fe ff       	call   0x40b3c0
4245dd:	ff 75 f4             	push   -0xc(%ebp)
4245e0:	56                   	push   %esi
4245e1:	ff 75 14             	push   0x14(%ebp)
4245e4:	ff 75 10             	push   0x10(%ebp)
4245e7:	6a 01                	push   $0x1
4245e9:	53                   	push   %ebx
4245ea:	e8 b9 c1 ff ff       	call   0x4207a8
4245ef:	83 c4 24             	add    $0x24,%esp
4245f2:	85 c0                	test   %eax,%eax
4245f4:	74 14                	je     0x42460a
4245f6:	ff 75 18             	push   0x18(%ebp)
4245f9:	50                   	push   %eax
4245fa:	56                   	push   %esi
4245fb:	ff 75 0c             	push   0xc(%ebp)
4245fe:	ff 15 48 10 43 00    	call   *0x431048
424604:	8b f8                	mov    %eax,%edi
424606:	eb 02                	jmp    0x42460a
424608:	8b f7                	mov    %edi,%esi
42460a:	56                   	push   %esi
42460b:	e8 e8 ed fe ff       	call   0x4133f8
424610:	59                   	pop    %ecx
424611:	80 7d f0 00          	cmpb   $0x0,-0x10(%ebp)
424615:	74 0a                	je     0x424621
424617:	8b 45 e4             	mov    -0x1c(%ebp),%eax
42461a:	83 a0 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%eax)
424621:	8b c7                	mov    %edi,%eax
424623:	8d 65 d8             	lea    -0x28(%ebp),%esp
424626:	5f                   	pop    %edi
424627:	5e                   	pop    %esi
424628:	5b                   	pop    %ebx
424629:	8b 4d fc             	mov    -0x4(%ebp),%ecx
42462c:	33 cd                	xor    %ebp,%ecx
42462e:	e8 74 56 fe ff       	call   0x409ca7
424633:	c9                   	leave
424634:	c3                   	ret
424635:	8b ff                	mov    %edi,%edi
424637:	55                   	push   %ebp
424638:	8b ec                	mov    %esp,%ebp
42463a:	8b 45 08             	mov    0x8(%ebp),%eax
42463d:	f0 ff 40 0c          	lock incl 0xc(%eax)
424641:	8b 48 7c             	mov    0x7c(%eax),%ecx
424644:	85 c9                	test   %ecx,%ecx
424646:	74 03                	je     0x42464b
424648:	f0 ff 01             	lock incl (%ecx)
42464b:	8b 88 84 00 00 00    	mov    0x84(%eax),%ecx
424651:	85 c9                	test   %ecx,%ecx
424653:	74 03                	je     0x424658
424655:	f0 ff 01             	lock incl (%ecx)
424658:	8b 88 80 00 00 00    	mov    0x80(%eax),%ecx
42465e:	85 c9                	test   %ecx,%ecx
424660:	74 03                	je     0x424665
424662:	f0 ff 01             	lock incl (%ecx)
424665:	8b 88 8c 00 00 00    	mov    0x8c(%eax),%ecx
42466b:	85 c9                	test   %ecx,%ecx
42466d:	74 03                	je     0x424672
42466f:	f0 ff 01             	lock incl (%ecx)
424672:	56                   	push   %esi
424673:	6a 06                	push   $0x6
424675:	8d 48 28             	lea    0x28(%eax),%ecx
424678:	5e                   	pop    %esi
424679:	81 79 f8 18 d2 43 00 	cmpl   $0x43d218,-0x8(%ecx)
424680:	74 09                	je     0x42468b
424682:	8b 11                	mov    (%ecx),%edx
424684:	85 d2                	test   %edx,%edx
424686:	74 03                	je     0x42468b
424688:	f0 ff 02             	lock incl (%edx)
42468b:	83 79 f4 00          	cmpl   $0x0,-0xc(%ecx)
42468f:	74 0a                	je     0x42469b
424691:	8b 51 fc             	mov    -0x4(%ecx),%edx
424694:	85 d2                	test   %edx,%edx
424696:	74 03                	je     0x42469b
424698:	f0 ff 02             	lock incl (%edx)
42469b:	83 c1 10             	add    $0x10,%ecx
42469e:	83 ee 01             	sub    $0x1,%esi
4246a1:	75 d6                	jne    0x424679
4246a3:	ff b0 9c 00 00 00    	push   0x9c(%eax)
4246a9:	e8 4c 01 00 00       	call   0x4247fa
4246ae:	59                   	pop    %ecx
4246af:	5e                   	pop    %esi
4246b0:	5d                   	pop    %ebp
4246b1:	c3                   	ret
4246b2:	8b ff                	mov    %edi,%edi
4246b4:	55                   	push   %ebp
4246b5:	8b ec                	mov    %esp,%ebp
4246b7:	51                   	push   %ecx
4246b8:	53                   	push   %ebx
4246b9:	56                   	push   %esi
4246ba:	8b 75 08             	mov    0x8(%ebp),%esi
4246bd:	57                   	push   %edi
4246be:	8b 86 88 00 00 00    	mov    0x88(%esi),%eax
4246c4:	85 c0                	test   %eax,%eax
4246c6:	74 6c                	je     0x424734
4246c8:	3d d8 da 43 00       	cmp    $0x43dad8,%eax
4246cd:	74 65                	je     0x424734
4246cf:	8b 46 7c             	mov    0x7c(%esi),%eax
4246d2:	85 c0                	test   %eax,%eax
4246d4:	74 5e                	je     0x424734
4246d6:	83 38 00             	cmpl   $0x0,(%eax)
4246d9:	75 59                	jne    0x424734
4246db:	8b 86 84 00 00 00    	mov    0x84(%esi),%eax
4246e1:	85 c0                	test   %eax,%eax
4246e3:	74 18                	je     0x4246fd
4246e5:	83 38 00             	cmpl   $0x0,(%eax)
4246e8:	75 13                	jne    0x4246fd
4246ea:	50                   	push   %eax
4246eb:	e8 20 25 fe ff       	call   0x406c10
4246f0:	ff b6 88 00 00 00    	push   0x88(%esi)
4246f6:	e8 08 f2 ff ff       	call   0x423903
4246fb:	59                   	pop    %ecx
4246fc:	59                   	pop    %ecx
4246fd:	8b 86 80 00 00 00    	mov    0x80(%esi),%eax
424703:	85 c0                	test   %eax,%eax
424705:	74 18                	je     0x42471f
424707:	83 38 00             	cmpl   $0x0,(%eax)
42470a:	75 13                	jne    0x42471f
42470c:	50                   	push   %eax
42470d:	e8 fe 24 fe ff       	call   0x406c10
424712:	ff b6 88 00 00 00    	push   0x88(%esi)
424718:	e8 45 f6 ff ff       	call   0x423d62
42471d:	59                   	pop    %ecx
42471e:	59                   	pop    %ecx
42471f:	ff 76 7c             	push   0x7c(%esi)
424722:	e8 e9 24 fe ff       	call   0x406c10
424727:	ff b6 88 00 00 00    	push   0x88(%esi)
42472d:	e8 de 24 fe ff       	call   0x406c10
424732:	59                   	pop    %ecx
424733:	59                   	pop    %ecx
424734:	8b 86 8c 00 00 00    	mov    0x8c(%esi),%eax
42473a:	85 c0                	test   %eax,%eax
42473c:	74 45                	je     0x424783
42473e:	83 38 00             	cmpl   $0x0,(%eax)
424741:	75 40                	jne    0x424783
424743:	8b 86 90 00 00 00    	mov    0x90(%esi),%eax
424749:	2d fe 00 00 00       	sub    $0xfe,%eax
42474e:	50                   	push   %eax
42474f:	e8 bc 24 fe ff       	call   0x406c10
424754:	8b 86 94 00 00 00    	mov    0x94(%esi),%eax
42475a:	bf 80 00 00 00       	mov    $0x80,%edi
42475f:	2b c7                	sub    %edi,%eax
424761:	50                   	push   %eax
424762:	e8 a9 24 fe ff       	call   0x406c10
424767:	8b 86 98 00 00 00    	mov    0x98(%esi),%eax
42476d:	2b c7                	sub    %edi,%eax
42476f:	50                   	push   %eax
424770:	e8 9b 24 fe ff       	call   0x406c10
424775:	ff b6 8c 00 00 00    	push   0x8c(%esi)
42477b:	e8 90 24 fe ff       	call   0x406c10
424780:	83 c4 10             	add    $0x10,%esp
424783:	ff b6 9c 00 00 00    	push   0x9c(%esi)
424789:	e8 95 00 00 00       	call   0x424823
42478e:	59                   	pop    %ecx
42478f:	6a 06                	push   $0x6
424791:	58                   	pop    %eax
424792:	8d 9e a0 00 00 00    	lea    0xa0(%esi),%ebx
424798:	89 45 fc             	mov    %eax,-0x4(%ebp)
42479b:	8d 7e 28             	lea    0x28(%esi),%edi
42479e:	81 7f f8 18 d2 43 00 	cmpl   $0x43d218,-0x8(%edi)
4247a5:	74 1d                	je     0x4247c4
4247a7:	8b 07                	mov    (%edi),%eax
4247a9:	85 c0                	test   %eax,%eax
4247ab:	74 14                	je     0x4247c1
4247ad:	83 38 00             	cmpl   $0x0,(%eax)
4247b0:	75 0f                	jne    0x4247c1
4247b2:	50                   	push   %eax
4247b3:	e8 58 24 fe ff       	call   0x406c10
4247b8:	ff 33                	push   (%ebx)
4247ba:	e8 51 24 fe ff       	call   0x406c10
4247bf:	59                   	pop    %ecx
4247c0:	59                   	pop    %ecx
4247c1:	8b 45 fc             	mov    -0x4(%ebp),%eax
4247c4:	83 7f f4 00          	cmpl   $0x0,-0xc(%edi)
4247c8:	74 16                	je     0x4247e0
4247ca:	8b 47 fc             	mov    -0x4(%edi),%eax
4247cd:	85 c0                	test   %eax,%eax
4247cf:	74 0c                	je     0x4247dd
4247d1:	83 38 00             	cmpl   $0x0,(%eax)
4247d4:	75 07                	jne    0x4247dd
4247d6:	50                   	push   %eax
4247d7:	e8 34 24 fe ff       	call   0x406c10
4247dc:	59                   	pop    %ecx
4247dd:	8b 45 fc             	mov    -0x4(%ebp),%eax
4247e0:	83 c3 04             	add    $0x4,%ebx
4247e3:	83 c7 10             	add    $0x10,%edi
4247e6:	83 e8 01             	sub    $0x1,%eax
4247e9:	89 45 fc             	mov    %eax,-0x4(%ebp)
4247ec:	75 b0                	jne    0x42479e
4247ee:	56                   	push   %esi
4247ef:	e8 1c 24 fe ff       	call   0x406c10
4247f4:	59                   	pop    %ecx
4247f5:	5f                   	pop    %edi
4247f6:	5e                   	pop    %esi
4247f7:	5b                   	pop    %ebx
4247f8:	c9                   	leave
4247f9:	c3                   	ret
4247fa:	8b ff                	mov    %edi,%edi
4247fc:	55                   	push   %ebp
4247fd:	8b ec                	mov    %esp,%ebp
4247ff:	8b 4d 08             	mov    0x8(%ebp),%ecx
424802:	85 c9                	test   %ecx,%ecx
424804:	74 16                	je     0x42481c
424806:	81 f9 a8 33 43 00    	cmp    $0x4333a8,%ecx
42480c:	74 0e                	je     0x42481c
42480e:	33 c0                	xor    %eax,%eax
424810:	40                   	inc    %eax
424811:	f0 0f c1 81 b0 00 00 	lock xadd %eax,0xb0(%ecx)
424818:	00
424819:	40                   	inc    %eax
42481a:	5d                   	pop    %ebp
42481b:	c3                   	ret
42481c:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
424821:	5d                   	pop    %ebp
424822:	c3                   	ret
424823:	8b ff                	mov    %edi,%edi
424825:	55                   	push   %ebp
424826:	8b ec                	mov    %esp,%ebp
424828:	56                   	push   %esi
424829:	8b 75 08             	mov    0x8(%ebp),%esi
42482c:	85 f6                	test   %esi,%esi
42482e:	74 21                	je     0x424851
424830:	81 fe a8 33 43 00    	cmp    $0x4333a8,%esi
424836:	74 19                	je     0x424851
424838:	8b 86 b0 00 00 00    	mov    0xb0(%esi),%eax
42483e:	90                   	nop
42483f:	85 c0                	test   %eax,%eax
424841:	75 0e                	jne    0x424851
424843:	56                   	push   %esi
424844:	e8 40 fa ff ff       	call   0x424289
424849:	56                   	push   %esi
42484a:	e8 c1 23 fe ff       	call   0x406c10
42484f:	59                   	pop    %ecx
424850:	59                   	pop    %ecx
424851:	5e                   	pop    %esi
424852:	5d                   	pop    %ebp
424853:	c3                   	ret
424854:	8b ff                	mov    %edi,%edi
424856:	55                   	push   %ebp
424857:	8b ec                	mov    %esp,%ebp
424859:	8b 4d 08             	mov    0x8(%ebp),%ecx
42485c:	85 c9                	test   %ecx,%ecx
42485e:	74 16                	je     0x424876
424860:	81 f9 a8 33 43 00    	cmp    $0x4333a8,%ecx
424866:	74 0e                	je     0x424876
424868:	83 c8 ff             	or     $0xffffffff,%eax
42486b:	f0 0f c1 81 b0 00 00 	lock xadd %eax,0xb0(%ecx)
424872:	00
424873:	48                   	dec    %eax
424874:	5d                   	pop    %ebp
424875:	c3                   	ret
424876:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
42487b:	5d                   	pop    %ebp
42487c:	c3                   	ret
42487d:	8b ff                	mov    %edi,%edi
42487f:	55                   	push   %ebp
424880:	8b ec                	mov    %esp,%ebp
424882:	8b 45 08             	mov    0x8(%ebp),%eax
424885:	85 c0                	test   %eax,%eax
424887:	74 73                	je     0x4248fc
424889:	f0 ff 48 0c          	lock decl 0xc(%eax)
42488d:	8b 48 7c             	mov    0x7c(%eax),%ecx
424890:	85 c9                	test   %ecx,%ecx
424892:	74 03                	je     0x424897
424894:	f0 ff 09             	lock decl (%ecx)
424897:	8b 88 84 00 00 00    	mov    0x84(%eax),%ecx
42489d:	85 c9                	test   %ecx,%ecx
42489f:	74 03                	je     0x4248a4
4248a1:	f0 ff 09             	lock decl (%ecx)
4248a4:	8b 88 80 00 00 00    	mov    0x80(%eax),%ecx
4248aa:	85 c9                	test   %ecx,%ecx