5f8ce5:	56                   	push   %esi
5f8ce6:	e8 bd 6a 00 00       	call   0x5ff7a8
5f8ceb:	59                   	pop    %ecx
5f8cec:	83 f8 ff             	cmp    $0xffffffff,%eax
5f8cef:	74 20                	je     0x5f8d11
5f8cf1:	83 f8 fe             	cmp    $0xfffffffe,%eax
5f8cf4:	74 1b                	je     0x5f8d11
5f8cf6:	8b d0                	mov    %eax,%edx
5f8cf8:	c1 fa 06             	sar    $0x6,%edx
5f8cfb:	8b f8                	mov    %eax,%edi
5f8cfd:	83 e7 3f             	and    $0x3f,%edi
5f8d00:	6b df 38             	imul   $0x38,%edi,%ebx
5f8d03:	03 1c 95 b8 10 73 00 	add    0x7310b8(,%edx,4),%ebx
5f8d0a:	b9 48 8d 72 00       	mov    $0x728d48,%ecx
5f8d0f:	eb 11                	jmp    0x5f8d22
5f8d11:	b9 48 8d 72 00       	mov    $0x728d48,%ecx
5f8d16:	8b d9                	mov    %ecx,%ebx
5f8d18:	8b d0                	mov    %eax,%edx
5f8d1a:	c1 fa 06             	sar    $0x6,%edx
5f8d1d:	8b f8                	mov    %eax,%edi
5f8d1f:	83 e7 3f             	and    $0x3f,%edi
5f8d22:	80 7b 29 00          	cmpb   $0x0,0x29(%ebx)
5f8d26:	75 1a                	jne    0x5f8d42
5f8d28:	83 f8 ff             	cmp    $0xffffffff,%eax
5f8d2b:	74 0f                	je     0x5f8d3c
5f8d2d:	83 f8 fe             	cmp    $0xfffffffe,%eax
5f8d30:	74 0a                	je     0x5f8d3c
5f8d32:	6b cf 38             	imul   $0x38,%edi,%ecx
5f8d35:	03 0c 95 b8 10 73 00 	add    0x7310b8(,%edx,4),%ecx
5f8d3c:	f6 41 2d 01          	testb  $0x1,0x2d(%ecx)
5f8d40:	74 28                	je     0x5f8d6a
5f8d42:	e8 b2 42 ff ff       	call   0x5ecff9
5f8d47:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
5f8d4d:	e8 cd 41 ff ff       	call   0x5ecf1f
5f8d52:	6a fe                	push   $0xfffffffe
5f8d54:	8d 4d f0             	lea    -0x10(%ebp),%ecx
5f8d57:	51                   	push   %ecx
5f8d58:	68 d4 89 72 00       	push   $0x7289d4
5f8d5d:	e8 8e b1 fe ff       	call   0x5e3ef0
5f8d62:	83 c4 0c             	add    $0xc,%esp
5f8d65:	e9 55 ff ff ff       	jmp    0x5f8cbf
5f8d6a:	56                   	push   %esi
5f8d6b:	ff 75 08             	push   0x8(%ebp)
5f8d6e:	e8 00 ff ff ff       	call   0x5f8c73
5f8d73:	59                   	pop    %ecx
5f8d74:	59                   	pop    %ecx
5f8d75:	8b f8                	mov    %eax,%edi
5f8d77:	89 7d e4             	mov    %edi,-0x1c(%ebp)
5f8d7a:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
5f8d81:	e8 18 00 00 00       	call   0x5f8d9e
5f8d86:	8b c7                	mov    %edi,%eax
5f8d88:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5f8d8b:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
5f8d92:	59                   	pop    %ecx
5f8d93:	5f                   	pop    %edi
5f8d94:	5e                   	pop    %esi
5f8d95:	5b                   	pop    %ebx
5f8d96:	c9                   	leave
5f8d97:	c3                   	ret
5f8d98:	8b 75 0c             	mov    0xc(%ebp),%esi
5f8d9b:	8b 7d e4             	mov    -0x1c(%ebp),%edi
5f8d9e:	56                   	push   %esi
5f8d9f:	e8 12 34 00 00       	call   0x5fc1b6
5f8da4:	59                   	pop    %ecx
5f8da5:	c3                   	ret
5f8da6:	6a 0c                	push   $0xc
5f8da8:	68 90 1b 70 00       	push   $0x701b90
5f8dad:	e8 5e 97 fe ff       	call   0x5e2510
5f8db2:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
5f8db6:	75 15                	jne    0x5f8dcd
5f8db8:	e8 3c 42 ff ff       	call   0x5ecff9
5f8dbd:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
5f8dc3:	e8 57 41 ff ff       	call   0x5ecf1f
5f8dc8:	83 c8 ff             	or     $0xffffffff,%eax
5f8dcb:	eb 2d                	jmp    0x5f8dfa
5f8dcd:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
5f8dd1:	ff 75 08             	push   0x8(%ebp)
5f8dd4:	e8 c9 33 00 00       	call   0x5fc1a2
5f8dd9:	59                   	pop    %ecx
5f8dda:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
5f8dde:	ff 75 08             	push   0x8(%ebp)
5f8de1:	e8 b1 00 00 00       	call   0x5f8e97
5f8de6:	59                   	pop    %ecx
5f8de7:	8b f0                	mov    %eax,%esi
5f8de9:	89 75 e4             	mov    %esi,-0x1c(%ebp)
5f8dec:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
5f8df3:	e8 15 00 00 00       	call   0x5f8e0d
5f8df8:	8b c6                	mov    %esi,%eax
5f8dfa:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5f8dfd:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
5f8e04:	59                   	pop    %ecx
5f8e05:	5f                   	pop    %edi
5f8e06:	5e                   	pop    %esi
5f8e07:	5b                   	pop    %ebx
5f8e08:	c9                   	leave
5f8e09:	c3                   	ret
5f8e0a:	8b 75 e4             	mov    -0x1c(%ebp),%esi
5f8e0d:	ff 75 08             	push   0x8(%ebp)
5f8e10:	e8 a1 33 00 00       	call   0x5fc1b6
5f8e15:	59                   	pop    %ecx
5f8e16:	c3                   	ret
5f8e17:	6a 10                	push   $0x10
5f8e19:	68 b0 1b 70 00       	push   $0x701bb0
5f8e1e:	e8 ed 96 fe ff       	call   0x5e2510
5f8e23:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
5f8e27:	75 17                	jne    0x5f8e40
5f8e29:	e8 cb 41 ff ff       	call   0x5ecff9
5f8e2e:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
5f8e34:	e8 e6 40 ff ff       	call   0x5ecf1f
5f8e39:	83 ca ff             	or     $0xffffffff,%edx
5f8e3c:	8b c2                	mov    %edx,%eax
5f8e3e:	eb 37                	jmp    0x5f8e77
5f8e40:	33 f6                	xor    %esi,%esi
5f8e42:	89 75 e0             	mov    %esi,-0x20(%ebp)
5f8e45:	89 75 e4             	mov    %esi,-0x1c(%ebp)
5f8e48:	ff 75 08             	push   0x8(%ebp)
5f8e4b:	e8 52 33 00 00       	call   0x5fc1a2
5f8e50:	59                   	pop    %ecx
5f8e51:	89 75 fc             	mov    %esi,-0x4(%ebp)
5f8e54:	ff 75 08             	push   0x8(%ebp)
5f8e57:	e8 66 00 00 00       	call   0x5f8ec2
5f8e5c:	59                   	pop    %ecx
5f8e5d:	8b f0                	mov    %eax,%esi
5f8e5f:	89 75 e0             	mov    %esi,-0x20(%ebp)
5f8e62:	8b fa                	mov    %edx,%edi
5f8e64:	89 7d e4             	mov    %edi,-0x1c(%ebp)
5f8e67:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
5f8e6e:	e8 1a 00 00 00       	call   0x5f8e8d
5f8e73:	8b c6                	mov    %esi,%eax
5f8e75:	8b d7                	mov    %edi,%edx
5f8e77:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5f8e7a:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
5f8e81:	59                   	pop    %ecx
5f8e82:	5f                   	pop    %edi
5f8e83:	5e                   	pop    %esi
5f8e84:	5b                   	pop    %ebx
5f8e85:	c9                   	leave
5f8e86:	c3                   	ret
5f8e87:	8b 7d e4             	mov    -0x1c(%ebp),%edi
5f8e8a:	8b 75 e0             	mov    -0x20(%ebp),%esi
5f8e8d:	ff 75 08             	push   0x8(%ebp)
5f8e90:	e8 21 33 00 00       	call   0x5fc1b6
5f8e95:	59                   	pop    %ecx
5f8e96:	c3                   	ret
5f8e97:	8b ff                	mov    %edi,%edi
5f8e99:	55                   	push   %ebp
5f8e9a:	8b ec                	mov    %esp,%ebp
5f8e9c:	ff 75 08             	push   0x8(%ebp)
5f8e9f:	e8 1e 00 00 00       	call   0x5f8ec2
5f8ea4:	59                   	pop    %ecx
5f8ea5:	85 d2                	test   %edx,%edx
5f8ea7:	7c 17                	jl     0x5f8ec0
5f8ea9:	7f 07                	jg     0x5f8eb2
5f8eab:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
5f8eb0:	76 0e                	jbe    0x5f8ec0
5f8eb2:	e8 42 41 ff ff       	call   0x5ecff9
5f8eb7:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
5f8ebd:	83 c8 ff             	or     $0xffffffff,%eax
5f8ec0:	5d                   	pop    %ebp
5f8ec1:	c3                   	ret
5f8ec2:	8b ff                	mov    %edi,%edi
5f8ec4:	55                   	push   %ebp
5f8ec5:	8b ec                	mov    %esp,%ebp
5f8ec7:	83 ec 14             	sub    $0x14,%esp
5f8eca:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
5f8ece:	75 17                	jne    0x5f8ee7
5f8ed0:	e8 24 41 ff ff       	call   0x5ecff9
5f8ed5:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
5f8edb:	e8 3f 40 ff ff       	call   0x5ecf1f
5f8ee0:	83 c8 ff             	or     $0xffffffff,%eax
5f8ee3:	0b d0                	or     %eax,%edx
5f8ee5:	c9                   	leave
5f8ee6:	c3                   	ret
5f8ee7:	53                   	push   %ebx
5f8ee8:	57                   	push   %edi
5f8ee9:	ff 75 08             	push   0x8(%ebp)
5f8eec:	e8 b7 68 00 00       	call   0x5ff7a8
5f8ef1:	59                   	pop    %ecx
5f8ef2:	8b 4d 08             	mov    0x8(%ebp),%ecx
5f8ef5:	33 db                	xor    %ebx,%ebx
5f8ef7:	8b f8                	mov    %eax,%edi
5f8ef9:	39 59 08             	cmp    %ebx,0x8(%ecx)
5f8efc:	7d 03                	jge    0x5f8f01
5f8efe:	89 59 08             	mov    %ebx,0x8(%ecx)
5f8f01:	56                   	push   %esi
5f8f02:	6a 01                	push   $0x1
5f8f04:	53                   	push   %ebx
5f8f05:	53                   	push   %ebx
5f8f06:	57                   	push   %edi
5f8f07:	e8 96 c9 00 00       	call   0x6058a2
5f8f0c:	8b ca                	mov    %edx,%ecx
5f8f0e:	83 c4 10             	add    $0x10,%esp
5f8f11:	89 4d f8             	mov    %ecx,-0x8(%ebp)
5f8f14:	8b f0                	mov    %eax,%esi
5f8f16:	89 75 ec             	mov    %esi,-0x14(%ebp)
5f8f19:	3b cb                	cmp    %ebx,%ecx
5f8f1b:	7f 0e                	jg     0x5f8f2b
5f8f1d:	0f 8c ca 00 00 00    	jl     0x5f8fed
5f8f23:	3b f3                	cmp    %ebx,%esi
5f8f25:	0f 82 c2 00 00 00    	jb     0x5f8fed
5f8f2b:	8b 45 08             	mov    0x8(%ebp),%eax
5f8f2e:	8b 40 0c             	mov    0xc(%eax),%eax
5f8f31:	90                   	nop
5f8f32:	a8 c0                	test   $0xc0,%al
5f8f34:	75 14                	jne    0x5f8f4a
5f8f36:	8b 45 08             	mov    0x8(%ebp),%eax
5f8f39:	8b 40 08             	mov    0x8(%eax),%eax
5f8f3c:	99                   	cltd
5f8f3d:	2b f0                	sub    %eax,%esi
5f8f3f:	8b c6                	mov    %esi,%eax
5f8f41:	1b ca                	sbb    %edx,%ecx
5f8f43:	8b d1                	mov    %ecx,%edx
5f8f45:	e9 f7 00 00 00       	jmp    0x5f9041
5f8f4a:	8b c7                	mov    %edi,%eax
5f8f4c:	83 e7 3f             	and    $0x3f,%edi
5f8f4f:	c1 f8 06             	sar    $0x6,%eax
5f8f52:	6b cf 38             	imul   $0x38,%edi,%ecx
5f8f55:	89 45 f4             	mov    %eax,-0xc(%ebp)
5f8f58:	8b 04 85 b8 10 73 00 	mov    0x7310b8(,%eax,4),%eax
5f8f5f:	89 4d f0             	mov    %ecx,-0x10(%ebp)
5f8f62:	8a 44 01 29          	mov    0x29(%ecx,%eax,1),%al
5f8f66:	8b 4d 08             	mov    0x8(%ebp),%ecx
5f8f69:	88 45 fc             	mov    %al,-0x4(%ebp)
5f8f6c:	8b 01                	mov    (%ecx),%eax
5f8f6e:	2b 41 04             	sub    0x4(%ecx),%eax
5f8f71:	8b 49 0c             	mov    0xc(%ecx),%ecx
5f8f74:	99                   	cltd
5f8f75:	8b f8                	mov    %eax,%edi
5f8f77:	8b da                	mov    %edx,%ebx
5f8f79:	90                   	nop
5f8f7a:	f6 c1 03             	test   $0x3,%cl
5f8f7d:	74 55                	je     0x5f8fd4
5f8f7f:	80 7d fc 01          	cmpb   $0x1,-0x4(%ebp)
5f8f83:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5f8f86:	8b 55 f0             	mov    -0x10(%ebp),%edx
5f8f89:	75 22                	jne    0x5f8fad
5f8f8b:	8b 04 8d b8 10 73 00 	mov    0x7310b8(,%ecx,4),%eax
5f8f92:	f6 44 02 2d 02       	testb  $0x2,0x2d(%edx,%eax,1)
5f8f97:	74 14                	je     0x5f8fad
5f8f99:	ff 75 f8             	push   -0x8(%ebp)
5f8f9c:	56                   	push   %esi
5f8f9d:	ff 75 08             	push   0x8(%ebp)
5f8fa0:	e8 60 02 00 00       	call   0x5f9205
5f8fa5:	83 c4 0c             	add    $0xc,%esp
5f8fa8:	e9 94 00 00 00       	jmp    0x5f9041
5f8fad:	8b 04 8d b8 10 73 00 	mov    0x7310b8(,%ecx,4),%eax
5f8fb4:	80 7c 02 28 00       	cmpb   $0x0,0x28(%edx,%eax,1)
5f8fb9:	7d 39                	jge    0x5f8ff4
5f8fbb:	8b 75 08             	mov    0x8(%ebp),%esi
5f8fbe:	ff 75 fc             	push   -0x4(%ebp)
5f8fc1:	ff 36                	push   (%esi)
5f8fc3:	ff 76 04             	push   0x4(%esi)
5f8fc6:	e8 d3 03 00 00       	call   0x5f939e
5f8fcb:	83 c4 0c             	add    $0xc,%esp
5f8fce:	03 f8                	add    %eax,%edi
5f8fd0:	13 da                	adc    %edx,%ebx
5f8fd2:	eb 23                	jmp    0x5f8ff7
5f8fd4:	8b 45 08             	mov    0x8(%ebp),%eax
5f8fd7:	8b 40 0c             	mov    0xc(%eax),%eax
5f8fda:	90                   	nop
5f8fdb:	c1 e8 02             	shr    $0x2,%eax
5f8fde:	a8 01                	test   $0x1,%al
5f8fe0:	75 12                	jne    0x5f8ff4
5f8fe2:	e8 12 40 ff ff       	call   0x5ecff9
5f8fe7:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
5f8fed:	83 c8 ff             	or     $0xffffffff,%eax
5f8ff0:	0b d0                	or     %eax,%edx
5f8ff2:	eb 4d                	jmp    0x5f9041
5f8ff4:	8b 75 08             	mov    0x8(%ebp),%esi
5f8ff7:	8b 4d ec             	mov    -0x14(%ebp),%ecx
5f8ffa:	8b c1                	mov    %ecx,%eax
5f8ffc:	8b 55 f8             	mov    -0x8(%ebp),%edx
5f8fff:	0b c2                	or     %edx,%eax
5f9001:	75 04                	jne    0x5f9007
5f9003:	8b d3                	mov    %ebx,%edx
5f9005:	eb 38                	jmp    0x5f903f
5f9007:	8b 46 0c             	mov    0xc(%esi),%eax
5f900a:	90                   	nop
5f900b:	a8 01                	test   $0x1,%al
5f900d:	74 11                	je     0x5f9020
5f900f:	53                   	push   %ebx
5f9010:	57                   	push   %edi
5f9011:	52                   	push   %edx
5f9012:	51                   	push   %ecx
5f9013:	ff 75 08             	push   0x8(%ebp)
5f9016:	e8 2b 00 00 00       	call   0x5f9046
5f901b:	83 c4 14             	add    $0x14,%esp
5f901e:	eb 21                	jmp    0x5f9041
5f9020:	80 7d fc 01          	cmpb   $0x1,-0x4(%ebp)
5f9024:	75 15                	jne    0x5f903b
5f9026:	6a 00                	push   $0x0
5f9028:	6a 02                	push   $0x2
5f902a:	53                   	push   %ebx
5f902b:	57                   	push   %edi
5f902c:	e8 0f 8b fe ff       	call   0x5e1b40
5f9031:	8b 4d ec             	mov    -0x14(%ebp),%ecx
5f9034:	8b da                	mov    %edx,%ebx
5f9036:	8b 55 f8             	mov    -0x8(%ebp),%edx
5f9039:	8b f8                	mov    %eax,%edi
5f903b:	03 f9                	add    %ecx,%edi
5f903d:	13 d3                	adc    %ebx,%edx
5f903f:	8b c7                	mov    %edi,%eax
5f9041:	5e                   	pop    %esi
5f9042:	5f                   	pop    %edi
5f9043:	5b                   	pop    %ebx
5f9044:	c9                   	leave
5f9045:	c3                   	ret
5f9046:	8b ff                	mov    %edi,%edi
5f9048:	55                   	push   %ebp
5f9049:	8b ec                	mov    %esp,%ebp
5f904b:	83 ec 20             	sub    $0x20,%esp
5f904e:	53                   	push   %ebx
5f904f:	56                   	push   %esi
5f9050:	57                   	push   %edi
5f9051:	ff 75 08             	push   0x8(%ebp)
5f9054:	e8 4f 67 00 00       	call   0x5ff7a8
5f9059:	8b f0                	mov    %eax,%esi
5f905b:	33 ff                	xor    %edi,%edi
5f905d:	59                   	pop    %ecx
5f905e:	c1 f8 06             	sar    $0x6,%eax
5f9061:	8b ce                	mov    %esi,%ecx
5f9063:	83 e1 3f             	and    $0x3f,%ecx
5f9066:	89 45 e0             	mov    %eax,-0x20(%ebp)
5f9069:	6b c9 38             	imul   $0x38,%ecx,%ecx
5f906c:	89 7d fc             	mov    %edi,-0x4(%ebp)
5f906f:	8b 04 85 b8 10 73 00 	mov    0x7310b8(,%eax,4),%eax
5f9076:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5f9079:	89 4d e8             	mov    %ecx,-0x18(%ebp)
5f907c:	8a 4c 08 29          	mov    0x29(%eax,%ecx,1),%cl
5f9080:	33 c0                	xor    %eax,%eax
5f9082:	40                   	inc    %eax
5f9083:	88 4d ec             	mov    %cl,-0x14(%ebp)
5f9086:	3a c8                	cmp    %al,%cl
5f9088:	75 08                	jne    0x5f9092
5f908a:	6a 02                	push   $0x2
5f908c:	5b                   	pop    %ebx
5f908d:	89 5d f4             	mov    %ebx,-0xc(%ebp)
5f9090:	eb 03                	jmp    0x5f9095
5f9092:	89 45 f4             	mov    %eax,-0xc(%ebp)
5f9095:	8b 45 08             	mov    0x8(%ebp),%eax
5f9098:	8b 48 08             	mov    0x8(%eax),%ecx
5f909b:	89 4d f0             	mov    %ecx,-0x10(%ebp)
5f909e:	85 c9                	test   %ecx,%ecx
5f90a0:	75 0b                	jne    0x5f90ad
5f90a2:	8b 45 0c             	mov    0xc(%ebp),%eax
5f90a5:	8b 55 10             	mov    0x10(%ebp),%edx
5f90a8:	e9 53 01 00 00       	jmp    0x5f9200
5f90ad:	8b 08                	mov    (%eax),%ecx
5f90af:	2b 48 04             	sub    0x4(%eax),%ecx
5f90b2:	8b 5d e8             	mov    -0x18(%ebp),%ebx