40e473:	66 39 85 d8 fd ff ff 	cmp    %ax,-0x228(%ebp)
40e47a:	75 1d                	jne    0x40e499
40e47c:	66 83 bd da fd ff ff 	cmpw   $0x0,-0x226(%ebp)
40e483:	00
40e484:	74 34                	je     0x40e4ba
40e486:	66 39 85 da fd ff ff 	cmp    %ax,-0x226(%ebp)
40e48d:	75 0a                	jne    0x40e499
40e48f:	66 83 bd dc fd ff ff 	cmpw   $0x0,-0x224(%ebp)
40e496:	00
40e497:	74 21                	je     0x40e4ba
40e499:	53                   	push   %ebx
40e49a:	ff b5 a0 fd ff ff    	push   -0x260(%ebp)
40e4a0:	8d 85 d8 fd ff ff    	lea    -0x228(%ebp),%eax
40e4a6:	57                   	push   %edi
40e4a7:	50                   	push   %eax
40e4a8:	e8 4b fe ff ff       	call   0x40e2f8
40e4ad:	83 c4 10             	add    $0x10,%esp
40e4b0:	89 85 9c fd ff ff    	mov    %eax,-0x264(%ebp)
40e4b6:	85 c0                	test   %eax,%eax
40e4b8:	75 4c                	jne    0x40e506
40e4ba:	8d 85 ac fd ff ff    	lea    -0x254(%ebp),%eax
40e4c0:	50                   	push   %eax
40e4c1:	56                   	push   %esi
40e4c2:	ff 15 fc 90 41 00    	call   *0x4190fc
40e4c8:	6a 2e                	push   $0x2e
40e4ca:	85 c0                	test   %eax,%eax
40e4cc:	58                   	pop    %eax
40e4cd:	75 a4                	jne    0x40e473
40e4cf:	8b 43 04             	mov    0x4(%ebx),%eax
40e4d2:	8b 13                	mov    (%ebx),%edx
40e4d4:	2b c2                	sub    %edx,%eax
40e4d6:	8b 8d a4 fd ff ff    	mov    -0x25c(%ebp),%ecx
40e4dc:	c1 f8 02             	sar    $0x2,%eax
40e4df:	3b c8                	cmp    %eax,%ecx
40e4e1:	75 0b                	jne    0x40e4ee
40e4e3:	56                   	push   %esi
40e4e4:	ff 15 f4 90 41 00    	call   *0x4190f4
40e4ea:	33 c0                	xor    %eax,%eax
40e4ec:	eb 25                	jmp    0x40e513
40e4ee:	68 28 e1 40 00       	push   $0x40e128
40e4f3:	2b c1                	sub    %ecx,%eax
40e4f5:	6a 04                	push   $0x4
40e4f7:	50                   	push   %eax
40e4f8:	8d 04 8a             	lea    (%edx,%ecx,4),%eax
40e4fb:	50                   	push   %eax
40e4fc:	e8 df 61 00 00       	call   0x4146e0
40e501:	83 c4 10             	add    $0x10,%esp
40e504:	eb dd                	jmp    0x40e4e3
40e506:	56                   	push   %esi
40e507:	ff 15 f4 90 41 00    	call   *0x4190f4
40e50d:	8b 85 9c fd ff ff    	mov    -0x264(%ebp),%eax
40e513:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40e516:	5f                   	pop    %edi
40e517:	5e                   	pop    %esi
40e518:	33 cd                	xor    %ebp,%ecx
40e51a:	5b                   	pop    %ebx
40e51b:	e8 a8 5b ff ff       	call   0x4040c8
40e520:	c9                   	leave
40e521:	c3                   	ret
40e522:	8b ff                	mov    %edi,%edi
40e524:	55                   	push   %ebp
40e525:	8b ec                	mov    %esp,%ebp
40e527:	53                   	push   %ebx
40e528:	57                   	push   %edi
40e529:	8b f9                	mov    %ecx,%edi
40e52b:	8b 4d 08             	mov    0x8(%ebp),%ecx
40e52e:	c6 47 0c 00          	movb   $0x0,0xc(%edi)
40e532:	8d 5f 04             	lea    0x4(%edi),%ebx
40e535:	85 c9                	test   %ecx,%ecx
40e537:	74 07                	je     0x40e540
40e539:	8b 01                	mov    (%ecx),%eax
40e53b:	8b 49 04             	mov    0x4(%ecx),%ecx
40e53e:	eb 14                	jmp    0x40e554
40e540:	83 3d 98 20 42 00 00 	cmpl   $0x0,0x422098
40e547:	75 12                	jne    0x40e55b
40e549:	a1 e0 12 42 00       	mov    0x4212e0,%eax
40e54e:	8b 0d e4 12 42 00    	mov    0x4212e4,%ecx
40e554:	89 03                	mov    %eax,(%ebx)
40e556:	89 4b 04             	mov    %ecx,0x4(%ebx)
40e559:	eb 41                	jmp    0x40e59c
40e55b:	56                   	push   %esi
40e55c:	e8 4c de ff ff       	call   0x40c3ad
40e561:	89 07                	mov    %eax,(%edi)
40e563:	8d 77 08             	lea    0x8(%edi),%esi
40e566:	53                   	push   %ebx
40e567:	50                   	push   %eax
40e568:	8b 48 4c             	mov    0x4c(%eax),%ecx
40e56b:	89 0b                	mov    %ecx,(%ebx)
40e56d:	8b 48 48             	mov    0x48(%eax),%ecx
40e570:	89 0e                	mov    %ecx,(%esi)
40e572:	e8 a9 ea ff ff       	call   0x40d020
40e577:	56                   	push   %esi
40e578:	ff 37                	push   (%edi)
40e57a:	e8 ff ea ff ff       	call   0x40d07e
40e57f:	8b 0f                	mov    (%edi),%ecx
40e581:	83 c4 10             	add    $0x10,%esp
40e584:	8b 81 50 03 00 00    	mov    0x350(%ecx),%eax
40e58a:	5e                   	pop    %esi
40e58b:	a8 02                	test   $0x2,%al
40e58d:	75 0d                	jne    0x40e59c
40e58f:	83 c8 02             	or     $0x2,%eax
40e592:	89 81 50 03 00 00    	mov    %eax,0x350(%ecx)
40e598:	c6 47 0c 01          	movb   $0x1,0xc(%edi)
40e59c:	8b c7                	mov    %edi,%eax
40e59e:	5f                   	pop    %edi
40e59f:	5b                   	pop    %ebx
40e5a0:	5d                   	pop    %ebp
40e5a1:	c2 04 00             	ret    $0x4
40e5a4:	8b ff                	mov    %edi,%edi
40e5a6:	56                   	push   %esi
40e5a7:	57                   	push   %edi
40e5a8:	8b f9                	mov    %ecx,%edi
40e5aa:	8b 37                	mov    (%edi),%esi
40e5ac:	eb 0b                	jmp    0x40e5b9
40e5ae:	ff 36                	push   (%esi)
40e5b0:	e8 ea c1 ff ff       	call   0x40a79f
40e5b5:	59                   	pop    %ecx
40e5b6:	83 c6 04             	add    $0x4,%esi
40e5b9:	3b 77 04             	cmp    0x4(%edi),%esi
40e5bc:	75 f0                	jne    0x40e5ae
40e5be:	ff 37                	push   (%edi)
40e5c0:	e8 da c1 ff ff       	call   0x40a79f
40e5c5:	59                   	pop    %ecx
40e5c6:	5f                   	pop    %edi
40e5c7:	5e                   	pop    %esi
40e5c8:	c3                   	ret
40e5c9:	8b ff                	mov    %edi,%edi
40e5cb:	55                   	push   %ebp
40e5cc:	8b ec                	mov    %esp,%ebp
40e5ce:	66 83 7d 08 2f       	cmpw   $0x2f,0x8(%ebp)
40e5d3:	74 12                	je     0x40e5e7
40e5d5:	66 83 7d 08 5c       	cmpw   $0x5c,0x8(%ebp)
40e5da:	74 0b                	je     0x40e5e7
40e5dc:	66 83 7d 08 3a       	cmpw   $0x3a,0x8(%ebp)
40e5e1:	74 04                	je     0x40e5e7
40e5e3:	32 c0                	xor    %al,%al
40e5e5:	eb 02                	jmp    0x40e5e9
40e5e7:	b0 01                	mov    $0x1,%al
40e5e9:	5d                   	pop    %ebp
40e5ea:	c2 04 00             	ret    $0x4
40e5ed:	8b ff                	mov    %edi,%edi
40e5ef:	56                   	push   %esi
40e5f0:	8b f1                	mov    %ecx,%esi
40e5f2:	57                   	push   %edi
40e5f3:	8b 7e 08             	mov    0x8(%esi),%edi
40e5f6:	39 7e 04             	cmp    %edi,0x4(%esi)
40e5f9:	74 04                	je     0x40e5ff
40e5fb:	33 c0                	xor    %eax,%eax
40e5fd:	eb 72                	jmp    0x40e671
40e5ff:	83 3e 00             	cmpl   $0x0,(%esi)
40e602:	75 26                	jne    0x40e62a
40e604:	6a 04                	push   $0x4
40e606:	6a 04                	push   $0x4
40e608:	e8 35 c1 ff ff       	call   0x40a742
40e60d:	6a 00                	push   $0x0
40e60f:	89 06                	mov    %eax,(%esi)
40e611:	e8 89 c1 ff ff       	call   0x40a79f
40e616:	8b 06                	mov    (%esi),%eax
40e618:	83 c4 0c             	add    $0xc,%esp
40e61b:	85 c0                	test   %eax,%eax
40e61d:	74 18                	je     0x40e637
40e61f:	89 46 04             	mov    %eax,0x4(%esi)
40e622:	83 c0 10             	add    $0x10,%eax
40e625:	89 46 08             	mov    %eax,0x8(%esi)
40e628:	eb d1                	jmp    0x40e5fb
40e62a:	2b 3e                	sub    (%esi),%edi
40e62c:	c1 ff 02             	sar    $0x2,%edi
40e62f:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
40e635:	76 05                	jbe    0x40e63c
40e637:	6a 0c                	push   $0xc
40e639:	58                   	pop    %eax
40e63a:	eb 35                	jmp    0x40e671
40e63c:	53                   	push   %ebx
40e63d:	6a 04                	push   $0x4
40e63f:	8d 1c 3f             	lea    (%edi,%edi,1),%ebx
40e642:	53                   	push   %ebx
40e643:	ff 36                	push   (%esi)
40e645:	e8 ce 1a 00 00       	call   0x410118
40e64a:	83 c4 0c             	add    $0xc,%esp
40e64d:	85 c0                	test   %eax,%eax
40e64f:	75 05                	jne    0x40e656
40e651:	6a 0c                	push   $0xc
40e653:	5e                   	pop    %esi
40e654:	eb 10                	jmp    0x40e666
40e656:	89 06                	mov    %eax,(%esi)
40e658:	8d 0c b8             	lea    (%eax,%edi,4),%ecx
40e65b:	8d 04 98             	lea    (%eax,%ebx,4),%eax
40e65e:	89 4e 04             	mov    %ecx,0x4(%esi)
40e661:	89 46 08             	mov    %eax,0x8(%esi)
40e664:	33 f6                	xor    %esi,%esi
40e666:	6a 00                	push   $0x0
40e668:	e8 32 c1 ff ff       	call   0x40a79f
40e66d:	59                   	pop    %ecx
40e66e:	8b c6                	mov    %esi,%eax
40e670:	5b                   	pop    %ebx
40e671:	5f                   	pop    %edi
40e672:	5e                   	pop    %esi
40e673:	c3                   	ret
40e674:	8b ff                	mov    %edi,%edi
40e676:	55                   	push   %ebp
40e677:	8b ec                	mov    %esp,%ebp
40e679:	5d                   	pop    %ebp
40e67a:	e9 c1 fa ff ff       	jmp    0x40e140
40e67f:	6a 08                	push   $0x8
40e681:	68 c8 01 42 00       	push   $0x4201c8
40e686:	e8 15 58 ff ff       	call   0x403ea0
40e68b:	8b 45 08             	mov    0x8(%ebp),%eax
40e68e:	ff 30                	push   (%eax)
40e690:	e8 f7 f8 ff ff       	call   0x40df8c
40e695:	59                   	pop    %ecx
40e696:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40e69a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40e69d:	e8 2a 00 00 00       	call   0x40e6cc
40e6a2:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40e6a9:	e8 12 00 00 00       	call   0x40e6c0
40e6ae:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40e6b1:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40e6b8:	59                   	pop    %ecx
40e6b9:	5f                   	pop    %edi
40e6ba:	5e                   	pop    %esi
40e6bb:	5b                   	pop    %ebx
40e6bc:	c9                   	leave
40e6bd:	c2 0c 00             	ret    $0xc
40e6c0:	8b 45 10             	mov    0x10(%ebp),%eax
40e6c3:	ff 30                	push   (%eax)
40e6c5:	e8 0a f9 ff ff       	call   0x40dfd4
40e6ca:	59                   	pop    %ecx
40e6cb:	c3                   	ret
40e6cc:	8b ff                	mov    %edi,%edi
40e6ce:	56                   	push   %esi
40e6cf:	8b f1                	mov    %ecx,%esi
40e6d1:	b9 01 01 00 00       	mov    $0x101,%ecx
40e6d6:	51                   	push   %ecx
40e6d7:	8b 06                	mov    (%esi),%eax
40e6d9:	8b 00                	mov    (%eax),%eax
40e6db:	8b 40 48             	mov    0x48(%eax),%eax
40e6de:	83 c0 18             	add    $0x18,%eax
40e6e1:	50                   	push   %eax
40e6e2:	51                   	push   %ecx
40e6e3:	ff 35 1c 25 42 00    	push   0x42251c
40e6e9:	e8 6d 07 00 00       	call   0x40ee5b
40e6ee:	8b 06                	mov    (%esi),%eax
40e6f0:	b9 00 01 00 00       	mov    $0x100,%ecx
40e6f5:	51                   	push   %ecx
40e6f6:	8b 00                	mov    (%eax),%eax
40e6f8:	8b 40 48             	mov    0x48(%eax),%eax
40e6fb:	05 19 01 00 00       	add    $0x119,%eax
40e700:	50                   	push   %eax
40e701:	51                   	push   %ecx
40e702:	ff 35 20 25 42 00    	push   0x422520
40e708:	e8 4e 07 00 00       	call   0x40ee5b
40e70d:	8b 46 04             	mov    0x4(%esi),%eax
40e710:	83 c4 20             	add    $0x20,%esp
40e713:	83 c9 ff             	or     $0xffffffff,%ecx
40e716:	8b 00                	mov    (%eax),%eax
40e718:	8b 00                	mov    (%eax),%eax
40e71a:	f0 0f c1 08          	lock xadd %ecx,(%eax)
40e71e:	75 15                	jne    0x40e735
40e720:	8b 46 04             	mov    0x4(%esi),%eax
40e723:	8b 00                	mov    (%eax),%eax
40e725:	81 38 f0 12 42 00    	cmpl   $0x4212f0,(%eax)
40e72b:	74 08                	je     0x40e735
40e72d:	ff 30                	push   (%eax)
40e72f:	e8 6b c0 ff ff       	call   0x40a79f
40e734:	59                   	pop    %ecx
40e735:	8b 06                	mov    (%esi),%eax
40e737:	8b 10                	mov    (%eax),%edx
40e739:	8b 46 04             	mov    0x4(%esi),%eax
40e73c:	8b 08                	mov    (%eax),%ecx
40e73e:	8b 42 48             	mov    0x48(%edx),%eax
40e741:	89 01                	mov    %eax,(%ecx)
40e743:	8b 06                	mov    (%esi),%eax
40e745:	8b 00                	mov    (%eax),%eax
40e747:	8b 40 48             	mov    0x48(%eax),%eax
40e74a:	f0 ff 00             	lock incl (%eax)
40e74d:	5e                   	pop    %esi
40e74e:	c3                   	ret
40e74f:	8b ff                	mov    %edi,%edi
40e751:	55                   	push   %ebp
40e752:	8b ec                	mov    %esp,%ebp
40e754:	8b 45 08             	mov    0x8(%ebp),%eax
40e757:	2d a4 03 00 00       	sub    $0x3a4,%eax
40e75c:	74 28                	je     0x40e786
40e75e:	83 e8 04             	sub    $0x4,%eax
40e761:	74 1c                	je     0x40e77f
40e763:	83 e8 0d             	sub    $0xd,%eax
40e766:	74 10                	je     0x40e778
40e768:	83 e8 01             	sub    $0x1,%eax
40e76b:	74 04                	je     0x40e771
40e76d:	33 c0                	xor    %eax,%eax
40e76f:	5d                   	pop    %ebp
40e770:	c3                   	ret
40e771:	a1 bc af 41 00       	mov    0x41afbc,%eax
40e776:	5d                   	pop    %ebp
40e777:	c3                   	ret
40e778:	a1 b8 af 41 00       	mov    0x41afb8,%eax
40e77d:	5d                   	pop    %ebp
40e77e:	c3                   	ret
40e77f:	a1 b4 af 41 00       	mov    0x41afb4,%eax
40e784:	5d                   	pop    %ebp
40e785:	c3                   	ret
40e786:	a1 b0 af 41 00       	mov    0x41afb0,%eax
40e78b:	5d                   	pop    %ebp
40e78c:	c3                   	ret
40e78d:	8b ff                	mov    %edi,%edi
40e78f:	55                   	push   %ebp
40e790:	8b ec                	mov    %esp,%ebp
40e792:	83 ec 10             	sub    $0x10,%esp
40e795:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40e798:	6a 00                	push   $0x0
40e79a:	e8 83 fd ff ff       	call   0x40e522
40e79f:	83 25 28 25 42 00 00 	andl   $0x0,0x422528
40e7a6:	8b 45 08             	mov    0x8(%ebp),%eax
40e7a9:	83 f8 fe             	cmp    $0xfffffffe,%eax
40e7ac:	75 12                	jne    0x40e7c0
40e7ae:	c7 05 28 25 42 00 01 	movl   $0x1,0x422528
40e7b5:	00 00 00
40e7b8:	ff 15 08 91 41 00    	call   *0x419108
40e7be:	eb 2c                	jmp    0x40e7ec
40e7c0:	83 f8 fd             	cmp    $0xfffffffd,%eax
40e7c3:	75 12                	jne    0x40e7d7
40e7c5:	c7 05 28 25 42 00 01 	movl   $0x1,0x422528
40e7cc:	00 00 00
40e7cf:	ff 15 04 91 41 00    	call   *0x419104
40e7d5:	eb 15                	jmp    0x40e7ec
40e7d7:	83 f8 fc             	cmp    $0xfffffffc,%eax
40e7da:	75 10                	jne    0x40e7ec
40e7dc:	8b 45 f4             	mov    -0xc(%ebp),%eax
40e7df:	c7 05 28 25 42 00 01 	movl   $0x1,0x422528
40e7e6:	00 00 00
40e7e9:	8b 40 08             	mov    0x8(%eax),%eax
40e7ec:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
40e7f0:	74 0a                	je     0x40e7fc
40e7f2:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40e7f5:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
40e7fc:	c9                   	leave
40e7fd:	c3                   	ret
40e7fe:	8b ff                	mov    %edi,%edi
40e800:	55                   	push   %ebp
40e801:	8b ec                	mov    %esp,%ebp
40e803:	53                   	push   %ebx
40e804:	8b 5d 08             	mov    0x8(%ebp),%ebx
40e807:	56                   	push   %esi
40e808:	57                   	push   %edi
40e809:	68 01 01 00 00       	push   $0x101
40e80e:	33 f6                	xor    %esi,%esi
40e810:	8d 43 18             	lea    0x18(%ebx),%eax
40e813:	56                   	push   %esi
40e814:	50                   	push   %eax
40e815:	e8 56 62 ff ff       	call   0x404a70