40d3cd:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40d3d1:	ff 75 08             	push   0x8(%ebp)
40d3d4:	e8 44 f8 ff ff       	call   0x40cc1d
40d3d9:	59                   	pop    %ecx
40d3da:	8b f0                	mov    %eax,%esi
40d3dc:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40d3df:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40d3e6:	e8 0b 00 00 00       	call   0x40d3f6
40d3eb:	8b c6                	mov    %esi,%eax
40d3ed:	e8 a4 67 ff ff       	call   0x403b96
40d3f2:	c3                   	ret
40d3f3:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40d3f6:	6a 06                	push   $0x6
40d3f8:	e8 f0 1a 00 00       	call   0x40eeed
40d3fd:	59                   	pop    %ecx
40d3fe:	c3                   	ret
40d3ff:	6a 0c                	push   $0xc
40d401:	68 c0 1d 42 00       	push   $0x421dc0
40d406:	e8 45 67 ff ff       	call   0x403b50
40d40b:	33 ff                	xor    %edi,%edi
40d40d:	8b 75 08             	mov    0x8(%ebp),%esi
40d410:	89 3e                	mov    %edi,(%esi)
40d412:	6a 08                	push   $0x8
40d414:	e8 8c 1a 00 00       	call   0x40eea5
40d419:	59                   	pop    %ecx
40d41a:	89 7d fc             	mov    %edi,-0x4(%ebp)
40d41d:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40d420:	50                   	push   %eax
40d421:	e8 73 00 00 00       	call   0x40d499
40d426:	59                   	pop    %ecx
40d427:	8b 00                	mov    (%eax),%eax
40d429:	89 06                	mov    %eax,(%esi)
40d42b:	85 c0                	test   %eax,%eax
40d42d:	74 0f                	je     0x40d43e
40d42f:	89 78 08             	mov    %edi,0x8(%eax)
40d432:	89 78 1c             	mov    %edi,0x1c(%eax)
40d435:	89 38                	mov    %edi,(%eax)
40d437:	89 78 04             	mov    %edi,0x4(%eax)
40d43a:	83 48 10 ff          	orl    $0xffffffff,0x10(%eax)
40d43e:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40d445:	e8 0b 00 00 00       	call   0x40d455
40d44a:	8b c6                	mov    %esi,%eax
40d44c:	e8 45 67 ff ff       	call   0x403b96
40d451:	c3                   	ret
40d452:	8b 75 08             	mov    0x8(%ebp),%esi
40d455:	6a 08                	push   $0x8
40d457:	e8 91 1a 00 00       	call   0x40eeed
40d45c:	59                   	pop    %ecx
40d45d:	c3                   	ret
40d45e:	8b ff                	mov    %edi,%edi
40d460:	55                   	push   %ebp
40d461:	8b ec                	mov    %esp,%ebp
40d463:	8b 45 08             	mov    0x8(%ebp),%eax
40d466:	33 c9                	xor    %ecx,%ecx
40d468:	89 08                	mov    %ecx,(%eax)
40d46a:	8b 45 08             	mov    0x8(%ebp),%eax
40d46d:	89 48 04             	mov    %ecx,0x4(%eax)
40d470:	8b 45 08             	mov    0x8(%ebp),%eax
40d473:	89 48 08             	mov    %ecx,0x8(%eax)
40d476:	8b 45 08             	mov    0x8(%ebp),%eax
40d479:	83 48 10 ff          	orl    $0xffffffff,0x10(%eax)
40d47d:	8b 45 08             	mov    0x8(%ebp),%eax
40d480:	89 48 14             	mov    %ecx,0x14(%eax)
40d483:	8b 45 08             	mov    0x8(%ebp),%eax
40d486:	89 48 18             	mov    %ecx,0x18(%eax)
40d489:	8b 45 08             	mov    0x8(%ebp),%eax
40d48c:	89 48 1c             	mov    %ecx,0x1c(%eax)
40d48f:	8b 45 08             	mov    0x8(%ebp),%eax
40d492:	83 c0 0c             	add    $0xc,%eax
40d495:	87 08                	xchg   %ecx,(%eax)
40d497:	5d                   	pop    %ebp
40d498:	c3                   	ret
40d499:	8b ff                	mov    %edi,%edi
40d49b:	55                   	push   %ebp
40d49c:	8b ec                	mov    %esp,%ebp
40d49e:	51                   	push   %ecx
40d49f:	53                   	push   %ebx
40d4a0:	8b 1d a4 41 42 00    	mov    0x4241a4,%ebx
40d4a6:	56                   	push   %esi
40d4a7:	57                   	push   %edi
40d4a8:	8b 3d a8 41 42 00    	mov    0x4241a8,%edi
40d4ae:	83 c7 0c             	add    $0xc,%edi
40d4b1:	83 c3 fd             	add    $0xfffffffd,%ebx
40d4b4:	8d 1c 9f             	lea    (%edi,%ebx,4),%ebx
40d4b7:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40d4ba:	eb 41                	jmp    0x40d4fd
40d4bc:	8b 37                	mov    (%edi),%esi
40d4be:	85 f6                	test   %esi,%esi
40d4c0:	74 53                	je     0x40d515
40d4c2:	8b 46 0c             	mov    0xc(%esi),%eax
40d4c5:	c1 e8 0d             	shr    $0xd,%eax
40d4c8:	a8 01                	test   $0x1,%al
40d4ca:	75 2e                	jne    0x40d4fa
40d4cc:	56                   	push   %esi
40d4cd:	e8 58 e2 ff ff       	call   0x40b72a
40d4d2:	59                   	pop    %ecx
40d4d3:	8d 56 0c             	lea    0xc(%esi),%edx
40d4d6:	bb 00 20 00 00       	mov    $0x2000,%ebx
40d4db:	8b 02                	mov    (%edx),%eax
40d4dd:	8b c8                	mov    %eax,%ecx
40d4df:	0b cb                	or     %ebx,%ecx
40d4e1:	f0 0f b1 0a          	lock cmpxchg %ecx,(%edx)
40d4e5:	75 f6                	jne    0x40d4dd
40d4e7:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40d4ea:	c1 e8 0d             	shr    $0xd,%eax
40d4ed:	f6 d0                	not    %al
40d4ef:	a8 01                	test   $0x1,%al
40d4f1:	75 1b                	jne    0x40d50e
40d4f3:	56                   	push   %esi
40d4f4:	e8 45 e2 ff ff       	call   0x40b73e
40d4f9:	59                   	pop    %ecx
40d4fa:	83 c7 04             	add    $0x4,%edi
40d4fd:	3b fb                	cmp    %ebx,%edi
40d4ff:	75 bb                	jne    0x40d4bc
40d501:	8b 45 08             	mov    0x8(%ebp),%eax
40d504:	83 20 00             	andl   $0x0,(%eax)
40d507:	5f                   	pop    %edi
40d508:	5e                   	pop    %esi
40d509:	5b                   	pop    %ebx
40d50a:	8b e5                	mov    %ebp,%esp
40d50c:	5d                   	pop    %ebp
40d50d:	c3                   	ret
40d50e:	8b 45 08             	mov    0x8(%ebp),%eax
40d511:	89 30                	mov    %esi,(%eax)
40d513:	eb f2                	jmp    0x40d507
40d515:	6a 38                	push   $0x38
40d517:	6a 01                	push   $0x1
40d519:	e8 8e c3 ff ff       	call   0x4098ac
40d51e:	6a 00                	push   $0x0
40d520:	89 07                	mov    %eax,(%edi)
40d522:	e8 fd c2 ff ff       	call   0x409824
40d527:	8b 07                	mov    (%edi),%eax
40d529:	83 c4 0c             	add    $0xc,%esp
40d52c:	85 c0                	test   %eax,%eax
40d52e:	74 d1                	je     0x40d501
40d530:	83 48 10 ff          	orl    $0xffffffff,0x10(%eax)
40d534:	8b 07                	mov    (%edi),%eax
40d536:	6a 00                	push   $0x0
40d538:	68 a0 0f 00 00       	push   $0xfa0
40d53d:	83 c0 20             	add    $0x20,%eax
40d540:	50                   	push   %eax
40d541:	e8 02 eb ff ff       	call   0x40c048
40d546:	8b 37                	mov    (%edi),%esi
40d548:	b9 00 20 00 00       	mov    $0x2000,%ecx
40d54d:	8d 46 0c             	lea    0xc(%esi),%eax
40d550:	f0 09 08             	lock or %ecx,(%eax)
40d553:	56                   	push   %esi
40d554:	e8 d1 e1 ff ff       	call   0x40b72a
40d559:	59                   	pop    %ecx
40d55a:	eb b2                	jmp    0x40d50e
40d55c:	8b ff                	mov    %edi,%edi
40d55e:	55                   	push   %ebp
40d55f:	8b ec                	mov    %esp,%ebp
40d561:	83 ec 10             	sub    $0x10,%esp
40d564:	33 c0                	xor    %eax,%eax
40d566:	53                   	push   %ebx
40d567:	8b 5d 08             	mov    0x8(%ebp),%ebx
40d56a:	56                   	push   %esi
40d56b:	57                   	push   %edi
40d56c:	8d 7d f0             	lea    -0x10(%ebp),%edi
40d56f:	ab                   	stos   %eax,%es:(%edi)
40d570:	8d 75 f0             	lea    -0x10(%ebp),%esi
40d573:	6a 02                	push   $0x2
40d575:	59                   	pop    %ecx
40d576:	6a 20                	push   $0x20
40d578:	ab                   	stos   %eax,%es:(%edi)
40d579:	ab                   	stos   %eax,%es:(%edi)
40d57a:	8b fb                	mov    %ebx,%edi
40d57c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d57d:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d57e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d57f:	a1 a0 41 42 00       	mov    0x4241a0,%eax
40d584:	8b 75 0c             	mov    0xc(%ebp),%esi
40d587:	89 43 04             	mov    %eax,0x4(%ebx)
40d58a:	5f                   	pop    %edi
40d58b:	eb 02                	jmp    0x40d58f
40d58d:	03 f1                	add    %ecx,%esi
40d58f:	66 39 3e             	cmp    %di,(%esi)
40d592:	74 f9                	je     0x40d58d
40d594:	0f b7 06             	movzwl (%esi),%eax
40d597:	33 d2                	xor    %edx,%edx
40d599:	83 f8 61             	cmp    $0x61,%eax
40d59c:	74 21                	je     0x40d5bf
40d59e:	83 f8 72             	cmp    $0x72,%eax
40d5a1:	74 11                	je     0x40d5b4
40d5a3:	83 f8 77             	cmp    $0x77,%eax
40d5a6:	0f 85 db 01 00 00    	jne    0x40d787
40d5ac:	c7 03 01 03 00 00    	movl   $0x301,(%ebx)
40d5b2:	eb 11                	jmp    0x40d5c5
40d5b4:	89 13                	mov    %edx,(%ebx)
40d5b6:	c7 43 04 01 00 00 00 	movl   $0x1,0x4(%ebx)
40d5bd:	eb 09                	jmp    0x40d5c8
40d5bf:	c7 03 09 01 00 00    	movl   $0x109,(%ebx)
40d5c5:	89 4b 04             	mov    %ecx,0x4(%ebx)
40d5c8:	03 f1                	add    %ecx,%esi
40d5ca:	88 55 fd             	mov    %dl,-0x3(%ebp)
40d5cd:	32 ed                	xor    %ch,%ch
40d5cf:	88 55 fc             	mov    %dl,-0x4(%ebp)
40d5d2:	88 55 fe             	mov    %dl,-0x2(%ebp)
40d5d5:	b1 01                	mov    $0x1,%cl
40d5d7:	88 6d ff             	mov    %ch,-0x1(%ebp)
40d5da:	0f b7 06             	movzwl (%esi),%eax
40d5dd:	66 85 c0             	test   %ax,%ax
40d5e0:	0f 84 dd 00 00 00    	je     0x40d6c3
40d5e6:	83 f8 53             	cmp    $0x53,%eax
40d5e9:	7f 70                	jg     0x40d65b
40d5eb:	74 5c                	je     0x40d649
40d5ed:	2b c7                	sub    %edi,%eax
40d5ef:	0f 84 b7 00 00 00    	je     0x40d6ac
40d5f5:	83 e8 0b             	sub    $0xb,%eax
40d5f8:	74 42                	je     0x40d63c
40d5fa:	83 e8 01             	sub    $0x1,%eax
40d5fd:	74 34                	je     0x40d633
40d5ff:	83 e8 18             	sub    $0x18,%eax
40d602:	74 27                	je     0x40d62b
40d604:	83 e8 0a             	sub    $0xa,%eax
40d607:	74 15                	je     0x40d61e
40d609:	83 e8 04             	sub    $0x4,%eax
40d60c:	0f 85 75 01 00 00    	jne    0x40d787
40d612:	8a 6d ff             	mov    -0x1(%ebp),%ch
40d615:	84 d2                	test   %dl,%dl
40d617:	75 1f                	jne    0x40d638
40d619:	83 0b 10             	orl    $0x10,(%ebx)
40d61c:	eb 34                	jmp    0x40d652
40d61e:	81 0b 80 00 00 00    	orl    $0x80,(%ebx)
40d624:	b1 01                	mov    $0x1,%cl
40d626:	e9 81 00 00 00       	jmp    0x40d6ac
40d62b:	53                   	push   %ebx
40d62c:	e8 f4 01 00 00       	call   0x40d825
40d631:	eb 73                	jmp    0x40d6a6
40d633:	b5 01                	mov    $0x1,%ch
40d635:	88 6d ff             	mov    %ch,-0x1(%ebp)
40d638:	32 c9                	xor    %cl,%cl
40d63a:	eb 73                	jmp    0x40d6af
40d63c:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d63f:	50                   	push   %eax
40d640:	53                   	push   %ebx
40d641:	e8 7d 02 00 00       	call   0x40d8c3
40d646:	59                   	pop    %ecx
40d647:	eb 5d                	jmp    0x40d6a6
40d649:	8a 6d ff             	mov    -0x1(%ebp),%ch
40d64c:	84 d2                	test   %dl,%dl
40d64e:	75 e8                	jne    0x40d638
40d650:	09 3b                	or     %edi,(%ebx)
40d652:	b2 01                	mov    $0x1,%dl
40d654:	88 55 fe             	mov    %dl,-0x2(%ebp)
40d657:	8a ca                	mov    %dl,%cl
40d659:	eb 54                	jmp    0x40d6af
40d65b:	83 e8 54             	sub    $0x54,%eax
40d65e:	74 40                	je     0x40d6a0
40d660:	83 e8 0e             	sub    $0xe,%eax
40d663:	74 33                	je     0x40d698
40d665:	83 e8 01             	sub    $0x1,%eax
40d668:	74 22                	je     0x40d68c
40d66a:	83 e8 0b             	sub    $0xb,%eax
40d66d:	74 11                	je     0x40d680
40d66f:	83 e8 06             	sub    $0x6,%eax
40d672:	0f 85 0f 01 00 00    	jne    0x40d787
40d678:	53                   	push   %ebx
40d679:	e8 7a 02 00 00       	call   0x40d8f8
40d67e:	eb 26                	jmp    0x40d6a6
40d680:	8d 45 fd             	lea    -0x3(%ebp),%eax
40d683:	50                   	push   %eax
40d684:	53                   	push   %ebx
40d685:	e8 17 02 00 00       	call   0x40d8a1
40d68a:	eb ba                	jmp    0x40d646
40d68c:	8d 45 fd             	lea    -0x3(%ebp),%eax
40d68f:	50                   	push   %eax
40d690:	53                   	push   %ebx
40d691:	e8 e9 01 00 00       	call   0x40d87f
40d696:	eb ae                	jmp    0x40d646
40d698:	53                   	push   %ebx
40d699:	e8 c1 01 00 00       	call   0x40d85f
40d69e:	eb 06                	jmp    0x40d6a6
40d6a0:	53                   	push   %ebx
40d6a1:	e8 9a 01 00 00       	call   0x40d840
40d6a6:	8a 55 fe             	mov    -0x2(%ebp),%dl
40d6a9:	59                   	pop    %ecx
40d6aa:	8a c8                	mov    %al,%cl
40d6ac:	8a 6d ff             	mov    -0x1(%ebp),%ch
40d6af:	33 c0                	xor    %eax,%eax
40d6b1:	84 c9                	test   %cl,%cl
40d6b3:	0f 95 c0             	setne  %al
40d6b6:	8d 34 46             	lea    (%esi,%eax,2),%esi
40d6b9:	84 c9                	test   %cl,%cl
40d6bb:	0f 85 19 ff ff ff    	jne    0x40d5da
40d6c1:	eb 03                	jmp    0x40d6c6
40d6c3:	8a 6d ff             	mov    -0x1(%ebp),%ch
40d6c6:	84 ed                	test   %ch,%ch
40d6c8:	74 03                	je     0x40d6cd
40d6ca:	83 c6 02             	add    $0x2,%esi
40d6cd:	66 39 3e             	cmp    %di,(%esi)
40d6d0:	74 f8                	je     0x40d6ca
40d6d2:	84 ed                	test   %ch,%ch
40d6d4:	75 14                	jne    0x40d6ea
40d6d6:	33 c0                	xor    %eax,%eax
40d6d8:	66 39 06             	cmp    %ax,(%esi)
40d6db:	0f 85 a6 00 00 00    	jne    0x40d787
40d6e1:	c6 43 08 01          	movb   $0x1,0x8(%ebx)
40d6e5:	e9 ad 00 00 00       	jmp    0x40d797
40d6ea:	6a 03                	push   $0x3
40d6ec:	68 68 ca 41 00       	push   $0x41ca68
40d6f1:	56                   	push   %esi
40d6f2:	e8 07 35 00 00       	call   0x410bfe
40d6f7:	83 c4 0c             	add    $0xc,%esp
40d6fa:	85 c0                	test   %eax,%eax
40d6fc:	0f 85 85 00 00 00    	jne    0x40d787
40d702:	83 c6 06             	add    $0x6,%esi
40d705:	eb 03                	jmp    0x40d70a
40d707:	83 c6 02             	add    $0x2,%esi
40d70a:	66 39 3e             	cmp    %di,(%esi)
40d70d:	74 f8                	je     0x40d707
40d70f:	66 83 3e 3d          	cmpw   $0x3d,(%esi)
40d713:	75 72                	jne    0x40d787
40d715:	83 c6 02             	add    $0x2,%esi
40d718:	66 39 3e             	cmp    %di,(%esi)
40d71b:	74 f8                	je     0x40d715
40d71d:	6a 05                	push   $0x5
40d71f:	68 70 ca 41 00       	push   $0x41ca70
40d724:	56                   	push   %esi
40d725:	e8 1f 63 00 00       	call   0x413a49
40d72a:	83 c4 0c             	add    $0xc,%esp
40d72d:	85 c0                	test   %eax,%eax
40d72f:	75 0b                	jne    0x40d73c
40d731:	83 c6 0a             	add    $0xa,%esi
40d734:	81 0b 00 00 04 00    	orl    $0x40000,(%ebx)
40d73a:	eb 41                	jmp    0x40d77d
40d73c:	6a 08                	push   $0x8
40d73e:	68 7c ca 41 00       	push   $0x41ca7c
40d743:	56                   	push   %esi
40d744:	e8 00 63 00 00       	call   0x413a49
40d749:	83 c4 0c             	add    $0xc,%esp
40d74c:	85 c0                	test   %eax,%eax
40d74e:	75 0b                	jne    0x40d75b
40d750:	83 c6 10             	add    $0x10,%esi
40d753:	81 0b 00 00 02 00    	orl    $0x20000,(%ebx)
40d759:	eb 22                	jmp    0x40d77d
40d75b:	6a 07                	push   $0x7
40d75d:	68 8c ca 41 00       	push   $0x41ca8c
40d762:	56                   	push   %esi
40d763:	e8 e1 62 00 00       	call   0x413a49
40d768:	83 c4 0c             	add    $0xc,%esp
40d76b:	85 c0                	test   %eax,%eax
40d76d:	75 18                	jne    0x40d787
40d76f:	83 c6 0e             	add    $0xe,%esi
40d772:	81 0b 00 00 01 00    	orl    $0x10000,(%ebx)
40d778:	eb 03                	jmp    0x40d77d
40d77a:	83 c6 02             	add    $0x2,%esi
40d77d:	66 39 3e             	cmp    %di,(%esi)
40d780:	74 f8                	je     0x40d77a