526fea:	8b d8                	mov    %eax,%ebx
526fec:	85 db                	test   %ebx,%ebx
526fee:	74 06                	je     0x526ff6
526ff0:	83 7b 1c 00          	cmpl   $0x0,0x1c(%ebx)
526ff4:	75 08                	jne    0x526ffe
526ff6:	b8 fe ff ff ff       	mov    $0xfffffffe,%eax
526ffb:	5e                   	pop    %esi
526ffc:	5b                   	pop    %ebx
526ffd:	c3                   	ret
526ffe:	8b 53 1c             	mov    0x1c(%ebx),%edx
527001:	8b 72 04             	mov    0x4(%edx),%esi
527004:	83 fe 2a             	cmp    $0x2a,%esi
527007:	74 15                	je     0x52701e
527009:	83 fe 71             	cmp    $0x71,%esi
52700c:	74 10                	je     0x52701e
52700e:	81 fe 9a 02 00 00    	cmp    $0x29a,%esi
527014:	74 08                	je     0x52701e
527016:	b8 fe ff ff ff       	mov    $0xfffffffe,%eax
52701b:	5e                   	pop    %esi
52701c:	5b                   	pop    %ebx
52701d:	c3                   	ret
52701e:	8b 53 1c             	mov    0x1c(%ebx),%edx
527021:	8b 42 08             	mov    0x8(%edx),%eax
527024:	85 c0                	test   %eax,%eax
527026:	74 08                	je     0x527030
527028:	8b d0                	mov    %eax,%edx
52702a:	8b 43 28             	mov    0x28(%ebx),%eax
52702d:	ff 53 24             	call   *0x24(%ebx)
527030:	8b 53 1c             	mov    0x1c(%ebx),%edx
527033:	8b 42 3c             	mov    0x3c(%edx),%eax
527036:	85 c0                	test   %eax,%eax
527038:	74 08                	je     0x527042
52703a:	8b d0                	mov    %eax,%edx
52703c:	8b 43 28             	mov    0x28(%ebx),%eax
52703f:	ff 53 24             	call   *0x24(%ebx)
527042:	8b 53 1c             	mov    0x1c(%ebx),%edx
527045:	8b 42 38             	mov    0x38(%edx),%eax
527048:	85 c0                	test   %eax,%eax
52704a:	74 08                	je     0x527054
52704c:	8b d0                	mov    %eax,%edx
52704e:	8b 43 28             	mov    0x28(%ebx),%eax
527051:	ff 53 24             	call   *0x24(%ebx)
527054:	8b 53 1c             	mov    0x1c(%ebx),%edx
527057:	8b 42 30             	mov    0x30(%edx),%eax
52705a:	85 c0                	test   %eax,%eax
52705c:	74 08                	je     0x527066
52705e:	8b d0                	mov    %eax,%edx
527060:	8b 43 28             	mov    0x28(%ebx),%eax
527063:	ff 53 24             	call   *0x24(%ebx)
527066:	8b 53 1c             	mov    0x1c(%ebx),%edx
527069:	8b 43 28             	mov    0x28(%ebx),%eax
52706c:	ff 53 24             	call   *0x24(%ebx)
52706f:	33 d2                	xor    %edx,%edx
527071:	83 fe 71             	cmp    $0x71,%esi
527074:	89 53 1c             	mov    %edx,0x1c(%ebx)
527077:	75 07                	jne    0x527080
527079:	b8 fd ff ff ff       	mov    $0xfffffffd,%eax
52707e:	eb 02                	jmp    0x527082
527080:	33 c0                	xor    %eax,%eax
527082:	5e                   	pop    %esi
527083:	5b                   	pop    %ebx
527084:	c3                   	ret
527085:	90                   	nop
527086:	90                   	nop
527087:	90                   	nop
527088:	53                   	push   %ebx
527089:	56                   	push   %esi
52708a:	57                   	push   %edi
52708b:	55                   	push   %ebp
52708c:	51                   	push   %ecx
52708d:	89 14 24             	mov    %edx,(%esp)
527090:	8b f0                	mov    %eax,%esi
527092:	83 3c 24 00          	cmpl   $0x0,(%esp)
527096:	74 0d                	je     0x5270a5
527098:	85 f6                	test   %esi,%esi
52709a:	74 09                	je     0x5270a5
52709c:	8b 04 24             	mov    (%esp),%eax
52709f:	83 78 1c 00          	cmpl   $0x0,0x1c(%eax)
5270a3:	75 0a                	jne    0x5270af
5270a5:	b8 fe ff ff ff       	mov    $0xfffffffe,%eax
5270aa:	e9 6a 01 00 00       	jmp    0x527219
5270af:	8b 14 24             	mov    (%esp),%edx
5270b2:	8b 04 24             	mov    (%esp),%eax
5270b5:	b9 0e 00 00 00       	mov    $0xe,%ecx
5270ba:	8b 7a 1c             	mov    0x1c(%edx),%edi
5270bd:	56                   	push   %esi
5270be:	57                   	push   %edi
5270bf:	8b fe                	mov    %esi,%edi
5270c1:	8b f0                	mov    %eax,%esi
5270c3:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
5270c5:	5f                   	pop    %edi
5270c6:	5e                   	pop    %esi
5270c7:	b9 b8 16 00 00       	mov    $0x16b8,%ecx
5270cc:	ba 01 00 00 00       	mov    $0x1,%edx
5270d1:	8b 46 28             	mov    0x28(%esi),%eax
5270d4:	ff 56 20             	call   *0x20(%esi)
5270d7:	8b d8                	mov    %eax,%ebx
5270d9:	85 db                	test   %ebx,%ebx
5270db:	75 0a                	jne    0x5270e7
5270dd:	b8 fc ff ff ff       	mov    $0xfffffffc,%eax
5270e2:	e9 32 01 00 00       	jmp    0x527219
5270e7:	89 5e 1c             	mov    %ebx,0x1c(%esi)
5270ea:	56                   	push   %esi
5270eb:	57                   	push   %edi
5270ec:	8b f7                	mov    %edi,%esi
5270ee:	8b fb                	mov    %ebx,%edi
5270f0:	b9 ae 05 00 00       	mov    $0x5ae,%ecx
5270f5:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
5270f7:	5f                   	pop    %edi
5270f8:	5e                   	pop    %esi
5270f9:	89 33                	mov    %esi,(%ebx)
5270fb:	b9 02 00 00 00       	mov    $0x2,%ecx
527100:	8b 53 24             	mov    0x24(%ebx),%edx
527103:	8b 46 28             	mov    0x28(%esi),%eax
527106:	ff 56 20             	call   *0x20(%esi)
527109:	89 43 30             	mov    %eax,0x30(%ebx)
52710c:	b9 02 00 00 00       	mov    $0x2,%ecx
527111:	8b 53 24             	mov    0x24(%ebx),%edx
527114:	8b 46 28             	mov    0x28(%esi),%eax
527117:	ff 56 20             	call   *0x20(%esi)
52711a:	89 43 38             	mov    %eax,0x38(%ebx)
52711d:	b9 02 00 00 00       	mov    $0x2,%ecx
527122:	8b 53 44             	mov    0x44(%ebx),%edx
527125:	8b 46 28             	mov    0x28(%esi),%eax
527128:	ff 56 20             	call   *0x20(%esi)
52712b:	89 43 3c             	mov    %eax,0x3c(%ebx)
52712e:	b9 04 00 00 00       	mov    $0x4,%ecx
527133:	8b 93 94 16 00 00    	mov    0x1694(%ebx),%edx
527139:	8b 46 28             	mov    0x28(%esi),%eax
52713c:	ff 56 20             	call   *0x20(%esi)
52713f:	8b e8                	mov    %eax,%ebp
527141:	89 6b 08             	mov    %ebp,0x8(%ebx)
527144:	83 7b 30 00          	cmpl   $0x0,0x30(%ebx)
527148:	74 12                	je     0x52715c
52714a:	83 7b 38 00          	cmpl   $0x0,0x38(%ebx)
52714e:	74 0c                	je     0x52715c
527150:	83 7b 3c 00          	cmpl   $0x0,0x3c(%ebx)
527154:	74 06                	je     0x52715c
527156:	83 7b 08 00          	cmpl   $0x0,0x8(%ebx)
52715a:	75 11                	jne    0x52716d
52715c:	8b c6                	mov    %esi,%eax
52715e:	e8 85 fe ff ff       	call   0x526fe8
527163:	b8 fc ff ff ff       	mov    $0xfffffffc,%eax
527168:	e9 ac 00 00 00       	jmp    0x527219
52716d:	8b 53 24             	mov    0x24(%ebx),%edx
527170:	03 d2                	add    %edx,%edx
527172:	52                   	push   %edx
527173:	8b 4f 30             	mov    0x30(%edi),%ecx
527176:	51                   	push   %ecx
527177:	8b 43 30             	mov    0x30(%ebx),%eax
52717a:	50                   	push   %eax
52717b:	e8 60 f2 ff ff       	call   0x5263e0
527180:	83 c4 0c             	add    $0xc,%esp
527183:	8b 53 24             	mov    0x24(%ebx),%edx
527186:	03 d2                	add    %edx,%edx
527188:	52                   	push   %edx
527189:	8b 4f 38             	mov    0x38(%edi),%ecx
52718c:	51                   	push   %ecx
52718d:	8b 43 38             	mov    0x38(%ebx),%eax
527190:	50                   	push   %eax
527191:	e8 4a f2 ff ff       	call   0x5263e0
527196:	83 c4 0c             	add    $0xc,%esp
527199:	8b 53 44             	mov    0x44(%ebx),%edx
52719c:	03 d2                	add    %edx,%edx
52719e:	52                   	push   %edx
52719f:	8b 4f 3c             	mov    0x3c(%edi),%ecx
5271a2:	51                   	push   %ecx
5271a3:	8b 43 3c             	mov    0x3c(%ebx),%eax
5271a6:	50                   	push   %eax
5271a7:	e8 34 f2 ff ff       	call   0x5263e0
5271ac:	83 c4 0c             	add    $0xc,%esp
5271af:	8b 53 0c             	mov    0xc(%ebx),%edx
5271b2:	52                   	push   %edx
5271b3:	8b 4f 08             	mov    0x8(%edi),%ecx
5271b6:	51                   	push   %ecx
5271b7:	8b 43 08             	mov    0x8(%ebx),%eax
5271ba:	50                   	push   %eax
5271bb:	e8 20 f2 ff ff       	call   0x5263e0
5271c0:	8b 57 10             	mov    0x10(%edi),%edx
5271c3:	83 c4 0c             	add    $0xc,%esp
5271c6:	2b 57 08             	sub    0x8(%edi),%edx
5271c9:	03 53 08             	add    0x8(%ebx),%edx
5271cc:	89 53 10             	mov    %edx,0x10(%ebx)
5271cf:	8d 93 8c 00 00 00    	lea    0x8c(%ebx),%edx
5271d5:	8b 8b 94 16 00 00    	mov    0x1694(%ebx),%ecx
5271db:	d1 e9                	shr    $1,%ecx
5271dd:	03 c9                	add    %ecx,%ecx
5271df:	03 e9                	add    %ecx,%ebp
5271e1:	8d 8b 80 09 00 00    	lea    0x980(%ebx),%ecx
5271e7:	89 ab 9c 16 00 00    	mov    %ebp,0x169c(%ebx)
5271ed:	8b 83 94 16 00 00    	mov    0x1694(%ebx),%eax
5271f3:	8d 04 40             	lea    (%eax,%eax,2),%eax
5271f6:	03 43 08             	add    0x8(%ebx),%eax
5271f9:	89 83 90 16 00 00    	mov    %eax,0x1690(%ebx)
5271ff:	89 93 10 0b 00 00    	mov    %edx,0xb10(%ebx)
527205:	8d 83 74 0a 00 00    	lea    0xa74(%ebx),%eax
52720b:	89 8b 1c 0b 00 00    	mov    %ecx,0xb1c(%ebx)
527211:	89 83 28 0b 00 00    	mov    %eax,0xb28(%ebx)
527217:	33 c0                	xor    %eax,%eax
527219:	5a                   	pop    %edx
52721a:	5d                   	pop    %ebp
52721b:	5f                   	pop    %edi
52721c:	5e                   	pop    %esi
52721d:	5b                   	pop    %ebx
52721e:	c3                   	ret
52721f:	90                   	nop
527220:	53                   	push   %ebx
527221:	56                   	push   %esi
527222:	8b f0                	mov    %eax,%esi
527224:	57                   	push   %edi
527225:	8b fa                	mov    %edx,%edi
527227:	8b 5e 04             	mov    0x4(%esi),%ebx
52722a:	3b cb                	cmp    %ebx,%ecx
52722c:	73 02                	jae    0x527230
52722e:	8b d9                	mov    %ecx,%ebx
527230:	85 db                	test   %ebx,%ebx
527232:	75 04                	jne    0x527238
527234:	33 c0                	xor    %eax,%eax
527236:	eb 2f                	jmp    0x527267
527238:	29 5e 04             	sub    %ebx,0x4(%esi)
52723b:	8b 56 1c             	mov    0x1c(%esi),%edx
52723e:	83 7a 18 00          	cmpl   $0x0,0x18(%edx)
527242:	75 0f                	jne    0x527253
527244:	8b cb                	mov    %ebx,%ecx
527246:	8b 16                	mov    (%esi),%edx
527248:	8b 46 30             	mov    0x30(%esi),%eax
52724b:	e8 5c 54 00 00       	call   0x52c6ac
527250:	89 46 30             	mov    %eax,0x30(%esi)
527253:	53                   	push   %ebx
527254:	8b 0e                	mov    (%esi),%ecx
527256:	51                   	push   %ecx
527257:	57                   	push   %edi
527258:	e8 83 f1 ff ff       	call   0x5263e0
52725d:	83 c4 0c             	add    $0xc,%esp
527260:	8b c3                	mov    %ebx,%eax
527262:	01 06                	add    %eax,(%esi)
527264:	01 5e 08             	add    %ebx,0x8(%esi)
527267:	5f                   	pop    %edi
527268:	5e                   	pop    %esi
527269:	5b                   	pop    %ebx
52726a:	c3                   	ret
52726b:	90                   	nop
52726c:	53                   	push   %ebx
52726d:	8b d8                	mov    %eax,%ebx
52726f:	8b 43 24             	mov    0x24(%ebx),%eax
527272:	03 c0                	add    %eax,%eax
527274:	89 43 34             	mov    %eax,0x34(%ebx)
527277:	8b 53 3c             	mov    0x3c(%ebx),%edx
52727a:	8b 4b 44             	mov    0x44(%ebx),%ecx
52727d:	66 c7 44 4a fe 00 00 	movw   $0x0,-0x2(%edx,%ecx,2)
527284:	8b 43 44             	mov    0x44(%ebx),%eax
527287:	48                   	dec    %eax
527288:	03 c0                	add    %eax,%eax
52728a:	50                   	push   %eax
52728b:	6a 00                	push   $0x0
52728d:	8b 53 3c             	mov    0x3c(%ebx),%edx
527290:	52                   	push   %edx
527291:	e8 8e f0 ff ff       	call   0x526324
527296:	8b 4b 7c             	mov    0x7c(%ebx),%ecx
527299:	83 c4 0c             	add    $0xc,%esp
52729c:	8d 0c 49             	lea    (%ecx,%ecx,2),%ecx
52729f:	0f b7 04 8d a2 7b 69 	movzwl 0x697ba2(,%ecx,4),%eax
5272a6:	00
5272a7:	89 43 78             	mov    %eax,0x78(%ebx)
5272aa:	8b 53 7c             	mov    0x7c(%ebx),%edx
5272ad:	8d 14 52             	lea    (%edx,%edx,2),%edx
5272b0:	0f b7 0c 95 a0 7b 69 	movzwl 0x697ba0(,%edx,4),%ecx
5272b7:	00
5272b8:	89 8b 84 00 00 00    	mov    %ecx,0x84(%ebx)
5272be:	8b 43 7c             	mov    0x7c(%ebx),%eax
5272c1:	8d 04 40             	lea    (%eax,%eax,2),%eax
5272c4:	0f b7 14 85 a4 7b 69 	movzwl 0x697ba4(,%eax,4),%edx
5272cb:	00
5272cc:	89 93 88 00 00 00    	mov    %edx,0x88(%ebx)
5272d2:	33 d2                	xor    %edx,%edx
5272d4:	8b 4b 7c             	mov    0x7c(%ebx),%ecx
5272d7:	8d 0c 49             	lea    (%ecx,%ecx,2),%ecx
5272da:	0f b7 04 8d a6 7b 69 	movzwl 0x697ba6(,%ecx,4),%eax
5272e1:	00
5272e2:	89 43 74             	mov    %eax,0x74(%ebx)
5272e5:	89 53 64             	mov    %edx,0x64(%ebx)
5272e8:	33 c9                	xor    %ecx,%ecx
5272ea:	33 c0                	xor    %eax,%eax
5272ec:	89 4b 54             	mov    %ecx,0x54(%ebx)
5272ef:	89 43 6c             	mov    %eax,0x6c(%ebx)
5272f2:	ba 02 00 00 00       	mov    $0x2,%edx
5272f7:	33 c0                	xor    %eax,%eax
5272f9:	89 53 70             	mov    %edx,0x70(%ebx)
5272fc:	89 53 58             	mov    %edx,0x58(%ebx)
5272ff:	89 43 60             	mov    %eax,0x60(%ebx)
527302:	33 c9                	xor    %ecx,%ecx
527304:	89 4b 40             	mov    %ecx,0x40(%ebx)
527307:	5b                   	pop    %ebx
527308:	c3                   	ret
527309:	90                   	nop
52730a:	90                   	nop
52730b:	90                   	nop
52730c:	53                   	push   %ebx
52730d:	56                   	push   %esi
52730e:	57                   	push   %edi
52730f:	83 c4 e4             	add    $0xffffffe4,%esp
527312:	89 14 24             	mov    %edx,(%esp)
527315:	8b 50 74             	mov    0x74(%eax),%edx
527318:	89 54 24 04          	mov    %edx,0x4(%esp)
52731c:	8b 50 64             	mov    0x64(%eax),%edx
52731f:	8b 48 30             	mov    0x30(%eax),%ecx
527322:	8b 78 70             	mov    0x70(%eax),%edi
527325:	8b 98 88 00 00 00    	mov    0x88(%eax),%ebx
52732b:	89 5c 24 08          	mov    %ebx,0x8(%esp)
52732f:	03 ca                	add    %edx,%ecx
527331:	8b 58 24             	mov    0x24(%eax),%ebx
527334:	81 eb 06 01 00 00    	sub    $0x106,%ebx
52733a:	3b d3                	cmp    %ebx,%edx
52733c:	76 10                	jbe    0x52734e
52733e:	8b 50 24             	mov    0x24(%eax),%edx
527341:	81 ea 06 01 00 00    	sub    $0x106,%edx
527347:	8b 58 64             	mov    0x64(%eax),%ebx
52734a:	2b da                	sub    %edx,%ebx
52734c:	eb 02                	jmp    0x527350
52734e:	33 db                	xor    %ebx,%ebx
527350:	89 5c 24 0c          	mov    %ebx,0xc(%esp)
527354:	8b 50 38             	mov    0x38(%eax),%edx
527357:	89 54 24 10          	mov    %edx,0x10(%esp)
52735b:	8b 50 2c             	mov    0x2c(%eax),%edx
52735e:	89 54 24 14          	mov    %edx,0x14(%esp)
527362:	8b 50 30             	mov    0x30(%eax),%edx
527365:	8a 5c 39 ff          	mov    -0x1(%ecx,%edi,1),%bl
527369:	03 50 64             	add    0x64(%eax),%edx
52736c:	88 5c 24 18          	mov    %bl,0x18(%esp)
527370:	8a 1c 39             	mov    (%ecx,%edi,1),%bl
527373:	81 c2 02 01 00 00    	add    $0x102,%edx
527379:	88 5c 24 19          	mov    %bl,0x19(%esp)
52737d:	8b 58 70             	mov    0x70(%eax),%ebx
527380:	3b 98 84 00 00 00    	cmp    0x84(%eax),%ebx
527386:	72 05                	jb     0x52738d
527388:	c1 6c 24 04 02       	shrl   $0x2,0x4(%esp)
52738d:	8b 58 6c             	mov    0x6c(%eax),%ebx
527390:	3b 5c 24 08          	cmp    0x8(%esp),%ebx
527394:	73 04                	jae    0x52739a
527396:	89 5c 24 08          	mov    %ebx,0x8(%esp)
52739a:	8b 70 30             	mov    0x30(%eax),%esi
52739d:	03 34 24             	add    (%esp),%esi
5273a0:	8a 1c 3e             	mov    (%esi,%edi,1),%bl
5273a3:	3a 5c 24 19          	cmp    0x19(%esp),%bl
5273a7:	0f 85 9c 00 00 00    	jne    0x527449
5273ad:	8a 5c 3e ff          	mov    -0x1(%esi,%edi,1),%bl
5273b1:	3a 5c 24 18          	cmp    0x18(%esp),%bl
5273b5:	0f 85 8e 00 00 00    	jne    0x527449
5273bb:	8a 1e                	mov    (%esi),%bl
5273bd:	3a 19                	cmp    (%ecx),%bl