564180:	81 4b 04 80 08 00 00 	orl    $0x880,0x4(%ebx)
564187:	eb 14                	jmp    0x56419d
564189:	8b 4d a8             	mov    -0x58(%ebp),%ecx
56418c:	83 09 40             	orl    $0x40,(%ecx)
56418f:	83 0a 10             	orl    $0x10,(%edx)
564192:	83 4b fc 20          	orl    $0x20,-0x4(%ebx)
564196:	81 4b 04 80 00 00 00 	orl    $0x80,0x4(%ebx)
56419d:	81 0b 00 10 00 00    	orl    $0x1000,(%ebx)
5641a3:	85 c0                	test   %eax,%eax
5641a5:	74 07                	je     0x5641ae
5641a7:	8b 45 e0             	mov    -0x20(%ebp),%eax
5641aa:	f7 d8                	neg    %eax
5641ac:	eb 03                	jmp    0x5641b1
5641ae:	8b 45 e0             	mov    -0x20(%ebp),%eax
5641b1:	8b 55 c4             	mov    -0x3c(%ebp),%edx
5641b4:	89 02                	mov    %eax,(%edx)
5641b6:	81 0b 00 40 00 00    	orl    $0x4000,(%ebx)
5641bc:	ff 4d ec             	decl   -0x14(%ebp)
5641bf:	8b 4d ec             	mov    -0x14(%ebp),%ecx
5641c2:	85 c9                	test   %ecx,%ecx
5641c4:	0f 8e 62 01 00 00    	jle    0x56432c
5641ca:	8b c7                	mov    %edi,%eax
5641cc:	8b 55 c0             	mov    -0x40(%ebp),%edx
5641cf:	c1 e0 02             	shl    $0x2,%eax
5641d2:	c1 e2 02             	shl    $0x2,%edx
5641d5:	03 d8                	add    %eax,%ebx
5641d7:	01 55 c4             	add    %edx,-0x3c(%ebp)
5641da:	8b 03                	mov    (%ebx),%eax
5641dc:	a8 ff                	test   $0xff,%al
5641de:	0f 84 48 01 00 00    	je     0x56432c
5641e4:	f6 c4 50             	test   $0x50,%ah
5641e7:	0f 85 3f 01 00 00    	jne    0x56432c
5641ed:	f6 46 10 01          	testb  $0x1,0x10(%esi)
5641f1:	75 17                	jne    0x56420a
5641f3:	68 4c 02 00 00       	push   $0x24c
5641f8:	68 18 f4 69 00       	push   $0x69f418
5641fd:	68 f3 f3 69 00       	push   $0x69f3f3
564202:	e8 39 69 ff ff       	call   0x55ab40
564207:	83 c4 0c             	add    $0xc,%esp
56420a:	ff 4e 08             	decl   0x8(%esi)
56420d:	78 0e                	js     0x56421d
56420f:	8b 4e 08             	mov    0x8(%esi),%ecx
564212:	0f b7 46 04          	movzwl 0x4(%esi),%eax
564216:	d3 f8                	sar    %cl,%eax
564218:	83 e0 01             	and    $0x1,%eax
56421b:	eb 07                	jmp    0x564224
56421d:	8b c6                	mov    %esi,%eax
56421f:	e8 58 ca 00 00       	call   0x570c7c
564224:	85 c0                	test   %eax,%eax
564226:	7d 08                	jge    0x564230
564228:	83 c8 ff             	or     $0xffffffff,%eax
56422b:	e9 35 01 00 00       	jmp    0x564365
564230:	85 c0                	test   %eax,%eax
564232:	0f 84 ee 00 00 00    	je     0x564326
564238:	f6 46 10 01          	testb  $0x1,0x10(%esi)
56423c:	75 17                	jne    0x564255
56423e:	68 4c 02 00 00       	push   $0x24c
564243:	68 49 f4 69 00       	push   $0x69f449
564248:	68 24 f4 69 00       	push   $0x69f424
56424d:	e8 ee 68 ff ff       	call   0x55ab40
564252:	83 c4 0c             	add    $0xc,%esp
564255:	ff 4e 08             	decl   0x8(%esi)
564258:	78 0e                	js     0x564268
56425a:	8b 4e 08             	mov    0x8(%esi),%ecx
56425d:	0f b7 46 04          	movzwl 0x4(%esi),%eax
564261:	d3 f8                	sar    %cl,%eax
564263:	83 e0 01             	and    $0x1,%eax
564266:	eb 07                	jmp    0x56426f
564268:	8b c6                	mov    %esi,%eax
56426a:	e8 0d ca 00 00       	call   0x570c7c
56426f:	85 c0                	test   %eax,%eax
564271:	7d 08                	jge    0x56427b
564273:	83 c8 ff             	or     $0xffffffff,%eax
564276:	e9 ea 00 00 00       	jmp    0x564365
56427b:	8b d7                	mov    %edi,%edx
56427d:	8b cb                	mov    %ebx,%ecx
56427f:	c1 e2 02             	shl    $0x2,%edx
564282:	2b ca                	sub    %edx,%ecx
564284:	8b d7                	mov    %edi,%edx
564286:	c1 e2 02             	shl    $0x2,%edx
564289:	89 4d a4             	mov    %ecx,-0x5c(%ebp)
56428c:	03 d3                	add    %ebx,%edx
56428e:	eb 30                	jmp    0x5642c0
564290:	83 4a fc 01          	orl    $0x1,-0x4(%edx)
564294:	83 4a 04 08          	orl    $0x8,0x4(%edx)
564298:	85 c0                	test   %eax,%eax
56429a:	74 14                	je     0x5642b0
56429c:	81 0a 10 01 00 00    	orl    $0x110,(%edx)
5642a2:	81 4b fc 20 02 00 00 	orl    $0x220,-0x4(%ebx)
5642a9:	81 4b 04 80 08 00 00 	orl    $0x880,0x4(%ebx)
5642b0:	83 0a 10             	orl    $0x10,(%edx)
5642b3:	83 4b fc 20          	orl    $0x20,-0x4(%ebx)
5642b7:	81 4b 04 80 00 00 00 	orl    $0x80,0x4(%ebx)
5642be:	eb 4d                	jmp    0x56430d
5642c0:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
5642c3:	83 49 fc 02          	orl    $0x2,-0x4(%ecx)
5642c7:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
5642ca:	83 49 04 04          	orl    $0x4,0x4(%ecx)
5642ce:	83 4a fc 01          	orl    $0x1,-0x4(%edx)
5642d2:	83 4a 04 08          	orl    $0x8,0x4(%edx)
5642d6:	85 c0                	test   %eax,%eax
5642d8:	74 1f                	je     0x5642f9
5642da:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
5642dd:	81 09 40 04 00 00    	orl    $0x440,(%ecx)
5642e3:	81 0a 10 01 00 00    	orl    $0x110,(%edx)
5642e9:	81 4b fc 20 02 00 00 	orl    $0x220,-0x4(%ebx)
5642f0:	81 4b 04 80 08 00 00 	orl    $0x880,0x4(%ebx)
5642f7:	eb 14                	jmp    0x56430d
5642f9:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
5642fc:	83 09 40             	orl    $0x40,(%ecx)
5642ff:	83 0a 10             	orl    $0x10,(%edx)
564302:	83 4b fc 20          	orl    $0x20,-0x4(%ebx)
564306:	81 4b 04 80 00 00 00 	orl    $0x80,0x4(%ebx)
56430d:	81 0b 00 10 00 00    	orl    $0x1000,(%ebx)
564313:	85 c0                	test   %eax,%eax
564315:	74 07                	je     0x56431e
564317:	8b 45 e0             	mov    -0x20(%ebp),%eax
56431a:	f7 d8                	neg    %eax
56431c:	eb 03                	jmp    0x564321
56431e:	8b 45 e0             	mov    -0x20(%ebp),%eax
564321:	8b 55 c4             	mov    -0x3c(%ebp),%edx
564324:	89 02                	mov    %eax,(%edx)
564326:	81 0b 00 40 00 00    	orl    $0x4000,(%ebx)
56432c:	ff 4d f0             	decl   -0x10(%ebp)
56432f:	83 45 c8 04          	addl   $0x4,-0x38(%ebp)
564333:	83 45 b4 04          	addl   $0x4,-0x4c(%ebp)
564337:	8b 4d f0             	mov    -0x10(%ebp),%ecx
56433a:	85 c9                	test   %ecx,%ecx
56433c:	0f 8f 32 fa ff ff    	jg     0x563d74
564342:	83 6d f4 04          	subl   $0x4,-0xc(%ebp)
564346:	8b 45 d0             	mov    -0x30(%ebp),%eax
564349:	c1 e0 02             	shl    $0x2,%eax
56434c:	01 45 cc             	add    %eax,-0x34(%ebp)
56434f:	8b 55 bc             	mov    -0x44(%ebp),%edx
564352:	c1 e2 02             	shl    $0x2,%edx
564355:	01 55 b8             	add    %edx,-0x48(%ebp)
564358:	8b 4d f4             	mov    -0xc(%ebp),%ecx
56435b:	85 c9                	test   %ecx,%ecx
56435d:	0f 8f df f9 ff ff    	jg     0x563d42
564363:	33 c0                	xor    %eax,%eax
564365:	5f                   	pop    %edi
564366:	5e                   	pop    %esi
564367:	5b                   	pop    %ebx
564368:	8b e5                	mov    %ebp,%esp
56436a:	5d                   	pop    %ebp
56436b:	c2 0c 00             	ret    $0xc
56436e:	90                   	nop
56436f:	90                   	nop
564370:	55                   	push   %ebp
564371:	8b ec                	mov    %esp,%ebp
564373:	83 c4 b4             	add    $0xffffffb4,%esp
564376:	53                   	push   %ebx
564377:	56                   	push   %esi
564378:	57                   	push   %edi
564379:	89 4d f8             	mov    %ecx,-0x8(%ebp)
56437c:	8b da                	mov    %edx,%ebx
56437e:	89 45 fc             	mov    %eax,-0x4(%ebp)
564381:	8b 45 08             	mov    0x8(%ebp),%eax
564384:	8b 50 18             	mov    0x18(%eax),%edx
564387:	89 55 e8             	mov    %edx,-0x18(%ebp)
56438a:	8b 4d 08             	mov    0x8(%ebp),%ecx
56438d:	8b 41 14             	mov    0x14(%ecx),%eax
564390:	89 45 e4             	mov    %eax,-0x1c(%ebp)
564393:	8b 55 0c             	mov    0xc(%ebp),%edx
564396:	8b 4a 14             	mov    0x14(%edx),%ecx
564399:	49                   	dec    %ecx
56439a:	7e 1f                	jle    0x5643bb
56439c:	8b 45 0c             	mov    0xc(%ebp),%eax
56439f:	8b 50 1c             	mov    0x1c(%eax),%edx
5643a2:	8b 45 0c             	mov    0xc(%ebp),%eax
5643a5:	8b 4a 04             	mov    0x4(%edx),%ecx
5643a8:	8b 50 1c             	mov    0x1c(%eax),%edx
5643ab:	8b 02                	mov    (%edx),%eax
5643ad:	2b c8                	sub    %eax,%ecx
5643af:	85 c9                	test   %ecx,%ecx
5643b1:	79 03                	jns    0x5643b6
5643b3:	83 c1 03             	add    $0x3,%ecx
5643b6:	c1 f9 02             	sar    $0x2,%ecx
5643b9:	eb 02                	jmp    0x5643bd
5643bb:	33 c9                	xor    %ecx,%ecx
5643bd:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
5643c0:	8b 55 08             	mov    0x8(%ebp),%edx
5643c3:	8b 42 14             	mov    0x14(%edx),%eax
5643c6:	48                   	dec    %eax
5643c7:	7e 1f                	jle    0x5643e8
5643c9:	8b 55 08             	mov    0x8(%ebp),%edx
5643cc:	8b 4a 1c             	mov    0x1c(%edx),%ecx
5643cf:	8b 55 08             	mov    0x8(%ebp),%edx
5643d2:	8b 41 04             	mov    0x4(%ecx),%eax
5643d5:	8b 4a 1c             	mov    0x1c(%edx),%ecx
5643d8:	8b 11                	mov    (%ecx),%edx
5643da:	2b c2                	sub    %edx,%eax
5643dc:	85 c0                	test   %eax,%eax
5643de:	79 03                	jns    0x5643e3
5643e0:	83 c0 03             	add    $0x3,%eax
5643e3:	c1 f8 02             	sar    $0x2,%eax
5643e6:	eb 02                	jmp    0x5643ea
5643e8:	33 c0                	xor    %eax,%eax
5643ea:	89 45 c4             	mov    %eax,-0x3c(%ebp)
5643ed:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
5643f0:	c1 e1 02             	shl    $0x2,%ecx
5643f3:	89 4d d0             	mov    %ecx,-0x30(%ebp)
5643f6:	8b 45 c4             	mov    -0x3c(%ebp),%eax
5643f9:	c1 e0 02             	shl    $0x2,%eax
5643fc:	89 45 c0             	mov    %eax,-0x40(%ebp)
5643ff:	8b 4d f8             	mov    -0x8(%ebp),%ecx
564402:	ba 01 00 00 00       	mov    $0x1,%edx
564407:	d3 e2                	shl    %cl,%edx
564409:	89 55 e0             	mov    %edx,-0x20(%ebp)
56440c:	8b 45 e0             	mov    -0x20(%ebp),%eax
56440f:	d1 f8                	sar    $1,%eax
564411:	89 45 dc             	mov    %eax,-0x24(%ebp)
564414:	8b 55 f8             	mov    -0x8(%ebp),%edx
564417:	85 d2                	test   %edx,%edx
564419:	7e 07                	jle    0x564422
56441b:	8b 4d dc             	mov    -0x24(%ebp),%ecx
56441e:	f7 d9                	neg    %ecx
564420:	eb 03                	jmp    0x564425
564422:	83 c9 ff             	or     $0xffffffff,%ecx
564425:	89 4d d8             	mov    %ecx,-0x28(%ebp)
564428:	8b 45 0c             	mov    0xc(%ebp),%eax
56442b:	8b 50 1c             	mov    0x1c(%eax),%edx
56442e:	8b 42 04             	mov    0x4(%edx),%eax
564431:	83 c0 04             	add    $0x4,%eax
564434:	89 45 cc             	mov    %eax,-0x34(%ebp)
564437:	8b 55 08             	mov    0x8(%ebp),%edx
56443a:	8b 4a 1c             	mov    0x1c(%edx),%ecx
56443d:	8b 01                	mov    (%ecx),%eax
56443f:	89 45 bc             	mov    %eax,-0x44(%ebp)
564442:	8b 55 e4             	mov    -0x1c(%ebp),%edx
564445:	89 55 f4             	mov    %edx,-0xc(%ebp)
564448:	8b 4d f4             	mov    -0xc(%ebp),%ecx
56444b:	85 c9                	test   %ecx,%ecx
56444d:	0f 8e 7f 03 00 00    	jle    0x5647d2
564453:	8b 45 cc             	mov    -0x34(%ebp),%eax
564456:	89 45 c8             	mov    %eax,-0x38(%ebp)
564459:	8b 55 bc             	mov    -0x44(%ebp),%edx
56445c:	89 55 b8             	mov    %edx,-0x48(%ebp)
56445f:	8b 4d f4             	mov    -0xc(%ebp),%ecx
564462:	83 f9 04             	cmp    $0x4,%ecx
564465:	7d 05                	jge    0x56446c
564467:	8b 45 f4             	mov    -0xc(%ebp),%eax
56446a:	eb 05                	jmp    0x564471
56446c:	b8 04 00 00 00       	mov    $0x4,%eax
564471:	89 45 ec             	mov    %eax,-0x14(%ebp)
564474:	8b 55 e8             	mov    -0x18(%ebp),%edx
564477:	89 55 f0             	mov    %edx,-0x10(%ebp)
56447a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
56447d:	85 c9                	test   %ecx,%ecx
56447f:	0f 8e 2c 03 00 00    	jle    0x5647b1
564485:	8b 75 c8             	mov    -0x38(%ebp),%esi
564488:	8b 7d b8             	mov    -0x48(%ebp),%edi
56448b:	8b 45 ec             	mov    -0x14(%ebp),%eax
56448e:	89 45 b4             	mov    %eax,-0x4c(%ebp)
564491:	8b 06                	mov    (%esi),%eax
564493:	8b d0                	mov    %eax,%edx
564495:	81 e2 00 50 00 00    	and    $0x5000,%edx
56449b:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
5644a1:	0f 85 96 00 00 00    	jne    0x56453d
5644a7:	8b c8                	mov    %eax,%ecx
5644a9:	81 e1 ff 00 00 00    	and    $0xff,%ecx
5644af:	f6 c4 20             	test   $0x20,%ah
5644b2:	0f 95 c0             	setne  %al
5644b5:	83 e0 01             	and    $0x1,%eax
5644b8:	c1 e0 0b             	shl    $0xb,%eax
5644bb:	0b c8                	or     %eax,%ecx
5644bd:	8b 14 8d 1c cc 6a 00 	mov    0x6acc1c(,%ecx,4),%edx
5644c4:	8b 4b 10             	mov    0x10(%ebx),%ecx
5644c7:	c1 e2 02             	shl    $0x2,%edx
5644ca:	03 d1                	add    %ecx,%edx
5644cc:	89 53 0c             	mov    %edx,0xc(%ebx)
5644cf:	8b 43 0c             	mov    0xc(%ebx),%eax
5644d2:	8b 10                	mov    (%eax),%edx
5644d4:	0f b7 0a             	movzwl (%edx),%ecx
5644d7:	29 4b 04             	sub    %ecx,0x4(%ebx)
5644da:	8b 53 0c             	mov    0xc(%ebx),%edx
5644dd:	8b 03                	mov    (%ebx),%eax
5644df:	c1 e8 10             	shr    $0x10,%eax
5644e2:	8b 0a                	mov    (%edx),%ecx
5644e4:	0f b7 11             	movzwl (%ecx),%edx
5644e7:	3b c2                	cmp    %edx,%eax
5644e9:	72 27                	jb     0x564512
5644eb:	8b 43 0c             	mov    0xc(%ebx),%eax
5644ee:	8b 08                	mov    (%eax),%ecx
5644f0:	0f b7 01             	movzwl (%ecx),%eax
5644f3:	c1 e0 10             	shl    $0x10,%eax
5644f6:	29 03                	sub    %eax,(%ebx)
5644f8:	f6 43 05 80          	testb  $0x80,0x5(%ebx)
5644fc:	74 0b                	je     0x564509
5644fe:	8b 53 0c             	mov    0xc(%ebx),%edx
564501:	8b 0a                	mov    (%edx),%ecx
564503:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
564507:	eb 10                	jmp    0x564519
564509:	8b c3                	mov    %ebx,%eax
56450b:	e8 a0 d7 00 00       	call   0x571cb0
564510:	eb 07                	jmp    0x564519
564512:	8b c3                	mov    %ebx,%eax
564514:	e8 b7 d8 00 00       	call   0x571dd0
564519:	85 c0                	test   %eax,%eax
56451b:	74 05                	je     0x564522
56451d:	8b 55 dc             	mov    -0x24(%ebp),%edx
564520:	eb 03                	jmp    0x564525
564522:	8b 55 d8             	mov    -0x28(%ebp),%edx
564525:	8b c2                	mov    %edx,%eax
564527:	8b 0f                	mov    (%edi),%ecx
564529:	85 c9                	test   %ecx,%ecx
56452b:	7d 06                	jge    0x564533
56452d:	8b d0                	mov    %eax,%edx
56452f:	f7 da                	neg    %edx
564531:	eb 02                	jmp    0x564535
564533:	8b d0                	mov    %eax,%edx
564535:	01 17                	add    %edx,(%edi)
564537:	81 0e 00 20 00 00    	orl    $0x2000,(%esi)
56453d:	ff 4d b4             	decl   -0x4c(%ebp)
564540:	8b 45 b4             	mov    -0x4c(%ebp),%eax
564543:	85 c0                	test   %eax,%eax
564545:	0f 8e 50 02 00 00    	jle    0x56479b
56454b:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
56454e:	8b 45 c4             	mov    -0x3c(%ebp),%eax
564551:	c1 e1 02             	shl    $0x2,%ecx
564554:	c1 e0 02             	shl    $0x2,%eax
564557:	03 f1                	add    %ecx,%esi
564559:	03 f8                	add    %eax,%edi
56455b:	8b 06                	mov    (%esi),%eax
56455d:	8b d0                	mov    %eax,%edx
56455f:	81 e2 00 50 00 00    	and    $0x5000,%edx
564565:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
56456b:	0f 85 96 00 00 00    	jne    0x564607
564571:	8b c8                	mov    %eax,%ecx
564573:	81 e1 ff 00 00 00    	and    $0xff,%ecx
564579:	f6 c4 20             	test   $0x20,%ah
56457c:	0f 95 c0             	setne  %al
56457f:	83 e0 01             	and    $0x1,%eax
564582:	c1 e0 0b             	shl    $0xb,%eax
564585:	0b c8                	or     %eax,%ecx
564587:	8b 14 8d 1c cc 6a 00 	mov    0x6acc1c(,%ecx,4),%edx
56458e:	8b 4b 10             	mov    0x10(%ebx),%ecx
564591:	c1 e2 02             	shl    $0x2,%edx
564594:	03 d1                	add    %ecx,%edx
564596:	89 53 0c             	mov    %edx,0xc(%ebx)
564599:	8b 43 0c             	mov    0xc(%ebx),%eax
56459c:	8b 10                	mov    (%eax),%edx
56459e:	0f b7 0a             	movzwl (%edx),%ecx
5645a1:	29 4b 04             	sub    %ecx,0x4(%ebx)
5645a4:	8b 53 0c             	mov    0xc(%ebx),%edx
5645a7:	8b 03                	mov    (%ebx),%eax
5645a9:	c1 e8 10             	shr    $0x10,%eax
5645ac:	8b 0a                	mov    (%edx),%ecx
5645ae:	0f b7 11             	movzwl (%ecx),%edx
5645b1:	3b c2                	cmp    %edx,%eax