40c62c:	eb d9                	jmp    0x40c607
40c62e:	68 b4 23 42 00       	push   $0x4223b4
40c633:	56                   	push   %esi
40c634:	e8 a2 fb ff ff       	call   0x40c1db
40c639:	6a 00                	push   $0x0
40c63b:	e8 5f e1 ff ff       	call   0x40a79f
40c640:	83 c4 0c             	add    $0xc,%esp
40c643:	69 7d 0c 64 03 00 00 	imul   $0x364,0xc(%ebp),%edi
40c64a:	03 fe                	add    %esi,%edi
40c64c:	8b c7                	mov    %edi,%eax
40c64e:	5f                   	pop    %edi
40c64f:	5e                   	pop    %esi
40c650:	5d                   	pop    %ebp
40c651:	c3                   	ret
40c652:	68 74 c2 40 00       	push   $0x40c274
40c657:	e8 b8 e3 ff ff       	call   0x40aa14
40c65c:	a3 20 12 42 00       	mov    %eax,0x421220
40c661:	83 f8 ff             	cmp    $0xffffffff,%eax
40c664:	75 03                	jne    0x40c669
40c666:	32 c0                	xor    %al,%al
40c668:	c3                   	ret
40c669:	e8 90 fe ff ff       	call   0x40c4fe
40c66e:	85 c0                	test   %eax,%eax
40c670:	75 09                	jne    0x40c67b
40c672:	50                   	push   %eax
40c673:	e8 06 00 00 00       	call   0x40c67e
40c678:	59                   	pop    %ecx
40c679:	eb eb                	jmp    0x40c666
40c67b:	b0 01                	mov    $0x1,%al
40c67d:	c3                   	ret
40c67e:	a1 20 12 42 00       	mov    0x421220,%eax
40c683:	83 f8 ff             	cmp    $0xffffffff,%eax
40c686:	74 0d                	je     0x40c695
40c688:	50                   	push   %eax
40c689:	e8 c5 e3 ff ff       	call   0x40aa53
40c68e:	83 0d 20 12 42 00 ff 	orl    $0xffffffff,0x421220
40c695:	b0 01                	mov    $0x1,%al
40c697:	c3                   	ret
40c698:	6a 0c                	push   $0xc
40c69a:	68 68 01 42 00       	push   $0x420168
40c69f:	e8 fc 77 ff ff       	call   0x403ea0
40c6a4:	33 ff                	xor    %edi,%edi
40c6a6:	8b 75 08             	mov    0x8(%ebp),%esi
40c6a9:	89 3e                	mov    %edi,(%esi)
40c6ab:	6a 08                	push   $0x8
40c6ad:	e8 da 18 00 00       	call   0x40df8c
40c6b2:	59                   	pop    %ecx
40c6b3:	89 7d fc             	mov    %edi,-0x4(%ebp)
40c6b6:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40c6b9:	50                   	push   %eax
40c6ba:	e8 7d 00 00 00       	call   0x40c73c
40c6bf:	59                   	pop    %ecx
40c6c0:	8b 00                	mov    (%eax),%eax
40c6c2:	89 06                	mov    %eax,(%esi)
40c6c4:	85 c0                	test   %eax,%eax
40c6c6:	74 0f                	je     0x40c6d7
40c6c8:	89 78 08             	mov    %edi,0x8(%eax)
40c6cb:	89 78 1c             	mov    %edi,0x1c(%eax)
40c6ce:	89 38                	mov    %edi,(%eax)
40c6d0:	89 78 04             	mov    %edi,0x4(%eax)
40c6d3:	83 48 10 ff          	orl    $0xffffffff,0x10(%eax)
40c6d7:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40c6de:	e8 15 00 00 00       	call   0x40c6f8
40c6e3:	8b c6                	mov    %esi,%eax
40c6e5:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40c6e8:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c6ef:	59                   	pop    %ecx
40c6f0:	5f                   	pop    %edi
40c6f1:	5e                   	pop    %esi
40c6f2:	5b                   	pop    %ebx
40c6f3:	c9                   	leave
40c6f4:	c3                   	ret
40c6f5:	8b 75 08             	mov    0x8(%ebp),%esi
40c6f8:	6a 08                	push   $0x8
40c6fa:	e8 d5 18 00 00       	call   0x40dfd4
40c6ff:	59                   	pop    %ecx
40c700:	c3                   	ret
40c701:	8b ff                	mov    %edi,%edi
40c703:	55                   	push   %ebp
40c704:	8b ec                	mov    %esp,%ebp
40c706:	8b 45 08             	mov    0x8(%ebp),%eax
40c709:	33 c9                	xor    %ecx,%ecx
40c70b:	89 08                	mov    %ecx,(%eax)
40c70d:	8b 45 08             	mov    0x8(%ebp),%eax
40c710:	89 48 04             	mov    %ecx,0x4(%eax)
40c713:	8b 45 08             	mov    0x8(%ebp),%eax
40c716:	89 48 08             	mov    %ecx,0x8(%eax)
40c719:	8b 45 08             	mov    0x8(%ebp),%eax
40c71c:	83 48 10 ff          	orl    $0xffffffff,0x10(%eax)
40c720:	8b 45 08             	mov    0x8(%ebp),%eax
40c723:	89 48 14             	mov    %ecx,0x14(%eax)
40c726:	8b 45 08             	mov    0x8(%ebp),%eax
40c729:	89 48 18             	mov    %ecx,0x18(%eax)
40c72c:	8b 45 08             	mov    0x8(%ebp),%eax
40c72f:	89 48 1c             	mov    %ecx,0x1c(%eax)
40c732:	8b 45 08             	mov    0x8(%ebp),%eax
40c735:	83 c0 0c             	add    $0xc,%eax
40c738:	87 08                	xchg   %ecx,(%eax)
40c73a:	5d                   	pop    %ebp
40c73b:	c3                   	ret
40c73c:	8b ff                	mov    %edi,%edi
40c73e:	55                   	push   %ebp
40c73f:	8b ec                	mov    %esp,%ebp
40c741:	51                   	push   %ecx
40c742:	53                   	push   %ebx
40c743:	8b 1d 3c 1e 42 00    	mov    0x421e3c,%ebx
40c749:	56                   	push   %esi
40c74a:	57                   	push   %edi
40c74b:	8b 3d 40 1e 42 00    	mov    0x421e40,%edi
40c751:	83 c7 0c             	add    $0xc,%edi
40c754:	83 c3 fd             	add    $0xfffffffd,%ebx
40c757:	8d 1c 9f             	lea    (%edi,%ebx,4),%ebx
40c75a:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40c75d:	eb 42                	jmp    0x40c7a1
40c75f:	8b 37                	mov    (%edi),%esi
40c761:	85 f6                	test   %esi,%esi
40c763:	74 52                	je     0x40c7b7
40c765:	8b 46 0c             	mov    0xc(%esi),%eax
40c768:	90                   	nop
40c769:	c1 e8 0d             	shr    $0xd,%eax
40c76c:	a8 01                	test   $0x1,%al
40c76e:	75 2e                	jne    0x40c79e
40c770:	56                   	push   %esi
40c771:	e8 71 9f ff ff       	call   0x4066e7
40c776:	59                   	pop    %ecx
40c777:	8d 56 0c             	lea    0xc(%esi),%edx
40c77a:	bb 00 20 00 00       	mov    $0x2000,%ebx
40c77f:	8b 02                	mov    (%edx),%eax
40c781:	8b c8                	mov    %eax,%ecx
40c783:	0b cb                	or     %ebx,%ecx
40c785:	f0 0f b1 0a          	lock cmpxchg %ecx,(%edx)
40c789:	75 f6                	jne    0x40c781
40c78b:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40c78e:	c1 e8 0d             	shr    $0xd,%eax
40c791:	f6 d0                	not    %al
40c793:	a8 01                	test   $0x1,%al
40c795:	75 19                	jne    0x40c7b0
40c797:	56                   	push   %esi
40c798:	e8 5e 9f ff ff       	call   0x4066fb
40c79d:	59                   	pop    %ecx
40c79e:	83 c7 04             	add    $0x4,%edi
40c7a1:	3b fb                	cmp    %ebx,%edi
40c7a3:	75 ba                	jne    0x40c75f
40c7a5:	8b 45 08             	mov    0x8(%ebp),%eax
40c7a8:	83 20 00             	andl   $0x0,(%eax)
40c7ab:	5f                   	pop    %edi
40c7ac:	5e                   	pop    %esi
40c7ad:	5b                   	pop    %ebx
40c7ae:	c9                   	leave
40c7af:	c3                   	ret
40c7b0:	8b 45 08             	mov    0x8(%ebp),%eax
40c7b3:	89 30                	mov    %esi,(%eax)
40c7b5:	eb f4                	jmp    0x40c7ab
40c7b7:	6a 38                	push   $0x38
40c7b9:	6a 01                	push   $0x1
40c7bb:	e8 82 df ff ff       	call   0x40a742
40c7c0:	6a 00                	push   $0x0
40c7c2:	89 07                	mov    %eax,(%edi)
40c7c4:	e8 d6 df ff ff       	call   0x40a79f
40c7c9:	8b 07                	mov    (%edi),%eax
40c7cb:	83 c4 0c             	add    $0xc,%esp
40c7ce:	85 c0                	test   %eax,%eax
40c7d0:	74 d3                	je     0x40c7a5
40c7d2:	83 48 10 ff          	orl    $0xffffffff,0x10(%eax)
40c7d6:	8b 07                	mov    (%edi),%eax
40c7d8:	6a 00                	push   $0x0
40c7da:	68 a0 0f 00 00       	push   $0xfa0
40c7df:	83 c0 20             	add    $0x20,%eax
40c7e2:	50                   	push   %eax
40c7e3:	e8 2b e3 ff ff       	call   0x40ab13
40c7e8:	8b 37                	mov    (%edi),%esi
40c7ea:	b9 00 20 00 00       	mov    $0x2000,%ecx
40c7ef:	8d 46 0c             	lea    0xc(%esi),%eax
40c7f2:	f0 09 08             	lock or %ecx,(%eax)
40c7f5:	56                   	push   %esi
40c7f6:	e8 ec 9e ff ff       	call   0x4066e7
40c7fb:	59                   	pop    %ecx
40c7fc:	eb b2                	jmp    0x40c7b0
40c7fe:	8b ff                	mov    %edi,%edi
40c800:	55                   	push   %ebp
40c801:	8b ec                	mov    %esp,%ebp
40c803:	51                   	push   %ecx
40c804:	53                   	push   %ebx
40c805:	56                   	push   %esi
40c806:	8b 75 08             	mov    0x8(%ebp),%esi
40c809:	33 c0                	xor    %eax,%eax
40c80b:	57                   	push   %edi
40c80c:	8b fe                	mov    %esi,%edi
40c80e:	6a 02                	push   $0x2
40c810:	5a                   	pop    %edx
40c811:	6a 20                	push   $0x20
40c813:	ab                   	stos   %eax,%es:(%edi)
40c814:	5b                   	pop    %ebx
40c815:	ab                   	stos   %eax,%es:(%edi)
40c816:	ab                   	stos   %eax,%es:(%edi)
40c817:	8b 7d 0c             	mov    0xc(%ebp),%edi
40c81a:	a1 a0 20 42 00       	mov    0x4220a0,%eax
40c81f:	89 46 04             	mov    %eax,0x4(%esi)
40c822:	0f b7 07             	movzwl (%edi),%eax
40c825:	8b c8                	mov    %eax,%ecx
40c827:	66 3b c3             	cmp    %bx,%ax
40c82a:	75 0c                	jne    0x40c838
40c82c:	03 fa                	add    %edx,%edi
40c82e:	0f b7 07             	movzwl (%edi),%eax
40c831:	66 3b c3             	cmp    %bx,%ax
40c834:	74 f6                	je     0x40c82c
40c836:	8b c8                	mov    %eax,%ecx
40c838:	0f b7 c1             	movzwl %cx,%eax
40c83b:	83 f8 61             	cmp    $0x61,%eax
40c83e:	74 20                	je     0x40c860
40c840:	83 f8 72             	cmp    $0x72,%eax
40c843:	74 12                	je     0x40c857
40c845:	66 83 f9 77          	cmp    $0x77,%cx
40c849:	0f 85 03 02 00 00    	jne    0x40ca52
40c84f:	c7 06 01 03 00 00    	movl   $0x301,(%esi)
40c855:	eb 0f                	jmp    0x40c866
40c857:	c7 46 04 01 00 00 00 	movl   $0x1,0x4(%esi)
40c85e:	eb 09                	jmp    0x40c869
40c860:	c7 06 09 01 00 00    	movl   $0x109,(%esi)
40c866:	89 56 04             	mov    %edx,0x4(%esi)
40c869:	03 fa                	add    %edx,%edi
40c86b:	b1 01                	mov    $0x1,%cl
40c86d:	33 c0                	xor    %eax,%eax
40c86f:	6a 0a                	push   $0xa
40c871:	88 45 ff             	mov    %al,-0x1(%ebp)
40c874:	8a d8                	mov    %al,%bl
40c876:	88 45 fe             	mov    %al,-0x2(%ebp)
40c879:	8a f8                	mov    %al,%bh
40c87b:	5a                   	pop    %edx
40c87c:	0f b7 07             	movzwl (%edi),%eax
40c87f:	66 85 c0             	test   %ax,%ax
40c882:	0f 84 dc 00 00 00    	je     0x40c964
40c888:	83 f8 53             	cmp    $0x53,%eax
40c88b:	77 65                	ja     0x40c8f2
40c88d:	74 56                	je     0x40c8e5
40c88f:	83 e8 20             	sub    $0x20,%eax
40c892:	0f 84 b8 00 00 00    	je     0x40c950
40c898:	83 e8 0b             	sub    $0xb,%eax
40c89b:	74 3b                	je     0x40c8d8
40c89d:	83 e8 01             	sub    $0x1,%eax
40c8a0:	74 30                	je     0x40c8d2
40c8a2:	83 e8 18             	sub    $0x18,%eax
40c8a5:	74 23                	je     0x40c8ca
40c8a7:	2b c2                	sub    %edx,%eax
40c8a9:	74 12                	je     0x40c8bd
40c8ab:	83 e8 04             	sub    $0x4,%eax
40c8ae:	0f 85 9e 01 00 00    	jne    0x40ca52
40c8b4:	84 db                	test   %bl,%bl
40c8b6:	75 1c                	jne    0x40c8d4
40c8b8:	83 0e 10             	orl    $0x10,(%esi)
40c8bb:	eb 2f                	jmp    0x40c8ec
40c8bd:	81 0e 80 00 00 00    	orl    $0x80,(%esi)
40c8c3:	b1 01                	mov    $0x1,%cl
40c8c5:	e9 86 00 00 00       	jmp    0x40c950
40c8ca:	56                   	push   %esi
40c8cb:	e8 1c 02 00 00       	call   0x40caec
40c8d0:	eb 78                	jmp    0x40c94a
40c8d2:	b7 01                	mov    $0x1,%bh
40c8d4:	32 c9                	xor    %cl,%cl
40c8d6:	eb 78                	jmp    0x40c950
40c8d8:	8d 45 fe             	lea    -0x2(%ebp),%eax
40c8db:	50                   	push   %eax
40c8dc:	56                   	push   %esi
40c8dd:	e8 a8 02 00 00       	call   0x40cb8a
40c8e2:	59                   	pop    %ecx
40c8e3:	eb 65                	jmp    0x40c94a
40c8e5:	84 db                	test   %bl,%bl
40c8e7:	75 eb                	jne    0x40c8d4
40c8e9:	83 0e 20             	orl    $0x20,(%esi)
40c8ec:	b3 01                	mov    $0x1,%bl
40c8ee:	8a cb                	mov    %bl,%cl
40c8f0:	eb 5e                	jmp    0x40c950
40c8f2:	83 e8 54             	sub    $0x54,%eax
40c8f5:	74 4d                	je     0x40c944
40c8f7:	83 e8 0e             	sub    $0xe,%eax
40c8fa:	74 40                	je     0x40c93c
40c8fc:	83 e8 01             	sub    $0x1,%eax
40c8ff:	74 2f                	je     0x40c930
40c901:	83 e8 0b             	sub    $0xb,%eax
40c904:	74 1e                	je     0x40c924
40c906:	83 e8 06             	sub    $0x6,%eax
40c909:	74 11                	je     0x40c91c
40c90b:	83 e8 04             	sub    $0x4,%eax
40c90e:	0f 85 3e 01 00 00    	jne    0x40ca52
40c914:	56                   	push   %esi
40c915:	e8 c6 02 00 00       	call   0x40cbe0
40c91a:	eb 2e                	jmp    0x40c94a
40c91c:	56                   	push   %esi
40c91d:	e8 9e 02 00 00       	call   0x40cbc0
40c922:	eb 26                	jmp    0x40c94a
40c924:	8d 45 ff             	lea    -0x1(%ebp),%eax
40c927:	50                   	push   %eax
40c928:	56                   	push   %esi
40c929:	e8 3a 02 00 00       	call   0x40cb68
40c92e:	eb b2                	jmp    0x40c8e2
40c930:	8d 45 ff             	lea    -0x1(%ebp),%eax
40c933:	50                   	push   %eax
40c934:	56                   	push   %esi
40c935:	e8 0c 02 00 00       	call   0x40cb46
40c93a:	eb a6                	jmp    0x40c8e2
40c93c:	56                   	push   %esi
40c93d:	e8 e4 01 00 00       	call   0x40cb26
40c942:	eb 06                	jmp    0x40c94a
40c944:	56                   	push   %esi
40c945:	e8 bd 01 00 00       	call   0x40cb07
40c94a:	59                   	pop    %ecx
40c94b:	6a 0a                	push   $0xa
40c94d:	5a                   	pop    %edx
40c94e:	8a c8                	mov    %al,%cl
40c950:	0f b6 c1             	movzbl %cl,%eax
40c953:	f7 d8                	neg    %eax
40c955:	1b c0                	sbb    %eax,%eax
40c957:	83 e0 02             	and    $0x2,%eax
40c95a:	03 f8                	add    %eax,%edi
40c95c:	84 c9                	test   %cl,%cl
40c95e:	0f 85 18 ff ff ff    	jne    0x40c87c
40c964:	84 ff                	test   %bh,%bh
40c966:	74 03                	je     0x40c96b
40c968:	83 c7 02             	add    $0x2,%edi
40c96b:	6a 20                	push   $0x20
40c96d:	58                   	pop    %eax
40c96e:	eb 03                	jmp    0x40c973
40c970:	83 c7 02             	add    $0x2,%edi
40c973:	66 39 07             	cmp    %ax,(%edi)
40c976:	74 f8                	je     0x40c970
40c978:	84 ff                	test   %bh,%bh
40c97a:	75 14                	jne    0x40c990
40c97c:	33 c0                	xor    %eax,%eax
40c97e:	66 39 07             	cmp    %ax,(%edi)
40c981:	0f 85 cb 00 00 00    	jne    0x40ca52
40c987:	c6 46 08 01          	movb   $0x1,0x8(%esi)
40c98b:	e9 d2 00 00 00       	jmp    0x40ca62
40c990:	6a 03                	push   $0x3
40c992:	68 f0 ae 41 00       	push   $0x41aef0
40c997:	57                   	push   %edi
40c998:	e8 bb dc ff ff       	call   0x40a658
40c99d:	83 c4 0c             	add    $0xc,%esp
40c9a0:	85 c0                	test   %eax,%eax
40c9a2:	0f 85 aa 00 00 00    	jne    0x40ca52
40c9a8:	83 c7 06             	add    $0x6,%edi
40c9ab:	6a 20                	push   $0x20
40c9ad:	5b                   	pop    %ebx
40c9ae:	0f b7 07             	movzwl (%edi),%eax
40c9b1:	8b c8                	mov    %eax,%ecx
40c9b3:	66 3b c3             	cmp    %bx,%ax
40c9b6:	75 0d                	jne    0x40c9c5
40c9b8:	83 c7 02             	add    $0x2,%edi
40c9bb:	0f b7 07             	movzwl (%edi),%eax
40c9be:	66 3b c3             	cmp    %bx,%ax
40c9c1:	74 f5                	je     0x40c9b8