4ef1ad:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4ef1b1:	85 c9                	test   %ecx,%ecx
4ef1b3:	7d 04                	jge    0x4ef1b9
4ef1b5:	f7 5c 24 04          	negl   0x4(%esp)
4ef1b9:	8b ce                	mov    %esi,%ecx
4ef1bb:	d3 7c 24 04          	sarl   %cl,0x4(%esp)
4ef1bf:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4ef1c3:	89 0a                	mov    %ecx,(%edx)
4ef1c5:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4ef1c9:	49                   	dec    %ecx
4ef1ca:	75 08                	jne    0x4ef1d4
4ef1cc:	8b 4c 24 08          	mov    0x8(%esp),%ecx
4ef1d0:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
4ef1d4:	ff 44 24 08          	incl   0x8(%esp)
4ef1d8:	83 c2 04             	add    $0x4,%edx
4ef1db:	83 c0 04             	add    $0x4,%eax
4ef1de:	8b 4c 24 08          	mov    0x8(%esp),%ecx
4ef1e2:	8b 7c 24 10          	mov    0x10(%esp),%edi
4ef1e6:	3b cf                	cmp    %edi,%ecx
4ef1e8:	7e b5                	jle    0x4ef19f
4ef1ea:	8b 14 24             	mov    (%esp),%edx
4ef1ed:	8b 6b 40             	mov    0x40(%ebx),%ebp
4ef1f0:	8b 43 3c             	mov    0x3c(%ebx),%eax
4ef1f3:	33 ff                	xor    %edi,%edi
4ef1f5:	8b 8a 3c 01 00 00    	mov    0x13c(%edx),%ecx
4ef1fb:	03 e8                	add    %eax,%ebp
4ef1fd:	89 4c 24 08          	mov    %ecx,0x8(%esp)
4ef201:	33 f6                	xor    %esi,%esi
4ef203:	8b 44 24 08          	mov    0x8(%esp),%eax
4ef207:	8d 14 85 30 cf 68 00 	lea    0x68cf30(,%eax,4),%edx
4ef20e:	89 54 24 1c          	mov    %edx,0x1c(%esp)
4ef212:	8b 4c 24 08          	mov    0x8(%esp),%ecx
4ef216:	8d 44 8c 20          	lea    0x20(%esp,%ecx,4),%eax
4ef21a:	89 44 24 18          	mov    %eax,0x18(%esp)
4ef21e:	8b 54 24 08          	mov    0x8(%esp),%edx
4ef222:	8b 4c 24 10          	mov    0x10(%esp),%ecx
4ef226:	3b d1                	cmp    %ecx,%edx
4ef228:	0f 8f d7 00 00 00    	jg     0x4ef305
4ef22e:	8b 44 24 18          	mov    0x18(%esp),%eax
4ef232:	8b 10                	mov    (%eax),%edx
4ef234:	89 54 24 04          	mov    %edx,0x4(%esp)
4ef238:	85 d2                	test   %edx,%edx
4ef23a:	75 2f                	jne    0x4ef26b
4ef23c:	47                   	inc    %edi
4ef23d:	e9 a5 00 00 00       	jmp    0x4ef2e7
4ef242:	8b c3                	mov    %ebx,%eax
4ef244:	e8 33 fa ff ff       	call   0x4eec7c
4ef249:	b9 f0 00 00 00       	mov    $0xf0,%ecx
4ef24e:	8b 53 34             	mov    0x34(%ebx),%edx
4ef251:	8b c3                	mov    %ebx,%eax
4ef253:	e8 c8 f9 ff ff       	call   0x4eec20
4ef258:	83 ef 10             	sub    $0x10,%edi
4ef25b:	8b ce                	mov    %esi,%ecx
4ef25d:	8b d5                	mov    %ebp,%edx
4ef25f:	8b c3                	mov    %ebx,%eax
4ef261:	e8 e6 f9 ff ff       	call   0x4eec4c
4ef266:	8b 6b 40             	mov    0x40(%ebx),%ebp
4ef269:	33 f6                	xor    %esi,%esi
4ef26b:	83 ff 0f             	cmp    $0xf,%edi
4ef26e:	7e 0c                	jle    0x4ef27c
4ef270:	8b 44 24 08          	mov    0x8(%esp),%eax
4ef274:	8b 54 24 0c          	mov    0xc(%esp),%edx
4ef278:	3b c2                	cmp    %edx,%eax
4ef27a:	7e c6                	jle    0x4ef242
4ef27c:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4ef280:	49                   	dec    %ecx
4ef281:	7e 0d                	jle    0x4ef290
4ef283:	8a 44 24 04          	mov    0x4(%esp),%al
4ef287:	24 01                	and    $0x1,%al
4ef289:	88 44 35 00          	mov    %al,0x0(%ebp,%esi,1)
4ef28d:	46                   	inc    %esi
4ef28e:	eb 57                	jmp    0x4ef2e7
4ef290:	8b c3                	mov    %ebx,%eax
4ef292:	e8 e5 f9 ff ff       	call   0x4eec7c
4ef297:	8b cf                	mov    %edi,%ecx
4ef299:	8b 53 34             	mov    0x34(%ebx),%edx
4ef29c:	c1 e1 04             	shl    $0x4,%ecx
4ef29f:	8b c3                	mov    %ebx,%eax
4ef2a1:	41                   	inc    %ecx
4ef2a2:	e8 79 f9 ff ff       	call   0x4eec20
4ef2a7:	8b 54 24 1c          	mov    0x1c(%esp),%edx
4ef2ab:	8b 0a                	mov    (%edx),%ecx
4ef2ad:	8b 44 24 14          	mov    0x14(%esp),%eax
4ef2b1:	66 83 3c 48 00       	cmpw   $0x0,(%eax,%ecx,2)
4ef2b6:	7d 04                	jge    0x4ef2bc
4ef2b8:	33 d2                	xor    %edx,%edx
4ef2ba:	eb 05                	jmp    0x4ef2c1
4ef2bc:	ba 01 00 00 00       	mov    $0x1,%edx
4ef2c1:	89 54 24 04          	mov    %edx,0x4(%esp)
4ef2c5:	b9 01 00 00 00       	mov    $0x1,%ecx
4ef2ca:	8b 54 24 04          	mov    0x4(%esp),%edx
4ef2ce:	8b c3                	mov    %ebx,%eax
4ef2d0:	e8 8f f8 ff ff       	call   0x4eeb64
4ef2d5:	8b ce                	mov    %esi,%ecx
4ef2d7:	8b d5                	mov    %ebp,%edx
4ef2d9:	8b c3                	mov    %ebx,%eax
4ef2db:	e8 6c f9 ff ff       	call   0x4eec4c
4ef2e0:	8b 6b 40             	mov    0x40(%ebx),%ebp
4ef2e3:	33 f6                	xor    %esi,%esi
4ef2e5:	33 ff                	xor    %edi,%edi
4ef2e7:	ff 44 24 08          	incl   0x8(%esp)
4ef2eb:	83 44 24 1c 04       	addl   $0x4,0x1c(%esp)
4ef2f0:	83 44 24 18 04       	addl   $0x4,0x18(%esp)
4ef2f5:	8b 44 24 08          	mov    0x8(%esp),%eax
4ef2f9:	8b 54 24 10          	mov    0x10(%esp),%edx
4ef2fd:	3b c2                	cmp    %edx,%eax
4ef2ff:	0f 8e 29 ff ff ff    	jle    0x4ef22e
4ef305:	85 ff                	test   %edi,%edi
4ef307:	7f 04                	jg     0x4ef30d
4ef309:	85 f6                	test   %esi,%esi
4ef30b:	76 22                	jbe    0x4ef32f
4ef30d:	ff 43 38             	incl   0x38(%ebx)
4ef310:	01 73 3c             	add    %esi,0x3c(%ebx)
4ef313:	8b 4b 38             	mov    0x38(%ebx),%ecx
4ef316:	81 f9 ff 7f 00 00    	cmp    $0x7fff,%ecx
4ef31c:	74 0a                	je     0x4ef328
4ef31e:	8b 43 3c             	mov    0x3c(%ebx),%eax
4ef321:	3d a9 03 00 00       	cmp    $0x3a9,%eax
4ef326:	76 07                	jbe    0x4ef32f
4ef328:	8b c3                	mov    %ebx,%eax
4ef32a:	e8 4d f9 ff ff       	call   0x4eec7c
4ef32f:	8b 14 24             	mov    (%esp),%edx
4ef332:	8b 42 18             	mov    0x18(%edx),%eax
4ef335:	8b 53 10             	mov    0x10(%ebx),%edx
4ef338:	89 10                	mov    %edx,(%eax)
4ef33a:	8b 4b 14             	mov    0x14(%ebx),%ecx
4ef33d:	89 48 04             	mov    %ecx,0x4(%eax)
4ef340:	8b 04 24             	mov    (%esp),%eax
4ef343:	8b 80 c8 00 00 00    	mov    0xc8(%eax),%eax
4ef349:	85 c0                	test   %eax,%eax
4ef34b:	74 14                	je     0x4ef361
4ef34d:	8b 53 44             	mov    0x44(%ebx),%edx
4ef350:	85 d2                	test   %edx,%edx
4ef352:	75 0a                	jne    0x4ef35e
4ef354:	89 43 44             	mov    %eax,0x44(%ebx)
4ef357:	ff 43 48             	incl   0x48(%ebx)
4ef35a:	83 63 48 07          	andl   $0x7,0x48(%ebx)
4ef35e:	ff 4b 44             	decl   0x44(%ebx)
4ef361:	b8 01 00 00 00       	mov    $0x1,%eax
4ef366:	81 c4 20 01 00 00    	add    $0x120,%esp
4ef36c:	5d                   	pop    %ebp
4ef36d:	5f                   	pop    %edi
4ef36e:	5e                   	pop    %esi
4ef36f:	5b                   	pop    %ebx
4ef370:	c3                   	ret
4ef371:	90                   	nop
4ef372:	90                   	nop
4ef373:	90                   	nop
4ef374:	53                   	push   %ebx
4ef375:	56                   	push   %esi
4ef376:	8b f0                	mov    %eax,%esi
4ef378:	8b 9e 6c 01 00 00    	mov    0x16c(%esi),%ebx
4ef37e:	8b 46 18             	mov    0x18(%esi),%eax
4ef381:	8b 10                	mov    (%eax),%edx
4ef383:	89 53 10             	mov    %edx,0x10(%ebx)
4ef386:	8b 4e 18             	mov    0x18(%esi),%ecx
4ef389:	8b 41 04             	mov    0x4(%ecx),%eax
4ef38c:	89 43 14             	mov    %eax,0x14(%ebx)
4ef38f:	8b c3                	mov    %ebx,%eax
4ef391:	e8 e6 f8 ff ff       	call   0x4eec7c
4ef396:	8b c3                	mov    %ebx,%eax
4ef398:	e8 63 f8 ff ff       	call   0x4eec00
4ef39d:	8b 46 18             	mov    0x18(%esi),%eax
4ef3a0:	8b 53 10             	mov    0x10(%ebx),%edx
4ef3a3:	89 10                	mov    %edx,(%eax)
4ef3a5:	8b 4b 14             	mov    0x14(%ebx),%ecx
4ef3a8:	89 48 04             	mov    %ecx,0x4(%eax)
4ef3ab:	5e                   	pop    %esi
4ef3ac:	5b                   	pop    %ebx
4ef3ad:	c3                   	ret
4ef3ae:	90                   	nop
4ef3af:	90                   	nop
4ef3b0:	53                   	push   %ebx
4ef3b1:	56                   	push   %esi
4ef3b2:	57                   	push   %edi
4ef3b3:	55                   	push   %ebp
4ef3b4:	83 c4 e4             	add    $0xffffffe4,%esp
4ef3b7:	8b f0                	mov    %eax,%esi
4ef3b9:	8b 86 6c 01 00 00    	mov    0x16c(%esi),%eax
4ef3bf:	89 04 24             	mov    %eax,(%esp)
4ef3c2:	8b 04 24             	mov    (%esp),%eax
4ef3c5:	e8 b2 f8 ff ff       	call   0x4eec7c
4ef3ca:	8b 96 3c 01 00 00    	mov    0x13c(%esi),%edx
4ef3d0:	85 d2                	test   %edx,%edx
4ef3d2:	0f 94 c1             	sete   %cl
4ef3d5:	83 e1 01             	and    $0x1,%ecx
4ef3d8:	89 4c 24 04          	mov    %ecx,0x4(%esp)
4ef3dc:	6a 10                	push   $0x10
4ef3de:	6a 00                	push   $0x0
4ef3e0:	8d 44 24 14          	lea    0x14(%esp),%eax
4ef3e4:	50                   	push   %eax
4ef3e5:	e8 9a ad fe ff       	call   0x4da184
4ef3ea:	83 c4 0c             	add    $0xc,%esp
4ef3ed:	33 d2                	xor    %edx,%edx
4ef3ef:	89 54 24 08          	mov    %edx,0x8(%esp)
4ef3f3:	8d ae f8 00 00 00    	lea    0xf8(%esi),%ebp
4ef3f9:	eb 65                	jmp    0x4ef460
4ef3fb:	8b 45 00             	mov    0x0(%ebp),%eax
4ef3fe:	8b 54 24 04          	mov    0x4(%esp),%edx
4ef402:	85 d2                	test   %edx,%edx
4ef404:	74 0f                	je     0x4ef415
4ef406:	8b 8e 44 01 00 00    	mov    0x144(%esi),%ecx
4ef40c:	85 c9                	test   %ecx,%ecx
4ef40e:	75 49                	jne    0x4ef459
4ef410:	8b 58 14             	mov    0x14(%eax),%ebx
4ef413:	eb 03                	jmp    0x4ef418
4ef415:	8b 58 18             	mov    0x18(%eax),%ebx
4ef418:	8b 44 9c 0c          	mov    0xc(%esp,%ebx,4),%eax
4ef41c:	85 c0                	test   %eax,%eax
4ef41e:	75 39                	jne    0x4ef459
4ef420:	8b 54 24 04          	mov    0x4(%esp),%edx
4ef424:	85 d2                	test   %edx,%edx
4ef426:	74 06                	je     0x4ef42e
4ef428:	8d 7c 9e 58          	lea    0x58(%esi,%ebx,4),%edi
4ef42c:	eb 04                	jmp    0x4ef432
4ef42e:	8d 7c 9e 68          	lea    0x68(%esi,%ebx,4),%edi
4ef432:	8b 07                	mov    (%edi),%eax
4ef434:	85 c0                	test   %eax,%eax
4ef436:	75 09                	jne    0x4ef441
4ef438:	8b c6                	mov    %esi,%eax
4ef43a:	e8 55 ac ff ff       	call   0x4ea094
4ef43f:	89 07                	mov    %eax,(%edi)
4ef441:	8b 14 24             	mov    (%esp),%edx
4ef444:	8b 4c 9a 5c          	mov    0x5c(%edx,%ebx,4),%ecx
4ef448:	8b 17                	mov    (%edi),%edx
4ef44a:	8b c6                	mov    %esi,%eax
4ef44c:	e8 d7 13 00 00       	call   0x4f0828
4ef451:	c7 44 9c 0c 01 00 00 	movl   $0x1,0xc(%esp,%ebx,4)
4ef458:	00
4ef459:	ff 44 24 08          	incl   0x8(%esp)
4ef45d:	83 c5 04             	add    $0x4,%ebp
4ef460:	8b 4c 24 08          	mov    0x8(%esp),%ecx
4ef464:	8b 86 f4 00 00 00    	mov    0xf4(%esi),%eax
4ef46a:	3b c8                	cmp    %eax,%ecx
4ef46c:	7c 8d                	jl     0x4ef3fb
4ef46e:	83 c4 1c             	add    $0x1c,%esp
4ef471:	5d                   	pop    %ebp
4ef472:	5f                   	pop    %edi
4ef473:	5e                   	pop    %esi
4ef474:	5b                   	pop    %ebx
4ef475:	c3                   	ret
4ef476:	90                   	nop
4ef477:	90                   	nop
4ef478:	53                   	push   %ebx
4ef479:	8b d8                	mov    %eax,%ebx
4ef47b:	8b c3                	mov    %ebx,%eax
4ef47d:	56                   	push   %esi
4ef47e:	b9 6c 00 00 00       	mov    $0x6c,%ecx
4ef483:	ba 01 00 00 00       	mov    $0x1,%edx
4ef488:	8b 70 04             	mov    0x4(%eax),%esi
4ef48b:	ff 16                	call   *(%esi)
4ef48d:	8b c8                	mov    %eax,%ecx
4ef48f:	33 d2                	xor    %edx,%edx
4ef491:	89 8b 6c 01 00 00    	mov    %ecx,0x16c(%ebx)
4ef497:	c7 01 a0 e9 4e 00    	movl   $0x4ee9a0,(%ecx)
4ef49d:	8d 41 4c             	lea    0x4c(%ecx),%eax
4ef4a0:	33 db                	xor    %ebx,%ebx
4ef4a2:	42                   	inc    %edx
4ef4a3:	89 18                	mov    %ebx,(%eax)
4ef4a5:	33 db                	xor    %ebx,%ebx
4ef4a7:	89 58 10             	mov    %ebx,0x10(%eax)
4ef4aa:	83 c0 04             	add    $0x4,%eax
4ef4ad:	83 fa 04             	cmp    $0x4,%edx
4ef4b0:	7c ee                	jl     0x4ef4a0
4ef4b2:	33 c0                	xor    %eax,%eax
4ef4b4:	89 41 40             	mov    %eax,0x40(%ecx)
4ef4b7:	5e                   	pop    %esi
4ef4b8:	5b                   	pop    %ebx
4ef4b9:	c3                   	ret
4ef4ba:	8b c0                	mov    %eax,%eax
4ef4bc:	53                   	push   %ebx
4ef4bd:	56                   	push   %esi
4ef4be:	57                   	push   %edi
4ef4bf:	55                   	push   %ebp
4ef4c0:	83 c4 dc             	add    $0xffffffdc,%esp
4ef4c3:	89 04 24             	mov    %eax,(%esp)
4ef4c6:	8b 04 24             	mov    (%esp),%eax
4ef4c9:	c7 44 24 20 07 00 00 	movl   $0x7,0x20(%esp)
4ef4d0:	00
4ef4d1:	8b 08                	mov    (%eax),%ecx
4ef4d3:	8b 58 1c             	mov    0x1c(%eax),%ebx
4ef4d6:	8b d1                	mov    %ecx,%edx
4ef4d8:	8b f1                	mov    %ecx,%esi
4ef4da:	2b f3                	sub    %ebx,%esi
4ef4dc:	03 d3                	add    %ebx,%edx
4ef4de:	8b 58 04             	mov    0x4(%eax),%ebx
4ef4e1:	8b 78 18             	mov    0x18(%eax),%edi
4ef4e4:	8b cb                	mov    %ebx,%ecx
4ef4e6:	2b df                	sub    %edi,%ebx
4ef4e8:	03 cf                	add    %edi,%ecx
4ef4ea:	8b fb                	mov    %ebx,%edi
4ef4ec:	8b 58 08             	mov    0x8(%eax),%ebx
4ef4ef:	8b 68 08             	mov    0x8(%eax),%ebp
4ef4f2:	03 58 14             	add    0x14(%eax),%ebx
4ef4f5:	2b 68 14             	sub    0x14(%eax),%ebp
4ef4f8:	89 6c 24 0c          	mov    %ebp,0xc(%esp)
4ef4fc:	8b 68 0c             	mov    0xc(%eax),%ebp
4ef4ff:	03 68 10             	add    0x10(%eax),%ebp
4ef502:	89 6c 24 04          	mov    %ebp,0x4(%esp)
4ef506:	8b 68 0c             	mov    0xc(%eax),%ebp
4ef509:	2b 68 10             	sub    0x10(%eax),%ebp
4ef50c:	89 6c 24 08          	mov    %ebp,0x8(%esp)
4ef510:	8b 6c 24 04          	mov    0x4(%esp),%ebp
4ef514:	03 ea                	add    %edx,%ebp
4ef516:	89 6c 24 10          	mov    %ebp,0x10(%esp)
4ef51a:	8b 6c 24 04          	mov    0x4(%esp),%ebp
4ef51e:	2b d5                	sub    %ebp,%edx
4ef520:	89 54 24 14          	mov    %edx,0x14(%esp)
4ef524:	8d 14 0b             	lea    (%ebx,%ecx,1),%edx
4ef527:	2b cb                	sub    %ebx,%ecx
4ef529:	8b 5c 24 10          	mov    0x10(%esp),%ebx
4ef52d:	03 da                	add    %edx,%ebx
4ef52f:	c1 e3 02             	shl    $0x2,%ebx
4ef532:	89 18                	mov    %ebx,(%eax)
4ef534:	8b 5c 24 10          	mov    0x10(%esp),%ebx
4ef538:	2b da                	sub    %edx,%ebx
4ef53a:	c1 e3 02             	shl    $0x2,%ebx
4ef53d:	89 58 10             	mov    %ebx,0x10(%eax)
4ef540:	8b 54 24 14          	mov    0x14(%esp),%edx
4ef544:	03 d1                	add    %ecx,%edx
4ef546:	8b da                	mov    %edx,%ebx
4ef548:	c1 e2 04             	shl    $0x4,%edx
4ef54b:	03 d3                	add    %ebx,%edx
4ef54d:	8d 14 93             	lea    (%ebx,%edx,4),%edx
4ef550:	8d 14 93             	lea    (%ebx,%edx,4),%edx
4ef553:	c1 e2 04             	shl    $0x4,%edx
4ef556:	03 d3                	add    %ebx,%edx
4ef558:	8b 5c 24 14          	mov    0x14(%esp),%ebx
4ef55c:	8b eb                	mov    %ebx,%ebp
4ef55e:	8d 5c 5d 00          	lea    0x0(%ebp,%ebx,2),%ebx
4ef562:	c1 e3 04             	shl    $0x4,%ebx
4ef565:	03 dd                	add    %ebp,%ebx
4ef567:	c1 e3 06             	shl    $0x6,%ebx
4ef56a:	2b dd                	sub    %ebp,%ebx
4ef56c:	03 db                	add    %ebx,%ebx
4ef56e:	03 da                	add    %edx,%ebx
4ef570:	81 c3 00 04 00 00    	add    $0x400,%ebx
4ef576:	c1 fb 0b             	sar    $0xb,%ebx
4ef579:	89 58 08             	mov    %ebx,0x8(%eax)
4ef57c:	8b d9                	mov    %ecx,%ebx
4ef57e:	f7 d9                	neg    %ecx
4ef580:	c1 e1 04             	shl    $0x4,%ecx
4ef583:	03 cb                	add    %ebx,%ecx
4ef585:	8d 0c 8b             	lea    (%ebx,%ecx,4),%ecx
4ef588:	c1 e1 03             	shl    $0x3,%ecx
4ef58b:	2b cb                	sub    %ebx,%ecx
4ef58d:	c1 e1 05             	shl    $0x5,%ecx
4ef590:	2b cb                	sub    %ebx,%ecx
4ef592:	03 d1                	add    %ecx,%edx
4ef594:	81 c2 00 04 00 00    	add    $0x400,%edx