4f2ed5:	81 ff 00 00 08 00    	cmp    $0x80000,%edi
4f2edb:	7c 33                	jl     0x4f2f10
4f2edd:	7f 04                	jg     0x4f2ee3
4f2edf:	85 f6                	test   %esi,%esi
4f2ee1:	72 2d                	jb     0x4f2f10
4f2ee3:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4f2ee6:	0f b6 41 0a          	movzbl 0xa(%ecx),%eax
4f2eea:	50                   	push   %eax
4f2eeb:	ff 71 0c             	push   0xc(%ecx)
4f2eee:	53                   	push   %ebx
4f2eef:	ff 71 10             	push   0x10(%ecx)
4f2ef2:	e8 49 66 02 00       	call   0x519540
4f2ef7:	83 c4 10             	add    $0x10,%esp
4f2efa:	f7 d8                	neg    %eax
4f2efc:	1b c0                	sbb    %eax,%eax
4f2efe:	40                   	inc    %eax
4f2eff:	5f                   	pop    %edi
4f2f00:	5e                   	pop    %esi
4f2f01:	5b                   	pop    %ebx
4f2f02:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4f2f05:	33 cd                	xor    %ebp,%ecx
4f2f07:	e8 ce e5 0e 00       	call   0x5e14da
4f2f0c:	8b e5                	mov    %ebp,%esp
4f2f0e:	5d                   	pop    %ebp
4f2f0f:	c3                   	ret
4f2f10:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4f2f13:	b8 01 00 00 00       	mov    $0x1,%eax
4f2f18:	89 7b 04             	mov    %edi,0x4(%ebx)
4f2f1b:	33 cd                	xor    %ebp,%ecx
4f2f1d:	5f                   	pop    %edi
4f2f1e:	89 33                	mov    %esi,(%ebx)
4f2f20:	5e                   	pop    %esi
4f2f21:	5b                   	pop    %ebx
4f2f22:	e8 b3 e5 0e 00       	call   0x5e14da
4f2f27:	8b e5                	mov    %ebp,%esp
4f2f29:	5d                   	pop    %ebp
4f2f2a:	c3                   	ret
4f2f2b:	cc                   	int3
4f2f2c:	cc                   	int3
4f2f2d:	cc                   	int3
4f2f2e:	cc                   	int3
4f2f2f:	cc                   	int3
4f2f30:	55                   	push   %ebp
4f2f31:	8b ec                	mov    %esp,%ebp
4f2f33:	83 ec 48             	sub    $0x48,%esp
4f2f36:	57                   	push   %edi
4f2f37:	8b 7d 10             	mov    0x10(%ebp),%edi
4f2f3a:	85 ff                	test   %edi,%edi
4f2f3c:	0f 84 dd 00 00 00    	je     0x4f301f
4f2f42:	8b 07                	mov    (%edi),%eax
4f2f44:	85 c0                	test   %eax,%eax
4f2f46:	0f 84 d3 00 00 00    	je     0x4f301f
4f2f4c:	83 7f 08 00          	cmpl   $0x0,0x8(%edi)
4f2f50:	0f 84 c9 00 00 00    	je     0x4f301f
4f2f56:	8b 4d 08             	mov    0x8(%ebp),%ecx
4f2f59:	53                   	push   %ebx
4f2f5a:	ff 71 04             	push   0x4(%ecx)
4f2f5d:	50                   	push   %eax
4f2f5e:	ff 31                	push   (%ecx)
4f2f60:	e8 5b 5a 03 00       	call   0x5289c0
4f2f65:	8b d8                	mov    %eax,%ebx
4f2f67:	83 c4 0c             	add    $0xc,%esp
4f2f6a:	85 db                	test   %ebx,%ebx
4f2f6c:	75 06                	jne    0x4f2f74
4f2f6e:	5b                   	pop    %ebx
4f2f6f:	5f                   	pop    %edi
4f2f70:	8b e5                	mov    %ebp,%esp
4f2f72:	5d                   	pop    %ebp
4f2f73:	c3                   	ret
4f2f74:	56                   	push   %esi
4f2f75:	8b 77 04             	mov    0x4(%edi),%esi
4f2f78:	85 f6                	test   %esi,%esi
4f2f7a:	74 2d                	je     0x4f2fa9
4f2f7c:	56                   	push   %esi
4f2f7d:	ff 37                	push   (%edi)
4f2f7f:	e8 fc c9 fe ff       	call   0x4df980
4f2f84:	83 c4 08             	add    $0x8,%esp
4f2f87:	85 c0                	test   %eax,%eax
4f2f89:	75 0b                	jne    0x4f2f96
4f2f8b:	53                   	push   %ebx
4f2f8c:	e8 3f 44 04 00       	call   0x5373d0
4f2f91:	83 c4 04             	add    $0x4,%esp
4f2f94:	eb 11                	jmp    0x4f2fa7
4f2f96:	8b 45 08             	mov    0x8(%ebp),%eax
4f2f99:	ff 70 04             	push   0x4(%eax)
4f2f9c:	56                   	push   %esi
4f2f9d:	ff 30                	push   (%eax)
4f2f9f:	e8 7c 59 03 00       	call   0x528920
4f2fa4:	83 c4 0c             	add    $0xc,%esp
4f2fa7:	8b f0                	mov    %eax,%esi
4f2fa9:	8b 4f 08             	mov    0x8(%edi),%ecx
4f2fac:	85 f6                	test   %esi,%esi
4f2fae:	74 3d                	je     0x4f2fed
4f2fb0:	0f b7 46 32          	movzwl 0x32(%esi),%eax
4f2fb4:	83 66 38 fb          	andl   $0xfffffffb,0x38(%esi)
4f2fb8:	40                   	inc    %eax
4f2fb9:	56                   	push   %esi
4f2fba:	ff 76 08             	push   0x8(%esi)
4f2fbd:	6a 00                	push   $0x0
4f2fbf:	50                   	push   %eax
4f2fc0:	51                   	push   %ecx
4f2fc1:	e8 0a a4 00 00       	call   0x4fd3d0
4f2fc6:	81 4e 38 80 00 00 00 	orl    $0x80,0x38(%esi)
4f2fcd:	83 c4 14             	add    $0x14,%esp
4f2fd0:	83 7e 24 00          	cmpl   $0x0,0x24(%esi)
4f2fd4:	75 40                	jne    0x4f3016
4f2fd6:	8b 46 08             	mov    0x8(%esi),%eax
4f2fd9:	5e                   	pop    %esi
4f2fda:	66 8b 00             	mov    (%eax),%ax
4f2fdd:	83 4b 24 10          	orl    $0x10,0x24(%ebx)
4f2fe1:	66 89 43 2e          	mov    %ax,0x2e(%ebx)
4f2fe5:	33 c0                	xor    %eax,%eax
4f2fe7:	5b                   	pop    %ebx
4f2fe8:	5f                   	pop    %edi
4f2fe9:	8b e5                	mov    %ebp,%esp
4f2feb:	5d                   	pop    %ebp
4f2fec:	c3                   	ret
4f2fed:	0f b7 43 30          	movzwl 0x30(%ebx),%eax
4f2ff1:	66 89 45 e8          	mov    %ax,-0x18(%ebp)
4f2ff5:	8d 45 b8             	lea    -0x48(%ebp),%eax
4f2ff8:	50                   	push   %eax
4f2ff9:	8d 43 2e             	lea    0x2e(%ebx),%eax
4f2ffc:	50                   	push   %eax
4f2ffd:	6a 00                	push   $0x0
4f2fff:	6a 01                	push   $0x1
4f3001:	51                   	push   %ecx
4f3002:	e8 c9 a3 00 00       	call   0x4fd3d0
4f3007:	0f b7 45 e8          	movzwl -0x18(%ebp),%eax
4f300b:	83 c4 14             	add    $0x14,%esp
4f300e:	83 4b 24 10          	orl    $0x10,0x24(%ebx)
4f3012:	66 89 43 30          	mov    %ax,0x30(%ebx)
4f3016:	5e                   	pop    %esi
4f3017:	5b                   	pop    %ebx
4f3018:	33 c0                	xor    %eax,%eax
4f301a:	5f                   	pop    %edi
4f301b:	8b e5                	mov    %ebp,%esp
4f301d:	5d                   	pop    %ebp
4f301e:	c3                   	ret
4f301f:	33 c0                	xor    %eax,%eax
4f3021:	5f                   	pop    %edi
4f3022:	8b e5                	mov    %ebp,%esp
4f3024:	5d                   	pop    %ebp
4f3025:	c3                   	ret
4f3026:	cc                   	int3
4f3027:	cc                   	int3
4f3028:	cc                   	int3
4f3029:	cc                   	int3
4f302a:	cc                   	int3
4f302b:	cc                   	int3
4f302c:	cc                   	int3
4f302d:	cc                   	int3
4f302e:	cc                   	int3
4f302f:	cc                   	int3
4f3030:	55                   	push   %ebp
4f3031:	8b ec                	mov    %esp,%ebp
4f3033:	83 ec 0c             	sub    $0xc,%esp
4f3036:	8b 45 08             	mov    0x8(%ebp),%eax
4f3039:	53                   	push   %ebx
4f303a:	56                   	push   %esi
4f303b:	8b 75 0c             	mov    0xc(%ebp),%esi
4f303e:	8b 50 18             	mov    0x18(%eax),%edx
4f3041:	57                   	push   %edi
4f3042:	0f b6 06             	movzbl (%esi),%eax
4f3045:	8b 0a                	mov    (%edx),%ecx
4f3047:	8b 7a 04             	mov    0x4(%edx),%edi
4f304a:	8b 5a 08             	mov    0x8(%edx),%ebx
4f304d:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4f3050:	89 7d f4             	mov    %edi,-0xc(%ebp)
4f3053:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4f3056:	2d a4 00 00 00       	sub    $0xa4,%eax
4f305b:	0f 84 0d 01 00 00    	je     0x4f316e
4f3061:	83 e8 01             	sub    $0x1,%eax
4f3064:	74 12                	je     0x4f3078
4f3066:	83 e8 01             	sub    $0x1,%eax
4f3069:	0f 84 ff 00 00 00    	je     0x4f316e
4f306f:	5f                   	pop    %edi
4f3070:	5e                   	pop    %esi
4f3071:	33 c0                	xor    %eax,%eax
4f3073:	5b                   	pop    %ebx
4f3074:	8b e5                	mov    %ebp,%esp
4f3076:	5d                   	pop    %ebp
4f3077:	c3                   	ret
4f3078:	f7 42 18 00 00 02 00 	testl  $0x20000,0x18(%edx)
4f307f:	75 ee                	jne    0x4f306f
4f3081:	8b 55 08             	mov    0x8(%ebp),%edx
4f3084:	0f b6 46 02          	movzbl 0x2(%esi),%eax
4f3088:	39 42 10             	cmp    %eax,0x10(%edx)
4f308b:	75 e2                	jne    0x4f306f
4f308d:	8b 55 fc             	mov    -0x4(%ebp),%edx
4f3090:	33 ff                	xor    %edi,%edi
4f3092:	8b 5b 28             	mov    0x28(%ebx),%ebx
4f3095:	83 c2 2c             	add    $0x2c,%edx
4f3098:	89 55 08             	mov    %edx,0x8(%ebp)
4f309b:	3b 3a                	cmp    (%edx),%edi
4f309d:	7d 2a                	jge    0x4f30c9
4f309f:	90                   	nop
4f30a0:	6a ff                	push   $0xffffffff
4f30a2:	56                   	push   %esi
4f30a3:	ff 33                	push   (%ebx)
4f30a5:	6a 00                	push   $0x0
4f30a7:	e8 24 34 03 00       	call   0x5264d0
4f30ac:	8b 55 08             	mov    0x8(%ebp),%edx
4f30af:	83 c4 10             	add    $0x10,%esp
4f30b2:	85 c0                	test   %eax,%eax
4f30b4:	74 08                	je     0x4f30be
4f30b6:	47                   	inc    %edi
4f30b7:	83 c3 10             	add    $0x10,%ebx
4f30ba:	3b 3a                	cmp    (%edx),%edi
4f30bc:	7c e2                	jl     0x4f30a0
4f30be:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4f30c1:	3b 3a                	cmp    (%edx),%edi
4f30c3:	0f 8c 8f 00 00 00    	jl     0x4f3158
4f30c9:	8b 09                	mov    (%ecx),%ecx
4f30cb:	8b 7d fc             	mov    -0x4(%ebp),%edi
4f30ce:	8a 41 4e             	mov    0x4e(%ecx),%al
4f30d1:	88 45 0c             	mov    %al,0xc(%ebp)
4f30d4:	8d 45 08             	lea    0x8(%ebp),%eax
4f30d7:	50                   	push   %eax
4f30d8:	52                   	push   %edx
4f30d9:	6a 10                	push   $0x10
4f30db:	ff 77 28             	push   0x28(%edi)
4f30de:	51                   	push   %ecx
4f30df:	e8 dc 5e 02 00       	call   0x518fc0
4f30e4:	89 47 28             	mov    %eax,0x28(%edi)
4f30e7:	83 c4 14             	add    $0x14,%esp
4f30ea:	8b 7d 08             	mov    0x8(%ebp),%edi
4f30ed:	85 ff                	test   %edi,%edi
4f30ef:	78 67                	js     0x4f3158
4f30f1:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4f30f4:	8b df                	mov    %edi,%ebx
4f30f6:	c1 e3 04             	shl    $0x4,%ebx
4f30f9:	03 d8                	add    %eax,%ebx
4f30fb:	89 33                	mov    %esi,(%ebx)
4f30fd:	ff 41 2c             	incl   0x2c(%ecx)
4f3100:	8b 41 2c             	mov    0x2c(%ecx),%eax
4f3103:	89 43 08             	mov    %eax,0x8(%ebx)
4f3106:	8b 46 14             	mov    0x14(%esi),%eax
4f3109:	85 c0                	test   %eax,%eax
4f310b:	74 04                	je     0x4f3111
4f310d:	8b 00                	mov    (%eax),%eax
4f310f:	eb 02                	jmp    0x4f3113
4f3111:	33 c0                	xor    %eax,%eax
4f3113:	6a 00                	push   $0x0
4f3115:	ff 75 0c             	push   0xc(%ebp)
4f3118:	50                   	push   %eax
4f3119:	ff 76 08             	push   0x8(%esi)
4f311c:	ff 31                	push   (%ecx)
4f311e:	e8 fd 4d 03 00       	call   0x527f20
4f3123:	83 c4 14             	add    $0x14,%esp
4f3126:	89 43 04             	mov    %eax,0x4(%ebx)
4f3129:	f6 46 04 02          	testb  $0x2,0x4(%esi)
4f312d:	74 22                	je     0x4f3151
4f312f:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4f3132:	8b 41 28             	mov    0x28(%ecx),%eax
4f3135:	89 43 0c             	mov    %eax,0xc(%ebx)
4f3138:	ff 41 28             	incl   0x28(%ecx)
4f313b:	8b 45 fc             	mov    -0x4(%ebp),%eax
4f313e:	66 89 7e 22          	mov    %di,0x22(%esi)
4f3142:	5f                   	pop    %edi
4f3143:	89 46 28             	mov    %eax,0x28(%esi)
4f3146:	b8 01 00 00 00       	mov    $0x1,%eax
4f314b:	5e                   	pop    %esi
4f314c:	5b                   	pop    %ebx
4f314d:	8b e5                	mov    %ebp,%esp
4f314f:	5d                   	pop    %ebp
4f3150:	c3                   	ret
4f3151:	c7 43 0c ff ff ff ff 	movl   $0xffffffff,0xc(%ebx)
4f3158:	8b 45 fc             	mov    -0x4(%ebp),%eax
4f315b:	66 89 7e 22          	mov    %di,0x22(%esi)
4f315f:	5f                   	pop    %edi
4f3160:	89 46 28             	mov    %eax,0x28(%esi)
4f3163:	b8 01 00 00 00       	mov    $0x1,%eax
4f3168:	5e                   	pop    %esi
4f3169:	5b                   	pop    %ebx
4f316a:	8b e5                	mov    %ebp,%esp
4f316c:	5d                   	pop    %ebp
4f316d:	c3                   	ret
4f316e:	85 ff                	test   %edi,%edi
4f3170:	0f 84 1d 01 00 00    	je     0x4f3293
4f3176:	8b 3f                	mov    (%edi),%edi
4f3178:	33 c9                	xor    %ecx,%ecx
4f317a:	85 ff                	test   %edi,%edi
4f317c:	0f 8e 11 01 00 00    	jle    0x4f3293
4f3182:	8b 45 f4             	mov    -0xc(%ebp),%eax
4f3185:	8b 56 1c             	mov    0x1c(%esi),%edx
4f3188:	83 c0 34             	add    $0x34,%eax
4f318b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
4f3190:	3b 10                	cmp    (%eax),%edx
4f3192:	74 14                	je     0x4f31a8
4f3194:	41                   	inc    %ecx
4f3195:	83 c0 48             	add    $0x48,%eax
4f3198:	3b cf                	cmp    %edi,%ecx
4f319a:	7c f4                	jl     0x4f3190
4f319c:	5f                   	pop    %edi
4f319d:	5e                   	pop    %esi
4f319e:	b8 01 00 00 00       	mov    $0x1,%eax
4f31a3:	5b                   	pop    %ebx
4f31a4:	8b e5                	mov    %ebp,%esp
4f31a6:	5d                   	pop    %ebp
4f31a7:	c3                   	ret
4f31a8:	8b 43 20             	mov    0x20(%ebx),%eax
4f31ab:	8d 4b 20             	lea    0x20(%ebx),%ecx
4f31ae:	33 ff                	xor    %edi,%edi
4f31b0:	89 45 08             	mov    %eax,0x8(%ebp)
4f31b3:	85 c0                	test   %eax,%eax
4f31b5:	7e 24                	jle    0x4f31db
4f31b7:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
4f31ba:	83 c1 08             	add    $0x8,%ecx
4f31bd:	0f 1f 00             	nopl   (%eax)
4f31c0:	39 51 fc             	cmp    %edx,-0x4(%ecx)
4f31c3:	75 0b                	jne    0x4f31d0
4f31c5:	0f bf 46 20          	movswl 0x20(%esi),%eax
4f31c9:	39 01                	cmp    %eax,(%ecx)
4f31cb:	8b 45 08             	mov    0x8(%ebp),%eax
4f31ce:	74 08                	je     0x4f31d8
4f31d0:	47                   	inc    %edi
4f31d1:	83 c1 18             	add    $0x18,%ecx
4f31d4:	3b f8                	cmp    %eax,%edi
4f31d6:	7c e8                	jl     0x4f31c0
4f31d8:	8d 4b 20             	lea    0x20(%ebx),%ecx
4f31db:	3b f8                	cmp    %eax,%edi
4f31dd:	0f 8c a6 00 00 00    	jl     0x4f3289
4f31e3:	8d 45 08             	lea    0x8(%ebp),%eax
4f31e6:	50                   	push   %eax
4f31e7:	8b 43 1c             	mov    0x1c(%ebx),%eax
4f31ea:	51                   	push   %ecx
4f31eb:	6a 18                	push   $0x18
4f31ed:	50                   	push   %eax
4f31ee:	8b 45 f8             	mov    -0x8(%ebp),%eax
4f31f1:	ff 30                	push   (%eax)
4f31f3:	e8 c8 5d 02 00       	call   0x518fc0
4f31f8:	8b 7d 08             	mov    0x8(%ebp),%edi
4f31fb:	83 c4 14             	add    $0x14,%esp
4f31fe:	89 43 1c             	mov    %eax,0x1c(%ebx)
4f3201:	85 ff                	test   %edi,%edi
4f3203:	0f 88 80 00 00 00    	js     0x4f3289
4f3209:	8d 0c 7f             	lea    (%edi,%edi,2),%ecx
4f320c:	8d 0c c8             	lea    (%eax,%ecx,8),%ecx
4f320f:	8b 46 2c             	mov    0x2c(%esi),%eax
4f3212:	89 01                	mov    %eax,(%ecx)
4f3214:	8b 46 1c             	mov    0x1c(%esi),%eax
4f3217:	89 41 04             	mov    %eax,0x4(%ecx)
4f321a:	0f bf 46 20          	movswl 0x20(%esi),%eax
4f321e:	89 41 08             	mov    %eax,0x8(%ecx)
4f3221:	8b 45 f8             	mov    -0x8(%ebp),%eax
4f3224:	89 4d 0c             	mov    %ecx,0xc(%ebp)
4f3227:	ff 40 2c             	incl   0x2c(%eax)
4f322a:	8b 40 2c             	mov    0x2c(%eax),%eax
4f322d:	89 41 10             	mov    %eax,0x10(%ecx)
4f3230:	c7 41 0c ff ff ff ff 	movl   $0xffffffff,0xc(%ecx)