40b6b2:	85 c0                	test   %eax,%eax
40b6b4:	75 07                	jne    0x40b6bd
40b6b6:	c7 46 10 fe ff ff ff 	movl   $0xfffffffe,0x10(%esi)
40b6bd:	83 c6 38             	add    $0x38,%esi
40b6c0:	47                   	inc    %edi
40b6c1:	81 fe 08 31 42 00    	cmp    $0x423108,%esi
40b6c7:	75 af                	jne    0x40b678
40b6c9:	5f                   	pop    %edi
40b6ca:	33 c0                	xor    %eax,%eax
40b6cc:	5e                   	pop    %esi
40b6cd:	c3                   	ret
40b6ce:	8b ff                	mov    %edi,%edi
40b6d0:	55                   	push   %ebp
40b6d1:	8b ec                	mov    %esp,%ebp
40b6d3:	6b 45 08 38          	imul   $0x38,0x8(%ebp),%eax
40b6d7:	05 60 30 42 00       	add    $0x423060,%eax
40b6dc:	5d                   	pop    %ebp
40b6dd:	c3                   	ret
40b6de:	8b ff                	mov    %edi,%edi
40b6e0:	56                   	push   %esi
40b6e1:	e8 ed 24 00 00       	call   0x40dbd3
40b6e6:	e8 df 7c 00 00       	call   0x4133ca
40b6eb:	33 f6                	xor    %esi,%esi
40b6ed:	a1 a8 41 42 00       	mov    0x4241a8,%eax
40b6f2:	ff 34 06             	push   (%esi,%eax,1)
40b6f5:	e8 ee 23 00 00       	call   0x40dae8
40b6fa:	a1 a8 41 42 00       	mov    0x4241a8,%eax
40b6ff:	59                   	pop    %ecx
40b700:	8b 04 06             	mov    (%esi,%eax,1),%eax
40b703:	83 c0 20             	add    $0x20,%eax
40b706:	50                   	push   %eax
40b707:	ff 15 40 b0 41 00    	call   *0x41b040
40b70d:	83 c6 04             	add    $0x4,%esi
40b710:	83 fe 0c             	cmp    $0xc,%esi
40b713:	75 d8                	jne    0x40b6ed
40b715:	ff 35 a8 41 42 00    	push   0x4241a8
40b71b:	e8 04 e1 ff ff       	call   0x409824
40b720:	83 25 a8 41 42 00 00 	andl   $0x0,0x4241a8
40b727:	59                   	pop    %ecx
40b728:	5e                   	pop    %esi
40b729:	c3                   	ret
40b72a:	8b ff                	mov    %edi,%edi
40b72c:	55                   	push   %ebp
40b72d:	8b ec                	mov    %esp,%ebp
40b72f:	8b 45 08             	mov    0x8(%ebp),%eax
40b732:	83 c0 20             	add    $0x20,%eax
40b735:	50                   	push   %eax
40b736:	ff 15 2c b0 41 00    	call   *0x41b02c
40b73c:	5d                   	pop    %ebp
40b73d:	c3                   	ret
40b73e:	8b ff                	mov    %edi,%edi
40b740:	55                   	push   %ebp
40b741:	8b ec                	mov    %esp,%ebp
40b743:	8b 45 08             	mov    0x8(%ebp),%eax
40b746:	83 c0 20             	add    $0x20,%eax
40b749:	50                   	push   %eax
40b74a:	ff 15 34 b0 41 00    	call   *0x41b034
40b750:	5d                   	pop    %ebp
40b751:	c3                   	ret
40b752:	8b 0d 0c 30 42 00    	mov    0x42300c,%ecx
40b758:	33 c0                	xor    %eax,%eax
40b75a:	83 c9 01             	or     $0x1,%ecx
40b75d:	39 0d b0 41 42 00    	cmp    %ecx,0x4241b0
40b763:	0f 94 c0             	sete   %al
40b766:	c3                   	ret
40b767:	8b ff                	mov    %edi,%edi
40b769:	55                   	push   %ebp
40b76a:	8b ec                	mov    %esp,%ebp
40b76c:	56                   	push   %esi
40b76d:	8b 75 08             	mov    0x8(%ebp),%esi
40b770:	56                   	push   %esi
40b771:	e8 6a fe ff ff       	call   0x40b5e0
40b776:	50                   	push   %eax
40b777:	e8 ee 7c 00 00       	call   0x41346a
40b77c:	59                   	pop    %ecx
40b77d:	59                   	pop    %ecx
40b77e:	85 c0                	test   %eax,%eax
40b780:	75 07                	jne    0x40b789
40b782:	32 c0                	xor    %al,%al
40b784:	e9 90 00 00 00       	jmp    0x40b819
40b789:	53                   	push   %ebx
40b78a:	57                   	push   %edi
40b78b:	6a 01                	push   $0x1
40b78d:	e8 3c ff ff ff       	call   0x40b6ce
40b792:	59                   	pop    %ecx
40b793:	6a 02                	push   $0x2
40b795:	5b                   	pop    %ebx
40b796:	3b f0                	cmp    %eax,%esi
40b798:	75 07                	jne    0x40b7a1
40b79a:	bf b4 41 42 00       	mov    $0x4241b4,%edi
40b79f:	eb 10                	jmp    0x40b7b1
40b7a1:	53                   	push   %ebx
40b7a2:	e8 27 ff ff ff       	call   0x40b6ce
40b7a7:	59                   	pop    %ecx
40b7a8:	3b f0                	cmp    %eax,%esi
40b7aa:	75 69                	jne    0x40b815
40b7ac:	bf b8 41 42 00       	mov    $0x4241b8,%edi
40b7b1:	ff 05 ac 41 42 00    	incl   0x4241ac
40b7b7:	8d 4e 0c             	lea    0xc(%esi),%ecx
40b7ba:	8b 01                	mov    (%ecx),%eax
40b7bc:	a9 c0 04 00 00       	test   $0x4c0,%eax
40b7c1:	75 52                	jne    0x40b815
40b7c3:	b8 82 02 00 00       	mov    $0x282,%eax
40b7c8:	f0 09 01             	lock or %eax,(%ecx)
40b7cb:	8b 07                	mov    (%edi),%eax
40b7cd:	85 c0                	test   %eax,%eax
40b7cf:	75 2b                	jne    0x40b7fc
40b7d1:	68 00 10 00 00       	push   $0x1000
40b7d6:	e8 83 e0 ff ff       	call   0x40985e
40b7db:	6a 00                	push   $0x0
40b7dd:	89 07                	mov    %eax,(%edi)
40b7df:	e8 40 e0 ff ff       	call   0x409824
40b7e4:	8b 07                	mov    (%edi),%eax
40b7e6:	59                   	pop    %ecx
40b7e7:	59                   	pop    %ecx
40b7e8:	85 c0                	test   %eax,%eax
40b7ea:	75 10                	jne    0x40b7fc
40b7ec:	8d 4e 14             	lea    0x14(%esi),%ecx
40b7ef:	89 5e 08             	mov    %ebx,0x8(%esi)
40b7f2:	89 4e 04             	mov    %ecx,0x4(%esi)
40b7f5:	89 0e                	mov    %ecx,(%esi)
40b7f7:	89 5e 18             	mov    %ebx,0x18(%esi)
40b7fa:	eb 15                	jmp    0x40b811
40b7fc:	89 46 04             	mov    %eax,0x4(%esi)
40b7ff:	8b 07                	mov    (%edi),%eax
40b801:	89 06                	mov    %eax,(%esi)
40b803:	c7 46 08 00 10 00 00 	movl   $0x1000,0x8(%esi)
40b80a:	c7 46 18 00 10 00 00 	movl   $0x1000,0x18(%esi)
40b811:	b0 01                	mov    $0x1,%al
40b813:	eb 02                	jmp    0x40b817
40b815:	32 c0                	xor    %al,%al
40b817:	5f                   	pop    %edi
40b818:	5b                   	pop    %ebx
40b819:	5e                   	pop    %esi
40b81a:	5d                   	pop    %ebp
40b81b:	c3                   	ret
40b81c:	8b ff                	mov    %edi,%edi
40b81e:	55                   	push   %ebp
40b81f:	8b ec                	mov    %esp,%ebp
40b821:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
40b825:	74 2c                	je     0x40b853
40b827:	56                   	push   %esi
40b828:	8b 75 0c             	mov    0xc(%ebp),%esi
40b82b:	57                   	push   %edi
40b82c:	8d 7e 0c             	lea    0xc(%esi),%edi
40b82f:	8b 07                	mov    (%edi),%eax
40b831:	c1 e8 09             	shr    $0x9,%eax
40b834:	a8 01                	test   $0x1,%al
40b836:	74 19                	je     0x40b851
40b838:	56                   	push   %esi
40b839:	e8 e8 22 00 00       	call   0x40db26
40b83e:	59                   	pop    %ecx
40b83f:	b8 7f fd ff ff       	mov    $0xfffffd7f,%eax
40b844:	f0 21 07             	lock and %eax,(%edi)
40b847:	33 c0                	xor    %eax,%eax
40b849:	89 46 18             	mov    %eax,0x18(%esi)
40b84c:	89 46 04             	mov    %eax,0x4(%esi)
40b84f:	89 06                	mov    %eax,(%esi)
40b851:	5f                   	pop    %edi
40b852:	5e                   	pop    %esi
40b853:	5d                   	pop    %ebp
40b854:	c3                   	ret
40b855:	8b ff                	mov    %edi,%edi
40b857:	55                   	push   %ebp
40b858:	8b ec                	mov    %esp,%ebp
40b85a:	83 ec 48             	sub    $0x48,%esp
40b85d:	8d 45 b8             	lea    -0x48(%ebp),%eax
40b860:	50                   	push   %eax
40b861:	ff 15 c4 b0 41 00    	call   *0x41b0c4
40b867:	66 83 7d ea 00       	cmpw   $0x0,-0x16(%ebp)
40b86c:	0f 84 95 00 00 00    	je     0x40b907
40b872:	8b 45 ec             	mov    -0x14(%ebp),%eax
40b875:	85 c0                	test   %eax,%eax
40b877:	0f 84 8a 00 00 00    	je     0x40b907
40b87d:	53                   	push   %ebx
40b87e:	56                   	push   %esi
40b87f:	8b 30                	mov    (%eax),%esi
40b881:	8d 58 04             	lea    0x4(%eax),%ebx
40b884:	8d 04 33             	lea    (%ebx,%esi,1),%eax
40b887:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b88a:	b8 00 20 00 00       	mov    $0x2000,%eax
40b88f:	3b f0                	cmp    %eax,%esi
40b891:	7c 02                	jl     0x40b895
40b893:	8b f0                	mov    %eax,%esi
40b895:	56                   	push   %esi
40b896:	e8 85 0a 00 00       	call   0x40c320
40b89b:	a1 c0 43 42 00       	mov    0x4243c0,%eax
40b8a0:	59                   	pop    %ecx
40b8a1:	3b f0                	cmp    %eax,%esi
40b8a3:	7e 02                	jle    0x40b8a7
40b8a5:	8b f0                	mov    %eax,%esi
40b8a7:	57                   	push   %edi
40b8a8:	33 ff                	xor    %edi,%edi
40b8aa:	85 f6                	test   %esi,%esi
40b8ac:	74 56                	je     0x40b904
40b8ae:	8b 45 fc             	mov    -0x4(%ebp),%eax
40b8b1:	8b 08                	mov    (%eax),%ecx
40b8b3:	83 f9 ff             	cmp    $0xffffffff,%ecx
40b8b6:	74 40                	je     0x40b8f8
40b8b8:	83 f9 fe             	cmp    $0xfffffffe,%ecx
40b8bb:	74 3b                	je     0x40b8f8
40b8bd:	8a 13                	mov    (%ebx),%dl
40b8bf:	f6 c2 01             	test   $0x1,%dl
40b8c2:	74 34                	je     0x40b8f8
40b8c4:	f6 c2 08             	test   $0x8,%dl
40b8c7:	75 0b                	jne    0x40b8d4
40b8c9:	51                   	push   %ecx
40b8ca:	ff 15 14 b1 41 00    	call   *0x41b114
40b8d0:	85 c0                	test   %eax,%eax
40b8d2:	74 21                	je     0x40b8f5
40b8d4:	8b c7                	mov    %edi,%eax
40b8d6:	8b cf                	mov    %edi,%ecx
40b8d8:	83 e0 3f             	and    $0x3f,%eax
40b8db:	c1 f9 06             	sar    $0x6,%ecx
40b8de:	6b d0 30             	imul   $0x30,%eax,%edx
40b8e1:	8b 45 fc             	mov    -0x4(%ebp),%eax
40b8e4:	03 14 8d c0 41 42 00 	add    0x4241c0(,%ecx,4),%edx
40b8eb:	8b 00                	mov    (%eax),%eax
40b8ed:	89 42 18             	mov    %eax,0x18(%edx)
40b8f0:	8a 03                	mov    (%ebx),%al
40b8f2:	88 42 28             	mov    %al,0x28(%edx)
40b8f5:	8b 45 fc             	mov    -0x4(%ebp),%eax
40b8f8:	47                   	inc    %edi
40b8f9:	83 c0 04             	add    $0x4,%eax
40b8fc:	43                   	inc    %ebx
40b8fd:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b900:	3b fe                	cmp    %esi,%edi
40b902:	75 ad                	jne    0x40b8b1
40b904:	5f                   	pop    %edi
40b905:	5e                   	pop    %esi
40b906:	5b                   	pop    %ebx
40b907:	8b e5                	mov    %ebp,%esp
40b909:	5d                   	pop    %ebp
40b90a:	c3                   	ret
40b90b:	8b ff                	mov    %edi,%edi
40b90d:	53                   	push   %ebx
40b90e:	56                   	push   %esi
40b90f:	57                   	push   %edi
40b910:	33 ff                	xor    %edi,%edi
40b912:	8b c7                	mov    %edi,%eax
40b914:	8b cf                	mov    %edi,%ecx
40b916:	83 e0 3f             	and    $0x3f,%eax
40b919:	c1 f9 06             	sar    $0x6,%ecx
40b91c:	6b f0 30             	imul   $0x30,%eax,%esi
40b91f:	03 34 8d c0 41 42 00 	add    0x4241c0(,%ecx,4),%esi
40b926:	83 7e 18 ff          	cmpl   $0xffffffff,0x18(%esi)
40b92a:	74 0c                	je     0x40b938
40b92c:	83 7e 18 fe          	cmpl   $0xfffffffe,0x18(%esi)
40b930:	74 06                	je     0x40b938
40b932:	80 4e 28 80          	orb    $0x80,0x28(%esi)
40b936:	eb 7b                	jmp    0x40b9b3
40b938:	8b c7                	mov    %edi,%eax
40b93a:	c6 46 28 81          	movb   $0x81,0x28(%esi)
40b93e:	83 e8 00             	sub    $0x0,%eax
40b941:	74 10                	je     0x40b953
40b943:	83 e8 01             	sub    $0x1,%eax
40b946:	74 07                	je     0x40b94f
40b948:	6a f4                	push   $0xfffffff4
40b94a:	83 e8 01             	sub    $0x1,%eax
40b94d:	eb 06                	jmp    0x40b955
40b94f:	6a f5                	push   $0xfffffff5
40b951:	eb 02                	jmp    0x40b955
40b953:	6a f6                	push   $0xfffffff6
40b955:	58                   	pop    %eax
40b956:	50                   	push   %eax
40b957:	ff 15 34 b1 41 00    	call   *0x41b134
40b95d:	8b d8                	mov    %eax,%ebx
40b95f:	83 fb ff             	cmp    $0xffffffff,%ebx
40b962:	74 0d                	je     0x40b971
40b964:	85 db                	test   %ebx,%ebx
40b966:	74 09                	je     0x40b971
40b968:	53                   	push   %ebx
40b969:	ff 15 14 b1 41 00    	call   *0x41b114
40b96f:	eb 02                	jmp    0x40b973
40b971:	33 c0                	xor    %eax,%eax
40b973:	85 c0                	test   %eax,%eax
40b975:	74 1e                	je     0x40b995
40b977:	25 ff 00 00 00       	and    $0xff,%eax
40b97c:	89 5e 18             	mov    %ebx,0x18(%esi)
40b97f:	83 f8 02             	cmp    $0x2,%eax
40b982:	75 06                	jne    0x40b98a
40b984:	80 4e 28 40          	orb    $0x40,0x28(%esi)
40b988:	eb 29                	jmp    0x40b9b3
40b98a:	83 f8 03             	cmp    $0x3,%eax
40b98d:	75 24                	jne    0x40b9b3
40b98f:	80 4e 28 08          	orb    $0x8,0x28(%esi)
40b993:	eb 1e                	jmp    0x40b9b3
40b995:	80 4e 28 40          	orb    $0x40,0x28(%esi)
40b999:	c7 46 18 fe ff ff ff 	movl   $0xfffffffe,0x18(%esi)
40b9a0:	a1 a8 41 42 00       	mov    0x4241a8,%eax
40b9a5:	85 c0                	test   %eax,%eax
40b9a7:	74 0a                	je     0x40b9b3
40b9a9:	8b 04 b8             	mov    (%eax,%edi,4),%eax
40b9ac:	c7 40 10 fe ff ff ff 	movl   $0xfffffffe,0x10(%eax)
40b9b3:	47                   	inc    %edi
40b9b4:	83 ff 03             	cmp    $0x3,%edi
40b9b7:	0f 85 55 ff ff ff    	jne    0x40b912
40b9bd:	5f                   	pop    %edi
40b9be:	5e                   	pop    %esi
40b9bf:	5b                   	pop    %ebx
40b9c0:	c3                   	ret
40b9c1:	6a 0c                	push   $0xc
40b9c3:	68 20 1d 42 00       	push   $0x421d20
40b9c8:	e8 83 81 ff ff       	call   0x403b50
40b9cd:	6a 07                	push   $0x7
40b9cf:	e8 d1 34 00 00       	call   0x40eea5
40b9d4:	59                   	pop    %ecx
40b9d5:	33 db                	xor    %ebx,%ebx
40b9d7:	88 5d e7             	mov    %bl,-0x19(%ebp)
40b9da:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40b9dd:	53                   	push   %ebx
40b9de:	e8 3d 09 00 00       	call   0x40c320
40b9e3:	59                   	pop    %ecx
40b9e4:	85 c0                	test   %eax,%eax
40b9e6:	75 0f                	jne    0x40b9f7
40b9e8:	e8 68 fe ff ff       	call   0x40b855
40b9ed:	e8 19 ff ff ff       	call   0x40b90b
40b9f2:	b3 01                	mov    $0x1,%bl
40b9f4:	88 5d e7             	mov    %bl,-0x19(%ebp)
40b9f7:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40b9fe:	e8 0b 00 00 00       	call   0x40ba0e
40ba03:	8a c3                	mov    %bl,%al
40ba05:	e8 8c 81 ff ff       	call   0x403b96
40ba0a:	c3                   	ret
40ba0b:	8a 5d e7             	mov    -0x19(%ebp),%bl
40ba0e:	6a 07                	push   $0x7
40ba10:	e8 d8 34 00 00       	call   0x40eeed
40ba15:	59                   	pop    %ecx
40ba16:	c3                   	ret
40ba17:	8b ff                	mov    %edi,%edi
40ba19:	56                   	push   %esi
40ba1a:	33 f6                	xor    %esi,%esi
40ba1c:	8b 86 c0 41 42 00    	mov    0x4241c0(%esi),%eax
40ba22:	85 c0                	test   %eax,%eax
40ba24:	74 0e                	je     0x40ba34
40ba26:	50                   	push   %eax
40ba27:	e8 bf 08 00 00       	call   0x40c2eb
40ba2c:	83 a6 c0 41 42 00 00 	andl   $0x0,0x4241c0(%esi)
40ba33:	59                   	pop    %ecx
40ba34:	83 c6 04             	add    $0x4,%esi
40ba37:	81 fe 00 02 00 00    	cmp    $0x200,%esi
40ba3d:	72 dd                	jb     0x40ba1c
40ba3f:	b0 01                	mov    $0x1,%al
40ba41:	5e                   	pop    %esi
40ba42:	c3                   	ret
40ba43:	8b ff                	mov    %edi,%edi
40ba45:	55                   	push   %ebp
40ba46:	8b ec                	mov    %esp,%ebp
40ba48:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ba4b:	0f b7 01             	movzwl (%ecx),%eax