7cc24f:	2b f1                	sub    %ecx,%esi
7cc251:	3b f3                	cmp    %ebx,%esi
7cc253:	0f 4f f3             	cmovg  %ebx,%esi
7cc256:	85 f6                	test   %esi,%esi
7cc258:	74 2f                	je     0x7cc289
7cc25a:	8b 07                	mov    (%edi),%eax
7cc25c:	56                   	push   %esi
7cc25d:	51                   	push   %ecx
7cc25e:	ff 77 08             	push   0x8(%edi)
7cc261:	8b 40 0c             	mov    0xc(%eax),%eax
7cc264:	ff d0                	call   *%eax
7cc266:	83 c4 0c             	add    $0xc,%esp
7cc269:	3b c6                	cmp    %esi,%eax
7cc26b:	74 13                	je     0x7cc280
7cc26d:	5e                   	pop    %esi
7cc26e:	c7 47 24 04 00 00 00 	movl   $0x4,0x24(%edi)
7cc275:	b8 04 00 00 00       	mov    $0x4,%eax
7cc27a:	5f                   	pop    %edi
7cc27b:	5b                   	pop    %ebx
7cc27c:	83 c4 40             	add    $0x40,%esp
7cc27f:	c3                   	ret
7cc280:	01 77 34             	add    %esi,0x34(%edi)
7cc283:	2b de                	sub    %esi,%ebx
7cc285:	89 5c 24 54          	mov    %ebx,0x54(%esp)
7cc289:	85 db                	test   %ebx,%ebx
7cc28b:	75 09                	jne    0x7cc296
7cc28d:	5e                   	pop    %esi
7cc28e:	5f                   	pop    %edi
7cc28f:	33 c0                	xor    %eax,%eax
7cc291:	5b                   	pop    %ebx
7cc292:	83 c4 40             	add    $0x40,%esp
7cc295:	c3                   	ret
7cc296:	8b 47 0c             	mov    0xc(%edi),%eax
7cc299:	8a 5f 44             	mov    0x44(%edi),%bl
7cc29c:	0f b7 57 1c          	movzwl 0x1c(%edi),%edx
7cc2a0:	8b 4f 3c             	mov    0x3c(%edi),%ecx
7cc2a3:	8b 77 2c             	mov    0x2c(%edi),%esi
7cc2a6:	89 44 24 30          	mov    %eax,0x30(%esp)
7cc2aa:	8b 47 14             	mov    0x14(%edi),%eax
7cc2ad:	89 44 24 24          	mov    %eax,0x24(%esp)
7cc2b1:	8b 47 18             	mov    0x18(%edi),%eax
7cc2b4:	89 44 24 38          	mov    %eax,0x38(%esp)
7cc2b8:	0f b7 47 1e          	movzwl 0x1e(%edi),%eax
7cc2bc:	89 44 24 14          	mov    %eax,0x14(%esp)
7cc2c0:	0f b7 47 20          	movzwl 0x20(%edi),%eax
7cc2c4:	89 44 24 18          	mov    %eax,0x18(%esp)
7cc2c8:	8b 47 38             	mov    0x38(%edi),%eax
7cc2cb:	2b 47 34             	sub    0x34(%edi),%eax
7cc2ce:	55                   	push   %ebp
7cc2cf:	8b 6f 30             	mov    0x30(%edi),%ebp
7cc2d2:	89 6c 24 20          	mov    %ebp,0x20(%esp)
7cc2d6:	89 4c 24 14          	mov    %ecx,0x14(%esp)
7cc2da:	88 5c 24 12          	mov    %bl,0x12(%esp)
7cc2de:	89 54 24 24          	mov    %edx,0x24(%esp)
7cc2e2:	3b 44 24 58          	cmp    0x58(%esp),%eax
7cc2e6:	0f 8d c0 13 00 00    	jge    0x7cd6ac
7cc2ec:	0f 1f 40 00          	nopl   0x0(%eax)
7cc2f0:	80 7f 22 00          	cmpb   $0x0,0x22(%edi)
7cc2f4:	0f 85 a2 00 00 00    	jne    0x7cc39c
7cc2fa:	c7 44 24 18 00 00 00 	movl   $0x0,0x18(%esp)
7cc301:	00
7cc302:	ba ff ff 00 00       	mov    $0xffff,%edx
7cc307:	89 54 24 24          	mov    %edx,0x24(%esp)
7cc30b:	80 fb 10             	cmp    $0x10,%bl
7cc30e:	73 71                	jae    0x7cc381
7cc310:	3b f5                	cmp    %ebp,%esi
7cc312:	72 1b                	jb     0x7cc32f
7cc314:	57                   	push   %edi
7cc315:	e8 76 1d 00 00       	call   0x7ce090
7cc31a:	83 c4 04             	add    $0x4,%esp
7cc31d:	85 c0                	test   %eax,%eax
7cc31f:	0f 85 68 13 00 00    	jne    0x7cd68d
7cc325:	8b 6f 30             	mov    0x30(%edi),%ebp
7cc328:	8b 77 2c             	mov    0x2c(%edi),%esi
7cc32b:	89 6c 24 20          	mov    %ebp,0x20(%esp)
7cc32f:	8a 3e                	mov    (%esi),%bh
7cc331:	46                   	inc    %esi
7cc332:	3b f5                	cmp    %ebp,%esi
7cc334:	72 1b                	jb     0x7cc351
7cc336:	57                   	push   %edi
7cc337:	e8 54 1d 00 00       	call   0x7ce090
7cc33c:	83 c4 04             	add    $0x4,%esp
7cc33f:	85 c0                	test   %eax,%eax
7cc341:	0f 85 46 13 00 00    	jne    0x7cd68d
7cc347:	8b 6f 30             	mov    0x30(%edi),%ebp
7cc34a:	8b 77 2c             	mov    0x2c(%edi),%esi
7cc34d:	89 6c 24 20          	mov    %ebp,0x20(%esp)
7cc351:	8a 06                	mov    (%esi),%al
7cc353:	b9 10 00 00 00       	mov    $0x10,%ecx
7cc358:	0f b6 d7             	movzbl %bh,%edx
7cc35b:	46                   	inc    %esi
7cc35c:	c1 e2 08             	shl    $0x8,%edx
7cc35f:	0f b6 c0             	movzbl %al,%eax
7cc362:	0b d0                	or     %eax,%edx
7cc364:	0f b6 c3             	movzbl %bl,%eax
7cc367:	2b c8                	sub    %eax,%ecx
7cc369:	80 c3 10             	add    $0x10,%bl
7cc36c:	d3 e2                	shl    %cl,%edx
7cc36e:	8b 4c 24 14          	mov    0x14(%esp),%ecx
7cc372:	0b ca                	or     %edx,%ecx
7cc374:	89 4c 24 14          	mov    %ecx,0x14(%esp)
7cc378:	80 fb 10             	cmp    $0x10,%bl
7cc37b:	72 93                	jb     0x7cc310
7cc37d:	8b 54 24 24          	mov    0x24(%esp),%edx
7cc381:	8b c1                	mov    %ecx,%eax
7cc383:	c6 47 22 01          	movb   $0x1,0x22(%edi)
7cc387:	c1 e8 10             	shr    $0x10,%eax
7cc38a:	c1 e1 10             	shl    $0x10,%ecx
7cc38d:	80 c3 f0             	add    $0xf0,%bl
7cc390:	89 44 24 1c          	mov    %eax,0x1c(%esp)
7cc394:	89 4c 24 14          	mov    %ecx,0x14(%esp)
7cc398:	88 5c 24 12          	mov    %bl,0x12(%esp)
7cc39c:	8b 47 34             	mov    0x34(%edi),%eax
7cc39f:	2b 47 38             	sub    0x38(%edi),%eax
7cc3a2:	03 44 24 28          	add    0x28(%esp),%eax
7cc3a6:	03 44 24 58          	add    0x58(%esp),%eax
7cc3aa:	8b 4c 24 3c          	mov    0x3c(%esp),%ecx
7cc3ae:	03 4c 24 28          	add    0x28(%esp),%ecx
7cc3b2:	8b 7c 24 54          	mov    0x54(%esp),%edi
7cc3b6:	3b c8                	cmp    %eax,%ecx
7cc3b8:	0f 43 c8             	cmovae %eax,%ecx
7cc3bb:	3b 4f 10             	cmp    0x10(%edi),%ecx
7cc3be:	0f 47 4f 10          	cmova  0x10(%edi),%ecx
7cc3c2:	89 4c 24 44          	mov    %ecx,0x44(%esp)
7cc3c6:	8b 4c 24 28          	mov    0x28(%esp),%ecx
7cc3ca:	3b 4c 24 44          	cmp    0x44(%esp),%ecx
7cc3ce:	8b 4c 24 14          	mov    0x14(%esp),%ecx
7cc3d2:	0f 83 70 11 00 00    	jae    0x7cd548
7cc3d8:	0f 1f 84 00 00 00 00 	nopl   0x0(%eax,%eax,1)
7cc3df:	00
7cc3e0:	8b 44 24 18          	mov    0x18(%esp),%eax
7cc3e4:	0f b7 c8             	movzwl %ax,%ecx
7cc3e7:	8b 87 b0 00 00 00    	mov    0xb0(%edi),%eax
7cc3ed:	0f b7 d2             	movzwl %dx,%edx
7cc3f0:	2b d1                	sub    %ecx,%edx
7cc3f2:	89 54 24 2c          	mov    %edx,0x2c(%esp)
7cc3f6:	0f b7 40 02          	movzwl 0x2(%eax),%eax
7cc3fa:	89 44 24 38          	mov    %eax,0x38(%esp)
7cc3fe:	8b 44 24 1c          	mov    0x1c(%esp),%eax
7cc402:	0f b7 c0             	movzwl %ax,%eax
7cc405:	2b c1                	sub    %ecx,%eax
7cc407:	0f b7 ca             	movzwl %dx,%ecx
7cc40a:	40                   	inc    %eax
7cc40b:	33 d2                	xor    %edx,%edx
7cc40d:	0f af 44 24 38       	imul   0x38(%esp),%eax
7cc412:	41                   	inc    %ecx
7cc413:	48                   	dec    %eax
7cc414:	f7 f1                	div    %ecx
7cc416:	8b 97 ac 00 00 00    	mov    0xac(%edi),%edx
7cc41c:	0f b7 c0             	movzwl %ax,%eax
7cc41f:	89 44 24 40          	mov    %eax,0x40(%esp)
7cc423:	b8 01 00 00 00       	mov    $0x1,%eax
7cc428:	89 44 24 30          	mov    %eax,0x30(%esp)
7cc42c:	3b d0                	cmp    %eax,%edx
7cc42e:	7e 25                	jle    0x7cc455
7cc430:	8b 8f b0 00 00 00    	mov    0xb0(%edi),%ecx
7cc436:	8b 7c 24 40          	mov    0x40(%esp),%edi
7cc43a:	83 c1 06             	add    $0x6,%ecx
7cc43d:	0f 1f 00             	nopl   (%eax)
7cc440:	66 39 39             	cmp    %di,(%ecx)
7cc443:	76 08                	jbe    0x7cc44d
7cc445:	40                   	inc    %eax
7cc446:	83 c1 04             	add    $0x4,%ecx
7cc449:	3b c2                	cmp    %edx,%eax
7cc44b:	7c f3                	jl     0x7cc440
7cc44d:	8b 7c 24 54          	mov    0x54(%esp),%edi
7cc451:	89 44 24 30          	mov    %eax,0x30(%esp)
7cc455:	8b 97 b0 00 00 00    	mov    0xb0(%edi),%edx
7cc45b:	0f b7 4c 82 fc       	movzwl -0x4(%edx,%eax,4),%ecx
7cc460:	0f b7 44 82 fe       	movzwl -0x2(%edx,%eax,4),%eax
7cc465:	33 d2                	xor    %edx,%edx
7cc467:	89 4c 24 40          	mov    %ecx,0x40(%esp)
7cc46b:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
7cc46f:	41                   	inc    %ecx
7cc470:	0f af c1             	imul   %ecx,%eax
7cc473:	f7 74 24 38          	divl   0x38(%esp)
7cc477:	8b 54 24 18          	mov    0x18(%esp),%edx
7cc47b:	4a                   	dec    %edx
7cc47c:	03 c2                	add    %edx,%eax
7cc47e:	8b 97 b0 00 00 00    	mov    0xb0(%edi),%edx
7cc484:	0f b7 c0             	movzwl %ax,%eax
7cc487:	89 44 24 2c          	mov    %eax,0x2c(%esp)
7cc48b:	8b 44 24 30          	mov    0x30(%esp),%eax
7cc48f:	0f b7 44 82 02       	movzwl 0x2(%edx,%eax,4),%eax
7cc494:	33 d2                	xor    %edx,%edx
7cc496:	0f af c1             	imul   %ecx,%eax
7cc499:	8b 4c 24 30          	mov    0x30(%esp),%ecx
7cc49d:	f7 74 24 38          	divl   0x38(%esp)
7cc4a1:	01 44 24 18          	add    %eax,0x18(%esp)
7cc4a5:	66 66 66 0f 1f 84 00 	data16 data16 nopw 0x0(%eax,%eax,1)
7cc4ac:	00 00 00 00
7cc4b0:	8b 87 b0 00 00 00    	mov    0xb0(%edi),%eax
7cc4b6:	49                   	dec    %ecx
7cc4b7:	66 83 44 88 02 08    	addw   $0x8,0x2(%eax,%ecx,4)
7cc4bd:	85 c9                	test   %ecx,%ecx
7cc4bf:	7f ef                	jg     0x7cc4b0
7cc4c1:	8b 87 b0 00 00 00    	mov    0xb0(%edi),%eax
7cc4c7:	b9 d8 0e 00 00       	mov    $0xed8,%ecx
7cc4cc:	66 39 48 02          	cmp    %cx,0x2(%eax)
7cc4d0:	76 0f                	jbe    0x7cc4e1
7cc4d2:	8d 87 a8 00 00 00    	lea    0xa8(%edi),%eax
7cc4d8:	50                   	push   %eax
7cc4d9:	e8 92 1a 00 00       	call   0x7cdf70
7cc4de:	83 c4 04             	add    $0x4,%esp
7cc4e1:	8b 4c 24 14          	mov    0x14(%esp),%ecx
7cc4e5:	8b 54 24 2c          	mov    0x2c(%esp),%edx
7cc4e9:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
7cc4f0:	8b 44 24 18          	mov    0x18(%esp),%eax
7cc4f4:	33 c2                	xor    %edx,%eax
7cc4f6:	a9 00 80 00 00       	test   $0x8000,%eax
7cc4fb:	8b 44 24 18          	mov    0x18(%esp),%eax
7cc4ff:	74 2a                	je     0x7cc52b
7cc501:	a9 00 40 00 00       	test   $0x4000,%eax
7cc506:	0f 84 cf 00 00 00    	je     0x7cc5db
7cc50c:	f7 c2 00 40 00 00    	test   $0x4000,%edx
7cc512:	0f 85 c3 00 00 00    	jne    0x7cc5db
7cc518:	81 74 24 1c 00 40 00 	xorl   $0x4000,0x1c(%esp)
7cc51f:	00
7cc520:	25 ff 3f 00 00       	and    $0x3fff,%eax
7cc525:	81 ca 00 40 00 00    	or     $0x4000,%edx
7cc52b:	03 c0                	add    %eax,%eax
7cc52d:	89 44 24 18          	mov    %eax,0x18(%esp)
7cc531:	8d 04 12             	lea    (%edx,%edx,1),%eax
7cc534:	83 c8 01             	or     $0x1,%eax
7cc537:	0f b7 d0             	movzwl %ax,%edx
7cc53a:	89 54 24 2c          	mov    %edx,0x2c(%esp)
7cc53e:	80 fb 01             	cmp    $0x1,%bl
7cc541:	73 71                	jae    0x7cc5b4
7cc543:	3b f5                	cmp    %ebp,%esi
7cc545:	72 1b                	jb     0x7cc562
7cc547:	57                   	push   %edi
7cc548:	e8 43 1b 00 00       	call   0x7ce090
7cc54d:	83 c4 04             	add    $0x4,%esp
7cc550:	85 c0                	test   %eax,%eax
7cc552:	0f 85 35 11 00 00    	jne    0x7cd68d
7cc558:	8b 6f 30             	mov    0x30(%edi),%ebp
7cc55b:	8b 77 2c             	mov    0x2c(%edi),%esi
7cc55e:	89 6c 24 20          	mov    %ebp,0x20(%esp)
7cc562:	8a 3e                	mov    (%esi),%bh
7cc564:	46                   	inc    %esi
7cc565:	3b f5                	cmp    %ebp,%esi
7cc567:	72 1b                	jb     0x7cc584
7cc569:	57                   	push   %edi
7cc56a:	e8 21 1b 00 00       	call   0x7ce090
7cc56f:	83 c4 04             	add    $0x4,%esp
7cc572:	85 c0                	test   %eax,%eax
7cc574:	0f 85 13 11 00 00    	jne    0x7cd68d
7cc57a:	8b 6f 30             	mov    0x30(%edi),%ebp
7cc57d:	8b 77 2c             	mov    0x2c(%edi),%esi
7cc580:	89 6c 24 20          	mov    %ebp,0x20(%esp)
7cc584:	8a 06                	mov    (%esi),%al
7cc586:	b9 10 00 00 00       	mov    $0x10,%ecx
7cc58b:	0f b6 d7             	movzbl %bh,%edx
7cc58e:	46                   	inc    %esi
7cc58f:	c1 e2 08             	shl    $0x8,%edx
7cc592:	0f b6 c0             	movzbl %al,%eax
7cc595:	0b d0                	or     %eax,%edx
7cc597:	0f b6 c3             	movzbl %bl,%eax
7cc59a:	2b c8                	sub    %eax,%ecx
7cc59c:	80 c3 10             	add    $0x10,%bl
7cc59f:	d3 e2                	shl    %cl,%edx
7cc5a1:	8b 4c 24 14          	mov    0x14(%esp),%ecx
7cc5a5:	0b ca                	or     %edx,%ecx
7cc5a7:	89 4c 24 14          	mov    %ecx,0x14(%esp)
7cc5ab:	80 fb 01             	cmp    $0x1,%bl
7cc5ae:	72 93                	jb     0x7cc543
7cc5b0:	8b 54 24 2c          	mov    0x2c(%esp),%edx
7cc5b4:	8b 44 24 1c          	mov    0x1c(%esp),%eax
7cc5b8:	c1 e9 1f             	shr    $0x1f,%ecx
7cc5bb:	03 c0                	add    %eax,%eax
7cc5bd:	0b c8                	or     %eax,%ecx
7cc5bf:	0f b7 c1             	movzwl %cx,%eax
7cc5c2:	8b 4c 24 14          	mov    0x14(%esp),%ecx
7cc5c6:	03 c9                	add    %ecx,%ecx
7cc5c8:	89 44 24 1c          	mov    %eax,0x1c(%esp)
7cc5cc:	fe cb                	dec    %bl
7cc5ce:	89 4c 24 14          	mov    %ecx,0x14(%esp)
7cc5d2:	88 5c 24 12          	mov    %bl,0x12(%esp)
7cc5d6:	e9 15 ff ff ff       	jmp    0x7cc4f0
7cc5db:	8b 4c 24 40          	mov    0x40(%esp),%ecx
7cc5df:	83 f9 04             	cmp    $0x4,%ecx
7cc5e2:	0f 83 26 02 00 00    	jae    0x7cc80e
7cc5e8:	85 c9                	test   %ecx,%ecx
7cc5ea:	75 05                	jne    0x7cc5f1
7cc5ec:	8d 41 48             	lea    0x48(%ecx),%eax
7cc5ef:	eb 1a                	jmp    0x7cc60b
7cc5f1:	83 f9 01             	cmp    $0x1,%ecx
7cc5f4:	75 05                	jne    0x7cc5fb
7cc5f6:	8d 41 53             	lea    0x53(%ecx),%eax
7cc5f9:	eb 10                	jmp    0x7cc60b
7cc5fb:	83 f9 02             	cmp    $0x2,%ecx
7cc5fe:	b8 6c 00 00 00       	mov    $0x6c,%eax
7cc603:	b9 60 00 00 00       	mov    $0x60,%ecx
7cc608:	0f 44 c1             	cmove  %ecx,%eax
7cc60b:	8b 4c 24 18          	mov    0x18(%esp),%ecx
7cc60f:	03 c7                	add    %edi,%eax
7cc611:	89 44 24 40          	mov    %eax,0x40(%esp)
7cc615:	0f b7 c9             	movzwl %cx,%ecx
7cc618:	0f b7 d2             	movzwl %dx,%edx
7cc61b:	8b 40 08             	mov    0x8(%eax),%eax
7cc61e:	2b d1                	sub    %ecx,%edx
7cc620:	89 44 24 38          	mov    %eax,0x38(%esp)
7cc624:	89 54 24 48          	mov    %edx,0x48(%esp)
7cc628:	0f b7 40 02          	movzwl 0x2(%eax),%eax
7cc62c:	89 44 24 30          	mov    %eax,0x30(%esp)
7cc630:	8b 44 24 1c          	mov    0x1c(%esp),%eax
7cc634:	0f b7 c0             	movzwl %ax,%eax
7cc637:	2b c1                	sub    %ecx,%eax
7cc639:	0f b7 ca             	movzwl %dx,%ecx
7cc63c:	40                   	inc    %eax
7cc63d:	41                   	inc    %ecx
7cc63e:	0f af 44 24 30       	imul   0x30(%esp),%eax
7cc643:	33 d2                	xor    %edx,%edx
7cc645:	48                   	dec    %eax
7cc646:	f7 f1                	div    %ecx
7cc648:	8b 4c 24 40          	mov    0x40(%esp),%ecx
7cc64c:	0f b7 c0             	movzwl %ax,%eax
7cc64f:	89 44 24 24          	mov    %eax,0x24(%esp)
7cc653:	b8 01 00 00 00       	mov    $0x1,%eax
7cc658:	89 44 24 2c          	mov    %eax,0x2c(%esp)
7cc65c:	8b 51 04             	mov    0x4(%ecx),%edx
7cc65f:	3b d0                	cmp    %eax,%edx
7cc661:	7e 22                	jle    0x7cc685
7cc663:	8b 4c 24 38          	mov    0x38(%esp),%ecx
7cc667:	8b 7c 24 24          	mov    0x24(%esp),%edi
7cc66b:	83 c1 06             	add    $0x6,%ecx
7cc66e:	66 90                	xchg   %ax,%ax
7cc670:	66 39 39             	cmp    %di,(%ecx)
7cc673:	76 08                	jbe    0x7cc67d
7cc675:	40                   	inc    %eax
7cc676:	83 c1 04             	add    $0x4,%ecx
7cc679:	3b c2                	cmp    %edx,%eax
7cc67b:	7c f3                	jl     0x7cc670
7cc67d:	8b 7c 24 54          	mov    0x54(%esp),%edi
7cc681:	89 44 24 2c          	mov    %eax,0x2c(%esp)
7cc685:	8b 54 24 38          	mov    0x38(%esp),%edx
7cc689:	0f b7 4c 82 fc       	movzwl -0x4(%edx,%eax,4),%ecx
7cc68e:	0f b7 44 82 fe       	movzwl -0x2(%edx,%eax,4),%eax
7cc693:	33 d2                	xor    %edx,%edx
7cc695:	89 4c 24 4c          	mov    %ecx,0x4c(%esp)
7cc699:	8b 4c 24 48          	mov    0x48(%esp),%ecx
7cc69d:	41                   	inc    %ecx
7cc69e:	0f af c1             	imul   %ecx,%eax
7cc6a1:	f7 74 24 30          	divl   0x30(%esp)
7cc6a5:	8b 54 24 18          	mov    0x18(%esp),%edx
7cc6a9:	4a                   	dec    %edx
7cc6aa:	03 c2                	add    %edx,%eax
7cc6ac:	8b 54 24 38          	mov    0x38(%esp),%edx
7cc6b0:	0f b7 c0             	movzwl %ax,%eax
7cc6b3:	89 44 24 24          	mov    %eax,0x24(%esp)