40f56d:	eb 35                	jmp    0x40f5a4
40f56f:	53                   	push   %ebx
40f570:	6a 04                	push   $0x4
40f572:	8d 1c 3f             	lea    (%edi,%edi,1),%ebx
40f575:	53                   	push   %ebx
40f576:	ff 36                	push   (%esi)
40f578:	e8 94 20 00 00       	call   0x411611
40f57d:	83 c4 0c             	add    $0xc,%esp
40f580:	85 c0                	test   %eax,%eax
40f582:	75 05                	jne    0x40f589
40f584:	6a 0c                	push   $0xc
40f586:	5e                   	pop    %esi
40f587:	eb 10                	jmp    0x40f599
40f589:	89 06                	mov    %eax,(%esi)
40f58b:	8d 0c b8             	lea    (%eax,%edi,4),%ecx
40f58e:	8d 04 98             	lea    (%eax,%ebx,4),%eax
40f591:	89 4e 04             	mov    %ecx,0x4(%esi)
40f594:	89 46 08             	mov    %eax,0x8(%esi)
40f597:	33 f6                	xor    %esi,%esi
40f599:	6a 00                	push   $0x0
40f59b:	e8 a3 f7 ff ff       	call   0x40ed43
40f5a0:	59                   	pop    %ecx
40f5a1:	8b c6                	mov    %esi,%eax
40f5a3:	5b                   	pop    %ebx
40f5a4:	5f                   	pop    %edi
40f5a5:	5e                   	pop    %esi
40f5a6:	c3                   	ret
40f5a7:	8b ff                	mov    %edi,%edi
40f5a9:	55                   	push   %ebp
40f5aa:	8b ec                	mov    %esp,%ebp
40f5ac:	5d                   	pop    %ebp
40f5ad:	e9 84 f9 ff ff       	jmp    0x40ef36
40f5b2:	8b ff                	mov    %edi,%edi
40f5b4:	55                   	push   %ebp
40f5b5:	8b ec                	mov    %esp,%ebp
40f5b7:	56                   	push   %esi
40f5b8:	8b 75 08             	mov    0x8(%ebp),%esi
40f5bb:	85 f6                	test   %esi,%esi
40f5bd:	75 0f                	jne    0x40f5ce
40f5bf:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40f5c2:	e8 d9 00 00 00       	call   0x40f6a0
40f5c7:	33 c0                	xor    %eax,%eax
40f5c9:	e9 a8 00 00 00       	jmp    0x40f676
40f5ce:	53                   	push   %ebx
40f5cf:	33 db                	xor    %ebx,%ebx
40f5d1:	66 39 1e             	cmp    %bx,(%esi)
40f5d4:	75 25                	jne    0x40f5fb
40f5d6:	8b 75 0c             	mov    0xc(%ebp),%esi
40f5d9:	39 5e 0c             	cmp    %ebx,0xc(%esi)
40f5dc:	75 11                	jne    0x40f5ef
40f5de:	6a 01                	push   $0x1
40f5e0:	8b ce                	mov    %esi,%ecx
40f5e2:	e8 92 00 00 00       	call   0x40f679
40f5e7:	85 c0                	test   %eax,%eax
40f5e9:	0f 85 86 00 00 00    	jne    0x40f675
40f5ef:	8b 46 08             	mov    0x8(%esi),%eax
40f5f2:	88 18                	mov    %bl,(%eax)
40f5f4:	33 c0                	xor    %eax,%eax
40f5f6:	89 5e 10             	mov    %ebx,0x10(%esi)
40f5f9:	eb 7a                	jmp    0x40f675
40f5fb:	53                   	push   %ebx
40f5fc:	53                   	push   %ebx
40f5fd:	53                   	push   %ebx
40f5fe:	53                   	push   %ebx
40f5ff:	6a ff                	push   $0xffffffff
40f601:	56                   	push   %esi
40f602:	53                   	push   %ebx
40f603:	ff 75 14             	push   0x14(%ebp)
40f606:	e8 3a 0a 00 00       	call   0x410045
40f60b:	83 c4 20             	add    $0x20,%esp
40f60e:	85 c0                	test   %eax,%eax
40f610:	75 16                	jne    0x40f628
40f612:	ff 15 48 c1 41 00    	call   *0x41c148
40f618:	50                   	push   %eax
40f619:	e8 7f f6 ff ff       	call   0x40ec9d
40f61e:	59                   	pop    %ecx
40f61f:	e8 af f6 ff ff       	call   0x40ecd3
40f624:	8b 00                	mov    (%eax),%eax
40f626:	eb 4d                	jmp    0x40f675
40f628:	57                   	push   %edi
40f629:	8b 7d 0c             	mov    0xc(%ebp),%edi
40f62c:	3b 47 0c             	cmp    0xc(%edi),%eax
40f62f:	76 0c                	jbe    0x40f63d
40f631:	50                   	push   %eax
40f632:	8b cf                	mov    %edi,%ecx
40f634:	e8 40 00 00 00       	call   0x40f679
40f639:	85 c0                	test   %eax,%eax
40f63b:	75 37                	jne    0x40f674
40f63d:	53                   	push   %ebx
40f63e:	53                   	push   %ebx
40f63f:	ff 77 0c             	push   0xc(%edi)
40f642:	ff 77 08             	push   0x8(%edi)
40f645:	6a ff                	push   $0xffffffff
40f647:	56                   	push   %esi
40f648:	53                   	push   %ebx
40f649:	ff 75 14             	push   0x14(%ebp)
40f64c:	e8 f4 09 00 00       	call   0x410045
40f651:	83 c4 20             	add    $0x20,%esp
40f654:	85 c0                	test   %eax,%eax
40f656:	75 16                	jne    0x40f66e
40f658:	ff 15 48 c1 41 00    	call   *0x41c148
40f65e:	50                   	push   %eax
40f65f:	e8 39 f6 ff ff       	call   0x40ec9d
40f664:	59                   	pop    %ecx
40f665:	e8 69 f6 ff ff       	call   0x40ecd3
40f66a:	8b 00                	mov    (%eax),%eax
40f66c:	eb 06                	jmp    0x40f674
40f66e:	48                   	dec    %eax
40f66f:	89 47 10             	mov    %eax,0x10(%edi)
40f672:	33 c0                	xor    %eax,%eax
40f674:	5f                   	pop    %edi
40f675:	5b                   	pop    %ebx
40f676:	5e                   	pop    %esi
40f677:	5d                   	pop    %ebp
40f678:	c3                   	ret
40f679:	8b ff                	mov    %edi,%edi
40f67b:	56                   	push   %esi
40f67c:	8b f1                	mov    %ecx,%esi
40f67e:	80 7e 14 00          	cmpb   $0x0,0x14(%esi)
40f682:	74 04                	je     0x40f688
40f684:	c6 46 14 00          	movb   $0x0,0x14(%esi)
40f688:	e8 46 f6 ff ff       	call   0x40ecd3
40f68d:	6a 22                	push   $0x22
40f68f:	59                   	pop    %ecx
40f690:	89 08                	mov    %ecx,(%eax)
40f692:	8b c1                	mov    %ecx,%eax
40f694:	83 66 0c 00          	andl   $0x0,0xc(%esi)
40f698:	c6 46 14 00          	movb   $0x0,0x14(%esi)
40f69c:	5e                   	pop    %esi
40f69d:	c2 04 00             	ret    $0x4
40f6a0:	33 c0                	xor    %eax,%eax
40f6a2:	38 41 14             	cmp    %al,0x14(%ecx)
40f6a5:	74 03                	je     0x40f6aa
40f6a7:	88 41 14             	mov    %al,0x14(%ecx)
40f6aa:	89 41 08             	mov    %eax,0x8(%ecx)
40f6ad:	89 41 0c             	mov    %eax,0xc(%ecx)
40f6b0:	89 41 10             	mov    %eax,0x10(%ecx)
40f6b3:	c3                   	ret
40f6b4:	8b ff                	mov    %edi,%edi
40f6b6:	55                   	push   %ebp
40f6b7:	8b ec                	mov    %esp,%ebp
40f6b9:	81 ec 2c 02 00 00    	sub    $0x22c,%esp
40f6bf:	a1 18 60 42 00       	mov    0x426018,%eax
40f6c4:	33 c5                	xor    %ebp,%eax
40f6c6:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f6c9:	8b 45 08             	mov    0x8(%ebp),%eax
40f6cc:	8d 8d f0 fd ff ff    	lea    -0x210(%ebp),%ecx
40f6d2:	68 05 01 00 00       	push   $0x105
40f6d7:	51                   	push   %ecx
40f6d8:	50                   	push   %eax
40f6d9:	ff 15 84 c0 41 00    	call   *0x41c084
40f6df:	85 c0                	test   %eax,%eax
40f6e1:	75 11                	jne    0x40f6f4
40f6e3:	ff 15 48 c1 41 00    	call   *0x41c148
40f6e9:	50                   	push   %eax
40f6ea:	e8 ae f5 ff ff       	call   0x40ec9d
40f6ef:	59                   	pop    %ecx
40f6f0:	33 c0                	xor    %eax,%eax
40f6f2:	eb 55                	jmp    0x40f749
40f6f4:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40f6f7:	8b 45 10             	mov    0x10(%ebp),%eax
40f6fa:	83 a5 e4 fd ff ff 00 	andl   $0x0,-0x21c(%ebp)
40f701:	89 8d d4 fd ff ff    	mov    %ecx,-0x22c(%ebp)
40f707:	89 85 d8 fd ff ff    	mov    %eax,-0x228(%ebp)
40f70d:	89 8d dc fd ff ff    	mov    %ecx,-0x224(%ebp)
40f713:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
40f719:	c6 85 e8 fd ff ff 00 	movb   $0x0,-0x218(%ebp)
40f720:	e8 08 fd ff ff       	call   0x40f42d
40f725:	50                   	push   %eax
40f726:	8d 85 ef fd ff ff    	lea    -0x211(%ebp),%eax
40f72c:	50                   	push   %eax
40f72d:	8d 85 d4 fd ff ff    	lea    -0x22c(%ebp),%eax
40f733:	50                   	push   %eax
40f734:	8d 85 f0 fd ff ff    	lea    -0x210(%ebp),%eax
40f73a:	50                   	push   %eax
40f73b:	e8 72 fe ff ff       	call   0x40f5b2
40f740:	8b 85 e4 fd ff ff    	mov    -0x21c(%ebp),%eax
40f746:	83 c4 10             	add    $0x10,%esp
40f749:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f74c:	33 cd                	xor    %ebp,%ecx
40f74e:	e8 a2 94 ff ff       	call   0x408bf5
40f753:	c9                   	leave
40f754:	c3                   	ret
40f755:	6a 08                	push   $0x8
40f757:	68 a0 3f 42 00       	push   $0x423fa0
40f75c:	e8 6f 92 ff ff       	call   0x4089d0
40f761:	8b 45 08             	mov    0x8(%ebp),%eax
40f764:	ff 30                	push   (%eax)
40f766:	e8 96 0a 00 00       	call   0x410201
40f76b:	59                   	pop    %ecx
40f76c:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40f770:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40f773:	e8 2a 00 00 00       	call   0x40f7a2
40f778:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40f77f:	e8 12 00 00 00       	call   0x40f796
40f784:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40f787:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40f78e:	59                   	pop    %ecx
40f78f:	5f                   	pop    %edi
40f790:	5e                   	pop    %esi
40f791:	5b                   	pop    %ebx
40f792:	c9                   	leave
40f793:	c2 0c 00             	ret    $0xc
40f796:	8b 45 10             	mov    0x10(%ebp),%eax
40f799:	ff 30                	push   (%eax)
40f79b:	e8 b1 0a 00 00       	call   0x410251
40f7a0:	59                   	pop    %ecx
40f7a1:	c3                   	ret
40f7a2:	8b ff                	mov    %edi,%edi
40f7a4:	56                   	push   %esi
40f7a5:	8b f1                	mov    %ecx,%esi
40f7a7:	b9 01 01 00 00       	mov    $0x101,%ecx
40f7ac:	51                   	push   %ecx
40f7ad:	8b 06                	mov    (%esi),%eax
40f7af:	8b 00                	mov    (%eax),%eax
40f7b1:	8b 40 48             	mov    0x48(%eax),%eax
40f7b4:	83 c0 18             	add    $0x18,%eax
40f7b7:	50                   	push   %eax
40f7b8:	51                   	push   %ecx
40f7b9:	ff 35 90 6e 42 00    	push   0x426e90
40f7bf:	e8 fa 06 00 00       	call   0x40febe
40f7c4:	8b 06                	mov    (%esi),%eax
40f7c6:	b9 00 01 00 00       	mov    $0x100,%ecx
40f7cb:	51                   	push   %ecx
40f7cc:	8b 00                	mov    (%eax),%eax
40f7ce:	8b 40 48             	mov    0x48(%eax),%eax
40f7d1:	05 19 01 00 00       	add    $0x119,%eax
40f7d6:	50                   	push   %eax
40f7d7:	51                   	push   %ecx
40f7d8:	ff 35 94 6e 42 00    	push   0x426e94
40f7de:	e8 db 06 00 00       	call   0x40febe
40f7e3:	8b 46 04             	mov    0x4(%esi),%eax
40f7e6:	83 c4 20             	add    $0x20,%esp
40f7e9:	83 c9 ff             	or     $0xffffffff,%ecx
40f7ec:	8b 00                	mov    (%eax),%eax
40f7ee:	8b 00                	mov    (%eax),%eax
40f7f0:	f0 0f c1 08          	lock xadd %ecx,(%eax)
40f7f4:	75 15                	jne    0x40f80b
40f7f6:	8b 46 04             	mov    0x4(%esi),%eax
40f7f9:	8b 00                	mov    (%eax),%eax
40f7fb:	81 38 60 60 42 00    	cmpl   $0x426060,(%eax)
40f801:	74 08                	je     0x40f80b
40f803:	ff 30                	push   (%eax)
40f805:	e8 39 f5 ff ff       	call   0x40ed43
40f80a:	59                   	pop    %ecx
40f80b:	8b 06                	mov    (%esi),%eax
40f80d:	8b 10                	mov    (%eax),%edx
40f80f:	8b 46 04             	mov    0x4(%esi),%eax
40f812:	8b 08                	mov    (%eax),%ecx
40f814:	8b 42 48             	mov    0x48(%edx),%eax
40f817:	89 01                	mov    %eax,(%ecx)
40f819:	8b 06                	mov    (%esi),%eax
40f81b:	8b 00                	mov    (%eax),%eax
40f81d:	8b 40 48             	mov    0x48(%eax),%eax
40f820:	f0 ff 00             	lock incl (%eax)
40f823:	5e                   	pop    %esi
40f824:	c3                   	ret
40f825:	8b ff                	mov    %edi,%edi
40f827:	55                   	push   %ebp
40f828:	8b ec                	mov    %esp,%ebp
40f82a:	8b 45 08             	mov    0x8(%ebp),%eax
40f82d:	2d a4 03 00 00       	sub    $0x3a4,%eax
40f832:	74 28                	je     0x40f85c
40f834:	83 e8 04             	sub    $0x4,%eax
40f837:	74 1c                	je     0x40f855
40f839:	83 e8 0d             	sub    $0xd,%eax
40f83c:	74 10                	je     0x40f84e
40f83e:	83 e8 01             	sub    $0x1,%eax
40f841:	74 04                	je     0x40f847
40f843:	33 c0                	xor    %eax,%eax
40f845:	5d                   	pop    %ebp
40f846:	c3                   	ret
40f847:	a1 bc da 41 00       	mov    0x41dabc,%eax
40f84c:	5d                   	pop    %ebp
40f84d:	c3                   	ret
40f84e:	a1 b8 da 41 00       	mov    0x41dab8,%eax
40f853:	5d                   	pop    %ebp
40f854:	c3                   	ret
40f855:	a1 b4 da 41 00       	mov    0x41dab4,%eax
40f85a:	5d                   	pop    %ebp
40f85b:	c3                   	ret
40f85c:	a1 b0 da 41 00       	mov    0x41dab0,%eax
40f861:	5d                   	pop    %ebp
40f862:	c3                   	ret
40f863:	8b ff                	mov    %edi,%edi
40f865:	55                   	push   %ebp
40f866:	8b ec                	mov    %esp,%ebp
40f868:	83 ec 10             	sub    $0x10,%esp
40f86b:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40f86e:	6a 00                	push   $0x0
40f870:	e8 d5 d1 ff ff       	call   0x40ca4a
40f875:	83 25 9c 6e 42 00 00 	andl   $0x0,0x426e9c
40f87c:	8b 45 08             	mov    0x8(%ebp),%eax
40f87f:	83 f8 fe             	cmp    $0xfffffffe,%eax
40f882:	75 12                	jne    0x40f896
40f884:	c7 05 9c 6e 42 00 01 	movl   $0x1,0x426e9c
40f88b:	00 00 00
40f88e:	ff 15 b0 c0 41 00    	call   *0x41c0b0
40f894:	eb 2c                	jmp    0x40f8c2
40f896:	83 f8 fd             	cmp    $0xfffffffd,%eax
40f899:	75 12                	jne    0x40f8ad
40f89b:	c7 05 9c 6e 42 00 01 	movl   $0x1,0x426e9c
40f8a2:	00 00 00
40f8a5:	ff 15 ac c0 41 00    	call   *0x41c0ac
40f8ab:	eb 15                	jmp    0x40f8c2
40f8ad:	83 f8 fc             	cmp    $0xfffffffc,%eax
40f8b0:	75 10                	jne    0x40f8c2
40f8b2:	8b 45 f4             	mov    -0xc(%ebp),%eax
40f8b5:	c7 05 9c 6e 42 00 01 	movl   $0x1,0x426e9c
40f8bc:	00 00 00
40f8bf:	8b 40 08             	mov    0x8(%eax),%eax
40f8c2:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
40f8c6:	74 0a                	je     0x40f8d2
40f8c8:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40f8cb:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
40f8d2:	c9                   	leave
40f8d3:	c3                   	ret
40f8d4:	8b ff                	mov    %edi,%edi
40f8d6:	55                   	push   %ebp
40f8d7:	8b ec                	mov    %esp,%ebp
40f8d9:	53                   	push   %ebx
40f8da:	8b 5d 08             	mov    0x8(%ebp),%ebx
40f8dd:	56                   	push   %esi
40f8de:	57                   	push   %edi
40f8df:	68 01 01 00 00       	push   $0x101
40f8e4:	33 ff                	xor    %edi,%edi
40f8e6:	8d 73 18             	lea    0x18(%ebx),%esi
40f8e9:	57                   	push   %edi
40f8ea:	56                   	push   %esi
40f8eb:	e8 20 98 ff ff       	call   0x409110
40f8f0:	89 7b 04             	mov    %edi,0x4(%ebx)
40f8f3:	33 c0                	xor    %eax,%eax
40f8f5:	89 7b 08             	mov    %edi,0x8(%ebx)
40f8f8:	83 c4 0c             	add    $0xc,%esp
40f8fb:	89 bb 1c 02 00 00    	mov    %edi,0x21c(%ebx)
40f901:	b9 01 01 00 00       	mov    $0x101,%ecx
40f906:	8d 7b 0c             	lea    0xc(%ebx),%edi
40f909:	ab                   	stos   %eax,%es:(%edi)
40f90a:	ab                   	stos   %eax,%es:(%edi)
40f90b:	ab                   	stos   %eax,%es:(%edi)
40f90c:	bf 60 60 42 00       	mov    $0x426060,%edi
40f911:	2b fb                	sub    %ebx,%edi
40f913:	8a 04 37             	mov    (%edi,%esi,1),%al
40f916:	88 06                	mov    %al,(%esi)
40f918:	46                   	inc    %esi
40f919:	83 e9 01             	sub    $0x1,%ecx
40f91c:	75 f5                	jne    0x40f913
40f91e:	8d 8b 19 01 00 00    	lea    0x119(%ebx),%ecx
40f924:	ba 00 01 00 00       	mov    $0x100,%edx
40f929:	8a 04 39             	mov    (%ecx,%edi,1),%al