5eefc9:	8b 81 00 04 00 00    	mov    0x400(%ecx),%eax
5eefcf:	d1 e8                	shr    $1,%eax
5eefd1:	c3                   	ret
5eefd2:	83 b9 04 04 00 00 00 	cmpl   $0x0,0x404(%ecx)
5eefd9:	75 06                	jne    0x5eefe1
5eefdb:	b8 00 01 00 00       	mov    $0x100,%eax
5eefe0:	c3                   	ret
5eefe1:	8b 81 00 04 00 00    	mov    0x400(%ecx),%eax
5eefe7:	c1 e8 02             	shr    $0x2,%eax
5eefea:	c3                   	ret
5eefeb:	8b ff                	mov    %edi,%edi
5eefed:	55                   	push   %ebp
5eefee:	8b ec                	mov    %esp,%ebp
5eeff0:	51                   	push   %ecx
5eeff1:	56                   	push   %esi
5eeff2:	8b 75 08             	mov    0x8(%ebp),%esi
5eeff5:	57                   	push   %edi
5eeff6:	8b f9                	mov    %ecx,%edi
5eeff8:	81 fe ff ff ff 7f    	cmp    $0x7fffffff,%esi
5eeffe:	76 0f                	jbe    0x5ef00f
5ef000:	e8 f4 df ff ff       	call   0x5ecff9
5ef005:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
5ef00b:	32 c0                	xor    %al,%al
5ef00d:	eb 53                	jmp    0x5ef062
5ef00f:	53                   	push   %ebx
5ef010:	33 db                	xor    %ebx,%ebx
5ef012:	03 f6                	add    %esi,%esi
5ef014:	39 9f 04 04 00 00    	cmp    %ebx,0x404(%edi)
5ef01a:	75 08                	jne    0x5ef024
5ef01c:	81 fe 00 04 00 00    	cmp    $0x400,%esi
5ef022:	76 08                	jbe    0x5ef02c
5ef024:	3b b7 00 04 00 00    	cmp    0x400(%edi),%esi
5ef02a:	77 04                	ja     0x5ef030
5ef02c:	b0 01                	mov    $0x1,%al
5ef02e:	eb 31                	jmp    0x5ef061
5ef030:	56                   	push   %esi
5ef031:	e8 bf 6d 01 00       	call   0x605df5
5ef036:	89 45 fc             	mov    %eax,-0x4(%ebp)
5ef039:	59                   	pop    %ecx
5ef03a:	85 c0                	test   %eax,%eax
5ef03c:	74 1a                	je     0x5ef058
5ef03e:	8d 45 fc             	lea    -0x4(%ebp),%eax
5ef041:	50                   	push   %eax
5ef042:	8d 8f 04 04 00 00    	lea    0x404(%edi),%ecx
5ef048:	e8 19 05 00 00       	call   0x5ef566
5ef04d:	8b 45 fc             	mov    -0x4(%ebp),%eax
5ef050:	b3 01                	mov    $0x1,%bl
5ef052:	89 b7 00 04 00 00    	mov    %esi,0x400(%edi)
5ef058:	50                   	push   %eax
5ef059:	e8 ca 57 01 00       	call   0x604828
5ef05e:	59                   	pop    %ecx
5ef05f:	8a c3                	mov    %bl,%al
5ef061:	5b                   	pop    %ebx
5ef062:	5f                   	pop    %edi
5ef063:	5e                   	pop    %esi
5ef064:	c9                   	leave
5ef065:	c2 04 00             	ret    $0x4
5ef068:	8b ff                	mov    %edi,%edi
5ef06a:	55                   	push   %ebp
5ef06b:	8b ec                	mov    %esp,%ebp
5ef06d:	51                   	push   %ecx
5ef06e:	56                   	push   %esi
5ef06f:	8b 75 08             	mov    0x8(%ebp),%esi
5ef072:	57                   	push   %edi
5ef073:	8b f9                	mov    %ecx,%edi
5ef075:	81 fe ff ff ff 3f    	cmp    $0x3fffffff,%esi
5ef07b:	76 0f                	jbe    0x5ef08c
5ef07d:	e8 77 df ff ff       	call   0x5ecff9
5ef082:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
5ef088:	32 c0                	xor    %al,%al
5ef08a:	eb 54                	jmp    0x5ef0e0
5ef08c:	53                   	push   %ebx
5ef08d:	33 db                	xor    %ebx,%ebx
5ef08f:	c1 e6 02             	shl    $0x2,%esi
5ef092:	39 9f 04 04 00 00    	cmp    %ebx,0x404(%edi)
5ef098:	75 08                	jne    0x5ef0a2
5ef09a:	81 fe 00 04 00 00    	cmp    $0x400,%esi
5ef0a0:	76 08                	jbe    0x5ef0aa
5ef0a2:	3b b7 00 04 00 00    	cmp    0x400(%edi),%esi
5ef0a8:	77 04                	ja     0x5ef0ae
5ef0aa:	b0 01                	mov    $0x1,%al
5ef0ac:	eb 31                	jmp    0x5ef0df
5ef0ae:	56                   	push   %esi
5ef0af:	e8 41 6d 01 00       	call   0x605df5
5ef0b4:	89 45 fc             	mov    %eax,-0x4(%ebp)
5ef0b7:	59                   	pop    %ecx
5ef0b8:	85 c0                	test   %eax,%eax
5ef0ba:	74 1a                	je     0x5ef0d6
5ef0bc:	8d 45 fc             	lea    -0x4(%ebp),%eax
5ef0bf:	50                   	push   %eax
5ef0c0:	8d 8f 04 04 00 00    	lea    0x404(%edi),%ecx
5ef0c6:	e8 9b 04 00 00       	call   0x5ef566
5ef0cb:	8b 45 fc             	mov    -0x4(%ebp),%eax
5ef0ce:	b3 01                	mov    $0x1,%bl
5ef0d0:	89 b7 00 04 00 00    	mov    %esi,0x400(%edi)
5ef0d6:	50                   	push   %eax
5ef0d7:	e8 4c 57 01 00       	call   0x604828
5ef0dc:	59                   	pop    %ecx
5ef0dd:	8a c3                	mov    %bl,%al
5ef0df:	5b                   	pop    %ebx
5ef0e0:	5f                   	pop    %edi
5ef0e1:	5e                   	pop    %esi
5ef0e2:	c9                   	leave
5ef0e3:	c2 04 00             	ret    $0x4
5ef0e6:	8b ff                	mov    %edi,%edi
5ef0e8:	55                   	push   %ebp
5ef0e9:	8b ec                	mov    %esp,%ebp
5ef0eb:	8b 45 14             	mov    0x14(%ebp),%eax
5ef0ee:	48                   	dec    %eax
5ef0ef:	83 e8 01             	sub    $0x1,%eax
5ef0f2:	74 1f                	je     0x5ef113
5ef0f4:	83 e8 01             	sub    $0x1,%eax
5ef0f7:	74 16                	je     0x5ef10f
5ef0f9:	83 e8 09             	sub    $0x9,%eax
5ef0fc:	74 11                	je     0x5ef10f
5ef0fe:	83 7d 14 0d          	cmpl   $0xd,0x14(%ebp)
5ef102:	74 0f                	je     0x5ef113
5ef104:	8a 45 10             	mov    0x10(%ebp),%al
5ef107:	3c 63                	cmp    $0x63,%al
5ef109:	74 08                	je     0x5ef113
5ef10b:	3c 73                	cmp    $0x73,%al
5ef10d:	74 04                	je     0x5ef113
5ef10f:	b0 01                	mov    $0x1,%al
5ef111:	5d                   	pop    %ebp
5ef112:	c3                   	ret
5ef113:	32 c0                	xor    %al,%al
5ef115:	5d                   	pop    %ebp
5ef116:	c3                   	ret
5ef117:	8b ff                	mov    %edi,%edi
5ef119:	55                   	push   %ebp
5ef11a:	8b ec                	mov    %esp,%ebp
5ef11c:	8b 45 14             	mov    0x14(%ebp),%eax
5ef11f:	48                   	dec    %eax
5ef120:	83 e8 01             	sub    $0x1,%eax
5ef123:	74 3c                	je     0x5ef161
5ef125:	83 e8 01             	sub    $0x1,%eax
5ef128:	74 33                	je     0x5ef15d
5ef12a:	83 e8 09             	sub    $0x9,%eax
5ef12d:	74 2e                	je     0x5ef15d
5ef12f:	83 7d 14 0d          	cmpl   $0xd,0x14(%ebp)
5ef133:	74 28                	je     0x5ef15d
5ef135:	8b 45 08             	mov    0x8(%ebp),%eax
5ef138:	83 e0 04             	and    $0x4,%eax
5ef13b:	83 c8 00             	or     $0x0,%eax
5ef13e:	6a 01                	push   $0x1
5ef140:	58                   	pop    %eax
5ef141:	74 04                	je     0x5ef147
5ef143:	8a c8                	mov    %al,%cl
5ef145:	eb 02                	jmp    0x5ef149
5ef147:	32 c9                	xor    %cl,%cl
5ef149:	66 83 7d 10 63       	cmpw   $0x63,0x10(%ebp)
5ef14e:	74 07                	je     0x5ef157
5ef150:	66 83 7d 10 73       	cmpw   $0x73,0x10(%ebp)
5ef155:	75 02                	jne    0x5ef159
5ef157:	32 c0                	xor    %al,%al
5ef159:	32 c1                	xor    %cl,%al
5ef15b:	5d                   	pop    %ebp
5ef15c:	c3                   	ret
5ef15d:	b0 01                	mov    $0x1,%al
5ef15f:	5d                   	pop    %ebp
5ef160:	c3                   	ret
5ef161:	32 c0                	xor    %al,%al
5ef163:	5d                   	pop    %ebp
5ef164:	c3                   	ret
5ef165:	8b ff                	mov    %edi,%edi
5ef167:	56                   	push   %esi
5ef168:	8b f1                	mov    %ecx,%esi
5ef16a:	57                   	push   %edi
5ef16b:	8b be 04 04 00 00    	mov    0x404(%esi),%edi
5ef171:	e8 44 fe ff ff       	call   0x5eefba
5ef176:	85 ff                	test   %edi,%edi
5ef178:	75 04                	jne    0x5ef17e
5ef17a:	03 c6                	add    %esi,%eax
5ef17c:	eb 02                	jmp    0x5ef180
5ef17e:	03 c7                	add    %edi,%eax
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