5ac1be:	8b d0                	mov    %eax,%edx
5ac1c0:	8b c6                	mov    %esi,%eax
5ac1c2:	e8 1d 01 00 00       	call   0x5ac2e4
5ac1c7:	03 75 e4             	add    -0x1c(%ebp),%esi
5ac1ca:	4f                   	dec    %edi
5ac1cb:	ff 45 e0             	incl   -0x20(%ebp)
5ac1ce:	75 d8                	jne    0x5ac1a8
5ac1d0:	e9 f9 00 00 00       	jmp    0x5ac2ce
5ac1d5:	66 c7 46 0e 08 00    	movw   $0x8,0xe(%esi)
5ac1db:	8d 46 28             	lea    0x28(%esi),%eax
5ac1de:	8b f0                	mov    %eax,%esi
5ac1e0:	8b c3                	mov    %ebx,%eax
5ac1e2:	8b 10                	mov    (%eax),%edx
5ac1e4:	ff 52 10             	call   *0x10(%edx)
5ac1e7:	2c 02                	sub    $0x2,%al
5ac1e9:	74 06                	je     0x5ac1f1
5ac1eb:	fe c8                	dec    %al
5ac1ed:	74 4a                	je     0x5ac239
5ac1ef:	eb 6d                	jmp    0x5ac25e
5ac1f1:	8b c3                	mov    %ebx,%eax
5ac1f3:	8b 10                	mov    (%eax),%edx
5ac1f5:	ff 52 20             	call   *0x20(%edx)
5ac1f8:	48                   	dec    %eax
5ac1f9:	85 c0                	test   %eax,%eax
5ac1fb:	7c 61                	jl     0x5ac25e
5ac1fd:	40                   	inc    %eax
5ac1fe:	89 45 e0             	mov    %eax,-0x20(%ebp)
5ac201:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
5ac208:	8d 4d dd             	lea    -0x23(%ebp),%ecx
5ac20b:	8b 55 f0             	mov    -0x10(%ebp),%edx
5ac20e:	8b c3                	mov    %ebx,%eax
5ac210:	8b 38                	mov    (%eax),%edi
5ac212:	ff 57 18             	call   *0x18(%edi)
5ac215:	8b c6                	mov    %esi,%eax
5ac217:	8a 55 dd             	mov    -0x23(%ebp),%dl
5ac21a:	88 10                	mov    %dl,(%eax)
5ac21c:	8a 55 de             	mov    -0x22(%ebp),%dl
5ac21f:	88 50 01             	mov    %dl,0x1(%eax)
5ac222:	8a 55 df             	mov    -0x21(%ebp),%dl
5ac225:	88 50 02             	mov    %dl,0x2(%eax)
5ac228:	c6 40 03 00          	movb   $0x0,0x3(%eax)
5ac22c:	83 c6 04             	add    $0x4,%esi
5ac22f:	ff 45 f0             	incl   -0x10(%ebp)
5ac232:	ff 4d e0             	decl   -0x20(%ebp)
5ac235:	75 d1                	jne    0x5ac208
5ac237:	eb 25                	jmp    0x5ac25e
5ac239:	33 c0                	xor    %eax,%eax
5ac23b:	89 45 f0             	mov    %eax,-0x10(%ebp)
5ac23e:	8b c6                	mov    %esi,%eax
5ac240:	8a 55 f0             	mov    -0x10(%ebp),%dl
5ac243:	88 10                	mov    %dl,(%eax)
5ac245:	88 50 01             	mov    %dl,0x1(%eax)
5ac248:	88 50 02             	mov    %dl,0x2(%eax)
5ac24b:	c6 40 03 00          	movb   $0x0,0x3(%eax)
5ac24f:	83 c6 04             	add    $0x4,%esi
5ac252:	ff 45 f0             	incl   -0x10(%ebp)
5ac255:	81 7d f0 00 01 00 00 	cmpl   $0x100,-0x10(%ebp)
5ac25c:	75 e0                	jne    0x5ac23e
5ac25e:	8b 7d 08             	mov    0x8(%ebp),%edi
5ac261:	4f                   	dec    %edi
5ac262:	8b 45 f8             	mov    -0x8(%ebp),%eax
5ac265:	2b c7                	sub    %edi,%eax
5ac267:	7f 65                	jg     0x5ac2ce
5ac269:	48                   	dec    %eax
5ac26a:	89 45 e0             	mov    %eax,-0x20(%ebp)
5ac26d:	8b d7                	mov    %edi,%edx
5ac26f:	8b c3                	mov    %ebx,%eax
5ac271:	8b 08                	mov    (%eax),%ecx
5ac273:	ff 11                	call   *(%ecx)
5ac275:	03 45 fc             	add    -0x4(%ebp),%eax
5ac278:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
5ac27b:	8b d0                	mov    %eax,%edx
5ac27d:	8b c6                	mov    %esi,%eax
5ac27f:	e8 3c bc e5 ff       	call   0x407ec0
5ac284:	03 75 e4             	add    -0x1c(%ebp),%esi
5ac287:	4f                   	dec    %edi
5ac288:	ff 45 e0             	incl   -0x20(%ebp)
5ac28b:	75 e0                	jne    0x5ac26d
5ac28d:	eb 3f                	jmp    0x5ac2ce
5ac28f:	66 c7 46 0e 18 00    	movw   $0x18,0xe(%esi)
5ac295:	8d 46 28             	lea    0x28(%esi),%eax
5ac298:	8b f0                	mov    %eax,%esi
5ac29a:	8b 7d 08             	mov    0x8(%ebp),%edi
5ac29d:	4f                   	dec    %edi
5ac29e:	8b 45 f8             	mov    -0x8(%ebp),%eax
5ac2a1:	2b c7                	sub    %edi,%eax
5ac2a3:	7f 29                	jg     0x5ac2ce
5ac2a5:	48                   	dec    %eax
5ac2a6:	89 45 e0             	mov    %eax,-0x20(%ebp)
5ac2a9:	8b d7                	mov    %edi,%edx
5ac2ab:	8b c3                	mov    %ebx,%eax
5ac2ad:	8b 08                	mov    (%eax),%ecx
5ac2af:	ff 11                	call   *(%ecx)
5ac2b1:	8b 55 fc             	mov    -0x4(%ebp),%edx
5ac2b4:	8d 14 52             	lea    (%edx,%edx,2),%edx
5ac2b7:	03 c2                	add    %edx,%eax
5ac2b9:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
5ac2bc:	8b d0                	mov    %eax,%edx
5ac2be:	8b c6                	mov    %esi,%eax
5ac2c0:	e8 fb bb e5 ff       	call   0x407ec0
5ac2c5:	03 75 e4             	add    -0x1c(%ebp),%esi
5ac2c8:	4f                   	dec    %edi
5ac2c9:	ff 45 e0             	incl   -0x20(%ebp)
5ac2cc:	75 db                	jne    0x5ac2a9
5ac2ce:	8b 45 f4             	mov    -0xc(%ebp),%eax
5ac2d1:	50                   	push   %eax
5ac2d2:	e8 19 b0 e5 ff       	call   0x4072f0
5ac2d7:	8b 45 f4             	mov    -0xc(%ebp),%eax
5ac2da:	5f                   	pop    %edi
5ac2db:	5e                   	pop    %esi
5ac2dc:	5b                   	pop    %ebx
5ac2dd:	8b e5                	mov    %ebp,%esp
5ac2df:	5d                   	pop    %ebp
5ac2e0:	c2 08 00             	ret    $0x8
5ac2e3:	90                   	nop
5ac2e4:	55                   	push   %ebp
5ac2e5:	8b ec                	mov    %esp,%ebp
5ac2e7:	83 c4 d4             	add    $0xffffffd4,%esp
5ac2ea:	53                   	push   %ebx
5ac2eb:	56                   	push   %esi
5ac2ec:	57                   	push   %edi
5ac2ed:	89 4d f4             	mov    %ecx,-0xc(%ebp)
5ac2f0:	89 55 f8             	mov    %edx,-0x8(%ebp)
5ac2f3:	89 45 fc             	mov    %eax,-0x4(%ebp)
5ac2f6:	8b 7d 0c             	mov    0xc(%ebp),%edi
5ac2f9:	8b 45 10             	mov    0x10(%ebp),%eax
5ac2fc:	85 ff                	test   %edi,%edi
5ac2fe:	0f 8e a0 01 00 00    	jle    0x5ac4a4
5ac304:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
5ac308:	0f 8c 96 01 00 00    	jl     0x5ac4a4
5ac30e:	85 c0                	test   %eax,%eax
5ac310:	0f 8c 8e 01 00 00    	jl     0x5ac4a4
5ac316:	8b 55 f4             	mov    -0xc(%ebp),%edx
5ac319:	c1 ea 03             	shr    $0x3,%edx
5ac31c:	01 55 fc             	add    %edx,-0x4(%ebp)
5ac31f:	8b d0                	mov    %eax,%edx
5ac321:	c1 ea 03             	shr    $0x3,%edx
5ac324:	01 55 f8             	add    %edx,-0x8(%ebp)
5ac327:	29 55 08             	sub    %edx,0x8(%ebp)
5ac32a:	8b 5d f4             	mov    -0xc(%ebp),%ebx
5ac32d:	83 e3 07             	and    $0x7,%ebx
5ac330:	8b f0                	mov    %eax,%esi
5ac332:	83 e6 07             	and    $0x7,%esi
5ac335:	8d 44 1f 07          	lea    0x7(%edi,%ebx,1),%eax
5ac339:	c1 e8 03             	shr    $0x3,%eax
5ac33c:	89 45 e8             	mov    %eax,-0x18(%ebp)
5ac33f:	8a 86 b4 51 6a 00    	mov    0x6a51b4(%esi),%al
5ac345:	88 45 e2             	mov    %al,-0x1e(%ebp)
5ac348:	8a 83 ac 51 6a 00    	mov    0x6a51ac(%ebx),%al
5ac34e:	88 45 e0             	mov    %al,-0x20(%ebp)
5ac351:	8a 86 a4 51 6a 00    	mov    0x6a51a4(%esi),%al
5ac357:	88 45 e1             	mov    %al,-0x1f(%ebp)
5ac35a:	8b 45 fc             	mov    -0x4(%ebp),%eax
5ac35d:	8a 00                	mov    (%eax),%al
5ac35f:	22 83 a4 51 6a 00    	and    0x6a51a4(%ebx),%al
5ac365:	88 45 f3             	mov    %al,-0xd(%ebp)
5ac368:	8b 45 e8             	mov    -0x18(%ebp),%eax
5ac36b:	c1 e0 03             	shl    $0x3,%eax
5ac36e:	2b c3                	sub    %ebx,%eax
5ac370:	2b c7                	sub    %edi,%eax
5ac372:	89 45 ec             	mov    %eax,-0x14(%ebp)
5ac375:	8b 45 fc             	mov    -0x4(%ebp),%eax
5ac378:	8b 55 e8             	mov    -0x18(%ebp),%edx
5ac37b:	8d 44 10 ff          	lea    -0x1(%eax,%edx,1),%eax
5ac37f:	8a 00                	mov    (%eax),%al
5ac381:	8b 55 ec             	mov    -0x14(%ebp),%edx
5ac384:	22 82 ac 51 6a 00    	and    0x6a51ac(%edx),%al
5ac38a:	88 45 f2             	mov    %al,-0xe(%ebp)
5ac38d:	8d 44 37 07          	lea    0x7(%edi,%esi,1),%eax
5ac391:	c1 e8 03             	shr    $0x3,%eax
5ac394:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5ac397:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5ac39a:	83 c0 08             	add    $0x8,%eax
5ac39d:	e8 12 cd e5 ff       	call   0x4090b4
5ac3a2:	89 45 d8             	mov    %eax,-0x28(%ebp)
5ac3a5:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5ac3a8:	83 c0 08             	add    $0x8,%eax
5ac3ab:	8b 55 08             	mov    0x8(%ebp),%edx
5ac3ae:	e8 69 d0 ff ff       	call   0x5a941c
5ac3b3:	8b c8                	mov    %eax,%ecx
5ac3b5:	8b 55 f8             	mov    -0x8(%ebp),%edx
5ac3b8:	8b 45 d8             	mov    -0x28(%ebp),%eax
5ac3bb:	e8 00 bb e5 ff       	call   0x407ec0
5ac3c0:	f7 c7 07 00 00 00    	test   $0x7,%edi
5ac3c6:	75 0c                	jne    0x5ac3d4
5ac3c8:	85 db                	test   %ebx,%ebx
5ac3ca:	7f 08                	jg     0x5ac3d4
5ac3cc:	85 f6                	test   %esi,%esi
5ac3ce:	0f 8e ba 00 00 00    	jle    0x5ac48e
5ac3d4:	85 f6                	test   %esi,%esi
5ac3d6:	7e 49                	jle    0x5ac421
5ac3d8:	8b 45 d8             	mov    -0x28(%ebp),%eax
5ac3db:	8b 55 d8             	mov    -0x28(%ebp),%edx
5ac3de:	89 55 dc             	mov    %edx,-0x24(%ebp)
5ac3e1:	ff 45 dc             	incl   -0x24(%ebp)
5ac3e4:	8b 55 e4             	mov    -0x1c(%ebp),%edx
5ac3e7:	4a                   	dec    %edx
5ac3e8:	85 d2                	test   %edx,%edx
5ac3ea:	7c 35                	jl     0x5ac421
5ac3ec:	42                   	inc    %edx
5ac3ed:	89 55 d4             	mov    %edx,-0x2c(%ebp)
5ac3f0:	8b ce                	mov    %esi,%ecx
5ac3f2:	8a 10                	mov    (%eax),%dl
5ac3f4:	d2 e2                	shl    %cl,%dl
5ac3f6:	22 55 e2             	and    -0x1e(%ebp),%dl
5ac3f9:	8b 4d dc             	mov    -0x24(%ebp),%ecx
5ac3fc:	8a 09                	mov    (%ecx),%cl
5ac3fe:	22 4d e1             	and    -0x1f(%ebp),%cl
5ac401:	8b f9                	mov    %ecx,%edi
5ac403:	81 e7 ff 00 00 00    	and    $0xff,%edi
5ac409:	b9 08 00 00 00       	mov    $0x8,%ecx
5ac40e:	2b ce                	sub    %esi,%ecx
5ac410:	d3 ef                	shr    %cl,%edi
5ac412:	8b cf                	mov    %edi,%ecx
5ac414:	0a d1                	or     %cl,%dl
5ac416:	88 10                	mov    %dl,(%eax)
5ac418:	40                   	inc    %eax
5ac419:	ff 45 dc             	incl   -0x24(%ebp)
5ac41c:	ff 4d d4             	decl   -0x2c(%ebp)
5ac41f:	75 cf                	jne    0x5ac3f0
5ac421:	85 db                	test   %ebx,%ebx
5ac423:	7e 38                	jle    0x5ac45d
5ac425:	c6 45 e3 00          	movb   $0x0,-0x1d(%ebp)
5ac429:	8b 45 d8             	mov    -0x28(%ebp),%eax
5ac42c:	8b 55 e8             	mov    -0x18(%ebp),%edx
5ac42f:	4a                   	dec    %edx
5ac430:	85 d2                	test   %edx,%edx
5ac432:	7c 29                	jl     0x5ac45d
5ac434:	42                   	inc    %edx
5ac435:	89 55 d4             	mov    %edx,-0x2c(%ebp)
5ac438:	b9 08 00 00 00       	mov    $0x8,%ecx
5ac43d:	2b cb                	sub    %ebx,%ecx
5ac43f:	8a 10                	mov    (%eax),%dl
5ac441:	22 55 e0             	and    -0x20(%ebp),%dl
5ac444:	d2 e2                	shl    %cl,%dl
5ac446:	8b cb                	mov    %ebx,%ecx
5ac448:	0f b6 30             	movzbl (%eax),%esi
5ac44b:	d3 ee                	shr    %cl,%esi
5ac44d:	8b ce                	mov    %esi,%ecx
5ac44f:	0a 4d e3             	or     -0x1d(%ebp),%cl
5ac452:	88 08                	mov    %cl,(%eax)
5ac454:	88 55 e3             	mov    %dl,-0x1d(%ebp)
5ac457:	40                   	inc    %eax
5ac458:	ff 4d d4             	decl   -0x2c(%ebp)
5ac45b:	75 db                	jne    0x5ac438
5ac45d:	8a 83 a4 51 6a 00    	mov    0x6a51a4(%ebx),%al
5ac463:	f6 d0                	not    %al
5ac465:	8b 55 d8             	mov    -0x28(%ebp),%edx
5ac468:	22 02                	and    (%edx),%al
5ac46a:	0a 45 f3             	or     -0xd(%ebp),%al
5ac46d:	8b 55 d8             	mov    -0x28(%ebp),%edx
5ac470:	88 02                	mov    %al,(%edx)
5ac472:	8b 45 d8             	mov    -0x28(%ebp),%eax
5ac475:	8b 55 e8             	mov    -0x18(%ebp),%edx
5ac478:	8d 44 10 ff          	lea    -0x1(%eax,%edx,1),%eax
5ac47c:	8b 55 ec             	mov    -0x14(%ebp),%edx
5ac47f:	8a 92 ac 51 6a 00    	mov    0x6a51ac(%edx),%dl
5ac485:	f6 d2                	not    %dl
5ac487:	22 10                	and    (%eax),%dl
5ac489:	0a 55 f2             	or     -0xe(%ebp),%dl
5ac48c:	88 10                	mov    %dl,(%eax)
5ac48e:	8b 4d e8             	mov    -0x18(%ebp),%ecx
5ac491:	8b 55 d8             	mov    -0x28(%ebp),%edx
5ac494:	8b 45 fc             	mov    -0x4(%ebp),%eax
5ac497:	e8 24 ba e5 ff       	call   0x407ec0
5ac49c:	8b 45 d8             	mov    -0x28(%ebp),%eax
5ac49f:	e8 28 63 e5 ff       	call   0x4027cc
5ac4a4:	5f                   	pop    %edi
5ac4a5:	5e                   	pop    %esi
5ac4a6:	5b                   	pop    %ebx
5ac4a7:	8b e5                	mov    %ebp,%esp
5ac4a9:	5d                   	pop    %ebp
5ac4aa:	c2 0c 00             	ret    $0xc
5ac4ad:	8d 40 00             	lea    0x0(%eax),%eax
5ac4b0:	55                   	push   %ebp
5ac4b1:	8b ec                	mov    %esp,%ebp
5ac4b3:	83 c4 ec             	add    $0xffffffec,%esp
5ac4b6:	53                   	push   %ebx
5ac4b7:	56                   	push   %esi
5ac4b8:	57                   	push   %edi
5ac4b9:	89 4d f8             	mov    %ecx,-0x8(%ebp)
5ac4bc:	66 89 55 fe          	mov    %dx,-0x2(%ebp)
5ac4c0:	8b f8                	mov    %eax,%edi
5ac4c2:	8b 5d 08             	mov    0x8(%ebp),%ebx
5ac4c5:	c6 45 f7 00          	movb   $0x0,-0x9(%ebp)
5ac4c9:	66 8b 55 fe          	mov    -0x2(%ebp),%dx
5ac4cd:	8b c7                	mov    %edi,%eax
5ac4cf:	e8 6c d2 ff ff       	call   0x5a9740
5ac4d4:	84 c0                	test   %al,%al
5ac4d6:	0f 84 f2 00 00 00    	je     0x5ac5ce
5ac4dc:	80 7f 30 00          	cmpb   $0x0,0x30(%edi)
5ac4e0:	74 0c                	je     0x5ac4ee
5ac4e2:	b1 01                	mov    $0x1,%cl
5ac4e4:	8b 55 10             	mov    0x10(%ebp),%edx
5ac4e7:	8b c7                	mov    %edi,%eax
5ac4e9:	e8 a6 d6 ff ff       	call   0x5a9b94
5ac4ee:	8b 45 18             	mov    0x18(%ebp),%eax
5ac4f1:	50                   	push   %eax
5ac4f2:	8b 45 14             	mov    0x14(%ebp),%eax
5ac4f5:	50                   	push   %eax
5ac4f6:	8d 45 f0             	lea    -0x10(%ebp),%eax
5ac4f9:	50                   	push   %eax
5ac4fa:	8d 45 ec             	lea    -0x14(%ebp),%eax
5ac4fd:	50                   	push   %eax
5ac4fe:	53                   	push   %ebx
5ac4ff:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
5ac502:	8b 55 f8             	mov    -0x8(%ebp),%edx
5ac505:	8b c7                	mov    %edi,%eax
5ac507:	66 be ef ff          	mov    $0xffef,%si
5ac50b:	e8 64 77 e5 ff       	call   0x403c74
5ac510:	83 3b 00             	cmpl   $0x0,(%ebx)
5ac513:	0f 84 a9 00 00 00    	je     0x5ac5c2
5ac519:	8b 03                	mov    (%ebx),%eax
5ac51b:	e8 40 82 04 00       	call   0x5f4760
5ac520:	84 c0                	test   %al,%al
5ac522:	0f 85 9a 00 00 00    	jne    0x5ac5c2
5ac528:	b2 01                	mov    $0x1,%dl
5ac52a:	a1 18 ff 5e 00       	mov    0x5eff18,%eax
5ac52f:	e8 70 b0 04 00       	call   0x5f75a4
5ac534:	8b 55 0c             	mov    0xc(%ebp),%edx
5ac537:	89 02                	mov    %eax,(%edx)
5ac539:	8b 47 58             	mov    0x58(%edi),%eax
5ac53c:	8b 10                	mov    (%eax),%edx
5ac53e:	ff 52 10             	call   *0x10(%edx)
5ac541:	50                   	push   %eax
5ac542:	8b 03                	mov    (%ebx),%eax
5ac544:	8b 48 24             	mov    0x24(%eax),%ecx
5ac547:	8b 03                	mov    (%ebx),%eax
5ac549:	2b 48 1c             	sub    0x1c(%eax),%ecx
5ac54c:	41                   	inc    %ecx
5ac54d:	8b 03                	mov    (%ebx),%eax
5ac54f:	8b 50 20             	mov    0x20(%eax),%edx
5ac552:	8b 03                	mov    (%ebx),%eax
5ac554:	2b 50 18             	sub    0x18(%eax),%edx
5ac557:	42                   	inc    %edx
5ac558:	8b 45 0c             	mov    0xc(%ebp),%eax
5ac55b:	8b 00                	mov    (%eax),%eax
5ac55d:	8b 30                	mov    (%eax),%esi
5ac55f:	ff 56 24             	call   *0x24(%esi)
5ac562:	8b 03                	mov    (%ebx),%eax
5ac564:	8b 40 1c             	mov    0x1c(%eax),%eax
5ac567:	50                   	push   %eax
5ac568:	6a 00                	push   $0x0
5ac56a:	6a 00                	push   $0x0
5ac56c:	8b 45 0c             	mov    0xc(%ebp),%eax
5ac56f:	8b 00                	mov    (%eax),%eax
5ac571:	8b 10                	mov    (%eax),%edx
5ac573:	ff 52 0c             	call   *0xc(%edx)
5ac576:	50                   	push   %eax
5ac577:	8b 45 0c             	mov    0xc(%ebp),%eax