5ef180:	5f                   	pop    %edi
5ef181:	5e                   	pop    %esi
5ef182:	c3                   	ret
5ef183:	8b ff                	mov    %edi,%edi
5ef185:	55                   	push   %ebp
5ef186:	8b ec                	mov    %esp,%ebp
5ef188:	53                   	push   %ebx
5ef189:	56                   	push   %esi
5ef18a:	8b f1                	mov    %ecx,%esi
5ef18c:	57                   	push   %edi
5ef18d:	8d 4e 40             	lea    0x40(%esi),%ecx
5ef190:	8b b9 04 04 00 00    	mov    0x404(%ecx),%edi
5ef196:	85 ff                	test   %edi,%edi
5ef198:	75 02                	jne    0x5ef19c
5ef19a:	8b f9                	mov    %ecx,%edi
5ef19c:	e8 19 fe ff ff       	call   0x5eefba
5ef1a1:	8b 5d 08             	mov    0x8(%ebp),%ebx
5ef1a4:	48                   	dec    %eax
5ef1a5:	03 f8                	add    %eax,%edi
5ef1a7:	89 7e 34             	mov    %edi,0x34(%esi)
5ef1aa:	8b cf                	mov    %edi,%ecx
5ef1ac:	8b 56 28             	mov    0x28(%esi),%edx
5ef1af:	85 d2                	test   %edx,%edx
5ef1b1:	7f 04                	jg     0x5ef1b7
5ef1b3:	85 db                	test   %ebx,%ebx
5ef1b5:	74 30                	je     0x5ef1e7
5ef1b7:	8d 4a ff             	lea    -0x1(%edx),%ecx
5ef1ba:	8b c3                	mov    %ebx,%eax
5ef1bc:	33 d2                	xor    %edx,%edx
5ef1be:	89 4e 28             	mov    %ecx,0x28(%esi)
5ef1c1:	f7 75 0c             	divl   0xc(%ebp)
5ef1c4:	80 c2 30             	add    $0x30,%dl
5ef1c7:	8b d8                	mov    %eax,%ebx
5ef1c9:	80 fa 39             	cmp    $0x39,%dl
5ef1cc:	7e 0c                	jle    0x5ef1da
5ef1ce:	8a 45 10             	mov    0x10(%ebp),%al
5ef1d1:	34 01                	xor    $0x1,%al
5ef1d3:	c0 e0 05             	shl    $0x5,%al
5ef1d6:	04 07                	add    $0x7,%al
5ef1d8:	02 d0                	add    %al,%dl
5ef1da:	8b 46 34             	mov    0x34(%esi),%eax
5ef1dd:	88 10                	mov    %dl,(%eax)
5ef1df:	ff 4e 34             	decl   0x34(%esi)
5ef1e2:	8b 4e 34             	mov    0x34(%esi),%ecx
5ef1e5:	eb c5                	jmp    0x5ef1ac
5ef1e7:	2b f9                	sub    %ecx,%edi
5ef1e9:	89 7e 38             	mov    %edi,0x38(%esi)
5ef1ec:	ff 46 34             	incl   0x34(%esi)
5ef1ef:	5f                   	pop    %edi
5ef1f0:	5e                   	pop    %esi
5ef1f1:	5b                   	pop    %ebx
5ef1f2:	5d                   	pop    %ebp
5ef1f3:	c2 0c 00             	ret    $0xc
5ef1f6:	8b ff                	mov    %edi,%edi
5ef1f8:	55                   	push   %ebp
5ef1f9:	8b ec                	mov    %esp,%ebp
5ef1fb:	53                   	push   %ebx
5ef1fc:	56                   	push   %esi
5ef1fd:	8b f1                	mov    %ecx,%esi
5ef1ff:	57                   	push   %edi
5ef200:	8d 4e 40             	lea    0x40(%esi),%ecx
5ef203:	8b b9 04 04 00 00    	mov    0x404(%ecx),%edi
5ef209:	85 ff                	test   %edi,%edi
5ef20b:	75 02                	jne    0x5ef20f
5ef20d:	8b f9                	mov    %ecx,%edi
5ef20f:	e8 be fd ff ff       	call   0x5eefd2
5ef214:	8b 5d 08             	mov    0x8(%ebp),%ebx
5ef217:	8d 3c 47             	lea    (%edi,%eax,2),%edi
5ef21a:	83 c7 fe             	add    $0xfffffffe,%edi
5ef21d:	89 7e 34             	mov    %edi,0x34(%esi)
5ef220:	8b cf                	mov    %edi,%ecx
5ef222:	8b 56 28             	mov    0x28(%esi),%edx
5ef225:	85 d2                	test   %edx,%edx
5ef227:	7f 04                	jg     0x5ef22d
5ef229:	85 db                	test   %ebx,%ebx
5ef22b:	74 3e                	je     0x5ef26b
5ef22d:	8d 4a ff             	lea    -0x1(%edx),%ecx
5ef230:	8b c3                	mov    %ebx,%eax
5ef232:	33 d2                	xor    %edx,%edx
5ef234:	89 4e 28             	mov    %ecx,0x28(%esi)
5ef237:	f7 75 0c             	divl   0xc(%ebp)
5ef23a:	8b d8                	mov    %eax,%ebx
5ef23c:	8d 42 30             	lea    0x30(%edx),%eax
5ef23f:	0f b7 c8             	movzwl %ax,%ecx
5ef242:	83 f9 39             	cmp    $0x39,%ecx
5ef245:	76 11                	jbe    0x5ef258
5ef247:	8a 45 10             	mov    0x10(%ebp),%al
5ef24a:	34 01                	xor    $0x1,%al
5ef24c:	c0 e0 05             	shl    $0x5,%al
5ef24f:	04 07                	add    $0x7,%al
5ef251:	02 c1                	add    %cl,%al
5ef253:	66 98                	cbtw
5ef255:	0f b7 c8             	movzwl %ax,%ecx
5ef258:	8b 46 34             	mov    0x34(%esi),%eax
5ef25b:	66 0f be c9          	movsbw %cl,%cx
5ef25f:	66 89 08             	mov    %cx,(%eax)
5ef262:	83 46 34 fe          	addl   $0xfffffffe,0x34(%esi)
5ef266:	8b 4e 34             	mov    0x34(%esi),%ecx
5ef269:	eb b7                	jmp    0x5ef222
5ef26b:	2b f9                	sub    %ecx,%edi
5ef26d:	d1 ff                	sar    $1,%edi
5ef26f:	89 7e 38             	mov    %edi,0x38(%esi)
5ef272:	83 46 34 02          	addl   $0x2,0x34(%esi)
5ef276:	5f                   	pop    %edi
5ef277:	5e                   	pop    %esi
5ef278:	5b                   	pop    %ebx
5ef279:	5d                   	pop    %ebp
5ef27a:	c2 0c 00             	ret    $0xc
5ef27d:	8b ff                	mov    %edi,%edi
5ef27f:	55                   	push   %ebp
5ef280:	8b ec                	mov    %esp,%ebp
5ef282:	83 ec 0c             	sub    $0xc,%esp
5ef285:	53                   	push   %ebx
5ef286:	56                   	push   %esi
5ef287:	8b f1                	mov    %ecx,%esi
5ef289:	57                   	push   %edi
5ef28a:	8d 4e 40             	lea    0x40(%esi),%ecx
5ef28d:	8b b9 04 04 00 00    	mov    0x404(%ecx),%edi
5ef293:	85 ff                	test   %edi,%edi
5ef295:	75 02                	jne    0x5ef299
5ef297:	8b f9                	mov    %ecx,%edi
5ef299:	e8 1c fd ff ff       	call   0x5eefba
5ef29e:	8b 5d 0c             	mov    0xc(%ebp),%ebx
5ef2a1:	48                   	dec    %eax
5ef2a2:	03 f8                	add    %eax,%edi
5ef2a4:	89 7d fc             	mov    %edi,-0x4(%ebp)
5ef2a7:	8b cf                	mov    %edi,%ecx
5ef2a9:	89 7e 34             	mov    %edi,0x34(%esi)
5ef2ac:	8b 7d 08             	mov    0x8(%ebp),%edi
5ef2af:	8b 56 28             	mov    0x28(%esi),%edx
5ef2b2:	85 d2                	test   %edx,%edx
5ef2b4:	7f 06                	jg     0x5ef2bc
5ef2b6:	8b c7                	mov    %edi,%eax
5ef2b8:	0b c3                	or     %ebx,%eax
5ef2ba:	74 3d                	je     0x5ef2f9
5ef2bc:	53                   	push   %ebx
5ef2bd:	6a 00                	push   $0x0
5ef2bf:	ff 75 10             	push   0x10(%ebp)
5ef2c2:	8d 42 ff             	lea    -0x1(%edx),%eax
5ef2c5:	53                   	push   %ebx
5ef2c6:	57                   	push   %edi
5ef2c7:	89 46 28             	mov    %eax,0x28(%esi)
5ef2ca:	e8 b1 2b ff ff       	call   0x5e1e80
5ef2cf:	89 5d f8             	mov    %ebx,-0x8(%ebp)
5ef2d2:	5b                   	pop    %ebx
5ef2d3:	90                   	nop
5ef2d4:	80 c1 30             	add    $0x30,%cl
5ef2d7:	8b f8                	mov    %eax,%edi
5ef2d9:	8b da                	mov    %edx,%ebx
5ef2db:	80 f9 39             	cmp    $0x39,%cl
5ef2de:	7e 0c                	jle    0x5ef2ec
5ef2e0:	8a 45 14             	mov    0x14(%ebp),%al
5ef2e3:	34 01                	xor    $0x1,%al
5ef2e5:	c0 e0 05             	shl    $0x5,%al
5ef2e8:	04 07                	add    $0x7,%al
5ef2ea:	02 c8                	add    %al,%cl
5ef2ec:	8b 46 34             	mov    0x34(%esi),%eax
5ef2ef:	88 08                	mov    %cl,(%eax)
5ef2f1:	ff 4e 34             	decl   0x34(%esi)
5ef2f4:	8b 4e 34             	mov    0x34(%esi),%ecx
5ef2f7:	eb b6                	jmp    0x5ef2af
5ef2f9:	8b 7d fc             	mov    -0x4(%ebp),%edi
5ef2fc:	2b f9                	sub    %ecx,%edi
5ef2fe:	89 7e 38             	mov    %edi,0x38(%esi)
5ef301:	ff 46 34             	incl   0x34(%esi)
5ef304:	5f                   	pop    %edi
5ef305:	5e                   	pop    %esi
5ef306:	5b                   	pop    %ebx
5ef307:	c9                   	leave
5ef308:	c2 10 00             	ret    $0x10
5ef30b:	8b ff                	mov    %edi,%edi
5ef30d:	55                   	push   %ebp
5ef30e:	8b ec                	mov    %esp,%ebp
5ef310:	83 ec 0c             	sub    $0xc,%esp
5ef313:	53                   	push   %ebx
5ef314:	56                   	push   %esi
5ef315:	8b f1                	mov    %ecx,%esi
5ef317:	57                   	push   %edi
5ef318:	8d 4e 40             	lea    0x40(%esi),%ecx
5ef31b:	8b b9 04 04 00 00    	mov    0x404(%ecx),%edi
5ef321:	85 ff                	test   %edi,%edi
5ef323:	75 02                	jne    0x5ef327
5ef325:	8b f9                	mov    %ecx,%edi
5ef327:	e8 a6 fc ff ff       	call   0x5eefd2
5ef32c:	8b 5d 0c             	mov    0xc(%ebp),%ebx
5ef32f:	8d 3c 47             	lea    (%edi,%eax,2),%edi
5ef332:	83 c7 fe             	add    $0xfffffffe,%edi
5ef335:	89 7d fc             	mov    %edi,-0x4(%ebp)
5ef338:	8b cf                	mov    %edi,%ecx
5ef33a:	89 7e 34             	mov    %edi,0x34(%esi)
5ef33d:	8b 7d 08             	mov    0x8(%ebp),%edi
5ef340:	8b 56 28             	mov    0x28(%esi),%edx
5ef343:	85 d2                	test   %edx,%edx
5ef345:	7f 06                	jg     0x5ef34d
5ef347:	8b c7                	mov    %edi,%eax
5ef349:	0b c3                	or     %ebx,%eax
5ef34b:	74 4b                	je     0x5ef398
5ef34d:	53                   	push   %ebx
5ef34e:	6a 00                	push   $0x0
5ef350:	ff 75 10             	push   0x10(%ebp)
5ef353:	8d 42 ff             	lea    -0x1(%edx),%eax
5ef356:	53                   	push   %ebx
5ef357:	57                   	push   %edi
5ef358:	89 46 28             	mov    %eax,0x28(%esi)
5ef35b:	e8 20 2b ff ff       	call   0x5e1e80
5ef360:	89 5d f8             	mov    %ebx,-0x8(%ebp)
5ef363:	5b                   	pop    %ebx
5ef364:	90                   	nop
5ef365:	83 c1 30             	add    $0x30,%ecx
5ef368:	8b f8                	mov    %eax,%edi
5ef36a:	0f b7 c9             	movzwl %cx,%ecx
5ef36d:	8b da                	mov    %edx,%ebx
5ef36f:	83 f9 39             	cmp    $0x39,%ecx
5ef372:	76 11                	jbe    0x5ef385
5ef374:	8a 45 14             	mov    0x14(%ebp),%al
5ef377:	34 01                	xor    $0x1,%al
5ef379:	c0 e0 05             	shl    $0x5,%al
5ef37c:	04 07                	add    $0x7,%al
5ef37e:	02 c1                	add    %cl,%al
5ef380:	66 98                	cbtw
5ef382:	0f b7 c8             	movzwl %ax,%ecx
5ef385:	8b 46 34             	mov    0x34(%esi),%eax
5ef388:	66 0f be c9          	movsbw %cl,%cx
5ef38c:	66 89 08             	mov    %cx,(%eax)
5ef38f:	83 46 34 fe          	addl   $0xfffffffe,0x34(%esi)
5ef393:	8b 4e 34             	mov    0x34(%esi),%ecx
5ef396:	eb a8                	jmp    0x5ef340
5ef398:	8b 7d fc             	mov    -0x4(%ebp),%edi
5ef39b:	2b f9                	sub    %ecx,%edi
5ef39d:	d1 ff                	sar    $1,%edi
5ef39f:	89 7e 38             	mov    %edi,0x38(%esi)
5ef3a2:	83 46 34 02          	addl   $0x2,0x34(%esi)
5ef3a6:	5f                   	pop    %edi
5ef3a7:	5e                   	pop    %esi
5ef3a8:	5b                   	pop    %ebx
5ef3a9:	c9                   	leave
5ef3aa:	c2 10 00             	ret    $0x10
5ef3ad:	8b ff                	mov    %edi,%edi
5ef3af:	55                   	push   %ebp
5ef3b0:	8b ec                	mov    %esp,%ebp
5ef3b2:	56                   	push   %esi
5ef3b3:	33 f6                	xor    %esi,%esi
5ef3b5:	39 75 10             	cmp    %esi,0x10(%ebp)
5ef3b8:	7e 2b                	jle    0x5ef3e5
5ef3ba:	57                   	push   %edi
5ef3bb:	8b 7d 14             	mov    0x14(%ebp),%edi
5ef3be:	ff 75 0c             	push   0xc(%ebp)
5ef3c1:	8b 4d 08             	mov    0x8(%ebp),%ecx
5ef3c4:	e8 ca 23 00 00       	call   0x5f1793
5ef3c9:	84 c0                	test   %al,%al
5ef3cb:	74 06                	je     0x5ef3d3
5ef3cd:	ff 07                	incl   (%edi)
5ef3cf:	8b 07                	mov    (%edi),%eax
5ef3d1:	eb 06                	jmp    0x5ef3d9
5ef3d3:	83 0f ff             	orl    $0xffffffff,(%edi)
5ef3d6:	83 c8 ff             	or     $0xffffffff,%eax
5ef3d9:	83 f8 ff             	cmp    $0xffffffff,%eax
5ef3dc:	74 06                	je     0x5ef3e4
5ef3de:	46                   	inc    %esi
5ef3df:	3b 75 10             	cmp    0x10(%ebp),%esi
5ef3e2:	7c da                	jl     0x5ef3be
5ef3e4:	5f                   	pop    %edi
5ef3e5:	5e                   	pop    %esi
5ef3e6:	5d                   	pop    %ebp
5ef3e7:	c3                   	ret
5ef3e8:	8b ff                	mov    %edi,%edi
5ef3ea:	55                   	push   %ebp
5ef3eb:	8b ec                	mov    %esp,%ebp
5ef3ed:	56                   	push   %esi
5ef3ee:	33 f6                	xor    %esi,%esi
5ef3f0:	39 75 10             	cmp    %esi,0x10(%ebp)
5ef3f3:	7e 1c                	jle    0x5ef411
5ef3f5:	57                   	push   %edi
5ef3f6:	8b 7d 14             	mov    0x14(%ebp),%edi
5ef3f9:	8b 4d 08             	mov    0x8(%ebp),%ecx
5ef3fc:	57                   	push   %edi
5ef3fd:	ff 75 0c             	push   0xc(%ebp)
5ef400:	e8 07 23 00 00       	call   0x5f170c
5ef405:	83 3f ff             	cmpl   $0xffffffff,(%edi)
5ef408:	74 06                	je     0x5ef410
5ef40a:	46                   	inc    %esi
5ef40b:	3b 75 10             	cmp    0x10(%ebp),%esi
5ef40e:	7c e9                	jl     0x5ef3f9
5ef410:	5f                   	pop    %edi
5ef411:	5e                   	pop    %esi
5ef412:	5d                   	pop    %ebp
5ef413:	c3                   	ret
5ef414:	8b ff                	mov    %edi,%edi
5ef416:	55                   	push   %ebp
5ef417:	8b ec                	mov    %esp,%ebp
5ef419:	56                   	push   %esi
5ef41a:	33 f6                	xor    %esi,%esi
5ef41c:	39 75 10             	cmp    %esi,0x10(%ebp)
5ef41f:	7e 21                	jle    0x5ef442
5ef421:	53                   	push   %ebx
5ef422:	66 0f be 5d 0c       	movsbw 0xc(%ebp),%bx
5ef427:	57                   	push   %edi
5ef428:	8b 7d 14             	mov    0x14(%ebp),%edi
5ef42b:	8b 4d 08             	mov    0x8(%ebp),%ecx
5ef42e:	57                   	push   %edi
5ef42f:	53                   	push   %ebx
5ef430:	e8 19 23 00 00       	call   0x5f174e
5ef435:	83 3f ff             	cmpl   $0xffffffff,(%edi)
5ef438:	74 06                	je     0x5ef440
5ef43a:	46                   	inc    %esi
5ef43b:	3b 75 10             	cmp    0x10(%ebp),%esi
5ef43e:	7c eb                	jl     0x5ef42b
5ef440:	5f                   	pop    %edi
5ef441:	5b                   	pop    %ebx
5ef442:	5e                   	pop    %esi
5ef443:	5d                   	pop    %ebp
5ef444:	c3                   	ret
5ef445:	8b ff                	mov    %edi,%edi
5ef447:	55                   	push   %ebp
5ef448:	8b ec                	mov    %esp,%ebp
5ef44a:	51                   	push   %ecx
5ef44b:	33 c0                	xor    %eax,%eax
5ef44d:	89 4d fc             	mov    %ecx,-0x4(%ebp)
5ef450:	89 01                	mov    %eax,(%ecx)
5ef452:	89 41 04             	mov    %eax,0x4(%ecx)
5ef455:	89 41 08             	mov    %eax,0x8(%ecx)
5ef458:	89 41 0c             	mov    %eax,0xc(%ecx)
5ef45b:	89 41 10             	mov    %eax,0x10(%ecx)
5ef45e:	89 41 14             	mov    %eax,0x14(%ecx)
5ef461:	89 41 18             	mov    %eax,0x18(%ecx)
5ef464:	89 41 1c             	mov    %eax,0x1c(%ecx)
5ef467:	89 41 20             	mov    %eax,0x20(%ecx)
5ef46a:	89 41 24             	mov    %eax,0x24(%ecx)
5ef46d:	89 41 28             	mov    %eax,0x28(%ecx)
5ef470:	66 89 41 30          	mov    %ax,0x30(%ecx)
5ef474:	89 41 38             	mov    %eax,0x38(%ecx)
5ef477:	88 41 3c             	mov    %al,0x3c(%ecx)
5ef47a:	89 81 40 04 00 00    	mov    %eax,0x440(%ecx)
5ef480:	89 81 44 04 00 00    	mov    %eax,0x444(%ecx)
5ef486:	8b c1                	mov    %ecx,%eax
5ef488:	c9                   	leave
5ef489:	c3                   	ret
5ef48a:	8b ff                	mov    %edi,%edi
5ef48c:	55                   	push   %ebp
5ef48d:	8b ec                	mov    %esp,%ebp
5ef48f:	51                   	push   %ecx
5ef490:	33 d2                	xor    %edx,%edx
5ef492:	89 4d fc             	mov    %ecx,-0x4(%ebp)
5ef495:	89 11                	mov    %edx,(%ecx)
5ef497:	33 c0                	xor    %eax,%eax
5ef499:	89 51 04             	mov    %edx,0x4(%ecx)
5ef49c:	89 51 08             	mov    %edx,0x8(%ecx)
5ef49f:	89 51 0c             	mov    %edx,0xc(%ecx)
5ef4a2:	66 89 41 32          	mov    %ax,0x32(%ecx)
5ef4a6:	8b c1                	mov    %ecx,%eax