451dfd:	56                   	push   %esi
451dfe:	8b c8                	mov    %eax,%ecx
451e00:	e8 b9 04 00 00       	call   0x4522be
451e05:	33 c0                	xor    %eax,%eax
451e07:	5e                   	pop    %esi
451e08:	c2 04 00             	ret    $0x4
451e0b:	b8 a5 42 48 00       	mov    $0x4842a5,%eax
451e10:	e8 67 5e fc ff       	call   0x417c7c
451e15:	83 ec 0c             	sub    $0xc,%esp
451e18:	56                   	push   %esi
451e19:	ff 75 14             	push   0x14(%ebp)
451e1c:	8b f1                	mov    %ecx,%esi
451e1e:	ff 75 10             	push   0x10(%ebp)
451e21:	ff 75 0c             	push   0xc(%ebp)
451e24:	ff 75 08             	push   0x8(%ebp)
451e27:	e8 15 04 ff ff       	call   0x442241
451e2c:	85 c0                	test   %eax,%eax
451e2e:	74 05                	je     0x451e35
451e30:	33 c0                	xor    %eax,%eax
451e32:	40                   	inc    %eax
451e33:	eb 37                	jmp    0x451e6c
451e35:	83 7e 50 00          	cmpl   $0x0,0x50(%esi)
451e39:	74 2f                	je     0x451e6a
451e3b:	56                   	push   %esi
451e3c:	8d 4d e8             	lea    -0x18(%ebp),%ecx
451e3f:	e8 f3 42 fc ff       	call   0x416137
451e44:	ff 75 14             	push   0x14(%ebp)
451e47:	8b 4e 50             	mov    0x50(%esi),%ecx
451e4a:	ff 75 10             	push   0x10(%ebp)
451e4d:	8b 01                	mov    (%ecx),%eax
451e4f:	ff 75 0c             	push   0xc(%ebp)
451e52:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
451e56:	ff 75 08             	push   0x8(%ebp)
451e59:	ff 50 0c             	call   *0xc(%eax)
451e5c:	8d 4d e8             	lea    -0x18(%ebp),%ecx
451e5f:	8b f0                	mov    %eax,%esi
451e61:	e8 03 43 fc ff       	call   0x416169
451e66:	8b c6                	mov    %esi,%eax
451e68:	eb 02                	jmp    0x451e6c
451e6a:	33 c0                	xor    %eax,%eax
451e6c:	8b 4d f4             	mov    -0xc(%ebp),%ecx
451e6f:	5e                   	pop    %esi
451e70:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
451e77:	c9                   	leave
451e78:	c2 10 00             	ret    $0x10
451e7b:	6a 01                	push   $0x1
451e7d:	6a 00                	push   $0x0
451e7f:	ff 71 1c             	push   0x1c(%ecx)
451e82:	ff 15 14 06 4b 00    	call   *0x4b0614
451e88:	c2 0c 00             	ret    $0xc
451e8b:	55                   	push   %ebp
451e8c:	56                   	push   %esi
451e8d:	8b f1                	mov    %ecx,%esi
451e8f:	e8 6b 2d ff ff       	call   0x444bff
451e94:	8b e8                	mov    %eax,%ebp
451e96:	83 fd 03             	cmp    $0x3,%ebp
451e99:	74 56                	je     0x451ef1
451e9b:	83 fd 04             	cmp    $0x4,%ebp
451e9e:	74 51                	je     0x451ef1
451ea0:	53                   	push   %ebx
451ea1:	8b ce                	mov    %esi,%ecx
451ea3:	e8 a4 38 ff ff       	call   0x44574c
451ea8:	8b d8                	mov    %eax,%ebx
451eaa:	85 db                	test   %ebx,%ebx
451eac:	74 42                	je     0x451ef0
451eae:	57                   	push   %edi
451eaf:	8b cb                	mov    %ebx,%ecx
451eb1:	e8 c6 e8 00 00       	call   0x46077c
451eb6:	8b f8                	mov    %eax,%edi
451eb8:	ff 15 d4 07 4b 00    	call   *0x4b07d4
451ebe:	3b fe                	cmp    %esi,%edi
451ec0:	5f                   	pop    %edi
451ec1:	75 23                	jne    0x451ee6
451ec3:	8b 4e 1c             	mov    0x1c(%esi),%ecx
451ec6:	3b c8                	cmp    %eax,%ecx
451ec8:	74 1c                	je     0x451ee6
451eca:	50                   	push   %eax
451ecb:	51                   	push   %ecx
451ecc:	ff 15 b4 06 4b 00    	call   *0x4b06b4
451ed2:	85 c0                	test   %eax,%eax
451ed4:	75 10                	jne    0x451ee6
451ed6:	8b 06                	mov    (%esi),%eax
451ed8:	56                   	push   %esi
451ed9:	56                   	push   %esi
451eda:	6a 01                	push   $0x1
451edc:	8b ce                	mov    %esi,%ecx
451ede:	ff 90 5c 01 00 00    	call   *0x15c(%eax)
451ee4:	eb 0a                	jmp    0x451ef0
451ee6:	6a 01                	push   $0x1
451ee8:	56                   	push   %esi
451ee9:	8b cb                	mov    %ebx,%ecx
451eeb:	e8 93 e8 00 00       	call   0x460783
451ef0:	5b                   	pop    %ebx
451ef1:	5e                   	pop    %esi
451ef2:	8b c5                	mov    %ebp,%eax
451ef4:	5d                   	pop    %ebp
451ef5:	c2 0c 00             	ret    $0xc
451ef8:	53                   	push   %ebx
451ef9:	56                   	push   %esi
451efa:	8b 35 d8 07 4b 00    	mov    0x4b07d8,%esi
451f00:	57                   	push   %edi
451f01:	8b 7c 24 10          	mov    0x10(%esp),%edi
451f05:	ff 77 1c             	push   0x1c(%edi)
451f08:	ff d6                	call   *%esi
451f0a:	50                   	push   %eax
451f0b:	e8 92 2d ff ff       	call   0x444ca2
451f10:	8b d8                	mov    %eax,%ebx
451f12:	68 74 0b 49 00       	push   $0x490b74
451f17:	8b cb                	mov    %ebx,%ecx
451f19:	e8 e0 ea fe ff       	call   0x4409fe
451f1e:	85 c0                	test   %eax,%eax
451f20:	74 2f                	je     0x451f51
451f22:	83 7c 24 14 00       	cmpl   $0x0,0x14(%esp)
451f27:	74 15                	je     0x451f3e
451f29:	8b c3                	mov    %ebx,%eax
451f2b:	5f                   	pop    %edi
451f2c:	5e                   	pop    %esi
451f2d:	5b                   	pop    %ebx
451f2e:	c2 08 00             	ret    $0x8
451f31:	ff 77 1c             	push   0x1c(%edi)
451f34:	ff 15 90 08 4b 00    	call   *0x4b0890
451f3a:	85 c0                	test   %eax,%eax
451f3c:	75 13                	jne    0x451f51
451f3e:	ff 77 1c             	push   0x1c(%edi)
451f41:	ff d6                	call   *%esi
451f43:	50                   	push   %eax
451f44:	e8 59 2d ff ff       	call   0x444ca2
451f49:	8b f8                	mov    %eax,%edi
451f4b:	85 ff                	test   %edi,%edi
451f4d:	75 e2                	jne    0x451f31
451f4f:	eb d8                	jmp    0x451f29
451f51:	33 c0                	xor    %eax,%eax
451f53:	eb d6                	jmp    0x451f2b
451f55:	56                   	push   %esi
451f56:	8b f1                	mov    %ecx,%esi
451f58:	e8 e9 ec fe ff       	call   0x440c46
451f5d:	8b 54 24 08          	mov    0x8(%esp),%edx
451f61:	f7 da                	neg    %edx
451f63:	1b d2                	sbb    %edx,%edx
451f65:	b9 00 00 10 00       	mov    $0x100000,%ecx
451f6a:	23 d1                	and    %ecx,%edx
451f6c:	03 d1                	add    %ecx,%edx
451f6e:	85 c2                	test   %eax,%edx
451f70:	74 04                	je     0x451f76
451f72:	33 c0                	xor    %eax,%eax
451f74:	eb 54                	jmp    0x451fca
451f76:	57                   	push   %edi
451f77:	6a 01                	push   $0x1
451f79:	56                   	push   %esi
451f7a:	e8 79 ff ff ff       	call   0x451ef8
451f7f:	8b f8                	mov    %eax,%edi
451f81:	85 ff                	test   %edi,%edi
451f83:	74 42                	je     0x451fc7
451f85:	ff 76 1c             	push   0x1c(%esi)
451f88:	ff 15 0c 08 4b 00    	call   *0x4b080c
451f8e:	0f b7 c0             	movzwl %ax,%eax
451f91:	3d 00 e9 00 00       	cmp    $0xe900,%eax
451f96:	72 2f                	jb     0x451fc7
451f98:	3d ff e9 00 00       	cmp    $0xe9ff,%eax
451f9d:	77 28                	ja     0x451fc7
451f9f:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
451fa4:	75 0a                	jne    0x451fb0
451fa6:	83 e0 0f             	and    $0xf,%eax
451fa9:	05 00 ea 00 00       	add    $0xea00,%eax
451fae:	eb 0d                	jmp    0x451fbd
451fb0:	05 00 17 ff ff       	add    $0xffff1700,%eax
451fb5:	c1 e8 04             	shr    $0x4,%eax
451fb8:	05 10 ea 00 00       	add    $0xea10,%eax
451fbd:	50                   	push   %eax
451fbe:	8b cf                	mov    %edi,%ecx
451fc0:	e8 17 eb fe ff       	call   0x440adc
451fc5:	eb 02                	jmp    0x451fc9
451fc7:	33 c0                	xor    %eax,%eax
451fc9:	5f                   	pop    %edi
451fca:	5e                   	pop    %esi
451fcb:	c2 04 00             	ret    $0x4
451fce:	6a 00                	push   $0x0
451fd0:	51                   	push   %ecx
451fd1:	e8 22 ff ff ff       	call   0x451ef8
451fd6:	85 c0                	test   %eax,%eax
451fd8:	74 0e                	je     0x451fe8
451fda:	83 b8 94 00 00 00 00 	cmpl   $0x0,0x94(%eax)
451fe1:	75 05                	jne    0x451fe8
451fe3:	33 c0                	xor    %eax,%eax
451fe5:	40                   	inc    %eax
451fe6:	eb 02                	jmp    0x451fea
451fe8:	33 c0                	xor    %eax,%eax
451fea:	8b 4c 24 04          	mov    0x4(%esp),%ecx
451fee:	8b 11                	mov    (%ecx),%edx
451ff0:	50                   	push   %eax
451ff1:	ff 12                	call   *(%edx)
451ff3:	c2 04 00             	ret    $0x4
451ff6:	6a 00                	push   $0x0
451ff8:	51                   	push   %ecx
451ff9:	e8 fa fe ff ff       	call   0x451ef8
451ffe:	85 c0                	test   %eax,%eax
452000:	74 0d                	je     0x45200f
452002:	8b 10                	mov    (%eax),%edx
452004:	8b c8                	mov    %eax,%ecx
452006:	ff 92 70 01 00 00    	call   *0x170(%edx)
45200c:	33 c0                	xor    %eax,%eax
45200e:	40                   	inc    %eax
45200f:	c2 04 00             	ret    $0x4
452012:	56                   	push   %esi
452013:	6a 00                	push   $0x0
452015:	51                   	push   %ecx
452016:	e8 dd fe ff ff       	call   0x451ef8
45201b:	85 c0                	test   %eax,%eax
45201d:	8b 74 24 08          	mov    0x8(%esp),%esi
452021:	74 20                	je     0x452043
452023:	8b 10                	mov    (%eax),%edx
452025:	33 c9                	xor    %ecx,%ecx
452027:	81 7e 04 51 e1 00 00 	cmpl   $0xe151,0x4(%esi)
45202e:	0f 94 c1             	sete   %cl
452031:	51                   	push   %ecx
452032:	8b c8                	mov    %eax,%ecx
452034:	ff 92 68 01 00 00    	call   *0x168(%edx)
45203a:	85 c0                	test   %eax,%eax
45203c:	74 05                	je     0x452043
45203e:	33 c0                	xor    %eax,%eax
452040:	40                   	inc    %eax
452041:	eb 02                	jmp    0x452045
452043:	33 c0                	xor    %eax,%eax
452045:	8b 16                	mov    (%esi),%edx
452047:	50                   	push   %eax
452048:	8b ce                	mov    %esi,%ecx
45204a:	ff 12                	call   *(%edx)
45204c:	5e                   	pop    %esi
45204d:	c2 04 00             	ret    $0x4
452050:	6a 00                	push   $0x0
452052:	51                   	push   %ecx
452053:	e8 a0 fe ff ff       	call   0x451ef8
452058:	85 c0                	test   %eax,%eax
45205a:	74 1b                	je     0x452077
45205c:	8b 10                	mov    (%eax),%edx
45205e:	33 c9                	xor    %ecx,%ecx
452060:	81 7c 24 04 51 e1 00 	cmpl   $0xe151,0x4(%esp)
452067:	00
452068:	0f 94 c1             	sete   %cl
45206b:	51                   	push   %ecx
45206c:	8b c8                	mov    %eax,%ecx
45206e:	ff 92 6c 01 00 00    	call   *0x16c(%edx)
452074:	33 c0                	xor    %eax,%eax
452076:	40                   	inc    %eax
452077:	c2 04 00             	ret    $0x4
45207a:	8b 44 24 08          	mov    0x8(%esp),%eax
45207e:	85 c0                	test   %eax,%eax
452080:	74 1a                	je     0x45209c
452082:	8b 08                	mov    (%eax),%ecx
452084:	8b 51 70             	mov    0x70(%ecx),%edx
452087:	33 c9                	xor    %ecx,%ecx
452089:	41                   	inc    %ecx
45208a:	66 81 7a 1e ff ff    	cmpw   $0xffff,0x1e(%edx)
452090:	75 07                	jne    0x452099
452092:	39 48 14             	cmp    %ecx,0x14(%eax)
452095:	74 02                	je     0x452099
452097:	33 c9                	xor    %ecx,%ecx
452099:	89 48 10             	mov    %ecx,0x10(%eax)
45209c:	c2 08 00             	ret    $0x8
45209f:	55                   	push   %ebp
4520a0:	8b ec                	mov    %esp,%ebp
4520a2:	51                   	push   %ecx
4520a3:	53                   	push   %ebx
4520a4:	8b 5d 18             	mov    0x18(%ebp),%ebx
4520a7:	8d 83 88 00 00 00    	lea    0x88(%ebx),%eax
4520ad:	83 38 00             	cmpl   $0x0,(%eax)
4520b0:	56                   	push   %esi
4520b1:	57                   	push   %edi
4520b2:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4520b5:	74 12                	je     0x4520c9
4520b7:	ff 75 0c             	push   0xc(%ebp)
4520ba:	8b 00                	mov    (%eax),%eax
4520bc:	ff 75 08             	push   0x8(%ebp)
4520bf:	8b 10                	mov    (%eax),%edx
4520c1:	8b c8                	mov    %eax,%ecx
4520c3:	ff 92 78 01 00 00    	call   *0x178(%edx)
4520c9:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4520cc:	e8 7b 36 ff ff       	call   0x44574c
4520d1:	8b f0                	mov    %eax,%esi
4520d3:	56                   	push   %esi
4520d4:	68 60 ca 48 00       	push   $0x48ca60
4520d9:	e8 2b e9 fe ff       	call   0x440a09
4520de:	85 c0                	test   %eax,%eax
4520e0:	59                   	pop    %ecx
4520e1:	59                   	pop    %ecx
4520e2:	75 07                	jne    0x4520eb
4520e4:	e8 bf 53 fb ff       	call   0x4074a8
4520e9:	8b f0                	mov    %eax,%esi
4520eb:	8b 06                	mov    (%esi),%eax
4520ed:	8d bb a4 00 00 00    	lea    0xa4(%ebx),%edi
4520f3:	ff 37                	push   (%edi)
4520f5:	8b ce                	mov    %esi,%ecx
4520f7:	6a 00                	push   $0x0
4520f9:	ff 90 4c 01 00 00    	call   *0x14c(%eax)
4520ff:	8b 07                	mov    (%edi),%eax
452101:	6a 01                	push   $0x1
452103:	ff 70 0c             	push   0xc(%eax)
452106:	8b ce                	mov    %esi,%ecx
452108:	e8 76 e6 00 00       	call   0x460783
45210d:	8b 7d fc             	mov    -0x4(%ebp),%edi
452110:	8b cf                	mov    %edi,%ecx
452112:	e8 35 36 ff ff       	call   0x44574c
452117:	3b f0                	cmp    %eax,%esi
452119:	74 0e                	je     0x452129
45211b:	8b 07                	mov    (%edi),%eax
45211d:	57                   	push   %edi
45211e:	57                   	push   %edi
45211f:	6a 01                	push   $0x1
452121:	8b cf                	mov    %edi,%ecx
452123:	ff 90 5c 01 00 00    	call   *0x15c(%eax)
452129:	8b 03                	mov    (%ebx),%eax
45212b:	8b cb                	mov    %ebx,%ecx
45212d:	ff 50 60             	call   *0x60(%eax)
452130:	8b 06                	mov    (%esi),%eax
452132:	6a 01                	push   $0x1
452134:	8b ce                	mov    %esi,%ecx
452136:	ff 90 44 01 00 00    	call   *0x144(%eax)
45213c:	6a 00                	push   $0x0
45213e:	68 01 e0 00 00       	push   $0xe001
452143:	68 62 03 00 00       	push   $0x362
452148:	ff 76 1c             	push   0x1c(%esi)
45214b:	ff 15 98 08 4b 00    	call   *0x4b0898
452151:	ff 76 1c             	push   0x1c(%esi)
452154:	ff 15 48 08 4b 00    	call   *0x4b0848
45215a:	5f                   	pop    %edi
45215b:	5e                   	pop    %esi
45215c:	5b                   	pop    %ebx
45215d:	c9                   	leave
45215e:	c2 14 00             	ret    $0x14
452161:	56                   	push   %esi
452162:	8b 74 24 08          	mov    0x8(%esp),%esi
452166:	57                   	push   %edi
452167:	8b f9                	mov    %ecx,%edi
452169:	8b 47 54             	mov    0x54(%edi),%eax
45216c:	6a 10                	push   $0x10
45216e:	89 46 28             	mov    %eax,0x28(%esi)
452171:	e8 85 27 ff ff       	call   0x4448fb
452176:	68 00 c0 07 00       	push   $0x7c000
45217b:	e8 7b 27 ff ff       	call   0x4448fb
452180:	8b 46 20             	mov    0x20(%esi),%eax
452183:	8b c8                	mov    %eax,%ecx
452185:	81 c9 00 00 80 00    	or     $0x800000,%ecx
45218b:	81 f9 00 00 80 50    	cmp    $0x50800000,%ecx
452191:	75 0b                	jne    0x45219e
452193:	0d ff ff 7f ff       	or     $0xff7fffff,%eax
452198:	23 47 58             	and    0x58(%edi),%eax
45219b:	89 46 20             	mov    %eax,0x20(%esi)
45219e:	56                   	push   %esi
45219f:	8b cf                	mov    %edi,%ecx
4521a1:	e8 01 fa ff ff       	call   0x451ba7