56312c:	8b 5d f4             	mov    -0xc(%ebp),%ebx
56312f:	0f bf c3             	movswl %bx,%eax
563132:	89 4d f8             	mov    %ecx,-0x8(%ebp)
563135:	3b c1                	cmp    %ecx,%eax
563137:	0f 8d 79 ff ff ff    	jge    0x5630b6
56313d:	0f b7 d9             	movzwl %cx,%ebx
563140:	89 5d f4             	mov    %ebx,-0xc(%ebp)
563143:	e9 6e ff ff ff       	jmp    0x5630b6
563148:	cc                   	int3
563149:	cc                   	int3
56314a:	cc                   	int3
56314b:	cc                   	int3
56314c:	cc                   	int3
56314d:	cc                   	int3
56314e:	cc                   	int3
56314f:	cc                   	int3
563150:	55                   	push   %ebp
563151:	8b ec                	mov    %esp,%ebp
563153:	56                   	push   %esi
563154:	8b 75 0c             	mov    0xc(%ebp),%esi
563157:	57                   	push   %edi
563158:	8b 7d 10             	mov    0x10(%ebp),%edi
56315b:	0f b7 46 2c          	movzwl 0x2c(%esi),%eax
56315f:	3b c7                	cmp    %edi,%eax
563161:	7c 06                	jl     0x563169
563163:	5f                   	pop    %edi
563164:	33 c0                	xor    %eax,%eax
563166:	5e                   	pop    %esi
563167:	5d                   	pop    %ebp
563168:	c3                   	ret
563169:	83 c7 07             	add    $0x7,%edi
56316c:	83 e7 f8             	and    $0xfffffff8,%edi
56316f:	53                   	push   %ebx
563170:	6a 00                	push   $0x0
563172:	8d 04 bd 00 00 00 00 	lea    0x0(,%edi,4),%eax
563179:	50                   	push   %eax
56317a:	ff 75 08             	push   0x8(%ebp)
56317d:	e8 5e e2 fb ff       	call   0x5213e0
563182:	8b d8                	mov    %eax,%ebx
563184:	83 c4 0c             	add    $0xc,%esp
563187:	85 db                	test   %ebx,%ebx
563189:	75 08                	jne    0x563193
56318b:	8d 43 07             	lea    0x7(%ebx),%eax
56318e:	5b                   	pop    %ebx
56318f:	5f                   	pop    %edi
563190:	5e                   	pop    %esi
563191:	5d                   	pop    %ebp
563192:	c3                   	ret
563193:	0f b7 46 2c          	movzwl 0x2c(%esi),%eax
563197:	c1 e0 02             	shl    $0x2,%eax
56319a:	50                   	push   %eax
56319b:	ff 76 30             	push   0x30(%esi)
56319e:	53                   	push   %ebx
56319f:	e8 5c fd 07 00       	call   0x5e2f00
5631a4:	8b 4e 30             	mov    0x30(%esi),%ecx
5631a7:	8d 46 38             	lea    0x38(%esi),%eax
5631aa:	83 c4 0c             	add    $0xc,%esp
5631ad:	3b c8                	cmp    %eax,%ecx
5631af:	74 0c                	je     0x5631bd
5631b1:	51                   	push   %ecx
5631b2:	ff 75 08             	push   0x8(%ebp)
5631b5:	e8 b6 e1 fb ff       	call   0x521370
5631ba:	83 c4 08             	add    $0x8,%esp
5631bd:	89 5e 30             	mov    %ebx,0x30(%esi)
5631c0:	33 c0                	xor    %eax,%eax
5631c2:	5b                   	pop    %ebx
5631c3:	66 89 7e 2c          	mov    %di,0x2c(%esi)
5631c7:	5f                   	pop    %edi
5631c8:	5e                   	pop    %esi
5631c9:	5d                   	pop    %ebp
5631ca:	c3                   	ret
5631cb:	cc                   	int3
5631cc:	cc                   	int3
5631cd:	cc                   	int3
5631ce:	cc                   	int3
5631cf:	cc                   	int3
5631d0:	55                   	push   %ebp
5631d1:	8b ec                	mov    %esp,%ebp
5631d3:	53                   	push   %ebx
5631d4:	8b 5d 0c             	mov    0xc(%ebp),%ebx
5631d7:	57                   	push   %edi
5631d8:	53                   	push   %ebx
5631d9:	ff 75 08             	push   0x8(%ebp)
5631dc:	e8 ff fa ff ff       	call   0x562ce0
5631e1:	8b 7d 10             	mov    0x10(%ebp),%edi
5631e4:	0f b7 47 28          	movzwl 0x28(%edi),%eax
5631e8:	50                   	push   %eax
5631e9:	53                   	push   %ebx
5631ea:	ff 75 08             	push   0x8(%ebp)
5631ed:	e8 5e ff ff ff       	call   0x563150
5631f2:	83 c4 14             	add    $0x14,%esp
5631f5:	85 c0                	test   %eax,%eax
5631f7:	74 18                	je     0x563211
5631f9:	0f 57 c0             	xorps  %xmm0,%xmm0
5631fc:	b8 07 00 00 00       	mov    $0x7,%eax
563201:	66 0f d6 43 18       	movq   %xmm0,0x18(%ebx)
563206:	5f                   	pop    %edi
563207:	c7 43 20 00 00 00 00 	movl   $0x0,0x20(%ebx)
56320e:	5b                   	pop    %ebx
56320f:	5d                   	pop    %ebp
563210:	c3                   	ret
563211:	0f 10 07             	movups (%edi),%xmm0
563214:	0f 11 03             	movups %xmm0,(%ebx)
563217:	0f 10 47 10          	movups 0x10(%edi),%xmm0
56321b:	0f 11 43 10          	movups %xmm0,0x10(%ebx)
56321f:	f3 0f 7e 47 20       	movq   0x20(%edi),%xmm0
563224:	66 0f d6 43 20       	movq   %xmm0,0x20(%ebx)
563229:	8b 47 28             	mov    0x28(%edi),%eax
56322c:	89 43 28             	mov    %eax,0x28(%ebx)
56322f:	0f b7 c0             	movzwl %ax,%eax
563232:	c1 e0 02             	shl    $0x2,%eax
563235:	50                   	push   %eax
563236:	ff 77 30             	push   0x30(%edi)
563239:	ff 73 30             	push   0x30(%ebx)
56323c:	e8 bf fc 07 00       	call   0x5e2f00
563241:	8b 47 24             	mov    0x24(%edi),%eax
563244:	83 c4 0c             	add    $0xc,%esp
563247:	a9 00 04 00 00       	test   $0x400,%eax
56324c:	74 0a                	je     0x563258
56324e:	c6 47 1c 00          	movb   $0x0,0x1c(%edi)
563252:	33 c0                	xor    %eax,%eax
563254:	5f                   	pop    %edi
563255:	5b                   	pop    %ebx
563256:	5d                   	pop    %ebp
563257:	c3                   	ret
563258:	a9 00 40 00 00       	test   $0x4000,%eax
56325d:	74 07                	je     0x563266
56325f:	c7 47 20 00 00 00 00 	movl   $0x0,0x20(%edi)
563266:	5f                   	pop    %edi
563267:	33 c0                	xor    %eax,%eax
563269:	5b                   	pop    %ebx
56326a:	5d                   	pop    %ebp
56326b:	c3                   	ret
56326c:	cc                   	int3
56326d:	cc                   	int3
56326e:	cc                   	int3
56326f:	cc                   	int3
563270:	55                   	push   %ebp
563271:	8b ec                	mov    %esp,%ebp
563273:	83 ec 08             	sub    $0x8,%esp
563276:	8b 55 08             	mov    0x8(%ebp),%edx
563279:	53                   	push   %ebx
56327a:	66 8b 5d 14          	mov    0x14(%ebp),%bx
56327e:	56                   	push   %esi
56327f:	0f b7 0a             	movzwl (%edx),%ecx
563282:	57                   	push   %edi
563283:	0f b7 f1             	movzwl %cx,%esi
563286:	8d 7a 08             	lea    0x8(%edx),%edi
563289:	89 4d fc             	mov    %ecx,-0x4(%ebp)
56328c:	8b c7                	mov    %edi,%eax
56328e:	89 7d f8             	mov    %edi,-0x8(%ebp)
563291:	66 85 f6             	test   %si,%si
563294:	74 52                	je     0x5632e8
563296:	0f b7 50 08          	movzwl 0x8(%eax),%edx
56329a:	66 3b d3             	cmp    %bx,%dx
56329d:	7c 1a                	jl     0x5632b9
56329f:	8b 08                	mov    (%eax),%ecx
5632a1:	8b 78 04             	mov    0x4(%eax),%edi
5632a4:	23 4d 0c             	and    0xc(%ebp),%ecx
5632a7:	23 7d 10             	and    0x10(%ebp),%edi
5632aa:	3b 4d 0c             	cmp    0xc(%ebp),%ecx
5632ad:	75 05                	jne    0x5632b4
5632af:	3b 7d 10             	cmp    0x10(%ebp),%edi
5632b2:	74 51                	je     0x563305
5632b4:	66 3b d3             	cmp    %bx,%dx
5632b7:	7f 18                	jg     0x5632d1
5632b9:	8b 08                	mov    (%eax),%ecx
5632bb:	8b 78 04             	mov    0x4(%eax),%edi
5632be:	23 4d 0c             	and    0xc(%ebp),%ecx
5632c1:	23 7d 10             	and    0x10(%ebp),%edi
5632c4:	3b 08                	cmp    (%eax),%ecx
5632c6:	75 09                	jne    0x5632d1
5632c8:	3b 78 04             	cmp    0x4(%eax),%edi
5632cb:	0f 84 8a 00 00 00    	je     0x56335b
5632d1:	81 c6 ff ff 00 00    	add    $0xffff,%esi
5632d7:	83 c0 10             	add    $0x10,%eax
5632da:	66 85 f6             	test   %si,%si
5632dd:	75 b7                	jne    0x563296
5632df:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5632e2:	8b 55 08             	mov    0x8(%ebp),%edx
5632e5:	8b 7d f8             	mov    -0x8(%ebp),%edi
5632e8:	66 83 f9 03          	cmp    $0x3,%cx
5632ec:	73 42                	jae    0x563330
5632ee:	0f b7 c1             	movzwl %cx,%eax
5632f1:	c1 e0 04             	shl    $0x4,%eax
5632f4:	83 c0 08             	add    $0x8,%eax
5632f7:	03 c2                	add    %edx,%eax
5632f9:	41                   	inc    %ecx
5632fa:	66 89 0a             	mov    %cx,(%edx)
5632fd:	66 8b 4d 18          	mov    0x18(%ebp),%cx
563301:	66 89 48 0a          	mov    %cx,0xa(%eax)
563305:	bf 01 00 00 00       	mov    $0x1,%edi
56330a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
56330d:	8b 55 10             	mov    0x10(%ebp),%edx
563310:	89 08                	mov    %ecx,(%eax)
563312:	66 8b 4d 18          	mov    0x18(%ebp),%cx
563316:	89 50 04             	mov    %edx,0x4(%eax)
563319:	66 89 58 08          	mov    %bx,0x8(%eax)
56331d:	66 39 48 0a          	cmp    %cx,0xa(%eax)
563321:	7e 04                	jle    0x563327
563323:	66 89 48 0a          	mov    %cx,0xa(%eax)
563327:	8b c7                	mov    %edi,%eax
563329:	5f                   	pop    %edi
56332a:	5e                   	pop    %esi
56332b:	5b                   	pop    %ebx
56332c:	8b e5                	mov    %ebp,%esp
56332e:	5d                   	pop    %ebp
56332f:	c3                   	ret
563330:	8b c7                	mov    %edi,%eax
563332:	bf 01 00 00 00       	mov    $0x1,%edi
563337:	66 3b f9             	cmp    %cx,%di
56333a:	73 19                	jae    0x563355
56333c:	83 c2 18             	add    $0x18,%edx
56333f:	49                   	dec    %ecx
563340:	0f b7 f1             	movzwl %cx,%esi
563343:	66 8b 48 08          	mov    0x8(%eax),%cx
563347:	66 3b 4a 08          	cmp    0x8(%edx),%cx
56334b:	0f 4f c2             	cmovg  %edx,%eax
56334e:	83 c2 10             	add    $0x10,%edx
563351:	2b f7                	sub    %edi,%esi
563353:	75 ee                	jne    0x563343
563355:	66 39 58 08          	cmp    %bx,0x8(%eax)
563359:	7f af                	jg     0x56330a
56335b:	5f                   	pop    %edi
56335c:	5e                   	pop    %esi
56335d:	33 c0                	xor    %eax,%eax
56335f:	5b                   	pop    %ebx
563360:	8b e5                	mov    %ebp,%esp
563362:	5d                   	pop    %ebp
563363:	c3                   	ret
563364:	cc                   	int3
563365:	cc                   	int3
563366:	cc                   	int3
563367:	cc                   	int3
563368:	cc                   	int3
563369:	cc                   	int3
56336a:	cc                   	int3
56336b:	cc                   	int3
56336c:	cc                   	int3
56336d:	cc                   	int3
56336e:	cc                   	int3
56336f:	cc                   	int3
563370:	55                   	push   %ebp
563371:	8b ec                	mov    %esp,%ebp
563373:	81 ec ac 00 00 00    	sub    $0xac,%esp
563379:	a1 d4 89 72 00       	mov    0x7289d4,%eax
56337e:	33 c5                	xor    %ebp,%eax
563380:	89 45 fc             	mov    %eax,-0x4(%ebp)
563383:	8b 45 10             	mov    0x10(%ebp),%eax
563386:	33 d2                	xor    %edx,%edx
563388:	0f 57 c0             	xorps  %xmm0,%xmm0
56338b:	8b 4d 0c             	mov    0xc(%ebp),%ecx
56338e:	89 85 64 ff ff ff    	mov    %eax,-0x9c(%ebp)
563394:	8b 45 1c             	mov    0x1c(%ebp),%eax
563397:	57                   	push   %edi
563398:	8b 7d 08             	mov    0x8(%ebp),%edi
56339b:	89 85 5c ff ff ff    	mov    %eax,-0xa4(%ebp)
5633a1:	8b 45 20             	mov    0x20(%ebp),%eax
5633a4:	89 7d b4             	mov    %edi,-0x4c(%ebp)
5633a7:	89 4d b0             	mov    %ecx,-0x50(%ebp)
5633aa:	89 85 58 ff ff ff    	mov    %eax,-0xa8(%ebp)
5633b0:	66 0f 13 85 7c ff ff 	movlpd %xmm0,-0x84(%ebp)
5633b7:	ff
5633b8:	66 39 55 18          	cmp    %dx,0x18(%ebp)
5633bc:	74 1b                	je     0x5633d9
5633be:	8b 07                	mov    (%edi),%eax
5633c0:	8b 00                	mov    (%eax),%eax
5633c2:	f6 40 4c 40          	testb  $0x40,0x4c(%eax)
5633c6:	74 11                	je     0x5633d9
5633c8:	32 c0                	xor    %al,%al
5633ca:	5f                   	pop    %edi
5633cb:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5633ce:	33 cd                	xor    %ebp,%ecx
5633d0:	e8 05 e1 07 00       	call   0x5e14da
5633d5:	8b e5                	mov    %ebp,%esp
5633d7:	5d                   	pop    %ebp
5633d8:	c3                   	ret
5633d9:	0f b7 01             	movzwl (%ecx),%eax
5633dc:	89 85 54 ff ff ff    	mov    %eax,-0xac(%ebp)
5633e2:	83 f8 3f             	cmp    $0x3f,%eax
5633e5:	77 e1                	ja     0x5633c8
5633e7:	33 c9                	xor    %ecx,%ecx
5633e9:	66 0f 13 85 68 ff ff 	movlpd %xmm0,-0x98(%ebp)
5633f0:	ff
5633f1:	53                   	push   %ebx
5633f2:	0f b7 d8             	movzwl %ax,%ebx
5633f5:	56                   	push   %esi
5633f6:	33 f6                	xor    %esi,%esi
5633f8:	66 0f 13 45 98       	movlpd %xmm0,-0x68(%ebp)
5633fd:	8b c3                	mov    %ebx,%eax
5633ff:	c6 45 cc 01          	movb   $0x1,-0x34(%ebp)
563403:	0f ab c1             	bts    %eax,%ecx
563406:	89 5d b8             	mov    %ebx,-0x48(%ebp)
563409:	83 f8 20             	cmp    $0x20,%eax
56340c:	89 55 ac             	mov    %edx,-0x54(%ebp)
56340f:	0f 43 f1             	cmovae %ecx,%esi
563412:	33 ce                	xor    %esi,%ecx
563414:	83 f8 40             	cmp    $0x40,%eax
563417:	8b 45 14             	mov    0x14(%ebp),%eax
56341a:	0f 43 f1             	cmovae %ecx,%esi
56341d:	83 c1 ff             	add    $0xffffffff,%ecx
563420:	89 8d 70 ff ff ff    	mov    %ecx,-0x90(%ebp)
563426:	8b 8d 7c ff ff ff    	mov    -0x84(%ebp),%ecx
56342c:	83 d6 ff             	adc    $0xffffffff,%esi
56342f:	25 00 08 00 00       	and    $0x800,%eax
563434:	89 75 a0             	mov    %esi,-0x60(%ebp)
563437:	8b 75 80             	mov    -0x80(%ebp),%esi
56343a:	89 85 60 ff ff ff    	mov    %eax,-0xa0(%ebp)
563440:	8b c2                	mov    %edx,%eax
563442:	0f 95 c0             	setne  %al
563445:	89 75 dc             	mov    %esi,-0x24(%ebp)
563448:	05 82 01 00 00       	add    $0x182,%eax
56344d:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
563450:	0f b7 c0             	movzwl %ax,%eax
563453:	89 85 74 ff ff ff    	mov    %eax,-0x8c(%ebp)
563459:	8b 85 6c ff ff ff    	mov    -0x94(%ebp),%eax
56345f:	89 45 84             	mov    %eax,-0x7c(%ebp)
563462:	8b 85 68 ff ff ff    	mov    -0x98(%ebp),%eax
563468:	89 45 88             	mov    %eax,-0x78(%ebp)
56346b:	8b 45 9c             	mov    -0x64(%ebp),%eax
56346e:	89 45 8c             	mov    %eax,-0x74(%ebp)
563471:	8b 45 98             	mov    -0x68(%ebp),%eax
563474:	89 85 78 ff ff ff    	mov    %eax,-0x88(%ebp)
56347a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
563480:	8b 45 a0             	mov    -0x60(%ebp),%eax
563483:	3b f0                	cmp    %eax,%esi
563485:	0f 87 e6 06 00 00    	ja     0x563b71
56348b:	72 0c                	jb     0x563499
56348d:	3b 8d 70 ff ff ff    	cmp    -0x90(%ebp),%ecx
563493:	0f 83 de 06 00 00    	jae    0x563b77
563499:	0f b7 45 18          	movzwl 0x18(%ebp),%eax
56349d:	39 45 ac             	cmp    %eax,-0x54(%ebp)
5634a0:	0f 8f c8 06 00 00    	jg     0x563b6e
5634a6:	83 7d ac 00          	cmpl   $0x0,-0x54(%ebp)
5634aa:	7e 1b                	jle    0x5634c7
5634ac:	8b bd 78 ff ff ff    	mov    -0x88(%ebp),%edi
5634b2:	0b 7a 08             	or     0x8(%edx),%edi
5634b5:	89 bd 78 ff ff ff    	mov    %edi,-0x88(%ebp)
5634bb:	8b 7d 8c             	mov    -0x74(%ebp),%edi
5634be:	0b 7a 0c             	or     0xc(%edx),%edi
5634c1:	89 7d 8c             	mov    %edi,-0x74(%ebp)
5634c4:	8b 7d b4             	mov    -0x4c(%ebp),%edi
5634c7:	8b 55 ac             	mov    -0x54(%ebp),%edx
5634ca:	3b d0                	cmp    %eax,%edx
5634cc:	7d 1f                	jge    0x5634ed
5634ce:	66 83 bd 60 ff ff ff 	cmpw   $0x0,-0xa0(%ebp)
5634d5:	00
5634d6:	8b 85 64 ff ff ff    	mov    -0x9c(%ebp),%eax
5634dc:	8b 40 18             	mov    0x18(%eax),%eax
5634df:	8b 14 90             	mov    (%eax,%edx,4),%edx