41f347:	8d 8d fc fd ff ff    	lea    -0x204(%ebp),%ecx
41f34d:	8b f0                	mov    %eax,%esi
41f34f:	2b f1                	sub    %ecx,%esi
41f351:	f7 de                	neg    %esi
41f353:	1b f6                	sbb    %esi,%esi
41f355:	23 f0                	and    %eax,%esi
41f357:	85 c0                	test   %eax,%eax
41f359:	74 0e                	je     0x41f369
41f35b:	66 39 38             	cmp    %di,(%eax)
41f35e:	74 09                	je     0x41f369
41f360:	50                   	push   %eax
41f361:	e8 bb fb ff ff       	call   0x41ef21
41f366:	59                   	pop    %ecx
41f367:	eb 05                	jmp    0x41f36e
41f369:	e8 45 fe ff ff       	call   0x41f1b3
41f36e:	56                   	push   %esi
41f36f:	e8 9c 78 fe ff       	call   0x406c10
41f374:	59                   	pop    %ecx
41f375:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41f378:	5f                   	pop    %edi
41f379:	33 cd                	xor    %ebp,%ecx
41f37b:	5e                   	pop    %esi
41f37c:	e8 26 a9 fe ff       	call   0x409ca7
41f381:	c9                   	leave
41f382:	c3                   	ret
41f383:	8b ff                	mov    %edi,%edi
41f385:	55                   	push   %ebp
41f386:	8b ec                	mov    %esp,%ebp
41f388:	6a 20                	push   $0x20
41f38a:	ff 75 08             	push   0x8(%ebp)
41f38d:	6a 40                	push   $0x40
41f38f:	ff 75 0c             	push   0xc(%ebp)
41f392:	e8 36 2a 00 00       	call   0x421dcd
41f397:	83 c4 10             	add    $0x10,%esp
41f39a:	85 c0                	test   %eax,%eax
41f39c:	75 1a                	jne    0x41f3b8
41f39e:	50                   	push   %eax
41f39f:	50                   	push   %eax
41f3a0:	6a 40                	push   $0x40
41f3a2:	ff 75 10             	push   0x10(%ebp)
41f3a5:	6a ff                	push   $0xffffffff
41f3a7:	ff 75 08             	push   0x8(%ebp)
41f3aa:	50                   	push   %eax
41f3ab:	ff 75 14             	push   0x14(%ebp)
41f3ae:	e8 37 3a 00 00       	call   0x422dea
41f3b3:	83 c4 20             	add    $0x20,%esp
41f3b6:	5d                   	pop    %ebp
41f3b7:	c3                   	ret
41f3b8:	33 c0                	xor    %eax,%eax
41f3ba:	50                   	push   %eax
41f3bb:	50                   	push   %eax
41f3bc:	50                   	push   %eax
41f3bd:	50                   	push   %eax
41f3be:	50                   	push   %eax
41f3bf:	e8 57 e0 fe ff       	call   0x40d41b
41f3c4:	cc                   	int3
41f3c5:	6a 08                	push   $0x8
41f3c7:	68 a0 ae 43 00       	push   $0x43aea0
41f3cc:	e8 ff b0 fe ff       	call   0x40a4d0
41f3d1:	a1 0c fb 43 00       	mov    0x43fb0c,%eax
41f3d6:	90                   	nop
41f3d7:	85 c0                	test   %eax,%eax
41f3d9:	75 2e                	jne    0x41f409
41f3db:	6a 06                	push   $0x6
41f3dd:	e8 a0 3f 00 00       	call   0x423382
41f3e2:	59                   	pop    %ecx
41f3e3:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41f3e7:	a1 0c fb 43 00       	mov    0x43fb0c,%eax
41f3ec:	90                   	nop
41f3ed:	85 c0                	test   %eax,%eax
41f3ef:	75 0c                	jne    0x41f3fd
41f3f1:	e8 17 ff ff ff       	call   0x41f30d
41f3f6:	f0 ff 05 0c fb 43 00 	lock incl 0x43fb0c
41f3fd:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
41f404:	e8 10 00 00 00       	call   0x41f419
41f409:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41f40c:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
41f413:	59                   	pop    %ecx
41f414:	5f                   	pop    %edi
41f415:	5e                   	pop    %esi
41f416:	5b                   	pop    %ebx
41f417:	c9                   	leave
41f418:	c3                   	ret
41f419:	6a 06                	push   $0x6
41f41b:	e8 aa 3f 00 00       	call   0x4233ca
41f420:	59                   	pop    %ecx
41f421:	c3                   	ret
41f422:	6a 0c                	push   $0xc
41f424:	68 80 ae 43 00       	push   $0x43ae80
41f429:	e8 a2 b0 fe ff       	call   0x40a4d0
41f42e:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
41f432:	6a 06                	push   $0x6
41f434:	e8 49 3f 00 00       	call   0x423382
41f439:	59                   	pop    %ecx
41f43a:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41f43e:	ff 75 08             	push   0x8(%ebp)
41f441:	e8 c0 f6 ff ff       	call   0x41eb06
41f446:	59                   	pop    %ecx
41f447:	8b f0                	mov    %eax,%esi
41f449:	89 75 e4             	mov    %esi,-0x1c(%ebp)
41f44c:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
41f453:	e8 15 00 00 00       	call   0x41f46d
41f458:	8b c6                	mov    %esi,%eax
41f45a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41f45d:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
41f464:	59                   	pop    %ecx
41f465:	5f                   	pop    %edi
41f466:	5e                   	pop    %esi
41f467:	5b                   	pop    %ebx
41f468:	c9                   	leave
41f469:	c3                   	ret
41f46a:	8b 75 e4             	mov    -0x1c(%ebp),%esi
41f46d:	6a 06                	push   $0x6
41f46f:	e8 56 3f 00 00       	call   0x4233ca
41f474:	59                   	pop    %ecx
41f475:	c3                   	ret
41f476:	8b ff                	mov    %edi,%edi
41f478:	55                   	push   %ebp
41f479:	8b ec                	mov    %esp,%ebp
41f47b:	56                   	push   %esi
41f47c:	8b 75 14             	mov    0x14(%ebp),%esi
41f47f:	85 f6                	test   %esi,%esi
41f481:	7e 14                	jle    0x41f497
41f483:	56                   	push   %esi
41f484:	ff 75 10             	push   0x10(%ebp)
41f487:	e8 1a d3 ff ff       	call   0x41c7a6
41f48c:	59                   	pop    %ecx
41f48d:	3b c6                	cmp    %esi,%eax
41f48f:	59                   	pop    %ecx
41f490:	8d 70 01             	lea    0x1(%eax),%esi
41f493:	7c 02                	jl     0x41f497
41f495:	8b f0                	mov    %eax,%esi
41f497:	33 c0                	xor    %eax,%eax
41f499:	50                   	push   %eax
41f49a:	50                   	push   %eax
41f49b:	50                   	push   %eax
41f49c:	ff 75 1c             	push   0x1c(%ebp)
41f49f:	ff 75 18             	push   0x18(%ebp)
41f4a2:	56                   	push   %esi
41f4a3:	ff 75 10             	push   0x10(%ebp)
41f4a6:	ff 75 0c             	push   0xc(%ebp)
41f4a9:	ff 75 08             	push   0x8(%ebp)
41f4ac:	e8 d9 f1 ff ff       	call   0x41e68a
41f4b1:	5e                   	pop    %esi
41f4b2:	5d                   	pop    %ebp
41f4b3:	c3                   	ret
41f4b4:	6a 0c                	push   $0xc
41f4b6:	68 c0 ae 43 00       	push   $0x43aec0
41f4bb:	e8 10 b0 fe ff       	call   0x40a4d0
41f4c0:	33 ff                	xor    %edi,%edi
41f4c2:	8b 75 08             	mov    0x8(%ebp),%esi
41f4c5:	89 3e                	mov    %edi,(%esi)
41f4c7:	6a 08                	push   $0x8
41f4c9:	e8 b4 3e 00 00       	call   0x423382
41f4ce:	59                   	pop    %ecx
41f4cf:	89 7d fc             	mov    %edi,-0x4(%ebp)
41f4d2:	8d 45 e4             	lea    -0x1c(%ebp),%eax
41f4d5:	50                   	push   %eax
41f4d6:	e8 7d 00 00 00       	call   0x41f558
41f4db:	59                   	pop    %ecx
41f4dc:	8b 00                	mov    (%eax),%eax
41f4de:	89 06                	mov    %eax,(%esi)
41f4e0:	85 c0                	test   %eax,%eax
41f4e2:	74 0f                	je     0x41f4f3
41f4e4:	89 78 08             	mov    %edi,0x8(%eax)
41f4e7:	89 78 1c             	mov    %edi,0x1c(%eax)
41f4ea:	89 38                	mov    %edi,(%eax)
41f4ec:	89 78 04             	mov    %edi,0x4(%eax)
41f4ef:	83 48 10 ff          	orl    $0xffffffff,0x10(%eax)
41f4f3:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
41f4fa:	e8 15 00 00 00       	call   0x41f514
41f4ff:	8b c6                	mov    %esi,%eax
41f501:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41f504:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
41f50b:	59                   	pop    %ecx
41f50c:	5f                   	pop    %edi
41f50d:	5e                   	pop    %esi
41f50e:	5b                   	pop    %ebx
41f50f:	c9                   	leave
41f510:	c3                   	ret
41f511:	8b 75 08             	mov    0x8(%ebp),%esi
41f514:	6a 08                	push   $0x8
41f516:	e8 af 3e 00 00       	call   0x4233ca
41f51b:	59                   	pop    %ecx
41f51c:	c3                   	ret
41f51d:	8b ff                	mov    %edi,%edi
41f51f:	55                   	push   %ebp
41f520:	8b ec                	mov    %esp,%ebp
41f522:	8b 45 08             	mov    0x8(%ebp),%eax
41f525:	33 c9                	xor    %ecx,%ecx
41f527:	89 08                	mov    %ecx,(%eax)
41f529:	8b 45 08             	mov    0x8(%ebp),%eax
41f52c:	89 48 04             	mov    %ecx,0x4(%eax)
41f52f:	8b 45 08             	mov    0x8(%ebp),%eax
41f532:	89 48 08             	mov    %ecx,0x8(%eax)
41f535:	8b 45 08             	mov    0x8(%ebp),%eax
41f538:	83 48 10 ff          	orl    $0xffffffff,0x10(%eax)
41f53c:	8b 45 08             	mov    0x8(%ebp),%eax
41f53f:	89 48 14             	mov    %ecx,0x14(%eax)
41f542:	8b 45 08             	mov    0x8(%ebp),%eax
41f545:	89 48 18             	mov    %ecx,0x18(%eax)
41f548:	8b 45 08             	mov    0x8(%ebp),%eax
41f54b:	89 48 1c             	mov    %ecx,0x1c(%eax)
41f54e:	8b 45 08             	mov    0x8(%ebp),%eax
41f551:	83 c0 0c             	add    $0xc,%eax
41f554:	87 08                	xchg   %ecx,(%eax)
41f556:	5d                   	pop    %ebp
41f557:	c3                   	ret
41f558:	8b ff                	mov    %edi,%edi
41f55a:	55                   	push   %ebp
41f55b:	8b ec                	mov    %esp,%ebp
41f55d:	51                   	push   %ecx
41f55e:	53                   	push   %ebx
41f55f:	8b 1d e8 f7 43 00    	mov    0x43f7e8,%ebx
41f565:	56                   	push   %esi
41f566:	57                   	push   %edi
41f567:	8b 3d ec f7 43 00    	mov    0x43f7ec,%edi
41f56d:	83 c7 0c             	add    $0xc,%edi
41f570:	83 c3 fd             	add    $0xfffffffd,%ebx
41f573:	8d 1c 9f             	lea    (%edi,%ebx,4),%ebx
41f576:	89 5d fc             	mov    %ebx,-0x4(%ebp)
41f579:	eb 42                	jmp    0x41f5bd
41f57b:	8b 37                	mov    (%edi),%esi
41f57d:	85 f6                	test   %esi,%esi
41f57f:	74 52                	je     0x41f5d3
41f581:	8b 46 0c             	mov    0xc(%esi),%eax
41f584:	90                   	nop
41f585:	c1 e8 0d             	shr    $0xd,%eax
41f588:	a8 01                	test   $0x1,%al
41f58a:	75 2e                	jne    0x41f5ba
41f58c:	56                   	push   %esi
41f58d:	e8 3f e4 ff ff       	call   0x41d9d1
41f592:	59                   	pop    %ecx
41f593:	8d 56 0c             	lea    0xc(%esi),%edx
41f596:	bb 00 20 00 00       	mov    $0x2000,%ebx
41f59b:	8b 02                	mov    (%edx),%eax
41f59d:	8b c8                	mov    %eax,%ecx
41f59f:	0b cb                	or     %ebx,%ecx
41f5a1:	f0 0f b1 0a          	lock cmpxchg %ecx,(%edx)
41f5a5:	75 f6                	jne    0x41f59d
41f5a7:	8b 5d fc             	mov    -0x4(%ebp),%ebx
41f5aa:	c1 e8 0d             	shr    $0xd,%eax
41f5ad:	f6 d0                	not    %al
41f5af:	a8 01                	test   $0x1,%al
41f5b1:	75 19                	jne    0x41f5cc
41f5b3:	56                   	push   %esi
41f5b4:	e8 2c e4 ff ff       	call   0x41d9e5
41f5b9:	59                   	pop    %ecx
41f5ba:	83 c7 04             	add    $0x4,%edi
41f5bd:	3b fb                	cmp    %ebx,%edi
41f5bf:	75 ba                	jne    0x41f57b
41f5c1:	8b 45 08             	mov    0x8(%ebp),%eax
41f5c4:	83 20 00             	andl   $0x0,(%eax)
41f5c7:	5f                   	pop    %edi
41f5c8:	5e                   	pop    %esi
41f5c9:	5b                   	pop    %ebx
41f5ca:	c9                   	leave
41f5cb:	c3                   	ret
41f5cc:	8b 45 08             	mov    0x8(%ebp),%eax
41f5cf:	89 30                	mov    %esi,(%eax)
41f5d1:	eb f4                	jmp    0x41f5c7
41f5d3:	6a 38                	push   $0x38
41f5d5:	6a 01                	push   $0x1
41f5d7:	e8 d4 75 fe ff       	call   0x406bb0
41f5dc:	6a 00                	push   $0x0
41f5de:	89 07                	mov    %eax,(%edi)
41f5e0:	e8 2b 76 fe ff       	call   0x406c10
41f5e5:	8b 07                	mov    (%edi),%eax
41f5e7:	83 c4 0c             	add    $0xc,%esp
41f5ea:	85 c0                	test   %eax,%eax
41f5ec:	74 d3                	je     0x41f5c1
41f5ee:	83 48 10 ff          	orl    $0xffffffff,0x10(%eax)
41f5f2:	8b 07                	mov    (%edi),%eax
41f5f4:	6a 00                	push   $0x0
41f5f6:	68 a0 0f 00 00       	push   $0xfa0
41f5fb:	83 c0 20             	add    $0x20,%eax
41f5fe:	50                   	push   %eax
41f5ff:	e8 c4 ef ff ff       	call   0x41e5c8
41f604:	8b 37                	mov    (%edi),%esi
41f606:	b9 00 20 00 00       	mov    $0x2000,%ecx
41f60b:	8d 46 0c             	lea    0xc(%esi),%eax
41f60e:	f0 09 08             	lock or %ecx,(%eax)
41f611:	56                   	push   %esi
41f612:	e8 ba e3 ff ff       	call   0x41d9d1
41f617:	59                   	pop    %ecx
41f618:	eb b2                	jmp    0x41f5cc
41f61a:	8b ff                	mov    %edi,%edi
41f61c:	55                   	push   %ebp
41f61d:	8b ec                	mov    %esp,%ebp
41f61f:	51                   	push   %ecx
41f620:	53                   	push   %ebx
41f621:	56                   	push   %esi
41f622:	8b 75 08             	mov    0x8(%ebp),%esi
41f625:	33 c0                	xor    %eax,%eax
41f627:	57                   	push   %edi
41f628:	8b fe                	mov    %esi,%edi
41f62a:	6a 02                	push   $0x2
41f62c:	5a                   	pop    %edx
41f62d:	6a 20                	push   $0x20
41f62f:	ab                   	stos   %eax,%es:(%edi)
41f630:	5b                   	pop    %ebx
41f631:	ab                   	stos   %eax,%es:(%edi)
41f632:	ab                   	stos   %eax,%es:(%edi)
41f633:	8b 7d 0c             	mov    0xc(%ebp),%edi
41f636:	a1 c0 f7 43 00       	mov    0x43f7c0,%eax
41f63b:	89 46 04             	mov    %eax,0x4(%esi)
41f63e:	0f b7 07             	movzwl (%edi),%eax
41f641:	8b c8                	mov    %eax,%ecx
41f643:	66 3b c3             	cmp    %bx,%ax
41f646:	75 0c                	jne    0x41f654
41f648:	03 fa                	add    %edx,%edi
41f64a:	0f b7 07             	movzwl (%edi),%eax
41f64d:	66 3b c3             	cmp    %bx,%ax
41f650:	74 f6                	je     0x41f648
41f652:	8b c8                	mov    %eax,%ecx
41f654:	0f b7 c1             	movzwl %cx,%eax
41f657:	83 f8 61             	cmp    $0x61,%eax
41f65a:	74 20                	je     0x41f67c
41f65c:	83 f8 72             	cmp    $0x72,%eax
41f65f:	74 12                	je     0x41f673
41f661:	66 83 f9 77          	cmp    $0x77,%cx
41f665:	0f 85 03 02 00 00    	jne    0x41f86e
41f66b:	c7 06 01 03 00 00    	movl   $0x301,(%esi)
41f671:	eb 0f                	jmp    0x41f682
41f673:	c7 46 04 01 00 00 00 	movl   $0x1,0x4(%esi)
41f67a:	eb 09                	jmp    0x41f685
41f67c:	c7 06 09 01 00 00    	movl   $0x109,(%esi)
41f682:	89 56 04             	mov    %edx,0x4(%esi)
41f685:	03 fa                	add    %edx,%edi
41f687:	b1 01                	mov    $0x1,%cl
41f689:	33 c0                	xor    %eax,%eax
41f68b:	6a 0a                	push   $0xa
41f68d:	88 45 ff             	mov    %al,-0x1(%ebp)
41f690:	8a d8                	mov    %al,%bl
41f692:	88 45 fe             	mov    %al,-0x2(%ebp)
41f695:	8a f8                	mov    %al,%bh
41f697:	5a                   	pop    %edx
41f698:	0f b7 07             	movzwl (%edi),%eax
41f69b:	66 85 c0             	test   %ax,%ax
41f69e:	0f 84 dc 00 00 00    	je     0x41f780
41f6a4:	83 f8 53             	cmp    $0x53,%eax
41f6a7:	77 65                	ja     0x41f70e
41f6a9:	74 56                	je     0x41f701
41f6ab:	83 e8 20             	sub    $0x20,%eax
41f6ae:	0f 84 b8 00 00 00    	je     0x41f76c
41f6b4:	83 e8 0b             	sub    $0xb,%eax
41f6b7:	74 3b                	je     0x41f6f4
41f6b9:	83 e8 01             	sub    $0x1,%eax
41f6bc:	74 30                	je     0x41f6ee
41f6be:	83 e8 18             	sub    $0x18,%eax