summaryrefslogtreecommitdiff
path: root/vendor/github.com/chenzhuoyu
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/chenzhuoyu')
-rw-r--r--vendor/github.com/chenzhuoyu/base64x/.gitignore43
-rw-r--r--vendor/github.com/chenzhuoyu/base64x/.gitmodules3
-rw-r--r--vendor/github.com/chenzhuoyu/base64x/LICENSE201
-rw-r--r--vendor/github.com/chenzhuoyu/base64x/Makefile28
-rw-r--r--vendor/github.com/chenzhuoyu/base64x/README.md4
-rw-r--r--vendor/github.com/chenzhuoyu/base64x/base64x.go157
-rw-r--r--vendor/github.com/chenzhuoyu/base64x/cpuid.go17
-rw-r--r--vendor/github.com/chenzhuoyu/base64x/faststr.go23
-rw-r--r--vendor/github.com/chenzhuoyu/base64x/native_amd64.go16
-rw-r--r--vendor/github.com/chenzhuoyu/base64x/native_amd64.s4416
-rw-r--r--vendor/github.com/chenzhuoyu/base64x/native_subr_amd64.go29
11 files changed, 4937 insertions, 0 deletions
diff --git a/vendor/github.com/chenzhuoyu/base64x/.gitignore b/vendor/github.com/chenzhuoyu/base64x/.gitignore
new file mode 100644
index 000000000..a2fd30e98
--- /dev/null
+++ b/vendor/github.com/chenzhuoyu/base64x/.gitignore
@@ -0,0 +1,43 @@
+*.o
+*.swp
+*.swm
+*.swn
+*.a
+*.so
+_obj
+_test
+*.[568vq]
+[568vq].out
+*.cgo1.go
+*.cgo2.c
+_cgo_defun.c
+_cgo_gotypes.go
+_cgo_export.*
+_testmain.go
+*.exe
+*.exe~
+*.test
+*.prof
+*.rar
+*.zip
+*.gz
+*.psd
+*.bmd
+*.cfg
+*.pptx
+*.log
+*nohup.out
+*settings.pyc
+*.sublime-project
+*.sublime-workspace
+.DS_Store
+/.idea/
+/.vscode/
+/output/
+/vendor/
+/Gopkg.lock
+/Gopkg.toml
+coverage.html
+coverage.out
+coverage.xml
+junit.xml
diff --git a/vendor/github.com/chenzhuoyu/base64x/.gitmodules b/vendor/github.com/chenzhuoyu/base64x/.gitmodules
new file mode 100644
index 000000000..b8d11c921
--- /dev/null
+++ b/vendor/github.com/chenzhuoyu/base64x/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "tools/asm2asm"]
+ path = tools/asm2asm
+ url = https://github.com/chenzhuoyu/asm2asm
diff --git a/vendor/github.com/chenzhuoyu/base64x/LICENSE b/vendor/github.com/chenzhuoyu/base64x/LICENSE
new file mode 100644
index 000000000..261eeb9e9
--- /dev/null
+++ b/vendor/github.com/chenzhuoyu/base64x/LICENSE
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/vendor/github.com/chenzhuoyu/base64x/Makefile b/vendor/github.com/chenzhuoyu/base64x/Makefile
new file mode 100644
index 000000000..436d8bafd
--- /dev/null
+++ b/vendor/github.com/chenzhuoyu/base64x/Makefile
@@ -0,0 +1,28 @@
+.PHONY: all clean
+
+CFLAGS := -mavx
+CFLAGS += -mavx2
+CFLAGS += -mno-bmi
+CFLAGS += -mno-red-zone
+CFLAGS += -fno-asynchronous-unwind-tables
+CFLAGS += -fno-stack-protector
+CFLAGS += -fno-exceptions
+CFLAGS += -fno-builtin
+CFLAGS += -fno-rtti
+CFLAGS += -nostdlib
+CFLAGS += -O3
+
+NATIVE_ASM := $(wildcard native/*.S)
+NATIVE_SRC := $(wildcard native/*.h)
+NATIVE_SRC += $(wildcard native/*.c)
+
+all: native_amd64.s
+
+clean:
+ rm -vf native_amd64.s output/*.s
+
+native_amd64.s: ${NATIVE_SRC} ${NATIVE_ASM} native_amd64.go
+ mkdir -p output
+ clang ${CFLAGS} -S -o output/native.s native/native.c
+ python3 tools/asm2asm/asm2asm.py native_amd64.s output/native.s ${NATIVE_ASM}
+ asmfmt -w native_amd64.s
diff --git a/vendor/github.com/chenzhuoyu/base64x/README.md b/vendor/github.com/chenzhuoyu/base64x/README.md
new file mode 100644
index 000000000..4a3a7c98a
--- /dev/null
+++ b/vendor/github.com/chenzhuoyu/base64x/README.md
@@ -0,0 +1,4 @@
+# base64x
+
+High performance drop-in replacement of the `encoding/base64` library.
+
diff --git a/vendor/github.com/chenzhuoyu/base64x/base64x.go b/vendor/github.com/chenzhuoyu/base64x/base64x.go
new file mode 100644
index 000000000..3d457176b
--- /dev/null
+++ b/vendor/github.com/chenzhuoyu/base64x/base64x.go
@@ -0,0 +1,157 @@
+package base64x
+
+import (
+ `encoding/base64`
+)
+
+// An Encoding is a radix 64 encoding/decoding scheme, defined by a
+// 64-character alphabet. The most common encoding is the "base64"
+// encoding defined in RFC 4648 and used in MIME (RFC 2045) and PEM
+// (RFC 1421). RFC 4648 also defines an alternate encoding, which is
+// the standard encoding with - and _ substituted for + and /.
+type Encoding int
+
+const (
+ _MODE_URL = 1 << 0
+ _MODE_RAW = 1 << 1
+ _MODE_AVX2 = 1 << 2
+ _MODE_JSON = 1 << 3
+)
+
+// StdEncoding is the standard base64 encoding, as defined in
+// RFC 4648.
+const StdEncoding Encoding = 0
+
+// URLEncoding is the alternate base64 encoding defined in RFC 4648.
+// It is typically used in URLs and file names.
+const URLEncoding Encoding = _MODE_URL
+
+// RawStdEncoding is the standard raw, unpadded base64 encoding,
+// as defined in RFC 4648 section 3.2.
+//
+// This is the same as StdEncoding but omits padding characters.
+const RawStdEncoding Encoding = _MODE_RAW
+
+// RawURLEncoding is the unpadded alternate base64 encoding defined in RFC 4648.
+// It is typically used in URLs and file names.
+//
+// This is the same as URLEncoding but omits padding characters.
+const RawURLEncoding Encoding = _MODE_RAW | _MODE_URL
+
+// JSONStdEncoding is the StdEncoding and encoded as JSON string as RFC 8259.
+const JSONStdEncoding Encoding = _MODE_JSON;
+
+var (
+ archFlags = 0
+)
+
+/** Encoder Functions **/
+
+// Encode encodes src using the specified encoding, writing
+// EncodedLen(len(src)) bytes to out.
+//
+// The encoding pads the output to a multiple of 4 bytes,
+// so Encode is not appropriate for use on individual blocks
+// of a large data stream.
+//
+// If out is not large enough to contain the encoded result,
+// it will panic.
+func (self Encoding) Encode(out []byte, src []byte) {
+ if len(src) != 0 {
+ if buf := out[:0:len(out)]; self.EncodedLen(len(src)) <= len(out) {
+ self.EncodeUnsafe(&buf, src)
+ } else {
+ panic("encoder output buffer is too small")
+ }
+ }
+}
+
+// EncodeUnsafe behaves like Encode, except it does NOT check if
+// out is large enough to contain the encoded result.
+//
+// It will also update the length of out.
+func (self Encoding) EncodeUnsafe(out *[]byte, src []byte) {
+ __b64encode(out, &src, int(self) | archFlags)
+}
+
+// EncodeToString returns the base64 encoding of src.
+func (self Encoding) EncodeToString(src []byte) string {
+ nbs := len(src)
+ ret := make([]byte, 0, self.EncodedLen(nbs))
+
+ /* encode in native code */
+ self.EncodeUnsafe(&ret, src)
+ return mem2str(ret)
+}
+
+// EncodedLen returns the length in bytes of the base64 encoding
+// of an input buffer of length n.
+func (self Encoding) EncodedLen(n int) int {
+ if (self & _MODE_RAW) == 0 {
+ return (n + 2) / 3 * 4
+ } else {
+ return (n * 8 + 5) / 6
+ }
+}
+
+/** Decoder Functions **/
+
+// Decode decodes src using the encoding enc. It writes at most
+// DecodedLen(len(src)) bytes to out and returns the number of bytes
+// written. If src contains invalid base64 data, it will return the
+// number of bytes successfully written and base64.CorruptInputError.
+//
+// New line characters (\r and \n) are ignored.
+//
+// If out is not large enough to contain the encoded result,
+// it will panic.
+func (self Encoding) Decode(out []byte, src []byte) (int, error) {
+ if len(src) == 0 {
+ return 0, nil
+ } else if buf := out[:0:len(out)]; self.DecodedLen(len(src)) <= len(out) {
+ return self.DecodeUnsafe(&buf, src)
+ } else {
+ panic("decoder output buffer is too small")
+ }
+}
+
+// DecodeUnsafe behaves like Decode, except it does NOT check if
+// out is large enough to contain the decoded result.
+//
+// It will also update the length of out.
+func (self Encoding) DecodeUnsafe(out *[]byte, src []byte) (int, error) {
+ if n := __b64decode(out, mem2addr(src), len(src), int(self) | archFlags); n >= 0 {
+ return n, nil
+ } else {
+ return 0, base64.CorruptInputError(-n - 1)
+ }
+}
+
+// DecodeString returns the bytes represented by the base64 string s.
+func (self Encoding) DecodeString(s string) ([]byte, error) {
+ src := str2mem(s)
+ ret := make([]byte, 0, self.DecodedLen(len(s)))
+
+ /* decode into the allocated buffer */
+ if _, err := self.DecodeUnsafe(&ret, src); err != nil {
+ return nil, err
+ } else {
+ return ret, nil
+ }
+}
+
+// DecodedLen returns the maximum length in bytes of the decoded data
+// corresponding to n bytes of base64-encoded data.
+func (self Encoding) DecodedLen(n int) int {
+ if (self & _MODE_RAW) == 0 {
+ return n / 4 * 3
+ } else {
+ return n * 6 / 8
+ }
+}
+
+func init() {
+ if hasAVX2() {
+ archFlags = _MODE_AVX2
+ }
+}
diff --git a/vendor/github.com/chenzhuoyu/base64x/cpuid.go b/vendor/github.com/chenzhuoyu/base64x/cpuid.go
new file mode 100644
index 000000000..a768c768d
--- /dev/null
+++ b/vendor/github.com/chenzhuoyu/base64x/cpuid.go
@@ -0,0 +1,17 @@
+package base64x
+
+import (
+ `fmt`
+ `os`
+
+ `github.com/klauspost/cpuid/v2`
+)
+
+func hasAVX2() bool {
+ switch v := os.Getenv("B64X_MODE"); v {
+ case "" : fallthrough
+ case "auto" : return cpuid.CPU.Has(cpuid.AVX2)
+ case "noavx2" : return false
+ default : panic(fmt.Sprintf("invalid mode: '%s', should be one of 'auto', 'noavx2'", v))
+ }
+} \ No newline at end of file
diff --git a/vendor/github.com/chenzhuoyu/base64x/faststr.go b/vendor/github.com/chenzhuoyu/base64x/faststr.go
new file mode 100644
index 000000000..83b58ea1f
--- /dev/null
+++ b/vendor/github.com/chenzhuoyu/base64x/faststr.go
@@ -0,0 +1,23 @@
+package base64x
+
+import (
+ `reflect`
+ `unsafe`
+)
+
+func mem2str(v []byte) (s string) {
+ (*reflect.StringHeader)(unsafe.Pointer(&s)).Len = (*reflect.SliceHeader)(unsafe.Pointer(&v)).Len
+ (*reflect.StringHeader)(unsafe.Pointer(&s)).Data = (*reflect.SliceHeader)(unsafe.Pointer(&v)).Data
+ return
+}
+
+func str2mem(s string) (v []byte) {
+ (*reflect.SliceHeader)(unsafe.Pointer(&v)).Cap = (*reflect.StringHeader)(unsafe.Pointer(&s)).Len
+ (*reflect.SliceHeader)(unsafe.Pointer(&v)).Len = (*reflect.StringHeader)(unsafe.Pointer(&s)).Len
+ (*reflect.SliceHeader)(unsafe.Pointer(&v)).Data = (*reflect.StringHeader)(unsafe.Pointer(&s)).Data
+ return
+}
+
+func mem2addr(v []byte) unsafe.Pointer {
+ return *(*unsafe.Pointer)(unsafe.Pointer(&v))
+}
diff --git a/vendor/github.com/chenzhuoyu/base64x/native_amd64.go b/vendor/github.com/chenzhuoyu/base64x/native_amd64.go
new file mode 100644
index 000000000..a6f95575a
--- /dev/null
+++ b/vendor/github.com/chenzhuoyu/base64x/native_amd64.go
@@ -0,0 +1,16 @@
+//go:generate make
+package base64x
+
+import (
+ `unsafe`
+)
+
+//go:nosplit
+//go:noescape
+//goland:noinspection GoUnusedParameter
+func __b64encode(out *[]byte, src *[]byte, mode int)
+
+//go:nosplit
+//go:noescape
+//goland:noinspection GoUnusedParameter
+func __b64decode(out *[]byte, src unsafe.Pointer, len int, mode int) (ret int)
diff --git a/vendor/github.com/chenzhuoyu/base64x/native_amd64.s b/vendor/github.com/chenzhuoyu/base64x/native_amd64.s
new file mode 100644
index 000000000..7f7a58720
--- /dev/null
+++ b/vendor/github.com/chenzhuoyu/base64x/native_amd64.s
@@ -0,0 +1,4416 @@
+// +build !noasm !appengine
+// Code generated by asm2asm, DO NOT EDIT.
+
+#include "go_asm.h"
+#include "funcdata.h"
+#include "textflag.h"
+
+TEXT ·__native_entry__(SB), NOSPLIT, $0
+ NO_LOCAL_POINTERS
+ LONG $0xf9058d48; WORD $0xffff; BYTE $0xff // leaq $-7(%rip), %rax
+ MOVQ AX, 8(SP)
+ RET
+
+LCPI0_0:
+ BYTE $0x47 // .byte 71
+ BYTE $0xfc // .byte 252
+ BYTE $0xfc // .byte 252
+ BYTE $0xfc // .byte 252
+ BYTE $0xfc // .byte 252
+ BYTE $0xfc // .byte 252
+ BYTE $0xfc // .byte 252
+ BYTE $0xfc // .byte 252
+ BYTE $0xfc // .byte 252
+ BYTE $0xfc // .byte 252
+ BYTE $0xfc // .byte 252
+ BYTE $0xed // .byte 237
+ BYTE $0xf0 // .byte 240
+ BYTE $0x41 // .byte 65
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x47 // .byte 71
+ BYTE $0xfc // .byte 252
+ BYTE $0xfc // .byte 252
+ BYTE $0xfc // .byte 252
+ BYTE $0xfc // .byte 252
+ BYTE $0xfc // .byte 252
+ BYTE $0xfc // .byte 252
+ BYTE $0xfc // .byte 252
+ BYTE $0xfc // .byte 252
+ BYTE $0xfc // .byte 252
+ BYTE $0xfc // .byte 252
+ BYTE $0xed // .byte 237
+ BYTE $0xf0 // .byte 240
+ BYTE $0x41 // .byte 65
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+
+LCPI0_1:
+ BYTE $0x47 // .byte 71
+ BYTE $0xfc // .byte 252
+ BYTE $0xfc // .byte 252
+ BYTE $0xfc // .byte 252
+ BYTE $0xfc // .byte 252
+ BYTE $0xfc // .byte 252
+ BYTE $0xfc // .byte 252
+ BYTE $0xfc // .byte 252
+ BYTE $0xfc // .byte 252
+ BYTE $0xfc // .byte 252
+ BYTE $0xfc // .byte 252
+ BYTE $0xef // .byte 239
+ BYTE $0x20 // .byte 32
+ BYTE $0x41 // .byte 65
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x47 // .byte 71
+ BYTE $0xfc // .byte 252
+ BYTE $0xfc // .byte 252
+ BYTE $0xfc // .byte 252
+ BYTE $0xfc // .byte 252
+ BYTE $0xfc // .byte 252
+ BYTE $0xfc // .byte 252
+ BYTE $0xfc // .byte 252
+ BYTE $0xfc // .byte 252
+ BYTE $0xfc // .byte 252
+ BYTE $0xfc // .byte 252
+ BYTE $0xef // .byte 239
+ BYTE $0x20 // .byte 32
+ BYTE $0x41 // .byte 65
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+
+LCPI0_2:
+ BYTE $0x01 // .byte 1
+ BYTE $0x00 // .byte 0
+ BYTE $0x02 // .byte 2
+ BYTE $0x01 // .byte 1
+ BYTE $0x04 // .byte 4
+ BYTE $0x03 // .byte 3
+ BYTE $0x05 // .byte 5
+ BYTE $0x04 // .byte 4
+ BYTE $0x07 // .byte 7
+ BYTE $0x06 // .byte 6
+ BYTE $0x08 // .byte 8
+ BYTE $0x07 // .byte 7
+ BYTE $0x0a // .byte 10
+ BYTE $0x09 // .byte 9
+ BYTE $0x0b // .byte 11
+ BYTE $0x0a // .byte 10
+ BYTE $0x01 // .byte 1
+ BYTE $0x00 // .byte 0
+ BYTE $0x02 // .byte 2
+ BYTE $0x01 // .byte 1
+ BYTE $0x04 // .byte 4
+ BYTE $0x03 // .byte 3
+ BYTE $0x05 // .byte 5
+ BYTE $0x04 // .byte 4
+ BYTE $0x07 // .byte 7
+ BYTE $0x06 // .byte 6
+ BYTE $0x08 // .byte 8
+ BYTE $0x07 // .byte 7
+ BYTE $0x0a // .byte 10
+ BYTE $0x09 // .byte 9
+ BYTE $0x0b // .byte 11
+ BYTE $0x0a // .byte 10
+
+LCPI0_3:
+ WORD $0xfc00 // .word 64512
+ WORD $0x0fc0 // .word 4032
+ WORD $0xfc00 // .word 64512
+ WORD $0x0fc0 // .word 4032
+ WORD $0xfc00 // .word 64512
+ WORD $0x0fc0 // .word 4032
+ WORD $0xfc00 // .word 64512
+ WORD $0x0fc0 // .word 4032
+ WORD $0xfc00 // .word 64512
+ WORD $0x0fc0 // .word 4032
+ WORD $0xfc00 // .word 64512
+ WORD $0x0fc0 // .word 4032
+ WORD $0xfc00 // .word 64512
+ WORD $0x0fc0 // .word 4032
+ WORD $0xfc00 // .word 64512
+ WORD $0x0fc0 // .word 4032
+
+LCPI0_4:
+ WORD $0x0040 // .word 64
+ WORD $0x0400 // .word 1024
+ WORD $0x0040 // .word 64
+ WORD $0x0400 // .word 1024
+ WORD $0x0040 // .word 64
+ WORD $0x0400 // .word 1024
+ WORD $0x0040 // .word 64
+ WORD $0x0400 // .word 1024
+ WORD $0x0040 // .word 64
+ WORD $0x0400 // .word 1024
+ WORD $0x0040 // .word 64
+ WORD $0x0400 // .word 1024
+ WORD $0x0040 // .word 64
+ WORD $0x0400 // .word 1024
+ WORD $0x0040 // .word 64
+ WORD $0x0400 // .word 1024
+
+LCPI0_5:
+ WORD $0x03f0 // .word 1008
+ WORD $0x003f // .word 63
+ WORD $0x03f0 // .word 1008
+ WORD $0x003f // .word 63
+ WORD $0x03f0 // .word 1008
+ WORD $0x003f // .word 63
+ WORD $0x03f0 // .word 1008
+ WORD $0x003f // .word 63
+ WORD $0x03f0 // .word 1008
+ WORD $0x003f // .word 63
+ WORD $0x03f0 // .word 1008
+ WORD $0x003f // .word 63
+ WORD $0x03f0 // .word 1008
+ WORD $0x003f // .word 63
+ WORD $0x03f0 // .word 1008
+ WORD $0x003f // .word 63
+
+LCPI0_6:
+ QUAD $0x1a1a1a1a1a1a1a1a; QUAD $0x1a1a1a1a1a1a1a1a // .space 16, '\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a'
+ QUAD $0x1a1a1a1a1a1a1a1a; QUAD $0x1a1a1a1a1a1a1a1a // .space 16, '\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a'
+
+LCPI0_7:
+ QUAD $0x3333333333333333; QUAD $0x3333333333333333 // .space 16, '3333333333333333'
+ QUAD $0x3333333333333333; QUAD $0x3333333333333333 // .space 16, '3333333333333333'
+
+LCPI0_8:
+ QUAD $0x0d0d0d0d0d0d0d0d; QUAD $0x0d0d0d0d0d0d0d0d // .space 16, '\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r'
+ QUAD $0x0d0d0d0d0d0d0d0d; QUAD $0x0d0d0d0d0d0d0d0d // .space 16, '\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r'
+
+_b64encode:
+ BYTE $0x55 // pushq %rbp
+ WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp
+ WORD $0x5741 // pushq %r15
+ WORD $0x5641 // pushq %r14
+ WORD $0x5441 // pushq %r12
+ BYTE $0x53 // pushq %rbx
+ MOVQ 8(SI), R9
+ TESTQ R9, R9
+ JE LBB0_29
+ MOVQ 0(DI), R8
+ MOVQ 0(SI), R12
+ ADDQ R12, R9
+ LEAQ -28(R9), SI
+ LONG $0x610d8d48; WORD $0x002f; BYTE $0x00 // leaq $12129(%rip), %rcx /* _TabEncodeCharsetStd(%rip) */
+ LONG $0x9a1d8d4c; WORD $0x002f; BYTE $0x00 // leaq $12186(%rip), %r11 /* _TabEncodeCharsetURL(%rip) */
+ TESTB $1, DX
+ LONG $0xd9440f4c // cmoveq %rcx, %r11
+ JE LBB0_2
+ QUAD $0xfffffebc056ffec5 // vmovdqu $-324(%rip), %ymm0 /* LCPI0_1(%rip) */
+ JMP LBB0_4
+
+LBB0_2:
+ QUAD $0xfffffe92056ffec5 // vmovdqu $-366(%rip), %ymm0 /* LCPI0_0(%rip) */
+
+LBB0_4:
+ ADDQ 8(DI), R8
+ MOVL DX, R10
+ ANDL $4, R10
+ CMPQ R12, SI
+ JA LBB0_5
+ TESTL R10, R10
+ JE LBB0_7
+ QUAD $0xfffffead0d6ffec5 // vmovdqu $-339(%rip), %ymm1 /* LCPI0_2(%rip) */
+ QUAD $0xfffffec5156ffec5 // vmovdqu $-315(%rip), %ymm2 /* LCPI0_3(%rip) */
+ QUAD $0xfffffedd1d6ffec5 // vmovdqu $-291(%rip), %ymm3 /* LCPI0_4(%rip) */
+ QUAD $0xfffffef5256ffec5 // vmovdqu $-267(%rip), %ymm4 /* LCPI0_5(%rip) */
+ QUAD $0xffffff0d2d6ffec5 // vmovdqu $-243(%rip), %ymm5 /* LCPI0_6(%rip) */
+ QUAD $0xffffff25356ffec5 // vmovdqu $-219(%rip), %ymm6 /* LCPI0_7(%rip) */
+ QUAD $0xffffff3d3d6ffec5 // vmovdqu $-195(%rip), %ymm7 /* LCPI0_8(%rip) */
+ MOVQ R8, R14
+
+LBB0_9:
+ LONG $0x6f7a41c4; WORD $0x2404 // vmovdqu (%r12), %xmm8
+ QUAD $0x010c2444383d43c4 // vinserti128 $1, $12(%r12), %ymm8, %ymm8
+ LONG $0x003d62c4; BYTE $0xc1 // vpshufb %ymm1, %ymm8, %ymm8
+ LONG $0xcadb3dc5 // vpand %ymm2, %ymm8, %ymm9
+ LONG $0xcbe435c5 // vpmulhuw %ymm3, %ymm9, %ymm9
+ LONG $0xc4db3dc5 // vpand %ymm4, %ymm8, %ymm8
+ LONG $0x712dc1c4; WORD $0x08f0 // vpsllw $8, %ymm8, %ymm10
+ LONG $0x713dc1c4; WORD $0x04f0 // vpsllw $4, %ymm8, %ymm8
+ LONG $0x0e3d43c4; WORD $0xaac2 // vpblendw $170, %ymm10, %ymm8, %ymm8
+ LONG $0xeb3d41c4; BYTE $0xc1 // vpor %ymm9, %ymm8, %ymm8
+ LONG $0x645541c4; BYTE $0xc8 // vpcmpgtb %ymm8, %ymm5, %ymm9
+ LONG $0xcfdb35c5 // vpand %ymm7, %ymm9, %ymm9
+ LONG $0xd6d83dc5 // vpsubusb %ymm6, %ymm8, %ymm10
+ LONG $0xeb3541c4; BYTE $0xca // vpor %ymm10, %ymm9, %ymm9
+ LONG $0x007d42c4; BYTE $0xc9 // vpshufb %ymm9, %ymm0, %ymm9
+ LONG $0xfc3541c4; BYTE $0xc0 // vpaddb %ymm8, %ymm9, %ymm8
+ LONG $0x7f7e41c4; BYTE $0x06 // vmovdqu %ymm8, (%r14)
+ ADDQ $32, R14
+ ADDQ $24, R12
+ CMPQ R12, SI
+ JBE LBB0_9
+ JMP LBB0_10
+
+LBB0_5:
+ MOVQ R8, R14
+
+LBB0_10:
+ LEAQ -24(R9), SI
+ CMPQ R12, SI
+ JA LBB0_13
+
+LBB0_11:
+ TESTL R10, R10
+ JE LBB0_13
+ LONG $0x6f7ac1c4; WORD $0x240c // vmovdqu (%r12), %xmm1
+ LONG $0x6f7ac1c4; WORD $0x2454; BYTE $0x08 // vmovdqu $8(%r12), %xmm2
+ LONG $0xda73e9c5; BYTE $0x04 // vpsrldq $4, %xmm2, %xmm2
+ LONG $0x3875e3c4; WORD $0x01ca // vinserti128 $1, %xmm2, %ymm1, %ymm1
+ QUAD $0xfffdda0d0075e2c4; BYTE $0xff // vpshufb $-550(%rip), %ymm1, %ymm1 /* LCPI0_2(%rip) */
+ QUAD $0xfffffdf215dbf5c5 // vpand $-526(%rip), %ymm1, %ymm2 /* LCPI0_3(%rip) */
+ QUAD $0xfffffe0a15e4edc5 // vpmulhuw $-502(%rip), %ymm2, %ymm2 /* LCPI0_4(%rip) */
+ QUAD $0xfffffe220ddbf5c5 // vpand $-478(%rip), %ymm1, %ymm1 /* LCPI0_5(%rip) */
+ LONG $0xf171e5c5; BYTE $0x08 // vpsllw $8, %ymm1, %ymm3
+ LONG $0xf171f5c5; BYTE $0x04 // vpsllw $4, %ymm1, %ymm1
+ LONG $0x0e75e3c4; WORD $0xaacb // vpblendw $170, %ymm3, %ymm1, %ymm1
+ LONG $0xcaebf5c5 // vpor %ymm2, %ymm1, %ymm1
+ QUAD $0xfffffe26156ffec5 // vmovdqu $-474(%rip), %ymm2 /* LCPI0_6(%rip) */
+ LONG $0xd164edc5 // vpcmpgtb %ymm1, %ymm2, %ymm2
+ QUAD $0xfffffe3a1dd8f5c5 // vpsubusb $-454(%rip), %ymm1, %ymm3 /* LCPI0_7(%rip) */
+ QUAD $0xfffffe5215dbedc5 // vpand $-430(%rip), %ymm2, %ymm2 /* LCPI0_8(%rip) */
+ LONG $0xd3ebedc5 // vpor %ymm3, %ymm2, %ymm2
+ LONG $0x007de2c4; BYTE $0xc2 // vpshufb %ymm2, %ymm0, %ymm0
+ LONG $0xc1fcfdc5 // vpaddb %ymm1, %ymm0, %ymm0
+ LONG $0x7f7ec1c4; BYTE $0x06 // vmovdqu %ymm0, (%r14)
+ ADDQ $32, R14
+ ADDQ $24, R12
+
+LBB0_13:
+ CMPQ R12, R9
+ JE LBB0_28
+ LEAQ -4(R9), R10
+ CMPQ R12, R10
+ JA LBB0_17
+
+LBB0_15:
+ MOVL 0(R12), SI
+ BSWAPL SI
+ MOVQ SI, R15
+ SHRQ $26, R15
+ MOVL SI, CX
+ SHRL $20, CX
+ ANDL $63, CX
+ MOVL SI, BX
+ SHRL $14, BX
+ ANDL $63, BX
+ SHRL $8, SI
+ ANDL $63, SI
+ ADDQ $3, R12
+ MOVBLZX 0(R11)(R15*1), AX
+ MOVB AX, 0(R14)
+ MOVBLZX 0(R11)(CX*1), AX
+ MOVB AX, 1(R14)
+ MOVBLZX 0(R11)(BX*1), AX
+ MOVB AX, 2(R14)
+ MOVBLZX 0(R11)(SI*1), AX
+ MOVB AX, 3(R14)
+ ADDQ $4, R14
+ CMPQ R12, R10
+ JBE LBB0_15
+
+LBB0_17:
+ SUBQ R12, R9
+ MOVBLZX 0(R12), R10
+ CMPQ R9, $1
+ JE LBB0_24
+ MOVQ R10, SI
+ SHLQ $16, SI
+ CMPQ R9, $2
+ JE LBB0_21
+ CMPQ R9, $3
+ JNE LBB0_28
+ MOVBLZX 2(R12), DX
+ ORL DX, SI
+ MOVBLZX 1(R12), AX
+ SHLL $8, AX
+ ORL SI, AX
+ SHRQ $2, R10
+ MOVB 0(R11)(R10*1), CX
+ MOVB CX, 0(R14)
+ MOVL AX, CX
+ SHRL $12, CX
+ ANDL $63, CX
+ MOVB 0(R11)(CX*1), CX
+ MOVB CX, 1(R14)
+ SHRL $6, AX
+ ANDL $63, AX
+ MOVB 0(R11)(AX*1), AX
+ MOVB AX, 2(R14)
+ ANDL $63, DX
+ MOVB 0(R11)(DX*1), AX
+ MOVB AX, 3(R14)
+ JMP LBB0_27
+
+LBB0_7:
+ MOVQ R8, R14
+ LEAQ -24(R9), SI
+ CMPQ R12, SI
+ JBE LBB0_11
+ JMP LBB0_13
+
+LBB0_21:
+ MOVBLZX 1(R12), AX
+ MOVL AX, CX
+ SHLL $8, CX
+ ORL SI, CX
+ SHRQ $2, R10
+ MOVB 0(R11)(R10*1), BX
+ MOVB BX, 0(R14)
+ SHRL $12, CX
+ ANDL $63, CX
+ MOVB 0(R11)(CX*1), CX
+ MOVB CX, 1(R14)
+ ANDL $15, AX
+ MOVB 0(R11)(AX*4), AX
+ MOVB AX, 2(R14)
+ TESTB $2, DX
+ JNE LBB0_22
+ MOVB $61, 3(R14)
+ JMP LBB0_27
+
+LBB0_24:
+ MOVQ R10, AX
+ SHRQ $2, AX
+ MOVB 0(R11)(AX*1), AX
+ MOVB AX, 0(R14)
+ SHLL $4, R10
+ ANDL $48, R10
+ MOVB 0(R11)(R10*1), AX
+ MOVB AX, 1(R14)
+ TESTB $2, DX
+ JNE LBB0_25
+ MOVW $15677, 2(R14)
+
+LBB0_27:
+ ADDQ $4, R14
+ JMP LBB0_28
+
+LBB0_22:
+ ADDQ $3, R14
+ JMP LBB0_28
+
+LBB0_25:
+ ADDQ $2, R14
+
+LBB0_28:
+ SUBQ R8, R14
+ ADDQ R14, 8(DI)
+
+LBB0_29:
+ BYTE $0x5b // popq %rbx
+ WORD $0x5c41 // popq %r12
+ WORD $0x5e41 // popq %r14
+ WORD $0x5f41 // popq %r15
+ BYTE $0x5d // popq %rbp
+ WORD $0xf8c5; BYTE $0x77 // vzeroupper
+ RET
+
+LCPI1_0:
+ BYTE $0xa8 // .byte 168
+ BYTE $0xf8 // .byte 248
+ BYTE $0xf8 // .byte 248
+ BYTE $0xf8 // .byte 248
+ BYTE $0xf8 // .byte 248
+ BYTE $0xf8 // .byte 248
+ BYTE $0xf8 // .byte 248
+ BYTE $0xf8 // .byte 248
+ BYTE $0xf8 // .byte 248
+ BYTE $0xf8 // .byte 248
+ BYTE $0xf0 // .byte 240
+ BYTE $0x54 // .byte 84
+ BYTE $0x50 // .byte 80
+ BYTE $0x50 // .byte 80
+ BYTE $0x50 // .byte 80
+ BYTE $0x54 // .byte 84
+ BYTE $0xa8 // .byte 168
+ BYTE $0xf8 // .byte 248
+ BYTE $0xf8 // .byte 248
+ BYTE $0xf8 // .byte 248
+ BYTE $0xf8 // .byte 248
+ BYTE $0xf8 // .byte 248
+ BYTE $0xf8 // .byte 248
+ BYTE $0xf8 // .byte 248
+ BYTE $0xf8 // .byte 248
+ BYTE $0xf8 // .byte 248
+ BYTE $0xf0 // .byte 240
+ BYTE $0x54 // .byte 84
+ BYTE $0x50 // .byte 80
+ BYTE $0x50 // .byte 80
+ BYTE $0x50 // .byte 80
+ BYTE $0x54 // .byte 84
+
+LCPI1_1:
+ BYTE $0xa8 // .byte 168
+ BYTE $0xf8 // .byte 248
+ BYTE $0xf8 // .byte 248
+ BYTE $0xf8 // .byte 248
+ BYTE $0xf8 // .byte 248
+ BYTE $0xf8 // .byte 248
+ BYTE $0xf8 // .byte 248
+ BYTE $0xf8 // .byte 248
+ BYTE $0xf8 // .byte 248
+ BYTE $0xf8 // .byte 248
+ BYTE $0xf0 // .byte 240
+ BYTE $0x50 // .byte 80
+ BYTE $0x50 // .byte 80
+ BYTE $0x54 // .byte 84
+ BYTE $0x50 // .byte 80
+ BYTE $0x70 // .byte 112
+ BYTE $0xa8 // .byte 168
+ BYTE $0xf8 // .byte 248
+ BYTE $0xf8 // .byte 248
+ BYTE $0xf8 // .byte 248
+ BYTE $0xf8 // .byte 248
+ BYTE $0xf8 // .byte 248
+ BYTE $0xf8 // .byte 248
+ BYTE $0xf8 // .byte 248
+ BYTE $0xf8 // .byte 248
+ BYTE $0xf8 // .byte 248
+ BYTE $0xf0 // .byte 240
+ BYTE $0x50 // .byte 80
+ BYTE $0x50 // .byte 80
+ BYTE $0x54 // .byte 84
+ BYTE $0x50 // .byte 80
+ BYTE $0x70 // .byte 112
+
+LCPI1_2:
+ QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////'
+ QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////'
+
+LCPI1_3:
+ QUAD $0x5f5f5f5f5f5f5f5f; QUAD $0x5f5f5f5f5f5f5f5f // .space 16, '________________'
+ QUAD $0x5f5f5f5f5f5f5f5f; QUAD $0x5f5f5f5f5f5f5f5f // .space 16, '________________'
+
+LCPI1_4:
+ QUAD $0x1010101010101010; QUAD $0x1010101010101010 // .space 16, '\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10'
+ QUAD $0x1010101010101010; QUAD $0x1010101010101010 // .space 16, '\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10'
+
+LCPI1_5:
+ QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' '
+ QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' '
+
+LCPI1_6:
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x13 // .byte 19
+ BYTE $0x04 // .byte 4
+ BYTE $0xbf // .byte 191
+ BYTE $0xbf // .byte 191
+ BYTE $0xb9 // .byte 185
+ BYTE $0xb9 // .byte 185
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x13 // .byte 19
+ BYTE $0x04 // .byte 4
+ BYTE $0xbf // .byte 191
+ BYTE $0xbf // .byte 191
+ BYTE $0xb9 // .byte 185
+ BYTE $0xb9 // .byte 185
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+
+LCPI1_7:
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x11 // .byte 17
+ BYTE $0x04 // .byte 4
+ BYTE $0xbf // .byte 191
+ BYTE $0xbf // .byte 191
+ BYTE $0xb9 // .byte 185
+ BYTE $0xb9 // .byte 185
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x11 // .byte 17
+ BYTE $0x04 // .byte 4
+ BYTE $0xbf // .byte 191
+ BYTE $0xbf // .byte 191
+ BYTE $0xb9 // .byte 185
+ BYTE $0xb9 // .byte 185
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+
+LCPI1_8:
+ QUAD $0x0f0f0f0f0f0f0f0f; QUAD $0x0f0f0f0f0f0f0f0f // .space 16, '\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f'
+ QUAD $0x0f0f0f0f0f0f0f0f; QUAD $0x0f0f0f0f0f0f0f0f // .space 16, '\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f'
+
+LCPI1_9:
+ BYTE $0x01 // .byte 1
+ BYTE $0x02 // .byte 2
+ BYTE $0x04 // .byte 4
+ BYTE $0x08 // .byte 8
+ BYTE $0x10 // .byte 16
+ BYTE $0x20 // .byte 32
+ BYTE $0x40 // .byte 64
+ BYTE $0x80 // .byte 128
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x01 // .byte 1
+ BYTE $0x02 // .byte 2
+ BYTE $0x04 // .byte 4
+ BYTE $0x08 // .byte 8
+ BYTE $0x10 // .byte 16
+ BYTE $0x20 // .byte 32
+ BYTE $0x40 // .byte 64
+ BYTE $0x80 // .byte 128
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+ BYTE $0x00 // .byte 0
+
+LCPI1_10:
+ QUAD $0x3f3f3f3f3f3f3f3f; QUAD $0x3f3f3f3f3f3f3f3f // .space 16, '????????????????'
+ QUAD $0x3f3f3f3f3f3f3f3f; QUAD $0x3f3f3f3f3f3f3f3f // .space 16, '????????????????'
+
+LCPI1_11:
+ BYTE $0x40 // .byte 64
+ BYTE $0x01 // .byte 1
+ BYTE $0x40 // .byte 64
+ BYTE $0x01 // .byte 1
+ BYTE $0x40 // .byte 64
+ BYTE $0x01 // .byte 1
+ BYTE $0x40 // .byte 64
+ BYTE $0x01 // .byte 1
+ BYTE $0x40 // .byte 64
+ BYTE $0x01 // .byte 1
+ BYTE $0x40 // .byte 64
+ BYTE $0x01 // .byte 1
+ BYTE $0x40 // .byte 64
+ BYTE $0x01 // .byte 1
+ BYTE $0x40 // .byte 64
+ BYTE $0x01 // .byte 1
+ BYTE $0x40 // .byte 64
+ BYTE $0x01 // .byte 1
+ BYTE $0x40 // .byte 64
+ BYTE $0x01 // .byte 1
+ BYTE $0x40 // .byte 64
+ BYTE $0x01 // .byte 1
+ BYTE $0x40 // .byte 64
+ BYTE $0x01 // .byte 1
+ BYTE $0x40 // .byte 64
+ BYTE $0x01 // .byte 1
+ BYTE $0x40 // .byte 64
+ BYTE $0x01 // .byte 1
+ BYTE $0x40 // .byte 64
+ BYTE $0x01 // .byte 1
+ BYTE $0x40 // .byte 64
+ BYTE $0x01 // .byte 1
+
+LCPI1_12:
+ WORD $0x1000 // .word 4096
+ WORD $0x0001 // .word 1
+ WORD $0x1000 // .word 4096
+ WORD $0x0001 // .word 1
+ WORD $0x1000 // .word 4096
+ WORD $0x0001 // .word 1
+ WORD $0x1000 // .word 4096
+ WORD $0x0001 // .word 1
+ WORD $0x1000 // .word 4096
+ WORD $0x0001 // .word 1
+ WORD $0x1000 // .word 4096
+ WORD $0x0001 // .word 1
+ WORD $0x1000 // .word 4096
+ WORD $0x0001 // .word 1
+ WORD $0x1000 // .word 4096
+ WORD $0x0001 // .word 1
+
+LCPI1_14:
+ BYTE $0x02 // .byte 2
+ BYTE $0x01 // .byte 1
+ BYTE $0x00 // .byte 0
+ BYTE $0x06 // .byte 6
+ BYTE $0x05 // .byte 5
+ BYTE $0x04 // .byte 4
+ BYTE $0x0a // .byte 10
+ BYTE $0x09 // .byte 9
+ BYTE $0x08 // .byte 8
+ BYTE $0x0e // .byte 14
+ BYTE $0x0d // .byte 13
+ BYTE $0x0c // .byte 12
+ BYTE $0x00 // .space 1, '\x00'
+ BYTE $0x00 // .space 1, '\x00'
+ BYTE $0x00 // .space 1, '\x00'
+ BYTE $0x00 // .space 1, '\x00'
+ BYTE $0x05 // .byte 5
+ BYTE $0x04 // .byte 4
+ BYTE $0x0a // .byte 10
+ BYTE $0x09 // .byte 9
+ BYTE $0x08 // .byte 8
+ BYTE $0x0e // .byte 14
+ BYTE $0x0d // .byte 13
+ BYTE $0x0c // .byte 12
+ BYTE $0x00 // .space 1, '\x00'
+ BYTE $0x00 // .space 1, '\x00'
+ BYTE $0x00 // .space 1, '\x00'
+ BYTE $0x00 // .space 1, '\x00'
+ BYTE $0x00 // .space 1, '\x00'
+ BYTE $0x00 // .space 1, '\x00'
+ BYTE $0x00 // .space 1, '\x00'
+ BYTE $0x00 // .space 1, '\x00'
+
+LCPI1_13:
+ BYTE $0x00 // .space 1, '\x00'
+ BYTE $0x00 // .space 1, '\x00'
+ BYTE $0x00 // .space 1, '\x00'
+ BYTE $0x00 // .space 1, '\x00'
+ BYTE $0x00 // .space 1, '\x00'
+ BYTE $0x00 // .space 1, '\x00'
+ BYTE $0x00 // .space 1, '\x00'
+ BYTE $0x00 // .space 1, '\x00'
+ BYTE $0x00 // .space 1, '\x00'
+ BYTE $0x00 // .space 1, '\x00'
+ BYTE $0x00 // .space 1, '\x00'
+ BYTE $0x00 // .space 1, '\x00'
+ BYTE $0x02 // .byte 2
+ BYTE $0x01 // .byte 1
+ BYTE $0x00 // .byte 0
+ BYTE $0x06 // .byte 6
+
+_b64decode:
+ BYTE $0x55 // pushq %rbp
+ WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp
+ WORD $0x5741 // pushq %r15
+ WORD $0x5641 // pushq %r14
+ WORD $0x5541 // pushq %r13
+ WORD $0x5441 // pushq %r12
+ BYTE $0x53 // pushq %rbx
+ SUBQ $80, SP
+ TESTQ DX, DX
+ JE LBB1_3
+ MOVQ 0(DI), BX
+ MOVQ 8(DI), R15
+ ADDQ BX, R15
+ ADDQ 16(DI), BX
+ ADDQ SI, DX
+ TESTB $1, CX
+ LONG $0xee058d4c; WORD $0x002a; BYTE $0x00 // leaq $10990(%rip), %r8 /* _VecDecodeCharsetStd(%rip) */
+ LONG $0xe7058d48; WORD $0x002b; BYTE $0x00 // leaq $11239(%rip), %rax /* _VecDecodeCharsetURL(%rip) */
+ LONG $0xc0440f49 // cmoveq %r8, %rax
+ MOVQ AX, -56(BP)
+ TESTB $4, CX
+ MOVQ SI, -96(BP)
+ MOVQ DI, -120(BP)
+ MOVQ R15, -112(BP)
+ MOVQ BX, -88(BP)
+ JNE LBB1_4
+ MOVL CX, R8
+ ANDL $8, R8
+ ANDL $2, CX
+ MOVL CX, -44(BP)
+ JMP LBB1_764
+
+LBB1_3:
+ XORL AX, AX
+ JMP LBB1_763
+
+LBB1_4:
+ LEAQ -32(DX), R14
+ LEAQ -32(BX), R13
+ TESTB $1, CX
+ JE LBB1_9
+ QUAD $0xfffffdcd056ffec5 // vmovdqu $-563(%rip), %ymm0 /* LCPI1_1(%rip) */
+ JNE LBB1_10
+
+LBB1_6:
+ QUAD $0xfffffde30d6ffec5 // vmovdqu $-541(%rip), %ymm1 /* LCPI1_2(%rip) */
+ JNE LBB1_11
+
+LBB1_7:
+ QUAD $0xfffffe19156ffec5 // vmovdqu $-487(%rip), %ymm2 /* LCPI1_4(%rip) */
+ JNE LBB1_12
+
+LBB1_8:
+ QUAD $0xfffffe4f1d6ffec5 // vmovdqu $-433(%rip), %ymm3 /* LCPI1_6(%rip) */
+ JMP LBB1_13
+
+LBB1_9:
+ QUAD $0xfffffd85056ffec5 // vmovdqu $-635(%rip), %ymm0 /* LCPI1_0(%rip) */
+ JE LBB1_6
+
+LBB1_10:
+ QUAD $0xfffffddb0d6ffec5 // vmovdqu $-549(%rip), %ymm1 /* LCPI1_3(%rip) */
+ JE LBB1_7
+
+LBB1_11:
+ QUAD $0xfffffe11156ffec5 // vmovdqu $-495(%rip), %ymm2 /* LCPI1_5(%rip) */
+ JE LBB1_8
+
+LBB1_12:
+ QUAD $0xfffffe471d6ffec5 // vmovdqu $-441(%rip), %ymm3 /* LCPI1_7(%rip) */
+
+LBB1_13:
+ MOVL CX, R8
+ ANDL $8, R8
+ ANDL $2, CX
+ CMPQ R14, SI
+ MOVL CX, -44(BP)
+ JB LBB1_205
+ CMPQ R15, R13
+ JA LBB1_764
+ QUAD $0xfffffe40256ffec5 // vmovdqu $-448(%rip), %ymm4 /* LCPI1_8(%rip) */
+ QUAD $0xfffffe582d6ffec5 // vmovdqu $-424(%rip), %ymm5 /* LCPI1_9(%rip) */
+ LONG $0xf6efc9c5 // vpxor %xmm6, %xmm6, %xmm6
+ MOVQ $-4294967296, DI
+ QUAD $0xfffffe82056f7ec5 // vmovdqu $-382(%rip), %ymm8 /* LCPI1_11(%rip) */
+ QUAD $0xfffffe9a0d6f7ec5 // vmovdqu $-358(%rip), %ymm9 /* LCPI1_12(%rip) */
+ QUAD $0xfffffed2156f7ac5 // vmovdqu $-302(%rip), %xmm10 /* LCPI1_13(%rip) */
+ QUAD $0xfffffeaa1d6f7ec5 // vmovdqu $-342(%rip), %ymm11 /* LCPI1_14(%rip) */
+ MOVQ SI, R10
+ MOVQ R14, -72(BP)
+ MOVQ R13, -80(BP)
+
+LBB1_16:
+ LONG $0x6f7e41c4; BYTE $0x22 // vmovdqu (%r10), %ymm12
+ LONG $0x7215c1c4; WORD $0x04d4 // vpsrld $4, %ymm12, %ymm13
+ LONG $0xecdb15c5 // vpand %ymm4, %ymm13, %ymm13
+ LONG $0xf4db1dc5 // vpand %ymm4, %ymm12, %ymm14
+ LONG $0x007d42c4; BYTE $0xf6 // vpshufb %ymm14, %ymm0, %ymm14
+ LONG $0x005542c4; BYTE $0xfd // vpshufb %ymm13, %ymm5, %ymm15
+ LONG $0xdb0541c4; BYTE $0xf6 // vpand %ymm14, %ymm15, %ymm14
+ LONG $0xf6740dc5 // vpcmpeqb %ymm6, %ymm14, %ymm14
+ LONG $0xd77dc1c4; BYTE $0xc6 // vpmovmskb %ymm14, %eax
+ ORQ DI, AX
+ BSFQ AX, AX
+ CMPL AX, $31
+ JA LBB1_19
+ CMPQ R10, DX
+ JAE LBB1_110
+ MOVQ R10, R12
+ JMP LBB1_22
+
+LBB1_19:
+ LONG $0xf1741dc5 // vpcmpeqb %ymm1, %ymm12, %ymm14
+ LONG $0x006542c4; BYTE $0xed // vpshufb %ymm13, %ymm3, %ymm13
+ LONG $0x4c1563c4; WORD $0xe0ea // vpblendvb %ymm14, %ymm2, %ymm13, %ymm13
+ LONG $0xfc1541c4; BYTE $0xe4 // vpaddb %ymm12, %ymm13, %ymm12
+ QUAD $0xfffffdde25db1dc5 // vpand $-546(%rip), %ymm12, %ymm12 /* LCPI1_10(%rip) */
+ LONG $0x041d42c4; BYTE $0xe0 // vpmaddubsw %ymm8, %ymm12, %ymm12
+ LONG $0xf51d41c4; BYTE $0xe1 // vpmaddwd %ymm9, %ymm12, %ymm12
+ LONG $0x397d63c4; WORD $0x01e7 // vextracti128 $1, %ymm12, %xmm7
+ LONG $0x0041c2c4; BYTE $0xfa // vpshufb %xmm10, %xmm7, %xmm7
+ LONG $0x001d42c4; BYTE $0xe3 // vpshufb %ymm11, %ymm12, %ymm12
+ LONG $0x021de3c4; WORD $0x08ff // vpblendd $8, %ymm7, %ymm12, %ymm7
+ LONG $0x0245e3c4; WORD $0xc0fe // vpblendd $192, %ymm6, %ymm7, %ymm7
+ LONG $0x7f7ec1c4; BYTE $0x3f // vmovdqu %ymm7, (%r15)
+ ADDQ $32, R10
+ ADDQ $24, R15
+ JMP LBB1_110
+
+LBB1_38:
+ CMPB CX, $110
+ JNE LBB1_43
+
+LBB1_20:
+ MOVQ SI, R12
+
+LBB1_21:
+ CMPQ R12, DX
+ JAE LBB1_40
+
+LBB1_22:
+ LEAQ 1(R12), CX
+ MOVBLZX 0(R12), SI
+ CMPB SI, $92
+ JNE LBB1_34
+ TESTL R8, R8
+ JE LBB1_36
+ LEAQ 2(R12), SI
+ MOVB $-1, R9
+ CMPQ SI, DX
+ JA LBB1_42
+ MOVBLZX 0(CX), CX
+ CMPB CX, $113
+ JLE LBB1_38
+ CMPB CX, $114
+ JE LBB1_20
+ CMPB CX, $117
+ JNE LBB1_45
+ MOVQ DX, CX
+ SUBQ SI, CX
+ CMPQ CX, $4
+ JL LBB1_45
+ MOVL 0(SI), BX
+ MOVL BX, DI
+ NOTL DI
+ LEAL -808464432(BX), CX
+ ANDL $-2139062144, DI
+ TESTL CX, DI
+ JNE LBB1_45
+ LEAL 421075225(BX), CX
+ ORL BX, CX
+ TESTL $-2139062144, CX
+ JNE LBB1_45
+ MOVL BX, CX
+ ANDL $2139062143, CX
+ MOVL $-1061109568, AX
+ SUBL CX, AX
+ LEAL 1179010630(CX), R11
+ ANDL DI, AX
+ TESTL R11, AX
+ JNE LBB1_45
+ MOVL $-522133280, AX
+ SUBL CX, AX
+ ADDL $960051513, CX
+ ANDL AX, DI
+ TESTL CX, DI
+ JNE LBB1_45
+ BSWAPL BX
+ MOVL BX, AX
+ SHRL $4, AX
+ NOTL AX
+ ANDL $16843009, AX
+ LEAL 0(AX)(AX*8), AX
+ ANDL $252645135, BX
+ ADDL AX, BX
+ MOVL BX, SI
+ SHRL $4, SI
+ ORL BX, SI
+ MOVL SI, AX
+ SHRL $8, AX
+ ANDL $65280, AX
+ MOVL SI, CX
+ ANDL $128, CX
+ ADDQ $6, R12
+ ORL AX, CX
+ JNE LBB1_46
+ CMPB SI, $13
+ JNE LBB1_37
+ JMP LBB1_21
+
+LBB1_34:
+ MOVQ CX, R12
+ CMPB SI, $13
+ JNE LBB1_37
+ JMP LBB1_21
+
+LBB1_36:
+ MOVQ CX, R12
+ CMPB SI, $13
+ JE LBB1_21
+
+LBB1_37:
+ MOVL SI, R9
+ CMPB SI, $10
+ JE LBB1_21
+ JMP LBB1_46
+
+LBB1_40:
+ MOVB $1, CX
+ XORL DI, DI
+ XORL R11, R11
+
+LBB1_41:
+ TESTB CX, CX
+ JE LBB1_49
+ JMP LBB1_109
+
+LBB1_42:
+ MOVQ CX, R12
+ JMP LBB1_46
+
+LBB1_43:
+ CMPB CX, $47
+ JNE LBB1_45
+ MOVL CX, R9
+
+LBB1_45:
+ MOVQ SI, R12
+
+LBB1_46:
+ MOVBLZX R9, AX
+ MOVQ -56(BP), CX
+ MOVBLZX 0(CX)(AX*1), DI
+ MOVB $1, R13
+ CMPL DI, $255
+ JE LBB1_72
+ MOVL $1, R11
+ CMPQ R12, DX
+ JB LBB1_54
+
+LBB1_48:
+ MOVQ -80(BP), R13
+
+LBB1_49:
+ MOVL DI, -64(BP)
+ CMPL -44(BP), $0
+ SETEQ CX
+ CMPL R11, $1
+ SETEQ BX
+ CMPQ R12, DX
+ JB LBB1_102
+ CMPL R11, $4
+ JE LBB1_102
+ ORB BX, CX
+ JNE LBB1_97
+ JMP LBB1_102
+
+LBB1_70:
+ CMPB CX, $110
+ JNE LBB1_112
+
+LBB1_52:
+ MOVQ SI, R12
+
+LBB1_53:
+ CMPQ R12, DX
+ JAE LBB1_98
+
+LBB1_54:
+ LEAQ 1(R12), CX
+ MOVBLZX 0(R12), SI
+ CMPB SI, $92
+ JNE LBB1_66
+ TESTL R8, R8
+ JE LBB1_68
+ LEAQ 2(R12), SI
+ MOVB $-1, R9
+ CMPQ SI, DX
+ JA LBB1_100
+ MOVBLZX 0(CX), CX
+ CMPB CX, $113
+ JLE LBB1_70
+ CMPB CX, $114
+ JE LBB1_52
+ CMPB CX, $117
+ JNE LBB1_114
+ MOVQ DX, AX
+ SUBQ SI, AX
+ CMPQ AX, $4
+ JL LBB1_114
+ MOVL DI, R14
+ MOVL 0(SI), BX
+ MOVL BX, DI
+ NOTL DI
+ LEAL -808464432(BX), AX
+ ANDL $-2139062144, DI
+ TESTL AX, DI
+ JNE LBB1_99
+ LEAL 421075225(BX), AX
+ ORL BX, AX
+ TESTL $-2139062144, AX
+ JNE LBB1_99
+ MOVL BX, CX
+ ANDL $2139062143, CX
+ MOVL $-1061109568, AX
+ SUBL CX, AX
+ LEAL 1179010630(CX), R11
+ ANDL DI, AX
+ TESTL R11, AX
+ JNE LBB1_99
+ MOVL $-522133280, AX
+ SUBL CX, AX
+ ADDL $960051513, CX
+ ANDL AX, DI
+ TESTL CX, DI
+ JNE LBB1_99
+ BSWAPL BX
+ MOVL BX, AX
+ SHRL $4, AX
+ NOTL AX
+ ANDL $16843009, AX
+ LEAL 0(AX)(AX*8), AX
+ ANDL $252645135, BX
+ ADDL AX, BX
+ MOVL BX, SI
+ SHRL $4, SI
+ ORL BX, SI
+ MOVL SI, AX
+ SHRL $8, AX
+ ANDL $65280, AX
+ MOVL SI, CX
+ ANDL $128, CX
+ ADDQ $6, R12
+ ORL AX, CX
+ MOVL R14, DI
+ MOVQ -72(BP), R14
+ JE LBB1_67
+ JMP LBB1_115
+
+LBB1_66:
+ MOVQ CX, R12
+
+LBB1_67:
+ CMPB SI, $13
+ JNE LBB1_69
+ JMP LBB1_53
+
+LBB1_68:
+ MOVQ CX, R12
+ CMPB SI, $13
+ JE LBB1_53
+
+LBB1_69:
+ MOVL SI, R9
+ CMPB SI, $10
+ JE LBB1_53
+ JMP LBB1_115
+
+LBB1_72:
+ XORL DI, DI
+ XORL AX, AX
+ XORL R11, R11
+
+LBB1_73:
+ CMPL -44(BP), $0
+ JNE LBB1_96
+ CMPB R9, $61
+ JNE LBB1_96
+ TESTB R13, R13
+ JNE LBB1_96
+ MOVL DI, -64(BP)
+ CMPQ R12, DX
+ MOVQ -80(BP), R13
+ JAE LBB1_102
+ MOVL AX, -100(BP)
+ MOVQ R12, SI
+ JMP LBB1_80
+
+LBB1_95:
+ MOVQ BX, SI
+ CMPQ SI, DX
+ JB LBB1_80
+ JMP LBB1_101
+
+LBB1_78:
+ MOVQ R12, SI
+ CMPQ SI, DX
+ JAE LBB1_101
+
+LBB1_80:
+ LEAQ 1(SI), BX
+ MOVBLZX 0(SI), DI
+ CMPB DI, $92
+ JNE LBB1_92
+ TESTL R8, R8
+ JE LBB1_92
+ LEAQ 2(SI), R12
+ CMPQ R12, DX
+ JA LBB1_143
+ MOVBLZX 0(BX), CX
+ CMPB CX, $110
+ JE LBB1_78
+ CMPB CX, $114
+ JE LBB1_78
+ CMPB CX, $117
+ JNE LBB1_97
+ MOVQ DX, AX
+ SUBQ R12, AX
+ CMPQ AX, $4
+ JL LBB1_97
+ MOVL 0(R12), BX
+ MOVL BX, DI
+ NOTL DI
+ LEAL -808464432(BX), AX
+ ANDL $-2139062144, DI
+ TESTL AX, DI
+ JNE LBB1_97
+ LEAL 421075225(BX), AX
+ ORL BX, AX
+ TESTL $-2139062144, AX
+ JNE LBB1_97
+ MOVL BX, CX
+ ANDL $2139062143, CX
+ MOVL $-1061109568, AX
+ SUBL CX, AX
+ LEAL 1179010630(CX), R9
+ ANDL DI, AX
+ TESTL R9, AX
+ JNE LBB1_97
+ MOVL $-522133280, AX
+ SUBL CX, AX
+ ADDL $960051513, CX
+ ANDL AX, DI
+ TESTL CX, DI
+ JNE LBB1_97
+ BSWAPL BX
+ MOVL BX, AX
+ SHRL $4, AX
+ NOTL AX
+ ANDL $16843009, AX
+ LEAL 0(AX)(AX*8), AX
+ ANDL $252645135, BX
+ ADDL AX, BX
+ MOVL BX, DI
+ SHRL $4, DI
+ ORL BX, DI
+ MOVL DI, AX
+ SHRL $8, AX
+ ANDL $65280, AX
+ MOVL DI, CX
+ ANDL $128, CX
+ ADDQ $6, SI
+ ORL AX, CX
+ MOVQ SI, BX
+ MOVQ SI, R12
+ JNE LBB1_97
+
+LBB1_92:
+ CMPB DI, $10
+ JE LBB1_95
+ CMPB DI, $13
+ JE LBB1_95
+ CMPB DI, $61
+ JNE LBB1_143
+ CMPB -100(BP), $0
+ JE LBB1_147
+
+LBB1_143:
+ MOVQ BX, R12
+ JMP LBB1_97
+
+LBB1_96:
+ MOVQ -80(BP), R13
+
+LBB1_97:
+ XORL CX, CX
+ CMPQ R12, DX
+ SETEQ CX
+ ADDQ R12, CX
+ CMPQ CX, R10
+ MOVQ $-4294967296, DI
+ JE LBB1_110
+ JMP LBB1_762
+
+LBB1_98:
+ MOVL $1, R11
+ XORL CX, CX
+ MOVQ -80(BP), R13
+ JMP LBB1_41
+
+LBB1_99:
+ MOVQ SI, R12
+ MOVL R14, DI
+ MOVQ -72(BP), R14
+ JMP LBB1_115
+
+LBB1_100:
+ MOVQ CX, R12
+ JMP LBB1_115
+
+LBB1_101:
+ MOVQ SI, R12
+
+LBB1_102:
+ MOVB $4, AX
+ SUBB R11, AX
+ MOVBLZX AX, AX
+ ADDL AX, AX
+ LEAL 0(AX)(AX*2), CX
+ MOVL -64(BP), AX
+ SHLL CX, AX
+ CMPL R11, $2
+ MOVQ R15, CX
+ JE LBB1_107
+ CMPL R11, $3
+ JE LBB1_106
+ CMPL R11, $4
+ JNE LBB1_108
+ MOVB AX, 2(CX)
+
+LBB1_106:
+ MOVB AH, 1(CX)
+
+LBB1_107:
+ SHRL $16, AX
+ MOVB AX, 0(CX)
+
+LBB1_108:
+ MOVL R11, AX
+ LEAQ 0(AX)(CX*1), R15
+ ADDQ $-1, R15
+
+LBB1_109:
+ MOVQ R12, R10
+ MOVQ $-4294967296, DI
+
+LBB1_110:
+ CMPQ R10, R14
+ JA LBB1_206
+ CMPQ R15, R13
+ JBE LBB1_16
+ JMP LBB1_206
+
+LBB1_112:
+ CMPB CX, $47
+ JNE LBB1_114
+ MOVL CX, R9
+
+LBB1_114:
+ MOVQ SI, R12
+
+LBB1_115:
+ MOVBLZX R9, AX
+ MOVQ -56(BP), CX
+ MOVBLZX 0(CX)(AX*1), CX
+ CMPL CX, $255
+ JE LBB1_138
+ SHLL $6, DI
+ ORL CX, DI
+ MOVL $2, R11
+ CMPQ R12, DX
+ JAE LBB1_48
+ MOVQ -80(BP), R13
+ JMP LBB1_120
+
+LBB1_136:
+ CMPB CX, $110
+ JNE LBB1_169
+
+LBB1_118:
+ MOVQ SI, R12
+
+LBB1_119:
+ CMPQ R12, DX
+ JAE LBB1_142
+
+LBB1_120:
+ LEAQ 1(R12), CX
+ MOVBLZX 0(R12), SI
+ CMPB SI, $92
+ JNE LBB1_132
+ TESTL R8, R8
+ JE LBB1_134
+ LEAQ 2(R12), SI
+ MOVB $-1, R9
+ CMPQ SI, DX
+ JA LBB1_146
+ MOVBLZX 0(CX), CX
+ CMPB CX, $113
+ JLE LBB1_136
+ CMPB CX, $114
+ JE LBB1_118
+ CMPB CX, $117
+ JNE LBB1_171
+ MOVQ DX, AX
+ SUBQ SI, AX
+ CMPQ AX, $4
+ JL LBB1_171
+ MOVL DI, R14
+ MOVL 0(SI), BX
+ MOVL BX, DI
+ NOTL DI
+ LEAL -808464432(BX), AX
+ ANDL $-2139062144, DI
+ TESTL AX, DI
+ JNE LBB1_144
+ LEAL 421075225(BX), AX
+ ORL BX, AX
+ TESTL $-2139062144, AX
+ JNE LBB1_144
+ MOVL BX, CX
+ ANDL $2139062143, CX
+ MOVL $-1061109568, AX
+ SUBL CX, AX
+ LEAL 1179010630(CX), R11
+ ANDL DI, AX
+ TESTL R11, AX
+ JNE LBB1_144
+ MOVL $-522133280, AX
+ SUBL CX, AX
+ ADDL $960051513, CX
+ ANDL AX, DI
+ TESTL CX, DI
+ JNE LBB1_144
+ BSWAPL BX
+ MOVL BX, AX
+ SHRL $4, AX
+ NOTL AX
+ ANDL $16843009, AX
+ LEAL 0(AX)(AX*8), AX
+ ANDL $252645135, BX
+ ADDL AX, BX
+ MOVL BX, SI
+ SHRL $4, SI
+ ORL BX, SI
+ MOVL SI, AX
+ SHRL $8, AX
+ ANDL $65280, AX
+ MOVL SI, CX
+ ANDL $128, CX
+ ADDQ $6, R12
+ ORL AX, CX
+ MOVL R14, DI
+ MOVQ -72(BP), R14
+ JE LBB1_133
+ JMP LBB1_172
+
+LBB1_132:
+ MOVQ CX, R12
+
+LBB1_133:
+ CMPB SI, $13
+ JNE LBB1_135
+ JMP LBB1_119
+
+LBB1_134:
+ MOVQ CX, R12
+ CMPB SI, $13
+ JE LBB1_119
+
+LBB1_135:
+ MOVL SI, R9
+ CMPB SI, $10
+ JE LBB1_119
+ JMP LBB1_172
+
+LBB1_138:
+ XORL AX, AX
+ MOVL $1, R11
+ JMP LBB1_73
+
+LBB1_142:
+ MOVL $2, R11
+ XORL CX, CX
+ JMP LBB1_41
+
+LBB1_144:
+ MOVQ SI, R12
+ MOVL R14, DI
+ MOVQ -72(BP), R14
+ JMP LBB1_172
+
+LBB1_146:
+ MOVQ CX, R12
+ JMP LBB1_172
+
+LBB1_147:
+ CMPQ BX, DX
+ JB LBB1_151
+
+LBB1_148:
+ MOVQ BX, R12
+ JMP LBB1_102
+
+LBB1_149:
+ MOVQ R12, BX
+
+LBB1_150:
+ CMPQ BX, DX
+ JAE LBB1_148
+
+LBB1_151:
+ LEAQ 1(BX), CX
+ MOVBLZX 0(BX), SI
+ CMPB SI, $92
+ JNE LBB1_164
+ TESTL R8, R8
+ JE LBB1_164
+ LEAQ 2(BX), R12
+ CMPQ R12, DX
+ JA LBB1_204
+ MOVBLZX 0(CX), CX
+ CMPB CX, $110
+ JE LBB1_149
+ CMPB CX, $114
+ JE LBB1_149
+ CMPB CX, $117
+ JNE LBB1_97
+ MOVQ DX, AX
+ SUBQ R12, AX
+ CMPQ AX, $4
+ JL LBB1_97
+ MOVL 0(R12), CX
+ MOVL CX, SI
+ NOTL SI
+ LEAL -808464432(CX), AX
+ ANDL $-2139062144, SI
+ TESTL AX, SI
+ JNE LBB1_97
+ LEAL 421075225(CX), AX
+ ORL CX, AX
+ TESTL $-2139062144, AX
+ JNE LBB1_97
+ MOVL CX, DI
+ ANDL $2139062143, DI
+ MOVL $-1061109568, AX
+ SUBL DI, AX
+ LEAL 1179010630(DI), R9
+ ANDL SI, AX
+ TESTL R9, AX
+ JNE LBB1_97
+ MOVL $-522133280, AX
+ SUBL DI, AX
+ ADDL $960051513, DI
+ ANDL AX, SI
+ TESTL DI, SI
+ JNE LBB1_97
+ BSWAPL CX
+ MOVL CX, AX
+ SHRL $4, AX
+ NOTL AX
+ ANDL $16843009, AX
+ LEAL 0(AX)(AX*8), AX
+ ANDL $252645135, CX
+ ADDL AX, CX
+ MOVL CX, SI
+ SHRL $4, SI
+ ORL CX, SI
+ MOVL SI, AX
+ SHRL $8, AX
+ ANDL $65280, AX
+ MOVL SI, CX
+ ANDL $128, CX
+ ADDQ $6, BX
+ ORL AX, CX
+ MOVQ BX, R12
+ JE LBB1_165
+ JMP LBB1_97
+
+LBB1_164:
+ MOVQ CX, R12
+
+LBB1_165:
+ CMPB SI, $13
+ JE LBB1_149
+ MOVQ R12, BX
+ CMPB SI, $10
+ JE LBB1_150
+ JMP LBB1_97
+
+LBB1_169:
+ CMPB CX, $47
+ JNE LBB1_171
+ MOVL CX, R9
+
+LBB1_171:
+ MOVQ SI, R12
+
+LBB1_172:
+ MOVBLZX R9, AX
+ MOVQ -56(BP), CX
+ MOVBLZX 0(CX)(AX*1), CX
+ CMPL CX, $255
+ JE LBB1_194
+ SHLL $6, DI
+ ORL CX, DI
+ MOVL $3, R11
+ CMPQ R12, DX
+ JB LBB1_176
+ JMP LBB1_49
+
+LBB1_192:
+ CMPB CX, $110
+ JNE LBB1_197
+
+LBB1_174:
+ MOVQ SI, R12
+
+LBB1_175:
+ MOVL $3, R11
+ XORL CX, CX
+ CMPQ R12, DX
+ JAE LBB1_41
+
+LBB1_176:
+ LEAQ 1(R12), CX
+ MOVBLZX 0(R12), SI
+ CMPB SI, $92
+ JNE LBB1_189
+ TESTL R8, R8
+ JE LBB1_189
+ LEAQ 2(R12), SI
+ MOVB $-1, R9
+ CMPQ SI, DX
+ JA LBB1_196
+ MOVBLZX 0(CX), CX
+ CMPB CX, $113
+ JLE LBB1_192
+ CMPB CX, $114
+ JE LBB1_174
+ CMPB CX, $117
+ JNE LBB1_199
+ MOVQ DX, AX
+ SUBQ SI, AX
+ CMPQ AX, $4
+ JL LBB1_199
+ MOVL DI, R14
+ MOVL 0(SI), BX
+ MOVL BX, DI
+ NOTL DI
+ LEAL -808464432(BX), AX
+ ANDL $-2139062144, DI
+ TESTL AX, DI
+ JNE LBB1_195
+ LEAL 421075225(BX), AX
+ ORL BX, AX
+ TESTL $-2139062144, AX
+ JNE LBB1_195
+ MOVL BX, CX
+ ANDL $2139062143, CX
+ MOVL $-1061109568, AX
+ SUBL CX, AX
+ LEAL 1179010630(CX), R11
+ ANDL DI, AX
+ TESTL R11, AX
+ JNE LBB1_195
+ MOVL $-522133280, AX
+ SUBL CX, AX
+ ADDL $960051513, CX
+ ANDL AX, DI
+ TESTL CX, DI
+ JNE LBB1_195
+ BSWAPL BX
+ MOVL BX, AX
+ SHRL $4, AX
+ NOTL AX
+ ANDL $16843009, AX
+ LEAL 0(AX)(AX*8), AX
+ ANDL $252645135, BX
+ ADDL AX, BX
+ MOVL BX, SI
+ SHRL $4, SI
+ ORL BX, SI
+ MOVL SI, AX
+ SHRL $8, AX
+ ANDL $65280, AX
+ MOVL SI, CX
+ ANDL $128, CX
+ ADDQ $6, R12
+ ORL AX, CX
+ MOVL R14, DI
+ MOVQ -72(BP), R14
+ JE LBB1_190
+ JMP LBB1_200
+
+LBB1_189:
+ MOVQ CX, R12
+
+LBB1_190:
+ CMPB SI, $13
+ JE LBB1_175
+ MOVL SI, R9
+ CMPB SI, $10
+ JE LBB1_175
+ JMP LBB1_200
+
+LBB1_194:
+ XORL R13, R13
+ MOVL $2, R11
+ XORL AX, AX
+ JMP LBB1_73
+
+LBB1_195:
+ MOVQ SI, R12
+ MOVL R14, DI
+ MOVQ -72(BP), R14
+ JMP LBB1_200
+
+LBB1_196:
+ MOVQ CX, R12
+ JMP LBB1_200
+
+LBB1_197:
+ CMPB CX, $47
+ JNE LBB1_199
+ MOVL CX, R9
+
+LBB1_199:
+ MOVQ SI, R12
+
+LBB1_200:
+ MOVBLZX R9, AX
+ MOVQ -56(BP), CX
+ MOVBLZX 0(CX)(AX*1), CX
+ CMPL CX, $255
+ JE LBB1_202
+ SHLL $6, DI
+ ORL CX, DI
+ MOVL $4, R11
+ JMP LBB1_49
+
+LBB1_202:
+ XORL R13, R13
+ MOVL $3, R11
+ MOVB $1, AX
+ JMP LBB1_73
+
+LBB1_204:
+ MOVQ CX, R12
+ JMP LBB1_97
+
+LBB1_764:
+ MOVQ SI, R10
+ LEAQ -8(DX), AX
+ MOVQ AX, -80(BP)
+ CMPQ R10, AX
+ JBE LBB1_207
+ JMP LBB1_393
+
+LBB1_205:
+ MOVQ SI, R10
+
+LBB1_206:
+ LEAQ -8(DX), AX
+ MOVQ AX, -80(BP)
+ CMPQ R10, AX
+ JA LBB1_393
+
+LBB1_207:
+ MOVQ -88(BP), AX
+ ADDQ $-8, AX
+ MOVQ AX, -72(BP)
+ CMPQ R15, AX
+ JA LBB1_393
+
+LBB1_208:
+ MOVQ R15, -64(BP)
+ MOVBLZX 0(R10), AX
+ MOVQ -56(BP), DI
+ MOVBLZX 0(DI)(AX*1), R9
+ MOVBLZX 1(R10), AX
+ MOVBLZX 0(DI)(AX*1), SI
+ MOVBLZX 2(R10), AX
+ MOVBLZX 0(DI)(AX*1), R12
+ MOVBLZX 3(R10), AX
+ MOVBLZX 0(DI)(AX*1), AX
+ MOVBLZX 4(R10), CX
+ MOVBLZX 0(DI)(CX*1), R13
+ MOVBLZX 5(R10), CX
+ MOVBLZX 0(DI)(CX*1), R11
+ MOVBLZX 6(R10), CX
+ MOVBLZX 0(DI)(CX*1), BX
+ MOVBLZX 7(R10), CX
+ MOVBLZX 0(DI)(CX*1), CX
+ MOVL SI, DI
+ ORL R9, DI
+ MOVL AX, R15
+ ORL R12, R15
+ ORL DI, R15
+ MOVL R11, DI
+ ORL R13, DI
+ MOVL BX, R14
+ ORL DI, R14
+ ORL R15, R14
+ MOVL CX, DI
+ ORL R14, DI
+ CMPB DI, $-1
+ JE LBB1_210
+ SHLQ $58, R9
+ SHLQ $52, SI
+ ORQ R9, SI
+ SHLQ $46, R12
+ SHLQ $40, AX
+ ORQ R12, AX
+ ORQ SI, AX
+ SHLQ $34, R13
+ SHLQ $28, R11
+ ORQ R13, R11
+ SHLQ $22, BX
+ ORQ R11, BX
+ ORQ AX, BX
+ SHLQ $16, CX
+ ORQ BX, CX
+ BSWAPQ CX
+ MOVQ -64(BP), AX
+ MOVQ CX, 0(AX)
+ ADDQ $8, R10
+ ADDQ $6, AX
+ MOVQ AX, -64(BP)
+ CMPQ R10, -80(BP)
+ JBE LBB1_330
+ JMP LBB1_392
+
+LBB1_210:
+ CMPQ R10, DX
+ JAE LBB1_329
+ MOVQ R10, R14
+ JMP LBB1_214
+
+LBB1_230:
+ CMPB CX, $110
+ JNE LBB1_236
+
+LBB1_212:
+ MOVQ SI, R14
+
+LBB1_213:
+ CMPQ R14, DX
+ JAE LBB1_232
+
+LBB1_214:
+ LEAQ 1(R14), CX
+ MOVBLZX 0(R14), SI
+ CMPB SI, $92
+ JNE LBB1_226
+ TESTL R8, R8
+ JE LBB1_228
+ LEAQ 2(R14), SI
+ MOVB $-1, R13
+ CMPQ SI, DX
+ JA LBB1_235
+ MOVBLZX 0(CX), CX
+ CMPB CX, $113
+ JLE LBB1_230
+ CMPB CX, $114
+ JE LBB1_212
+ CMPB CX, $117
+ JNE LBB1_238
+ MOVQ DX, CX
+ SUBQ SI, CX
+ CMPQ CX, $4
+ JL LBB1_238
+ MOVL 0(SI), BX
+ MOVL BX, DI
+ NOTL DI
+ LEAL -808464432(BX), CX
+ ANDL $-2139062144, DI
+ TESTL CX, DI
+ JNE LBB1_238
+ LEAL 421075225(BX), CX
+ ORL BX, CX
+ TESTL $-2139062144, CX
+ JNE LBB1_238
+ MOVL BX, CX
+ ANDL $2139062143, CX
+ MOVL $-1061109568, AX
+ SUBL CX, AX
+ LEAL 1179010630(CX), R9
+ ANDL DI, AX
+ TESTL R9, AX
+ JNE LBB1_238
+ MOVL $-522133280, AX
+ SUBL CX, AX
+ ADDL $960051513, CX
+ ANDL AX, DI
+ TESTL CX, DI
+ JNE LBB1_238
+ BSWAPL BX
+ MOVL BX, AX
+ SHRL $4, AX
+ NOTL AX
+ ANDL $16843009, AX
+ LEAL 0(AX)(AX*8), AX
+ ANDL $252645135, BX
+ ADDL AX, BX
+ MOVL BX, SI
+ SHRL $4, SI
+ ORL BX, SI
+ MOVL SI, AX
+ SHRL $8, AX
+ ANDL $65280, AX
+ MOVL SI, CX
+ ANDL $128, CX
+ ADDQ $6, R14
+ ORL AX, CX
+ JNE LBB1_239
+ CMPB SI, $13
+ JNE LBB1_229
+ JMP LBB1_213
+
+LBB1_226:
+ MOVQ CX, R14
+ CMPB SI, $13
+ JNE LBB1_229
+ JMP LBB1_213
+
+LBB1_228:
+ MOVQ CX, R14
+ CMPB SI, $13
+ JE LBB1_213
+
+LBB1_229:
+ MOVL SI, R13
+ CMPB SI, $10
+ JE LBB1_213
+ JMP LBB1_239
+
+LBB1_232:
+ MOVB $1, CX
+ XORL DI, DI
+ XORL R11, R11
+
+LBB1_233:
+ TESTB CX, CX
+ JE LBB1_241
+ MOVQ R14, R10
+ CMPQ R10, -80(BP)
+ JBE LBB1_330
+ JMP LBB1_392
+
+LBB1_235:
+ MOVQ CX, R14
+ JMP LBB1_239
+
+LBB1_236:
+ CMPB CX, $47
+ JNE LBB1_238
+ MOVL CX, R13
+
+LBB1_238:
+ MOVQ SI, R14
+
+LBB1_239:
+ MOVBLZX R13, AX
+ MOVQ -56(BP), CX
+ MOVBLZX 0(CX)(AX*1), DI
+ MOVB $1, R9
+ CMPL DI, $255
+ JE LBB1_264
+ MOVL $1, R11
+ CMPQ R14, DX
+ JB LBB1_246
+
+LBB1_241:
+ MOVL DI, R15
+ CMPL -44(BP), $0
+ SETEQ CX
+ CMPL R11, $1
+ SETEQ BX
+ CMPQ R14, DX
+ JB LBB1_292
+ CMPL R11, $4
+ JE LBB1_292
+ ORB BX, CX
+ JNE LBB1_328
+ JMP LBB1_292
+
+LBB1_262:
+ CMPB CX, $110
+ JNE LBB1_299
+
+LBB1_244:
+ MOVQ SI, R14
+
+LBB1_245:
+ CMPQ R14, DX
+ JAE LBB1_288
+
+LBB1_246:
+ LEAQ 1(R14), CX
+ MOVBLZX 0(R14), SI
+ CMPB SI, $92
+ JNE LBB1_258
+ TESTL R8, R8
+ JE LBB1_260
+ LEAQ 2(R14), SI
+ MOVB $-1, R13
+ CMPQ SI, DX
+ JA LBB1_290
+ MOVBLZX 0(CX), CX
+ CMPB CX, $113
+ JLE LBB1_262
+ CMPB CX, $114
+ JE LBB1_244
+ CMPB CX, $117
+ JNE LBB1_301
+ MOVQ DX, AX
+ SUBQ SI, AX
+ CMPQ AX, $4
+ JL LBB1_301
+ MOVL DI, R15
+ MOVL 0(SI), BX
+ MOVL BX, DI
+ NOTL DI
+ LEAL -808464432(BX), AX
+ ANDL $-2139062144, DI
+ TESTL AX, DI
+ JNE LBB1_289
+ LEAL 421075225(BX), AX
+ ORL BX, AX
+ TESTL $-2139062144, AX
+ JNE LBB1_289
+ MOVL BX, CX
+ ANDL $2139062143, CX
+ MOVL $-1061109568, AX
+ SUBL CX, AX
+ LEAL 1179010630(CX), R11
+ ANDL DI, AX
+ TESTL R11, AX
+ JNE LBB1_289
+ MOVL $-522133280, AX
+ SUBL CX, AX
+ ADDL $960051513, CX
+ ANDL AX, DI
+ TESTL CX, DI
+ JNE LBB1_289
+ BSWAPL BX
+ MOVL BX, AX
+ SHRL $4, AX
+ NOTL AX
+ ANDL $16843009, AX
+ LEAL 0(AX)(AX*8), AX
+ ANDL $252645135, BX
+ ADDL AX, BX
+ MOVL BX, SI
+ SHRL $4, SI
+ ORL BX, SI
+ MOVL SI, AX
+ SHRL $8, AX
+ ANDL $65280, AX
+ MOVL SI, CX
+ ANDL $128, CX
+ ADDQ $6, R14
+ ORL AX, CX
+ MOVL R15, DI
+ JE LBB1_259
+ JMP LBB1_302
+
+LBB1_258:
+ MOVQ CX, R14
+
+LBB1_259:
+ CMPB SI, $13
+ JNE LBB1_261
+ JMP LBB1_245
+
+LBB1_260:
+ MOVQ CX, R14
+ CMPB SI, $13
+ JE LBB1_245
+
+LBB1_261:
+ MOVL SI, R13
+ CMPB SI, $10
+ JE LBB1_245
+ JMP LBB1_302
+
+LBB1_264:
+ XORL DI, DI
+ XORL R12, R12
+ XORL R11, R11
+
+LBB1_265:
+ CMPL -44(BP), $0
+ JNE LBB1_328
+ CMPB R13, $61
+ JNE LBB1_328
+ TESTB R9, R9
+ JNE LBB1_328
+ MOVL DI, R15
+ CMPQ R14, DX
+ JAE LBB1_292
+ MOVQ R14, BX
+ JMP LBB1_272
+
+LBB1_287:
+ MOVQ SI, BX
+ CMPQ BX, DX
+ JB LBB1_272
+ JMP LBB1_291
+
+LBB1_270:
+ MOVQ R14, BX
+ CMPQ BX, DX
+ JAE LBB1_291
+
+LBB1_272:
+ LEAQ 1(BX), SI
+ MOVBLZX 0(BX), DI
+ CMPB DI, $92
+ JNE LBB1_284
+ TESTL R8, R8
+ JE LBB1_284
+ LEAQ 2(BX), R14
+ CMPQ R14, DX
+ JA LBB1_327
+ MOVBLZX 0(SI), CX
+ CMPB CX, $110
+ JE LBB1_270
+ CMPB CX, $114
+ JE LBB1_270
+ CMPB CX, $117
+ JNE LBB1_328
+ MOVQ DX, AX
+ SUBQ R14, AX
+ CMPQ AX, $4
+ JL LBB1_328
+ MOVL 0(R14), CX
+ MOVL CX, SI
+ NOTL SI
+ LEAL -808464432(CX), AX
+ ANDL $-2139062144, SI
+ TESTL AX, SI
+ JNE LBB1_328
+ LEAL 421075225(CX), AX
+ ORL CX, AX
+ TESTL $-2139062144, AX
+ JNE LBB1_328
+ MOVL CX, DI
+ ANDL $2139062143, DI
+ MOVL $-1061109568, AX
+ SUBL DI, AX
+ LEAL 1179010630(DI), R9
+ ANDL SI, AX
+ TESTL R9, AX
+ JNE LBB1_328
+ MOVL $-522133280, AX
+ SUBL DI, AX
+ ADDL $960051513, DI
+ ANDL AX, SI
+ TESTL DI, SI
+ JNE LBB1_328
+ BSWAPL CX
+ MOVL CX, AX
+ SHRL $4, AX
+ NOTL AX
+ ANDL $16843009, AX
+ LEAL 0(AX)(AX*8), AX
+ ANDL $252645135, CX
+ ADDL AX, CX
+ MOVL CX, DI
+ SHRL $4, DI
+ ORL CX, DI
+ MOVL DI, AX
+ SHRL $8, AX
+ ANDL $65280, AX
+ MOVL DI, CX
+ ANDL $128, CX
+ ADDQ $6, BX
+ ORL AX, CX
+ MOVQ BX, SI
+ MOVQ BX, R14
+ JNE LBB1_328
+
+LBB1_284:
+ CMPB DI, $10
+ JE LBB1_287
+ CMPB DI, $13
+ JE LBB1_287
+ CMPB DI, $61
+ JNE LBB1_327
+ TESTB R12, R12
+ JE LBB1_334
+
+LBB1_327:
+ MOVQ SI, R14
+
+LBB1_328:
+ XORL CX, CX
+ CMPQ R14, DX
+ SETEQ CX
+ ADDQ R14, CX
+ CMPQ CX, R10
+ JNE LBB1_762
+
+LBB1_329:
+ CMPQ R10, -80(BP)
+ JA LBB1_392
+
+LBB1_330:
+ MOVQ -64(BP), R15
+ CMPQ R15, -72(BP)
+ JBE LBB1_208
+ JMP LBB1_393
+
+LBB1_288:
+ MOVL $1, R11
+ XORL CX, CX
+ JMP LBB1_233
+
+LBB1_289:
+ MOVQ SI, R14
+ MOVL R15, DI
+ JMP LBB1_302
+
+LBB1_290:
+ MOVQ CX, R14
+ JMP LBB1_302
+
+LBB1_291:
+ MOVQ BX, R14
+
+LBB1_292:
+ MOVB $4, AX
+ SUBB R11, AX
+ MOVBLZX AX, AX
+ ADDL AX, AX
+ LEAL 0(AX)(AX*2), CX
+ MOVL R15, AX
+ SHLL CX, AX
+ CMPL R11, $2
+ MOVQ -64(BP), CX
+ JE LBB1_297
+ CMPL R11, $3
+ JE LBB1_296
+ CMPL R11, $4
+ JNE LBB1_298
+ MOVB AX, 2(CX)
+
+LBB1_296:
+ MOVB AH, 1(CX)
+
+LBB1_297:
+ SHRL $16, AX
+ MOVB AX, 0(CX)
+
+LBB1_298:
+ MOVL R11, AX
+ ADDQ AX, CX
+ ADDQ $-1, CX
+ MOVQ CX, -64(BP)
+ MOVQ R14, R10
+ CMPQ R10, -80(BP)
+ JBE LBB1_330
+ JMP LBB1_392
+
+LBB1_299:
+ CMPB CX, $47
+ JNE LBB1_301
+ MOVL CX, R13
+
+LBB1_301:
+ MOVQ SI, R14
+
+LBB1_302:
+ MOVBLZX R13, AX
+ MOVQ -56(BP), CX
+ MOVBLZX 0(CX)(AX*1), CX
+ CMPL CX, $255
+ JE LBB1_324
+ SHLL $6, DI
+ ORL CX, DI
+ MOVL $2, R11
+ CMPQ R14, DX
+ JB LBB1_306
+ JMP LBB1_241
+
+LBB1_322:
+ CMPB CX, $110
+ JNE LBB1_356
+
+LBB1_304:
+ MOVQ SI, R14
+
+LBB1_305:
+ CMPQ R14, DX
+ JAE LBB1_331
+
+LBB1_306:
+ LEAQ 1(R14), CX
+ MOVBLZX 0(R14), SI
+ CMPB SI, $92
+ JNE LBB1_318
+ TESTL R8, R8
+ JE LBB1_320
+ LEAQ 2(R14), SI
+ MOVB $-1, R13
+ CMPQ SI, DX
+ JA LBB1_333
+ MOVBLZX 0(CX), CX
+ CMPB CX, $113
+ JLE LBB1_322
+ CMPB CX, $114
+ JE LBB1_304
+ CMPB CX, $117
+ JNE LBB1_358
+ MOVQ DX, AX
+ SUBQ SI, AX
+ CMPQ AX, $4
+ JL LBB1_358
+ MOVL DI, R11
+ MOVL 0(SI), BX
+ MOVL BX, DI
+ NOTL DI
+ LEAL -808464432(BX), AX
+ ANDL $-2139062144, DI
+ TESTL AX, DI
+ JNE LBB1_332
+ LEAL 421075225(BX), AX
+ ORL BX, AX
+ TESTL $-2139062144, AX
+ JNE LBB1_332
+ MOVL BX, CX
+ ANDL $2139062143, CX
+ MOVL $-1061109568, AX
+ SUBL CX, AX
+ LEAL 1179010630(CX), R9
+ ANDL DI, AX
+ TESTL R9, AX
+ JNE LBB1_332
+ MOVL $-522133280, AX
+ SUBL CX, AX
+ ADDL $960051513, CX
+ ANDL AX, DI
+ TESTL CX, DI
+ JNE LBB1_332
+ BSWAPL BX
+ MOVL BX, AX
+ SHRL $4, AX
+ NOTL AX
+ ANDL $16843009, AX
+ LEAL 0(AX)(AX*8), AX
+ ANDL $252645135, BX
+ ADDL AX, BX
+ MOVL BX, SI
+ SHRL $4, SI
+ ORL BX, SI
+ MOVL SI, AX
+ SHRL $8, AX
+ ANDL $65280, AX
+ MOVL SI, CX
+ ANDL $128, CX
+ ADDQ $6, R14
+ ORL AX, CX
+ MOVL R11, DI
+ JE LBB1_319
+ JMP LBB1_359
+
+LBB1_318:
+ MOVQ CX, R14
+
+LBB1_319:
+ CMPB SI, $13
+ JNE LBB1_321
+ JMP LBB1_305
+
+LBB1_320:
+ MOVQ CX, R14
+ CMPB SI, $13
+ JE LBB1_305
+
+LBB1_321:
+ MOVL SI, R13
+ CMPB SI, $10
+ JE LBB1_305
+ JMP LBB1_359
+
+LBB1_324:
+ XORL R12, R12
+ MOVL $1, R11
+ JMP LBB1_265
+
+LBB1_331:
+ MOVL $2, R11
+ XORL CX, CX
+ JMP LBB1_233
+
+LBB1_332:
+ MOVQ SI, R14
+ MOVL R11, DI
+ JMP LBB1_359
+
+LBB1_333:
+ MOVQ CX, R14
+ JMP LBB1_359
+
+LBB1_334:
+ CMPQ SI, DX
+ JB LBB1_338
+
+LBB1_335:
+ MOVQ SI, R14
+ JMP LBB1_292
+
+LBB1_336:
+ MOVQ R14, SI
+
+LBB1_337:
+ CMPQ SI, DX
+ JAE LBB1_335
+
+LBB1_338:
+ LEAQ 1(SI), CX
+ MOVBLZX 0(SI), DI
+ CMPB DI, $92
+ JNE LBB1_351
+ TESTL R8, R8
+ JE LBB1_351
+ LEAQ 2(SI), R14
+ CMPQ R14, DX
+ JA LBB1_391
+ MOVBLZX 0(CX), CX
+ CMPB CX, $110
+ JE LBB1_336
+ CMPB CX, $114
+ JE LBB1_336
+ CMPB CX, $117
+ JNE LBB1_328
+ MOVQ DX, AX
+ SUBQ R14, AX
+ CMPQ AX, $4
+ JL LBB1_328
+ MOVL 0(R14), BX
+ MOVL BX, DI
+ NOTL DI
+ LEAL -808464432(BX), AX
+ ANDL $-2139062144, DI
+ TESTL AX, DI
+ JNE LBB1_328
+ LEAL 421075225(BX), AX
+ ORL BX, AX
+ TESTL $-2139062144, AX
+ JNE LBB1_328
+ MOVL BX, CX
+ ANDL $2139062143, CX
+ MOVL $-1061109568, AX
+ SUBL CX, AX
+ LEAL 1179010630(CX), R9
+ ANDL DI, AX
+ TESTL R9, AX
+ JNE LBB1_328
+ MOVL $-522133280, AX
+ SUBL CX, AX
+ ADDL $960051513, CX
+ ANDL AX, DI
+ TESTL CX, DI
+ JNE LBB1_328
+ BSWAPL BX
+ MOVL BX, AX
+ SHRL $4, AX
+ NOTL AX
+ ANDL $16843009, AX
+ LEAL 0(AX)(AX*8), AX
+ ANDL $252645135, BX
+ ADDL AX, BX
+ MOVL BX, DI
+ SHRL $4, DI
+ ORL BX, DI
+ MOVL DI, AX
+ SHRL $8, AX
+ ANDL $65280, AX
+ MOVL DI, CX
+ ANDL $128, CX
+ ADDQ $6, SI
+ ORL AX, CX
+ MOVQ SI, R14
+ JE LBB1_352
+ JMP LBB1_328
+
+LBB1_351:
+ MOVQ CX, R14
+
+LBB1_352:
+ CMPB DI, $13
+ JE LBB1_336
+ MOVQ R14, SI
+ CMPB DI, $10
+ JE LBB1_337
+ JMP LBB1_328
+
+LBB1_356:
+ CMPB CX, $47
+ JNE LBB1_358
+ MOVL CX, R13
+
+LBB1_358:
+ MOVQ SI, R14
+
+LBB1_359:
+ MOVBLZX R13, AX
+ MOVQ -56(BP), CX
+ MOVBLZX 0(CX)(AX*1), CX
+ CMPL CX, $255
+ JE LBB1_381
+ SHLL $6, DI
+ ORL CX, DI
+ MOVL $3, R11
+ CMPQ R14, DX
+ JB LBB1_363
+ JMP LBB1_241
+
+LBB1_379:
+ CMPB CX, $110
+ JNE LBB1_384
+
+LBB1_361:
+ MOVQ SI, R14
+
+LBB1_362:
+ MOVL $3, R11
+ XORL CX, CX
+ CMPQ R14, DX
+ JAE LBB1_233
+
+LBB1_363:
+ LEAQ 1(R14), CX
+ MOVBLZX 0(R14), SI
+ CMPB SI, $92
+ JNE LBB1_375
+ TESTL R8, R8
+ JE LBB1_377
+ LEAQ 2(R14), SI
+ MOVB $-1, R13
+ CMPQ SI, DX
+ JA LBB1_383
+ MOVBLZX 0(CX), CX
+ CMPB CX, $113
+ JLE LBB1_379
+ CMPB CX, $114
+ JE LBB1_361
+ CMPB CX, $117
+ JNE LBB1_386
+ MOVQ DX, AX
+ SUBQ SI, AX
+ CMPQ AX, $4
+ JL LBB1_386
+ MOVL DI, R11
+ MOVL 0(SI), BX
+ MOVL BX, DI
+ NOTL DI
+ LEAL -808464432(BX), AX
+ ANDL $-2139062144, DI
+ TESTL AX, DI
+ JNE LBB1_382
+ LEAL 421075225(BX), AX
+ ORL BX, AX
+ TESTL $-2139062144, AX
+ JNE LBB1_382
+ MOVL BX, CX
+ ANDL $2139062143, CX
+ MOVL $-1061109568, AX
+ SUBL CX, AX
+ LEAL 1179010630(CX), R9
+ ANDL DI, AX
+ TESTL R9, AX
+ JNE LBB1_382
+ MOVL $-522133280, AX
+ SUBL CX, AX
+ ADDL $960051513, CX
+ ANDL AX, DI
+ TESTL CX, DI
+ JNE LBB1_382
+ BSWAPL BX
+ MOVL BX, AX
+ SHRL $4, AX
+ NOTL AX
+ ANDL $16843009, AX
+ LEAL 0(AX)(AX*8), AX
+ ANDL $252645135, BX
+ ADDL AX, BX
+ MOVL BX, SI
+ SHRL $4, SI
+ ORL BX, SI
+ MOVL SI, AX
+ SHRL $8, AX
+ ANDL $65280, AX
+ MOVL SI, CX
+ ANDL $128, CX
+ ADDQ $6, R14
+ ORL AX, CX
+ MOVL R11, DI
+ JE LBB1_376
+ JMP LBB1_387
+
+LBB1_375:
+ MOVQ CX, R14
+
+LBB1_376:
+ CMPB SI, $13
+ JNE LBB1_378
+ JMP LBB1_362
+
+LBB1_377:
+ MOVQ CX, R14
+ CMPB SI, $13
+ JE LBB1_362
+
+LBB1_378:
+ MOVL SI, R13
+ CMPB SI, $10
+ JE LBB1_362
+ JMP LBB1_387
+
+LBB1_381:
+ XORL R9, R9
+ MOVL $2, R11
+ XORL R12, R12
+ JMP LBB1_265
+
+LBB1_382:
+ MOVQ SI, R14
+ MOVL R11, DI
+ JMP LBB1_387
+
+LBB1_383:
+ MOVQ CX, R14
+ JMP LBB1_387
+
+LBB1_384:
+ CMPB CX, $47
+ JNE LBB1_386
+ MOVL CX, R13
+
+LBB1_386:
+ MOVQ SI, R14
+
+LBB1_387:
+ MOVBLZX R13, AX
+ MOVQ -56(BP), CX
+ MOVBLZX 0(CX)(AX*1), CX
+ CMPL CX, $255
+ JE LBB1_389
+ SHLL $6, DI
+ ORL CX, DI
+ MOVL $4, R11
+ JMP LBB1_241
+
+LBB1_389:
+ XORL R9, R9
+ MOVL $3, R11
+ MOVB $1, R12
+ JMP LBB1_265
+
+LBB1_391:
+ MOVQ CX, R14
+ JMP LBB1_328
+
+LBB1_392:
+ MOVQ -64(BP), R15
+
+LBB1_393:
+ LEAQ -4(DX), R14
+ CMPQ R10, R14
+ MOVQ R15, -64(BP)
+ JA LBB1_581
+ MOVQ -88(BP), AX
+ ADDQ $-4, AX
+ CMPQ R15, AX
+ JA LBB1_581
+ MOVQ AX, R15
+ MOVQ AX, -88(BP)
+
+LBB1_396:
+ MOVBLZX 0(R10), AX
+ MOVQ -56(BP), DI
+ MOVBLZX 0(DI)(AX*1), R9
+ MOVBLZX 1(R10), AX
+ MOVBLZX 0(DI)(AX*1), BX
+ MOVBLZX 2(R10), CX
+ MOVBLZX 0(DI)(CX*1), SI
+ MOVBLZX 3(R10), CX
+ MOVBLZX 0(DI)(CX*1), CX
+ MOVL BX, AX
+ ORL R9, AX
+ MOVL SI, DI
+ ORL CX, DI
+ ORL AX, DI
+ CMPB DI, $-1
+ JE LBB1_398
+ SHLL $26, R9
+ SHLL $20, BX
+ ORL R9, BX
+ SHLL $14, SI
+ SHLL $8, CX
+ ORL SI, CX
+ ORL BX, CX
+ BSWAPL CX
+ MOVQ -64(BP), AX
+ MOVL CX, 0(AX)
+ ADDQ $4, R10
+ ADDQ $3, AX
+ MOVQ AX, -64(BP)
+ CMPQ R10, R14
+ JBE LBB1_517
+ JMP LBB1_581
+
+LBB1_398:
+ CMPQ R10, DX
+ JAE LBB1_516
+ MOVQ R10, R12
+ JMP LBB1_402
+
+LBB1_418:
+ CMPB CX, $110
+ JNE LBB1_424
+
+LBB1_400:
+ MOVQ SI, R12
+
+LBB1_401:
+ CMPQ R12, DX
+ JAE LBB1_420
+
+LBB1_402:
+ LEAQ 1(R12), CX
+ MOVBLZX 0(R12), SI
+ CMPB SI, $92
+ JNE LBB1_414
+ TESTL R8, R8
+ JE LBB1_416
+ LEAQ 2(R12), SI
+ MOVB $-1, R13
+ CMPQ SI, DX
+ JA LBB1_423
+ MOVBLZX 0(CX), CX
+ CMPB CX, $113
+ JLE LBB1_418
+ CMPB CX, $114
+ JE LBB1_400
+ CMPB CX, $117
+ JNE LBB1_426
+ MOVQ DX, CX
+ SUBQ SI, CX
+ CMPQ CX, $4
+ JL LBB1_426
+ MOVL 0(SI), BX
+ MOVL BX, DI
+ NOTL DI
+ LEAL -808464432(BX), CX
+ ANDL $-2139062144, DI
+ TESTL CX, DI
+ JNE LBB1_426
+ LEAL 421075225(BX), CX
+ ORL BX, CX
+ TESTL $-2139062144, CX
+ JNE LBB1_426
+ MOVL BX, CX
+ ANDL $2139062143, CX
+ MOVL $-1061109568, AX
+ SUBL CX, AX
+ LEAL 1179010630(CX), R9
+ ANDL DI, AX
+ TESTL R9, AX
+ JNE LBB1_426
+ MOVL $-522133280, AX
+ SUBL CX, AX
+ ADDL $960051513, CX
+ ANDL AX, DI
+ TESTL CX, DI
+ JNE LBB1_426
+ BSWAPL BX
+ MOVL BX, AX
+ SHRL $4, AX
+ NOTL AX
+ ANDL $16843009, AX
+ LEAL 0(AX)(AX*8), AX
+ ANDL $252645135, BX
+ ADDL AX, BX
+ MOVL BX, SI
+ SHRL $4, SI
+ ORL BX, SI
+ MOVL SI, AX
+ SHRL $8, AX
+ ANDL $65280, AX
+ MOVL SI, CX
+ ANDL $128, CX
+ ADDQ $6, R12
+ ORL AX, CX
+ JNE LBB1_427
+ CMPB SI, $13
+ JNE LBB1_417
+ JMP LBB1_401
+
+LBB1_414:
+ MOVQ CX, R12
+ CMPB SI, $13
+ JNE LBB1_417
+ JMP LBB1_401
+
+LBB1_416:
+ MOVQ CX, R12
+ CMPB SI, $13
+ JE LBB1_401
+
+LBB1_417:
+ MOVL SI, R13
+ CMPB SI, $10
+ JE LBB1_401
+ JMP LBB1_427
+
+LBB1_420:
+ MOVB $1, CX
+ XORL R9, R9
+ XORL R11, R11
+
+LBB1_421:
+ TESTB CX, CX
+ JE LBB1_429
+ MOVQ R12, R10
+ CMPQ R10, R14
+ JBE LBB1_517
+ JMP LBB1_581
+
+LBB1_423:
+ MOVQ CX, R12
+ JMP LBB1_427
+
+LBB1_424:
+ CMPB CX, $47
+ JNE LBB1_426
+ MOVL CX, R13
+
+LBB1_426:
+ MOVQ SI, R12
+
+LBB1_427:
+ MOVBLZX R13, AX
+ MOVQ -56(BP), CX
+ MOVBLZX 0(CX)(AX*1), R9
+ MOVB $1, AX
+ CMPL R9, $255
+ JE LBB1_452
+ MOVL $1, R11
+ CMPQ R12, DX
+ JB LBB1_434
+
+LBB1_429:
+ MOVL R9, R13
+ CMPL -44(BP), $0
+ SETEQ CX
+ CMPL R11, $1
+ SETEQ BX
+ CMPQ R12, DX
+ JB LBB1_479
+ CMPL R11, $4
+ JE LBB1_479
+ ORB BX, CX
+ JNE LBB1_515
+ JMP LBB1_479
+
+LBB1_450:
+ CMPB CX, $110
+ JNE LBB1_486
+
+LBB1_432:
+ MOVQ SI, R12
+
+LBB1_433:
+ CMPQ R12, DX
+ JAE LBB1_476
+
+LBB1_434:
+ LEAQ 1(R12), CX
+ MOVBLZX 0(R12), SI
+ CMPB SI, $92
+ JNE LBB1_446
+ TESTL R8, R8
+ JE LBB1_448
+ LEAQ 2(R12), SI
+ MOVB $-1, R13
+ CMPQ SI, DX
+ JA LBB1_477
+ MOVBLZX 0(CX), CX
+ CMPB CX, $113
+ JLE LBB1_450
+ CMPB CX, $114
+ JE LBB1_432
+ CMPB CX, $117
+ JNE LBB1_488
+ MOVQ DX, AX
+ SUBQ SI, AX
+ CMPQ AX, $4
+ JL LBB1_488
+ MOVL 0(SI), BX
+ MOVL BX, DI
+ NOTL DI
+ LEAL -808464432(BX), AX
+ ANDL $-2139062144, DI
+ TESTL AX, DI
+ JNE LBB1_488
+ LEAL 421075225(BX), AX
+ ORL BX, AX
+ TESTL $-2139062144, AX
+ JNE LBB1_488
+ MOVL BX, CX
+ ANDL $2139062143, CX
+ MOVL $-1061109568, AX
+ SUBL CX, AX
+ LEAL 1179010630(CX), R11
+ ANDL DI, AX
+ TESTL R11, AX
+ JNE LBB1_488
+ MOVL $-522133280, AX
+ SUBL CX, AX
+ ADDL $960051513, CX
+ ANDL AX, DI
+ TESTL CX, DI
+ JNE LBB1_488
+ BSWAPL BX
+ MOVL BX, AX
+ SHRL $4, AX
+ NOTL AX
+ ANDL $16843009, AX
+ LEAL 0(AX)(AX*8), AX
+ ANDL $252645135, BX
+ ADDL AX, BX
+ MOVL BX, SI
+ SHRL $4, SI
+ ORL BX, SI
+ MOVL SI, AX
+ SHRL $8, AX
+ ANDL $65280, AX
+ MOVL SI, CX
+ ANDL $128, CX
+ ADDQ $6, R12
+ ORL AX, CX
+ JE LBB1_447
+ JMP LBB1_489
+
+LBB1_446:
+ MOVQ CX, R12
+
+LBB1_447:
+ CMPB SI, $13
+ JNE LBB1_449
+ JMP LBB1_433
+
+LBB1_448:
+ MOVQ CX, R12
+ CMPB SI, $13
+ JE LBB1_433
+
+LBB1_449:
+ MOVL SI, R13
+ CMPB SI, $10
+ JE LBB1_433
+ JMP LBB1_489
+
+LBB1_452:
+ XORL R9, R9
+ XORL R15, R15
+ XORL R11, R11
+
+LBB1_453:
+ CMPL -44(BP), $0
+ JNE LBB1_515
+ CMPB R13, $61
+ JNE LBB1_515
+ TESTB AX, AX
+ JNE LBB1_515
+ MOVL R9, R13
+ CMPQ R12, DX
+ JAE LBB1_479
+ MOVQ R12, BX
+ JMP LBB1_460
+
+LBB1_475:
+ MOVQ SI, BX
+ CMPQ BX, DX
+ JB LBB1_460
+ JMP LBB1_478
+
+LBB1_458:
+ MOVQ R12, BX
+ CMPQ BX, DX
+ JAE LBB1_478
+
+LBB1_460:
+ LEAQ 1(BX), SI
+ MOVBLZX 0(BX), DI
+ CMPB DI, $92
+ JNE LBB1_472
+ TESTL R8, R8
+ JE LBB1_472
+ LEAQ 2(BX), R12
+ CMPQ R12, DX
+ JA LBB1_514
+ MOVBLZX 0(SI), CX
+ CMPB CX, $110
+ JE LBB1_458
+ CMPB CX, $114
+ JE LBB1_458
+ CMPB CX, $117
+ JNE LBB1_515
+ MOVQ DX, AX
+ SUBQ R12, AX
+ CMPQ AX, $4
+ JL LBB1_515
+ MOVL 0(R12), CX
+ MOVL CX, SI
+ NOTL SI
+ LEAL -808464432(CX), AX
+ ANDL $-2139062144, SI
+ TESTL AX, SI
+ JNE LBB1_515
+ LEAL 421075225(CX), AX
+ ORL CX, AX
+ TESTL $-2139062144, AX
+ JNE LBB1_515
+ MOVL CX, DI
+ ANDL $2139062143, DI
+ MOVL $-1061109568, AX
+ SUBL DI, AX
+ LEAL 1179010630(DI), R9
+ ANDL SI, AX
+ TESTL R9, AX
+ JNE LBB1_515
+ MOVL $-522133280, AX
+ SUBL DI, AX
+ ADDL $960051513, DI
+ ANDL AX, SI
+ TESTL DI, SI
+ JNE LBB1_515
+ BSWAPL CX
+ MOVL CX, AX
+ SHRL $4, AX
+ NOTL AX
+ ANDL $16843009, AX
+ LEAL 0(AX)(AX*8), AX
+ ANDL $252645135, CX
+ ADDL AX, CX
+ MOVL CX, DI
+ SHRL $4, DI
+ ORL CX, DI
+ MOVL DI, AX
+ SHRL $8, AX
+ ANDL $65280, AX
+ MOVL DI, CX
+ ANDL $128, CX
+ ADDQ $6, BX
+ ORL AX, CX
+ MOVQ BX, SI
+ MOVQ BX, R12
+ JNE LBB1_515
+
+LBB1_472:
+ CMPB DI, $10
+ JE LBB1_475
+ CMPB DI, $13
+ JE LBB1_475
+ CMPB DI, $61
+ JNE LBB1_514
+ TESTB R15, R15
+ JE LBB1_521
+
+LBB1_514:
+ MOVQ SI, R12
+
+LBB1_515:
+ XORL CX, CX
+ CMPQ R12, DX
+ SETEQ CX
+ ADDQ R12, CX
+ CMPQ CX, R10
+ MOVQ -88(BP), R15
+ JNE LBB1_762
+
+LBB1_516:
+ CMPQ R10, R14
+ JA LBB1_581
+
+LBB1_517:
+ CMPQ -64(BP), R15
+ JBE LBB1_396
+ JMP LBB1_581
+
+LBB1_476:
+ MOVL $1, R11
+ XORL CX, CX
+ JMP LBB1_421
+
+LBB1_477:
+ MOVQ CX, R12
+ JMP LBB1_489
+
+LBB1_478:
+ MOVQ BX, R12
+
+LBB1_479:
+ MOVB $4, AX
+ SUBB R11, AX
+ MOVBLZX AX, AX
+ ADDL AX, AX
+ LEAL 0(AX)(AX*2), CX
+ MOVL R13, AX
+ SHLL CX, AX
+ CMPL R11, $2
+ MOVQ -64(BP), CX
+ JE LBB1_484
+ CMPL R11, $3
+ JE LBB1_483
+ CMPL R11, $4
+ JNE LBB1_485
+ MOVB AX, 2(CX)
+
+LBB1_483:
+ MOVB AH, 1(CX)
+
+LBB1_484:
+ SHRL $16, AX
+ MOVB AX, 0(CX)
+
+LBB1_485:
+ MOVL R11, AX
+ ADDQ AX, CX
+ ADDQ $-1, CX
+ MOVQ CX, -64(BP)
+ MOVQ R12, R10
+ MOVQ -88(BP), R15
+ CMPQ R10, R14
+ JBE LBB1_517
+ JMP LBB1_581
+
+LBB1_486:
+ CMPB CX, $47
+ JNE LBB1_488
+ MOVL CX, R13
+
+LBB1_488:
+ MOVQ SI, R12
+
+LBB1_489:
+ MOVBLZX R13, AX
+ MOVQ -56(BP), CX
+ MOVBLZX 0(CX)(AX*1), CX
+ CMPL CX, $255
+ JE LBB1_511
+ SHLL $6, R9
+ ORL CX, R9
+ MOVL $2, R11
+ CMPQ R12, DX
+ JB LBB1_493
+ JMP LBB1_429
+
+LBB1_509:
+ CMPB CX, $110
+ JNE LBB1_543
+
+LBB1_491:
+ MOVQ SI, R12
+
+LBB1_492:
+ CMPQ R12, DX
+ JAE LBB1_518
+
+LBB1_493:
+ LEAQ 1(R12), CX
+ MOVBLZX 0(R12), SI
+ CMPB SI, $92
+ JNE LBB1_505
+ TESTL R8, R8
+ JE LBB1_507
+ LEAQ 2(R12), SI
+ MOVB $-1, R13
+ CMPQ SI, DX
+ JA LBB1_520
+ MOVBLZX 0(CX), CX
+ CMPB CX, $113
+ JLE LBB1_509
+ CMPB CX, $114
+ JE LBB1_491
+ CMPB CX, $117
+ JNE LBB1_545
+ MOVQ DX, AX
+ SUBQ SI, AX
+ CMPQ AX, $4
+ JL LBB1_545
+ MOVL R9, R11
+ MOVL 0(SI), BX
+ MOVL BX, DI
+ NOTL DI
+ LEAL -808464432(BX), AX
+ ANDL $-2139062144, DI
+ TESTL AX, DI
+ JNE LBB1_519
+ LEAL 421075225(BX), AX
+ ORL BX, AX
+ TESTL $-2139062144, AX
+ JNE LBB1_519
+ MOVL BX, CX
+ ANDL $2139062143, CX
+ MOVL $-1061109568, AX
+ SUBL CX, AX
+ LEAL 1179010630(CX), R9
+ ANDL DI, AX
+ TESTL R9, AX
+ JNE LBB1_519
+ MOVL $-522133280, AX
+ SUBL CX, AX
+ ADDL $960051513, CX
+ ANDL AX, DI
+ TESTL CX, DI
+ JNE LBB1_519
+ BSWAPL BX
+ MOVL BX, AX
+ SHRL $4, AX
+ NOTL AX
+ ANDL $16843009, AX
+ LEAL 0(AX)(AX*8), AX
+ ANDL $252645135, BX
+ ADDL AX, BX
+ MOVL BX, SI
+ SHRL $4, SI
+ ORL BX, SI
+ MOVL SI, AX
+ SHRL $8, AX
+ ANDL $65280, AX
+ MOVL SI, CX
+ ANDL $128, CX
+ ADDQ $6, R12
+ ORL AX, CX
+ MOVL R11, R9
+ JE LBB1_506
+ JMP LBB1_546
+
+LBB1_505:
+ MOVQ CX, R12
+
+LBB1_506:
+ CMPB SI, $13
+ JNE LBB1_508
+ JMP LBB1_492
+
+LBB1_507:
+ MOVQ CX, R12
+ CMPB SI, $13
+ JE LBB1_492
+
+LBB1_508:
+ MOVL SI, R13
+ CMPB SI, $10
+ JE LBB1_492
+ JMP LBB1_546
+
+LBB1_511:
+ XORL R15, R15
+ MOVL $1, R11
+ MOVB $1, AX
+ JMP LBB1_453
+
+LBB1_518:
+ MOVL $2, R11
+ XORL CX, CX
+ JMP LBB1_421
+
+LBB1_519:
+ MOVQ SI, R12
+ MOVL R11, R9
+ JMP LBB1_546
+
+LBB1_520:
+ MOVQ CX, R12
+ JMP LBB1_546
+
+LBB1_521:
+ CMPQ SI, DX
+ JB LBB1_525
+
+LBB1_522:
+ MOVQ SI, R12
+ JMP LBB1_479
+
+LBB1_523:
+ MOVQ R12, SI
+
+LBB1_524:
+ CMPQ SI, DX
+ JAE LBB1_522
+
+LBB1_525:
+ LEAQ 1(SI), CX
+ MOVBLZX 0(SI), DI
+ CMPB DI, $92
+ JNE LBB1_538
+ TESTL R8, R8
+ JE LBB1_538
+ LEAQ 2(SI), R12
+ CMPQ R12, DX
+ JA LBB1_578
+ MOVBLZX 0(CX), CX
+ CMPB CX, $110
+ JE LBB1_523
+ CMPB CX, $114
+ JE LBB1_523
+ CMPB CX, $117
+ JNE LBB1_515
+ MOVQ DX, AX
+ SUBQ R12, AX
+ CMPQ AX, $4
+ JL LBB1_515
+ MOVL 0(R12), BX
+ MOVL BX, DI
+ NOTL DI
+ LEAL -808464432(BX), AX
+ ANDL $-2139062144, DI
+ TESTL AX, DI
+ JNE LBB1_515
+ LEAL 421075225(BX), AX
+ ORL BX, AX
+ TESTL $-2139062144, AX
+ JNE LBB1_515
+ MOVL BX, CX
+ ANDL $2139062143, CX
+ MOVL $-1061109568, AX
+ SUBL CX, AX
+ LEAL 1179010630(CX), R9
+ ANDL DI, AX
+ TESTL R9, AX
+ JNE LBB1_515
+ MOVL $-522133280, AX
+ SUBL CX, AX
+ ADDL $960051513, CX
+ ANDL AX, DI
+ TESTL CX, DI
+ JNE LBB1_515
+ BSWAPL BX
+ MOVL BX, AX
+ SHRL $4, AX
+ NOTL AX
+ ANDL $16843009, AX
+ LEAL 0(AX)(AX*8), AX
+ ANDL $252645135, BX
+ ADDL AX, BX
+ MOVL BX, DI
+ SHRL $4, DI
+ ORL BX, DI
+ MOVL DI, AX
+ SHRL $8, AX
+ ANDL $65280, AX
+ MOVL DI, CX
+ ANDL $128, CX
+ ADDQ $6, SI
+ ORL AX, CX
+ MOVQ SI, R12
+ JE LBB1_539
+ JMP LBB1_515
+
+LBB1_538:
+ MOVQ CX, R12
+
+LBB1_539:
+ CMPB DI, $13
+ JE LBB1_523
+ MOVQ R12, SI
+ CMPB DI, $10
+ JE LBB1_524
+ JMP LBB1_515
+
+LBB1_543:
+ CMPB CX, $47
+ JNE LBB1_545
+ MOVL CX, R13
+
+LBB1_545:
+ MOVQ SI, R12
+
+LBB1_546:
+ MOVBLZX R13, AX
+ MOVQ -56(BP), CX
+ MOVBLZX 0(CX)(AX*1), CX
+ CMPL CX, $255
+ JE LBB1_568
+ SHLL $6, R9
+ ORL CX, R9
+ MOVL $3, R11
+ CMPQ R12, DX
+ JB LBB1_550
+ JMP LBB1_429
+
+LBB1_566:
+ CMPB CX, $110
+ JNE LBB1_571
+
+LBB1_548:
+ MOVQ SI, R12
+
+LBB1_549:
+ MOVL $3, R11
+ XORL CX, CX
+ CMPQ R12, DX
+ JAE LBB1_421
+
+LBB1_550:
+ LEAQ 1(R12), CX
+ MOVBLZX 0(R12), SI
+ CMPB SI, $92
+ JNE LBB1_562
+ TESTL R8, R8
+ JE LBB1_564
+ LEAQ 2(R12), SI
+ MOVB $-1, R13
+ CMPQ SI, DX
+ JA LBB1_570
+ MOVBLZX 0(CX), CX
+ CMPB CX, $113
+ JLE LBB1_566
+ CMPB CX, $114
+ JE LBB1_548
+ CMPB CX, $117
+ JNE LBB1_573
+ MOVQ DX, AX
+ SUBQ SI, AX
+ CMPQ AX, $4
+ JL LBB1_573
+ MOVL R9, R11
+ MOVL 0(SI), BX
+ MOVL BX, DI
+ NOTL DI
+ LEAL -808464432(BX), AX
+ ANDL $-2139062144, DI
+ TESTL AX, DI
+ JNE LBB1_569
+ LEAL 421075225(BX), AX
+ ORL BX, AX
+ TESTL $-2139062144, AX
+ JNE LBB1_569
+ MOVL BX, CX
+ ANDL $2139062143, CX
+ MOVL $-1061109568, AX
+ SUBL CX, AX
+ LEAL 1179010630(CX), R9
+ ANDL DI, AX
+ TESTL R9, AX
+ JNE LBB1_569
+ MOVL $-522133280, AX
+ SUBL CX, AX
+ ADDL $960051513, CX
+ ANDL AX, DI
+ TESTL CX, DI
+ JNE LBB1_569
+ BSWAPL BX
+ MOVL BX, AX
+ SHRL $4, AX
+ NOTL AX
+ ANDL $16843009, AX
+ LEAL 0(AX)(AX*8), AX
+ ANDL $252645135, BX
+ ADDL AX, BX
+ MOVL BX, SI
+ SHRL $4, SI
+ ORL BX, SI
+ MOVL SI, AX
+ SHRL $8, AX
+ ANDL $65280, AX
+ MOVL SI, CX
+ ANDL $128, CX
+ ADDQ $6, R12
+ ORL AX, CX
+ MOVL R11, R9
+ JE LBB1_563
+ JMP LBB1_574
+
+LBB1_562:
+ MOVQ CX, R12
+
+LBB1_563:
+ CMPB SI, $13
+ JNE LBB1_565
+ JMP LBB1_549
+
+LBB1_564:
+ MOVQ CX, R12
+ CMPB SI, $13
+ JE LBB1_549
+
+LBB1_565:
+ MOVL SI, R13
+ CMPB SI, $10
+ JE LBB1_549
+ JMP LBB1_574
+
+LBB1_568:
+ XORL AX, AX
+ MOVL $2, R11
+ XORL R15, R15
+ JMP LBB1_453
+
+LBB1_569:
+ MOVQ SI, R12
+ MOVL R11, R9
+ JMP LBB1_574
+
+LBB1_570:
+ MOVQ CX, R12
+ JMP LBB1_574
+
+LBB1_571:
+ CMPB CX, $47
+ JNE LBB1_573
+ MOVL CX, R13
+
+LBB1_573:
+ MOVQ SI, R12
+
+LBB1_574:
+ MOVBLZX R13, AX
+ MOVQ -56(BP), CX
+ MOVBLZX 0(CX)(AX*1), CX
+ CMPL CX, $255
+ JE LBB1_576
+ SHLL $6, R9
+ ORL CX, R9
+ MOVL $4, R11
+ JMP LBB1_429
+
+LBB1_576:
+ XORL AX, AX
+ MOVL $3, R11
+ MOVB $1, R15
+ JMP LBB1_453
+
+LBB1_578:
+ MOVQ CX, R12
+ JMP LBB1_515
+
+LBB1_579:
+ MOVQ BX, R12
+
+LBB1_580:
+ XORL CX, CX
+ CMPQ R12, DX
+ SETEQ CX
+ ADDQ R12, CX
+ SUBQ R10, CX
+ TESTQ CX, CX
+ JNE LBB1_761
+
+LBB1_581:
+ CMPQ R10, DX
+ JAE LBB1_760
+ MOVQ R10, R12
+ JMP LBB1_585
+
+LBB1_601:
+ CMPB CX, $110
+ JNE LBB1_606
+
+LBB1_583:
+ MOVQ SI, R12
+
+LBB1_584:
+ CMPQ R12, DX
+ JAE LBB1_603
+
+LBB1_585:
+ LEAQ 1(R12), CX
+ MOVBLZX 0(R12), SI
+ CMPB SI, $92
+ JNE LBB1_597
+ TESTL R8, R8
+ JE LBB1_599
+ LEAQ 2(R12), SI
+ MOVB $-1, R15
+ CMPQ SI, DX
+ JA LBB1_605
+ MOVBLZX 0(CX), CX
+ CMPB CX, $113
+ JLE LBB1_601
+ CMPB CX, $114
+ JE LBB1_583
+ CMPB CX, $117
+ JNE LBB1_608
+ MOVQ DX, CX
+ SUBQ SI, CX
+ CMPQ CX, $4
+ JL LBB1_608
+ MOVL 0(SI), BX
+ MOVL BX, DI
+ NOTL DI
+ LEAL -808464432(BX), CX
+ ANDL $-2139062144, DI
+ TESTL CX, DI
+ JNE LBB1_608
+ LEAL 421075225(BX), CX
+ ORL BX, CX
+ TESTL $-2139062144, CX
+ JNE LBB1_608
+ MOVL BX, CX
+ ANDL $2139062143, CX
+ MOVL $-1061109568, AX
+ SUBL CX, AX
+ LEAL 1179010630(CX), R9
+ ANDL DI, AX
+ TESTL R9, AX
+ JNE LBB1_608
+ MOVL $-522133280, AX
+ SUBL CX, AX
+ ADDL $960051513, CX
+ ANDL AX, DI
+ TESTL CX, DI
+ JNE LBB1_608
+ BSWAPL BX
+ MOVL BX, AX
+ SHRL $4, AX
+ NOTL AX
+ ANDL $16843009, AX
+ LEAL 0(AX)(AX*8), AX
+ ANDL $252645135, BX
+ ADDL AX, BX
+ MOVL BX, SI
+ SHRL $4, SI
+ ORL BX, SI
+ MOVL SI, AX
+ SHRL $8, AX
+ ANDL $65280, AX
+ MOVL SI, CX
+ ANDL $128, CX
+ ADDQ $6, R12
+ ORL AX, CX
+ JNE LBB1_609
+ CMPB SI, $13
+ JNE LBB1_600
+ JMP LBB1_584
+
+LBB1_597:
+ MOVQ CX, R12
+ CMPB SI, $13
+ JNE LBB1_600
+ JMP LBB1_584
+
+LBB1_599:
+ MOVQ CX, R12
+ CMPB SI, $13
+ JE LBB1_584
+
+LBB1_600:
+ MOVL SI, R15
+ CMPB SI, $10
+ JE LBB1_584
+ JMP LBB1_609
+
+LBB1_603:
+ MOVB $1, CX
+ XORL BX, BX
+ XORL R11, R11
+
+LBB1_604:
+ TESTB CX, CX
+ JE LBB1_611
+ MOVQ R12, R10
+ XORL CX, CX
+ TESTQ CX, CX
+ JE LBB1_581
+ JMP LBB1_761
+
+LBB1_605:
+ MOVQ CX, R12
+ JMP LBB1_609
+
+LBB1_606:
+ CMPB CX, $47
+ JNE LBB1_608
+ MOVL CX, R15
+
+LBB1_608:
+ MOVQ SI, R12
+
+LBB1_609:
+ MOVBLZX R15, AX
+ MOVQ -56(BP), CX
+ MOVBLZX 0(CX)(AX*1), BX
+ MOVB $1, R14
+ CMPL BX, $255
+ JE LBB1_635
+ MOVL $1, R11
+ CMPQ R12, DX
+ JB LBB1_617
+
+LBB1_611:
+ MOVL BX, R15
+
+LBB1_612:
+ CMPL -44(BP), $0
+ SETEQ CX
+ CMPL R11, $1
+ SETEQ BX
+ CMPQ R12, DX
+ JB LBB1_663
+ CMPL R11, $4
+ JE LBB1_663
+ ORB BX, CX
+ JNE LBB1_580
+ JMP LBB1_663
+
+LBB1_633:
+ CMPB CX, $110
+ JNE LBB1_671
+
+LBB1_615:
+ MOVQ DI, R12
+
+LBB1_616:
+ CMPQ R12, DX
+ JAE LBB1_659
+
+LBB1_617:
+ LEAQ 1(R12), CX
+ MOVBLZX 0(R12), DI
+ CMPB DI, $92
+ JNE LBB1_629
+ TESTL R8, R8
+ JE LBB1_631
+ LEAQ 2(R12), DI
+ MOVB $-1, R15
+ CMPQ DI, DX
+ JA LBB1_661
+ MOVBLZX 0(CX), CX
+ CMPB CX, $113
+ JLE LBB1_633
+ CMPB CX, $114
+ JE LBB1_615
+ CMPB CX, $117
+ JNE LBB1_673
+ MOVQ DX, AX
+ SUBQ DI, AX
+ CMPQ AX, $4
+ JL LBB1_673
+ MOVL BX, R11
+ MOVL 0(DI), BX
+ MOVL BX, SI
+ NOTL SI
+ LEAL -808464432(BX), AX
+ ANDL $-2139062144, SI
+ TESTL AX, SI
+ JNE LBB1_660
+ LEAL 421075225(BX), AX
+ ORL BX, AX
+ TESTL $-2139062144, AX
+ JNE LBB1_660
+ MOVL BX, CX
+ ANDL $2139062143, CX
+ MOVL $-1061109568, AX
+ SUBL CX, AX
+ LEAL 1179010630(CX), R9
+ ANDL SI, AX
+ TESTL R9, AX
+ JNE LBB1_660
+ MOVL $-522133280, AX
+ SUBL CX, AX
+ ADDL $960051513, CX
+ ANDL AX, SI
+ TESTL CX, SI
+ JNE LBB1_660
+ BSWAPL BX
+ MOVL BX, AX
+ SHRL $4, AX
+ NOTL AX
+ ANDL $16843009, AX
+ LEAL 0(AX)(AX*8), AX
+ ANDL $252645135, BX
+ ADDL AX, BX
+ MOVL BX, DI
+ SHRL $4, DI
+ ORL BX, DI
+ MOVL DI, AX
+ SHRL $8, AX
+ ANDL $65280, AX
+ MOVL DI, CX
+ ANDL $128, CX
+ ADDQ $6, R12
+ ORL AX, CX
+ MOVL R11, BX
+ JNE LBB1_674
+ CMPB DI, $13
+ JNE LBB1_632
+ JMP LBB1_616
+
+LBB1_629:
+ MOVQ CX, R12
+ CMPB DI, $13
+ JNE LBB1_632
+ JMP LBB1_616
+
+LBB1_631:
+ MOVQ CX, R12
+ CMPB DI, $13
+ JE LBB1_616
+
+LBB1_632:
+ MOVL DI, R15
+ CMPB DI, $10
+ JE LBB1_616
+ JMP LBB1_674
+
+LBB1_635:
+ XORL BX, BX
+ XORL R9, R9
+ XORL R11, R11
+
+LBB1_636:
+ CMPL -44(BP), $0
+ JNE LBB1_580
+ CMPB R15, $61
+ JNE LBB1_580
+ TESTB R14, R14
+ JNE LBB1_580
+ MOVL BX, R15
+ CMPQ R12, DX
+ JAE LBB1_663
+ MOVQ R12, SI
+ JMP LBB1_643
+
+LBB1_658:
+ MOVQ BX, SI
+ CMPQ SI, DX
+ JB LBB1_643
+ JMP LBB1_662
+
+LBB1_641:
+ MOVQ R12, SI
+ CMPQ SI, DX
+ JAE LBB1_662
+
+LBB1_643:
+ LEAQ 1(SI), BX
+ MOVBLZX 0(SI), DI
+ CMPB DI, $92
+ JNE LBB1_655
+ TESTL R8, R8
+ JE LBB1_655
+ LEAQ 2(SI), R12
+ CMPQ R12, DX
+ JA LBB1_579
+ MOVBLZX 0(BX), CX
+ CMPB CX, $110
+ JE LBB1_641
+ CMPB CX, $114
+ JE LBB1_641
+ CMPB CX, $117
+ JNE LBB1_580
+ MOVQ DX, AX
+ SUBQ R12, AX
+ CMPQ AX, $4
+ JL LBB1_580
+ MOVL 0(R12), CX
+ MOVL CX, DI
+ NOTL DI
+ LEAL -808464432(CX), AX
+ ANDL $-2139062144, DI
+ TESTL AX, DI
+ JNE LBB1_580
+ LEAL 421075225(CX), AX
+ ORL CX, AX
+ TESTL $-2139062144, AX
+ JNE LBB1_580
+ MOVL CX, BX
+ ANDL $2139062143, BX
+ MOVL $-1061109568, AX
+ SUBL BX, AX
+ LEAL 1179010630(BX), R14
+ ANDL DI, AX
+ TESTL R14, AX
+ JNE LBB1_580
+ MOVL $-522133280, AX
+ SUBL BX, AX
+ ADDL $960051513, BX
+ ANDL AX, DI
+ TESTL BX, DI
+ JNE LBB1_580
+ BSWAPL CX
+ MOVL CX, AX
+ SHRL $4, AX
+ NOTL AX
+ ANDL $16843009, AX
+ LEAL 0(AX)(AX*8), AX
+ ANDL $252645135, CX
+ ADDL AX, CX
+ MOVL CX, DI
+ SHRL $4, DI
+ ORL CX, DI
+ MOVL DI, AX
+ SHRL $8, AX
+ ANDL $65280, AX
+ MOVL DI, CX
+ ANDL $128, CX
+ ADDQ $6, SI
+ ORL AX, CX
+ MOVQ SI, BX
+ MOVQ SI, R12
+ JNE LBB1_580
+
+LBB1_655:
+ CMPB DI, $10
+ JE LBB1_658
+ CMPB DI, $13
+ JE LBB1_658
+ CMPB DI, $61
+ JNE LBB1_579
+ TESTB R9, R9
+ JNE LBB1_579
+ CMPQ BX, DX
+ JB LBB1_706
+
+LBB1_700:
+ MOVQ BX, R12
+ JMP LBB1_663
+
+LBB1_659:
+ MOVL $1, R11
+ XORL CX, CX
+ JMP LBB1_604
+
+LBB1_660:
+ MOVQ DI, R12
+ MOVL R11, BX
+ JMP LBB1_674
+
+LBB1_661:
+ MOVQ CX, R12
+ JMP LBB1_674
+
+LBB1_662:
+ MOVQ SI, R12
+
+LBB1_663:
+ MOVB $4, AX
+ SUBB R11, AX
+ MOVBLZX AX, AX
+ ADDL AX, AX
+ LEAL 0(AX)(AX*2), CX
+ MOVL R15, AX
+ SHLL CX, AX
+ CMPL R11, $2
+ MOVQ -64(BP), CX
+ JE LBB1_668
+ CMPL R11, $3
+ JE LBB1_667
+ CMPL R11, $4
+ JNE LBB1_669
+ MOVB AX, 2(CX)
+
+LBB1_667:
+ MOVB AH, 1(CX)
+
+LBB1_668:
+ SHRL $16, AX
+ MOVB AX, 0(CX)
+
+LBB1_669:
+ MOVL R11, AX
+ ADDQ AX, CX
+ ADDQ $-1, CX
+ MOVQ CX, -64(BP)
+ MOVQ R12, R10
+ XORL CX, CX
+ TESTQ CX, CX
+ JE LBB1_581
+ JMP LBB1_761
+
+LBB1_671:
+ CMPB CX, $47
+ JNE LBB1_673
+ MOVL CX, R15
+
+LBB1_673:
+ MOVQ DI, R12
+
+LBB1_674:
+ MOVBLZX R15, AX
+ MOVQ -56(BP), CX
+ MOVBLZX 0(CX)(AX*1), CX
+ CMPL CX, $255
+ JE LBB1_696
+ SHLL $6, BX
+ ORL CX, BX
+ MOVL $2, R11
+ CMPQ R12, DX
+ JB LBB1_678
+ JMP LBB1_611
+
+LBB1_694:
+ CMPB CX, $110
+ JNE LBB1_724
+
+LBB1_676:
+ MOVQ SI, R12
+
+LBB1_677:
+ CMPQ R12, DX
+ JAE LBB1_701
+
+LBB1_678:
+ LEAQ 1(R12), CX
+ MOVBLZX 0(R12), SI
+ CMPB SI, $92
+ JNE LBB1_690
+ TESTL R8, R8
+ JE LBB1_692
+ LEAQ 2(R12), SI
+ MOVB $-1, R15
+ CMPQ SI, DX
+ JA LBB1_703
+ MOVBLZX 0(CX), CX
+ CMPB CX, $113
+ JLE LBB1_694
+ CMPB CX, $114
+ JE LBB1_676
+ CMPB CX, $117
+ JNE LBB1_726
+ MOVQ DX, AX
+ SUBQ SI, AX
+ CMPQ AX, $4
+ JL LBB1_726
+ MOVL BX, R11
+ MOVL 0(SI), BX
+ MOVL BX, DI
+ NOTL DI
+ LEAL -808464432(BX), AX
+ ANDL $-2139062144, DI
+ TESTL AX, DI
+ JNE LBB1_702
+ LEAL 421075225(BX), AX
+ ORL BX, AX
+ TESTL $-2139062144, AX
+ JNE LBB1_702
+ MOVL BX, CX
+ ANDL $2139062143, CX
+ MOVL $-1061109568, AX
+ SUBL CX, AX
+ LEAL 1179010630(CX), R9
+ ANDL DI, AX
+ TESTL R9, AX
+ JNE LBB1_702
+ MOVL $-522133280, AX
+ SUBL CX, AX
+ ADDL $960051513, CX
+ ANDL AX, DI
+ TESTL CX, DI
+ JNE LBB1_702
+ BSWAPL BX
+ MOVL BX, AX
+ SHRL $4, AX
+ NOTL AX
+ ANDL $16843009, AX
+ LEAL 0(AX)(AX*8), AX
+ ANDL $252645135, BX
+ ADDL AX, BX
+ MOVL BX, SI
+ SHRL $4, SI
+ ORL BX, SI
+ MOVL SI, AX
+ SHRL $8, AX
+ ANDL $65280, AX
+ MOVL SI, CX
+ ANDL $128, CX
+ ADDQ $6, R12
+ ORL AX, CX
+ MOVL R11, BX
+ JE LBB1_691
+ JMP LBB1_727
+
+LBB1_690:
+ MOVQ CX, R12
+
+LBB1_691:
+ CMPB SI, $13
+ JNE LBB1_693
+ JMP LBB1_677
+
+LBB1_692:
+ MOVQ CX, R12
+ CMPB SI, $13
+ JE LBB1_677
+
+LBB1_693:
+ MOVL SI, R15
+ CMPB SI, $10
+ JE LBB1_677
+ JMP LBB1_727
+
+LBB1_696:
+ XORL R9, R9
+ MOVL $1, R11
+ JMP LBB1_636
+
+LBB1_704:
+ MOVQ R12, BX
+
+LBB1_705:
+ CMPQ BX, DX
+ JAE LBB1_700
+
+LBB1_706:
+ LEAQ 1(BX), CX
+ MOVBLZX 0(BX), SI
+ CMPB SI, $92
+ JNE LBB1_718
+ TESTL R8, R8
+ JE LBB1_720
+ LEAQ 2(BX), R12
+ CMPQ R12, DX
+ JA LBB1_759
+ MOVBLZX 0(CX), CX
+ CMPB CX, $110
+ JE LBB1_704
+ CMPB CX, $114
+ JE LBB1_704
+ CMPB CX, $117
+ JNE LBB1_580
+ MOVQ DX, AX
+ SUBQ R12, AX
+ CMPQ AX, $4
+ JL LBB1_580
+ MOVL 0(R12), CX
+ MOVL CX, SI
+ NOTL SI
+ LEAL -808464432(CX), AX
+ ANDL $-2139062144, SI
+ TESTL AX, SI
+ JNE LBB1_580
+ LEAL 421075225(CX), AX
+ ORL CX, AX
+ TESTL $-2139062144, AX
+ JNE LBB1_580
+ MOVL CX, DI
+ ANDL $2139062143, DI
+ MOVL $-1061109568, AX
+ SUBL DI, AX
+ LEAL 1179010630(DI), R9
+ ANDL SI, AX
+ TESTL R9, AX
+ JNE LBB1_580
+ MOVL $-522133280, AX
+ SUBL DI, AX
+ ADDL $960051513, DI
+ ANDL AX, SI
+ TESTL DI, SI
+ JNE LBB1_580
+ BSWAPL CX
+ MOVL CX, AX
+ SHRL $4, AX
+ NOTL AX
+ ANDL $16843009, AX
+ LEAL 0(AX)(AX*8), AX
+ ANDL $252645135, CX
+ ADDL AX, CX
+ MOVL CX, SI
+ SHRL $4, SI
+ ORL CX, SI
+ MOVL SI, AX
+ SHRL $8, AX
+ ANDL $65280, AX
+ MOVL SI, CX
+ ANDL $128, CX
+ ADDQ $6, BX
+ ORL AX, CX
+ MOVQ BX, R12
+ JE LBB1_719
+ JMP LBB1_580
+
+LBB1_718:
+ MOVQ CX, R12
+
+LBB1_719:
+ CMPB SI, $13
+ JNE LBB1_721
+ JMP LBB1_704
+
+LBB1_720:
+ MOVQ CX, R12
+ CMPB SI, $13
+ JE LBB1_704
+
+LBB1_721:
+ MOVQ R12, BX
+ CMPB SI, $10
+ JE LBB1_705
+ JMP LBB1_580
+
+LBB1_701:
+ MOVL $2, R11
+ XORL CX, CX
+ JMP LBB1_604
+
+LBB1_702:
+ MOVQ SI, R12
+ MOVL R11, BX
+ JMP LBB1_727
+
+LBB1_703:
+ MOVQ CX, R12
+ JMP LBB1_727
+
+LBB1_724:
+ CMPB CX, $47
+ JNE LBB1_726
+ MOVL CX, R15
+
+LBB1_726:
+ MOVQ SI, R12
+
+LBB1_727:
+ MOVBLZX R15, AX
+ MOVQ -56(BP), CX
+ MOVBLZX 0(CX)(AX*1), CX
+ CMPL CX, $255
+ JE LBB1_749
+ SHLL $6, BX
+ ORL CX, BX
+ MOVL $3, R11
+ CMPQ R12, DX
+ JB LBB1_731
+ JMP LBB1_611
+
+LBB1_747:
+ CMPB CX, $110
+ JNE LBB1_752
+
+LBB1_729:
+ MOVQ SI, R12
+
+LBB1_730:
+ MOVL $3, R11
+ XORL CX, CX
+ CMPQ R12, DX
+ JAE LBB1_604
+
+LBB1_731:
+ LEAQ 1(R12), CX
+ MOVBLZX 0(R12), SI
+ CMPB SI, $92
+ JNE LBB1_743
+ TESTL R8, R8
+ JE LBB1_745
+ LEAQ 2(R12), SI
+ MOVB $-1, R15
+ CMPQ SI, DX
+ JA LBB1_751
+ MOVBLZX 0(CX), CX
+ CMPB CX, $113
+ JLE LBB1_747
+ CMPB CX, $114
+ JE LBB1_729
+ CMPB CX, $117
+ JNE LBB1_754
+ MOVQ DX, AX
+ SUBQ SI, AX
+ CMPQ AX, $4
+ JL LBB1_754
+ MOVL BX, R11
+ MOVL 0(SI), BX
+ MOVL BX, DI
+ NOTL DI
+ LEAL -808464432(BX), AX
+ ANDL $-2139062144, DI
+ TESTL AX, DI
+ JNE LBB1_750
+ LEAL 421075225(BX), AX
+ ORL BX, AX
+ TESTL $-2139062144, AX
+ JNE LBB1_750
+ MOVL BX, CX
+ ANDL $2139062143, CX
+ MOVL $-1061109568, AX
+ SUBL CX, AX
+ LEAL 1179010630(CX), R9
+ ANDL DI, AX
+ TESTL R9, AX
+ JNE LBB1_750
+ MOVL $-522133280, AX
+ SUBL CX, AX
+ ADDL $960051513, CX
+ ANDL AX, DI
+ TESTL CX, DI
+ JNE LBB1_750
+ BSWAPL BX
+ MOVL BX, AX
+ SHRL $4, AX
+ NOTL AX
+ ANDL $16843009, AX
+ LEAL 0(AX)(AX*8), AX
+ ANDL $252645135, BX
+ ADDL AX, BX
+ MOVL BX, SI
+ SHRL $4, SI
+ ORL BX, SI
+ MOVL SI, AX
+ SHRL $8, AX
+ ANDL $65280, AX
+ MOVL SI, CX
+ ANDL $128, CX
+ ADDQ $6, R12
+ ORL AX, CX
+ MOVL R11, BX
+ JE LBB1_744
+ JMP LBB1_755
+
+LBB1_743:
+ MOVQ CX, R12
+
+LBB1_744:
+ CMPB SI, $13
+ JNE LBB1_746
+ JMP LBB1_730
+
+LBB1_745:
+ MOVQ CX, R12
+ CMPB SI, $13
+ JE LBB1_730
+
+LBB1_746:
+ MOVL SI, R15
+ CMPB SI, $10
+ JE LBB1_730
+ JMP LBB1_755
+
+LBB1_749:
+ XORL R14, R14
+ MOVL $2, R11
+ XORL R9, R9
+ JMP LBB1_636
+
+LBB1_750:
+ MOVQ SI, R12
+ MOVL R11, BX
+ JMP LBB1_755
+
+LBB1_751:
+ MOVQ CX, R12
+ JMP LBB1_755
+
+LBB1_752:
+ CMPB CX, $47
+ JNE LBB1_754
+ MOVL CX, R15
+
+LBB1_754:
+ MOVQ SI, R12
+
+LBB1_755:
+ MOVBLZX R15, AX
+ MOVQ -56(BP), CX
+ MOVBLZX 0(CX)(AX*1), CX
+ CMPL CX, $255
+ JE LBB1_757
+ SHLL $6, BX
+ ORL CX, BX
+ MOVL BX, R15
+ MOVL $4, R11
+ JMP LBB1_612
+
+LBB1_757:
+ XORL R14, R14
+ MOVL $3, R11
+ MOVB $1, R9
+ JMP LBB1_636
+
+LBB1_759:
+ MOVQ CX, R12
+ JMP LBB1_580
+
+LBB1_760:
+ MOVQ -64(BP), CX
+ SUBQ -112(BP), CX
+ MOVQ -120(BP), AX
+ ADDQ CX, 8(AX)
+ MOVQ CX, AX
+ JMP LBB1_763
+
+LBB1_761:
+ ADDQ R10, CX
+
+LBB1_762:
+ MOVQ -96(BP), AX
+ SUBQ CX, AX
+
+LBB1_763:
+ ADDQ $80, SP
+ BYTE $0x5b // popq %rbx
+ WORD $0x5c41 // popq %r12
+ WORD $0x5d41 // popq %r13
+ WORD $0x5e41 // popq %r14
+ WORD $0x5f41 // popq %r15
+ BYTE $0x5d // popq %rbp
+ WORD $0xf8c5; BYTE $0x77 // vzeroupper
+ RET
+
+_TabEncodeCharsetStd:
+ QUAD $0x4847464544434241; QUAD $0x504f4e4d4c4b4a49 // .ascii 16, 'ABCDEFGHIJKLMNOP'
+ QUAD $0x5857565554535251; QUAD $0x6665646362615a59 // .ascii 16, 'QRSTUVWXYZabcdef'
+ QUAD $0x6e6d6c6b6a696867; QUAD $0x767574737271706f // .ascii 16, 'ghijklmnopqrstuv'
+ QUAD $0x333231307a797877; QUAD $0x2f2b393837363534 // .ascii 16, 'wxyz0123456789+/'
+
+_TabEncodeCharsetURL:
+ QUAD $0x4847464544434241; QUAD $0x504f4e4d4c4b4a49 // .ascii 16, 'ABCDEFGHIJKLMNOP'
+ QUAD $0x5857565554535251; QUAD $0x6665646362615a59 // .ascii 16, 'QRSTUVWXYZabcdef'
+ QUAD $0x6e6d6c6b6a696867; QUAD $0x767574737271706f // .ascii 16, 'ghijklmnopqrstuv'
+ QUAD $0x333231307a797877; QUAD $0x5f2d393837363534 // .ascii 16, 'wxyz0123456789-_'
+
+_VecDecodeCharsetStd:
+ QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'
+ QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'
+ QUAD $0xffffffffffffffff; QUAD $0x3fffffff3effffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff>\xff\xff\xff?'
+ QUAD $0x3b3a393837363534; QUAD $0xffffffffffff3d3c // .ascii 16, '456789:;<=\xff\xff\xff\xff\xff\xff'
+ QUAD $0x06050403020100ff; QUAD $0x0e0d0c0b0a090807 // .ascii 16, '\xff\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e'
+ QUAD $0x161514131211100f; QUAD $0xffffffffff191817 // .ascii 16, '\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\xff\xff\xff\xff\xff'
+ QUAD $0x201f1e1d1c1b1aff; QUAD $0x2827262524232221 // .ascii 16, '\xff\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&\'('
+ QUAD $0x302f2e2d2c2b2a29; QUAD $0xffffffffff333231 // .ascii 16, ')*+,-./0123\xff\xff\xff\xff\xff'
+ QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'
+ QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'
+ QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'
+ QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'
+ QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'
+ QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'
+ QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'
+ QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'
+
+_VecDecodeCharsetURL:
+ QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'
+ QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'
+ QUAD $0xffffffffffffffff; QUAD $0xffff3effffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff>\xff\xff'
+ QUAD $0x3b3a393837363534; QUAD $0xffffffffffff3d3c // .ascii 16, '456789:;<=\xff\xff\xff\xff\xff\xff'
+ QUAD $0x06050403020100ff; QUAD $0x0e0d0c0b0a090807 // .ascii 16, '\xff\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e'
+ QUAD $0x161514131211100f; QUAD $0x3fffffffff191817 // .ascii 16, '\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\xff\xff\xff\xff?'
+ QUAD $0x201f1e1d1c1b1aff; QUAD $0x2827262524232221 // .ascii 16, '\xff\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&\'('
+ QUAD $0x302f2e2d2c2b2a29; QUAD $0xffffffffff333231 // .ascii 16, ')*+,-./0123\xff\xff\xff\xff\xff'
+ QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'
+ QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'
+ QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'
+ QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'
+ QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'
+ QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'
+ QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'
+ QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'
+
+TEXT ·__b64decode(SB), NOSPLIT | NOFRAME, $0 - 40
+ NO_LOCAL_POINTERS
+
+_entry:
+ MOVQ (TLS), R14
+ LEAQ -128(SP), R12
+ CMPQ R12, 16(R14)
+ JBE _stack_grow
+
+_b64decode:
+ MOVQ out+0(FP), DI
+ MOVQ src+8(FP), SI
+ MOVQ len+16(FP), DX
+ MOVQ mode+24(FP), CX
+ CALL ·__native_entry__+1563(SB) // _b64decode
+ MOVQ AX, ret+32(FP)
+ RET
+
+_stack_grow:
+ CALL runtime·morestack_noctxt<>(SB)
+ JMP _entry
+
+TEXT ·__b64encode(SB), NOSPLIT | NOFRAME, $0 - 24
+ NO_LOCAL_POINTERS
+
+_entry:
+ MOVQ (TLS), R14
+ LEAQ -40(SP), R12
+ CMPQ R12, 16(R14)
+ JBE _stack_grow
+
+_b64encode:
+ MOVQ out+0(FP), DI
+ MOVQ src+8(FP), SI
+ MOVQ mode+16(FP), DX
+ LEAQ ·__native_entry__+301(SB), AX // _b64encode
+ JMP AX
+
+_stack_grow:
+ CALL runtime·morestack_noctxt<>(SB)
+ JMP _entry
diff --git a/vendor/github.com/chenzhuoyu/base64x/native_subr_amd64.go b/vendor/github.com/chenzhuoyu/base64x/native_subr_amd64.go
new file mode 100644
index 000000000..f18de543e
--- /dev/null
+++ b/vendor/github.com/chenzhuoyu/base64x/native_subr_amd64.go
@@ -0,0 +1,29 @@
+// +build !noasm !appengine
+// Code generated by asm2asm, DO NOT EDIT.
+
+package base64x
+
+//go:nosplit
+//go:noescape
+//goland:noinspection ALL
+func __native_entry__() uintptr
+
+var (
+ _subr__b64decode = __native_entry__() + 1563
+ _subr__b64encode = __native_entry__() + 301
+)
+
+const (
+ _stack__b64decode = 128
+ _stack__b64encode = 40
+)
+
+var (
+ _ = _subr__b64decode
+ _ = _subr__b64encode
+)
+
+const (
+ _ = _stack__b64decode
+ _ = _stack__b64encode
+)