40fcb6:	83 3d f0 e5 41 00 03 	cmpl   $0x3,0x41e5f0
40fcbd:	75 38                	jne    0x40fcf7
40fcbf:	6a 04                	push   $0x4
40fcc1:	e8 51 ce ff ff       	call   0x40cb17
40fcc6:	59                   	pop    %ecx
40fcc7:	89 7d fc             	mov    %edi,-0x4(%ebp)
40fcca:	53                   	push   %ebx
40fccb:	e8 c0 ce ff ff       	call   0x40cb90
40fcd0:	59                   	pop    %ecx
40fcd1:	89 45 e0             	mov    %eax,-0x20(%ebp)
40fcd4:	3b c7                	cmp    %edi,%eax
40fcd6:	74 0b                	je     0x40fce3
40fcd8:	8b 73 fc             	mov    -0x4(%ebx),%esi
40fcdb:	83 ee 09             	sub    $0x9,%esi
40fcde:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40fce1:	eb 03                	jmp    0x40fce6
40fce3:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40fce6:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40fced:	e8 25 00 00 00       	call   0x40fd17
40fcf2:	39 7d e0             	cmp    %edi,-0x20(%ebp)
40fcf5:	75 10                	jne    0x40fd07
40fcf7:	53                   	push   %ebx
40fcf8:	57                   	push   %edi
40fcf9:	ff 35 5c dd 41 00    	push   0x41dd5c
40fcff:	ff 15 5c 71 41 00    	call   *0x41715c
40fd05:	8b f0                	mov    %eax,%esi
40fd07:	8b c6                	mov    %esi,%eax
40fd09:	e8 7f d9 ff ff       	call   0x40d68d
40fd0e:	c3                   	ret
40fd0f:	33 ff                	xor    %edi,%edi
40fd11:	8b 5d 08             	mov    0x8(%ebp),%ebx
40fd14:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40fd17:	6a 04                	push   $0x4
40fd19:	e8 21 cd ff ff       	call   0x40ca3f
40fd1e:	59                   	pop    %ecx
40fd1f:	c3                   	ret
40fd20:	6a 10                	push   $0x10
40fd22:	68 d8 ad 41 00       	push   $0x41add8
40fd27:	e8 1c d9 ff ff       	call   0x40d648
40fd2c:	33 db                	xor    %ebx,%ebx
40fd2e:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40fd31:	6a 01                	push   $0x1
40fd33:	e8 df cd ff ff       	call   0x40cb17
40fd38:	59                   	pop    %ecx
40fd39:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40fd3c:	6a 03                	push   $0x3
40fd3e:	5f                   	pop    %edi
40fd3f:	89 7d e0             	mov    %edi,-0x20(%ebp)
40fd42:	3b 3d 00 f6 41 00    	cmp    0x41f600,%edi
40fd48:	7d 57                	jge    0x40fda1
40fd4a:	8b f7                	mov    %edi,%esi
40fd4c:	c1 e6 02             	shl    $0x2,%esi
40fd4f:	a1 fc e5 41 00       	mov    0x41e5fc,%eax
40fd54:	03 c6                	add    %esi,%eax
40fd56:	39 18                	cmp    %ebx,(%eax)
40fd58:	74 44                	je     0x40fd9e
40fd5a:	8b 00                	mov    (%eax),%eax
40fd5c:	f6 40 0c 83          	testb  $0x83,0xc(%eax)
40fd60:	74 0f                	je     0x40fd71
40fd62:	50                   	push   %eax
40fd63:	e8 20 89 ff ff       	call   0x408688
40fd68:	59                   	pop    %ecx
40fd69:	83 f8 ff             	cmp    $0xffffffff,%eax
40fd6c:	74 03                	je     0x40fd71
40fd6e:	ff 45 e4             	incl   -0x1c(%ebp)
40fd71:	83 ff 14             	cmp    $0x14,%edi
40fd74:	7c 28                	jl     0x40fd9e
40fd76:	a1 fc e5 41 00       	mov    0x41e5fc,%eax
40fd7b:	8b 04 06             	mov    (%esi,%eax,1),%eax
40fd7e:	83 c0 20             	add    $0x20,%eax
40fd81:	50                   	push   %eax
40fd82:	ff 15 84 70 41 00    	call   *0x417084
40fd88:	a1 fc e5 41 00       	mov    0x41e5fc,%eax
40fd8d:	ff 34 06             	push   (%esi,%eax,1)
40fd90:	e8 be 66 ff ff       	call   0x406453
40fd95:	59                   	pop    %ecx
40fd96:	a1 fc e5 41 00       	mov    0x41e5fc,%eax
40fd9b:	89 1c 06             	mov    %ebx,(%esi,%eax,1)
40fd9e:	47                   	inc    %edi
40fd9f:	eb 9e                	jmp    0x40fd3f
40fda1:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40fda8:	e8 09 00 00 00       	call   0x40fdb6
40fdad:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40fdb0:	e8 d8 d8 ff ff       	call   0x40d68d
40fdb5:	c3                   	ret
40fdb6:	6a 01                	push   $0x1
40fdb8:	e8 82 cc ff ff       	call   0x40ca3f
40fdbd:	59                   	pop    %ecx
40fdbe:	c3                   	ret
40fdbf:	2d a4 03 00 00       	sub    $0x3a4,%eax
40fdc4:	74 22                	je     0x40fde8
40fdc6:	83 e8 04             	sub    $0x4,%eax
40fdc9:	74 17                	je     0x40fde2
40fdcb:	83 e8 0d             	sub    $0xd,%eax
40fdce:	74 0c                	je     0x40fddc
40fdd0:	48                   	dec    %eax
40fdd1:	74 03                	je     0x40fdd6
40fdd3:	33 c0                	xor    %eax,%eax
40fdd5:	c3                   	ret
40fdd6:	b8 04 04 00 00       	mov    $0x404,%eax
40fddb:	c3                   	ret
40fddc:	b8 12 04 00 00       	mov    $0x412,%eax
40fde1:	c3                   	ret
40fde2:	b8 04 08 00 00       	mov    $0x804,%eax
40fde7:	c3                   	ret
40fde8:	b8 11 04 00 00       	mov    $0x411,%eax
40fded:	c3                   	ret
40fdee:	53                   	push   %ebx
40fdef:	55                   	push   %ebp
40fdf0:	56                   	push   %esi
40fdf1:	57                   	push   %edi
40fdf2:	bd 01 01 00 00       	mov    $0x101,%ebp
40fdf7:	8b f0                	mov    %eax,%esi
40fdf9:	55                   	push   %ebp
40fdfa:	33 ff                	xor    %edi,%edi
40fdfc:	8d 5e 1c             	lea    0x1c(%esi),%ebx
40fdff:	57                   	push   %edi
40fe00:	53                   	push   %ebx
40fe01:	e8 4a 5d ff ff       	call   0x405b50
40fe06:	89 7e 04             	mov    %edi,0x4(%esi)
40fe09:	89 7e 08             	mov    %edi,0x8(%esi)
40fe0c:	89 7e 0c             	mov    %edi,0xc(%esi)
40fe0f:	33 c0                	xor    %eax,%eax
40fe11:	8d 7e 10             	lea    0x10(%esi),%edi
40fe14:	ab                   	stos   %eax,%es:(%edi)
40fe15:	ab                   	stos   %eax,%es:(%edi)
40fe16:	ab                   	stos   %eax,%es:(%edi)
40fe17:	b8 18 cc 41 00       	mov    $0x41cc18,%eax
40fe1c:	83 c4 0c             	add    $0xc,%esp
40fe1f:	2b c6                	sub    %esi,%eax
40fe21:	8a 0c 18             	mov    (%eax,%ebx,1),%cl
40fe24:	88 0b                	mov    %cl,(%ebx)
40fe26:	43                   	inc    %ebx
40fe27:	4d                   	dec    %ebp
40fe28:	75 f7                	jne    0x40fe21
40fe2a:	8d 8e 1d 01 00 00    	lea    0x11d(%esi),%ecx
40fe30:	be 00 01 00 00       	mov    $0x100,%esi
40fe35:	8a 14 01             	mov    (%ecx,%eax,1),%dl
40fe38:	88 11                	mov    %dl,(%ecx)
40fe3a:	41                   	inc    %ecx
40fe3b:	4e                   	dec    %esi
40fe3c:	75 f7                	jne    0x40fe35
40fe3e:	5f                   	pop    %edi
40fe3f:	5e                   	pop    %esi
40fe40:	5d                   	pop    %ebp
40fe41:	5b                   	pop    %ebx
40fe42:	c3                   	ret
40fe43:	55                   	push   %ebp
40fe44:	8d ac 24 64 fb ff ff 	lea    -0x49c(%esp),%ebp
40fe4b:	81 ec 1c 05 00 00    	sub    $0x51c,%esp
40fe51:	a1 20 c5 41 00       	mov    0x41c520,%eax
40fe56:	33 c5                	xor    %ebp,%eax
40fe58:	89 85 98 04 00 00    	mov    %eax,0x498(%ebp)
40fe5e:	53                   	push   %ebx
40fe5f:	57                   	push   %edi
40fe60:	8d 45 84             	lea    -0x7c(%ebp),%eax
40fe63:	50                   	push   %eax
40fe64:	ff 76 04             	push   0x4(%esi)
40fe67:	ff 15 e0 70 41 00    	call   *0x4170e0
40fe6d:	85 c0                	test   %eax,%eax
40fe6f:	bf 00 01 00 00       	mov    $0x100,%edi
40fe74:	0f 84 ef 00 00 00    	je     0x40ff69
40fe7a:	33 c0                	xor    %eax,%eax
40fe7c:	88 84 05 98 03 00 00 	mov    %al,0x398(%ebp,%eax,1)
40fe83:	40                   	inc    %eax
40fe84:	3b c7                	cmp    %edi,%eax
40fe86:	72 f4                	jb     0x40fe7c
40fe88:	8a 45 8a             	mov    -0x76(%ebp),%al
40fe8b:	84 c0                	test   %al,%al
40fe8d:	c6 85 98 03 00 00 20 	movb   $0x20,0x398(%ebp)
40fe94:	74 2b                	je     0x40fec1
40fe96:	8d 5d 8b             	lea    -0x75(%ebp),%ebx
40fe99:	0f b6 c8             	movzbl %al,%ecx
40fe9c:	0f b6 03             	movzbl (%ebx),%eax
40fe9f:	3b c8                	cmp    %eax,%ecx
40fea1:	77 16                	ja     0x40feb9
40fea3:	2b c1                	sub    %ecx,%eax
40fea5:	40                   	inc    %eax
40fea6:	50                   	push   %eax
40fea7:	8d 94 0d 98 03 00 00 	lea    0x398(%ebp,%ecx,1),%edx
40feae:	6a 20                	push   $0x20
40feb0:	52                   	push   %edx
40feb1:	e8 9a 5c ff ff       	call   0x405b50
40feb6:	83 c4 0c             	add    $0xc,%esp
40feb9:	43                   	inc    %ebx
40feba:	8a 03                	mov    (%ebx),%al
40febc:	43                   	inc    %ebx
40febd:	84 c0                	test   %al,%al
40febf:	75 d8                	jne    0x40fe99
40fec1:	6a 00                	push   $0x0
40fec3:	ff 76 0c             	push   0xc(%esi)
40fec6:	8d 45 98             	lea    -0x68(%ebp),%eax
40fec9:	ff 76 04             	push   0x4(%esi)
40fecc:	50                   	push   %eax
40fecd:	57                   	push   %edi
40fece:	8d 85 98 03 00 00    	lea    0x398(%ebp),%eax
40fed4:	50                   	push   %eax
40fed5:	6a 01                	push   $0x1
40fed7:	6a 00                	push   $0x0
40fed9:	e8 0c 0a 00 00       	call   0x4108ea
40fede:	33 db                	xor    %ebx,%ebx
40fee0:	53                   	push   %ebx
40fee1:	ff 76 04             	push   0x4(%esi)
40fee4:	8d 85 98 02 00 00    	lea    0x298(%ebp),%eax
40feea:	57                   	push   %edi
40feeb:	50                   	push   %eax
40feec:	57                   	push   %edi
40feed:	8d 85 98 03 00 00    	lea    0x398(%ebp),%eax
40fef3:	50                   	push   %eax
40fef4:	57                   	push   %edi
40fef5:	ff 76 0c             	push   0xc(%esi)
40fef8:	53                   	push   %ebx
40fef9:	e8 ea 8e ff ff       	call   0x408de8
40fefe:	83 c4 44             	add    $0x44,%esp
40ff01:	53                   	push   %ebx
40ff02:	ff 76 04             	push   0x4(%esi)
40ff05:	8d 85 98 01 00 00    	lea    0x198(%ebp),%eax
40ff0b:	57                   	push   %edi
40ff0c:	50                   	push   %eax
40ff0d:	57                   	push   %edi
40ff0e:	8d 85 98 03 00 00    	lea    0x398(%ebp),%eax
40ff14:	50                   	push   %eax
40ff15:	68 00 02 00 00       	push   $0x200
40ff1a:	ff 76 0c             	push   0xc(%esi)
40ff1d:	53                   	push   %ebx
40ff1e:	e8 c5 8e ff ff       	call   0x408de8
40ff23:	83 c4 24             	add    $0x24,%esp
40ff26:	33 c0                	xor    %eax,%eax
40ff28:	0f b7 4c 45 98       	movzwl -0x68(%ebp,%eax,2),%ecx
40ff2d:	f6 c1 01             	test   $0x1,%cl
40ff30:	74 0e                	je     0x40ff40
40ff32:	80 4c 06 1d 10       	orb    $0x10,0x1d(%esi,%eax,1)
40ff37:	8a 8c 05 98 02 00 00 	mov    0x298(%ebp,%eax,1),%cl
40ff3e:	eb 11                	jmp    0x40ff51
40ff40:	f6 c1 02             	test   $0x2,%cl
40ff43:	74 15                	je     0x40ff5a
40ff45:	80 4c 06 1d 20       	orb    $0x20,0x1d(%esi,%eax,1)
40ff4a:	8a 8c 05 98 01 00 00 	mov    0x198(%ebp,%eax,1),%cl
40ff51:	88 8c 06 1d 01 00 00 	mov    %cl,0x11d(%esi,%eax,1)
40ff58:	eb 08                	jmp    0x40ff62
40ff5a:	c6 84 06 1d 01 00 00 	movb   $0x0,0x11d(%esi,%eax,1)
40ff61:	00
40ff62:	40                   	inc    %eax
40ff63:	3b c7                	cmp    %edi,%eax
40ff65:	72 c1                	jb     0x40ff28
40ff67:	eb 4d                	jmp    0x40ffb6
40ff69:	8d 86 1d 01 00 00    	lea    0x11d(%esi),%eax
40ff6f:	c7 45 80 9f ff ff ff 	movl   $0xffffff9f,-0x80(%ebp)
40ff76:	33 c9                	xor    %ecx,%ecx
40ff78:	29 45 80             	sub    %eax,-0x80(%ebp)
40ff7b:	8b 55 80             	mov    -0x80(%ebp),%edx
40ff7e:	8d 84 0e 1d 01 00 00 	lea    0x11d(%esi,%ecx,1),%eax
40ff85:	03 d0                	add    %eax,%edx
40ff87:	8d 5a 20             	lea    0x20(%edx),%ebx
40ff8a:	83 fb 19             	cmp    $0x19,%ebx
40ff8d:	77 0c                	ja     0x40ff9b
40ff8f:	80 4c 0e 1d 10       	orb    $0x10,0x1d(%esi,%ecx,1)
40ff94:	8a d1                	mov    %cl,%dl
40ff96:	80 c2 20             	add    $0x20,%dl
40ff99:	eb 0f                	jmp    0x40ffaa
40ff9b:	83 fa 19             	cmp    $0x19,%edx
40ff9e:	77 0e                	ja     0x40ffae
40ffa0:	80 4c 0e 1d 20       	orb    $0x20,0x1d(%esi,%ecx,1)
40ffa5:	8a d1                	mov    %cl,%dl
40ffa7:	80 ea 20             	sub    $0x20,%dl
40ffaa:	88 10                	mov    %dl,(%eax)
40ffac:	eb 03                	jmp    0x40ffb1
40ffae:	c6 00 00             	movb   $0x0,(%eax)
40ffb1:	41                   	inc    %ecx
40ffb2:	3b cf                	cmp    %edi,%ecx
40ffb4:	72 c5                	jb     0x40ff7b
40ffb6:	8b 8d 98 04 00 00    	mov    0x498(%ebp),%ecx
40ffbc:	5f                   	pop    %edi
40ffbd:	33 cd                	xor    %ebp,%ecx
40ffbf:	5b                   	pop    %ebx
40ffc0:	e8 70 5f ff ff       	call   0x405f35
40ffc5:	81 c5 9c 04 00 00    	add    $0x49c,%ebp
40ffcb:	c9                   	leave
40ffcc:	c3                   	ret
40ffcd:	6a 0c                	push   $0xc
40ffcf:	68 f8 ad 41 00       	push   $0x41adf8
40ffd4:	e8 6f d6 ff ff       	call   0x40d648
40ffd9:	e8 6e c5 ff ff       	call   0x40c54c
40ffde:	8b f8                	mov    %eax,%edi
40ffe0:	a1 38 d1 41 00       	mov    0x41d138,%eax
40ffe5:	85 47 70             	test   %eax,0x70(%edi)
40ffe8:	74 1d                	je     0x410007
40ffea:	83 7f 6c 00          	cmpl   $0x0,0x6c(%edi)
40ffee:	74 17                	je     0x410007
40fff0:	8b 77 68             	mov    0x68(%edi),%esi
40fff3:	85 f6                	test   %esi,%esi
40fff5:	75 08                	jne    0x40ffff
40fff7:	6a 20                	push   $0x20
40fff9:	e8 48 d8 ff ff       	call   0x40d846
40fffe:	59                   	pop    %ecx
40ffff:	8b c6                	mov    %esi,%eax
410001:	e8 87 d6 ff ff       	call   0x40d68d
410006:	c3                   	ret
410007:	6a 0d                	push   $0xd
410009:	e8 09 cb ff ff       	call   0x40cb17
41000e:	59                   	pop    %ecx
41000f:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
410013:	8b 77 68             	mov    0x68(%edi),%esi
410016:	89 75 e4             	mov    %esi,-0x1c(%ebp)
410019:	3b 35 40 d0 41 00    	cmp    0x41d040,%esi
41001f:	74 36                	je     0x410057
410021:	85 f6                	test   %esi,%esi
410023:	74 1a                	je     0x41003f
410025:	56                   	push   %esi
410026:	ff 15 98 70 41 00    	call   *0x417098
41002c:	85 c0                	test   %eax,%eax
41002e:	75 0f                	jne    0x41003f
410030:	81 fe 18 cc 41 00    	cmp    $0x41cc18,%esi
410036:	74 07                	je     0x41003f
410038:	56                   	push   %esi
410039:	e8 15 64 ff ff       	call   0x406453
41003e:	59                   	pop    %ecx
41003f:	a1 40 d0 41 00       	mov    0x41d040,%eax
410044:	89 47 68             	mov    %eax,0x68(%edi)
410047:	8b 35 40 d0 41 00    	mov    0x41d040,%esi
41004d:	89 75 e4             	mov    %esi,-0x1c(%ebp)
410050:	56                   	push   %esi
410051:	ff 15 94 70 41 00    	call   *0x417094
410057:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
41005e:	e8 05 00 00 00       	call   0x410068
410063:	eb 8e                	jmp    0x40fff3
410065:	8b 75 e4             	mov    -0x1c(%ebp),%esi
410068:	6a 0d                	push   $0xd
41006a:	e8 d0 c9 ff ff       	call   0x40ca3f
41006f:	59                   	pop    %ecx
410070:	c3                   	ret
410071:	55                   	push   %ebp
410072:	8b ec                	mov    %esp,%ebp
410074:	83 ec 10             	sub    $0x10,%esp
410077:	53                   	push   %ebx
410078:	33 db                	xor    %ebx,%ebx
41007a:	53                   	push   %ebx
41007b:	8d 4d f0             	lea    -0x10(%ebp),%ecx
41007e:	e8 41 89 ff ff       	call   0x4089c4
410083:	83 fe fe             	cmp    $0xfffffffe,%esi
410086:	89 1d 24 e3 41 00    	mov    %ebx,0x41e324
41008c:	75 1e                	jne    0x4100ac
41008e:	c7 05 24 e3 41 00 01 	movl   $0x1,0x41e324
410095:	00 00 00
410098:	ff 15 64 71 41 00    	call   *0x417164
41009e:	38 5d fc             	cmp    %bl,-0x4(%ebp)
4100a1:	74 45                	je     0x4100e8
4100a3:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4100a6:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
4100aa:	eb 3c                	jmp    0x4100e8