41fbce:	39 7d d0             	cmp    %edi,-0x30(%ebp)
41fbd1:	0f 82 a8 00 00 00    	jb     0x41fc7f
41fbd7:	81 7d d4 31 30 45 53 	cmpl   $0x53453031,-0x2c(%ebp)
41fbde:	74 09                	je     0x41fbe9
41fbe0:	39 5d d4             	cmp    %ebx,-0x2c(%ebp)
41fbe3:	0f 85 96 00 00 00    	jne    0x41fc7f
41fbe9:	8b 45 dc             	mov    -0x24(%ebp),%eax
41fbec:	83 e0 03             	and    $0x3,%eax
41fbef:	83 e8 01             	sub    $0x1,%eax
41fbf2:	74 48                	je     0x41fc3c
41fbf4:	83 e8 01             	sub    $0x1,%eax
41fbf7:	0f 85 82 00 00 00    	jne    0x41fc7f
41fbfd:	8b 55 08             	mov    0x8(%ebp),%edx
41fc00:	51                   	push   %ecx
41fc01:	ff 75 e0             	push   -0x20(%ebp)
41fc04:	8d 4d f8             	lea    -0x8(%ebp),%ecx
41fc07:	e8 f8 00 00 00       	call   0x41fd04
41fc0c:	85 c0                	test   %eax,%eax
41fc0e:	78 1d                	js     0x41fc2d
41fc10:	8b 45 f8             	mov    -0x8(%ebp),%eax
41fc13:	8d 3c 00             	lea    (%eax,%eax,1),%edi
41fc16:	81 ff ff ff 00 00    	cmp    $0xffff,%edi
41fc1c:	76 05                	jbe    0x41fc23
41fc1e:	e8 17 67 00 00       	call   0x42633a
41fc23:	51                   	push   %ecx
41fc24:	8d 47 02             	lea    0x2(%edi),%eax
41fc27:	50                   	push   %eax
41fc28:	ff 75 e0             	push   -0x20(%ebp)
41fc2b:	eb 47                	jmp    0x41fc74
41fc2d:	3d 06 01 00 d0       	cmp    $0xd0000106,%eax
41fc32:	75 47                	jne    0x41fc7b
41fc34:	51                   	push   %ecx
41fc35:	68 ff ff 00 00       	push   $0xffff
41fc3a:	eb ec                	jmp    0x41fc28
41fc3c:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
41fc40:	74 39                	je     0x41fc7b
41fc42:	8b 45 e8             	mov    -0x18(%ebp),%eax
41fc45:	85 c0                	test   %eax,%eax
41fc47:	74 32                	je     0x41fc7b
41fc49:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
41fc4d:	74 2c                	je     0x41fc7b
41fc4f:	f7 65 e4             	mull   -0x1c(%ebp)
41fc52:	85 d2                	test   %edx,%edx
41fc54:	77 14                	ja     0x41fc6a
41fc56:	72 05                	jb     0x41fc5d
41fc58:	83 f8 ff             	cmp    $0xffffffff,%eax
41fc5b:	77 0d                	ja     0x41fc6a
41fc5d:	b9 fc ff 03 00       	mov    $0x3fffc,%ecx
41fc62:	3b c1                	cmp    %ecx,%eax
41fc64:	72 09                	jb     0x41fc6f
41fc66:	8b c1                	mov    %ecx,%eax
41fc68:	eb 05                	jmp    0x41fc6f
41fc6a:	b8 fc ff 03 00       	mov    $0x3fffc,%eax
41fc6f:	51                   	push   %ecx
41fc70:	50                   	push   %eax
41fc71:	ff 75 ec             	push   -0x14(%ebp)
41fc74:	8b ce                	mov    %esi,%ecx
41fc76:	e8 79 09 00 00       	call   0x4205f4
41fc7b:	33 c0                	xor    %eax,%eax
41fc7d:	eb 0c                	jmp    0x41fc8b
41fc7f:	b8 0d 00 07 80       	mov    $0x8007000d,%eax
41fc84:	eb 05                	jmp    0x41fc8b
41fc86:	b8 2b 01 07 80       	mov    $0x8007012b,%eax
41fc8b:	5f                   	pop    %edi
41fc8c:	5e                   	pop    %esi
41fc8d:	5b                   	pop    %ebx
41fc8e:	c9                   	leave
41fc8f:	c2 08 00             	ret    $0x8
41fc92:	8b ff                	mov    %edi,%edi
41fc94:	55                   	push   %ebp
41fc95:	8b ec                	mov    %esp,%ebp
41fc97:	83 ec 0c             	sub    $0xc,%esp
41fc9a:	53                   	push   %ebx
41fc9b:	8b c1                	mov    %ecx,%eax
41fc9d:	56                   	push   %esi
41fc9e:	33 f6                	xor    %esi,%esi
41fca0:	89 45 f8             	mov    %eax,-0x8(%ebp)
41fca3:	57                   	push   %edi
41fca4:	89 30                	mov    %esi,(%eax)
41fca6:	8b fe                	mov    %esi,%edi
41fca8:	8b de                	mov    %esi,%ebx
41fcaa:	8b f2                	mov    %edx,%esi
41fcac:	8d 43 0b             	lea    0xb(%ebx),%eax
41fcaf:	8b d3                	mov    %ebx,%edx
41fcb1:	50                   	push   %eax
41fcb2:	8b ce                	mov    %esi,%ecx
41fcb4:	e8 60 02 00 00       	call   0x41ff19
41fcb9:	83 c3 0c             	add    $0xc,%ebx
41fcbc:	33 f8                	xor    %eax,%edi
41fcbe:	83 fb 78             	cmp    $0x78,%ebx
41fcc1:	72 e9                	jb     0x41fcac
41fcc3:	6a 7f                	push   $0x7f
41fcc5:	6a 78                	push   $0x78
41fcc7:	5a                   	pop    %edx
41fcc8:	8b ce                	mov    %esi,%ecx
41fcca:	e8 4a 02 00 00       	call   0x41ff19
41fccf:	8b d8                	mov    %eax,%ebx
41fcd1:	33 fb                	xor    %ebx,%edi
41fcd3:	33 f6                	xor    %esi,%esi
41fcd5:	8b ce                	mov    %esi,%ecx
41fcd7:	8b d3                	mov    %ebx,%edx
41fcd9:	03 f6                	add    %esi,%esi
41fcdb:	d3 ea                	shr    %cl,%edx
41fcdd:	83 e2 01             	and    $0x1,%edx
41fce0:	0b f2                	or     %edx,%esi
41fce2:	41                   	inc    %ecx
41fce3:	83 f9 08             	cmp    $0x8,%ecx
41fce6:	7c ef                	jl     0x41fcd7
41fce8:	c1 e6 04             	shl    $0x4,%esi
41fceb:	33 fe                	xor    %esi,%edi
41fced:	f7 c7 00 f0 ff ff    	test   $0xfffff000,%edi
41fcf3:	74 05                	je     0x41fcfa
41fcf5:	e8 40 66 00 00       	call   0x42633a
41fcfa:	8b 45 f8             	mov    -0x8(%ebp),%eax
41fcfd:	89 38                	mov    %edi,(%eax)
41fcff:	5f                   	pop    %edi
41fd00:	5e                   	pop    %esi
41fd01:	5b                   	pop    %ebx
41fd02:	c9                   	leave
41fd03:	c3                   	ret
41fd04:	8b ff                	mov    %edi,%edi
41fd06:	55                   	push   %ebp
41fd07:	8b ec                	mov    %esp,%ebp
41fd09:	83 ec 10             	sub    $0x10,%esp
41fd0c:	53                   	push   %ebx
41fd0d:	8b 5d 08             	mov    0x8(%ebp),%ebx
41fd10:	8b c1                	mov    %ecx,%eax
41fd12:	56                   	push   %esi
41fd13:	33 c9                	xor    %ecx,%ecx
41fd15:	89 45 f0             	mov    %eax,-0x10(%ebp)
41fd18:	57                   	push   %edi
41fd19:	6a 04                	push   $0x4
41fd1b:	89 08                	mov    %ecx,(%eax)
41fd1d:	8b f1                	mov    %ecx,%esi
41fd1f:	b8 00 10 00 00       	mov    $0x1000,%eax
41fd24:	89 55 f4             	mov    %edx,-0xc(%ebp)
41fd27:	50                   	push   %eax
41fd28:	50                   	push   %eax
41fd29:	51                   	push   %ecx
41fd2a:	89 4d fc             	mov    %ecx,-0x4(%ebp)
41fd2d:	89 4d f8             	mov    %ecx,-0x8(%ebp)
41fd30:	ff 15 d8 c0 42 00    	call   *0x42c0d8
41fd36:	8b f8                	mov    %eax,%edi
41fd38:	85 ff                	test   %edi,%edi
41fd3a:	75 14                	jne    0x41fd50
41fd3c:	ff 15 18 c2 42 00    	call   *0x42c218
41fd42:	8b c8                	mov    %eax,%ecx
41fd44:	e8 61 b8 fe ff       	call   0x40b5aa
41fd49:	8b f0                	mov    %eax,%esi
41fd4b:	e9 89 00 00 00       	jmp    0x41fdd9
41fd50:	8d 45 fc             	lea    -0x4(%ebp),%eax
41fd53:	50                   	push   %eax
41fd54:	68 00 10 00 00       	push   $0x1000
41fd59:	57                   	push   %edi
41fd5a:	53                   	push   %ebx
41fd5b:	ff 75 f4             	push   -0xc(%ebp)
41fd5e:	ff 15 38 c1 42 00    	call   *0x42c138
41fd64:	85 c0                	test   %eax,%eax
41fd66:	74 54                	je     0x41fdbc
41fd68:	b8 00 10 00 00       	mov    $0x1000,%eax
41fd6d:	39 45 fc             	cmp    %eax,-0x4(%ebp)
41fd70:	75 43                	jne    0x41fdb5
41fd72:	03 d8                	add    %eax,%ebx
41fd74:	8b cf                	mov    %edi,%ecx
41fd76:	8d 45 f8             	lea    -0x8(%ebp),%eax
41fd79:	50                   	push   %eax
41fd7a:	e8 50 3d ff ff       	call   0x413acf
41fd7f:	85 c0                	test   %eax,%eax
41fd81:	79 10                	jns    0x41fd93
41fd83:	81 c6 00 08 00 00    	add    $0x800,%esi
41fd89:	81 fe ff 7f 00 00    	cmp    $0x7fff,%esi
41fd8f:	72 bf                	jb     0x41fd50
41fd91:	eb 07                	jmp    0x41fd9a
41fd93:	8b 45 f8             	mov    -0x8(%ebp),%eax
41fd96:	d1 e8                	shr    $1,%eax
41fd98:	03 f0                	add    %eax,%esi
41fd9a:	8b 45 f0             	mov    -0x10(%ebp),%eax
41fd9d:	81 fe ff 7f 00 00    	cmp    $0x7fff,%esi
41fda3:	89 30                	mov    %esi,(%eax)
41fda5:	1b f6                	sbb    %esi,%esi
41fda7:	81 e6 fa fe ff 2f    	and    $0x2ffffefa,%esi
41fdad:	81 c6 06 01 00 d0    	add    $0xd0000106,%esi
41fdb3:	eb 16                	jmp    0x41fdcb
41fdb5:	be 2b 01 07 80       	mov    $0x8007012b,%esi
41fdba:	eb 0f                	jmp    0x41fdcb
41fdbc:	ff 15 18 c2 42 00    	call   *0x42c218
41fdc2:	8b c8                	mov    %eax,%ecx
41fdc4:	e8 e1 b7 fe ff       	call   0x40b5aa
41fdc9:	8b f0                	mov    %eax,%esi
41fdcb:	68 00 80 00 00       	push   $0x8000
41fdd0:	6a 00                	push   $0x0
41fdd2:	57                   	push   %edi
41fdd3:	ff 15 d4 c0 42 00    	call   *0x42c0d4
41fdd9:	5f                   	pop    %edi
41fdda:	8b c6                	mov    %esi,%eax
41fddc:	5e                   	pop    %esi
41fddd:	5b                   	pop    %ebx
41fdde:	c9                   	leave
41fddf:	c2 08 00             	ret    $0x8
41fde2:	8b ff                	mov    %edi,%edi
41fde4:	55                   	push   %ebp
41fde5:	8b ec                	mov    %esp,%ebp
41fde7:	83 ec 34             	sub    $0x34,%esp
41fdea:	a1 74 b6 42 00       	mov    0x42b674,%eax
41fdef:	33 c5                	xor    %ebp,%eax
41fdf1:	89 45 fc             	mov    %eax,-0x4(%ebp)
41fdf4:	8b 45 08             	mov    0x8(%ebp),%eax
41fdf7:	53                   	push   %ebx
41fdf8:	56                   	push   %esi
41fdf9:	57                   	push   %edi
41fdfa:	89 45 d8             	mov    %eax,-0x28(%ebp)
41fdfd:	8d 7d e8             	lea    -0x18(%ebp),%edi
41fe00:	33 c0                	xor    %eax,%eax
41fe02:	89 55 d4             	mov    %edx,-0x2c(%ebp)
41fe05:	ab                   	stos   %eax,%es:(%edi)
41fe06:	33 f6                	xor    %esi,%esi
41fe08:	6a 04                	push   $0x4
41fe0a:	89 4d d0             	mov    %ecx,-0x30(%ebp)
41fe0d:	8b de                	mov    %esi,%ebx
41fe0f:	89 75 e4             	mov    %esi,-0x1c(%ebp)
41fe12:	ab                   	stos   %eax,%es:(%edi)
41fe13:	89 31                	mov    %esi,(%ecx)
41fe15:	ab                   	stos   %eax,%es:(%edi)
41fe16:	ab                   	stos   %eax,%es:(%edi)
41fe17:	ab                   	stos   %eax,%es:(%edi)
41fe18:	b8 00 10 00 00       	mov    $0x1000,%eax
41fe1d:	50                   	push   %eax
41fe1e:	50                   	push   %eax
41fe1f:	56                   	push   %esi
41fe20:	ff 15 d8 c0 42 00    	call   *0x42c0d8
41fe26:	89 45 e0             	mov    %eax,-0x20(%ebp)
41fe29:	85 c0                	test   %eax,%eax
41fe2b:	75 14                	jne    0x41fe41
41fe2d:	ff 15 18 c2 42 00    	call   *0x42c218
41fe33:	8b c8                	mov    %eax,%ecx
41fe35:	e8 70 b7 fe ff       	call   0x40b5aa
41fe3a:	8b f0                	mov    %eax,%esi
41fe3c:	e9 ad 00 00 00       	jmp    0x41feee
41fe41:	56                   	push   %esi
41fe42:	56                   	push   %esi
41fe43:	56                   	push   %esi
41fe44:	56                   	push   %esi
41fe45:	56                   	push   %esi
41fe46:	8d 45 e8             	lea    -0x18(%ebp),%eax
41fe49:	50                   	push   %eax
41fe4a:	6a 21                	push   $0x21
41fe4c:	ff 15 f4 c2 42 00    	call   *0x42c2f4
41fe52:	85 c0                	test   %eax,%eax
41fe54:	79 05                	jns    0x41fe5b
41fe56:	6a 07                	push   $0x7
41fe58:	59                   	pop    %ecx
41fe59:	cd 29                	int    $0x29
41fe5b:	8b 7d 0c             	mov    0xc(%ebp),%edi
41fe5e:	c7 45 dc 01 00 00 00 	movl   $0x1,-0x24(%ebp)
41fe65:	85 ff                	test   %edi,%edi
41fe67:	74 51                	je     0x41feba
41fe69:	8b f7                	mov    %edi,%esi
41fe6b:	b8 00 10 00 00       	mov    $0x1000,%eax
41fe70:	2b f3                	sub    %ebx,%esi
41fe72:	3b f0                	cmp    %eax,%esi
41fe74:	76 02                	jbe    0x41fe78
41fe76:	8b f0                	mov    %eax,%esi
41fe78:	8d 45 e4             	lea    -0x1c(%ebp),%eax
41fe7b:	50                   	push   %eax
41fe7c:	8b 45 d8             	mov    -0x28(%ebp),%eax
41fe7f:	56                   	push   %esi
41fe80:	ff 75 e0             	push   -0x20(%ebp)
41fe83:	03 c3                	add    %ebx,%eax
41fe85:	50                   	push   %eax
41fe86:	ff 75 d4             	push   -0x2c(%ebp)
41fe89:	ff 15 38 c1 42 00    	call   *0x42c138
41fe8f:	85 c0                	test   %eax,%eax
41fe91:	74 75                	je     0x41ff08
41fe93:	39 75 e4             	cmp    %esi,-0x1c(%ebp)
41fe96:	75 69                	jne    0x41ff01
41fe98:	33 f6                	xor    %esi,%esi
41fe9a:	56                   	push   %esi
41fe9b:	ff 75 e4             	push   -0x1c(%ebp)
41fe9e:	ff 75 e0             	push   -0x20(%ebp)
41fea1:	ff 75 e8             	push   -0x18(%ebp)
41fea4:	ff 15 f8 c2 42 00    	call   *0x42c2f8
41feaa:	85 c0                	test   %eax,%eax
41feac:	79 05                	jns    0x41feb3
41feae:	6a 07                	push   $0x7
41feb0:	59                   	pop    %ecx
41feb1:	cd 29                	int    $0x29
41feb3:	03 5d e4             	add    -0x1c(%ebp),%ebx
41feb6:	3b df                	cmp    %edi,%ebx
41feb8:	72 af                	jb     0x41fe69
41feba:	8d 4d e8             	lea    -0x18(%ebp),%ecx
41febd:	e8 21 09 00 00       	call   0x4207e3
41fec2:	8b 4d d0             	mov    -0x30(%ebp),%ecx
41fec5:	8d 55 ec             	lea    -0x14(%ebp),%edx
41fec8:	89 75 dc             	mov    %esi,-0x24(%ebp)
41fecb:	e8 c2 fd ff ff       	call   0x41fc92
41fed0:	68 00 80 00 00       	push   $0x8000
41fed5:	6a 00                	push   $0x0
41fed7:	ff 75 e0             	push   -0x20(%ebp)
41feda:	ff 15 d4 c0 42 00    	call   *0x42c0d4
41fee0:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
41fee4:	74 08                	je     0x41feee
41fee6:	8d 4d e8             	lea    -0x18(%ebp),%ecx
41fee9:	e8 f5 08 00 00       	call   0x4207e3
41feee:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41fef1:	8b c6                	mov    %esi,%eax
41fef3:	5f                   	pop    %edi
41fef4:	5e                   	pop    %esi
41fef5:	33 cd                	xor    %ebp,%ecx
41fef7:	5b                   	pop    %ebx
41fef8:	e8 e3 7b 00 00       	call   0x427ae0
41fefd:	c9                   	leave
41fefe:	c2 08 00             	ret    $0x8
41ff01:	be 2b 01 07 80       	mov    $0x8007012b,%esi
41ff06:	eb c8                	jmp    0x41fed0
41ff08:	ff 15 18 c2 42 00    	call   *0x42c218
41ff0e:	8b c8                	mov    %eax,%ecx
41ff10:	e8 95 b6 fe ff       	call   0x40b5aa
41ff15:	8b f0                	mov    %eax,%esi
41ff17:	eb b7                	jmp    0x41fed0
41ff19:	8b ff                	mov    %edi,%edi
41ff1b:	55                   	push   %ebp
41ff1c:	8b ec                	mov    %esp,%ebp
41ff1e:	51                   	push   %ecx
41ff1f:	51                   	push   %ecx
41ff20:	53                   	push   %ebx
41ff21:	8b 5d 08             	mov    0x8(%ebp),%ebx
41ff24:	56                   	push   %esi
41ff25:	57                   	push   %edi
41ff26:	8b f2                	mov    %edx,%esi
41ff28:	89 4d fc             	mov    %ecx,-0x4(%ebp)
41ff2b:	33 ff                	xor    %edi,%edi
41ff2d:	3b de                	cmp    %esi,%ebx
41ff2f:	7d 05                	jge    0x41ff36
41ff31:	e8 04 64 00 00       	call   0x42633a
41ff36:	8b c3                	mov    %ebx,%eax
41ff38:	2b c6                	sub    %esi,%eax
41ff3a:	40                   	inc    %eax
41ff3b:	83 f8 20             	cmp    $0x20,%eax
41ff3e:	76 23                	jbe    0x41ff63
41ff40:	e8 f5 63 00 00       	call   0x42633a
41ff45:	eb 1c                	jmp    0x41ff63
41ff47:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41ff4a:	8b c3                	mov    %ebx,%eax
41ff4c:	c1 f8 03             	sar    $0x3,%eax
41ff4f:	03 ff                	add    %edi,%edi
41ff51:	0f b6 14 08          	movzbl (%eax,%ecx,1),%edx
41ff55:	0f b6 cb             	movzbl %bl,%ecx
41ff58:	83 e1 07             	and    $0x7,%ecx
41ff5b:	d3 ea                	shr    %cl,%edx
41ff5d:	83 e2 01             	and    $0x1,%edx