5fa9ec:	84 c0                	test   %al,%al
5fa9ee:	74 0b                	je     0x5fa9fb
5fa9f0:	66 83 79 02 00       	cmpw   $0x0,0x2(%ecx)
5fa9f5:	75 04                	jne    0x5fa9fb
5fa9f7:	b0 01                	mov    $0x1,%al
5fa9f9:	5d                   	pop    %ebp
5fa9fa:	c3                   	ret
5fa9fb:	32 c0                	xor    %al,%al
5fa9fd:	5d                   	pop    %ebp
5fa9fe:	c3                   	ret
5fa9ff:	8b ff                	mov    %edi,%edi
5faa01:	55                   	push   %ebp
5faa02:	8b ec                	mov    %esp,%ebp
5faa04:	8b 55 08             	mov    0x8(%ebp),%edx
5faa07:	8b ca                	mov    %edx,%ecx
5faa09:	56                   	push   %esi
5faa0a:	57                   	push   %edi
5faa0b:	33 ff                	xor    %edi,%edi
5faa0d:	8d 71 02             	lea    0x2(%ecx),%esi
5faa10:	66 8b 01             	mov    (%ecx),%ax
5faa13:	83 c1 02             	add    $0x2,%ecx
5faa16:	66 3b c7             	cmp    %di,%ax
5faa19:	75 f5                	jne    0x5faa10
5faa1b:	2b ce                	sub    %esi,%ecx
5faa1d:	d1 f9                	sar    $1,%ecx
5faa1f:	83 f9 05             	cmp    $0x5,%ecx
5faa22:	0f 82 a4 00 00 00    	jb     0x5faacc
5faa28:	0f b7 02             	movzwl (%edx),%eax
5faa2b:	50                   	push   %eax
5faa2c:	e8 a1 00 00 00       	call   0x5faad2
5faa31:	83 c4 04             	add    $0x4,%esp
5faa34:	84 c0                	test   %al,%al
5faa36:	0f 84 90 00 00 00    	je     0x5faacc
5faa3c:	0f b7 42 02          	movzwl 0x2(%edx),%eax
5faa40:	50                   	push   %eax
5faa41:	e8 8c 00 00 00       	call   0x5faad2
5faa46:	83 c4 04             	add    $0x4,%esp
5faa49:	84 c0                	test   %al,%al
5faa4b:	74 7f                	je     0x5faacc
5faa4d:	0f b7 42 04          	movzwl 0x4(%edx),%eax
5faa51:	50                   	push   %eax
5faa52:	e8 7b 00 00 00       	call   0x5faad2
5faa57:	83 c4 04             	add    $0x4,%esp
5faa5a:	84 c0                	test   %al,%al
5faa5c:	75 6e                	jne    0x5faacc
5faa5e:	8d 4a 06             	lea    0x6(%edx),%ecx
5faa61:	0f b7 01             	movzwl (%ecx),%eax
5faa64:	8b d0                	mov    %eax,%edx
5faa66:	66 85 c0             	test   %ax,%ax
5faa69:	74 21                	je     0x5faa8c
5faa6b:	8b f0                	mov    %eax,%esi
5faa6d:	56                   	push   %esi
5faa6e:	0f b7 d6             	movzwl %si,%edx
5faa71:	e8 5c 00 00 00       	call   0x5faad2
5faa76:	83 c4 04             	add    $0x4,%esp
5faa79:	84 c0                	test   %al,%al
5faa7b:	75 0f                	jne    0x5faa8c
5faa7d:	83 c1 02             	add    $0x2,%ecx
5faa80:	0f b7 01             	movzwl (%ecx),%eax
5faa83:	8b f0                	mov    %eax,%esi
5faa85:	8b d0                	mov    %eax,%edx
5faa87:	66 85 c0             	test   %ax,%ax
5faa8a:	75 e1                	jne    0x5faa6d
5faa8c:	66 85 d2             	test   %dx,%dx
5faa8f:	74 3b                	je     0x5faacc
5faa91:	83 c1 02             	add    $0x2,%ecx
5faa94:	0f b7 01             	movzwl (%ecx),%eax
5faa97:	8b d0                	mov    %eax,%edx
5faa99:	66 85 c0             	test   %ax,%ax
5faa9c:	74 2e                	je     0x5faacc
5faa9e:	52                   	push   %edx
5faa9f:	0f b7 f2             	movzwl %dx,%esi
5faaa2:	e8 2b 00 00 00       	call   0x5faad2
5faaa7:	83 c4 04             	add    $0x4,%esp
5faaaa:	84 c0                	test   %al,%al
5faaac:	75 0f                	jne    0x5faabd
5faaae:	83 c1 02             	add    $0x2,%ecx
5faab1:	0f b7 01             	movzwl (%ecx),%eax
5faab4:	8b d0                	mov    %eax,%edx
5faab6:	8b f0                	mov    %eax,%esi
5faab8:	66 85 c0             	test   %ax,%ax
5faabb:	75 e1                	jne    0x5faa9e
5faabd:	66 85 f6             	test   %si,%si
5faac0:	74 06                	je     0x5faac8
5faac2:	66 39 79 02          	cmp    %di,0x2(%ecx)
5faac6:	75 04                	jne    0x5faacc
5faac8:	b0 01                	mov    $0x1,%al
5faaca:	eb 02                	jmp    0x5faace
5faacc:	32 c0                	xor    %al,%al
5faace:	5f                   	pop    %edi
5faacf:	5e                   	pop    %esi
5faad0:	5d                   	pop    %ebp
5faad1:	c3                   	ret
5faad2:	8b ff                	mov    %edi,%edi
5faad4:	55                   	push   %ebp
5faad5:	8b ec                	mov    %esp,%ebp
5faad7:	66 83 7d 08 5c       	cmpw   $0x5c,0x8(%ebp)
5faadc:	74 0b                	je     0x5faae9
5faade:	66 83 7d 08 2f       	cmpw   $0x2f,0x8(%ebp)
5faae3:	74 04                	je     0x5faae9
5faae5:	32 c0                	xor    %al,%al
5faae7:	5d                   	pop    %ebp
5faae8:	c3                   	ret
5faae9:	b0 01                	mov    $0x1,%al
5faaeb:	5d                   	pop    %ebp
5faaec:	c3                   	ret
5faaed:	8b ff                	mov    %edi,%edi
5faaef:	55                   	push   %ebp
5faaf0:	8b ec                	mov    %esp,%ebp
5faaf2:	81 ec 10 02 00 00    	sub    $0x210,%esp
5faaf8:	a1 d4 89 72 00       	mov    0x7289d4,%eax
5faafd:	33 c5                	xor    %ebp,%eax
5faaff:	89 45 fc             	mov    %eax,-0x4(%ebp)
5fab02:	56                   	push   %esi
5fab03:	8b 75 08             	mov    0x8(%ebp),%esi
5fab06:	68 e8 34 6d 00       	push   $0x6d34e8
5fab0b:	56                   	push   %esi
5fab0c:	e8 4c e6 00 00       	call   0x60915d
5fab11:	59                   	pop    %ecx
5fab12:	59                   	pop    %ecx
5fab13:	85 c0                	test   %eax,%eax
5fab15:	75 04                	jne    0x5fab1b
5fab17:	32 c0                	xor    %al,%al
5fab19:	eb 70                	jmp    0x5fab8b
5fab1b:	53                   	push   %ebx
5fab1c:	8d 85 f0 fd ff ff    	lea    -0x210(%ebp),%eax
5fab22:	33 db                	xor    %ebx,%ebx
5fab24:	50                   	push   %eax
5fab25:	68 04 01 00 00       	push   $0x104
5fab2a:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
5fab30:	89 9d f0 fd ff ff    	mov    %ebx,-0x210(%ebp)
5fab36:	56                   	push   %esi
5fab37:	50                   	push   %eax
5fab38:	e8 d2 fc ff ff       	call   0x5fa80f
5fab3d:	8b d0                	mov    %eax,%edx
5fab3f:	83 c4 10             	add    $0x10,%esp
5fab42:	85 d2                	test   %edx,%edx
5fab44:	74 36                	je     0x5fab7c
5fab46:	8b ca                	mov    %edx,%ecx
5fab48:	57                   	push   %edi
5fab49:	8d 79 02             	lea    0x2(%ecx),%edi
5fab4c:	66 8b 01             	mov    (%ecx),%ax
5fab4f:	83 c1 02             	add    $0x2,%ecx
5fab52:	66 3b c3             	cmp    %bx,%ax
5fab55:	75 f5                	jne    0x5fab4c
5fab57:	2b cf                	sub    %edi,%ecx
5fab59:	d1 f9                	sar    $1,%ecx
5fab5b:	5f                   	pop    %edi
5fab5c:	83 f9 03             	cmp    $0x3,%ecx
5fab5f:	74 0b                	je     0x5fab6c
5fab61:	52                   	push   %edx
5fab62:	e8 98 fe ff ff       	call   0x5fa9ff
5fab67:	59                   	pop    %ecx
5fab68:	84 c0                	test   %al,%al
5fab6a:	74 10                	je     0x5fab7c
5fab6c:	56                   	push   %esi
5fab6d:	ff 15 50 22 68 00    	call   *0x682250
5fab73:	33 db                	xor    %ebx,%ebx
5fab75:	43                   	inc    %ebx
5fab76:	3b c3                	cmp    %ebx,%eax
5fab78:	77 02                	ja     0x5fab7c
5fab7a:	33 db                	xor    %ebx,%ebx
5fab7c:	ff b5 f0 fd ff ff    	push   -0x210(%ebp)
5fab82:	e8 e9 3a ff ff       	call   0x5ee670
5fab87:	59                   	pop    %ecx
5fab88:	8a c3                	mov    %bl,%al
5fab8a:	5b                   	pop    %ebx
5fab8b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5fab8e:	33 cd                	xor    %ebp,%ecx
5fab90:	5e                   	pop    %esi
5fab91:	e8 44 69 fe ff       	call   0x5e14da
5fab96:	c9                   	leave
5fab97:	c3                   	ret
5fab98:	8b ff                	mov    %edi,%edi
5fab9a:	55                   	push   %ebp
5fab9b:	8b ec                	mov    %esp,%ebp
5fab9d:	5d                   	pop    %ebp
5fab9e:	e9 cf f8 ff ff       	jmp    0x5fa472
5faba3:	8b ff                	mov    %edi,%edi
5faba5:	55                   	push   %ebp
5faba6:	8b ec                	mov    %esp,%ebp
5faba8:	56                   	push   %esi
5faba9:	57                   	push   %edi
5fabaa:	8b 7d 0c             	mov    0xc(%ebp),%edi
5fabad:	33 f6                	xor    %esi,%esi
5fabaf:	56                   	push   %esi
5fabb0:	ff 77 08             	push   0x8(%edi)
5fabb3:	ff 77 0c             	push   0xc(%edi)
5fabb6:	ff 75 08             	push   0x8(%ebp)
5fabb9:	ff 15 98 23 68 00    	call   *0x682398
5fabbf:	85 c0                	test   %eax,%eax
5fabc1:	75 16                	jne    0x5fabd9
5fabc3:	ff 15 e0 21 68 00    	call   *0x6821e0
5fabc9:	50                   	push   %eax
5fabca:	e8 f4 23 ff ff       	call   0x5ecfc3
5fabcf:	59                   	pop    %ecx
5fabd0:	e8 24 24 ff ff       	call   0x5ecff9
5fabd5:	8b 30                	mov    (%eax),%esi
5fabd7:	eb 2d                	jmp    0x5fac06
5fabd9:	3b 47 0c             	cmp    0xc(%edi),%eax
5fabdc:	76 25                	jbe    0x5fac03
5fabde:	40                   	inc    %eax
5fabdf:	8b cf                	mov    %edi,%ecx
5fabe1:	50                   	push   %eax
5fabe2:	e8 d8 d8 ff ff       	call   0x5f84bf
5fabe7:	85 c0                	test   %eax,%eax
5fabe9:	74 04                	je     0x5fabef
5fabeb:	8b f0                	mov    %eax,%esi
5fabed:	eb 17                	jmp    0x5fac06
5fabef:	56                   	push   %esi
5fabf0:	ff 77 08             	push   0x8(%edi)
5fabf3:	ff 77 0c             	push   0xc(%edi)
5fabf6:	ff 75 08             	push   0x8(%ebp)
5fabf9:	ff 15 98 23 68 00    	call   *0x682398
5fabff:	85 c0                	test   %eax,%eax
5fac01:	74 c0                	je     0x5fabc3
5fac03:	89 47 10             	mov    %eax,0x10(%edi)
5fac06:	5f                   	pop    %edi
5fac07:	8b c6                	mov    %esi,%eax
5fac09:	5e                   	pop    %esi
5fac0a:	5d                   	pop    %ebp
5fac0b:	c3                   	ret
5fac0c:	8b ff                	mov    %edi,%edi
5fac0e:	55                   	push   %ebp
5fac0f:	8b ec                	mov    %esp,%ebp
5fac11:	56                   	push   %esi
5fac12:	57                   	push   %edi
5fac13:	8b 7d 0c             	mov    0xc(%ebp),%edi
5fac16:	33 f6                	xor    %esi,%esi
5fac18:	56                   	push   %esi
5fac19:	ff 77 08             	push   0x8(%edi)
5fac1c:	ff 77 0c             	push   0xc(%edi)
5fac1f:	ff 75 08             	push   0x8(%ebp)
5fac22:	ff 15 98 23 68 00    	call   *0x682398
5fac28:	85 c0                	test   %eax,%eax
5fac2a:	75 16                	jne    0x5fac42
5fac2c:	ff 15 e0 21 68 00    	call   *0x6821e0
5fac32:	50                   	push   %eax
5fac33:	e8 8b 23 ff ff       	call   0x5ecfc3
5fac38:	59                   	pop    %ecx
5fac39:	e8 bb 23 ff ff       	call   0x5ecff9
5fac3e:	8b 30                	mov    (%eax),%esi
5fac40:	eb 2d                	jmp    0x5fac6f
5fac42:	3b 47 0c             	cmp    0xc(%edi),%eax
5fac45:	76 25                	jbe    0x5fac6c
5fac47:	40                   	inc    %eax
5fac48:	8b cf                	mov    %edi,%ecx
5fac4a:	50                   	push   %eax
5fac4b:	e8 d7 00 00 00       	call   0x5fad27
5fac50:	85 c0                	test   %eax,%eax
5fac52:	74 04                	je     0x5fac58
5fac54:	8b f0                	mov    %eax,%esi
5fac56:	eb 17                	jmp    0x5fac6f
5fac58:	56                   	push   %esi
5fac59:	ff 77 08             	push   0x8(%edi)
5fac5c:	ff 77 0c             	push   0xc(%edi)
5fac5f:	ff 75 08             	push   0x8(%ebp)
5fac62:	ff 15 98 23 68 00    	call   *0x682398
5fac68:	85 c0                	test   %eax,%eax
5fac6a:	74 c0                	je     0x5fac2c
5fac6c:	89 47 10             	mov    %eax,0x10(%edi)
5fac6f:	5f                   	pop    %edi
5fac70:	8b c6                	mov    %esi,%eax
5fac72:	5e                   	pop    %esi
5fac73:	5d                   	pop    %ebp
5fac74:	c3                   	ret
5fac75:	8b ff                	mov    %edi,%edi
5fac77:	55                   	push   %ebp
5fac78:	8b ec                	mov    %esp,%ebp
5fac7a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5fac7d:	83 ec 18             	sub    $0x18,%esp
5fac80:	56                   	push   %esi
5fac81:	85 c9                	test   %ecx,%ecx
5fac83:	74 6c                	je     0x5facf1
5fac85:	33 d2                	xor    %edx,%edx
5fac87:	66 39 11             	cmp    %dx,(%ecx)
5fac8a:	74 65                	je     0x5facf1
5fac8c:	8b 75 08             	mov    0x8(%ebp),%esi
5fac8f:	89 55 f8             	mov    %edx,-0x8(%ebp)
5fac92:	88 55 fc             	mov    %dl,-0x4(%ebp)
5fac95:	85 f6                	test   %esi,%esi
5fac97:	74 23                	je     0x5facbc
5fac99:	8b 45 10             	mov    0x10(%ebp),%eax
5fac9c:	89 45 ec             	mov    %eax,-0x14(%ebp)
5fac9f:	89 45 f4             	mov    %eax,-0xc(%ebp)
5faca2:	8d 45 e8             	lea    -0x18(%ebp),%eax
5faca5:	50                   	push   %eax
5faca6:	51                   	push   %ecx
5faca7:	89 75 e8             	mov    %esi,-0x18(%ebp)
5facaa:	89 75 f0             	mov    %esi,-0x10(%ebp)
5facad:	e8 f1 fe ff ff       	call   0x5faba3
5facb2:	f7 d8                	neg    %eax
5facb4:	1b c0                	sbb    %eax,%eax
5facb6:	f7 d0                	not    %eax
5facb8:	23 c6                	and    %esi,%eax
5facba:	eb 4c                	jmp    0x5fad08
5facbc:	8d 45 e8             	lea    -0x18(%ebp),%eax
5facbf:	89 55 e8             	mov    %edx,-0x18(%ebp)
5facc2:	50                   	push   %eax
5facc3:	51                   	push   %ecx
5facc4:	89 55 ec             	mov    %edx,-0x14(%ebp)
5facc7:	89 55 f0             	mov    %edx,-0x10(%ebp)
5facca:	89 55 f4             	mov    %edx,-0xc(%ebp)
5faccd:	e8 3a ff ff ff       	call   0x5fac0c
5facd2:	59                   	pop    %ecx
5facd3:	59                   	pop    %ecx
5facd4:	8d 4d e8             	lea    -0x18(%ebp),%ecx
5facd7:	e8 a9 00 00 00       	call   0x5fad85
5facdc:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
5face0:	8b f0                	mov    %eax,%esi
5face2:	74 09                	je     0x5faced
5face4:	ff 75 f0             	push   -0x10(%ebp)
5face7:	e8 84 39 ff ff       	call   0x5ee670
5facec:	59                   	pop    %ecx
5faced:	8b c6                	mov    %esi,%eax
5facef:	eb 19                	jmp    0x5fad0a
5facf1:	8b 45 10             	mov    0x10(%ebp),%eax
5facf4:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
5facf9:	3b c1                	cmp    %ecx,%eax
5facfb:	72 02                	jb     0x5facff
5facfd:	8b c1                	mov    %ecx,%eax
5facff:	50                   	push   %eax
5fad00:	ff 75 08             	push   0x8(%ebp)
5fad03:	e8 ca ec 00 00       	call   0x6099d2
5fad08:	59                   	pop    %ecx
5fad09:	59                   	pop    %ecx
5fad0a:	5e                   	pop    %esi
5fad0b:	c9                   	leave
5fad0c:	c3                   	ret
5fad0d:	8b ff                	mov    %edi,%edi
5fad0f:	56                   	push   %esi
5fad10:	8b f1                	mov    %ecx,%esi
5fad12:	80 7e 14 00          	cmpb   $0x0,0x14(%esi)
5fad16:	74 0d                	je     0x5fad25
5fad18:	ff 76 08             	push   0x8(%esi)
5fad1b:	e8 50 39 ff ff       	call   0x5ee670
5fad20:	59                   	pop    %ecx
5fad21:	c6 46 14 00          	movb   $0x0,0x14(%esi)
5fad25:	5e                   	pop    %esi
5fad26:	c3                   	ret
5fad27:	8b ff                	mov    %edi,%edi
5fad29:	55                   	push   %ebp
5fad2a:	8b ec                	mov    %esp,%ebp
5fad2c:	56                   	push   %esi
5fad2d:	57                   	push   %edi
5fad2e:	8b f1                	mov    %ecx,%esi
5fad30:	e8 d8 ff ff ff       	call   0x5fad0d
5fad35:	8b 7d 08             	mov    0x8(%ebp),%edi
5fad38:	56                   	push   %esi
5fad39:	8d 04 3f             	lea    (%edi,%edi,1),%eax