419531:	8d 71 0c             	lea    0xc(%ecx),%esi
419534:	8b 06                	mov    (%esi),%eax
419536:	24 03                	and    $0x3,%al
419538:	3c 02                	cmp    $0x2,%al
41953a:	74 04                	je     0x419540
41953c:	33 c0                	xor    %eax,%eax
41953e:	eb 4b                	jmp    0x41958b
419540:	8b 06                	mov    (%esi),%eax
419542:	a8 c0                	test   $0xc0,%al
419544:	74 f6                	je     0x41953c
419546:	8b 41 04             	mov    0x4(%ecx),%eax
419549:	57                   	push   %edi
41954a:	8b 39                	mov    (%ecx),%edi
41954c:	2b f8                	sub    %eax,%edi
41954e:	89 01                	mov    %eax,(%ecx)
419550:	83 61 08 00          	andl   $0x0,0x8(%ecx)
419554:	85 ff                	test   %edi,%edi
419556:	7e 30                	jle    0x419588
419558:	57                   	push   %edi
419559:	50                   	push   %eax
41955a:	51                   	push   %ecx
41955b:	e8 1f 12 00 00       	call   0x41a77f
419560:	59                   	pop    %ecx
419561:	50                   	push   %eax
419562:	e8 ac 96 00 00       	call   0x422c13
419567:	83 c4 0c             	add    $0xc,%esp
41956a:	3b f8                	cmp    %eax,%edi
41956c:	74 0b                	je     0x419579
41956e:	6a 10                	push   $0x10
419570:	58                   	pop    %eax
419571:	f0 09 06             	lock or %eax,(%esi)
419574:	83 c8 ff             	or     $0xffffffff,%eax
419577:	eb 11                	jmp    0x41958a
419579:	8b 06                	mov    (%esi),%eax
41957b:	c1 e8 02             	shr    $0x2,%eax
41957e:	a8 01                	test   $0x1,%al
419580:	74 06                	je     0x419588
419582:	6a fd                	push   $0xfffffffd
419584:	58                   	pop    %eax
419585:	f0 21 06             	lock and %eax,(%esi)
419588:	33 c0                	xor    %eax,%eax
41958a:	5f                   	pop    %edi
41958b:	5e                   	pop    %esi
41958c:	5d                   	pop    %ebp
41958d:	c3                   	ret
41958e:	8b ff                	mov    %edi,%edi
419590:	55                   	push   %ebp
419591:	8b ec                	mov    %esp,%ebp
419593:	56                   	push   %esi
419594:	8b 75 08             	mov    0x8(%ebp),%esi
419597:	85 f6                	test   %esi,%esi
419599:	75 09                	jne    0x4195a4
41959b:	56                   	push   %esi
41959c:	e8 3d 00 00 00       	call   0x4195de
4195a1:	59                   	pop    %ecx
4195a2:	eb 2e                	jmp    0x4195d2
4195a4:	56                   	push   %esi
4195a5:	e8 7e ff ff ff       	call   0x419528
4195aa:	59                   	pop    %ecx
4195ab:	85 c0                	test   %eax,%eax
4195ad:	74 05                	je     0x4195b4
4195af:	83 c8 ff             	or     $0xffffffff,%eax
4195b2:	eb 1e                	jmp    0x4195d2
4195b4:	8b 46 0c             	mov    0xc(%esi),%eax
4195b7:	c1 e8 0b             	shr    $0xb,%eax
4195ba:	a8 01                	test   $0x1,%al
4195bc:	74 12                	je     0x4195d0
4195be:	56                   	push   %esi
4195bf:	e8 bb 11 00 00       	call   0x41a77f
4195c4:	50                   	push   %eax
4195c5:	e8 4a 90 00 00       	call   0x422614
4195ca:	59                   	pop    %ecx
4195cb:	59                   	pop    %ecx
4195cc:	85 c0                	test   %eax,%eax
4195ce:	75 df                	jne    0x4195af
4195d0:	33 c0                	xor    %eax,%eax
4195d2:	5e                   	pop    %esi
4195d3:	5d                   	pop    %ebp
4195d4:	c3                   	ret
4195d5:	6a 01                	push   $0x1
4195d7:	e8 02 00 00 00       	call   0x4195de
4195dc:	59                   	pop    %ecx
4195dd:	c3                   	ret
4195de:	6a 1c                	push   $0x1c
4195e0:	68 e8 81 43 00       	push   $0x4381e8
4195e5:	e8 36 e0 fe ff       	call   0x407620
4195ea:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
4195ee:	83 65 dc 00          	andl   $0x0,-0x24(%ebp)
4195f2:	6a 08                	push   $0x8
4195f4:	e8 c5 ad ff ff       	call   0x4143be
4195f9:	59                   	pop    %ecx
4195fa:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4195fe:	8b 35 40 9a 83 02    	mov    0x2839a40,%esi
419604:	a1 3c 9a 83 02       	mov    0x2839a3c,%eax
419609:	8d 04 86             	lea    (%esi,%eax,4),%eax
41960c:	89 45 d4             	mov    %eax,-0x2c(%ebp)
41960f:	8b 5d 08             	mov    0x8(%ebp),%ebx
419612:	89 75 e0             	mov    %esi,-0x20(%ebp)
419615:	3b f0                	cmp    %eax,%esi
419617:	74 74                	je     0x41968d
419619:	8b 3e                	mov    (%esi),%edi
41961b:	89 7d d8             	mov    %edi,-0x28(%ebp)
41961e:	85 ff                	test   %edi,%edi
419620:	74 56                	je     0x419678
419622:	57                   	push   %edi
419623:	e8 59 28 ff ff       	call   0x40be81
419628:	59                   	pop    %ecx
419629:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
419630:	8b 47 0c             	mov    0xc(%edi),%eax
419633:	c1 e8 0d             	shr    $0xd,%eax
419636:	a8 01                	test   $0x1,%al
419638:	74 32                	je     0x41966c
41963a:	83 fb 01             	cmp    $0x1,%ebx
41963d:	75 11                	jne    0x419650
41963f:	57                   	push   %edi
419640:	e8 49 ff ff ff       	call   0x41958e
419645:	59                   	pop    %ecx
419646:	83 f8 ff             	cmp    $0xffffffff,%eax
419649:	74 21                	je     0x41966c
41964b:	ff 45 e4             	incl   -0x1c(%ebp)
41964e:	eb 1c                	jmp    0x41966c
419650:	85 db                	test   %ebx,%ebx
419652:	75 18                	jne    0x41966c
419654:	8b 47 0c             	mov    0xc(%edi),%eax
419657:	d1 e8                	shr    $1,%eax
419659:	a8 01                	test   $0x1,%al
41965b:	74 0f                	je     0x41966c
41965d:	57                   	push   %edi
41965e:	e8 2b ff ff ff       	call   0x41958e
419663:	59                   	pop    %ecx
419664:	83 f8 ff             	cmp    $0xffffffff,%eax
419667:	75 03                	jne    0x41966c
419669:	09 45 dc             	or     %eax,-0x24(%ebp)
41966c:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
419670:	e8 0e 00 00 00       	call   0x419683
419675:	8b 45 d4             	mov    -0x2c(%ebp),%eax
419678:	83 c6 04             	add    $0x4,%esi
41967b:	eb 95                	jmp    0x419612
41967d:	8b 5d 08             	mov    0x8(%ebp),%ebx
419680:	8b 75 e0             	mov    -0x20(%ebp),%esi
419683:	ff 75 d8             	push   -0x28(%ebp)
419686:	e8 0a 28 ff ff       	call   0x40be95
41968b:	59                   	pop    %ecx
41968c:	c3                   	ret
41968d:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
419694:	e8 14 00 00 00       	call   0x4196ad
419699:	83 fb 01             	cmp    $0x1,%ebx
41969c:	8b 45 e4             	mov    -0x1c(%ebp),%eax
41969f:	74 03                	je     0x4196a4
4196a1:	8b 45 dc             	mov    -0x24(%ebp),%eax
4196a4:	e8 bd df fe ff       	call   0x407666
4196a9:	c3                   	ret
4196aa:	8b 5d 08             	mov    0x8(%ebp),%ebx
4196ad:	6a 08                	push   $0x8
4196af:	e8 52 ad ff ff       	call   0x414406
4196b4:	59                   	pop    %ecx
4196b5:	c3                   	ret
4196b6:	8b ff                	mov    %edi,%edi
4196b8:	55                   	push   %ebp
4196b9:	8b ec                	mov    %esp,%ebp
4196bb:	56                   	push   %esi
4196bc:	8b 75 08             	mov    0x8(%ebp),%esi
4196bf:	57                   	push   %edi
4196c0:	8d 7e 0c             	lea    0xc(%esi),%edi
4196c3:	8b 07                	mov    (%edi),%eax
4196c5:	c1 e8 0d             	shr    $0xd,%eax
4196c8:	a8 01                	test   $0x1,%al
4196ca:	74 24                	je     0x4196f0
4196cc:	8b 07                	mov    (%edi),%eax
4196ce:	c1 e8 06             	shr    $0x6,%eax
4196d1:	a8 01                	test   $0x1,%al
4196d3:	74 1b                	je     0x4196f0
4196d5:	ff 76 04             	push   0x4(%esi)
4196d8:	e8 33 b6 ff ff       	call   0x414d10
4196dd:	59                   	pop    %ecx
4196de:	b8 bf fe ff ff       	mov    $0xfffffebf,%eax
4196e3:	f0 21 07             	lock and %eax,(%edi)
4196e6:	33 c0                	xor    %eax,%eax
4196e8:	89 46 04             	mov    %eax,0x4(%esi)
4196eb:	89 06                	mov    %eax,(%esi)
4196ed:	89 46 08             	mov    %eax,0x8(%esi)
4196f0:	5f                   	pop    %edi
4196f1:	5e                   	pop    %esi
4196f2:	5d                   	pop    %ebp
4196f3:	c3                   	ret
4196f4:	8b ff                	mov    %edi,%edi
4196f6:	55                   	push   %ebp
4196f7:	8b ec                	mov    %esp,%ebp
4196f9:	83 ec 48             	sub    $0x48,%esp
4196fc:	8d 45 b8             	lea    -0x48(%ebp),%eax
4196ff:	50                   	push   %eax
419700:	ff 15 a0 71 42 00    	call   *0x4271a0
419706:	66 83 7d ea 00       	cmpw   $0x0,-0x16(%ebp)
41970b:	0f 84 95 00 00 00    	je     0x4197a6
419711:	8b 45 ec             	mov    -0x14(%ebp),%eax
419714:	85 c0                	test   %eax,%eax
419716:	0f 84 8a 00 00 00    	je     0x4197a6
41971c:	53                   	push   %ebx
41971d:	56                   	push   %esi
41971e:	8b 30                	mov    (%eax),%esi
419720:	8d 58 04             	lea    0x4(%eax),%ebx
419723:	8d 04 33             	lea    (%ebx,%esi,1),%eax
419726:	89 45 fc             	mov    %eax,-0x4(%ebp)
419729:	b8 00 20 00 00       	mov    $0x2000,%eax
41972e:	3b f0                	cmp    %eax,%esi
419730:	7c 02                	jl     0x419734
419732:	8b f0                	mov    %eax,%esi
419734:	56                   	push   %esi
419735:	e8 9d 62 00 00       	call   0x41f9d7
41973a:	a1 c0 9f 83 02       	mov    0x2839fc0,%eax
41973f:	59                   	pop    %ecx
419740:	3b f0                	cmp    %eax,%esi
419742:	7e 02                	jle    0x419746
419744:	8b f0                	mov    %eax,%esi
419746:	57                   	push   %edi
419747:	33 ff                	xor    %edi,%edi
419749:	85 f6                	test   %esi,%esi
41974b:	74 56                	je     0x4197a3
41974d:	8b 45 fc             	mov    -0x4(%ebp),%eax
419750:	8b 08                	mov    (%eax),%ecx
419752:	83 f9 ff             	cmp    $0xffffffff,%ecx
419755:	74 40                	je     0x419797
419757:	83 f9 fe             	cmp    $0xfffffffe,%ecx
41975a:	74 3b                	je     0x419797
41975c:	8a 13                	mov    (%ebx),%dl
41975e:	f6 c2 01             	test   $0x1,%dl
419761:	74 34                	je     0x419797
419763:	f6 c2 08             	test   $0x8,%dl
419766:	75 0b                	jne    0x419773
419768:	51                   	push   %ecx
419769:	ff 15 fc 71 42 00    	call   *0x4271fc
41976f:	85 c0                	test   %eax,%eax
419771:	74 21                	je     0x419794
419773:	8b c7                	mov    %edi,%eax
419775:	8b cf                	mov    %edi,%ecx
419777:	83 e0 3f             	and    $0x3f,%eax
41977a:	c1 f9 06             	sar    $0x6,%ecx
41977d:	6b d0 30             	imul   $0x30,%eax,%edx
419780:	8b 45 fc             	mov    -0x4(%ebp),%eax
419783:	03 14 8d c0 9d 83 02 	add    0x2839dc0(,%ecx,4),%edx
41978a:	8b 00                	mov    (%eax),%eax
41978c:	89 42 18             	mov    %eax,0x18(%edx)
41978f:	8a 03                	mov    (%ebx),%al
419791:	88 42 28             	mov    %al,0x28(%edx)
419794:	8b 45 fc             	mov    -0x4(%ebp),%eax
419797:	47                   	inc    %edi
419798:	83 c0 04             	add    $0x4,%eax
41979b:	43                   	inc    %ebx
41979c:	89 45 fc             	mov    %eax,-0x4(%ebp)
41979f:	3b fe                	cmp    %esi,%edi
4197a1:	75 ad                	jne    0x419750
4197a3:	5f                   	pop    %edi
4197a4:	5e                   	pop    %esi
4197a5:	5b                   	pop    %ebx
4197a6:	8b e5                	mov    %ebp,%esp
4197a8:	5d                   	pop    %ebp
4197a9:	c3                   	ret
4197aa:	8b ff                	mov    %edi,%edi
4197ac:	53                   	push   %ebx
4197ad:	56                   	push   %esi
4197ae:	57                   	push   %edi
4197af:	33 ff                	xor    %edi,%edi
4197b1:	8b c7                	mov    %edi,%eax
4197b3:	8b cf                	mov    %edi,%ecx
4197b5:	83 e0 3f             	and    $0x3f,%eax
4197b8:	c1 f9 06             	sar    $0x6,%ecx
4197bb:	6b f0 30             	imul   $0x30,%eax,%esi
4197be:	03 34 8d c0 9d 83 02 	add    0x2839dc0(,%ecx,4),%esi
4197c5:	83 7e 18 ff          	cmpl   $0xffffffff,0x18(%esi)
4197c9:	74 0c                	je     0x4197d7
4197cb:	83 7e 18 fe          	cmpl   $0xfffffffe,0x18(%esi)
4197cf:	74 06                	je     0x4197d7
4197d1:	80 4e 28 80          	orb    $0x80,0x28(%esi)
4197d5:	eb 7b                	jmp    0x419852
4197d7:	8b c7                	mov    %edi,%eax
4197d9:	c6 46 28 81          	movb   $0x81,0x28(%esi)
4197dd:	83 e8 00             	sub    $0x0,%eax
4197e0:	74 10                	je     0x4197f2
4197e2:	83 e8 01             	sub    $0x1,%eax
4197e5:	74 07                	je     0x4197ee
4197e7:	6a f4                	push   $0xfffffff4
4197e9:	83 e8 01             	sub    $0x1,%eax
4197ec:	eb 06                	jmp    0x4197f4
4197ee:	6a f5                	push   $0xfffffff5
4197f0:	eb 02                	jmp    0x4197f4
4197f2:	6a f6                	push   $0xfffffff6
4197f4:	58                   	pop    %eax
4197f5:	50                   	push   %eax
4197f6:	ff 15 e4 71 42 00    	call   *0x4271e4
4197fc:	8b d8                	mov    %eax,%ebx
4197fe:	83 fb ff             	cmp    $0xffffffff,%ebx
419801:	74 0d                	je     0x419810
419803:	85 db                	test   %ebx,%ebx
419805:	74 09                	je     0x419810
419807:	53                   	push   %ebx
419808:	ff 15 fc 71 42 00    	call   *0x4271fc
41980e:	eb 02                	jmp    0x419812
419810:	33 c0                	xor    %eax,%eax
419812:	85 c0                	test   %eax,%eax
419814:	74 1e                	je     0x419834
419816:	25 ff 00 00 00       	and    $0xff,%eax
41981b:	89 5e 18             	mov    %ebx,0x18(%esi)
41981e:	83 f8 02             	cmp    $0x2,%eax
419821:	75 06                	jne    0x419829
419823:	80 4e 28 40          	orb    $0x40,0x28(%esi)
419827:	eb 29                	jmp    0x419852
419829:	83 f8 03             	cmp    $0x3,%eax
41982c:	75 24                	jne    0x419852
41982e:	80 4e 28 08          	orb    $0x8,0x28(%esi)
419832:	eb 1e                	jmp    0x419852
419834:	80 4e 28 40          	orb    $0x40,0x28(%esi)
419838:	c7 46 18 fe ff ff ff 	movl   $0xfffffffe,0x18(%esi)
41983f:	a1 40 9a 83 02       	mov    0x2839a40,%eax
419844:	85 c0                	test   %eax,%eax
419846:	74 0a                	je     0x419852
419848:	8b 04 b8             	mov    (%eax,%edi,4),%eax
41984b:	c7 40 10 fe ff ff ff 	movl   $0xfffffffe,0x10(%eax)
419852:	47                   	inc    %edi
419853:	83 ff 03             	cmp    $0x3,%edi
419856:	0f 85 55 ff ff ff    	jne    0x4197b1
41985c:	5f                   	pop    %edi
41985d:	5e                   	pop    %esi
41985e:	5b                   	pop    %ebx
41985f:	c3                   	ret
419860:	6a 0c                	push   $0xc
419862:	68 10 82 43 00       	push   $0x438210
419867:	e8 b4 dd fe ff       	call   0x407620
41986c:	6a 07                	push   $0x7
41986e:	e8 4b ab ff ff       	call   0x4143be
419873:	59                   	pop    %ecx
419874:	33 db                	xor    %ebx,%ebx
419876:	88 5d e7             	mov    %bl,-0x19(%ebp)
419879:	89 5d fc             	mov    %ebx,-0x4(%ebp)
41987c:	53                   	push   %ebx
41987d:	e8 55 61 00 00       	call   0x41f9d7
419882:	59                   	pop    %ecx
419883:	85 c0                	test   %eax,%eax
419885:	75 0f                	jne    0x419896
419887:	e8 68 fe ff ff       	call   0x4196f4
41988c:	e8 19 ff ff ff       	call   0x4197aa
419891:	b3 01                	mov    $0x1,%bl
419893:	88 5d e7             	mov    %bl,-0x19(%ebp)
419896:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
41989d:	e8 0b 00 00 00       	call   0x4198ad
4198a2:	8a c3                	mov    %bl,%al
4198a4:	e8 bd dd fe ff       	call   0x407666
4198a9:	c3                   	ret
4198aa:	8a 5d e7             	mov    -0x19(%ebp),%bl
4198ad:	6a 07                	push   $0x7
4198af:	e8 52 ab ff ff       	call   0x414406