5fca67:	8b c8                	mov    %eax,%ecx
5fca69:	83 e1 1f             	and    $0x1f,%ecx
5fca6c:	33 02                	xor    (%edx),%eax
5fca6e:	d3 c8                	ror    %cl,%eax
5fca70:	89 45 e0             	mov    %eax,-0x20(%ebp)
5fca73:	89 45 dc             	mov    %eax,-0x24(%ebp)
5fca76:	83 fe 02             	cmp    $0x2,%esi
5fca79:	74 0c                	je     0x5fca87
5fca7b:	56                   	push   %esi
5fca7c:	e8 0b f8 ff ff       	call   0x5fc28c
5fca81:	59                   	pop    %ecx
5fca82:	8b 4d d8             	mov    -0x28(%ebp),%ecx
5fca85:	89 01                	mov    %eax,(%ecx)
5fca87:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
5fca8e:	8b 75 e0             	mov    -0x20(%ebp),%esi
5fca91:	e8 15 00 00 00       	call   0x5fcaab
5fca96:	84 db                	test   %bl,%bl
5fca98:	0f 85 d0 fe ff ff    	jne    0x5fc96e
5fca9e:	8b c6                	mov    %esi,%eax
5fcaa0:	eb 1b                	jmp    0x5fcabd
5fcaa2:	8b 7d 08             	mov    0x8(%ebp),%edi
5fcaa5:	8a 5d e7             	mov    -0x19(%ebp),%bl
5fcaa8:	8b 75 dc             	mov    -0x24(%ebp),%esi
5fcaab:	6a 03                	push   $0x3
5fcaad:	e8 1f 3c 00 00       	call   0x6006d1
5fcab2:	59                   	pop    %ecx
5fcab3:	c3                   	ret
5fcab4:	ff 75 08             	push   0x8(%ebp)
5fcab7:	e8 d8 fb ff ff       	call   0x5fc694
5fcabc:	59                   	pop    %ecx
5fcabd:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5fcac0:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
5fcac7:	59                   	pop    %ecx
5fcac8:	5f                   	pop    %edi
5fcac9:	5e                   	pop    %esi
5fcaca:	5b                   	pop    %ebx
5fcacb:	c9                   	leave
5fcacc:	c3                   	ret
5fcacd:	cc                   	int3
5fcace:	cc                   	int3
5fcacf:	cc                   	int3
5fcad0:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
5fcad4:	57                   	push   %edi
5fcad5:	85 c9                	test   %ecx,%ecx
5fcad7:	0f 84 92 00 00 00    	je     0x5fcb6f
5fcadd:	56                   	push   %esi
5fcade:	53                   	push   %ebx
5fcadf:	8b d9                	mov    %ecx,%ebx
5fcae1:	8b 74 24 14          	mov    0x14(%esp),%esi
5fcae5:	f7 c6 03 00 00 00    	test   $0x3,%esi
5fcaeb:	8b 7c 24 10          	mov    0x10(%esp),%edi
5fcaef:	75 0b                	jne    0x5fcafc
5fcaf1:	c1 e9 02             	shr    $0x2,%ecx
5fcaf4:	0f 85 85 00 00 00    	jne    0x5fcb7f
5fcafa:	eb 27                	jmp    0x5fcb23
5fcafc:	8a 06                	mov    (%esi),%al
5fcafe:	83 c6 01             	add    $0x1,%esi
5fcb01:	88 07                	mov    %al,(%edi)
5fcb03:	83 c7 01             	add    $0x1,%edi
5fcb06:	83 e9 01             	sub    $0x1,%ecx
5fcb09:	74 2b                	je     0x5fcb36
5fcb0b:	84 c0                	test   %al,%al
5fcb0d:	74 2f                	je     0x5fcb3e
5fcb0f:	f7 c6 03 00 00 00    	test   $0x3,%esi
5fcb15:	75 e5                	jne    0x5fcafc
5fcb17:	8b d9                	mov    %ecx,%ebx
5fcb19:	c1 e9 02             	shr    $0x2,%ecx
5fcb1c:	75 61                	jne    0x5fcb7f
5fcb1e:	83 e3 03             	and    $0x3,%ebx
5fcb21:	74 13                	je     0x5fcb36
5fcb23:	8a 06                	mov    (%esi),%al
5fcb25:	83 c6 01             	add    $0x1,%esi
5fcb28:	88 07                	mov    %al,(%edi)
5fcb2a:	83 c7 01             	add    $0x1,%edi
5fcb2d:	84 c0                	test   %al,%al
5fcb2f:	74 37                	je     0x5fcb68
5fcb31:	83 eb 01             	sub    $0x1,%ebx
5fcb34:	75 ed                	jne    0x5fcb23
5fcb36:	8b 44 24 10          	mov    0x10(%esp),%eax
5fcb3a:	5b                   	pop    %ebx
5fcb3b:	5e                   	pop    %esi
5fcb3c:	5f                   	pop    %edi
5fcb3d:	c3                   	ret
5fcb3e:	f7 c7 03 00 00 00    	test   $0x3,%edi
5fcb44:	74 16                	je     0x5fcb5c
5fcb46:	88 07                	mov    %al,(%edi)
5fcb48:	83 c7 01             	add    $0x1,%edi
5fcb4b:	83 e9 01             	sub    $0x1,%ecx
5fcb4e:	0f 84 98 00 00 00    	je     0x5fcbec
5fcb54:	f7 c7 03 00 00 00    	test   $0x3,%edi
5fcb5a:	75 ea                	jne    0x5fcb46
5fcb5c:	8b d9                	mov    %ecx,%ebx
5fcb5e:	c1 e9 02             	shr    $0x2,%ecx
5fcb61:	75 74                	jne    0x5fcbd7
5fcb63:	88 07                	mov    %al,(%edi)
5fcb65:	83 c7 01             	add    $0x1,%edi
5fcb68:	83 eb 01             	sub    $0x1,%ebx
5fcb6b:	75 f6                	jne    0x5fcb63
5fcb6d:	5b                   	pop    %ebx
5fcb6e:	5e                   	pop    %esi
5fcb6f:	8b 44 24 08          	mov    0x8(%esp),%eax
5fcb73:	5f                   	pop    %edi
5fcb74:	c3                   	ret
5fcb75:	89 17                	mov    %edx,(%edi)
5fcb77:	83 c7 04             	add    $0x4,%edi
5fcb7a:	83 e9 01             	sub    $0x1,%ecx
5fcb7d:	74 9f                	je     0x5fcb1e
5fcb7f:	ba ff fe fe 7e       	mov    $0x7efefeff,%edx
5fcb84:	8b 06                	mov    (%esi),%eax
5fcb86:	03 d0                	add    %eax,%edx
5fcb88:	83 f0 ff             	xor    $0xffffffff,%eax
5fcb8b:	33 c2                	xor    %edx,%eax
5fcb8d:	8b 16                	mov    (%esi),%edx
5fcb8f:	83 c6 04             	add    $0x4,%esi
5fcb92:	a9 00 01 01 81       	test   $0x81010100,%eax
5fcb97:	74 dc                	je     0x5fcb75
5fcb99:	84 d2                	test   %dl,%dl
5fcb9b:	74 2c                	je     0x5fcbc9
5fcb9d:	84 f6                	test   %dh,%dh
5fcb9f:	74 1e                	je     0x5fcbbf
5fcba1:	f7 c2 00 00 ff 00    	test   $0xff0000,%edx
5fcba7:	74 0c                	je     0x5fcbb5
5fcba9:	f7 c2 00 00 00 ff    	test   $0xff000000,%edx
5fcbaf:	75 c4                	jne    0x5fcb75
5fcbb1:	89 17                	mov    %edx,(%edi)
5fcbb3:	eb 18                	jmp    0x5fcbcd
5fcbb5:	81 e2 ff ff 00 00    	and    $0xffff,%edx
5fcbbb:	89 17                	mov    %edx,(%edi)
5fcbbd:	eb 0e                	jmp    0x5fcbcd
5fcbbf:	81 e2 ff 00 00 00    	and    $0xff,%edx
5fcbc5:	89 17                	mov    %edx,(%edi)
5fcbc7:	eb 04                	jmp    0x5fcbcd
5fcbc9:	33 d2                	xor    %edx,%edx
5fcbcb:	89 17                	mov    %edx,(%edi)
5fcbcd:	83 c7 04             	add    $0x4,%edi
5fcbd0:	33 c0                	xor    %eax,%eax
5fcbd2:	83 e9 01             	sub    $0x1,%ecx
5fcbd5:	74 0c                	je     0x5fcbe3
5fcbd7:	33 c0                	xor    %eax,%eax
5fcbd9:	89 07                	mov    %eax,(%edi)
5fcbdb:	83 c7 04             	add    $0x4,%edi
5fcbde:	83 e9 01             	sub    $0x1,%ecx
5fcbe1:	75 f6                	jne    0x5fcbd9
5fcbe3:	83 e3 03             	and    $0x3,%ebx
5fcbe6:	0f 85 77 ff ff ff    	jne    0x5fcb63
5fcbec:	8b 44 24 10          	mov    0x10(%esp),%eax
5fcbf0:	5b                   	pop    %ebx
5fcbf1:	5e                   	pop    %esi
5fcbf2:	5f                   	pop    %edi
5fcbf3:	c3                   	ret
5fcbf4:	8b ff                	mov    %edi,%edi
5fcbf6:	55                   	push   %ebp
5fcbf7:	8b ec                	mov    %esp,%ebp
5fcbf9:	56                   	push   %esi
5fcbfa:	8b 75 08             	mov    0x8(%ebp),%esi
5fcbfd:	57                   	push   %edi
5fcbfe:	ff 75 10             	push   0x10(%ebp)
5fcc01:	8b 7d 0c             	mov    0xc(%ebp),%edi
5fcc04:	57                   	push   %edi
5fcc05:	56                   	push   %esi
5fcc06:	e8 32 00 00 00       	call   0x5fcc3d
5fcc0b:	83 c4 0c             	add    $0xc,%esp
5fcc0e:	85 c0                	test   %eax,%eax
5fcc10:	75 22                	jne    0x5fcc34
5fcc12:	4e                   	dec    %esi
5fcc13:	56                   	push   %esi
5fcc14:	e8 79 ad ff ff       	call   0x5f7992
5fcc19:	2b 7d 10             	sub    0x10(%ebp),%edi
5fcc1c:	0f b6 c0             	movzbl %al,%eax
5fcc1f:	83 c7 07             	add    $0x7,%edi
5fcc22:	05 6d 01 00 00       	add    $0x16d,%eax
5fcc27:	50                   	push   %eax
5fcc28:	57                   	push   %edi
5fcc29:	56                   	push   %esi
5fcc2a:	e8 0e 00 00 00       	call   0x5fcc3d
5fcc2f:	83 c4 10             	add    $0x10,%esp
5fcc32:	eb 05                	jmp    0x5fcc39
5fcc34:	7f 03                	jg     0x5fcc39
5fcc36:	33 c0                	xor    %eax,%eax
5fcc38:	40                   	inc    %eax
5fcc39:	5f                   	pop    %edi
5fcc3a:	5e                   	pop    %esi
5fcc3b:	5d                   	pop    %ebp
5fcc3c:	c3                   	ret
5fcc3d:	8b ff                	mov    %edi,%edi
5fcc3f:	55                   	push   %ebp
5fcc40:	8b ec                	mov    %esp,%ebp
5fcc42:	53                   	push   %ebx
5fcc43:	56                   	push   %esi
5fcc44:	8b 75 0c             	mov    0xc(%ebp),%esi
5fcc47:	57                   	push   %edi
5fcc48:	6a 07                	push   $0x7
5fcc4a:	59                   	pop    %ecx
5fcc4b:	8d 46 06             	lea    0x6(%esi),%eax
5fcc4e:	99                   	cltd
5fcc4f:	f7 f9                	idiv   %ecx
5fcc51:	8b 45 10             	mov    0x10(%ebp),%eax
5fcc54:	2b c2                	sub    %edx,%eax
5fcc56:	03 c1                	add    %ecx,%eax
5fcc58:	99                   	cltd
5fcc59:	f7 f9                	idiv   %ecx
5fcc5b:	ff 75 08             	push   0x8(%ebp)
5fcc5e:	8b d8                	mov    %eax,%ebx
5fcc60:	e8 2d ad ff ff       	call   0x5f7992
5fcc65:	2b 75 10             	sub    0x10(%ebp),%esi
5fcc68:	59                   	pop    %ecx
5fcc69:	0f b6 c8             	movzbl %al,%ecx
5fcc6c:	6a 07                	push   $0x7
5fcc6e:	8d 86 73 01 00 00    	lea    0x173(%esi),%eax
5fcc74:	8b 7d 10             	mov    0x10(%ebp),%edi
5fcc77:	99                   	cltd
5fcc78:	2b f9                	sub    %ecx,%edi
5fcc7a:	5e                   	pop    %esi
5fcc7b:	f7 fe                	idiv   %esi
5fcc7d:	8d 81 6d 01 00 00    	lea    0x16d(%ecx),%eax
5fcc83:	8b f2                	mov    %edx,%esi
5fcc85:	03 c6                	add    %esi,%eax
5fcc87:	6a 07                	push   $0x7
5fcc89:	99                   	cltd
5fcc8a:	59                   	pop    %ecx
5fcc8b:	f7 f9                	idiv   %ecx
5fcc8d:	81 ff 6c 01 00 00    	cmp    $0x16c,%edi
5fcc93:	7c 05                	jl     0x5fcc9a
5fcc95:	83 fa 02             	cmp    $0x2,%edx
5fcc98:	74 1a                	je     0x5fccb4
5fcc9a:	81 ff 6b 01 00 00    	cmp    $0x16b,%edi
5fcca0:	7c 05                	jl     0x5fcca7
5fcca2:	83 fa 03             	cmp    $0x3,%edx
5fcca5:	74 0d                	je     0x5fccb4
5fcca7:	81 ff 6a 01 00 00    	cmp    $0x16a,%edi
5fccad:	7c 0a                	jl     0x5fccb9
5fccaf:	83 fa 04             	cmp    $0x4,%edx
5fccb2:	75 05                	jne    0x5fccb9
5fccb4:	83 c8 ff             	or     $0xffffffff,%eax
5fccb7:	eb 14                	jmp    0x5fcccd
5fccb9:	83 fe 02             	cmp    $0x2,%esi
5fccbc:	74 0c                	je     0x5fccca
5fccbe:	83 fe 03             	cmp    $0x3,%esi
5fccc1:	74 07                	je     0x5fccca
5fccc3:	8b c3                	mov    %ebx,%eax
5fccc5:	83 fe 04             	cmp    $0x4,%esi
5fccc8:	75 03                	jne    0x5fcccd
5fccca:	8d 43 01             	lea    0x1(%ebx),%eax
5fcccd:	5f                   	pop    %edi
5fccce:	5e                   	pop    %esi
5fcccf:	5b                   	pop    %ebx
5fccd0:	5d                   	pop    %ebp
5fccd1:	c3                   	ret
5fccd2:	8b ff                	mov    %edi,%edi
5fccd4:	55                   	push   %ebp
5fccd5:	8b ec                	mov    %esp,%ebp
5fccd7:	56                   	push   %esi
5fccd8:	ff 75 10             	push   0x10(%ebp)
5fccdb:	8b 75 08             	mov    0x8(%ebp),%esi
5fccde:	ff 75 0c             	push   0xc(%ebp)
5fcce1:	56                   	push   %esi
5fcce2:	e8 56 ff ff ff       	call   0x5fcc3d
5fcce7:	83 c4 0c             	add    $0xc,%esp
5fccea:	85 c0                	test   %eax,%eax
5fccec:	75 05                	jne    0x5fccf3
5fccee:	8d 46 ff             	lea    -0x1(%esi),%eax
5fccf1:	eb 07                	jmp    0x5fccfa
5fccf3:	8b c6                	mov    %esi,%eax
5fccf5:	7f 03                	jg     0x5fccfa
5fccf7:	8d 46 01             	lea    0x1(%esi),%eax
5fccfa:	5e                   	pop    %esi
5fccfb:	5d                   	pop    %ebp
5fccfc:	c3                   	ret
5fccfd:	8b ff                	mov    %edi,%edi
5fccff:	55                   	push   %ebp
5fcd00:	8b ec                	mov    %esp,%ebp
5fcd02:	51                   	push   %ecx
5fcd03:	51                   	push   %ecx
5fcd04:	8b 55 0c             	mov    0xc(%ebp),%edx
5fcd07:	53                   	push   %ebx
5fcd08:	0f b7 c2             	movzwl %dx,%eax
5fcd0b:	56                   	push   %esi
5fcd0c:	57                   	push   %edi
5fcd0d:	83 f8 5a             	cmp    $0x5a,%eax
5fcd10:	0f 86 63 05 00 00    	jbe    0x5fd279
5fcd16:	83 f8 6e             	cmp    $0x6e,%eax
5fcd19:	0f 87 f2 02 00 00    	ja     0x5fd011
5fcd1f:	0f 84 df 02 00 00    	je     0x5fd004
5fcd25:	83 f8 65             	cmp    $0x65,%eax
5fcd28:	0f 86 c0 00 00 00    	jbe    0x5fcdee
5fcd2e:	83 e8 67             	sub    $0x67,%eax
5fcd31:	74 7d                	je     0x5fcdb0
5fcd33:	83 e8 01             	sub    $0x1,%eax
5fcd36:	75 07                	jne    0x5fcd3f
5fcd38:	6a 62                	push   $0x62
5fcd3a:	5a                   	pop    %edx
5fcd3b:	52                   	push   %edx
5fcd3c:	58                   	pop    %eax
5fcd3d:	eb d7                	jmp    0x5fcd16
5fcd3f:	48                   	dec    %eax
5fcd40:	83 e8 01             	sub    $0x1,%eax
5fcd43:	74 40                	je     0x5fcd85
5fcd45:	83 e8 03             	sub    $0x3,%eax
5fcd48:	0f 85 71 02 00 00    	jne    0x5fcfbf
5fcd4e:	8b 45 10             	mov    0x10(%ebp),%eax
5fcd51:	8b 48 10             	mov    0x10(%eax),%ecx
5fcd54:	83 f9 0b             	cmp    $0xb,%ecx
5fcd57:	0f 87 52 02 00 00    	ja     0x5fcfaf
5fcd5d:	80 7d 20 00          	cmpb   $0x0,0x20(%ebp)
5fcd61:	0f 95 c0             	setne  %al
5fcd64:	fe c8                	dec    %al
5fcd66:	24 30                	and    $0x30,%al
5fcd68:	0f b6 c0             	movzbl %al,%eax
5fcd6b:	50                   	push   %eax
5fcd6c:	ff 75 18             	push   0x18(%ebp)
5fcd6f:	ff 75 14             	push   0x14(%ebp)
5fcd72:	6a 02                	push   $0x2
5fcd74:	8d 41 01             	lea    0x1(%ecx),%eax
5fcd77:	50                   	push   %eax
5fcd78:	e8 98 09 00 00       	call   0x5fd715
5fcd7d:	83 c4 14             	add    $0x14,%esp
5fcd80:	e9 5c 09 00 00       	jmp    0x5fd6e1
5fcd85:	8b 45 10             	mov    0x10(%ebp),%eax
5fcd88:	8b 48 1c             	mov    0x1c(%eax),%ecx
5fcd8b:	81 f9 6d 01 00 00    	cmp    $0x16d,%ecx
5fcd91:	0f 87 18 02 00 00    	ja     0x5fcfaf
5fcd97:	80 7d 20 00          	cmpb   $0x0,0x20(%ebp)
5fcd9b:	0f 95 c0             	setne  %al
5fcd9e:	fe c8                	dec    %al
5fcda0:	24 30                	and    $0x30,%al
5fcda2:	0f b6 c0             	movzbl %al,%eax
5fcda5:	50                   	push   %eax
5fcda6:	ff 75 18             	push   0x18(%ebp)
5fcda9:	ff 75 14             	push   0x14(%ebp)
5fcdac:	6a 03                	push   $0x3
5fcdae:	eb c4                	jmp    0x5fcd74
5fcdb0:	8b 4d 10             	mov    0x10(%ebp),%ecx
5fcdb3:	8b 51 14             	mov    0x14(%ecx),%edx
5fcdb6:	8d 82 6c 07 00 00    	lea    0x76c(%edx),%eax
5fcdbc:	3d 0f 27 00 00       	cmp    $0x270f,%eax
5fcdc1:	0f 87 e8 01 00 00    	ja     0x5fcfaf
5fcdc7:	6a 30                	push   $0x30
5fcdc9:	ff 75 18             	push   0x18(%ebp)
5fcdcc:	ff 75 14             	push   0x14(%ebp)
5fcdcf:	6a 02                	push   $0x2
5fcdd1:	ff 71 1c             	push   0x1c(%ecx)
5fcdd4:	ff 71 18             	push   0x18(%ecx)
5fcdd7:	52                   	push   %edx
5fcdd8:	e8 f5 fe ff ff       	call   0x5fccd2
5fcddd:	83 c4 0c             	add    $0xc,%esp
5fcde0:	05 6c 07 00 00       	add    $0x76c,%eax
5fcde5:	6a 64                	push   $0x64
5fcde7:	99                   	cltd
5fcde8:	59                   	pop    %ecx
5fcde9:	f7 f9                	idiv   %ecx