41fa07:	8b ce                	mov    %esi,%ecx
41fa09:	e8 7c cf fe ff       	call   0x40c98a
41fa0e:	85 c0                	test   %eax,%eax
41fa10:	74 25                	je     0x41fa37
41fa12:	f6 42 04 04          	testb  $0x4,0x4(%edx)
41fa16:	74 1f                	je     0x41fa37
41fa18:	8b ce                	mov    %esi,%ecx
41fa1a:	e8 78 cf fe ff       	call   0x40c997
41fa1f:	85 c0                	test   %eax,%eax
41fa21:	74 07                	je     0x41fa2a
41fa23:	8b 45 f4             	mov    -0xc(%ebp),%eax
41fa26:	8b 00                	mov    (%eax),%eax
41fa28:	eb 05                	jmp    0x41fa2f
41fa2a:	b8 48 20 40 00       	mov    $0x402048,%eax
41fa2f:	89 02                	mov    %eax,(%edx)
41fa31:	c7 03 01 00 00 00    	movl   $0x1,(%ebx)
41fa37:	8b cf                	mov    %edi,%ecx
41fa39:	e8 4c cf fe ff       	call   0x40c98a
41fa3e:	85 c0                	test   %eax,%eax
41fa40:	74 10                	je     0x41fa52
41fa42:	f6 42 04 10          	testb  $0x10,0x4(%edx)
41fa46:	74 0a                	je     0x41fa52
41fa48:	8b 07                	mov    (%edi),%eax
41fa4a:	89 02                	mov    %eax,(%edx)
41fa4c:	c7 03 01 00 00 00    	movl   $0x1,(%ebx)
41fa52:	8b 45 f0             	mov    -0x10(%ebp),%eax
41fa55:	83 c2 0c             	add    $0xc,%edx
41fa58:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41fa5b:	40                   	inc    %eax
41fa5c:	89 45 f0             	mov    %eax,-0x10(%ebp)
41fa5f:	3b 41 7c             	cmp    0x7c(%ecx),%eax
41fa62:	8b 45 ec             	mov    -0x14(%ebp),%eax
41fa65:	0f 82 dc fe ff ff    	jb     0x41f947
41fa6b:	5f                   	pop    %edi
41fa6c:	33 c0                	xor    %eax,%eax
41fa6e:	5e                   	pop    %esi
41fa6f:	5b                   	pop    %ebx
41fa70:	c9                   	leave
41fa71:	c2 0c 00             	ret    $0xc
41fa74:	cc                   	int3
41fa75:	cc                   	int3
41fa76:	cc                   	int3
41fa77:	cc                   	int3
41fa78:	cc                   	int3
41fa79:	cc                   	int3
41fa7a:	cc                   	int3
41fa7b:	cc                   	int3
41fa7c:	cc                   	int3
41fa7d:	cc                   	int3
41fa7e:	cc                   	int3
41fa7f:	cc                   	int3
41fa80:	8b ff                	mov    %edi,%edi
41fa82:	55                   	push   %ebp
41fa83:	8b ec                	mov    %esp,%ebp
41fa85:	51                   	push   %ecx
41fa86:	8b 45 10             	mov    0x10(%ebp),%eax
41fa89:	53                   	push   %ebx
41fa8a:	56                   	push   %esi
41fa8b:	8b 75 0c             	mov    0xc(%ebp),%esi
41fa8e:	33 db                	xor    %ebx,%ebx
41fa90:	89 18                	mov    %ebx,(%eax)
41fa92:	57                   	push   %edi
41fa93:	8b f9                	mov    %ecx,%edi
41fa95:	83 7e 04 11          	cmpl   $0x11,0x4(%esi)
41fa99:	75 73                	jne    0x41fb0e
41fa9b:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
41faa1:	8b 56 0c             	mov    0xc(%esi),%edx
41faa4:	89 5e 14             	mov    %ebx,0x14(%esi)
41faa7:	3b 57 54             	cmp    0x54(%edi),%edx
41faaa:	73 62                	jae    0x41fb0e
41faac:	8b 47 4c             	mov    0x4c(%edi),%eax
41faaf:	8b cb                	mov    %ebx,%ecx
41fab1:	89 5d fc             	mov    %ebx,-0x4(%ebp)
41fab4:	39 4f 58             	cmp    %ecx,0x58(%edi)
41fab7:	74 1e                	je     0x41fad7
41fab9:	39 57 60             	cmp    %edx,0x60(%edi)
41fabc:	77 19                	ja     0x41fad7
41fabe:	8b 4f 5c             	mov    0x5c(%edi),%ecx
41fac1:	8b 47 58             	mov    0x58(%edi),%eax
41fac4:	89 4d fc             	mov    %ecx,-0x4(%ebp)
41fac7:	8b 4f 60             	mov    0x60(%edi),%ecx
41faca:	eb 0b                	jmp    0x41fad7
41facc:	85 c0                	test   %eax,%eax
41face:	74 1f                	je     0x41faef
41fad0:	89 45 fc             	mov    %eax,-0x4(%ebp)
41fad3:	41                   	inc    %ecx
41fad4:	8b 40 0c             	mov    0xc(%eax),%eax
41fad7:	3b ca                	cmp    %edx,%ecx
41fad9:	72 f1                	jb     0x41facc
41fadb:	85 c0                	test   %eax,%eax
41fadd:	74 10                	je     0x41faef
41fadf:	8b 55 fc             	mov    -0x4(%ebp),%edx
41fae2:	8b d8                	mov    %eax,%ebx
41fae4:	89 47 58             	mov    %eax,0x58(%edi)
41fae7:	89 57 5c             	mov    %edx,0x5c(%edi)
41faea:	89 4f 60             	mov    %ecx,0x60(%edi)
41faed:	eb 05                	jmp    0x41faf4
41faef:	e8 46 68 00 00       	call   0x42633a
41faf4:	8b 87 94 00 00 00    	mov    0x94(%edi),%eax
41fafa:	89 46 10             	mov    %eax,0x10(%esi)
41fafd:	8b 03                	mov    (%ebx),%eax
41faff:	89 46 14             	mov    %eax,0x14(%esi)
41fb02:	8b 43 04             	mov    0x4(%ebx),%eax
41fb05:	89 46 18             	mov    %eax,0x18(%esi)
41fb08:	8b 43 08             	mov    0x8(%ebx),%eax
41fb0b:	89 46 1c             	mov    %eax,0x1c(%esi)
41fb0e:	5f                   	pop    %edi
41fb0f:	5e                   	pop    %esi
41fb10:	33 c0                	xor    %eax,%eax
41fb12:	5b                   	pop    %ebx
41fb13:	c9                   	leave
41fb14:	c2 0c 00             	ret    $0xc
41fb17:	8b ff                	mov    %edi,%edi
41fb19:	55                   	push   %ebp
41fb1a:	8b ec                	mov    %esp,%ebp
41fb1c:	83 ec 34             	sub    $0x34,%esp
41fb1f:	53                   	push   %ebx
41fb20:	56                   	push   %esi
41fb21:	57                   	push   %edi
41fb22:	6a 08                	push   $0x8
41fb24:	5b                   	pop    %ebx
41fb25:	8b f1                	mov    %ecx,%esi
41fb27:	8d 7d d0             	lea    -0x30(%ebp),%edi
41fb2a:	33 c0                	xor    %eax,%eax
41fb2c:	8b cb                	mov    %ebx,%ecx
41fb2e:	f3 ab                	rep stos %eax,%es:(%edi)
41fb30:	8d 45 fc             	lea    -0x4(%ebp),%eax
41fb33:	33 d2                	xor    %edx,%edx
41fb35:	50                   	push   %eax
41fb36:	53                   	push   %ebx
41fb37:	8d 45 f0             	lea    -0x10(%ebp),%eax
41fb3a:	89 55 fc             	mov    %edx,-0x4(%ebp)
41fb3d:	50                   	push   %eax
41fb3e:	ff 75 0c             	push   0xc(%ebp)
41fb41:	89 55 f0             	mov    %edx,-0x10(%ebp)
41fb44:	ff 75 08             	push   0x8(%ebp)
41fb47:	89 55 f4             	mov    %edx,-0xc(%ebp)
41fb4a:	89 55 f8             	mov    %edx,-0x8(%ebp)
41fb4d:	ff 15 38 c1 42 00    	call   *0x42c138
41fb53:	85 c0                	test   %eax,%eax
41fb55:	75 12                	jne    0x41fb69
41fb57:	ff 15 18 c2 42 00    	call   *0x42c218
41fb5d:	8b c8                	mov    %eax,%ecx
41fb5f:	e8 46 ba fe ff       	call   0x40b5aa
41fb64:	e9 22 01 00 00       	jmp    0x41fc8b
41fb69:	39 5d fc             	cmp    %ebx,-0x4(%ebp)
41fb6c:	0f 85 14 01 00 00    	jne    0x41fc86
41fb72:	39 5d f0             	cmp    %ebx,-0x10(%ebp)
41fb75:	0f 86 04 01 00 00    	jbe    0x41fc7f
41fb7b:	51                   	push   %ecx
41fb7c:	ff 75 f0             	push   -0x10(%ebp)
41fb7f:	8b ce                	mov    %esi,%ecx
41fb81:	ff 75 0c             	push   0xc(%ebp)
41fb84:	e8 6b 0a 00 00       	call   0x4205f4
41fb89:	6a 20                	push   $0x20
41fb8b:	5f                   	pop    %edi
41fb8c:	39 7d f0             	cmp    %edi,-0x10(%ebp)
41fb8f:	0f 82 e6 00 00 00    	jb     0x41fc7b
41fb95:	81 7d f4 31 30 45 53 	cmpl   $0x53453031,-0xc(%ebp)
41fb9c:	bb 32 30 45 53       	mov    $0x53453032,%ebx
41fba1:	74 09                	je     0x41fbac
41fba3:	39 5d f4             	cmp    %ebx,-0xc(%ebp)
41fba6:	0f 85 cf 00 00 00    	jne    0x41fc7b
41fbac:	8d 45 fc             	lea    -0x4(%ebp),%eax
41fbaf:	50                   	push   %eax
41fbb0:	57                   	push   %edi
41fbb1:	8d 45 d0             	lea    -0x30(%ebp),%eax
41fbb4:	50                   	push   %eax
41fbb5:	ff 75 0c             	push   0xc(%ebp)
41fbb8:	ff 75 08             	push   0x8(%ebp)
41fbbb:	ff 15 38 c1 42 00    	call   *0x42c138
41fbc1:	85 c0                	test   %eax,%eax
41fbc3:	74 92                	je     0x41fb57
41fbc5:	39 7d fc             	cmp    %edi,-0x4(%ebp)
41fbc8:	0f 85 b8 00 00 00    	jne    0x41fc86
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