40e81a:	83 c4 0c             	add    $0xc,%esp
40e81d:	89 73 04             	mov    %esi,0x4(%ebx)
40e820:	89 73 08             	mov    %esi,0x8(%ebx)
40e823:	8d 7b 0c             	lea    0xc(%ebx),%edi
40e826:	89 b3 1c 02 00 00    	mov    %esi,0x21c(%ebx)
40e82c:	33 c0                	xor    %eax,%eax
40e82e:	ab                   	stos   %eax,%es:(%edi)
40e82f:	8b ce                	mov    %esi,%ecx
40e831:	ab                   	stos   %eax,%es:(%edi)
40e832:	ab                   	stos   %eax,%es:(%edi)
40e833:	8a 81 08 13 42 00    	mov    0x421308(%ecx),%al
40e839:	88 44 0b 18          	mov    %al,0x18(%ebx,%ecx,1)
40e83d:	41                   	inc    %ecx
40e83e:	81 f9 01 01 00 00    	cmp    $0x101,%ecx
40e844:	7c ed                	jl     0x40e833
40e846:	8a 86 09 14 42 00    	mov    0x421409(%esi),%al
40e84c:	88 84 33 19 01 00 00 	mov    %al,0x119(%ebx,%esi,1)
40e853:	46                   	inc    %esi
40e854:	81 fe 00 01 00 00    	cmp    $0x100,%esi
40e85a:	7c ea                	jl     0x40e846
40e85c:	5f                   	pop    %edi
40e85d:	5e                   	pop    %esi
40e85e:	5b                   	pop    %ebx
40e85f:	5d                   	pop    %ebp
40e860:	c3                   	ret
40e861:	8b ff                	mov    %edi,%edi
40e863:	55                   	push   %ebp
40e864:	8b ec                	mov    %esp,%ebp
40e866:	81 ec 20 07 00 00    	sub    $0x720,%esp
40e86c:	a1 c0 10 42 00       	mov    0x4210c0,%eax
40e871:	33 c5                	xor    %ebp,%eax
40e873:	89 45 fc             	mov    %eax,-0x4(%ebp)
40e876:	53                   	push   %ebx
40e877:	56                   	push   %esi
40e878:	57                   	push   %edi
40e879:	8b 7d 08             	mov    0x8(%ebp),%edi
40e87c:	81 7f 04 e9 fd 00 00 	cmpl   $0xfde9,0x4(%edi)
40e883:	0f 84 0c 01 00 00    	je     0x40e995
40e889:	8d 85 e8 f8 ff ff    	lea    -0x718(%ebp),%eax
40e88f:	50                   	push   %eax
40e890:	ff 77 04             	push   0x4(%edi)
40e893:	ff 15 0c 91 41 00    	call   *0x41910c
40e899:	85 c0                	test   %eax,%eax
40e89b:	0f 84 f4 00 00 00    	je     0x40e995
40e8a1:	33 db                	xor    %ebx,%ebx
40e8a3:	be 00 01 00 00       	mov    $0x100,%esi
40e8a8:	8b c3                	mov    %ebx,%eax
40e8aa:	88 84 05 fc fe ff ff 	mov    %al,-0x104(%ebp,%eax,1)
40e8b1:	40                   	inc    %eax
40e8b2:	3b c6                	cmp    %esi,%eax
40e8b4:	72 f4                	jb     0x40e8aa
40e8b6:	8a 85 ee f8 ff ff    	mov    -0x712(%ebp),%al
40e8bc:	8d 8d ee f8 ff ff    	lea    -0x712(%ebp),%ecx
40e8c2:	c6 85 fc fe ff ff 20 	movb   $0x20,-0x104(%ebp)
40e8c9:	eb 1f                	jmp    0x40e8ea
40e8cb:	0f b6 51 01          	movzbl 0x1(%ecx),%edx
40e8cf:	0f b6 c0             	movzbl %al,%eax
40e8d2:	eb 0d                	jmp    0x40e8e1
40e8d4:	3b c6                	cmp    %esi,%eax
40e8d6:	73 0d                	jae    0x40e8e5
40e8d8:	c6 84 05 fc fe ff ff 	movb   $0x20,-0x104(%ebp,%eax,1)
40e8df:	20
40e8e0:	40                   	inc    %eax
40e8e1:	3b c2                	cmp    %edx,%eax
40e8e3:	76 ef                	jbe    0x40e8d4
40e8e5:	83 c1 02             	add    $0x2,%ecx
40e8e8:	8a 01                	mov    (%ecx),%al
40e8ea:	84 c0                	test   %al,%al
40e8ec:	75 dd                	jne    0x40e8cb
40e8ee:	53                   	push   %ebx
40e8ef:	ff 77 04             	push   0x4(%edi)
40e8f2:	8d 85 fc f8 ff ff    	lea    -0x704(%ebp),%eax
40e8f8:	50                   	push   %eax
40e8f9:	56                   	push   %esi
40e8fa:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
40e900:	50                   	push   %eax
40e901:	6a 01                	push   $0x1
40e903:	53                   	push   %ebx
40e904:	e8 54 13 00 00       	call   0x40fc5d
40e909:	53                   	push   %ebx
40e90a:	ff 77 04             	push   0x4(%edi)
40e90d:	8d 85 fc fd ff ff    	lea    -0x204(%ebp),%eax
40e913:	56                   	push   %esi
40e914:	50                   	push   %eax
40e915:	56                   	push   %esi
40e916:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
40e91c:	50                   	push   %eax
40e91d:	56                   	push   %esi
40e91e:	ff b7 1c 02 00 00    	push   0x21c(%edi)
40e924:	53                   	push   %ebx
40e925:	e8 d5 64 00 00       	call   0x414dff
40e92a:	83 c4 40             	add    $0x40,%esp
40e92d:	8d 85 fc fc ff ff    	lea    -0x304(%ebp),%eax
40e933:	53                   	push   %ebx
40e934:	ff 77 04             	push   0x4(%edi)
40e937:	56                   	push   %esi
40e938:	50                   	push   %eax
40e939:	56                   	push   %esi
40e93a:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
40e940:	50                   	push   %eax
40e941:	68 00 02 00 00       	push   $0x200
40e946:	ff b7 1c 02 00 00    	push   0x21c(%edi)
40e94c:	53                   	push   %ebx
40e94d:	e8 ad 64 00 00       	call   0x414dff
40e952:	83 c4 24             	add    $0x24,%esp
40e955:	8d 47 19             	lea    0x19(%edi),%eax
40e958:	8b cb                	mov    %ebx,%ecx
40e95a:	0f b7 94 4d fc f8 ff 	movzwl -0x704(%ebp,%ecx,2),%edx
40e961:	ff
40e962:	f6 c2 01             	test   $0x1,%dl
40e965:	74 0c                	je     0x40e973
40e967:	80 08 10             	orb    $0x10,(%eax)
40e96a:	8a 94 0d fc fd ff ff 	mov    -0x204(%ebp,%ecx,1),%dl
40e971:	eb 13                	jmp    0x40e986
40e973:	f6 c2 02             	test   $0x2,%dl
40e976:	74 0c                	je     0x40e984
40e978:	80 08 20             	orb    $0x20,(%eax)
40e97b:	8a 94 0d fc fc ff ff 	mov    -0x304(%ebp,%ecx,1),%dl
40e982:	eb 02                	jmp    0x40e986
40e984:	8a d3                	mov    %bl,%dl
40e986:	41                   	inc    %ecx
40e987:	88 90 00 01 00 00    	mov    %dl,0x100(%eax)
40e98d:	40                   	inc    %eax
40e98e:	83 ee 01             	sub    $0x1,%esi
40e991:	75 c7                	jne    0x40e95a
40e993:	eb 62                	jmp    0x40e9f7
40e995:	6a a6                	push   $0xffffffa6
40e997:	58                   	pop    %eax
40e998:	6a 86                	push   $0xffffff86
40e99a:	5a                   	pop    %edx
40e99b:	2b d7                	sub    %edi,%edx
40e99d:	8d 4f 19             	lea    0x19(%edi),%ecx
40e9a0:	89 95 e4 f8 ff ff    	mov    %edx,-0x71c(%ebp)
40e9a6:	2b c7                	sub    %edi,%eax
40e9a8:	6a e7                	push   $0xffffffe7
40e9aa:	5a                   	pop    %edx
40e9ab:	2b d7                	sub    %edi,%edx
40e9ad:	89 85 e0 f8 ff ff    	mov    %eax,-0x720(%ebp)
40e9b3:	8b bd e4 f8 ff ff    	mov    -0x71c(%ebp),%edi
40e9b9:	33 db                	xor    %ebx,%ebx
40e9bb:	be 00 01 00 00       	mov    $0x100,%esi
40e9c0:	03 c1                	add    %ecx,%eax
40e9c2:	83 f8 19             	cmp    $0x19,%eax
40e9c5:	77 08                	ja     0x40e9cf
40e9c7:	80 09 10             	orb    $0x10,(%ecx)
40e9ca:	8d 41 20             	lea    0x20(%ecx),%eax
40e9cd:	eb 0e                	jmp    0x40e9dd
40e9cf:	8d 04 0f             	lea    (%edi,%ecx,1),%eax
40e9d2:	83 f8 19             	cmp    $0x19,%eax
40e9d5:	77 0a                	ja     0x40e9e1
40e9d7:	80 09 20             	orb    $0x20,(%ecx)
40e9da:	8d 41 e0             	lea    -0x20(%ecx),%eax
40e9dd:	02 c2                	add    %dl,%al
40e9df:	eb 02                	jmp    0x40e9e3
40e9e1:	8a c3                	mov    %bl,%al
40e9e3:	88 81 00 01 00 00    	mov    %al,0x100(%ecx)
40e9e9:	41                   	inc    %ecx
40e9ea:	8d 04 11             	lea    (%ecx,%edx,1),%eax
40e9ed:	3b c6                	cmp    %esi,%eax
40e9ef:	8b 85 e0 f8 ff ff    	mov    -0x720(%ebp),%eax
40e9f5:	72 c9                	jb     0x40e9c0
40e9f7:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40e9fa:	5f                   	pop    %edi
40e9fb:	5e                   	pop    %esi
40e9fc:	33 cd                	xor    %ebp,%ecx
40e9fe:	5b                   	pop    %ebx
40e9ff:	e8 c4 56 ff ff       	call   0x4040c8
40ea04:	c9                   	leave
40ea05:	c3                   	ret
40ea06:	8b ff                	mov    %edi,%edi
40ea08:	53                   	push   %ebx
40ea09:	8b dc                	mov    %esp,%ebx
40ea0b:	51                   	push   %ecx
40ea0c:	51                   	push   %ecx
40ea0d:	83 e4 f8             	and    $0xfffffff8,%esp
40ea10:	83 c4 04             	add    $0x4,%esp
40ea13:	55                   	push   %ebp
40ea14:	8b 6b 04             	mov    0x4(%ebx),%ebp
40ea17:	89 6c 24 04          	mov    %ebp,0x4(%esp)
40ea1b:	8b ec                	mov    %esp,%ebp
40ea1d:	81 ec 38 02 00 00    	sub    $0x238,%esp
40ea23:	56                   	push   %esi
40ea24:	57                   	push   %edi
40ea25:	ff 73 14             	push   0x14(%ebx)
40ea28:	ff 73 10             	push   0x10(%ebx)
40ea2b:	e8 2b 01 00 00       	call   0x40eb5b
40ea30:	ff 73 08             	push   0x8(%ebx)
40ea33:	e8 55 fd ff ff       	call   0x40e78d
40ea38:	8b 4b 10             	mov    0x10(%ebx),%ecx
40ea3b:	83 c4 0c             	add    $0xc,%esp
40ea3e:	89 45 f4             	mov    %eax,-0xc(%ebp)
40ea41:	8b 49 48             	mov    0x48(%ecx),%ecx
40ea44:	3b 41 04             	cmp    0x4(%ecx),%eax
40ea47:	75 07                	jne    0x40ea50
40ea49:	33 c0                	xor    %eax,%eax
40ea4b:	e9 02 01 00 00       	jmp    0x40eb52
40ea50:	68 20 02 00 00       	push   $0x220
40ea55:	e8 78 e5 ff ff       	call   0x40cfd2
40ea5a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ea5d:	59                   	pop    %ecx
40ea5e:	85 c0                	test   %eax,%eax
40ea60:	75 0e                	jne    0x40ea70
40ea62:	50                   	push   %eax
40ea63:	e8 37 bd ff ff       	call   0x40a79f
40ea68:	83 c8 ff             	or     $0xffffffff,%eax
40ea6b:	e9 e1 00 00 00       	jmp    0x40eb51
40ea70:	8b 73 10             	mov    0x10(%ebx),%esi
40ea73:	8d bd c8 fd ff ff    	lea    -0x238(%ebp),%edi
40ea79:	ba 88 00 00 00       	mov    $0x88,%edx
40ea7e:	8b ca                	mov    %edx,%ecx
40ea80:	50                   	push   %eax
40ea81:	8b 76 48             	mov    0x48(%esi),%esi
40ea84:	ff 75 f4             	push   -0xc(%ebp)
40ea87:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40ea89:	8b ca                	mov    %edx,%ecx
40ea8b:	8d b5 c8 fd ff ff    	lea    -0x238(%ebp),%esi
40ea91:	8b f8                	mov    %eax,%edi
40ea93:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40ea95:	83 20 00             	andl   $0x0,(%eax)
40ea98:	e8 b9 01 00 00       	call   0x40ec56
40ea9d:	8b f8                	mov    %eax,%edi
40ea9f:	83 ce ff             	or     $0xffffffff,%esi
40eaa2:	59                   	pop    %ecx
40eaa3:	59                   	pop    %ecx
40eaa4:	3b fe                	cmp    %esi,%edi
40eaa6:	75 1b                	jne    0x40eac3
40eaa8:	e8 82 bc ff ff       	call   0x40a72f
40eaad:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40eab3:	8b 45 fc             	mov    -0x4(%ebp),%eax
40eab6:	50                   	push   %eax
40eab7:	e8 e3 bc ff ff       	call   0x40a79f
40eabc:	8b c6                	mov    %esi,%eax
40eabe:	e9 8e 00 00 00       	jmp    0x40eb51
40eac3:	80 7b 0c 00          	cmpb   $0x0,0xc(%ebx)
40eac7:	75 05                	jne    0x40eace
40eac9:	e8 72 b4 ff ff       	call   0x409f40
40eace:	8b 43 10             	mov    0x10(%ebx),%eax
40ead1:	8b 40 48             	mov    0x48(%eax),%eax
40ead4:	f0 0f c1 30          	lock xadd %esi,(%eax)
40ead8:	4e                   	dec    %esi
40ead9:	75 15                	jne    0x40eaf0
40eadb:	8b 43 10             	mov    0x10(%ebx),%eax
40eade:	81 78 48 f0 12 42 00 	cmpl   $0x4212f0,0x48(%eax)
40eae5:	74 09                	je     0x40eaf0
40eae7:	ff 70 48             	push   0x48(%eax)
40eaea:	e8 b0 bc ff ff       	call   0x40a79f
40eaef:	59                   	pop    %ecx
40eaf0:	8b 45 fc             	mov    -0x4(%ebp),%eax
40eaf3:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
40eaf9:	8b 4b 10             	mov    0x10(%ebx),%ecx
40eafc:	89 41 48             	mov    %eax,0x48(%ecx)
40eaff:	8b 4b 10             	mov    0x10(%ebx),%ecx
40eb02:	a1 68 18 42 00       	mov    0x421868,%eax
40eb07:	85 81 50 03 00 00    	test   %eax,0x350(%ecx)
40eb0d:	75 39                	jne    0x40eb48
40eb0f:	8d 43 10             	lea    0x10(%ebx),%eax
40eb12:	89 45 ec             	mov    %eax,-0x14(%ebp)
40eb15:	8d 4d fb             	lea    -0x5(%ebp),%ecx
40eb18:	6a 05                	push   $0x5
40eb1a:	8d 43 14             	lea    0x14(%ebx),%eax
40eb1d:	89 45 f0             	mov    %eax,-0x10(%ebp)
40eb20:	58                   	pop    %eax
40eb21:	89 45 f4             	mov    %eax,-0xc(%ebp)
40eb24:	89 45 fc             	mov    %eax,-0x4(%ebp)
40eb27:	8d 45 f4             	lea    -0xc(%ebp),%eax
40eb2a:	50                   	push   %eax
40eb2b:	8d 45 ec             	lea    -0x14(%ebp),%eax
40eb2e:	50                   	push   %eax
40eb2f:	8d 45 fc             	lea    -0x4(%ebp),%eax
40eb32:	50                   	push   %eax
40eb33:	e8 47 fb ff ff       	call   0x40e67f
40eb38:	80 7b 0c 00          	cmpb   $0x0,0xc(%ebx)
40eb3c:	74 0a                	je     0x40eb48
40eb3e:	8b 43 14             	mov    0x14(%ebx),%eax
40eb41:	8b 00                	mov    (%eax),%eax
40eb43:	a3 e4 12 42 00       	mov    %eax,0x4212e4
40eb48:	6a 00                	push   $0x0
40eb4a:	e8 50 bc ff ff       	call   0x40a79f
40eb4f:	8b c7                	mov    %edi,%eax
40eb51:	59                   	pop    %ecx
40eb52:	5f                   	pop    %edi
40eb53:	5e                   	pop    %esi
40eb54:	8b e5                	mov    %ebp,%esp
40eb56:	5d                   	pop    %ebp
40eb57:	8b e3                	mov    %ebx,%esp
40eb59:	5b                   	pop    %ebx
40eb5a:	c3                   	ret
40eb5b:	6a 0c                	push   $0xc
40eb5d:	68 a8 01 42 00       	push   $0x4201a8
40eb62:	e8 39 53 ff ff       	call   0x403ea0
40eb67:	33 f6                	xor    %esi,%esi
40eb69:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40eb6c:	8b 7d 08             	mov    0x8(%ebp),%edi
40eb6f:	a1 68 18 42 00       	mov    0x421868,%eax
40eb74:	85 87 50 03 00 00    	test   %eax,0x350(%edi)
40eb7a:	74 0e                	je     0x40eb8a
40eb7c:	39 77 4c             	cmp    %esi,0x4c(%edi)
40eb7f:	74 09                	je     0x40eb8a
40eb81:	8b 77 48             	mov    0x48(%edi),%esi
40eb84:	85 f6                	test   %esi,%esi
40eb86:	74 6d                	je     0x40ebf5
40eb88:	eb 59                	jmp    0x40ebe3
40eb8a:	6a 05                	push   $0x5
40eb8c:	e8 fb f3 ff ff       	call   0x40df8c
40eb91:	59                   	pop    %ecx
40eb92:	89 75 fc             	mov    %esi,-0x4(%ebp)
40eb95:	8b 77 48             	mov    0x48(%edi),%esi
40eb98:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40eb9b:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40eb9e:	3b 33                	cmp    (%ebx),%esi
40eba0:	74 27                	je     0x40ebc9
40eba2:	85 f6                	test   %esi,%esi
40eba4:	74 18                	je     0x40ebbe
40eba6:	83 c8 ff             	or     $0xffffffff,%eax
40eba9:	f0 0f c1 06          	lock xadd %eax,(%esi)
40ebad:	75 0f                	jne    0x40ebbe
40ebaf:	81 fe f0 12 42 00    	cmp    $0x4212f0,%esi
40ebb5:	74 07                	je     0x40ebbe
40ebb7:	56                   	push   %esi
40ebb8:	e8 e2 bb ff ff       	call   0x40a79f
40ebbd:	59                   	pop    %ecx
40ebbe:	8b 33                	mov    (%ebx),%esi
40ebc0:	89 77 48             	mov    %esi,0x48(%edi)
40ebc3:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40ebc6:	f0 ff 06             	lock incl (%esi)
40ebc9:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40ebd0:	e8 05 00 00 00       	call   0x40ebda
40ebd5:	eb ad                	jmp    0x40eb84
40ebd7:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40ebda:	6a 05                	push   $0x5
40ebdc:	e8 f3 f3 ff ff       	call   0x40dfd4
40ebe1:	59                   	pop    %ecx
40ebe2:	c3                   	ret
40ebe3:	8b c6                	mov    %esi,%eax
40ebe5:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40ebe8:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40ebef:	59                   	pop    %ecx
40ebf0:	5f                   	pop    %edi
40ebf1:	5e                   	pop    %esi
40ebf2:	5b                   	pop    %ebx
40ebf3:	c9                   	leave
40ebf4:	c3                   	ret
40ebf5:	e8 30 b9 ff ff       	call   0x40a52a
40ebfa:	cc                   	int3
40ebfb:	80 3d 2c 25 42 00 00 	cmpb   $0x0,0x42252c
40ec02:	75 3c                	jne    0x40ec40
40ec04:	c7 05 24 25 42 00 f0 	movl   $0x4212f0,0x422524
40ec0b:	12 42 00
40ec0e:	c7 05 20 25 42 00 18 	movl   $0x421618,0x422520
40ec15:	16 42 00