40cab0:	0f b6 4d f9          	movzbl -0x7(%ebp),%ecx
40cab4:	33 04 8d a0 62 43 00 	xor    0x4362a0(,%ecx,4),%eax
40cabb:	0f b6 4d f6          	movzbl -0xa(%ebp),%ecx
40cabf:	33 04 8d a0 5e 43 00 	xor    0x435ea0(,%ecx,4),%eax
40cac6:	0f b6 4d f3          	movzbl -0xd(%ebp),%ecx
40caca:	33 04 8d a0 5a 43 00 	xor    0x435aa0(,%ecx,4),%eax
40cad1:	0f b6 4d ed          	movzbl -0x13(%ebp),%ecx
40cad5:	89 45 dc             	mov    %eax,-0x24(%ebp)
40cad8:	0f b6 45 f0          	movzbl -0x10(%ebp),%eax
40cadc:	8b 04 85 a0 66 43 00 	mov    0x4366a0(,%eax,4),%eax
40cae3:	33 04 8d a0 62 43 00 	xor    0x4362a0(,%ecx,4),%eax
40caea:	0f b6 4d fa          	movzbl -0x6(%ebp),%ecx
40caee:	33 04 8d a0 5e 43 00 	xor    0x435ea0(,%ecx,4),%eax
40caf5:	0f b6 4d f7          	movzbl -0x9(%ebp),%ecx
40caf9:	33 04 8d a0 5a 43 00 	xor    0x435aa0(,%ecx,4),%eax
40cb00:	0f b6 4d f1          	movzbl -0xf(%ebp),%ecx
40cb04:	89 45 e0             	mov    %eax,-0x20(%ebp)
40cb07:	0f b6 45 f4          	movzbl -0xc(%ebp),%eax
40cb0b:	8b 04 85 a0 66 43 00 	mov    0x4366a0(,%eax,4),%eax
40cb12:	33 04 8d a0 62 43 00 	xor    0x4362a0(,%ecx,4),%eax
40cb19:	0f b6 4d ee          	movzbl -0x12(%ebp),%ecx
40cb1d:	33 04 8d a0 5e 43 00 	xor    0x435ea0(,%ecx,4),%eax
40cb24:	0f b6 4d fb          	movzbl -0x5(%ebp),%ecx
40cb28:	33 04 8d a0 5a 43 00 	xor    0x435aa0(,%ecx,4),%eax
40cb2f:	0f b6 4d f5          	movzbl -0xb(%ebp),%ecx
40cb33:	83 6d 10 10          	subl   $0x10,0x10(%ebp)
40cb37:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40cb3a:	0f b6 45 f8          	movzbl -0x8(%ebp),%eax
40cb3e:	8b 04 85 a0 66 43 00 	mov    0x4366a0(,%eax,4),%eax
40cb45:	33 04 8d a0 62 43 00 	xor    0x4362a0(,%ecx,4),%eax
40cb4c:	0f b6 4d f2          	movzbl -0xe(%ebp),%ecx
40cb50:	33 04 8d a0 5e 43 00 	xor    0x435ea0(,%ecx,4),%eax
40cb57:	0f b6 4d ef          	movzbl -0x11(%ebp),%ecx
40cb5b:	33 04 8d a0 5a 43 00 	xor    0x435aa0(,%ecx,4),%eax
40cb62:	ff 4d 08             	decl   0x8(%ebp)
40cb65:	89 45 e8             	mov    %eax,-0x18(%ebp)
40cb68:	0f 85 27 ff ff ff    	jne    0x40ca95
40cb6e:	8d 46 28             	lea    0x28(%esi),%eax
40cb71:	50                   	push   %eax
40cb72:	8d 45 dc             	lea    -0x24(%ebp),%eax
40cb75:	50                   	push   %eax
40cb76:	8d 45 ec             	lea    -0x14(%ebp),%eax
40cb79:	50                   	push   %eax
40cb7a:	e8 e9 f6 ff ff       	call   0x40c268
40cb7f:	0f b6 45 ec          	movzbl -0x14(%ebp),%eax
40cb83:	8a 80 c0 7a 43 00    	mov    0x437ac0(%eax),%al
40cb89:	88 45 dc             	mov    %al,-0x24(%ebp)
40cb8c:	0f b6 45 f9          	movzbl -0x7(%ebp),%eax
40cb90:	8a 80 c0 7a 43 00    	mov    0x437ac0(%eax),%al
40cb96:	88 45 dd             	mov    %al,-0x23(%ebp)
40cb99:	0f b6 45 f6          	movzbl -0xa(%ebp),%eax
40cb9d:	8a 80 c0 7a 43 00    	mov    0x437ac0(%eax),%al
40cba3:	88 45 de             	mov    %al,-0x22(%ebp)
40cba6:	0f b6 45 f3          	movzbl -0xd(%ebp),%eax
40cbaa:	8a 80 c0 7a 43 00    	mov    0x437ac0(%eax),%al
40cbb0:	88 45 df             	mov    %al,-0x21(%ebp)
40cbb3:	0f b6 45 f0          	movzbl -0x10(%ebp),%eax
40cbb7:	8a 80 c0 7a 43 00    	mov    0x437ac0(%eax),%al
40cbbd:	88 45 e0             	mov    %al,-0x20(%ebp)
40cbc0:	0f b6 45 ed          	movzbl -0x13(%ebp),%eax
40cbc4:	8a 80 c0 7a 43 00    	mov    0x437ac0(%eax),%al
40cbca:	88 45 e1             	mov    %al,-0x1f(%ebp)
40cbcd:	0f b6 45 fa          	movzbl -0x6(%ebp),%eax
40cbd1:	8a 80 c0 7a 43 00    	mov    0x437ac0(%eax),%al
40cbd7:	88 45 e2             	mov    %al,-0x1e(%ebp)
40cbda:	0f b6 45 f7          	movzbl -0x9(%ebp),%eax
40cbde:	8a 80 c0 7a 43 00    	mov    0x437ac0(%eax),%al
40cbe4:	88 45 e3             	mov    %al,-0x1d(%ebp)
40cbe7:	0f b6 45 f4          	movzbl -0xc(%ebp),%eax
40cbeb:	8a 80 c0 7a 43 00    	mov    0x437ac0(%eax),%al
40cbf1:	88 45 e4             	mov    %al,-0x1c(%ebp)
40cbf4:	0f b6 45 f1          	movzbl -0xf(%ebp),%eax
40cbf8:	8a 80 c0 7a 43 00    	mov    0x437ac0(%eax),%al
40cbfe:	88 45 e5             	mov    %al,-0x1b(%ebp)
40cc01:	0f b6 45 ee          	movzbl -0x12(%ebp),%eax
40cc05:	8a 80 c0 7a 43 00    	mov    0x437ac0(%eax),%al
40cc0b:	88 45 e6             	mov    %al,-0x1a(%ebp)
40cc0e:	0f b6 45 fb          	movzbl -0x5(%ebp),%eax
40cc12:	8a 80 c0 7a 43 00    	mov    0x437ac0(%eax),%al
40cc18:	88 45 e7             	mov    %al,-0x19(%ebp)
40cc1b:	0f b6 45 f8          	movzbl -0x8(%ebp),%eax
40cc1f:	8a 80 c0 7a 43 00    	mov    0x437ac0(%eax),%al
40cc25:	88 45 e8             	mov    %al,-0x18(%ebp)
40cc28:	0f b6 45 f5          	movzbl -0xb(%ebp),%eax
40cc2c:	8a 80 c0 7a 43 00    	mov    0x437ac0(%eax),%al
40cc32:	88 45 e9             	mov    %al,-0x17(%ebp)
40cc35:	0f b6 45 f2          	movzbl -0xe(%ebp),%eax
40cc39:	8a 80 c0 7a 43 00    	mov    0x437ac0(%eax),%al
40cc3f:	88 45 ea             	mov    %al,-0x16(%ebp)
40cc42:	0f b6 45 ef          	movzbl -0x11(%ebp),%eax
40cc46:	8a 80 c0 7a 43 00    	mov    0x437ac0(%eax),%al
40cc4c:	88 45 eb             	mov    %al,-0x15(%ebp)
40cc4f:	8d 46 18             	lea    0x18(%esi),%eax
40cc52:	50                   	push   %eax
40cc53:	8d 45 dc             	lea    -0x24(%ebp),%eax
40cc56:	50                   	push   %eax
40cc57:	50                   	push   %eax
40cc58:	e8 0b f6 ff ff       	call   0x40c268
40cc5d:	80 7e 01 00          	cmpb   $0x0,0x1(%esi)
40cc61:	74 0e                	je     0x40cc71
40cc63:	8d 45 cc             	lea    -0x34(%ebp),%eax
40cc66:	50                   	push   %eax
40cc67:	8d 45 dc             	lea    -0x24(%ebp),%eax
40cc6a:	50                   	push   %eax
40cc6b:	50                   	push   %eax
40cc6c:	e8 f7 f5 ff ff       	call   0x40c268
40cc71:	8b 07                	mov    (%edi),%eax
40cc73:	89 45 cc             	mov    %eax,-0x34(%ebp)
40cc76:	8b 47 04             	mov    0x4(%edi),%eax
40cc79:	89 45 d0             	mov    %eax,-0x30(%ebp)
40cc7c:	8b 47 08             	mov    0x8(%edi),%eax
40cc7f:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40cc82:	8b 47 0c             	mov    0xc(%edi),%eax
40cc85:	89 45 d8             	mov    %eax,-0x28(%ebp)
40cc88:	8b 45 dc             	mov    -0x24(%ebp),%eax
40cc8b:	89 03                	mov    %eax,(%ebx)
40cc8d:	8b 45 e0             	mov    -0x20(%ebp),%eax
40cc90:	89 43 04             	mov    %eax,0x4(%ebx)
40cc93:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40cc96:	89 43 08             	mov    %eax,0x8(%ebx)
40cc99:	8b 45 e8             	mov    -0x18(%ebp),%eax
40cc9c:	89 43 0c             	mov    %eax,0xc(%ebx)
40cc9f:	83 c7 10             	add    $0x10,%edi
40cca2:	83 c3 10             	add    $0x10,%ebx
40cca5:	ff 4d 0c             	decl   0xc(%ebp)
40cca8:	0f 85 f9 fc ff ff    	jne    0x40c9a7
40ccae:	5b                   	pop    %ebx
40ccaf:	6a 10                	push   $0x10
40ccb1:	8d 45 cc             	lea    -0x34(%ebp),%eax
40ccb4:	50                   	push   %eax
40ccb5:	ff 75 fc             	push   -0x4(%ebp)
40ccb8:	e8 b3 ef 00 00       	call   0x41bc70
40ccbd:	83 c4 0c             	add    $0xc,%esp
40ccc0:	5f                   	pop    %edi
40ccc1:	5e                   	pop    %esi
40ccc2:	c9                   	leave
40ccc3:	c2 0c 00             	ret    $0xc
40ccc6:	56                   	push   %esi
40ccc7:	8b f1                	mov    %ecx,%esi
40ccc9:	8b 06                	mov    (%esi),%eax
40cccb:	85 c0                	test   %eax,%eax
40cccd:	74 07                	je     0x40ccd6
40cccf:	50                   	push   %eax
40ccd0:	ff 15 84 a0 42 00    	call   *0x42a084
40ccd6:	83 26 00             	andl   $0x0,(%esi)
40ccd9:	83 66 08 00          	andl   $0x0,0x8(%esi)
40ccdd:	83 66 0c 00          	andl   $0x0,0xc(%esi)
40cce1:	5e                   	pop    %esi
40cce2:	c3                   	ret
40cce3:	56                   	push   %esi
40cce4:	8b f1                	mov    %ecx,%esi
40cce6:	80 7e 04 00          	cmpb   $0x0,0x4(%esi)
40ccea:	75 34                	jne    0x40cd20
40ccec:	68 44 a7 42 00       	push   $0x42a744
40ccf1:	ff 15 8c a0 42 00    	call   *0x42a08c
40ccf7:	89 06                	mov    %eax,(%esi)
40ccf9:	85 c0                	test   %eax,%eax
40ccfb:	74 1f                	je     0x40cd1c
40ccfd:	57                   	push   %edi
40ccfe:	8b 3d 88 a0 42 00    	mov    0x42a088,%edi
40cd04:	68 30 a7 42 00       	push   $0x42a730
40cd09:	50                   	push   %eax
40cd0a:	ff d7                	call   *%edi
40cd0c:	68 18 a7 42 00       	push   $0x42a718
40cd11:	ff 36                	push   (%esi)
40cd13:	89 46 08             	mov    %eax,0x8(%esi)
40cd16:	ff d7                	call   *%edi
40cd18:	89 46 0c             	mov    %eax,0xc(%esi)
40cd1b:	5f                   	pop    %edi
40cd1c:	c6 46 04 01          	movb   $0x1,0x4(%esi)
40cd20:	5e                   	pop    %esi
40cd21:	c3                   	ret
40cd22:	55                   	push   %ebp
40cd23:	8b ec                	mov    %esp,%ebp
40cd25:	53                   	push   %ebx
40cd26:	33 db                	xor    %ebx,%ebx
40cd28:	56                   	push   %esi
40cd29:	39 1d c8 7c 43 00    	cmp    %ebx,0x437cc8
40cd2f:	75 0a                	jne    0x40cd3b
40cd31:	b9 c0 7c 43 00       	mov    $0x437cc0,%ecx
40cd36:	e8 a8 ff ff ff       	call   0x40cce3
40cd3b:	8b 75 0c             	mov    0xc(%ebp),%esi
40cd3e:	8b ce                	mov    %esi,%ecx
40cd40:	83 e1 0f             	and    $0xf,%ecx
40cd43:	8b c6                	mov    %esi,%eax
40cd45:	2b c1                	sub    %ecx,%eax
40cd47:	38 5d 10             	cmp    %bl,0x10(%ebp)
40cd4a:	74 39                	je     0x40cd85
40cd4c:	8b 0d c8 7c 43 00    	mov    0x437cc8,%ecx
40cd52:	3b cb                	cmp    %ebx,%ecx
40cd54:	74 4b                	je     0x40cda1
40cd56:	53                   	push   %ebx
40cd57:	50                   	push   %eax
40cd58:	ff 75 08             	push   0x8(%ebp)
40cd5b:	ff d1                	call   *%ecx
40cd5d:	85 c0                	test   %eax,%eax
40cd5f:	75 61                	jne    0x40cdc2
40cd61:	68 94 a7 42 00       	push   $0x42a794
40cd66:	be 74 2a 43 00       	mov    $0x432a74,%esi
40cd6b:	56                   	push   %esi
40cd6c:	e8 ec 97 ff ff       	call   0x40655d
40cd71:	59                   	pop    %ecx
40cd72:	59                   	pop    %ecx
40cd73:	8b ce                	mov    %esi,%ecx
40cd75:	e8 86 42 ff ff       	call   0x401000
40cd7a:	6a 02                	push   $0x2
40cd7c:	8b ce                	mov    %esi,%ecx
40cd7e:	e8 28 97 ff ff       	call   0x4064ab
40cd83:	eb 3d                	jmp    0x40cdc2
40cd85:	8b 0d cc 7c 43 00    	mov    0x437ccc,%ecx
40cd8b:	3b cb                	cmp    %ebx,%ecx
40cd8d:	74 12                	je     0x40cda1
40cd8f:	53                   	push   %ebx
40cd90:	50                   	push   %eax
40cd91:	ff 75 08             	push   0x8(%ebp)
40cd94:	ff d1                	call   *%ecx
40cd96:	85 c0                	test   %eax,%eax
40cd98:	75 28                	jne    0x40cdc2
40cd9a:	68 5c a7 42 00       	push   $0x42a75c
40cd9f:	eb c5                	jmp    0x40cd66
40cda1:	ff 15 90 a0 42 00    	call   *0x42a090
40cda7:	33 c9                	xor    %ecx,%ecx
40cda9:	3b f3                	cmp    %ebx,%esi
40cdab:	76 15                	jbe    0x40cdc2
40cdad:	8a d0                	mov    %al,%dl
40cdaf:	80 c2 4b             	add    $0x4b,%dl
40cdb2:	8b 45 08             	mov    0x8(%ebp),%eax
40cdb5:	03 c1                	add    %ecx,%eax
40cdb7:	8a da                	mov    %dl,%bl
40cdb9:	02 d9                	add    %cl,%bl
40cdbb:	30 18                	xor    %bl,(%eax)
40cdbd:	41                   	inc    %ecx
40cdbe:	3b ce                	cmp    %esi,%ecx
40cdc0:	72 f0                	jb     0x40cdb2
40cdc2:	5e                   	pop    %esi
40cdc3:	5b                   	pop    %ebx
40cdc4:	5d                   	pop    %ebp
40cdc5:	c2 0c 00             	ret    $0xc
40cdc8:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40cdcc:	8b 44 24 04          	mov    0x4(%esp),%eax
40cdd0:	85 c9                	test   %ecx,%ecx
40cdd2:	74 07                	je     0x40cddb
40cdd4:	c6 00 00             	movb   $0x0,(%eax)
40cdd7:	40                   	inc    %eax
40cdd8:	49                   	dec    %ecx
40cdd9:	75 f9                	jne    0x40cdd4
40cddb:	c2 08 00             	ret    $0x8
40cdde:	55                   	push   %ebp
40cddf:	8b ec                	mov    %esp,%ebp
40cde1:	8b 45 0c             	mov    0xc(%ebp),%eax
40cde4:	56                   	push   %esi
40cde5:	8b 75 14             	mov    0x14(%ebp),%esi
40cde8:	3b c6                	cmp    %esi,%eax
40cdea:	72 02                	jb     0x40cdee
40cdec:	8b c6                	mov    %esi,%eax
40cdee:	03 c0                	add    %eax,%eax
40cdf0:	50                   	push   %eax
40cdf1:	ff 75 08             	push   0x8(%ebp)
40cdf4:	ff 75 10             	push   0x10(%ebp)
40cdf7:	e8 74 ee 00 00       	call   0x41bc70
40cdfc:	83 c4 0c             	add    $0xc,%esp
40cdff:	ff 75 18             	push   0x18(%ebp)
40ce02:	8d 04 36             	lea    (%esi,%esi,1),%eax
40ce05:	50                   	push   %eax
40ce06:	ff 75 10             	push   0x10(%ebp)
40ce09:	e8 14 ff ff ff       	call   0x40cd22
40ce0e:	5e                   	pop    %esi
40ce0f:	5d                   	pop    %ebp
40ce10:	c2 14 00             	ret    $0x14
40ce13:	80 b9 00 01 00 00 00 	cmpb   $0x0,0x100(%ecx)
40ce1a:	74 24                	je     0x40ce40
40ce1c:	56                   	push   %esi
40ce1d:	8b 74 24 0c          	mov    0xc(%esp),%esi
40ce21:	57                   	push   %edi
40ce22:	8b 7c 24 0c          	mov    0xc(%esp),%edi
40ce26:	6a 00                	push   $0x0
40ce28:	56                   	push   %esi
40ce29:	57                   	push   %edi
40ce2a:	68 80 00 00 00       	push   $0x80
40ce2f:	51                   	push   %ecx
40ce30:	e8 a9 ff ff ff       	call   0x40cdde
40ce35:	33 c0                	xor    %eax,%eax
40ce37:	66 89 44 77 fe       	mov    %ax,-0x2(%edi,%esi,2)
40ce3c:	5f                   	pop    %edi
40ce3d:	5e                   	pop    %esi
40ce3e:	eb 09                	jmp    0x40ce49
40ce40:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40ce44:	33 c0                	xor    %eax,%eax
40ce46:	66 89 01             	mov    %ax,(%ecx)
40ce49:	c2 08 00             	ret    $0x8
40ce4c:	56                   	push   %esi
40ce4d:	57                   	push   %edi
40ce4e:	8b 7c 24 0c          	mov    0xc(%esp),%edi
40ce52:	33 c0                	xor    %eax,%eax
40ce54:	8b f1                	mov    %ecx,%esi
40ce56:	66 39 07             	cmp    %ax,(%edi)
40ce59:	75 17                	jne    0x40ce72
40ce5b:	68 00 01 00 00       	push   $0x100
40ce60:	50                   	push   %eax
40ce61:	56                   	push   %esi
40ce62:	88 86 00 01 00 00    	mov    %al,0x100(%esi)
40ce68:	e8 93 d3 00 00       	call   0x41a200
40ce6d:	83 c4 0c             	add    $0xc,%esp
40ce70:	eb 20                	jmp    0x40ce92
40ce72:	6a 01                	push   $0x1
40ce74:	68 80 00 00 00       	push   $0x80
40ce79:	56                   	push   %esi
40ce7a:	57                   	push   %edi
40ce7b:	c6 86 00 01 00 00 01 	movb   $0x1,0x100(%esi)
40ce82:	e8 04 d3 00 00       	call   0x41a18b
40ce87:	59                   	pop    %ecx
40ce88:	40                   	inc    %eax
40ce89:	50                   	push   %eax
40ce8a:	57                   	push   %edi
40ce8b:	8b ce                	mov    %esi,%ecx
40ce8d:	e8 4c ff ff ff       	call   0x40cdde
40ce92:	5f                   	pop    %edi
40ce93:	5e                   	pop    %esi
40ce94:	c2 04 00             	ret    $0x4
40ce97:	55                   	push   %ebp
40ce98:	8b ec                	mov    %esp,%ebp
40ce9a:	81 ec 00 02 00 00    	sub    $0x200,%esp
40cea0:	56                   	push   %esi
40cea1:	be 80 00 00 00       	mov    $0x80,%esi
40cea6:	56                   	push   %esi
40cea7:	8d 85 00 ff ff ff    	lea    -0x100(%ebp),%eax
40cead:	50                   	push   %eax
40ceae:	e8 60 ff ff ff       	call   0x40ce13
40ceb3:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ceb6:	56                   	push   %esi
40ceb7:	8d 85 00 fe ff ff    	lea    -0x200(%ebp),%eax
40cebd:	50                   	push   %eax
40cebe:	e8 50 ff ff ff       	call   0x40ce13
40cec3:	8d 85 00 fe ff ff    	lea    -0x200(%ebp),%eax
40cec9:	50                   	push   %eax
40ceca:	8d 85 00 ff ff ff    	lea    -0x100(%ebp),%eax
40ced0:	50                   	push   %eax
40ced1:	e8 2b d5 00 00       	call   0x41a401
40ced6:	f7 d8                	neg    %eax
40ced8:	59                   	pop    %ecx
40ced9:	1a c0                	sbb    %al,%al
40cedb:	59                   	pop    %ecx
40cedc:	fe c0                	inc    %al
40cede:	8b d6                	mov    %esi,%edx
40cee0:	8d 8d 00 ff ff ff    	lea    -0x100(%ebp),%ecx
40cee6:	c6 01 00             	movb   $0x0,(%ecx)
40cee9:	41                   	inc    %ecx
40ceea:	4a                   	dec    %edx
40ceeb:	75 f9                	jne    0x40cee6
40ceed:	8d 8d 00 fe ff ff    	lea    -0x200(%ebp),%ecx