42451e:	8b ff                	mov    %edi,%edi
424520:	55                   	push   %ebp
424521:	8b ec                	mov    %esp,%ebp
424523:	57                   	push   %edi
424524:	ff 75 0c             	push   0xc(%ebp)
424527:	e8 53 62 ff ff       	call   0x41a77f
42452c:	59                   	pop    %ecx
42452d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
424530:	8b f8                	mov    %eax,%edi
424532:	8b 49 0c             	mov    0xc(%ecx),%ecx
424535:	f6 c1 06             	test   $0x6,%cl
424538:	75 21                	jne    0x42455b
42453a:	e8 2c 05 ff ff       	call   0x414a6b
42453f:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
424545:	8b 45 0c             	mov    0xc(%ebp),%eax
424548:	6a 10                	push   $0x10
42454a:	59                   	pop    %ecx
42454b:	83 c0 0c             	add    $0xc,%eax
42454e:	f0 09 08             	lock or %ecx,(%eax)
424551:	b8 ff ff 00 00       	mov    $0xffff,%eax
424556:	e9 d5 00 00 00       	jmp    0x424630
42455b:	8b 45 0c             	mov    0xc(%ebp),%eax
42455e:	8b 40 0c             	mov    0xc(%eax),%eax
424561:	c1 e8 0c             	shr    $0xc,%eax
424564:	a8 01                	test   $0x1,%al
424566:	74 0d                	je     0x424575
424568:	e8 fe 04 ff ff       	call   0x414a6b
42456d:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
424573:	eb d0                	jmp    0x424545
424575:	8b 45 0c             	mov    0xc(%ebp),%eax
424578:	8b 40 0c             	mov    0xc(%eax),%eax
42457b:	a8 01                	test   $0x1,%al
42457d:	74 28                	je     0x4245a7
42457f:	8b 45 0c             	mov    0xc(%ebp),%eax
424582:	83 60 08 00          	andl   $0x0,0x8(%eax)
424586:	8b 45 0c             	mov    0xc(%ebp),%eax
424589:	8b 40 0c             	mov    0xc(%eax),%eax
42458c:	c1 e8 03             	shr    $0x3,%eax
42458f:	a8 01                	test   $0x1,%al
424591:	8b 45 0c             	mov    0xc(%ebp),%eax
424594:	74 b2                	je     0x424548
424596:	8b 48 04             	mov    0x4(%eax),%ecx
424599:	89 08                	mov    %ecx,(%eax)
42459b:	8b 45 0c             	mov    0xc(%ebp),%eax
42459e:	6a fe                	push   $0xfffffffe
4245a0:	59                   	pop    %ecx
4245a1:	83 c0 0c             	add    $0xc,%eax
4245a4:	f0 21 08             	lock and %ecx,(%eax)
4245a7:	8b 45 0c             	mov    0xc(%ebp),%eax
4245aa:	53                   	push   %ebx
4245ab:	56                   	push   %esi
4245ac:	6a 02                	push   $0x2
4245ae:	5b                   	pop    %ebx
4245af:	83 c0 0c             	add    $0xc,%eax
4245b2:	f0 09 18             	lock or %ebx,(%eax)
4245b5:	8b 45 0c             	mov    0xc(%ebp),%eax
4245b8:	6a f7                	push   $0xfffffff7
4245ba:	59                   	pop    %ecx
4245bb:	83 c0 0c             	add    $0xc,%eax
4245be:	f0 21 08             	lock and %ecx,(%eax)
4245c1:	8b 45 0c             	mov    0xc(%ebp),%eax
4245c4:	83 60 08 00          	andl   $0x0,0x8(%eax)
4245c8:	8b 45 0c             	mov    0xc(%ebp),%eax
4245cb:	8b 40 0c             	mov    0xc(%eax),%eax
4245ce:	a9 c0 04 00 00       	test   $0x4c0,%eax
4245d3:	75 31                	jne    0x424606
4245d5:	8b 75 0c             	mov    0xc(%ebp),%esi
4245d8:	6a 01                	push   $0x1
4245da:	e8 46 78 fe ff       	call   0x40be25
4245df:	59                   	pop    %ecx
4245e0:	3b f0                	cmp    %eax,%esi
4245e2:	74 0e                	je     0x4245f2
4245e4:	8b 75 0c             	mov    0xc(%ebp),%esi
4245e7:	53                   	push   %ebx
4245e8:	e8 38 78 fe ff       	call   0x40be25
4245ed:	59                   	pop    %ecx
4245ee:	3b f0                	cmp    %eax,%esi
4245f0:	75 0b                	jne    0x4245fd
4245f2:	57                   	push   %edi
4245f3:	e8 f1 01 00 00       	call   0x4247e9
4245f8:	59                   	pop    %ecx
4245f9:	85 c0                	test   %eax,%eax
4245fb:	75 09                	jne    0x424606
4245fd:	ff 75 0c             	push   0xc(%ebp)
424600:	e8 3a 02 00 00       	call   0x42483f
424605:	59                   	pop    %ecx
424606:	ff 75 0c             	push   0xc(%ebp)
424609:	8b 75 08             	mov    0x8(%ebp),%esi
42460c:	56                   	push   %esi
42460d:	e8 ed 00 00 00       	call   0x4246ff
424612:	59                   	pop    %ecx
424613:	59                   	pop    %ecx
424614:	84 c0                	test   %al,%al
424616:	75 13                	jne    0x42462b
424618:	8b 45 0c             	mov    0xc(%ebp),%eax
42461b:	6a 10                	push   $0x10
42461d:	59                   	pop    %ecx
42461e:	83 c0 0c             	add    $0xc,%eax
424621:	f0 09 08             	lock or %ecx,(%eax)
424624:	b8 ff ff 00 00       	mov    $0xffff,%eax
424629:	eb 03                	jmp    0x42462e
42462b:	0f b7 c6             	movzwl %si,%eax
42462e:	5e                   	pop    %esi
42462f:	5b                   	pop    %ebx
424630:	5f                   	pop    %edi
424631:	5d                   	pop    %ebp
424632:	c3                   	ret
424633:	8b ff                	mov    %edi,%edi
424635:	55                   	push   %ebp
424636:	8b ec                	mov    %esp,%ebp
424638:	56                   	push   %esi
424639:	57                   	push   %edi
42463a:	ff 75 0c             	push   0xc(%ebp)
42463d:	e8 3d 61 ff ff       	call   0x41a77f
424642:	59                   	pop    %ecx
424643:	8b 4d 0c             	mov    0xc(%ebp),%ecx
424646:	8b d0                	mov    %eax,%edx
424648:	8b 49 0c             	mov    0xc(%ecx),%ecx
42464b:	f6 c1 c0             	test   $0xc0,%cl
42464e:	0f 84 92 00 00 00    	je     0x4246e6
424654:	8b 4d 0c             	mov    0xc(%ebp),%ecx
424657:	33 ff                	xor    %edi,%edi
424659:	8b 41 04             	mov    0x4(%ecx),%eax
42465c:	8b 31                	mov    (%ecx),%esi
42465e:	2b f0                	sub    %eax,%esi
424660:	40                   	inc    %eax
424661:	89 01                	mov    %eax,(%ecx)
424663:	8b 45 0c             	mov    0xc(%ebp),%eax
424666:	8b 48 18             	mov    0x18(%eax),%ecx
424669:	49                   	dec    %ecx
42466a:	89 48 08             	mov    %ecx,0x8(%eax)
42466d:	85 f6                	test   %esi,%esi
42466f:	7e 26                	jle    0x424697
424671:	8b 45 0c             	mov    0xc(%ebp),%eax
424674:	56                   	push   %esi
424675:	ff 70 04             	push   0x4(%eax)
424678:	52                   	push   %edx
424679:	e8 95 e5 ff ff       	call   0x422c13
42467e:	83 c4 0c             	add    $0xc,%esp
424681:	8b f8                	mov    %eax,%edi
424683:	8b 45 0c             	mov    0xc(%ebp),%eax
424686:	8b 48 04             	mov    0x4(%eax),%ecx
424689:	8a 45 08             	mov    0x8(%ebp),%al
42468c:	88 01                	mov    %al,(%ecx)
42468e:	33 c0                	xor    %eax,%eax
424690:	3b fe                	cmp    %esi,%edi
424692:	0f 94 c0             	sete   %al
424695:	eb 64                	jmp    0x4246fb
424697:	83 fa ff             	cmp    $0xffffffff,%edx
42469a:	74 1b                	je     0x4246b7
42469c:	83 fa fe             	cmp    $0xfffffffe,%edx
42469f:	74 16                	je     0x4246b7
4246a1:	8b c2                	mov    %edx,%eax
4246a3:	8b ca                	mov    %edx,%ecx
4246a5:	83 e0 3f             	and    $0x3f,%eax
4246a8:	c1 f9 06             	sar    $0x6,%ecx
4246ab:	6b c0 30             	imul   $0x30,%eax,%eax
4246ae:	03 04 8d c0 9d 83 02 	add    0x2839dc0(,%ecx,4),%eax
4246b5:	eb 05                	jmp    0x4246bc
4246b7:	b8 a8 bb 43 00       	mov    $0x43bba8,%eax
4246bc:	f6 40 28 20          	testb  $0x20,0x28(%eax)
4246c0:	74 c1                	je     0x424683
4246c2:	6a 02                	push   $0x2
4246c4:	57                   	push   %edi
4246c5:	57                   	push   %edi
4246c6:	52                   	push   %edx
4246c7:	e8 08 15 00 00       	call   0x425bd4
4246cc:	23 c2                	and    %edx,%eax
4246ce:	83 c4 10             	add    $0x10,%esp
4246d1:	83 f8 ff             	cmp    $0xffffffff,%eax
4246d4:	75 ad                	jne    0x424683
4246d6:	8b 45 0c             	mov    0xc(%ebp),%eax
4246d9:	6a 10                	push   $0x10
4246db:	59                   	pop    %ecx
4246dc:	83 c0 0c             	add    $0xc,%eax
4246df:	f0 09 08             	lock or %ecx,(%eax)
4246e2:	b0 01                	mov    $0x1,%al
4246e4:	eb 15                	jmp    0x4246fb
4246e6:	6a 01                	push   $0x1
4246e8:	8d 45 08             	lea    0x8(%ebp),%eax
4246eb:	50                   	push   %eax
4246ec:	52                   	push   %edx
4246ed:	e8 21 e5 ff ff       	call   0x422c13
4246f2:	83 c4 0c             	add    $0xc,%esp
4246f5:	48                   	dec    %eax
4246f6:	f7 d8                	neg    %eax
4246f8:	1b c0                	sbb    %eax,%eax
4246fa:	40                   	inc    %eax
4246fb:	5f                   	pop    %edi
4246fc:	5e                   	pop    %esi
4246fd:	5d                   	pop    %ebp
4246fe:	c3                   	ret
4246ff:	8b ff                	mov    %edi,%edi
424701:	55                   	push   %ebp
424702:	8b ec                	mov    %esp,%ebp
424704:	56                   	push   %esi
424705:	57                   	push   %edi
424706:	ff 75 0c             	push   0xc(%ebp)
424709:	e8 71 60 ff ff       	call   0x41a77f
42470e:	59                   	pop    %ecx
42470f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
424712:	8b d0                	mov    %eax,%edx
424714:	8b 49 0c             	mov    0xc(%ecx),%ecx
424717:	f6 c1 c0             	test   $0xc0,%cl
42471a:	0f 84 98 00 00 00    	je     0x4247b8
424720:	8b 4d 0c             	mov    0xc(%ebp),%ecx
424723:	33 ff                	xor    %edi,%edi
424725:	8b 41 04             	mov    0x4(%ecx),%eax
424728:	8b 31                	mov    (%ecx),%esi
42472a:	2b f0                	sub    %eax,%esi
42472c:	83 c0 02             	add    $0x2,%eax
42472f:	89 01                	mov    %eax,(%ecx)
424731:	8b 45 0c             	mov    0xc(%ebp),%eax
424734:	8b 48 18             	mov    0x18(%eax),%ecx
424737:	83 e9 02             	sub    $0x2,%ecx
42473a:	89 48 08             	mov    %ecx,0x8(%eax)
42473d:	85 f6                	test   %esi,%esi
42473f:	7e 28                	jle    0x424769
424741:	8b 45 0c             	mov    0xc(%ebp),%eax
424744:	56                   	push   %esi
424745:	ff 70 04             	push   0x4(%eax)
424748:	52                   	push   %edx
424749:	e8 c5 e4 ff ff       	call   0x422c13
42474e:	83 c4 0c             	add    $0xc,%esp
424751:	8b f8                	mov    %eax,%edi
424753:	8b 45 0c             	mov    0xc(%ebp),%eax
424756:	8b 48 04             	mov    0x4(%eax),%ecx
424759:	66 8b 45 08          	mov    0x8(%ebp),%ax
42475d:	66 89 01             	mov    %ax,(%ecx)
424760:	33 c0                	xor    %eax,%eax
424762:	3b fe                	cmp    %esi,%edi
424764:	0f 94 c0             	sete   %al
424767:	eb 66                	jmp    0x4247cf
424769:	83 fa ff             	cmp    $0xffffffff,%edx
42476c:	74 1b                	je     0x424789
42476e:	83 fa fe             	cmp    $0xfffffffe,%edx
424771:	74 16                	je     0x424789
424773:	8b c2                	mov    %edx,%eax
424775:	8b ca                	mov    %edx,%ecx
424777:	83 e0 3f             	and    $0x3f,%eax
42477a:	c1 f9 06             	sar    $0x6,%ecx
42477d:	6b c0 30             	imul   $0x30,%eax,%eax
424780:	03 04 8d c0 9d 83 02 	add    0x2839dc0(,%ecx,4),%eax
424787:	eb 05                	jmp    0x42478e
424789:	b8 a8 bb 43 00       	mov    $0x43bba8,%eax
42478e:	f6 40 28 20          	testb  $0x20,0x28(%eax)
424792:	74 bf                	je     0x424753
424794:	6a 02                	push   $0x2
424796:	57                   	push   %edi
424797:	57                   	push   %edi
424798:	52                   	push   %edx
424799:	e8 36 14 00 00       	call   0x425bd4
42479e:	23 c2                	and    %edx,%eax
4247a0:	83 c4 10             	add    $0x10,%esp
4247a3:	83 f8 ff             	cmp    $0xffffffff,%eax
4247a6:	75 ab                	jne    0x424753
4247a8:	8b 45 0c             	mov    0xc(%ebp),%eax
4247ab:	6a 10                	push   $0x10
4247ad:	59                   	pop    %ecx
4247ae:	83 c0 0c             	add    $0xc,%eax
4247b1:	f0 09 08             	lock or %ecx,(%eax)
4247b4:	b0 01                	mov    $0x1,%al
4247b6:	eb 17                	jmp    0x4247cf
4247b8:	6a 02                	push   $0x2
4247ba:	8d 45 08             	lea    0x8(%ebp),%eax
4247bd:	50                   	push   %eax
4247be:	52                   	push   %edx
4247bf:	e8 4f e4 ff ff       	call   0x422c13
4247c4:	83 e8 02             	sub    $0x2,%eax
4247c7:	83 c4 0c             	add    $0xc,%esp
4247ca:	f7 d8                	neg    %eax
4247cc:	1b c0                	sbb    %eax,%eax
4247ce:	40                   	inc    %eax
4247cf:	5f                   	pop    %edi
4247d0:	5e                   	pop    %esi
4247d1:	5d                   	pop    %ebp
4247d2:	c3                   	ret
4247d3:	8b ff                	mov    %edi,%edi
4247d5:	55                   	push   %ebp
4247d6:	8b ec                	mov    %esp,%ebp
4247d8:	5d                   	pop    %ebp
4247d9:	e9 2f fc ff ff       	jmp    0x42440d
4247de:	8b ff                	mov    %edi,%edi
4247e0:	55                   	push   %ebp
4247e1:	8b ec                	mov    %esp,%ebp
4247e3:	5d                   	pop    %ebp
4247e4:	e9 35 fd ff ff       	jmp    0x42451e
4247e9:	8b ff                	mov    %edi,%edi
4247eb:	55                   	push   %ebp
4247ec:	8b ec                	mov    %esp,%ebp
4247ee:	8b 4d 08             	mov    0x8(%ebp),%ecx
4247f1:	83 f9 fe             	cmp    $0xfffffffe,%ecx
4247f4:	75 0d                	jne    0x424803
4247f6:	e8 70 02 ff ff       	call   0x414a6b
4247fb:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
424801:	eb 38                	jmp    0x42483b
424803:	85 c9                	test   %ecx,%ecx
424805:	78 24                	js     0x42482b
424807:	3b 0d c0 9f 83 02    	cmp    0x2839fc0,%ecx
42480d:	73 1c                	jae    0x42482b
42480f:	8b c1                	mov    %ecx,%eax
424811:	83 e1 3f             	and    $0x3f,%ecx
424814:	c1 f8 06             	sar    $0x6,%eax
424817:	6b c9 30             	imul   $0x30,%ecx,%ecx
42481a:	8b 04 85 c0 9d 83 02 	mov    0x2839dc0(,%eax,4),%eax
424821:	0f b6 44 08 28       	movzbl 0x28(%eax,%ecx,1),%eax
424826:	83 e0 40             	and    $0x40,%eax
424829:	5d                   	pop    %ebp
42482a:	c3                   	ret
42482b:	e8 3b 02 ff ff       	call   0x414a6b
424830:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
424836:	e8 a7 74 fe ff       	call   0x40bce2
42483b:	33 c0                	xor    %eax,%eax
42483d:	5d                   	pop    %ebp
42483e:	c3                   	ret
42483f:	8b ff                	mov    %edi,%edi
424841:	55                   	push   %ebp
424842:	8b ec                	mov    %esp,%ebp
424844:	ff 05 44 9a 83 02    	incl   0x2839a44
42484a:	53                   	push   %ebx
42484b:	56                   	push   %esi
42484c:	8b 75 08             	mov    0x8(%ebp),%esi
42484f:	bb 00 10 00 00       	mov    $0x1000,%ebx
424854:	53                   	push   %ebx
424855:	e8 f0 04 ff ff       	call   0x414d4a
42485a:	6a 00                	push   $0x0
42485c:	89 46 04             	mov    %eax,0x4(%esi)
42485f:	e8 ac 04 ff ff       	call   0x414d10
424864:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
424868:	8d 46 0c             	lea    0xc(%esi),%eax
42486b:	59                   	pop    %ecx
42486c:	59                   	pop    %ecx
42486d:	74 0b                	je     0x42487a
42486f:	6a 40                	push   $0x40
424871:	59                   	pop    %ecx
424872:	f0 09 08             	lock or %ecx,(%eax)
424875:	89 5e 18             	mov    %ebx,0x18(%esi)
424878:	eb 15                	jmp    0x42488f
42487a:	b9 00 04 00 00       	mov    $0x400,%ecx
42487f:	f0 09 08             	lock or %ecx,(%eax)
424882:	8d 46 14             	lea    0x14(%esi),%eax
424885:	c7 46 18 02 00 00 00 	movl   $0x2,0x18(%esi)
42488c:	89 46 04             	mov    %eax,0x4(%esi)
42488f:	8b 46 04             	mov    0x4(%esi),%eax
424892:	83 66 08 00          	andl   $0x0,0x8(%esi)
424896:	89 06                	mov    %eax,(%esi)
424898:	5e                   	pop    %esi
424899:	5b                   	pop    %ebx
42489a:	5d                   	pop    %ebp
42489b:	c3                   	ret