40fab2:	83 f8 ff             	cmp    $0xffffffff,%eax
40fab5:	74 0f                	je     0x40fac6
40fab7:	33 c0                	xor    %eax,%eax
40fab9:	eb 0e                	jmp    0x40fac9
40fabb:	e8 3a 99 ff ff       	call   0x4093fa
40fac0:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40fac6:	83 c8 ff             	or     $0xffffffff,%eax
40fac9:	5f                   	pop    %edi
40faca:	5e                   	pop    %esi
40facb:	5d                   	pop    %ebp
40facc:	c3                   	ret
40facd:	6a 0c                	push   $0xc
40facf:	68 78 ad 41 00       	push   $0x41ad78
40fad4:	e8 6f db ff ff       	call   0x40d648
40fad9:	ff 75 08             	push   0x8(%ebp)
40fadc:	e8 24 8e ff ff       	call   0x408905
40fae1:	59                   	pop    %ecx
40fae2:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40fae6:	ff 75 14             	push   0x14(%ebp)
40fae9:	ff 75 10             	push   0x10(%ebp)
40faec:	ff 75 0c             	push   0xc(%ebp)
40faef:	ff 75 08             	push   0x8(%ebp)
40faf2:	e8 3d ff ff ff       	call   0x40fa34
40faf7:	83 c4 10             	add    $0x10,%esp
40fafa:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40fafd:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40fb04:	e8 09 00 00 00       	call   0x40fb12
40fb09:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40fb0c:	e8 7c db ff ff       	call   0x40d68d
40fb11:	c3                   	ret
40fb12:	ff 75 08             	push   0x8(%ebp)
40fb15:	e8 3d 8e ff ff       	call   0x408957
40fb1a:	59                   	pop    %ecx
40fb1b:	c3                   	ret
40fb1c:	56                   	push   %esi
40fb1d:	8b 74 24 08          	mov    0x8(%esp),%esi
40fb21:	57                   	push   %edi
40fb22:	56                   	push   %esi
40fb23:	e8 59 52 00 00       	call   0x414d81
40fb28:	83 f8 ff             	cmp    $0xffffffff,%eax
40fb2b:	59                   	pop    %ecx
40fb2c:	74 4d                	je     0x40fb7b
40fb2e:	83 fe 01             	cmp    $0x1,%esi
40fb31:	a1 c0 e4 41 00       	mov    0x41e4c0,%eax
40fb36:	75 06                	jne    0x40fb3e
40fb38:	f6 40 54 01          	testb  $0x1,0x54(%eax)
40fb3c:	75 0b                	jne    0x40fb49
40fb3e:	83 fe 02             	cmp    $0x2,%esi
40fb41:	75 1c                	jne    0x40fb5f
40fb43:	f6 40 2c 01          	testb  $0x1,0x2c(%eax)
40fb47:	74 16                	je     0x40fb5f
40fb49:	6a 02                	push   $0x2
40fb4b:	e8 31 52 00 00       	call   0x414d81
40fb50:	6a 01                	push   $0x1
40fb52:	8b f8                	mov    %eax,%edi
40fb54:	e8 28 52 00 00       	call   0x414d81
40fb59:	3b c7                	cmp    %edi,%eax
40fb5b:	59                   	pop    %ecx
40fb5c:	59                   	pop    %ecx
40fb5d:	74 1c                	je     0x40fb7b
40fb5f:	56                   	push   %esi
40fb60:	e8 1c 52 00 00       	call   0x414d81
40fb65:	59                   	pop    %ecx
40fb66:	50                   	push   %eax
40fb67:	ff 15 20 70 41 00    	call   *0x417020
40fb6d:	85 c0                	test   %eax,%eax
40fb6f:	75 0a                	jne    0x40fb7b
40fb71:	ff 15 b0 70 41 00    	call   *0x4170b0
40fb77:	8b f8                	mov    %eax,%edi
40fb79:	eb 02                	jmp    0x40fb7d
40fb7b:	33 ff                	xor    %edi,%edi
40fb7d:	56                   	push   %esi
40fb7e:	e8 7d 51 00 00       	call   0x414d00
40fb83:	8b c6                	mov    %esi,%eax
40fb85:	83 e6 1f             	and    $0x1f,%esi
40fb88:	6b f6 28             	imul   $0x28,%esi,%esi
40fb8b:	c1 f8 05             	sar    $0x5,%eax
40fb8e:	85 ff                	test   %edi,%edi
40fb90:	8b 04 85 c0 e4 41 00 	mov    0x41e4c0(,%eax,4),%eax
40fb97:	59                   	pop    %ecx
40fb98:	c6 44 30 04 00       	movb   $0x0,0x4(%eax,%esi,1)
40fb9d:	74 0c                	je     0x40fbab
40fb9f:	57                   	push   %edi
40fba0:	e8 7b 98 ff ff       	call   0x409420
40fba5:	59                   	pop    %ecx
40fba6:	83 c8 ff             	or     $0xffffffff,%eax
40fba9:	eb 02                	jmp    0x40fbad
40fbab:	33 c0                	xor    %eax,%eax
40fbad:	5f                   	pop    %edi
40fbae:	5e                   	pop    %esi
40fbaf:	c3                   	ret
40fbb0:	6a 10                	push   $0x10
40fbb2:	68 98 ad 41 00       	push   $0x41ad98
40fbb7:	e8 8c da ff ff       	call   0x40d648
40fbbc:	8b 45 08             	mov    0x8(%ebp),%eax
40fbbf:	83 f8 fe             	cmp    $0xfffffffe,%eax
40fbc2:	75 1b                	jne    0x40fbdf
40fbc4:	e8 44 98 ff ff       	call   0x40940d
40fbc9:	83 20 00             	andl   $0x0,(%eax)
40fbcc:	e8 29 98 ff ff       	call   0x4093fa
40fbd1:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40fbd7:	83 c8 ff             	or     $0xffffffff,%eax
40fbda:	e9 8e 00 00 00       	jmp    0x40fc6d
40fbdf:	33 ff                	xor    %edi,%edi
40fbe1:	3b c7                	cmp    %edi,%eax
40fbe3:	7c 08                	jl     0x40fbed
40fbe5:	3b 05 b4 e4 41 00    	cmp    0x41e4b4,%eax
40fbeb:	72 21                	jb     0x40fc0e
40fbed:	e8 1b 98 ff ff       	call   0x40940d
40fbf2:	89 38                	mov    %edi,(%eax)
40fbf4:	e8 01 98 ff ff       	call   0x4093fa
40fbf9:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40fbff:	57                   	push   %edi
40fc00:	57                   	push   %edi
40fc01:	57                   	push   %edi
40fc02:	57                   	push   %edi
40fc03:	57                   	push   %edi
40fc04:	e8 47 7a ff ff       	call   0x407650
40fc09:	83 c4 14             	add    $0x14,%esp
40fc0c:	eb c9                	jmp    0x40fbd7
40fc0e:	8b c8                	mov    %eax,%ecx
40fc10:	c1 f9 05             	sar    $0x5,%ecx
40fc13:	8d 1c 8d c0 e4 41 00 	lea    0x41e4c0(,%ecx,4),%ebx
40fc1a:	8b f0                	mov    %eax,%esi
40fc1c:	83 e6 1f             	and    $0x1f,%esi
40fc1f:	6b f6 28             	imul   $0x28,%esi,%esi
40fc22:	8b 0b                	mov    (%ebx),%ecx
40fc24:	0f b6 4c 31 04       	movzbl 0x4(%ecx,%esi,1),%ecx
40fc29:	83 e1 01             	and    $0x1,%ecx
40fc2c:	74 bf                	je     0x40fbed
40fc2e:	50                   	push   %eax
40fc2f:	e8 be 51 00 00       	call   0x414df2
40fc34:	59                   	pop    %ecx
40fc35:	89 7d fc             	mov    %edi,-0x4(%ebp)
40fc38:	8b 03                	mov    (%ebx),%eax
40fc3a:	f6 44 30 04 01       	testb  $0x1,0x4(%eax,%esi,1)
40fc3f:	74 0e                	je     0x40fc4f
40fc41:	ff 75 08             	push   0x8(%ebp)
40fc44:	e8 d3 fe ff ff       	call   0x40fb1c
40fc49:	59                   	pop    %ecx
40fc4a:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40fc4d:	eb 0f                	jmp    0x40fc5e
40fc4f:	e8 a6 97 ff ff       	call   0x4093fa
40fc54:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40fc5a:	83 4d e4 ff          	orl    $0xffffffff,-0x1c(%ebp)
40fc5e:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40fc65:	e8 09 00 00 00       	call   0x40fc73
40fc6a:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40fc6d:	e8 1b da ff ff       	call   0x40d68d
40fc72:	c3                   	ret
40fc73:	ff 75 08             	push   0x8(%ebp)
40fc76:	e8 17 52 00 00       	call   0x414e92
40fc7b:	59                   	pop    %ecx
40fc7c:	c3                   	ret
40fc7d:	6a 10                	push   $0x10
40fc7f:	68 b8 ad 41 00       	push   $0x41adb8
40fc84:	e8 bf d9 ff ff       	call   0x40d648
40fc89:	33 c0                	xor    %eax,%eax
40fc8b:	8b 5d 08             	mov    0x8(%ebp),%ebx
40fc8e:	33 ff                	xor    %edi,%edi
40fc90:	3b df                	cmp    %edi,%ebx
40fc92:	0f 95 c0             	setne  %al
40fc95:	3b c7                	cmp    %edi,%eax
40fc97:	75 1d                	jne    0x40fcb6
40fc99:	e8 5c 97 ff ff       	call   0x4093fa
40fc9e:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40fca4:	57                   	push   %edi
40fca5:	57                   	push   %edi
40fca6:	57                   	push   %edi
40fca7:	57                   	push   %edi
40fca8:	57                   	push   %edi
40fca9:	e8 a2 79 ff ff       	call   0x407650
40fcae:	83 c4 14             	add    $0x14,%esp
40fcb1:	83 c8 ff             	or     $0xffffffff,%eax
40fcb4:	eb 53                	jmp    0x40fd09
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