40fd1f:	0f 84 d1 00 00 00    	je     0x40fdf6
40fd25:	0f b7 c3             	movzwl %bx,%eax
40fd28:	50                   	push   %eax
40fd29:	ff 15 a8 c0 41 00    	call   *0x41c0a8
40fd2f:	85 c0                	test   %eax,%eax
40fd31:	0f 84 bf 00 00 00    	je     0x40fdf6
40fd37:	b8 e9 fd 00 00       	mov    $0xfde9,%eax
40fd3c:	3b d8                	cmp    %eax,%ebx
40fd3e:	75 26                	jne    0x40fd66
40fd40:	89 46 04             	mov    %eax,0x4(%esi)
40fd43:	89 be 1c 02 00 00    	mov    %edi,0x21c(%esi)
40fd49:	89 7e 18             	mov    %edi,0x18(%esi)
40fd4c:	66 89 7e 1c          	mov    %di,0x1c(%esi)
40fd50:	89 7e 08             	mov    %edi,0x8(%esi)
40fd53:	33 c0                	xor    %eax,%eax
40fd55:	8d 7e 0c             	lea    0xc(%esi),%edi
40fd58:	ab                   	stos   %eax,%es:(%edi)
40fd59:	ab                   	stos   %eax,%es:(%edi)
40fd5a:	ab                   	stos   %eax,%es:(%edi)
40fd5b:	56                   	push   %esi
40fd5c:	e8 d8 fb ff ff       	call   0x40f939
40fd61:	e9 46 01 00 00       	jmp    0x40feac
40fd66:	8d 45 e8             	lea    -0x18(%ebp),%eax
40fd69:	50                   	push   %eax
40fd6a:	53                   	push   %ebx
40fd6b:	ff 15 b4 c0 41 00    	call   *0x41c0b4
40fd71:	85 c0                	test   %eax,%eax
40fd73:	74 75                	je     0x40fdea
40fd75:	68 01 01 00 00       	push   $0x101
40fd7a:	8d 46 18             	lea    0x18(%esi),%eax
40fd7d:	57                   	push   %edi
40fd7e:	50                   	push   %eax
40fd7f:	e8 8c 93 ff ff       	call   0x409110
40fd84:	83 c4 0c             	add    $0xc,%esp
40fd87:	89 5e 04             	mov    %ebx,0x4(%esi)
40fd8a:	83 7d e8 02          	cmpl   $0x2,-0x18(%ebp)
40fd8e:	89 be 1c 02 00 00    	mov    %edi,0x21c(%esi)
40fd94:	75 ba                	jne    0x40fd50
40fd96:	80 7d ee 00          	cmpb   $0x0,-0x12(%ebp)
40fd9a:	8d 45 ee             	lea    -0x12(%ebp),%eax
40fd9d:	74 21                	je     0x40fdc0
40fd9f:	8a 48 01             	mov    0x1(%eax),%cl
40fda2:	84 c9                	test   %cl,%cl
40fda4:	74 1a                	je     0x40fdc0
40fda6:	0f b6 d1             	movzbl %cl,%edx
40fda9:	0f b6 08             	movzbl (%eax),%ecx
40fdac:	eb 06                	jmp    0x40fdb4
40fdae:	80 4c 0e 19 04       	orb    $0x4,0x19(%esi,%ecx,1)
40fdb3:	41                   	inc    %ecx
40fdb4:	3b ca                	cmp    %edx,%ecx
40fdb6:	76 f6                	jbe    0x40fdae
40fdb8:	83 c0 02             	add    $0x2,%eax
40fdbb:	80 38 00             	cmpb   $0x0,(%eax)
40fdbe:	75 df                	jne    0x40fd9f
40fdc0:	8d 46 1a             	lea    0x1a(%esi),%eax
40fdc3:	b9 fe 00 00 00       	mov    $0xfe,%ecx
40fdc8:	80 08 08             	orb    $0x8,(%eax)
40fdcb:	40                   	inc    %eax
40fdcc:	83 e9 01             	sub    $0x1,%ecx
40fdcf:	75 f7                	jne    0x40fdc8
40fdd1:	ff 76 04             	push   0x4(%esi)
40fdd4:	e8 4c fa ff ff       	call   0x40f825
40fdd9:	33 ff                	xor    %edi,%edi
40fddb:	89 86 1c 02 00 00    	mov    %eax,0x21c(%esi)
40fde1:	83 c4 04             	add    $0x4,%esp
40fde4:	47                   	inc    %edi
40fde5:	e9 66 ff ff ff       	jmp    0x40fd50
40fdea:	39 3d 9c 6e 42 00    	cmp    %edi,0x426e9c
40fdf0:	0f 85 b0 00 00 00    	jne    0x40fea6
40fdf6:	83 c8 ff             	or     $0xffffffff,%eax
40fdf9:	e9 b1 00 00 00       	jmp    0x40feaf
40fdfe:	68 01 01 00 00       	push   $0x101
40fe03:	8d 46 18             	lea    0x18(%esi),%eax
40fe06:	57                   	push   %edi
40fe07:	50                   	push   %eax
40fe08:	e8 03 93 ff ff       	call   0x409110
40fe0d:	83 c4 0c             	add    $0xc,%esp
40fe10:	6b 45 e4 30          	imul   $0x30,-0x1c(%ebp),%eax
40fe14:	89 45 e0             	mov    %eax,-0x20(%ebp)
40fe17:	8d 80 a0 64 42 00    	lea    0x4264a0(%eax),%eax
40fe1d:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40fe20:	80 38 00             	cmpb   $0x0,(%eax)
40fe23:	8b c8                	mov    %eax,%ecx
40fe25:	74 35                	je     0x40fe5c
40fe27:	8a 41 01             	mov    0x1(%ecx),%al
40fe2a:	84 c0                	test   %al,%al
40fe2c:	74 2b                	je     0x40fe59
40fe2e:	0f b6 11             	movzbl (%ecx),%edx
40fe31:	0f b6 c0             	movzbl %al,%eax
40fe34:	eb 17                	jmp    0x40fe4d
40fe36:	81 fa 00 01 00 00    	cmp    $0x100,%edx
40fe3c:	73 13                	jae    0x40fe51
40fe3e:	8a 87 88 64 42 00    	mov    0x426488(%edi),%al
40fe44:	08 44 16 19          	or     %al,0x19(%esi,%edx,1)
40fe48:	42                   	inc    %edx
40fe49:	0f b6 41 01          	movzbl 0x1(%ecx),%eax
40fe4d:	3b d0                	cmp    %eax,%edx
40fe4f:	76 e5                	jbe    0x40fe36
40fe51:	83 c1 02             	add    $0x2,%ecx
40fe54:	80 39 00             	cmpb   $0x0,(%ecx)
40fe57:	75 ce                	jne    0x40fe27
40fe59:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40fe5c:	47                   	inc    %edi
40fe5d:	83 c0 08             	add    $0x8,%eax
40fe60:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40fe63:	83 ff 04             	cmp    $0x4,%edi
40fe66:	72 b8                	jb     0x40fe20
40fe68:	53                   	push   %ebx
40fe69:	89 5e 04             	mov    %ebx,0x4(%esi)
40fe6c:	c7 46 08 01 00 00 00 	movl   $0x1,0x8(%esi)
40fe73:	e8 ad f9 ff ff       	call   0x40f825
40fe78:	83 c4 04             	add    $0x4,%esp
40fe7b:	89 86 1c 02 00 00    	mov    %eax,0x21c(%esi)
40fe81:	8b 45 e0             	mov    -0x20(%ebp),%eax
40fe84:	8d 4e 0c             	lea    0xc(%esi),%ecx
40fe87:	6a 06                	push   $0x6
40fe89:	8d 90 94 64 42 00    	lea    0x426494(%eax),%edx
40fe8f:	5f                   	pop    %edi
40fe90:	66 8b 02             	mov    (%edx),%ax
40fe93:	8d 52 02             	lea    0x2(%edx),%edx
40fe96:	66 89 01             	mov    %ax,(%ecx)
40fe99:	8d 49 02             	lea    0x2(%ecx),%ecx
40fe9c:	83 ef 01             	sub    $0x1,%edi
40fe9f:	75 ef                	jne    0x40fe90
40fea1:	e9 b5 fe ff ff       	jmp    0x40fd5b
40fea6:	56                   	push   %esi
40fea7:	e8 28 fa ff ff       	call   0x40f8d4
40feac:	33 c0                	xor    %eax,%eax
40feae:	59                   	pop    %ecx
40feaf:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40feb2:	5f                   	pop    %edi
40feb3:	5e                   	pop    %esi
40feb4:	33 cd                	xor    %ebp,%ecx
40feb6:	5b                   	pop    %ebx
40feb7:	e8 39 8d ff ff       	call   0x408bf5
40febc:	c9                   	leave
40febd:	c3                   	ret
40febe:	8b ff                	mov    %edi,%edi
40fec0:	55                   	push   %ebp
40fec1:	8b ec                	mov    %esp,%ebp
40fec3:	56                   	push   %esi
40fec4:	8b 75 14             	mov    0x14(%ebp),%esi
40fec7:	85 f6                	test   %esi,%esi
40fec9:	75 04                	jne    0x40fecf
40fecb:	33 c0                	xor    %eax,%eax
40fecd:	eb 6d                	jmp    0x40ff3c
40fecf:	8b 45 08             	mov    0x8(%ebp),%eax
40fed2:	85 c0                	test   %eax,%eax
40fed4:	75 13                	jne    0x40fee9
40fed6:	e8 f8 ed ff ff       	call   0x40ecd3
40fedb:	6a 16                	push   $0x16
40fedd:	5e                   	pop    %esi
40fede:	89 30                	mov    %esi,(%eax)
40fee0:	e8 31 ed ff ff       	call   0x40ec16
40fee5:	8b c6                	mov    %esi,%eax
40fee7:	eb 53                	jmp    0x40ff3c
40fee9:	57                   	push   %edi
40feea:	8b 7d 10             	mov    0x10(%ebp),%edi
40feed:	85 ff                	test   %edi,%edi
40feef:	74 14                	je     0x40ff05
40fef1:	39 75 0c             	cmp    %esi,0xc(%ebp)
40fef4:	72 0f                	jb     0x40ff05
40fef6:	56                   	push   %esi
40fef7:	57                   	push   %edi
40fef8:	50                   	push   %eax
40fef9:	e8 d2 9c ff ff       	call   0x409bd0
40fefe:	83 c4 0c             	add    $0xc,%esp
40ff01:	33 c0                	xor    %eax,%eax
40ff03:	eb 36                	jmp    0x40ff3b
40ff05:	ff 75 0c             	push   0xc(%ebp)
40ff08:	6a 00                	push   $0x0
40ff0a:	50                   	push   %eax
40ff0b:	e8 00 92 ff ff       	call   0x409110
40ff10:	83 c4 0c             	add    $0xc,%esp
40ff13:	85 ff                	test   %edi,%edi
40ff15:	75 09                	jne    0x40ff20
40ff17:	e8 b7 ed ff ff       	call   0x40ecd3
40ff1c:	6a 16                	push   $0x16
40ff1e:	eb 0c                	jmp    0x40ff2c
40ff20:	39 75 0c             	cmp    %esi,0xc(%ebp)
40ff23:	73 13                	jae    0x40ff38
40ff25:	e8 a9 ed ff ff       	call   0x40ecd3
40ff2a:	6a 22                	push   $0x22
40ff2c:	5e                   	pop    %esi
40ff2d:	89 30                	mov    %esi,(%eax)
40ff2f:	e8 e2 ec ff ff       	call   0x40ec16
40ff34:	8b c6                	mov    %esi,%eax
40ff36:	eb 03                	jmp    0x40ff3b
40ff38:	6a 16                	push   $0x16
40ff3a:	58                   	pop    %eax
40ff3b:	5f                   	pop    %edi
40ff3c:	5e                   	pop    %esi
40ff3d:	5d                   	pop    %ebp
40ff3e:	c3                   	ret
40ff3f:	8b ff                	mov    %edi,%edi
40ff41:	55                   	push   %ebp
40ff42:	8b ec                	mov    %esp,%ebp
40ff44:	83 ec 10             	sub    $0x10,%esp
40ff47:	56                   	push   %esi
40ff48:	ff 75 08             	push   0x8(%ebp)
40ff4b:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40ff4e:	e8 f7 ca ff ff       	call   0x40ca4a
40ff53:	0f b6 75 0c          	movzbl 0xc(%ebp),%esi
40ff57:	8b 45 f8             	mov    -0x8(%ebp),%eax
40ff5a:	8a 4d 14             	mov    0x14(%ebp),%cl
40ff5d:	84 4c 30 19          	test   %cl,0x19(%eax,%esi,1)
40ff61:	75 1b                	jne    0x40ff7e
40ff63:	33 d2                	xor    %edx,%edx
40ff65:	39 55 10             	cmp    %edx,0x10(%ebp)
40ff68:	74 0e                	je     0x40ff78
40ff6a:	8b 45 f4             	mov    -0xc(%ebp),%eax
40ff6d:	8b 00                	mov    (%eax),%eax
40ff6f:	0f b7 04 70          	movzwl (%eax,%esi,2),%eax
40ff73:	23 45 10             	and    0x10(%ebp),%eax
40ff76:	eb 02                	jmp    0x40ff7a
40ff78:	8b c2                	mov    %edx,%eax
40ff7a:	85 c0                	test   %eax,%eax
40ff7c:	74 03                	je     0x40ff81
40ff7e:	33 d2                	xor    %edx,%edx
40ff80:	42                   	inc    %edx
40ff81:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
40ff85:	5e                   	pop    %esi
40ff86:	74 0a                	je     0x40ff92
40ff88:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40ff8b:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
40ff92:	8b c2                	mov    %edx,%eax
40ff94:	c9                   	leave
40ff95:	c3                   	ret
40ff96:	8b ff                	mov    %edi,%edi
40ff98:	55                   	push   %ebp
40ff99:	8b ec                	mov    %esp,%ebp
40ff9b:	6a 04                	push   $0x4
40ff9d:	6a 00                	push   $0x0
40ff9f:	ff 75 08             	push   0x8(%ebp)
40ffa2:	6a 00                	push   $0x0
40ffa4:	e8 96 ff ff ff       	call   0x40ff3f
40ffa9:	83 c4 10             	add    $0x10,%esp
40ffac:	5d                   	pop    %ebp
40ffad:	c3                   	ret
40ffae:	cc                   	int3
40ffaf:	cc                   	int3
40ffb0:	ff 15 b8 c0 41 00    	call   *0x41c0b8
40ffb6:	a3 b4 6e 42 00       	mov    %eax,0x426eb4
40ffbb:	ff 15 bc c0 41 00    	call   *0x41c0bc
40ffc1:	a3 b8 6e 42 00       	mov    %eax,0x426eb8
40ffc6:	b0 01                	mov    $0x1,%al
40ffc8:	c3                   	ret
40ffc9:	8b ff                	mov    %edi,%edi
40ffcb:	55                   	push   %ebp
40ffcc:	8b ec                	mov    %esp,%ebp
40ffce:	8b 45 08             	mov    0x8(%ebp),%eax
40ffd1:	b9 35 c4 00 00       	mov    $0xc435,%ecx
40ffd6:	3b c1                	cmp    %ecx,%eax
40ffd8:	77 28                	ja     0x410002
40ffda:	74 65                	je     0x410041
40ffdc:	83 f8 2a             	cmp    $0x2a,%eax
40ffdf:	74 60                	je     0x410041
40ffe1:	3d 2b c4 00 00       	cmp    $0xc42b,%eax
40ffe6:	76 15                	jbe    0x40fffd
40ffe8:	3d 2e c4 00 00       	cmp    $0xc42e,%eax
40ffed:	76 52                	jbe    0x410041
40ffef:	3d 31 c4 00 00       	cmp    $0xc431,%eax
40fff4:	74 4b                	je     0x410041
40fff6:	3d 33 c4 00 00       	cmp    $0xc433,%eax
40fffb:	74 44                	je     0x410041
40fffd:	8b 4d 0c             	mov    0xc(%ebp),%ecx
410000:	eb 29                	jmp    0x41002b
410002:	3d 98 d6 00 00       	cmp    $0xd698,%eax
410007:	74 1c                	je     0x410025
410009:	3d a9 de 00 00       	cmp    $0xdea9,%eax
41000e:	76 ed                	jbe    0x40fffd
410010:	3d b3 de 00 00       	cmp    $0xdeb3,%eax
410015:	76 2a                	jbe    0x410041
410017:	3d e8 fd 00 00       	cmp    $0xfde8,%eax
41001c:	74 23                	je     0x410041
41001e:	3d e9 fd 00 00       	cmp    $0xfde9,%eax
410023:	75 d8                	jne    0x40fffd
410025:	8b 4d 0c             	mov    0xc(%ebp),%ecx
410028:	83 e1 08             	and    $0x8,%ecx
41002b:	ff 75 1c             	push   0x1c(%ebp)
41002e:	ff 75 18             	push   0x18(%ebp)
410031:	ff 75 14             	push   0x14(%ebp)
410034:	ff 75 10             	push   0x10(%ebp)
410037:	51                   	push   %ecx
410038:	50                   	push   %eax
410039:	ff 15 c0 c0 41 00    	call   *0x41c0c0
41003f:	5d                   	pop    %ebp
410040:	c3                   	ret
410041:	33 c9                	xor    %ecx,%ecx
410043:	eb e6                	jmp    0x41002b
410045:	8b ff                	mov    %edi,%edi
410047:	55                   	push   %ebp
410048:	8b ec                	mov    %esp,%ebp
41004a:	8b 45 08             	mov    0x8(%ebp),%eax
41004d:	ba e9 fd 00 00       	mov    $0xfde9,%edx
410052:	53                   	push   %ebx
410053:	56                   	push   %esi
410054:	57                   	push   %edi
410055:	8d 72 ff             	lea    -0x1(%edx),%esi
410058:	3b c6                	cmp    %esi,%eax
41005a:	74 08                	je     0x410064
41005c:	3b c2                	cmp    %edx,%eax
41005e:	74 04                	je     0x410064
410060:	32 db                	xor    %bl,%bl
410062:	eb 02                	jmp    0x410066
410064:	b3 01                	mov    $0x1,%bl
410066:	b9 35 c4 00 00       	mov    $0xc435,%ecx
41006b:	3b c1                	cmp    %ecx,%eax
41006d:	77 23                	ja     0x410092
41006f:	74 49                	je     0x4100ba
410071:	83 f8 2a             	cmp    $0x2a,%eax
410074:	74 44                	je     0x4100ba
410076:	3d 2b c4 00 00       	cmp    $0xc42b,%eax
41007b:	76 32                	jbe    0x4100af
41007d:	3d 2e c4 00 00       	cmp    $0xc42e,%eax
410082:	76 36                	jbe    0x4100ba
410084:	3d 31 c4 00 00       	cmp    $0xc431,%eax
410089:	74 2f                	je     0x4100ba
41008b:	3d 33 c4 00 00       	cmp    $0xc433,%eax
410090:	eb 1b                	jmp    0x4100ad
410092:	3d 98 d6 00 00       	cmp    $0xd698,%eax
410097:	74 21                	je     0x4100ba
410099:	3d a9 de 00 00       	cmp    $0xdea9,%eax
41009e:	76 0f                	jbe    0x4100af
4100a0:	3d b3 de 00 00       	cmp    $0xdeb3,%eax
4100a5:	76 13                	jbe    0x4100ba
4100a7:	3b c6                	cmp    %esi,%eax
4100a9:	74 0f                	je     0x4100ba
4100ab:	3b c2                	cmp    %edx,%eax
4100ad:	74 0b                	je     0x4100ba
4100af:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4100b2:	81 e1 7f ff ff ff    	and    $0xffffff7f,%ecx
4100b8:	eb 02                	jmp    0x4100bc
4100ba:	33 c9                	xor    %ecx,%ecx
4100bc:	8b 7d 24             	mov    0x24(%ebp),%edi
4100bf:	0f b6 d3             	movzbl %bl,%edx
4100c2:	f7 da                	neg    %edx
4100c4:	0f b6 f3             	movzbl %bl,%esi
4100c7:	1b d2                	sbb    %edx,%edx
4100c9:	f7 d2                	not    %edx
4100cb:	23 d7                	and    %edi,%edx
4100cd:	f7 de                	neg    %esi
4100cf:	1b f6                	sbb    %esi,%esi
4100d1:	f7 d6                	not    %esi
4100d3:	23 75 20             	and    0x20(%ebp),%esi
4100d6:	84 db                	test   %bl,%bl
4100d8:	74 07                	je     0x4100e1
4100da:	85 ff                	test   %edi,%edi
4100dc:	74 03                	je     0x4100e1
4100de:	83 27 00             	andl   $0x0,(%edi)