4ab155:	5e                   	pop    %esi
4ab156:	5b                   	pop    %ebx
4ab157:	5d                   	pop    %ebp
4ab158:	c3                   	ret
4ab159:	55                   	push   %ebp
4ab15a:	8b ec                	mov    %esp,%ebp
4ab15c:	83 ec 28             	sub    $0x28,%esp
4ab15f:	8d 45 d8             	lea    -0x28(%ebp),%eax
4ab162:	56                   	push   %esi
4ab163:	50                   	push   %eax
4ab164:	8d 45 f0             	lea    -0x10(%ebp),%eax
4ab167:	50                   	push   %eax
4ab168:	8b 45 08             	mov    0x8(%ebp),%eax
4ab16b:	51                   	push   %ecx
4ab16c:	51                   	push   %ecx
4ab16d:	dd 00                	fldl   (%eax)
4ab16f:	dd 1c 24             	fstpl  (%esp)
4ab172:	e8 8d 5c 00 00       	call   0x4b0e04
4ab177:	8b 75 10             	mov    0x10(%ebp),%esi
4ab17a:	8d 45 f0             	lea    -0x10(%ebp),%eax
4ab17d:	50                   	push   %eax
4ab17e:	8b 45 f4             	mov    -0xc(%ebp),%eax
4ab181:	03 c6                	add    %esi,%eax
4ab183:	50                   	push   %eax
4ab184:	33 c0                	xor    %eax,%eax
4ab186:	83 7d f0 2d          	cmpl   $0x2d,-0x10(%ebp)
4ab18a:	0f 94 c0             	sete   %al
4ab18d:	03 45 0c             	add    0xc(%ebp),%eax
4ab190:	50                   	push   %eax
4ab191:	e8 f7 5b 00 00       	call   0x4b0d8d
4ab196:	8d 45 f0             	lea    -0x10(%ebp),%eax
4ab199:	6a 00                	push   $0x0
4ab19b:	50                   	push   %eax
4ab19c:	56                   	push   %esi
4ab19d:	ff 75 0c             	push   0xc(%ebp)
4ab1a0:	e8 09 00 00 00       	call   0x4ab1ae
4ab1a5:	8b 45 0c             	mov    0xc(%ebp),%eax
4ab1a8:	83 c4 2c             	add    $0x2c,%esp
4ab1ab:	5e                   	pop    %esi
4ab1ac:	c9                   	leave
4ab1ad:	c3                   	ret
4ab1ae:	55                   	push   %ebp
4ab1af:	8b ec                	mov    %esp,%ebp
4ab1b1:	53                   	push   %ebx
4ab1b2:	56                   	push   %esi
4ab1b3:	8b 75 10             	mov    0x10(%ebp),%esi
4ab1b6:	8b 5d 08             	mov    0x8(%ebp),%ebx
4ab1b9:	57                   	push   %edi
4ab1ba:	8b 46 04             	mov    0x4(%esi),%eax
4ab1bd:	48                   	dec    %eax
4ab1be:	80 7d 14 00          	cmpb   $0x0,0x14(%ebp)
4ab1c2:	74 1a                	je     0x4ab1de
4ab1c4:	3b 45 0c             	cmp    0xc(%ebp),%eax
4ab1c7:	75 15                	jne    0x4ab1de
4ab1c9:	33 c9                	xor    %ecx,%ecx
4ab1cb:	83 3e 2d             	cmpl   $0x2d,(%esi)
4ab1ce:	0f 94 c1             	sete   %cl
4ab1d1:	03 c8                	add    %eax,%ecx
4ab1d3:	03 cb                	add    %ebx,%ecx
4ab1d5:	8b c1                	mov    %ecx,%eax
4ab1d7:	c6 00 30             	movb   $0x30,(%eax)
4ab1da:	80 60 01 00          	andb   $0x0,0x1(%eax)
4ab1de:	83 3e 2d             	cmpl   $0x2d,(%esi)
4ab1e1:	8b fb                	mov    %ebx,%edi
4ab1e3:	75 06                	jne    0x4ab1eb
4ab1e5:	c6 03 2d             	movb   $0x2d,(%ebx)
4ab1e8:	8d 7b 01             	lea    0x1(%ebx),%edi
4ab1eb:	8b 46 04             	mov    0x4(%esi),%eax
4ab1ee:	85 c0                	test   %eax,%eax
4ab1f0:	7f 10                	jg     0x4ab202
4ab1f2:	6a 01                	push   $0x1
4ab1f4:	57                   	push   %edi
4ab1f5:	e8 3f 01 00 00       	call   0x4ab339
4ab1fa:	59                   	pop    %ecx
4ab1fb:	c6 07 30             	movb   $0x30,(%edi)
4ab1fe:	59                   	pop    %ecx
4ab1ff:	47                   	inc    %edi
4ab200:	eb 02                	jmp    0x4ab204
4ab202:	03 f8                	add    %eax,%edi
4ab204:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
4ab208:	7e 44                	jle    0x4ab24e
4ab20a:	6a 01                	push   $0x1
4ab20c:	57                   	push   %edi
4ab20d:	e8 27 01 00 00       	call   0x4ab339
4ab212:	a0 f0 a6 50 00       	mov    0x50a6f0,%al
4ab217:	59                   	pop    %ecx
4ab218:	88 07                	mov    %al,(%edi)
4ab21a:	8b 76 04             	mov    0x4(%esi),%esi
4ab21d:	47                   	inc    %edi
4ab21e:	59                   	pop    %ecx
4ab21f:	85 f6                	test   %esi,%esi
4ab221:	7d 2b                	jge    0x4ab24e
4ab223:	80 7d 14 00          	cmpb   $0x0,0x14(%ebp)
4ab227:	74 04                	je     0x4ab22d
4ab229:	f7 de                	neg    %esi
4ab22b:	eb 07                	jmp    0x4ab234
4ab22d:	f7 de                	neg    %esi
4ab22f:	39 75 0c             	cmp    %esi,0xc(%ebp)
4ab232:	7c 03                	jl     0x4ab237
4ab234:	89 75 0c             	mov    %esi,0xc(%ebp)
4ab237:	ff 75 0c             	push   0xc(%ebp)
4ab23a:	57                   	push   %edi
4ab23b:	e8 f9 00 00 00       	call   0x4ab339
4ab240:	ff 75 0c             	push   0xc(%ebp)
4ab243:	6a 30                	push   $0x30
4ab245:	57                   	push   %edi
4ab246:	e8 d5 5c 00 00       	call   0x4b0f20
4ab24b:	83 c4 14             	add    $0x14,%esp
4ab24e:	5f                   	pop    %edi
4ab24f:	8b c3                	mov    %ebx,%eax
4ab251:	5e                   	pop    %esi
4ab252:	5b                   	pop    %ebx
4ab253:	5d                   	pop    %ebp
4ab254:	c3                   	ret
4ab255:	55                   	push   %ebp
4ab256:	8b ec                	mov    %esp,%ebp
4ab258:	83 ec 28             	sub    $0x28,%esp
4ab25b:	53                   	push   %ebx
4ab25c:	56                   	push   %esi
4ab25d:	8d 45 d8             	lea    -0x28(%ebp),%eax
4ab260:	57                   	push   %edi
4ab261:	50                   	push   %eax
4ab262:	8d 45 f0             	lea    -0x10(%ebp),%eax
4ab265:	50                   	push   %eax
4ab266:	8b 45 08             	mov    0x8(%ebp),%eax
4ab269:	51                   	push   %ecx
4ab26a:	51                   	push   %ecx
4ab26b:	dd 00                	fldl   (%eax)
4ab26d:	dd 1c 24             	fstpl  (%esp)
4ab270:	e8 8f 5b 00 00       	call   0x4b0e04
4ab275:	8b 45 f4             	mov    -0xc(%ebp),%eax
4ab278:	8b 5d 10             	mov    0x10(%ebp),%ebx
4ab27b:	8d 70 ff             	lea    -0x1(%eax),%esi
4ab27e:	33 c0                	xor    %eax,%eax
4ab280:	83 7d f0 2d          	cmpl   $0x2d,-0x10(%ebp)
4ab284:	0f 94 c0             	sete   %al
4ab287:	03 45 0c             	add    0xc(%ebp),%eax
4ab28a:	8b f8                	mov    %eax,%edi
4ab28c:	8d 45 f0             	lea    -0x10(%ebp),%eax
4ab28f:	50                   	push   %eax
4ab290:	53                   	push   %ebx
4ab291:	57                   	push   %edi
4ab292:	e8 f6 5a 00 00       	call   0x4b0d8d
4ab297:	8b 45 f4             	mov    -0xc(%ebp),%eax
4ab29a:	83 c4 1c             	add    $0x1c,%esp
4ab29d:	48                   	dec    %eax
4ab29e:	3b f0                	cmp    %eax,%esi
4ab2a0:	0f 9c c1             	setl   %cl
4ab2a3:	83 f8 fc             	cmp    $0xfffffffc,%eax
4ab2a6:	7c 26                	jl     0x4ab2ce
4ab2a8:	3b c3                	cmp    %ebx,%eax
4ab2aa:	7d 22                	jge    0x4ab2ce
4ab2ac:	84 c9                	test   %cl,%cl
4ab2ae:	74 0a                	je     0x4ab2ba
4ab2b0:	8a 07                	mov    (%edi),%al
4ab2b2:	47                   	inc    %edi
4ab2b3:	84 c0                	test   %al,%al
4ab2b5:	75 f9                	jne    0x4ab2b0
4ab2b7:	20 47 fe             	and    %al,-0x2(%edi)
4ab2ba:	8d 45 f0             	lea    -0x10(%ebp),%eax
4ab2bd:	6a 01                	push   $0x1
4ab2bf:	50                   	push   %eax
4ab2c0:	53                   	push   %ebx
4ab2c1:	ff 75 0c             	push   0xc(%ebp)
4ab2c4:	e8 e5 fe ff ff       	call   0x4ab1ae
4ab2c9:	83 c4 10             	add    $0x10,%esp
4ab2cc:	eb 15                	jmp    0x4ab2e3
4ab2ce:	8d 45 f0             	lea    -0x10(%ebp),%eax
4ab2d1:	6a 01                	push   $0x1
4ab2d3:	50                   	push   %eax
4ab2d4:	ff 75 14             	push   0x14(%ebp)
4ab2d7:	53                   	push   %ebx
4ab2d8:	ff 75 0c             	push   0xc(%ebp)
4ab2db:	e8 b7 fd ff ff       	call   0x4ab097
4ab2e0:	83 c4 14             	add    $0x14,%esp
4ab2e3:	5f                   	pop    %edi
4ab2e4:	5e                   	pop    %esi
4ab2e5:	5b                   	pop    %ebx
4ab2e6:	c9                   	leave
4ab2e7:	c3                   	ret
4ab2e8:	55                   	push   %ebp
4ab2e9:	8b ec                	mov    %esp,%ebp
4ab2eb:	83 7d 10 65          	cmpl   $0x65,0x10(%ebp)
4ab2ef:	74 32                	je     0x4ab323
4ab2f1:	83 7d 10 45          	cmpl   $0x45,0x10(%ebp)
4ab2f5:	74 2c                	je     0x4ab323
4ab2f7:	83 7d 10 66          	cmpl   $0x66,0x10(%ebp)
4ab2fb:	75 13                	jne    0x4ab310
4ab2fd:	ff 75 14             	push   0x14(%ebp)
4ab300:	ff 75 0c             	push   0xc(%ebp)
4ab303:	ff 75 08             	push   0x8(%ebp)
4ab306:	e8 4e fe ff ff       	call   0x4ab159
4ab30b:	83 c4 0c             	add    $0xc,%esp
4ab30e:	5d                   	pop    %ebp
4ab30f:	c3                   	ret
4ab310:	ff 75 18             	push   0x18(%ebp)
4ab313:	ff 75 14             	push   0x14(%ebp)
4ab316:	ff 75 0c             	push   0xc(%ebp)
4ab319:	ff 75 08             	push   0x8(%ebp)
4ab31c:	e8 34 ff ff ff       	call   0x4ab255
4ab321:	eb 11                	jmp    0x4ab334
4ab323:	ff 75 18             	push   0x18(%ebp)
4ab326:	ff 75 14             	push   0x14(%ebp)
4ab329:	ff 75 0c             	push   0xc(%ebp)
4ab32c:	ff 75 08             	push   0x8(%ebp)
4ab32f:	e8 02 fd ff ff       	call   0x4ab036
4ab334:	83 c4 10             	add    $0x10,%esp
4ab337:	5d                   	pop    %ebp
4ab338:	c3                   	ret
4ab339:	57                   	push   %edi
4ab33a:	8b 7c 24 0c          	mov    0xc(%esp),%edi
4ab33e:	85 ff                	test   %edi,%edi
4ab340:	74 1a                	je     0x4ab35c
4ab342:	56                   	push   %esi
4ab343:	8b 74 24 0c          	mov    0xc(%esp),%esi
4ab347:	56                   	push   %esi
4ab348:	e8 b3 3e 00 00       	call   0x4af200
4ab34d:	40                   	inc    %eax
4ab34e:	50                   	push   %eax
4ab34f:	56                   	push   %esi
4ab350:	03 f7                	add    %edi,%esi
4ab352:	56                   	push   %esi
4ab353:	e8 f8 dd ff ff       	call   0x4a9150
4ab358:	83 c4 10             	add    $0x10,%esp
4ab35b:	5e                   	pop    %esi
4ab35c:	5f                   	pop    %edi
4ab35d:	c3                   	ret
4ab35e:	55                   	push   %ebp
4ab35f:	8b ec                	mov    %esp,%ebp
4ab361:	53                   	push   %ebx
4ab362:	56                   	push   %esi
4ab363:	8b 75 0c             	mov    0xc(%ebp),%esi
4ab366:	8b 46 0c             	mov    0xc(%esi),%eax
4ab369:	8b 5e 10             	mov    0x10(%esi),%ebx
4ab36c:	a8 82                	test   $0x82,%al
4ab36e:	0f 84 f6 00 00 00    	je     0x4ab46a
4ab374:	a8 40                	test   $0x40,%al
4ab376:	0f 85 ee 00 00 00    	jne    0x4ab46a
4ab37c:	a8 01                	test   $0x1,%al
4ab37e:	74 16                	je     0x4ab396
4ab380:	83 66 04 00          	andl   $0x0,0x4(%esi)
4ab384:	a8 10                	test   $0x10,%al
4ab386:	0f 84 de 00 00 00    	je     0x4ab46a
4ab38c:	8b 4e 08             	mov    0x8(%esi),%ecx
4ab38f:	24 fe                	and    $0xfe,%al
4ab391:	89 0e                	mov    %ecx,(%esi)
4ab393:	89 46 0c             	mov    %eax,0xc(%esi)
4ab396:	8b 46 0c             	mov    0xc(%esi),%eax
4ab399:	83 66 04 00          	andl   $0x0,0x4(%esi)
4ab39d:	83 65 0c 00          	andl   $0x0,0xc(%ebp)
4ab3a1:	24 ef                	and    $0xef,%al
4ab3a3:	0c 02                	or     $0x2,%al
4ab3a5:	66 a9 0c 01          	test   $0x10c,%ax
4ab3a9:	89 46 0c             	mov    %eax,0xc(%esi)
4ab3ac:	75 22                	jne    0x4ab3d0
4ab3ae:	81 fe 80 cb 50 00    	cmp    $0x50cb80,%esi
4ab3b4:	74 08                	je     0x4ab3be
4ab3b6:	81 fe a0 cb 50 00    	cmp    $0x50cba0,%esi
4ab3bc:	75 0b                	jne    0x4ab3c9
4ab3be:	53                   	push   %ebx
4ab3bf:	e8 01 5c 00 00       	call   0x4b0fc5
4ab3c4:	85 c0                	test   %eax,%eax
4ab3c6:	59                   	pop    %ecx
4ab3c7:	75 07                	jne    0x4ab3d0
4ab3c9:	56                   	push   %esi
4ab3ca:	e8 b2 5b 00 00       	call   0x4b0f81
4ab3cf:	59                   	pop    %ecx
4ab3d0:	66 f7 46 0c 08 01    	testw  $0x108,0xc(%esi)
4ab3d6:	57                   	push   %edi
4ab3d7:	74 67                	je     0x4ab440
4ab3d9:	8b 46 08             	mov    0x8(%esi),%eax
4ab3dc:	8b 3e                	mov    (%esi),%edi
4ab3de:	2b f8                	sub    %eax,%edi
4ab3e0:	8d 48 01             	lea    0x1(%eax),%ecx
4ab3e3:	89 0e                	mov    %ecx,(%esi)
4ab3e5:	8b 4e 18             	mov    0x18(%esi),%ecx
4ab3e8:	49                   	dec    %ecx
4ab3e9:	85 ff                	test   %edi,%edi
4ab3eb:	89 4e 04             	mov    %ecx,0x4(%esi)
4ab3ee:	7e 10                	jle    0x4ab400
4ab3f0:	57                   	push   %edi
4ab3f1:	50                   	push   %eax
4ab3f2:	53                   	push   %ebx
4ab3f3:	e8 37 46 00 00       	call   0x4afa2f
4ab3f8:	83 c4 0c             	add    $0xc,%esp
4ab3fb:	89 45 0c             	mov    %eax,0xc(%ebp)
4ab3fe:	eb 36                	jmp    0x4ab436
4ab400:	83 fb ff             	cmp    $0xffffffff,%ebx
4ab403:	74 19                	je     0x4ab41e
4ab405:	8b cb                	mov    %ebx,%ecx
4ab407:	8b c3                	mov    %ebx,%eax
4ab409:	c1 f9 05             	sar    $0x5,%ecx
4ab40c:	83 e0 1f             	and    $0x1f,%eax
4ab40f:	8b 0c 8d 80 df 51 00 	mov    0x51df80(,%ecx,4),%ecx
4ab416:	8d 04 c0             	lea    (%eax,%eax,8),%eax
4ab419:	8d 04 81             	lea    (%ecx,%eax,4),%eax
4ab41c:	eb 05                	jmp    0x4ab423
4ab41e:	b8 e8 a2 50 00       	mov    $0x50a2e8,%eax
4ab423:	f6 40 04 20          	testb  $0x20,0x4(%eax)
4ab427:	74 0d                	je     0x4ab436
4ab429:	6a 02                	push   $0x2
4ab42b:	6a 00                	push   $0x0
4ab42d:	53                   	push   %ebx
4ab42e:	e8 24 45 00 00       	call   0x4af957
4ab433:	83 c4 0c             	add    $0xc,%esp
4ab436:	8b 46 08             	mov    0x8(%esi),%eax
4ab439:	8a 4d 08             	mov    0x8(%ebp),%cl
4ab43c:	88 08                	mov    %cl,(%eax)
4ab43e:	eb 14                	jmp    0x4ab454
4ab440:	6a 01                	push   $0x1
4ab442:	8d 45 08             	lea    0x8(%ebp),%eax
4ab445:	5f                   	pop    %edi
4ab446:	57                   	push   %edi
4ab447:	50                   	push   %eax
4ab448:	53                   	push   %ebx
4ab449:	e8 e1 45 00 00       	call   0x4afa2f
4ab44e:	83 c4 0c             	add    $0xc,%esp
4ab451:	89 45 0c             	mov    %eax,0xc(%ebp)
4ab454:	39 7d 0c             	cmp    %edi,0xc(%ebp)
4ab457:	5f                   	pop    %edi
4ab458:	74 06                	je     0x4ab460
4ab45a:	83 4e 0c 20          	orl    $0x20,0xc(%esi)
4ab45e:	eb 0f                	jmp    0x4ab46f
4ab460:	8b 45 08             	mov    0x8(%ebp),%eax
4ab463:	25 ff 00 00 00       	and    $0xff,%eax
4ab468:	eb 08                	jmp    0x4ab472
4ab46a:	0c 20                	or     $0x20,%al
4ab46c:	89 46 0c             	mov    %eax,0xc(%esi)
4ab46f:	83 c8 ff             	or     $0xffffffff,%eax
4ab472:	5e                   	pop    %esi
4ab473:	5b                   	pop    %ebx
4ab474:	5d                   	pop    %ebp
4ab475:	c3                   	ret
4ab476:	55                   	push   %ebp
4ab477:	8b ec                	mov    %esp,%ebp
4ab479:	81 ec 4c 02 00 00    	sub    $0x24c,%esp
4ab47f:	53                   	push   %ebx
4ab480:	56                   	push   %esi
4ab481:	8b 75 0c             	mov    0xc(%ebp),%esi
4ab484:	33 c9                	xor    %ecx,%ecx
4ab486:	57                   	push   %edi
4ab487:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4ab48a:	8a 1e                	mov    (%esi),%bl
4ab48c:	46                   	inc    %esi
4ab48d:	84 db                	test   %bl,%bl
4ab48f:	89 4d ec             	mov    %ecx,-0x14(%ebp)
4ab492:	89 4d d0             	mov    %ecx,-0x30(%ebp)
4ab495:	89 75 0c             	mov    %esi,0xc(%ebp)
4ab498:	0f 84 4e 07 00 00    	je     0x4abbec
4ab49e:	bf 00 08 00 00       	mov    $0x800,%edi