55121c:	8b 4d 08             	mov    0x8(%ebp),%ecx
55121f:	85 c9                	test   %ecx,%ecx
551221:	0f 84 4c 01 00 00    	je     0x551373
551227:	8b 45 f8             	mov    -0x8(%ebp),%eax
55122a:	8b 4d 08             	mov    0x8(%ebp),%ecx
55122d:	8b 90 c0 00 00 00    	mov    0xc0(%eax),%edx
551233:	8b 45 fc             	mov    -0x4(%ebp),%eax
551236:	03 d1                	add    %ecx,%edx
551238:	c1 e2 02             	shl    $0x2,%edx
55123b:	8d 14 92             	lea    (%edx,%edx,4),%edx
55123e:	e8 59 09 00 00       	call   0x551b9c
551243:	89 45 f0             	mov    %eax,-0x10(%ebp)
551246:	8b 4d f0             	mov    -0x10(%ebp),%ecx
551249:	85 c9                	test   %ecx,%ecx
55124b:	75 12                	jne    0x55125f
55124d:	ba 64 c4 69 00       	mov    $0x69c464,%edx
551252:	8b 45 fc             	mov    -0x4(%ebp),%eax
551255:	e8 8e 0a 00 00       	call   0x551ce8
55125a:	e9 14 01 00 00       	jmp    0x551373
55125f:	8b 4d f8             	mov    -0x8(%ebp),%ecx
551262:	8b 81 c0 00 00 00    	mov    0xc0(%ecx),%eax
551268:	c1 e0 02             	shl    $0x2,%eax
55126b:	8d 04 80             	lea    (%eax,%eax,4),%eax
55126e:	50                   	push   %eax
55126f:	8b 55 f8             	mov    -0x8(%ebp),%edx
551272:	8b 8a bc 00 00 00    	mov    0xbc(%edx),%ecx
551278:	51                   	push   %ecx
551279:	8b 45 f0             	mov    -0x10(%ebp),%eax
55127c:	50                   	push   %eax
55127d:	e8 5e 51 fd ff       	call   0x5263e0
551282:	83 c4 0c             	add    $0xc,%esp
551285:	8b 55 f8             	mov    -0x8(%ebp),%edx
551288:	8b 92 bc 00 00 00    	mov    0xbc(%edx),%edx
55128e:	8b 45 fc             	mov    -0x4(%ebp),%eax
551291:	e8 d2 08 00 00       	call   0x551b68
551296:	8b 4d f8             	mov    -0x8(%ebp),%ecx
551299:	33 c0                	xor    %eax,%eax
55129b:	89 81 bc 00 00 00    	mov    %eax,0xbc(%ecx)
5512a1:	33 ff                	xor    %edi,%edi
5512a3:	8b 45 08             	mov    0x8(%ebp),%eax
5512a6:	3b f8                	cmp    %eax,%edi
5512a8:	0f 8d a0 00 00 00    	jge    0x55134e
5512ae:	8b 55 f8             	mov    -0x8(%ebp),%edx
5512b1:	8b c7                	mov    %edi,%eax
5512b3:	c1 e0 02             	shl    $0x2,%eax
5512b6:	8b 9a c0 00 00 00    	mov    0xc0(%edx),%ebx
5512bc:	c1 e3 02             	shl    $0x2,%ebx
5512bf:	8b 55 f0             	mov    -0x10(%ebp),%edx
5512c2:	8d 04 80             	lea    (%eax,%eax,4),%eax
5512c5:	8b f0                	mov    %eax,%esi
5512c7:	8d 1c 9b             	lea    (%ebx,%ebx,4),%ebx
5512ca:	03 da                	add    %edx,%ebx
5512cc:	03 d8                	add    %eax,%ebx
5512ce:	8b 45 f4             	mov    -0xc(%ebp),%eax
5512d1:	03 f0                	add    %eax,%esi
5512d3:	33 c0                	xor    %eax,%eax
5512d5:	56                   	push   %esi
5512d6:	57                   	push   %edi
5512d7:	8b fe                	mov    %esi,%edi
5512d9:	83 c9 ff             	or     $0xffffffff,%ecx
5512dc:	f2 ae                	repnz scas %es:(%edi),%al
5512de:	f7 d1                	not    %ecx
5512e0:	2b f9                	sub    %ecx,%edi
5512e2:	8b f3                	mov    %ebx,%esi
5512e4:	87 f7                	xchg   %esi,%edi
5512e6:	8b d1                	mov    %ecx,%edx
5512e8:	8b c7                	mov    %edi,%eax
5512ea:	c1 e9 02             	shr    $0x2,%ecx
5512ed:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
5512ef:	8b ca                	mov    %edx,%ecx
5512f1:	83 e1 03             	and    $0x3,%ecx
5512f4:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
5512f6:	5f                   	pop    %edi
5512f7:	5e                   	pop    %esi
5512f8:	8b 45 fc             	mov    -0x4(%ebp),%eax
5512fb:	8b 56 0c             	mov    0xc(%esi),%edx
5512fe:	e8 f1 07 00 00       	call   0x551af4
551303:	89 43 08             	mov    %eax,0x8(%ebx)
551306:	8b 4b 08             	mov    0x8(%ebx),%ecx
551309:	85 c9                	test   %ecx,%ecx
55130b:	75 0f                	jne    0x55131c
55130d:	ba 92 c4 69 00       	mov    $0x69c492,%edx
551312:	8b 45 fc             	mov    -0x4(%ebp),%eax
551315:	e8 ce 09 00 00       	call   0x551ce8
55131a:	eb 26                	jmp    0x551342
55131c:	8b 4e 0c             	mov    0xc(%esi),%ecx
55131f:	51                   	push   %ecx
551320:	8b 46 08             	mov    0x8(%esi),%eax
551323:	50                   	push   %eax
551324:	8b 53 08             	mov    0x8(%ebx),%edx
551327:	52                   	push   %edx
551328:	e8 b3 50 fd ff       	call   0x5263e0
55132d:	83 c4 0c             	add    $0xc,%esp
551330:	8b 4e 0c             	mov    0xc(%esi),%ecx
551333:	89 4b 0c             	mov    %ecx,0xc(%ebx)
551336:	8b 45 fc             	mov    -0x4(%ebp),%eax
551339:	8a 50 28             	mov    0x28(%eax),%dl
55133c:	80 e2 ff             	and    $0xff,%dl
55133f:	88 53 10             	mov    %dl,0x10(%ebx)
551342:	47                   	inc    %edi
551343:	8b 4d 08             	mov    0x8(%ebp),%ecx
551346:	3b f9                	cmp    %ecx,%edi
551348:	0f 8c 60 ff ff ff    	jl     0x5512ae
55134e:	8b 45 f8             	mov    -0x8(%ebp),%eax
551351:	8b 55 f0             	mov    -0x10(%ebp),%edx
551354:	89 90 bc 00 00 00    	mov    %edx,0xbc(%eax)
55135a:	8b 4d f8             	mov    -0x8(%ebp),%ecx
55135d:	8b 45 08             	mov    0x8(%ebp),%eax
551360:	01 81 c0 00 00 00    	add    %eax,0xc0(%ecx)
551366:	8b 55 f8             	mov    -0x8(%ebp),%edx
551369:	81 8a b8 00 00 00 00 	orl    $0x200,0xb8(%edx)
551370:	02 00 00
551373:	5f                   	pop    %edi
551374:	5e                   	pop    %esi
551375:	5b                   	pop    %ebx
551376:	8b e5                	mov    %ebp,%esp
551378:	5d                   	pop    %ebp
551379:	c2 04 00             	ret    $0x4
55137c:	55                   	push   %ebp
55137d:	8b ec                	mov    %esp,%ebp
55137f:	85 c0                	test   %eax,%eax
551381:	74 22                	je     0x5513a5
551383:	85 d2                	test   %edx,%edx
551385:	74 1e                	je     0x5513a5
551387:	85 c9                	test   %ecx,%ecx
551389:	7c 1a                	jl     0x5513a5
55138b:	8b 82 c0 00 00 00    	mov    0xc0(%edx),%eax
551391:	3b c8                	cmp    %eax,%ecx
551393:	7d 10                	jge    0x5513a5
551395:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
551398:	8b 92 bc 00 00 00    	mov    0xbc(%edx),%edx
55139e:	8a 45 08             	mov    0x8(%ebp),%al
5513a1:	88 44 8a 10          	mov    %al,0x10(%edx,%ecx,4)
5513a5:	5d                   	pop    %ebp
5513a6:	c2 04 00             	ret    $0x4
5513a9:	90                   	nop
5513aa:	90                   	nop
5513ab:	90                   	nop
5513ac:	85 c0                	test   %eax,%eax
5513ae:	74 18                	je     0x5513c8
5513b0:	8a 88 ec 01 00 00    	mov    0x1ec(%eax),%cl
5513b6:	80 e1 fe             	and    $0xfe,%cl
5513b9:	80 e2 01             	and    $0x1,%dl
5513bc:	0a ca                	or     %dl,%cl
5513be:	33 d2                	xor    %edx,%edx
5513c0:	8a d1                	mov    %cl,%dl
5513c2:	89 90 ec 01 00 00    	mov    %edx,0x1ec(%eax)
5513c8:	c3                   	ret
5513c9:	90                   	nop
5513ca:	90                   	nop
5513cb:	90                   	nop
5513cc:	85 c0                	test   %eax,%eax
5513ce:	75 03                	jne    0x5513d3
5513d0:	33 c0                	xor    %eax,%eax
5513d2:	c3                   	ret
5513d3:	8b ca                	mov    %edx,%ecx
5513d5:	80 e1 05             	and    $0x5,%cl
5513d8:	81 e1 ff 00 00 00    	and    $0xff,%ecx
5513de:	89 88 ec 01 00 00    	mov    %ecx,0x1ec(%eax)
5513e4:	8b c1                	mov    %ecx,%eax
5513e6:	c3                   	ret
5513e7:	90                   	nop
5513e8:	55                   	push   %ebp
5513e9:	8b ec                	mov    %esp,%ebp
5513eb:	83 c4 f4             	add    $0xfffffff4,%esp
5513ee:	53                   	push   %ebx
5513ef:	56                   	push   %esi
5513f0:	57                   	push   %edi
5513f1:	8b f9                	mov    %ecx,%edi
5513f3:	89 55 fc             	mov    %edx,-0x4(%ebp)
5513f6:	8b d8                	mov    %eax,%ebx
5513f8:	8b 75 08             	mov    0x8(%ebp),%esi
5513fb:	85 f6                	test   %esi,%esi
5513fd:	75 40                	jne    0x55143f
5513ff:	8b 45 fc             	mov    -0x4(%ebp),%eax
551402:	83 f8 03             	cmp    $0x3,%eax
551405:	74 08                	je     0x55140f
551407:	8b 55 fc             	mov    -0x4(%ebp),%edx
55140a:	83 fa 02             	cmp    $0x2,%edx
55140d:	75 09                	jne    0x551418
55140f:	81 4b 2c 00 80 00 00 	orl    $0x8000,0x2c(%ebx)
551416:	eb 07                	jmp    0x55141f
551418:	81 63 2c ff 7f ff ff 	andl   $0xffff7fff,0x2c(%ebx)
55141f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
551422:	83 f9 03             	cmp    $0x3,%ecx
551425:	75 0c                	jne    0x551433
551427:	81 4b 2c 00 00 01 00 	orl    $0x10000,0x2c(%ebx)
55142e:	e9 ba 00 00 00       	jmp    0x5514ed
551433:	81 63 2c ff ff fe ff 	andl   $0xfffeffff,0x2c(%ebx)
55143a:	e9 ae 00 00 00       	jmp    0x5514ed
55143f:	85 ff                	test   %edi,%edi
551441:	0f 84 a6 00 00 00    	je     0x5514ed
551447:	8b 83 dc 01 00 00    	mov    0x1dc(%ebx),%eax
55144d:	89 45 f4             	mov    %eax,-0xc(%ebp)
551450:	8b c3                	mov    %ebx,%eax
551452:	8b 55 f4             	mov    -0xc(%ebp),%edx
551455:	03 d6                	add    %esi,%edx
551457:	8d 14 92             	lea    (%edx,%edx,4),%edx
55145a:	e8 95 06 00 00       	call   0x551af4
55145f:	89 45 f8             	mov    %eax,-0x8(%ebp)
551462:	8b 83 e0 01 00 00    	mov    0x1e0(%ebx),%eax
551468:	85 c0                	test   %eax,%eax
55146a:	74 29                	je     0x551495
55146c:	8b 55 f4             	mov    -0xc(%ebp),%edx
55146f:	8d 14 92             	lea    (%edx,%edx,4),%edx
551472:	52                   	push   %edx
551473:	50                   	push   %eax
551474:	8b 4d f8             	mov    -0x8(%ebp),%ecx
551477:	51                   	push   %ecx
551478:	e8 63 4f fd ff       	call   0x5263e0
55147d:	83 c4 0c             	add    $0xc,%esp
551480:	8b 93 e0 01 00 00    	mov    0x1e0(%ebx),%edx
551486:	8b c3                	mov    %ebx,%eax
551488:	e8 db 06 00 00       	call   0x551b68
55148d:	33 c9                	xor    %ecx,%ecx
55148f:	89 8b e0 01 00 00    	mov    %ecx,0x1e0(%ebx)
551495:	8d 04 b6             	lea    (%esi,%esi,4),%eax
551498:	50                   	push   %eax
551499:	57                   	push   %edi
55149a:	8b 55 f4             	mov    -0xc(%ebp),%edx
55149d:	8d 14 92             	lea    (%edx,%edx,4),%edx
5514a0:	8b 4d f8             	mov    -0x8(%ebp),%ecx
5514a3:	03 d1                	add    %ecx,%edx
5514a5:	52                   	push   %edx
5514a6:	e8 35 4f fd ff       	call   0x5263e0
5514ab:	83 c4 0c             	add    $0xc,%esp
5514ae:	8b 45 f4             	mov    -0xc(%ebp),%eax
5514b1:	8d 04 80             	lea    (%eax,%eax,4),%eax
5514b4:	8b 55 f8             	mov    -0x8(%ebp),%edx
5514b7:	03 c2                	add    %edx,%eax
5514b9:	83 c0 04             	add    $0x4,%eax
5514bc:	33 d2                	xor    %edx,%edx
5514be:	3b f2                	cmp    %edx,%esi
5514c0:	7e 0d                	jle    0x5514cf
5514c2:	8a 4d fc             	mov    -0x4(%ebp),%cl
5514c5:	42                   	inc    %edx
5514c6:	88 08                	mov    %cl,(%eax)
5514c8:	83 c0 05             	add    $0x5,%eax
5514cb:	3b f2                	cmp    %edx,%esi
5514cd:	7f f3                	jg     0x5514c2
5514cf:	8b 45 f4             	mov    -0xc(%ebp),%eax
5514d2:	03 f0                	add    %eax,%esi
5514d4:	89 b3 dc 01 00 00    	mov    %esi,0x1dc(%ebx)
5514da:	8b 45 f8             	mov    -0x8(%ebp),%eax
5514dd:	89 83 e0 01 00 00    	mov    %eax,0x1e0(%ebx)
5514e3:	81 8b d0 01 00 00 00 	orl    $0x400,0x1d0(%ebx)
5514ea:	04 00 00
5514ed:	5f                   	pop    %edi
5514ee:	5e                   	pop    %esi
5514ef:	5b                   	pop    %ebx
5514f0:	8b e5                	mov    %ebp,%esp
5514f2:	5d                   	pop    %ebp
5514f3:	c2 04 00             	ret    $0x4
5514f6:	90                   	nop
5514f7:	90                   	nop
5514f8:	89 88 d8 01 00 00    	mov    %ecx,0x1d8(%eax)
5514fe:	89 90 d4 01 00 00    	mov    %edx,0x1d4(%eax)
551504:	c3                   	ret
551505:	90                   	nop
551506:	90                   	nop
551507:	90                   	nop
551508:	53                   	push   %ebx
551509:	56                   	push   %esi
55150a:	8b f1                	mov    %ecx,%esi
55150c:	8b da                	mov    %edx,%ebx
55150e:	85 c0                	test   %eax,%eax
551510:	74 31                	je     0x551543
551512:	85 db                	test   %ebx,%ebx
551514:	74 2d                	je     0x551543
551516:	8b 93 f8 00 00 00    	mov    0xf8(%ebx),%edx
55151c:	85 d2                	test   %edx,%edx
55151e:	74 12                	je     0x551532
551520:	3b f2                	cmp    %edx,%esi
551522:	74 0e                	je     0x551532
551524:	6a 00                	push   $0x0
551526:	b9 40 00 00 00       	mov    $0x40,%ecx
55152b:	8b d3                	mov    %ebx,%edx
55152d:	e8 ee 58 00 00       	call   0x556e20
551532:	89 b3 f8 00 00 00    	mov    %esi,0xf8(%ebx)
551538:	85 f6                	test   %esi,%esi
55153a:	74 07                	je     0x551543
55153c:	81 4b 08 00 80 00 00 	orl    $0x8000,0x8(%ebx)
551543:	5e                   	pop    %esi
551544:	5b                   	pop    %ebx
551545:	c3                   	ret
551546:	90                   	nop
551547:	90                   	nop
551548:	53                   	push   %ebx
551549:	8b d8                	mov    %eax,%ebx
55154b:	56                   	push   %esi
55154c:	57                   	push   %edi
55154d:	8b 43 6c             	mov    0x6c(%ebx),%eax
551550:	8b f2                	mov    %edx,%esi
551552:	85 c0                	test   %eax,%eax
551554:	74 09                	je     0x55155f
551556:	8b d0                	mov    %eax,%edx
551558:	8b c3                	mov    %ebx,%eax
55155a:	e8 09 06 00 00       	call   0x551b68
55155f:	89 73 70             	mov    %esi,0x70(%ebx)
551562:	8b d6                	mov    %esi,%edx
551564:	8b c3                	mov    %ebx,%eax
551566:	e8 89 05 00 00       	call   0x551af4
55156b:	8b f8                	mov    %eax,%edi
55156d:	89 7b 6c             	mov    %edi,0x6c(%ebx)
551570:	89 7b 40             	mov    %edi,0x40(%ebx)
551573:	8b 43 70             	mov    0x70(%ebx),%eax
551576:	89 43 44             	mov    %eax,0x44(%ebx)
551579:	5f                   	pop    %edi
55157a:	5e                   	pop    %esi
55157b:	5b                   	pop    %ebx
55157c:	c3                   	ret
55157d:	90                   	nop
55157e:	90                   	nop
55157f:	90                   	nop
551580:	85 c0                	test   %eax,%eax
551582:	74 09                	je     0x55158d
551584:	85 d2                	test   %edx,%edx
551586:	74 05                	je     0x55158d
551588:	f7 d1                	not    %ecx
55158a:	21 4a 08             	and    %ecx,0x8(%edx)
55158d:	c3                   	ret
55158e:	90                   	nop
55158f:	90                   	nop
551590:	53                   	push   %ebx
551591:	56                   	push   %esi
551592:	33 db                	xor    %ebx,%ebx
551594:	8b b0 fc 01 00 00    	mov    0x1fc(%eax),%esi
55159a:	f7 c6 01 00 00 00    	test   $0x1,%esi
5515a0:	8b cb                	mov    %ebx,%ecx
5515a2:	74 08                	je     0x5515ac
5515a4:	f7 c6 02 00 00 00    	test   $0x2,%esi
5515aa:	75 0e                	jne    0x5515ba
5515ac:	8b f3                	mov    %ebx,%esi
5515ae:	f7 d6                	not    %esi
5515b0:	23 ce                	and    %esi,%ecx
5515b2:	f7 d3                	not    %ebx
5515b4:	21 b0 fc 01 00 00    	and    %esi,0x1fc(%eax)
5515ba:	8b d9                	mov    %ecx,%ebx
5515bc:	f7 d3                	not    %ebx
5515be:	21 98 fc 01 00 00    	and    %ebx,0x1fc(%eax)
5515c4:	23 d1                	and    %ecx,%edx
5515c6:	09 90 fc 01 00 00    	or     %edx,0x1fc(%eax)
5515cc:	5e                   	pop    %esi
5515cd:	5b                   	pop    %ebx
5515ce:	c3                   	ret
5515cf:	90                   	nop
5515d0:	88 90 f5 01 00 00    	mov    %dl,0x1f5(%eax)
5515d6:	89 88 f8 01 00 00    	mov    %ecx,0x1f8(%eax)
5515dc:	c3                   	ret
5515dd:	8d 40 00             	lea    0x0(%eax),%eax